@actioneer/ads 0.5.6 → 0.5.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.
- package/bin/ads-init.mjs +6 -0
- package/components/accordion.js +50 -48
- package/components/agent-icon.d.ts +12 -0
- package/components/agent-icon.js +135 -121
- package/components/ai-elements/chain-of-thought-icon.d.ts +10 -12
- package/components/ai-elements/chain-of-thought-icon.js +341 -201
- package/components/ai-elements/chain-of-thought.d.ts +2 -2
- package/components/ai-elements/chain-of-thought.js +108 -108
- package/components/ai-elements/chart.js +16 -14
- package/components/ai-elements/inline-citation.js +41 -41
- package/components/ai-elements/message.js +4 -4
- package/components/ai-elements/queue.js +7 -7
- package/components/ai-elements/research-activity.js +114 -114
- package/components/ai-elements/shimmer.d.ts +2 -2
- package/components/ai-elements/speech-input.js +28 -28
- package/components/ai-elements/task-progress.js +26 -16
- package/components/ai-elements/task.js +17 -17
- package/components/ai-elements/tool.js +6 -6
- package/components/ai-elements/transcript.js +6 -5
- package/components/ai-elements/voice.js +1 -1
- package/components/alert.js +10 -10
- package/components/answer-sources.d.ts +42 -0
- package/components/answer-sources.js +111 -0
- package/components/answer.js +115 -114
- package/components/assistant-ui/action-bar.js +94 -48
- package/components/assistant-ui/attachment.js +131 -103
- package/components/assistant-ui/badge.d.ts +1 -1
- package/components/assistant-ui/badge.js +17 -17
- package/components/assistant-ui/chain-of-thought.d.ts +1 -1
- package/components/assistant-ui/composer-add-context.js +9 -9
- package/components/assistant-ui/composer-deep-research.js +5 -5
- package/components/assistant-ui/composer-harness.js +12 -9
- package/components/assistant-ui/composer-trigger-popover.js +45 -34
- package/components/assistant-ui/composer.js +59 -59
- package/components/assistant-ui/error.js +14 -14
- package/components/assistant-ui/file.d.ts +1 -1
- package/components/assistant-ui/image.d.ts +1 -1
- package/components/assistant-ui/image.js +113 -103
- package/components/assistant-ui/markdown-text.js +18 -18
- package/components/assistant-ui/message.js +46 -45
- package/components/assistant-ui/quote.js +1 -1
- package/components/assistant-ui/reasoning.d.ts +1 -1
- package/components/assistant-ui/reasoning.js +66 -77
- package/components/assistant-ui/suggestions.js +4 -4
- package/components/assistant-ui/thread-context.d.ts +2 -0
- package/components/assistant-ui/thread.js +41 -40
- package/components/assistant-ui/tool-fallback.js +60 -63
- package/components/assistant-ui/tool-group.d.ts +1 -1
- package/components/assistant-ui/tool-group.js +36 -42
- package/components/audio-waveform.js +25 -24
- package/components/autocomplete.d.ts +1 -0
- package/components/autocomplete.js +45 -43
- package/components/avatar.js +30 -30
- package/components/badge.d.ts +1 -1
- package/components/breadcrumbs.js +2 -2
- package/components/button.d.ts +2 -2
- package/components/button.js +22 -20
- package/components/card.js +8 -8
- package/components/carousel.js +105 -104
- package/components/chart.js +9 -7
- package/components/checkbox.js +74 -38
- package/components/chip.d.ts +1 -1
- package/components/code-block.js +3 -3
- package/components/collapsible.js +67 -23
- package/components/connector-card.js +6 -6
- package/components/drawer.d.ts +15 -10
- package/components/drawer.js +78 -77
- package/components/dropdown.d.ts +3 -1
- package/components/dropdown.js +88 -79
- package/components/empty-state.d.ts +4 -4
- package/components/empty-state.js +7 -7
- package/components/field.d.ts +4 -0
- package/components/field.js +45 -34
- package/components/file-dropzone.js +12 -12
- package/components/index.d.ts +4 -0
- package/components/index.js +584 -553
- package/components/infinite-canvas.js +1 -1
- package/components/input-field.js +51 -46
- package/components/input.js +20 -20
- package/components/link.js +9 -9
- package/components/modal.js +105 -73
- package/components/navbar.d.ts +1 -1
- package/components/navbar.js +1 -1
- package/components/number-field.js +38 -29
- package/components/page-header.js +12 -12
- package/components/pagination.js +19 -19
- package/components/panel.js +2 -2
- package/components/pixel-blast-svg.js +3 -3
- package/components/pixel-icon.d.ts +3 -1
- package/components/pixel-icon.js +294 -215
- package/components/popover.d.ts +1 -1
- package/components/popover.js +66 -64
- package/components/progress-circle.js +36 -32
- package/components/progress.js +28 -24
- package/components/radio.js +59 -49
- package/components/resizable-panel.js +1 -1
- package/components/reveal.d.ts +2 -2
- package/components/ripple.d.ts +3 -3
- package/components/scroll-area.js +17 -16
- package/components/segmented.d.ts +4 -1
- package/components/segmented.js +26 -25
- package/components/select.d.ts +2 -0
- package/components/select.js +61 -57
- package/components/setting-row.js +45 -42
- package/components/sidebar.d.ts +2 -2
- package/components/sidebar.js +131 -127
- package/components/skeleton.js +5 -5
- package/components/spinner.d.ts +13 -4
- package/components/spinner.js +42 -42
- package/components/stepper.js +21 -21
- package/components/switch.js +52 -32
- package/components/table.d.ts +24 -7
- package/components/table.js +457 -220
- package/components/tabs.js +149 -137
- package/components/textarea.js +1 -2
- package/components/toast.js +66 -66
- package/components/tooltip.js +2 -2
- package/components/tree.js +62 -51
- package/components/typography.d.ts +2 -1
- package/components/typography.js +33 -32
- package/components/ui/button.d.ts +2 -2
- package/components/ui/button.js +19 -19
- package/components/ui/collapsible.d.ts +1 -5
- package/components/ui/dialog.d.ts +3 -3
- package/components/ui/dialog.js +95 -58
- package/components/ui/tooltip.d.ts +2 -2
- package/components/ui/tooltip.js +67 -33
- package/components/viz-charts.js +95 -95
- package/demo/components/add-to-artifact.js +341 -0
- package/demo/lib/artifact-library.js +134 -0
- package/fonts/aribau-grotesk-medium.woff2 +0 -0
- package/fonts/aribau-grotesk-regular.woff2 +0 -0
- package/fonts.css +11 -11
- package/hooks/agents-ui/use-agent-audio-visualizer-aura.js +17 -16
- package/hooks/agents-ui/use-agent-audio-visualizer-wave.js +21 -20
- package/lib/icons.d.ts +12 -0
- package/lib/icons.js +107 -104
- package/lib/motion.d.ts +42 -39
- package/lib/motion.js +112 -52
- package/lib/spinner-mark.d.ts +9 -0
- package/lib/spinner-mark.js +98 -0
- package/llms.txt +69 -26
- package/manifest.json +344 -42
- package/package.json +1 -1
- package/styles.css +175 -161
- package/theme.css +104 -128
- package/components/ui/collapsible.js +0 -35
- package/fonts/aribau-grotesk-500.otf +0 -0
- package/fonts/aribau-grotesk-600.woff2 +0 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as s } from "react/jsx-runtime";
|
|
3
|
+
const A = [
|
|
4
|
+
"action",
|
|
5
|
+
"content",
|
|
6
|
+
"upload",
|
|
7
|
+
"surface"
|
|
8
|
+
], e = [0, 1, 2, 5, 8, 7, 6, 3], f = Array.from({ length: 9 }, (t, r) => ({
|
|
9
|
+
x: 1 + r % 3 * 5,
|
|
10
|
+
y: 1 + Math.floor(r / 3) * 5
|
|
11
|
+
}));
|
|
12
|
+
function m(t, r) {
|
|
13
|
+
return (t % r + r) % r;
|
|
14
|
+
}
|
|
15
|
+
const l = Array.from(
|
|
16
|
+
{ length: e.length },
|
|
17
|
+
(t, r) => {
|
|
18
|
+
const n = new Array(9).fill(0.12);
|
|
19
|
+
n[4] = 0.26;
|
|
20
|
+
for (const o of [r, m(r + 4, e.length)])
|
|
21
|
+
n[e[o]] = 1, n[e[m(o - 1, e.length)]] = 0.68, n[e[m(o + 1, e.length)]] = 0.36;
|
|
22
|
+
return n;
|
|
23
|
+
}
|
|
24
|
+
), h = [0, 1, 2, 1].map(
|
|
25
|
+
(t) => Array.from({ length: 9 }, (r, n) => {
|
|
26
|
+
const o = Math.floor(n / 3), i = n % 3, a = Math.abs(i - t);
|
|
27
|
+
return a === 0 ? o === 1 ? 1 : 0.78 : a === 1 ? 0.34 : 0.12;
|
|
28
|
+
})
|
|
29
|
+
), d = [2, 1, 0, 1].map(
|
|
30
|
+
(t) => Array.from({ length: 9 }, (r, n) => {
|
|
31
|
+
const o = Math.floor(n / 3), i = n % 3, a = Math.abs(o - t);
|
|
32
|
+
return a === 0 ? i === 1 ? 1 : 0.78 : a === 1 ? 0.34 : 0.12;
|
|
33
|
+
})
|
|
34
|
+
), p = [
|
|
35
|
+
[0.14, 0.34, 0.14, 0.34, 1, 0.34, 0.14, 0.34, 0.14],
|
|
36
|
+
[0.4, 1, 0.4, 1, 0.54, 1, 0.4, 1, 0.4],
|
|
37
|
+
[1, 0.56, 1, 0.56, 0.18, 0.56, 1, 0.56, 1],
|
|
38
|
+
[0.4, 1, 0.4, 1, 0.54, 1, 0.4, 1, 0.4]
|
|
39
|
+
], g = {
|
|
40
|
+
action: { frames: l, duration: 1, staticFrame: 0 },
|
|
41
|
+
content: { frames: h, duration: 1.2, staticFrame: 1 },
|
|
42
|
+
upload: { frames: d, duration: 1.2, staticFrame: 0 },
|
|
43
|
+
surface: { frames: p, duration: 1.4, staticFrame: 0 }
|
|
44
|
+
};
|
|
45
|
+
function u(t) {
|
|
46
|
+
return Number(t.toFixed(3)).toString();
|
|
47
|
+
}
|
|
48
|
+
function y(t, r) {
|
|
49
|
+
return [...t.map((n) => n[r]), t[0][r]].map(u).join(";");
|
|
50
|
+
}
|
|
51
|
+
function F(t) {
|
|
52
|
+
return Array.from(
|
|
53
|
+
{ length: t + 1 },
|
|
54
|
+
(r, n) => u(n / t)
|
|
55
|
+
).join(";");
|
|
56
|
+
}
|
|
57
|
+
function M({ variant: t, className: r, ...n }) {
|
|
58
|
+
const o = g[t], i = F(o.frames.length);
|
|
59
|
+
return /* @__PURE__ */ s(
|
|
60
|
+
"svg",
|
|
61
|
+
{
|
|
62
|
+
viewBox: "0 0 16 16",
|
|
63
|
+
fill: "none",
|
|
64
|
+
shapeRendering: "geometricPrecision",
|
|
65
|
+
className: r,
|
|
66
|
+
...n,
|
|
67
|
+
children: f.map((a, c) => /* @__PURE__ */ s(
|
|
68
|
+
"rect",
|
|
69
|
+
{
|
|
70
|
+
x: a.x,
|
|
71
|
+
y: a.y,
|
|
72
|
+
width: "4",
|
|
73
|
+
height: "4",
|
|
74
|
+
rx: "1.28",
|
|
75
|
+
fill: "currentColor",
|
|
76
|
+
opacity: o.frames[o.staticFrame][c],
|
|
77
|
+
children: /* @__PURE__ */ s(
|
|
78
|
+
"animate",
|
|
79
|
+
{
|
|
80
|
+
className: "motion-reduce:hidden",
|
|
81
|
+
attributeName: "opacity",
|
|
82
|
+
values: y(o.frames, c),
|
|
83
|
+
keyTimes: i,
|
|
84
|
+
dur: `${o.duration}s`,
|
|
85
|
+
repeatCount: "indefinite",
|
|
86
|
+
calcMode: "linear"
|
|
87
|
+
}
|
|
88
|
+
)
|
|
89
|
+
},
|
|
90
|
+
c
|
|
91
|
+
))
|
|
92
|
+
}
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
export {
|
|
96
|
+
A as SPINNER_VARIANTS,
|
|
97
|
+
M as SpinnerMark
|
|
98
|
+
};
|
package/llms.txt
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
- `ToastProvider` (from `@actioneer/ads`) — required to render toasts
|
|
12
12
|
- `<MotionConfig reducedMotion="user">` (from `motion/react`) — honor the OS reduced-motion setting
|
|
13
13
|
4. Import contract: `import { Button } from "@actioneer/ads";` — the exact named export, never `@actioneer/ads/button`, never an alias, never a local copy.
|
|
14
|
+
5. Motion contract: every imported component keeps its built-in ADS motion. For consumer-authored semantic state motion, import the matching named preset from `@actioneer/ads`; never copy raw spring values or introduce a separate timing system. Apply principle 3 on every component import/use change.
|
|
14
15
|
|
|
15
16
|
## Tokens
|
|
16
17
|
|
|
@@ -27,23 +28,24 @@ Reference semantic roles, never raw color/dimension literals (ads-lint rejects l
|
|
|
27
28
|
- `muted-foreground`
|
|
28
29
|
- `card`
|
|
29
30
|
- `card-foreground`
|
|
30
|
-
- `brand` —
|
|
31
|
-
- `brand-foreground` —
|
|
32
|
-
- `brand-hover` —
|
|
33
|
-
- `brand-text` —
|
|
31
|
+
- `brand` — Compatibility action role — neutral ink, never a colored primary hue.
|
|
32
|
+
- `brand-foreground` — Compatibility action role — neutral ink, never a colored primary hue.
|
|
33
|
+
- `brand-hover` — Compatibility action role — neutral ink, never a colored primary hue.
|
|
34
|
+
- `brand-text` — Compatibility action role — neutral ink, never a colored primary hue.
|
|
34
35
|
- `fill` — Quiet fill — secondary buttons, avatars, chips
|
|
35
36
|
- `fill-foreground` — Quiet fill — secondary buttons, avatars, chips
|
|
36
37
|
- `table-shell` — Quiet fill — secondary buttons, avatars, chips
|
|
38
|
+
- `artifact-canvas`
|
|
37
39
|
- `accent`
|
|
38
40
|
- `accent-foreground`
|
|
39
|
-
- `success`
|
|
40
|
-
- `success-foreground`
|
|
41
|
-
- `warning`
|
|
42
|
-
- `warning-foreground`
|
|
43
|
-
- `danger`
|
|
44
|
-
- `danger-foreground`
|
|
45
|
-
- `info`
|
|
46
|
-
- `info-foreground`
|
|
41
|
+
- `success` — success-700 on white = 5.48:1 (600 was 3.77:1, failed AA).
|
|
42
|
+
- `success-foreground` — success-700 on white = 5.48:1 (600 was 3.77:1, failed AA).
|
|
43
|
+
- `warning` — Amber-500 fill kept (it IS the caution signal); dark ink foreground
|
|
44
|
+
- `warning-foreground` — Amber-500 fill kept (it IS the caution signal); dark ink foreground
|
|
45
|
+
- `danger` — Amber-500 fill kept (it IS the caution signal); dark ink foreground
|
|
46
|
+
- `danger-foreground` — Amber-500 fill kept (it IS the caution signal); dark ink foreground
|
|
47
|
+
- `info` — Amber-500 fill kept (it IS the caution signal); dark ink foreground
|
|
48
|
+
- `info-foreground` — Amber-500 fill kept (it IS the caution signal); dark ink foreground
|
|
47
49
|
- `border-primary`
|
|
48
50
|
- `border-secondary`
|
|
49
51
|
- `border-tertiary`
|
|
@@ -71,21 +73,25 @@ Delineate SURFACES (cards, panels, sidebars, page regions) with color contrast,
|
|
|
71
73
|
|
|
72
74
|
The single shadow-elevation token is an affordance: it goes ONLY on surfaces the user can act on. Never elevate something that can't be clicked. There is no shadow scale.
|
|
73
75
|
|
|
74
|
-
- Do: Elevate actionable surfaces: pressable/hoverable cards, primary CTAs, control thumbs (Switch, Slider, active
|
|
76
|
+
- Do: Elevate actionable surfaces: pressable/hoverable cards, primary CTAs, control thumbs (Switch, Slider, active tab segments), and interactive floating layers (Modal, Drawer, Popover, Dropdown, listboxes, Toast).
|
|
75
77
|
- Do: Keep static surfaces flat: Panel, plain Card, Kbd, Navbar, headers, rails, docs boxes, Tooltip, InlineDrawer — they read by fill/color.
|
|
76
78
|
- Do: Ask 'can the user click this surface?' — if no, it's flat.
|
|
77
79
|
- Don't: Reintroduce a shadow scale (shadow-xs/sm/md/lg/xl) — there is one token only, shadow-elevation.
|
|
78
80
|
- Don't: Put a shadow on a non-interactive surface for decoration.
|
|
79
81
|
|
|
80
|
-
### 3. Motion follows the
|
|
82
|
+
### 3. Motion follows the interaction [lint: unbounded-transition, sluggish-easing, zero-scale-entrance, undersized-zoom-entrance, raw-spring-config]
|
|
81
83
|
|
|
82
|
-
|
|
84
|
+
Component motion follows the closest Animate UI interaction pattern, using role-specific presets defined in src/lib/motion.ts and exported from the ADS root barrel. Direct manipulation stays immediate, small CSS feedback stays local, and reduced motion is respected everywhere.
|
|
83
85
|
|
|
84
|
-
- Do:
|
|
85
|
-
- Do:
|
|
86
|
-
- Do:
|
|
87
|
-
-
|
|
86
|
+
- Do: Treat motion as part of every ADS component import: preserve the component's built-in motion, and import any composition-level preset from the ADS root barrel.
|
|
87
|
+
- Do: Map the component family before choosing motion: tabs/segments use control; checkbox/radio/switch use selection; menus use highlight; popovers/tooltips use overlay; modal/drawer use dialog/sheet; accordion/collapsible use disclosure; progress, carousel, and sidebar use their matching presets.
|
|
88
|
+
- Do: Keep sliders, drag-resize, scrolling, and other pointer-following interactions immediate; motion begins after the committed value or destination changes.
|
|
89
|
+
- Do: Give pressable elements local active feedback (text/link exempt); start entrances ≥ scale 0.95 with opacity.
|
|
90
|
+
- Do: Wrap Motion components in MotionConfig reducedMotion='user'; keep useful opacity/color feedback and drop spatial movement.
|
|
91
|
+
- Don't: Invent raw spring values inside a component, recreate a global duration/easing token scale, use an unbounded all-property transition, or start an entrance at scale zero.
|
|
92
|
+
- Don't: Override or duplicate the motion already shipped inside an imported ADS component.
|
|
88
93
|
- Don't: Animate keyboard-initiated or 100×/day actions (e.g. a command-palette toggle).
|
|
94
|
+
- Don't: Add motion to a component only because it is visible; static structure and decorative chrome stay still.
|
|
89
95
|
|
|
90
96
|
### 4. Icons: Hugeicons, stroke only [lint: icon-package-import]
|
|
91
97
|
|
|
@@ -124,12 +130,13 @@ Every UI decision stays synchronized with ADS. Before making a new screen/contro
|
|
|
124
130
|
|
|
125
131
|
### 8. Minimal information per screen [judgment]
|
|
126
132
|
|
|
127
|
-
A screen carries ONLY what the user needs to move forward: one title,
|
|
133
|
+
A screen carries ONLY what the user needs to move forward: one title, the inputs, one primary action. Page, section, panel, modal, dialog, drawer, and popover headers are title-only by default; add a description only when the user explicitly asks for one. Never maximalist.
|
|
128
134
|
|
|
129
135
|
- Do: Prefer more, smaller steps over dense ones; ask one thing at a time.
|
|
130
136
|
- Do: Derive instead of asking whenever possible (a name from a work email, the company from its domain).
|
|
131
137
|
- Do: Render multi-step flows full-screen — a single content container that holds the inputs and its own Back/Continue is fine.
|
|
132
138
|
- Don't: Add section eyebrows above a title that already names the screen, or helper text that restates the obvious / duplicates a disabled button's meaning.
|
|
139
|
+
- Don't: Add any header description unless the user explicitly requested supporting copy for that page, section, panel, modal, dialog, drawer, or popover.
|
|
133
140
|
- Don't: Nest panel/step-rail chrome inside a multi-step flow.
|
|
134
141
|
|
|
135
142
|
### 9. Responsive = container-fluid components, shells own the width [judgment]
|
|
@@ -163,12 +170,37 @@ When tabs and a search field control the same content, they share one responsive
|
|
|
163
170
|
|
|
164
171
|
## Components
|
|
165
172
|
|
|
173
|
+
Before using any component below, preserve its built-in motion and apply the motion contract in Setup step 5.
|
|
174
|
+
|
|
166
175
|
### Primitives / utilities
|
|
167
176
|
|
|
168
177
|
- [TooltipProvider] — component [docs](https://ads.actioneer.dev/#/tooltip)
|
|
169
178
|
- [InteractiveProps] — TypeScript type
|
|
179
|
+
- [backdropVariants] — utility
|
|
180
|
+
- [checkDrawTransition] — utility
|
|
170
181
|
- [cn] — utility
|
|
182
|
+
- [drawerBackdropVariants] — utility
|
|
183
|
+
- [drawerOffset] — utility
|
|
184
|
+
- [fadeTransition] — utility
|
|
185
|
+
- [floatVariants] — utility
|
|
171
186
|
- [interactive] — utility
|
|
187
|
+
- [menuVariants] — utility
|
|
188
|
+
- [modalPanelVariants] — utility
|
|
189
|
+
- [screenVariants] — utility
|
|
190
|
+
- [springCarousel] — utility
|
|
191
|
+
- [springControl] — utility
|
|
192
|
+
- [springDialog] — utility
|
|
193
|
+
- [springDisclosure] — utility
|
|
194
|
+
- [springEffect] — utility
|
|
195
|
+
- [springHighlight] — utility
|
|
196
|
+
- [springOverlay] — utility
|
|
197
|
+
- [springProgress] — utility
|
|
198
|
+
- [springRadio] — utility
|
|
199
|
+
- [springSheet] — utility
|
|
200
|
+
- [springSidebar] — utility
|
|
201
|
+
- [springSwitch] — utility
|
|
202
|
+
- [toastVariants] — utility
|
|
203
|
+
- [tooltipVariants] — utility
|
|
172
204
|
|
|
173
205
|
### Foundations
|
|
174
206
|
|
|
@@ -192,7 +224,7 @@ When tabs and a search field control the same content, they share one responsive
|
|
|
192
224
|
- [ScrollBar] — component [docs](https://ads.actioneer.dev/#/review/scroll-area)
|
|
193
225
|
- [SettingList] — component (variants: isPressable: true|false) [docs](https://ads.actioneer.dev/#/review/setting-row)
|
|
194
226
|
- [SettingRow] — component (variants: isPressable: true|false) [docs](https://ads.actioneer.dev/#/review/setting-row)
|
|
195
|
-
- [Spinner] — Use for
|
|
227
|
+
- [Spinner] — Use the nine-squircle Spinner for indeterminate work; choose its variant by work scope and use Progress or ProgressCircle when completion can be measured. (variants: size: xs|sm|md|lg; color: current|primary|muted) [docs](https://ads.actioneer.dev/#/spinner)
|
|
196
228
|
- [Stepper] — component (variants: status: complete|current|upcoming|error; size: sm|md) [docs](https://ads.actioneer.dev/#/review/stepper)
|
|
197
229
|
- [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)
|
|
198
230
|
- [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)
|
|
@@ -214,6 +246,7 @@ When tabs and a search field control the same content, they share one responsive
|
|
|
214
246
|
- [SettingListProps] — TypeScript type
|
|
215
247
|
- [SettingRowProps] — TypeScript type
|
|
216
248
|
- [SpinnerProps] — TypeScript type
|
|
249
|
+
- [SpinnerVariant] — TypeScript type
|
|
217
250
|
- [StepperProps] — TypeScript type
|
|
218
251
|
- [StepperStatus] — TypeScript type
|
|
219
252
|
- [StepperStep] — TypeScript type
|
|
@@ -224,6 +257,7 @@ When tabs and a search field control the same content, they share one responsive
|
|
|
224
257
|
- [fileDropzoneVariants] — utility
|
|
225
258
|
- [inputBaseClass] — utility
|
|
226
259
|
- [settingRowVariants] — utility
|
|
260
|
+
- [SPINNER_VARIANTS] — utility
|
|
227
261
|
- [stepperMarkerVariants] — utility
|
|
228
262
|
|
|
229
263
|
### Form controls
|
|
@@ -236,7 +270,7 @@ When tabs and a search field control the same content, they share one responsive
|
|
|
236
270
|
- [NumberField] — Use for a bounded numeric quantity (e.g. seats, width, count) that benefits from stepper buttons and min/max clamping, not free-form numeric text entry. [docs](https://ads.actioneer.dev/#/number-field)
|
|
237
271
|
- [Radio] — Use for choosing exactly one option from a small, fully visible set — wrap Radio options in a RadioGroup that owns the shared name and controlled value. [docs](https://ads.actioneer.dev/#/radio)
|
|
238
272
|
- [RadioGroup] — component [docs](https://ads.actioneer.dev/#/radio)
|
|
239
|
-
- [SegmentedControl] — Use for a small set (2-4) of mutually exclusive, always-visible options — like a range or view-mode switcher — not for navigation or long lists. (variants: size: sm|md|lg; selected: true|false) [docs](https://ads.actioneer.dev/#/segmented)
|
|
273
|
+
- [SegmentedControl] — Use for a small set (2-4) of mutually exclusive, always-visible options — like a range or view-mode switcher — not for navigation or long lists. Radius follows control size: 4px at sm and 8px at md/lg; tracks and options are never fully rounded. (variants: size: sm|md|lg; selected: true|false) [docs](https://ads.actioneer.dev/#/segmented)
|
|
240
274
|
- [Select] — Use for a single choice from a closed list of options in a form, especially when pairing with Field for a labeled control. (variants: size: sm|md|lg) [docs](https://ads.actioneer.dev/#/select)
|
|
241
275
|
- [Slider] — Use for a single controlled numeric value picked from a bounded range (volume, brightness, threshold) — pair with Field or Label/Text for an accessible, labeled control. [docs](https://ads.actioneer.dev/#/slider)
|
|
242
276
|
- [Switch] — Use for a single binary on/off preference that applies immediately, not as part of a form submitted later. [docs](https://ads.actioneer.dev/#/switch)
|
|
@@ -311,6 +345,10 @@ When tabs and a search field control the same content, they share one responsive
|
|
|
311
345
|
- [AccordionItem] — component [docs](https://ads.actioneer.dev/#/accordion)
|
|
312
346
|
- [AnswerRenderer] — component (variants: tone: default|primary|success|warning|danger|info) [docs](https://ads.actioneer.dev/#/ai/answer)
|
|
313
347
|
- [AnswerSkeleton] — component (variants: tone: default|primary|success|warning|danger|info) [docs](https://ads.actioneer.dev/#/ai/answer)
|
|
348
|
+
- [AnswerSourceChip] — Use the blue connector/source chip inside AnswerSources to open only the referenced nodes represented by that chip in the shell's inspector. [docs](https://ads.actioneer.dev/#/ai/sources)
|
|
349
|
+
- [AnswerSourceInspector] — Render as a separate white shell-level panel beside the answer when a source chip is selected; close and unmount it when the selection clears. [docs](https://ads.actioneer.dev/#/ai/sources)
|
|
350
|
+
- [AnswerSourceItem] — Use as an outlined clickable row inside AnswerSourceInspector for one referenced table or node, including its parent source, read state, and optional status. [docs](https://ads.actioneer.dev/#/ai/sources)
|
|
351
|
+
- [AnswerSources] — Place immediately above an answer's follow-up questions to summarize the referenced nodes and group them into clickable AnswerSourceChips. [docs](https://ads.actioneer.dev/#/ai/sources)
|
|
314
352
|
- [AreaChart] — component [docs](https://ads.actioneer.dev/#/ai/chart)
|
|
315
353
|
- [Avatar] — Use to represent a person or entity as a compact photo-or-initials glyph, standalone or stacked in an AvatarGroup. [docs](https://ads.actioneer.dev/#/avatar)
|
|
316
354
|
- [AvatarGroup] — component [docs](https://ads.actioneer.dev/#/avatar)
|
|
@@ -376,7 +414,7 @@ When tabs and a search field control the same content, they share one responsive
|
|
|
376
414
|
- [TableRow] — component [docs](https://ads.actioneer.dev/#/table)
|
|
377
415
|
- [TabList] — component (variants: variant: primary|secondary|pill; orientation: horizontal|vertical; size: sm|md|lg) [docs](https://ads.actioneer.dev/#/tabs)
|
|
378
416
|
- [TabPanel] — component (variants: variant: primary|secondary|pill; orientation: horizontal|vertical; size: sm|md|lg; selected: true|false) [docs](https://ads.actioneer.dev/#/tabs)
|
|
379
|
-
- [Tabs] — Use Tabs to switch between mutually exclusive views/sections that share the same page context, not for page-level navigation. Always reach for the primary
|
|
417
|
+
- [Tabs] — Use Tabs to switch between mutually exclusive views/sections that share the same page context, not for page-level navigation. Always reach for the primary recessed-track variant — it is the default; use secondary only when explicitly asked for it. Tab radius follows control size (4px sm, 8px md/lg), never rounded-full. When Tabs and a scoped search field coexist, compose one responsive control row with tabs leading and search trailing; do not stack search above tabs at widths where both fit. (variants: variant: primary|secondary|pill; orientation: horizontal|vertical; size: sm|md|lg; selected: true|false) [docs](https://ads.actioneer.dev/#/tabs)
|
|
380
418
|
- [TabSeparator] — component (variants: variant: primary|secondary|pill; orientation: horizontal|vertical; size: sm|md|lg; selected: true|false) [docs](https://ads.actioneer.dev/#/tabs)
|
|
381
419
|
- [Timeline] — Use for a vertical rail of dated events — version history, audit trails, activity/status feeds. [docs](https://ads.actioneer.dev/#/timeline)
|
|
382
420
|
- [TimelineItem] — component [docs](https://ads.actioneer.dev/#/timeline)
|
|
@@ -396,6 +434,10 @@ When tabs and a search field control the same content, they share one responsive
|
|
|
396
434
|
- [AnswerRendererProps] — TypeScript type
|
|
397
435
|
- [AnswerSkeletonProps] — TypeScript type
|
|
398
436
|
- [AnswerSource] — TypeScript type
|
|
437
|
+
- [AnswerSourceChipProps] — TypeScript type
|
|
438
|
+
- [AnswerSourceInspectorProps] — TypeScript type
|
|
439
|
+
- [AnswerSourceItemProps] — TypeScript type
|
|
440
|
+
- [AnswerSourcesProps] — TypeScript type
|
|
399
441
|
- [AnswerSpec] — TypeScript type
|
|
400
442
|
- [AnswerTone] — TypeScript type
|
|
401
443
|
- [AreaChartProps] — TypeScript type
|
|
@@ -573,6 +615,7 @@ When tabs and a search field control the same content, they share one responsive
|
|
|
573
615
|
- [ProgressCircle] — Use for a compact circular loading/progress indicator (determinate or indeterminate) where a linear bar doesn't fit, e.g. inline with a caption or a small avatar-sized control. [docs](https://ads.actioneer.dev/#/progress-circle)
|
|
574
616
|
- [Ripple] — component [docs](https://ads.actioneer.dev/#/ripple)
|
|
575
617
|
- [Skeleton] — Placeholder the shape of content that's still loading — size it via className and pair with circle for avatars. [docs](https://ads.actioneer.dev/#/skeleton)
|
|
618
|
+
- [AgentIconColorPreset] — TypeScript type
|
|
576
619
|
- [AgentIconName] — TypeScript type
|
|
577
620
|
- [AgentIconProps] — TypeScript type
|
|
578
621
|
- [AgentIconState] — TypeScript type
|
|
@@ -601,7 +644,7 @@ When tabs and a search field control the same content, they share one responsive
|
|
|
601
644
|
- [NavbarItem] — component (variants: justify: start|center|end) [docs](https://ads.actioneer.dev/#/navbar)
|
|
602
645
|
- [PageHeader] — Use for every page title row; supply onBack to anchor an icon-only back arrow immediately before the title, never in the trailing actions area. [docs](https://ads.actioneer.dev/#/page-header)
|
|
603
646
|
- [Pagination] — Use for navigating multi-page numbered content — table footers, search results, or any list too long for one screen. [docs](https://ads.actioneer.dev/#/pagination)
|
|
604
|
-
- [Sidebar] — Use as the app's left navigation rail
|
|
647
|
+
- [Sidebar] — Use as the app's left navigation rail. The canonical Actioneer shell composes SidebarBrand with persistent header actions, SidebarAction above grouped SidebarItems, optional attention counts and SidebarHistory, then SidebarAccount in a pinned footer. Its opt-in collapsed icon-rail mode (⌘B/Ctrl-B) is shared automatically by every sub-part. [docs](https://ads.actioneer.dev/#/sidebar)
|
|
605
648
|
- [SidebarAccount] — component [docs](https://ads.actioneer.dev/#/sidebar)
|
|
606
649
|
- [SidebarAction] — component [docs](https://ads.actioneer.dev/#/sidebar)
|
|
607
650
|
- [SidebarBrand] — component [docs](https://ads.actioneer.dev/#/sidebar)
|
|
@@ -879,8 +922,8 @@ When tabs and a search field control the same content, they share one responsive
|
|
|
879
922
|
- [FileName] — component [docs](https://ads.actioneer.dev/#/demo/ask)
|
|
880
923
|
- [FileRoot] — component [docs](https://ads.actioneer.dev/#/demo/ask)
|
|
881
924
|
- [FileSize] — component [docs](https://ads.actioneer.dev/#/demo/ask)
|
|
882
|
-
- [FollowUpQuestion] —
|
|
883
|
-
- [FollowUpSuggestion] —
|
|
925
|
+
- [FollowUpQuestion] — Use for the two or three full-width next-question rows that close a structured answer, immediately after its source strip; show the exact prompt that clicking will send. [docs](https://ads.actioneer.dev/#/ai/follow-up-suggestions)
|
|
926
|
+
- [FollowUpSuggestion] — Use only for compact runtime suggestion chips above the composer; use FollowUpQuestion for the larger answer-ending question rows. [docs](https://ads.actioneer.dev/#/ai/follow-up-suggestions)
|
|
884
927
|
- [Image] — component [docs](https://ads.actioneer.dev/#/demo/ask)
|
|
885
928
|
- [ImageActions] — component [docs](https://ads.actioneer.dev/#/demo/ask)
|
|
886
929
|
- [ImageContentFilterError] — component [docs](https://ads.actioneer.dev/#/demo/ask)
|