@tulipfarm/sprout 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +183 -2
- package/dist/components/accordion.d.ts +28 -0
- package/dist/components/accordion.js +26 -0
- package/dist/components/alert-dialog.d.ts +60 -0
- package/dist/components/alert-dialog.js +69 -0
- package/dist/components/alert.d.ts +30 -0
- package/dist/components/alert.js +35 -0
- package/dist/components/aspect-ratio.d.ts +7 -0
- package/dist/components/aspect-ratio.js +6 -0
- package/dist/components/attachment.d.ts +118 -0
- package/dist/components/attachment.js +285 -0
- package/dist/components/avatar.d.ts +32 -0
- package/dist/components/avatar.js +73 -0
- package/dist/components/badge.d.ts +21 -0
- package/dist/components/badge.js +27 -0
- package/dist/components/brand-icon.d.ts +28 -0
- package/dist/components/brand-icon.js +78 -0
- package/dist/components/breadcrumb.d.ts +29 -0
- package/dist/components/breadcrumb.js +44 -0
- package/dist/components/button-group.d.ts +28 -0
- package/dist/components/button-group.js +36 -0
- package/dist/components/button.d.ts +79 -0
- package/dist/components/button.js +93 -0
- package/dist/components/calendar.d.ts +27 -0
- package/dist/components/calendar.js +107 -0
- package/dist/components/canvas.d.ts +78 -0
- package/dist/components/canvas.js +180 -0
- package/dist/components/card.d.ts +43 -0
- package/dist/components/card.js +42 -0
- package/dist/components/carousel.d.ts +57 -0
- package/dist/components/carousel.js +422 -0
- package/dist/components/chart.d.ts +112 -0
- package/dist/components/chart.js +172 -0
- package/dist/components/chat-confirmation.d.ts +42 -0
- package/dist/components/chat-confirmation.js +62 -0
- package/dist/components/chat-plan.d.ts +21 -0
- package/dist/components/chat-plan.js +35 -0
- package/dist/components/chat-sources.d.ts +64 -0
- package/dist/components/chat-sources.js +66 -0
- package/dist/components/checkbox.d.ts +16 -0
- package/dist/components/checkbox.js +17 -0
- package/dist/components/choice-list.d.ts +53 -0
- package/dist/components/choice-list.js +36 -0
- package/dist/components/code-block.d.ts +35 -0
- package/dist/components/code-block.js +95 -0
- package/dist/components/collapsible.d.ts +24 -0
- package/dist/components/collapsible.js +27 -0
- package/dist/components/combobox.d.ts +95 -0
- package/dist/components/combobox.js +106 -0
- package/dist/components/command.d.ts +94 -0
- package/dist/components/command.js +414 -0
- package/dist/components/context-menu.d.ts +57 -0
- package/dist/components/context-menu.js +60 -0
- package/dist/components/dialog.d.ts +60 -0
- package/dist/components/dialog.js +79 -0
- package/dist/components/direction.d.ts +6 -0
- package/dist/components/direction.js +6 -0
- package/dist/components/dropdown-menu.d.ts +62 -0
- package/dist/components/dropdown-menu.js +59 -0
- package/dist/components/field.d.ts +117 -0
- package/dist/components/field.js +150 -0
- package/dist/components/file-viewer.d.ts +120 -0
- package/dist/components/file-viewer.js +373 -0
- package/dist/components/form.d.ts +87 -0
- package/dist/components/form.js +55 -0
- package/dist/components/glass-banner.d.ts +27 -0
- package/dist/components/glass-banner.js +116 -0
- package/dist/components/gradient-banner.d.ts +37 -0
- package/dist/components/gradient-banner.js +43 -0
- package/dist/components/hover-card.d.ts +27 -0
- package/dist/components/hover-card.js +26 -0
- package/dist/components/input-group.d.ts +68 -0
- package/dist/components/input-group.js +88 -0
- package/dist/components/input-otp.d.ts +38 -0
- package/dist/components/input-otp.js +43 -0
- package/dist/components/input.d.ts +16 -0
- package/dist/components/input.js +18 -0
- package/dist/components/kbd.d.ts +12 -0
- package/dist/components/kbd.js +11 -0
- package/dist/components/label.d.ts +8 -0
- package/dist/components/label.js +10 -0
- package/dist/components/mention-list.d.ts +54 -0
- package/dist/components/mention-list.js +31 -0
- package/dist/components/menubar.d.ts +64 -0
- package/dist/components/menubar.js +68 -0
- package/dist/components/message-actions.d.ts +34 -0
- package/dist/components/message-actions.js +68 -0
- package/dist/components/message-response.d.ts +20 -0
- package/dist/components/message-response.js +46 -0
- package/dist/components/message-scroller.d.ts +71 -0
- package/dist/components/message-scroller.js +217 -0
- package/dist/components/message.d.ts +49 -0
- package/dist/components/message.js +59 -0
- package/dist/components/navigation-menu.d.ts +45 -0
- package/dist/components/navigation-menu.js +54 -0
- package/dist/components/notice-banner.d.ts +14 -0
- package/dist/components/notice-banner.js +11 -0
- package/dist/components/page-content.d.ts +7 -0
- package/dist/components/page-content.js +9 -0
- package/dist/components/page-header.d.ts +37 -0
- package/dist/components/page-header.js +53 -0
- package/dist/components/pagination.d.ts +29 -0
- package/dist/components/pagination.js +29 -0
- package/dist/components/plan-outline.d.ts +60 -0
- package/dist/components/plan-outline.js +108 -0
- package/dist/components/popover.d.ts +34 -0
- package/dist/components/popover.js +35 -0
- package/dist/components/progress.d.ts +27 -0
- package/dist/components/progress.js +35 -0
- package/dist/components/prompt-list.d.ts +23 -0
- package/dist/components/prompt-list.js +11 -0
- package/dist/components/questionnaire.d.ts +148 -0
- package/dist/components/questionnaire.js +1001 -0
- package/dist/components/radio-group.d.ts +16 -0
- package/dist/components/radio-group.js +21 -0
- package/dist/components/reasoning-effort.d.ts +24 -0
- package/dist/components/reasoning-effort.js +269 -0
- package/dist/components/resizable.d.ts +67 -0
- package/dist/components/resizable.js +536 -0
- package/dist/components/result-card.d.ts +58 -0
- package/dist/components/result-card.js +88 -0
- package/dist/components/review-card.d.ts +62 -0
- package/dist/components/review-card.js +49 -0
- package/dist/components/rich-text-editor.d.ts +51 -0
- package/dist/components/rich-text-editor.js +248 -0
- package/dist/components/schema-diagram.d.ts +52 -0
- package/dist/components/schema-diagram.js +226 -0
- package/dist/components/scroll-area.d.ts +22 -0
- package/dist/components/scroll-area.js +19 -0
- package/dist/components/search-dialog.d.ts +103 -0
- package/dist/components/search-dialog.js +64 -0
- package/dist/components/search-field.d.ts +17 -0
- package/dist/components/search-field.js +27 -0
- package/dist/components/select.d.ts +57 -0
- package/dist/components/select.js +57 -0
- package/dist/components/selection-slot.d.ts +18 -0
- package/dist/components/selection-slot.js +53 -0
- package/dist/components/separator.d.ts +48 -0
- package/dist/components/separator.js +54 -0
- package/dist/components/settings-list.d.ts +26 -0
- package/dist/components/settings-list.js +17 -0
- package/dist/components/sheet.d.ts +70 -0
- package/dist/components/sheet.js +77 -0
- package/dist/components/sidebar.d.ts +70 -0
- package/dist/components/sidebar.js +187 -0
- package/dist/components/skeleton.d.ts +31 -0
- package/dist/components/skeleton.js +32 -0
- package/dist/components/slider.d.ts +17 -0
- package/dist/components/slider.js +24 -0
- package/dist/components/spinner.d.ts +37 -0
- package/dist/components/spinner.js +43 -0
- package/dist/components/state-panel-samples.d.ts +25 -0
- package/dist/components/state-panel-samples.js +423 -0
- package/dist/components/state-panel.d.ts +35 -0
- package/dist/components/state-panel.js +29 -0
- package/dist/components/state-sample.d.ts +63 -0
- package/dist/components/state-sample.js +42 -0
- package/dist/components/switch.d.ts +12 -0
- package/dist/components/switch.js +14 -0
- package/dist/components/table-nuqs.d.ts +16 -0
- package/dist/components/table-nuqs.js +59 -0
- package/dist/components/table.d.ts +120 -0
- package/dist/components/table.js +663 -0
- package/dist/components/tabs.d.ts +37 -0
- package/dist/components/tabs.js +36 -0
- package/dist/components/textarea.d.ts +18 -0
- package/dist/components/textarea.js +19 -0
- package/dist/components/toast.d.ts +45 -0
- package/dist/components/toast.js +83 -0
- package/dist/components/toggle-group.d.ts +30 -0
- package/dist/components/toggle-group.js +39 -0
- package/dist/components/toggle.d.ts +27 -0
- package/dist/components/toggle.js +21 -0
- package/dist/components/tool-activity.d.ts +79 -0
- package/dist/components/tool-activity.js +226 -0
- package/dist/components/toolbar-status.d.ts +21 -0
- package/dist/components/toolbar-status.js +14 -0
- package/dist/components/tooltip.d.ts +31 -0
- package/dist/components/tooltip.js +99 -0
- package/dist/components/typed-text.d.ts +17 -0
- package/dist/components/typed-text.js +56 -0
- package/dist/index.d.ts +88 -0
- package/dist/index.js +88 -0
- package/dist/internal/brand-glyphs.d.ts +342 -0
- package/dist/internal/brand-glyphs.js +238 -0
- package/dist/internal/classes.d.ts +3 -0
- package/dist/internal/classes.js +20 -0
- package/dist/internal/fieldset.d.ts +6 -0
- package/dist/internal/fieldset.js +38 -0
- package/dist/internal/file-kind.d.ts +4 -0
- package/dist/internal/file-kind.js +62 -0
- package/dist/internal/languages.d.ts +7 -0
- package/dist/internal/languages.js +1010 -0
- package/dist/internal/message-scroller.d.ts +102 -0
- package/dist/internal/message-scroller.js +637 -0
- package/dist/internal/pressable.d.ts +2 -0
- package/dist/internal/pressable.js +29 -0
- package/dist/internal/syntax.d.ts +14 -0
- package/dist/internal/syntax.js +137 -0
- package/dist/styles/accordion.css +102 -0
- package/dist/styles/alert-dialog.css +198 -0
- package/dist/styles/alert.css +149 -0
- package/dist/styles/aspect-ratio.css +8 -0
- package/dist/styles/attachment.css +720 -0
- package/dist/styles/avatar.css +186 -0
- package/dist/styles/badge.css +178 -0
- package/dist/styles/brand-icon.css +104 -0
- package/dist/styles/breadcrumb.css +121 -0
- package/dist/styles/button-group.css +113 -0
- package/dist/styles/button.css +380 -0
- package/dist/styles/calendar.css +295 -0
- package/dist/styles/canvas.css +327 -0
- package/dist/styles/card.css +146 -0
- package/dist/styles/carousel.css +107 -0
- package/dist/styles/chart.css +227 -0
- package/dist/styles/chat-confirmation.css +29 -0
- package/dist/styles/chat-plan.css +109 -0
- package/dist/styles/chat-sources.css +191 -0
- package/dist/styles/checkbox.css +123 -0
- package/dist/styles/choice-list.css +343 -0
- package/dist/styles/code-block.css +211 -0
- package/dist/styles/collapsible.css +72 -0
- package/dist/styles/combobox.css +347 -0
- package/dist/styles/command.css +233 -0
- package/dist/styles/context-menu.css +151 -0
- package/dist/styles/dialog.css +237 -0
- package/dist/styles/dropdown-menu.css +150 -0
- package/dist/styles/field.css +341 -0
- package/dist/styles/file-viewer.css +278 -0
- package/dist/styles/form.css +155 -0
- package/dist/styles/glass-banner.css +308 -0
- package/dist/styles/gradient-banner.css +256 -0
- package/dist/styles/hover-card.css +95 -0
- package/dist/styles/index.css +262 -0
- package/dist/styles/input-group.css +290 -0
- package/dist/styles/input-otp.css +138 -0
- package/dist/styles/input.css +99 -0
- package/dist/styles/kbd.css +59 -0
- package/dist/styles/label.css +89 -0
- package/dist/styles/mention-list.css +166 -0
- package/dist/styles/menubar.css +226 -0
- package/dist/styles/message-actions.css +83 -0
- package/dist/styles/message-response.css +176 -0
- package/dist/styles/message-scroller.css +136 -0
- package/dist/styles/message.css +310 -0
- package/dist/styles/navigation-menu.css +291 -0
- package/dist/styles/notice-banner.css +68 -0
- package/dist/styles/page-content.css +21 -0
- package/dist/styles/page-header.css +156 -0
- package/dist/styles/pagination.css +72 -0
- package/dist/styles/plan-outline.css +393 -0
- package/dist/styles/popover.css +140 -0
- package/dist/styles/progress.css +93 -0
- package/dist/styles/prompt-list.css +165 -0
- package/dist/styles/questionnaire.css +323 -0
- package/dist/styles/radio-group.css +120 -0
- package/dist/styles/reasoning-effort.css +157 -0
- package/dist/styles/resizable.css +108 -0
- package/dist/styles/result-card.css +215 -0
- package/dist/styles/review-card.css +235 -0
- package/dist/styles/rich-text-editor.css +169 -0
- package/dist/styles/schema-diagram.css +419 -0
- package/dist/styles/scroll-area.css +77 -0
- package/dist/styles/search-dialog.css +363 -0
- package/dist/styles/search-field.css +17 -0
- package/dist/styles/select.css +285 -0
- package/dist/styles/selection-slot.css +31 -0
- package/dist/styles/separator.css +206 -0
- package/dist/styles/settings-list.css +81 -0
- package/dist/styles/sheet.css +361 -0
- package/dist/styles/sidebar.css +363 -0
- package/dist/styles/skeleton.css +80 -0
- package/dist/styles/slider.css +142 -0
- package/dist/styles/spinner.css +39 -0
- package/dist/styles/state-panel-samples.css +41 -0
- package/dist/styles/state-panel.css +182 -0
- package/dist/styles/state-sample.css +285 -0
- package/dist/styles/switch.css +128 -0
- package/dist/styles/table.css +604 -0
- package/dist/styles/tabs.css +223 -0
- package/dist/styles/textarea.css +78 -0
- package/dist/styles/themes/chatgpt.css +125 -0
- package/dist/styles/themes/claude.css +125 -0
- package/dist/styles/themes/cloudflare.css +125 -0
- package/dist/styles/themes/discord.css +125 -0
- package/dist/styles/themes/github.css +125 -0
- package/dist/styles/themes/grok.css +125 -0
- package/dist/styles/themes/linear.css +126 -0
- package/dist/styles/themes/neutral.css +125 -0
- package/dist/styles/themes/notion.css +125 -0
- package/dist/styles/themes/perplexity.css +125 -0
- package/dist/styles/themes/raycast.css +125 -0
- package/dist/styles/themes/spotify.css +125 -0
- package/dist/styles/themes/stripe.css +125 -0
- package/dist/styles/themes/supabase.css +125 -0
- package/dist/styles/themes/tulipfarm.css +125 -0
- package/dist/styles/themes/vercel.css +126 -0
- package/dist/styles/toast.css +197 -0
- package/dist/styles/toggle-group.css +161 -0
- package/dist/styles/toggle.css +119 -0
- package/dist/styles/tool-activity.css +396 -0
- package/dist/styles/toolbar-status.css +52 -0
- package/dist/styles/tooltip.css +122 -0
- package/dist/styles/typed-text.css +17 -0
- package/package.json +443 -4
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Tabs as BaseTabs } from "@base-ui/react/tabs";
|
|
2
|
+
export declare const tabsListVariantNames: readonly ["default", "line", "steps"];
|
|
3
|
+
export type TabsListVariant = (typeof tabsListVariantNames)[number];
|
|
4
|
+
export type TabsProps = BaseTabs.Root.Props;
|
|
5
|
+
/**
|
|
6
|
+
* Groups a tab list with its panels. Pass `value` and `onValueChange` to
|
|
7
|
+
* control the active tab, or `defaultValue` to let it manage itself.
|
|
8
|
+
* `orientation="vertical"` stacks the list beside the panels.
|
|
9
|
+
*/
|
|
10
|
+
export declare function Tabs({ className, orientation, ...props }: TabsProps): import("react").JSX.Element;
|
|
11
|
+
export interface TabsListVariantOptions {
|
|
12
|
+
variant?: TabsListVariant | null;
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
/** Returns the list classes, for a custom element that should look like a tab list. */
|
|
16
|
+
export declare function tabsListVariants({ variant, className, }?: TabsListVariantOptions): string;
|
|
17
|
+
export interface TabsListProps extends BaseTabs.List.Props {
|
|
18
|
+
/**
|
|
19
|
+
* `default` is a filled segmented control. `line` underlines the active
|
|
20
|
+
* tab for page and panel sections. `steps` spreads the tabs across the
|
|
21
|
+
* width for a numbered setup flow.
|
|
22
|
+
*/
|
|
23
|
+
variant?: TabsListVariant;
|
|
24
|
+
}
|
|
25
|
+
export declare function TabsList({ className, variant, ...props }: TabsListProps): import("react").JSX.Element;
|
|
26
|
+
export type TabsTriggerProps = BaseTabs.Tab.Props;
|
|
27
|
+
/**
|
|
28
|
+
* One tab. Its `value` matches a `TabsContent`. Mark leading or trailing
|
|
29
|
+
* icons with `data-icon="inline-start"` or `"inline-end"` to tighten padding.
|
|
30
|
+
*/
|
|
31
|
+
export declare function TabsTrigger({ className, ...props }: TabsTriggerProps): import("react").JSX.Element;
|
|
32
|
+
export type TabsContentProps = BaseTabs.Panel.Props;
|
|
33
|
+
/**
|
|
34
|
+
* The panel for one tab. Add `keepMounted` to keep inactive panels in the
|
|
35
|
+
* page, so form drafts and scroll positions survive tab changes.
|
|
36
|
+
*/
|
|
37
|
+
export declare function TabsContent({ className, ...props }: TabsContentProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Tabs as BaseTabs } from "@base-ui/react/tabs";
|
|
4
|
+
import { cn, stateClassName } from "../internal/classes.js";
|
|
5
|
+
export const tabsListVariantNames = ["default", "line", "steps"];
|
|
6
|
+
/**
|
|
7
|
+
* Groups a tab list with its panels. Pass `value` and `onValueChange` to
|
|
8
|
+
* control the active tab, or `defaultValue` to let it manage itself.
|
|
9
|
+
* `orientation="vertical"` stacks the list beside the panels.
|
|
10
|
+
*/
|
|
11
|
+
export function Tabs({ className, orientation = "horizontal", ...props }) {
|
|
12
|
+
return (_jsx(BaseTabs.Root, { "data-slot": "tabs", orientation: orientation, ...props, className: stateClassName("sprout-tabs", className) }));
|
|
13
|
+
}
|
|
14
|
+
/** Returns the list classes, for a custom element that should look like a tab list. */
|
|
15
|
+
export function tabsListVariants({ variant, className, } = {}) {
|
|
16
|
+
return cn("sprout-tabs-list", `sprout-tabs-list-${variant ?? "default"}`, className);
|
|
17
|
+
}
|
|
18
|
+
export function TabsList({ className, variant = "default", ...props }) {
|
|
19
|
+
return (_jsx(BaseTabs.List, { "data-slot": "tabs-list", "data-variant": variant, ...props, className: typeof className === "function"
|
|
20
|
+
? (state) => tabsListVariants({ variant, className: className(state) })
|
|
21
|
+
: tabsListVariants({ variant, className }) }));
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* One tab. Its `value` matches a `TabsContent`. Mark leading or trailing
|
|
25
|
+
* icons with `data-icon="inline-start"` or `"inline-end"` to tighten padding.
|
|
26
|
+
*/
|
|
27
|
+
export function TabsTrigger({ className, ...props }) {
|
|
28
|
+
return (_jsx(BaseTabs.Tab, { "data-slot": "tabs-trigger", ...props, className: stateClassName("sprout-tabs-trigger", className) }));
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The panel for one tab. Add `keepMounted` to keep inactive panels in the
|
|
32
|
+
* page, so form drafts and scroll positions survive tab changes.
|
|
33
|
+
*/
|
|
34
|
+
export function TabsContent({ className, ...props }) {
|
|
35
|
+
return (_jsx(BaseTabs.Panel, { "data-slot": "tabs-content", ...props, className: stateClassName("sprout-tabs-content", className) }));
|
|
36
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ComponentProps } from "react";
|
|
2
|
+
export declare const textareaVariantNames: readonly ["default", "embedded"];
|
|
3
|
+
export type TextareaVariant = (typeof textareaVariantNames)[number];
|
|
4
|
+
export interface TextareaProps extends ComponentProps<"textarea"> {
|
|
5
|
+
/**
|
|
6
|
+
* `default` draws its own border, fill, and focus ring. `embedded` drops
|
|
7
|
+
* them so a surrounding group, such as a message composer, draws them.
|
|
8
|
+
*/
|
|
9
|
+
variant?: TextareaVariant | null;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* A multi-line text field on a native `textarea`. It takes every textarea
|
|
13
|
+
* prop, such as `value`, `rows`, `maxLength`, `readOnly`, and `ref`. It grows
|
|
14
|
+
* with its content from a 96px floor, or from `rows` lines when that is
|
|
15
|
+
* taller. Inside a Sprout `Field` it gets its id, description, and invalid,
|
|
16
|
+
* required, and disabled states from `useFieldControl`.
|
|
17
|
+
*/
|
|
18
|
+
export declare function Textarea({ variant, rows, className, style, ...rest }: TextareaProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from "../internal/classes.js";
|
|
4
|
+
import { useFieldControl } from "./field.js";
|
|
5
|
+
export const textareaVariantNames = ["default", "embedded"];
|
|
6
|
+
/**
|
|
7
|
+
* A multi-line text field on a native `textarea`. It takes every textarea
|
|
8
|
+
* prop, such as `value`, `rows`, `maxLength`, `readOnly`, and `ref`. It grows
|
|
9
|
+
* with its content from a 96px floor, or from `rows` lines when that is
|
|
10
|
+
* taller. Inside a Sprout `Field` it gets its id, description, and invalid,
|
|
11
|
+
* required, and disabled states from `useFieldControl`.
|
|
12
|
+
*/
|
|
13
|
+
export function Textarea({ variant, rows, className, style, ...rest }) {
|
|
14
|
+
const props = useFieldControl(rest);
|
|
15
|
+
const kind = variant ?? "default";
|
|
16
|
+
return (_jsx("textarea", { "data-slot": "textarea", "data-variant": kind, rows: rows, ...props, style: rows
|
|
17
|
+
? { "--sprout-textarea-rows": rows, ...style }
|
|
18
|
+
: style, className: cn("sprout-textarea", `sprout-textarea-variant-${kind}`, className) }));
|
|
19
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Toast as ToastPrimitive } from "@base-ui/react/toast";
|
|
2
|
+
/** Toast types that `Toaster` gives an icon. Any other `type` shows no icon. */
|
|
3
|
+
export declare const toastTypeNames: readonly ["success", "error", "warning", "info", "loading"];
|
|
4
|
+
export type ToastType = (typeof toastTypeNames)[number];
|
|
5
|
+
export type ToastManager = ReturnType<typeof ToastPrimitive.createToastManager>;
|
|
6
|
+
/** Makes a toast manager you can call from anywhere, inside or outside React. */
|
|
7
|
+
export declare const createToastManager: typeof ToastPrimitive.createToastManager;
|
|
8
|
+
/** Reads the nearest provider's toasts and its `add`, `update`, `close`, and `promise`. */
|
|
9
|
+
export declare const useToastManager: typeof ToastPrimitive.useToastManager;
|
|
10
|
+
/** The shared manager that `Toaster` uses when you don't pass one. */
|
|
11
|
+
export declare const toast: ToastManager;
|
|
12
|
+
export type ToastProviderProps = ToastPrimitive.Provider.Props;
|
|
13
|
+
export declare function ToastProvider(props: ToastProviderProps): import("react").JSX.Element;
|
|
14
|
+
export type ToastPortalProps = ToastPrimitive.Portal.Props;
|
|
15
|
+
export declare function ToastPortal(props: ToastPortalProps): import("react").JSX.Element;
|
|
16
|
+
export type ToastViewportProps = ToastPrimitive.Viewport.Props;
|
|
17
|
+
/** The fixed region in the bottom corner that stacks toasts. Press F6 to focus it. */
|
|
18
|
+
export declare function ToastViewport({ className, ...props }: ToastViewportProps): import("react").JSX.Element;
|
|
19
|
+
export type ToastProps = ToastPrimitive.Root.Props;
|
|
20
|
+
/** One toast in the stack. Pass the `toast` object from `useToastManager().toasts`. */
|
|
21
|
+
export declare function Toast({ className, ...props }: ToastProps): import("react").JSX.Element;
|
|
22
|
+
export type ToastContentProps = ToastPrimitive.Content.Props;
|
|
23
|
+
export declare function ToastContent({ className, ...props }: ToastContentProps): import("react").JSX.Element;
|
|
24
|
+
export type ToastTitleProps = ToastPrimitive.Title.Props;
|
|
25
|
+
export declare function ToastTitle({ className, ...props }: ToastTitleProps): import("react").JSX.Element;
|
|
26
|
+
export type ToastDescriptionProps = ToastPrimitive.Description.Props;
|
|
27
|
+
export declare function ToastDescription({ className, ...props }: ToastDescriptionProps): import("react").JSX.Element;
|
|
28
|
+
export type ToastActionProps = ToastPrimitive.Action.Props;
|
|
29
|
+
/**
|
|
30
|
+
* A small outline button. It renders only when it has children, either its
|
|
31
|
+
* own or the toast's `actionProps.children`.
|
|
32
|
+
*/
|
|
33
|
+
export declare function ToastAction({ className, render, ...props }: ToastActionProps): import("react").JSX.Element;
|
|
34
|
+
export type ToastCloseProps = ToastPrimitive.Close.Props;
|
|
35
|
+
/** A ghost icon button labeled "Close toast". Its hit area extends 8px past the icon. */
|
|
36
|
+
export declare function ToastClose({ className, children, render, ...props }: ToastCloseProps): import("react").JSX.Element;
|
|
37
|
+
export interface ToasterProps extends ToastProviderProps {
|
|
38
|
+
/** Defaults to the shared `toast` manager. Pass your own to isolate a region. */
|
|
39
|
+
toastManager?: ToastProviderProps["toastManager"];
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* A provider with a ready-made viewport. Each toast shows an icon for its
|
|
43
|
+
* `type`, its title and description, an optional action, and a close button.
|
|
44
|
+
*/
|
|
45
|
+
export declare function Toaster({ children, toastManager, ...props }: ToasterProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Toast as ToastPrimitive } from "@base-ui/react/toast";
|
|
4
|
+
import { CheckCircle } from "reicon-react/icons/CheckCircle";
|
|
5
|
+
import { Danger } from "reicon-react/icons/Danger";
|
|
6
|
+
import { XCircle } from "reicon-react/icons/XCircle";
|
|
7
|
+
import { InfoCircle } from "reicon-react/icons/InfoCircle";
|
|
8
|
+
import { X } from "reicon-react/icons/X";
|
|
9
|
+
import { stateClassName } from "../internal/classes.js";
|
|
10
|
+
import { Button } from "./button.js";
|
|
11
|
+
import { Spinner } from "./spinner.js";
|
|
12
|
+
/** Toast types that `Toaster` gives an icon. Any other `type` shows no icon. */
|
|
13
|
+
export const toastTypeNames = [
|
|
14
|
+
"success",
|
|
15
|
+
"error",
|
|
16
|
+
"warning",
|
|
17
|
+
"info",
|
|
18
|
+
"loading",
|
|
19
|
+
];
|
|
20
|
+
/** Makes a toast manager you can call from anywhere, inside or outside React. */
|
|
21
|
+
export const createToastManager = ToastPrimitive.createToastManager;
|
|
22
|
+
/** Reads the nearest provider's toasts and its `add`, `update`, `close`, and `promise`. */
|
|
23
|
+
export const useToastManager = ToastPrimitive.useToastManager;
|
|
24
|
+
/** The shared manager that `Toaster` uses when you don't pass one. */
|
|
25
|
+
export const toast = createToastManager();
|
|
26
|
+
export function ToastProvider(props) {
|
|
27
|
+
return _jsx(ToastPrimitive.Provider, { ...props });
|
|
28
|
+
}
|
|
29
|
+
export function ToastPortal(props) {
|
|
30
|
+
return _jsx(ToastPrimitive.Portal, { "data-slot": "toast-portal", ...props });
|
|
31
|
+
}
|
|
32
|
+
/** The fixed region in the bottom corner that stacks toasts. Press F6 to focus it. */
|
|
33
|
+
export function ToastViewport({ className, ...props }) {
|
|
34
|
+
return (_jsx(ToastPrimitive.Viewport, { "data-slot": "toast-viewport", ...props, className: stateClassName("sprout-toast-viewport", className) }));
|
|
35
|
+
}
|
|
36
|
+
/** One toast in the stack. Pass the `toast` object from `useToastManager().toasts`. */
|
|
37
|
+
export function Toast({ className, ...props }) {
|
|
38
|
+
return (_jsx(ToastPrimitive.Root, { "data-slot": "toast", ...props, className: stateClassName("sprout-toast", className) }));
|
|
39
|
+
}
|
|
40
|
+
export function ToastContent({ className, ...props }) {
|
|
41
|
+
return (_jsx(ToastPrimitive.Content, { "data-slot": "toast-content", ...props, className: stateClassName("sprout-toast-content", className) }));
|
|
42
|
+
}
|
|
43
|
+
export function ToastTitle({ className, ...props }) {
|
|
44
|
+
return (_jsx(ToastPrimitive.Title, { "data-slot": "toast-title", ...props, className: stateClassName("sprout-toast-title", className) }));
|
|
45
|
+
}
|
|
46
|
+
export function ToastDescription({ className, ...props }) {
|
|
47
|
+
return (_jsx(ToastPrimitive.Description, { "data-slot": "toast-description", ...props, className: stateClassName("sprout-toast-description", className) }));
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* A small outline button. It renders only when it has children, either its
|
|
51
|
+
* own or the toast's `actionProps.children`.
|
|
52
|
+
*/
|
|
53
|
+
export function ToastAction({ className, render = _jsx(Button, { variant: "outline", size: "sm" }), ...props }) {
|
|
54
|
+
return (_jsx(ToastPrimitive.Action, { "data-slot": "toast-action", render: render, ...props, className: stateClassName("sprout-toast-action", className) }));
|
|
55
|
+
}
|
|
56
|
+
/** A ghost icon button labeled "Close toast". Its hit area extends 8px past the icon. */
|
|
57
|
+
export function ToastClose({ className, children, render = _jsx(Button, { variant: "ghost", size: "icon-sm" }), ...props }) {
|
|
58
|
+
return (_jsx(ToastPrimitive.Close, { "data-slot": "toast-close", "aria-label": "Close toast", render: render, ...props, className: stateClassName("sprout-toast-close", className), children: children ?? _jsx(X, { "aria-hidden": "true" }) }));
|
|
59
|
+
}
|
|
60
|
+
const toastIcons = {
|
|
61
|
+
success: _jsx(CheckCircle, { "aria-hidden": "true" }),
|
|
62
|
+
info: _jsx(InfoCircle, { "aria-hidden": "true" }),
|
|
63
|
+
warning: _jsx(Danger, { "aria-hidden": "true" }),
|
|
64
|
+
error: _jsx(XCircle, { "aria-hidden": "true" }),
|
|
65
|
+
loading: _jsx(Spinner, { "aria-hidden": "true" }),
|
|
66
|
+
};
|
|
67
|
+
function ToastIcon({ type }) {
|
|
68
|
+
const icon = type && type in toastIcons ? toastIcons[type] : null;
|
|
69
|
+
if (!icon)
|
|
70
|
+
return null;
|
|
71
|
+
return (_jsx("span", { "data-slot": "toast-icon", "data-type": type, className: "sprout-toast-icon", children: icon }));
|
|
72
|
+
}
|
|
73
|
+
function ToastList() {
|
|
74
|
+
const { toasts } = useToastManager();
|
|
75
|
+
return toasts.map((item) => (_jsx(Toast, { toast: item, children: _jsxs(ToastContent, { children: [_jsx(ToastIcon, { type: item.type }), _jsxs("div", { className: "sprout-toast-text", children: [_jsx(ToastTitle, {}), _jsx(ToastDescription, {})] }), _jsx(ToastAction, {}), _jsx(ToastClose, {})] }) }, item.id)));
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* A provider with a ready-made viewport. Each toast shows an icon for its
|
|
79
|
+
* `type`, its title and description, an optional action, and a close button.
|
|
80
|
+
*/
|
|
81
|
+
export function Toaster({ children, toastManager = toast, ...props }) {
|
|
82
|
+
return (_jsxs(ToastProvider, { toastManager: toastManager, ...props, children: [children, _jsx(ToastPortal, { children: _jsx(ToastViewport, { children: _jsx(ToastList, {}) }) })] }));
|
|
83
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Toggle as BaseToggle } from "@base-ui/react/toggle";
|
|
2
|
+
import { ToggleGroup as BaseToggleGroup } from "@base-ui/react/toggle-group";
|
|
3
|
+
export declare const toggleGroupVariantNames: readonly ["default", "outline"];
|
|
4
|
+
export declare const toggleGroupSizeNames: readonly ["default", "sm", "lg"];
|
|
5
|
+
export type ToggleGroupVariant = (typeof toggleGroupVariantNames)[number];
|
|
6
|
+
export type ToggleGroupSize = (typeof toggleGroupSizeNames)[number];
|
|
7
|
+
export interface ToggleGroupProps<Value extends string = string> extends BaseToggleGroup.Props<Value> {
|
|
8
|
+
/** `default` is borderless. `outline` draws a control border on each item. */
|
|
9
|
+
variant?: ToggleGroupVariant;
|
|
10
|
+
/** `sm` is 28px, `default` 32px, and `lg` 36px tall. */
|
|
11
|
+
size?: ToggleGroupSize;
|
|
12
|
+
/**
|
|
13
|
+
* Gap between items in 4px steps. `0` joins the items into one
|
|
14
|
+
* segmented control with shared borders and outer corners only.
|
|
15
|
+
*/
|
|
16
|
+
spacing?: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* A row or column of toggle buttons that share one value array. Pass
|
|
20
|
+
* `multiple` to let several items stay pressed. Arrow keys move focus
|
|
21
|
+
* between items; Space and Enter press the focused one.
|
|
22
|
+
*/
|
|
23
|
+
export declare function ToggleGroup<Value extends string = string>({ className, style, variant, size, spacing, orientation, children, ...props }: ToggleGroupProps<Value>): import("react").JSX.Element;
|
|
24
|
+
export type ToggleGroupItemProps<Value extends string = string> = BaseToggle.Props<Value>;
|
|
25
|
+
/**
|
|
26
|
+
* One toggle button in a `ToggleGroup`. Its `value` is added to the group
|
|
27
|
+
* value while pressed. It takes the group's variant, size, and spacing.
|
|
28
|
+
* An icon-only item needs an `aria-label`.
|
|
29
|
+
*/
|
|
30
|
+
export declare function ToggleGroupItem<Value extends string = string>({ className, ...props }: ToggleGroupItemProps<Value>): import("react").JSX.Element;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, useContext } from "react";
|
|
4
|
+
import { Toggle as BaseToggle } from "@base-ui/react/toggle";
|
|
5
|
+
import { ToggleGroup as BaseToggleGroup } from "@base-ui/react/toggle-group";
|
|
6
|
+
import { cn } from "../internal/classes.js";
|
|
7
|
+
export const toggleGroupVariantNames = ["default", "outline"];
|
|
8
|
+
export const toggleGroupSizeNames = ["default", "sm", "lg"];
|
|
9
|
+
const ToggleGroupContext = createContext({
|
|
10
|
+
variant: "default",
|
|
11
|
+
size: "default",
|
|
12
|
+
spacing: 2,
|
|
13
|
+
orientation: "horizontal",
|
|
14
|
+
});
|
|
15
|
+
/**
|
|
16
|
+
* A row or column of toggle buttons that share one value array. Pass
|
|
17
|
+
* `multiple` to let several items stay pressed. Arrow keys move focus
|
|
18
|
+
* between items; Space and Enter press the focused one.
|
|
19
|
+
*/
|
|
20
|
+
export function ToggleGroup({ className, style, variant = "default", size = "default", spacing = 2, orientation = "horizontal", children, ...props }) {
|
|
21
|
+
const gap = { "--sprout-toggle-group-spacing": spacing };
|
|
22
|
+
return (_jsx(BaseToggleGroup, { "data-slot": "toggle-group", "data-variant": variant, "data-size": size, "data-spacing": spacing, orientation: orientation, ...props, style: typeof style === "function"
|
|
23
|
+
? (state) => ({ ...gap, ...style(state) })
|
|
24
|
+
: { ...gap, ...style }, className: typeof className === "function"
|
|
25
|
+
? (state) => cn("sprout-toggle-group", className(state))
|
|
26
|
+
: cn("sprout-toggle-group", className), children: _jsx(ToggleGroupContext.Provider, { value: { variant, size, spacing, orientation }, children: children }) }));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* One toggle button in a `ToggleGroup`. Its `value` is added to the group
|
|
30
|
+
* value while pressed. It takes the group's variant, size, and spacing.
|
|
31
|
+
* An icon-only item needs an `aria-label`.
|
|
32
|
+
*/
|
|
33
|
+
export function ToggleGroupItem({ className, ...props }) {
|
|
34
|
+
const { variant, size, spacing, orientation } = useContext(ToggleGroupContext);
|
|
35
|
+
const base = cn("sprout-toggle-group-item", `sprout-toggle-group-item-${variant}`, `sprout-toggle-group-item-size-${size}`);
|
|
36
|
+
return (_jsx(BaseToggle, { "data-slot": "toggle-group-item", "data-variant": variant, "data-size": size, "data-spacing": spacing, "data-orientation": orientation, ...props, className: typeof className === "function"
|
|
37
|
+
? (state) => cn(base, className(state))
|
|
38
|
+
: cn(base, className) }));
|
|
39
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Toggle as BaseToggle } from "@base-ui/react/toggle";
|
|
2
|
+
export declare const toggleVariantNames: readonly ["default", "outline"];
|
|
3
|
+
export declare const toggleSizeNames: readonly ["default", "sm", "lg"];
|
|
4
|
+
export type ToggleVariant = (typeof toggleVariantNames)[number];
|
|
5
|
+
export type ToggleSize = (typeof toggleSizeNames)[number];
|
|
6
|
+
export interface ToggleVariantOptions {
|
|
7
|
+
variant?: ToggleVariant | null;
|
|
8
|
+
size?: ToggleSize | null;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Class names for a toggle look. Use it to give another pressable element,
|
|
13
|
+
* such as a Base UI `Toggle` inside your own group, the same style.
|
|
14
|
+
*/
|
|
15
|
+
export declare function toggleVariants({ variant, size, className, }?: ToggleVariantOptions): string;
|
|
16
|
+
export interface ToggleProps<Value extends string = string> extends BaseToggle.Props<Value> {
|
|
17
|
+
/** `default` is borderless. `outline` draws a control border. */
|
|
18
|
+
variant?: ToggleVariant | null;
|
|
19
|
+
/** `sm` is 28px, `default` 32px, and `lg` 36px tall. */
|
|
20
|
+
size?: ToggleSize | null;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* A two-state button. It sets `aria-pressed` and `data-pressed` while on.
|
|
24
|
+
* Use `pressed` and `onPressedChange` to control it, or `defaultPressed`.
|
|
25
|
+
* An icon-only toggle needs an `aria-label`.
|
|
26
|
+
*/
|
|
27
|
+
export declare function Toggle<Value extends string = string>({ variant, size, className, ...props }: ToggleProps<Value>): import("react").JSX.Element;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Toggle as BaseToggle } from "@base-ui/react/toggle";
|
|
4
|
+
import { cn, stateClassName } from "../internal/classes.js";
|
|
5
|
+
export const toggleVariantNames = ["default", "outline"];
|
|
6
|
+
export const toggleSizeNames = ["default", "sm", "lg"];
|
|
7
|
+
/**
|
|
8
|
+
* Class names for a toggle look. Use it to give another pressable element,
|
|
9
|
+
* such as a Base UI `Toggle` inside your own group, the same style.
|
|
10
|
+
*/
|
|
11
|
+
export function toggleVariants({ variant, size, className, } = {}) {
|
|
12
|
+
return cn("sprout-toggle", `sprout-toggle-variant-${variant ?? "default"}`, `sprout-toggle-size-${size ?? "default"}`, className);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* A two-state button. It sets `aria-pressed` and `data-pressed` while on.
|
|
16
|
+
* Use `pressed` and `onPressedChange` to control it, or `defaultPressed`.
|
|
17
|
+
* An icon-only toggle needs an `aria-label`.
|
|
18
|
+
*/
|
|
19
|
+
export function Toggle({ variant, size, className, ...props }) {
|
|
20
|
+
return (_jsx(BaseToggle, { "data-slot": "toggle", "data-variant": variant ?? "default", "data-size": size ?? "default", ...props, className: stateClassName(toggleVariants({ variant, size }), className) }));
|
|
21
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
export declare const toolActivityStatusNames: readonly ["queued", "running", "waiting", "completed", "blocked", "failed", "cancelled", "unknown"];
|
|
3
|
+
export declare const toolActivityVariantNames: readonly ["collapsible", "stepper", "transcript"];
|
|
4
|
+
export type ToolActivityStatus = (typeof toolActivityStatusNames)[number];
|
|
5
|
+
export type ToolActivityVariant = (typeof toolActivityVariantNames)[number];
|
|
6
|
+
export interface ToolActivitySource {
|
|
7
|
+
url: string;
|
|
8
|
+
title: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ToolActivityItem {
|
|
11
|
+
id: string;
|
|
12
|
+
label: string;
|
|
13
|
+
status: ToolActivityStatus;
|
|
14
|
+
/** A 14px icon or `BrandIcon size="inline"` for the tool or app. */
|
|
15
|
+
visual: ReactNode;
|
|
16
|
+
/** One line under the label. Red when the item is `failed` or `blocked`. */
|
|
17
|
+
detail?: string | undefined;
|
|
18
|
+
/** Extra content under the row, lined up with the label, such as a retry button or a details toggle. */
|
|
19
|
+
details?: ReactNode;
|
|
20
|
+
/** Web pages the tool read. Shown as source chips. */
|
|
21
|
+
urls?: readonly string[] | undefined;
|
|
22
|
+
/** Pages that could not be read. Their chips show a warning. */
|
|
23
|
+
failedUrls?: readonly string[] | undefined;
|
|
24
|
+
/** The search text a web search used. */
|
|
25
|
+
query?: string | undefined;
|
|
26
|
+
/** Titles for `urls`. Chips without a title show the address. */
|
|
27
|
+
sources?: readonly ToolActivitySource[] | undefined;
|
|
28
|
+
}
|
|
29
|
+
/** Returns an image address for a page's icon, or nothing to show a globe. */
|
|
30
|
+
export type ToolActivitySourceIcon = (url: string) => string | null | undefined;
|
|
31
|
+
export interface ActivityPanelProps {
|
|
32
|
+
/** Shows a spinner and “Working…”. Otherwise the trigger reads “Worked”. */
|
|
33
|
+
working: boolean;
|
|
34
|
+
/** What is happening now, shown beside “Working…”. */
|
|
35
|
+
activityLabel?: string | null | undefined;
|
|
36
|
+
/** Draws a line under the panel when a result follows it. */
|
|
37
|
+
hasResult?: boolean | undefined;
|
|
38
|
+
/** Closes the panel once work stops, and reopens it when work restarts. */
|
|
39
|
+
collapseWhenDone?: boolean | undefined;
|
|
40
|
+
className?: string | undefined;
|
|
41
|
+
children: ReactNode;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* A collapsible frame for live agent work. It holds a scrolling timeline,
|
|
45
|
+
* usually a stepper `ToolActivity`, and is at most 40% of its parent's height.
|
|
46
|
+
*/
|
|
47
|
+
export declare function ActivityPanel({ working, activityLabel, hasResult, collapseWhenDone, className, children, }: ActivityPanelProps): import("react").JSX.Element;
|
|
48
|
+
export interface ToolActivityProps {
|
|
49
|
+
items: ToolActivityItem[];
|
|
50
|
+
/** The reply is still working, even if no item is running. */
|
|
51
|
+
active?: boolean | undefined;
|
|
52
|
+
/** The accessible name of the list. */
|
|
53
|
+
label?: string | undefined;
|
|
54
|
+
/** What is happening now. `transcript` shows it after “Working…”. */
|
|
55
|
+
activityLabel?: string | null | undefined;
|
|
56
|
+
/** Called when someone opens or closes the list. */
|
|
57
|
+
onToggle?: (() => void) | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* `collapsible` opens while work is pending and closes when it settles.
|
|
60
|
+
* `stepper` is always open, oldest first, and follows the newest row in an
|
|
61
|
+
* `ActivityPanel`. `transcript` starts closed under a chat reply.
|
|
62
|
+
*/
|
|
63
|
+
variant?: ToolActivityVariant | undefined;
|
|
64
|
+
/** Stepper only: loads older rows when the top of the panel scrolls in. */
|
|
65
|
+
onLoadOlder?: (() => void) | undefined;
|
|
66
|
+
/** Stepper only: retries a failed older load. */
|
|
67
|
+
onRetryOlder?: (() => void) | undefined;
|
|
68
|
+
hasOlder?: boolean | undefined;
|
|
69
|
+
loadingOlder?: boolean | undefined;
|
|
70
|
+
olderError?: boolean | undefined;
|
|
71
|
+
/** Resolves an icon image for a source chip. Without it chips show a globe. */
|
|
72
|
+
sourceIcon?: ToolActivitySourceIcon | undefined;
|
|
73
|
+
className?: string | undefined;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* A timeline of the tools an agent used, with a status mark per row,
|
|
77
|
+
* web sources, and a summary trigger that counts problems.
|
|
78
|
+
*/
|
|
79
|
+
export declare function ToolActivity({ items, active, label, activityLabel, onToggle, variant, onLoadOlder, onRetryOlder, hasOlder, loadingOlder, olderError, sourceIcon, className, }: ToolActivityProps): import("react").JSX.Element | null;
|