@nadicodeai/ui 0.21.0 → 1.0.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/AGENTS.md +6 -7
- package/LICENSES/PAPER-SHADERS-APACHE-2.0.txt +186 -0
- package/NOTICE +12 -0
- package/README.md +14 -21
- package/dist/agents.d.ts +10 -0
- package/dist/agents.d.ts.map +1 -0
- package/dist/agents.js +10 -0
- package/dist/components/agent-card.d.ts +13 -0
- package/dist/components/agent-card.d.ts.map +1 -0
- package/dist/components/agent-card.js +15 -0
- package/dist/components/agent-visual.d.ts +17 -0
- package/dist/components/agent-visual.d.ts.map +1 -0
- package/dist/components/agent-visual.js +59 -0
- package/dist/components/alert-dialog.js +1 -1
- package/dist/components/badge.d.ts +1 -1
- package/dist/components/badge.d.ts.map +1 -1
- package/dist/components/badge.js +9 -0
- package/dist/components/button.d.ts +1 -1
- package/dist/components/card.d.ts +5 -3
- package/dist/components/card.d.ts.map +1 -1
- package/dist/components/card.js +7 -7
- package/dist/components/chart.js +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/context-menu.js +1 -1
- package/dist/components/dialog.js +1 -1
- package/dist/components/drawer.js +1 -1
- package/dist/components/dropdown-menu.js +1 -1
- package/dist/components/empty.d.ts +5 -2
- package/dist/components/empty.d.ts.map +1 -1
- package/dist/components/empty.js +3 -3
- package/dist/components/feedback-state.js +1 -1
- package/dist/components/glass-control.d.ts +7 -0
- package/dist/components/glass-control.d.ts.map +1 -0
- package/dist/components/glass-control.js +14 -0
- package/dist/components/hover-card.js +1 -1
- package/dist/components/label-system.d.ts +1 -10
- package/dist/components/label-system.d.ts.map +1 -1
- package/dist/components/label-system.js +1 -7
- package/dist/components/live-demo.js +1 -1
- package/dist/components/menubar.js +1 -1
- package/dist/components/nav-bar.d.ts +6 -8
- package/dist/components/nav-bar.d.ts.map +1 -1
- package/dist/components/nav-bar.js +8 -9
- package/dist/components/navigation-menu.js +2 -2
- package/dist/components/popover.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/sheet.js +1 -1
- package/dist/components/sidebar.js +1 -1
- package/dist/components/sonner.js +2 -2
- package/dist/components/testimonials.d.ts +1 -1
- package/dist/components/testimonials.js +2 -2
- package/dist/components/tooltip.js +1 -1
- package/dist/components/use-case-bento.d.ts +2 -4
- package/dist/components/use-case-bento.d.ts.map +1 -1
- package/dist/components/use-case-bento.js +2 -3
- package/dist/hooks/index.d.ts +0 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +0 -1
- package/dist/index.d.ts +3 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -16
- package/dist/internal/agent-visual/color.d.ts +4 -0
- package/dist/internal/agent-visual/color.d.ts.map +1 -0
- package/dist/internal/agent-visual/color.js +39 -0
- package/dist/internal/agent-visual/poster.d.ts +6 -0
- package/dist/internal/agent-visual/poster.d.ts.map +1 -0
- package/dist/internal/agent-visual/poster.js +35 -0
- package/dist/internal/agent-visual/recipes.d.ts +15 -0
- package/dist/internal/agent-visual/recipes.d.ts.map +1 -0
- package/dist/internal/agent-visual/recipes.js +72 -0
- package/dist/internal/agent-visual/renderer.d.ts +10 -0
- package/dist/internal/agent-visual/renderer.d.ts.map +1 -0
- package/dist/internal/agent-visual/renderer.js +112 -0
- package/dist/internal/agent-visual/shader.d.ts +2 -0
- package/dist/internal/agent-visual/shader.d.ts.map +1 -0
- package/dist/internal/agent-visual/shader.js +158 -0
- package/dist/internal/assistant-ui/attachment.d.ts +5 -0
- package/dist/internal/assistant-ui/attachment.d.ts.map +1 -0
- package/dist/internal/assistant-ui/attachment.js +93 -0
- package/dist/internal/assistant-ui/follow-up-suggestions.d.ts +3 -0
- package/dist/internal/assistant-ui/follow-up-suggestions.d.ts.map +1 -0
- package/dist/internal/assistant-ui/follow-up-suggestions.js +8 -0
- package/dist/internal/assistant-ui/markdown-text.d.ts +2 -0
- package/dist/internal/assistant-ui/markdown-text.d.ts.map +1 -0
- package/dist/internal/assistant-ui/markdown-text.js +54 -0
- package/dist/internal/assistant-ui/reasoning.d.ts +31 -0
- package/dist/internal/assistant-ui/reasoning.d.ts.map +1 -0
- package/dist/internal/assistant-ui/reasoning.js +118 -0
- package/dist/internal/assistant-ui/thread.d.ts +26 -0
- package/dist/internal/assistant-ui/thread.d.ts.map +1 -0
- package/dist/internal/assistant-ui/thread.js +118 -0
- package/dist/internal/assistant-ui/tool-fallback.d.ts +10 -0
- package/dist/internal/assistant-ui/tool-fallback.d.ts.map +1 -0
- package/dist/internal/assistant-ui/tool-fallback.js +163 -0
- package/dist/internal/assistant-ui/tool-group.d.ts +18 -0
- package/dist/internal/assistant-ui/tool-group.d.ts.map +1 -0
- package/dist/internal/assistant-ui/tool-group.js +44 -0
- package/dist/internal/assistant-ui/tooltip-icon-button.d.ts +8 -0
- package/dist/internal/assistant-ui/tooltip-icon-button.d.ts.map +1 -0
- package/dist/internal/assistant-ui/tooltip-icon-button.js +10 -0
- package/dist/styles/globals.css +24 -209
- package/docs/agents/nadicodeai-ui.md +8 -8
- package/docs/component-classification.md +1 -1
- package/docs/consuming-cross-repo.md +12 -4
- package/docs/contract.md +83 -7
- package/docs/migration/1.0.0.md +75 -0
- package/docs/migration/base-ui-migration.md +0 -11
- package/docs/product-compositions.md +1 -1
- package/llms.txt +7 -6
- package/package.json +17 -29
- package/skills/nadicodeai-ui/SKILL.md +11 -7
- package/dist/ai-elements.d.ts +0 -49
- package/dist/ai-elements.d.ts.map +0 -1
- package/dist/ai-elements.js +0 -48
- package/dist/components/agent-avatar.d.ts +0 -7
- package/dist/components/agent-avatar.d.ts.map +0 -1
- package/dist/components/agent-avatar.js +0 -6
- package/dist/components/agent-chat.d.ts +0 -20
- package/dist/components/agent-chat.d.ts.map +0 -1
- package/dist/components/agent-chat.js +0 -10
- package/dist/components/agent-composer.d.ts +0 -56
- package/dist/components/agent-composer.d.ts.map +0 -1
- package/dist/components/agent-composer.js +0 -56
- package/dist/components/agent-message.d.ts +0 -117
- package/dist/components/agent-message.d.ts.map +0 -1
- package/dist/components/agent-message.js +0 -99
- package/dist/components/agent-thread.d.ts +0 -26
- package/dist/components/agent-thread.d.ts.map +0 -1
- package/dist/components/agent-thread.js +0 -63
- package/dist/components/agent-tool-approval.d.ts +0 -27
- package/dist/components/agent-tool-approval.d.ts.map +0 -1
- package/dist/components/agent-tool-approval.js +0 -43
- package/dist/components/ai-elements/agent.d.ts +0 -27
- package/dist/components/ai-elements/agent.d.ts.map +0 -1
- package/dist/components/ai-elements/agent.js +0 -25
- package/dist/components/ai-elements/artifact.d.ts +0 -24
- package/dist/components/ai-elements/artifact.d.ts.map +0 -1
- package/dist/components/ai-elements/artifact.js +0 -20
- package/dist/components/ai-elements/attachments.d.ts +0 -55
- package/dist/components/ai-elements/attachments.d.ts.map +0 -1
- package/dist/components/ai-elements/attachments.js +0 -125
- package/dist/components/ai-elements/audio-player.d.ts +0 -30
- package/dist/components/ai-elements/audio-player.d.ts.map +0 -1
- package/dist/components/ai-elements/audio-player.js +0 -41
- package/dist/components/ai-elements/canvas.d.ts +0 -8
- package/dist/components/ai-elements/canvas.d.ts.map +0 -1
- package/dist/components/ai-elements/canvas.js +0 -5
- package/dist/components/ai-elements/chain-of-thought.d.ts +0 -30
- package/dist/components/ai-elements/chain-of-thought.d.ts.map +0 -1
- package/dist/components/ai-elements/chain-of-thought.js +0 -49
- package/dist/components/ai-elements/checkpoint.d.ts +0 -12
- package/dist/components/ai-elements/checkpoint.d.ts.map +0 -1
- package/dist/components/ai-elements/checkpoint.js +0 -10
- package/dist/components/ai-elements/code-block.d.ts +0 -53
- package/dist/components/ai-elements/code-block.d.ts.map +0 -1
- package/dist/components/ai-elements/code-block.js +0 -239
- package/dist/components/ai-elements/commit.d.ts +0 -65
- package/dist/components/ai-elements/commit.d.ts.map +0 -1
- package/dist/components/ai-elements/commit.js +0 -83
- package/dist/components/ai-elements/confirmation.d.ts +0 -50
- package/dist/components/ai-elements/confirmation.d.ts.map +0 -1
- package/dist/components/ai-elements/confirmation.js +0 -57
- package/dist/components/ai-elements/connection.d.ts +0 -6
- package/dist/components/ai-elements/connection.d.ts.map +0 -1
- package/dist/components/ai-elements/connection.js +0 -10
- package/dist/components/ai-elements/context.d.ts +0 -33
- package/dist/components/ai-elements/context.d.ts.map +0 -1
- package/dist/components/ai-elements/context.js +0 -147
- package/dist/components/ai-elements/controls.d.ts +0 -5
- package/dist/components/ai-elements/controls.d.ts.map +0 -1
- package/dist/components/ai-elements/controls.js +0 -5
- package/dist/components/ai-elements/conversation.d.ts +0 -24
- package/dist/components/ai-elements/conversation.d.ts.map +0 -1
- package/dist/components/ai-elements/conversation.js +0 -41
- package/dist/components/ai-elements/edge.d.ts +0 -6
- package/dist/components/ai-elements/edge.d.ts.map +0 -1
- package/dist/components/ai-elements/edge.js +0 -88
- package/dist/components/ai-elements/environment-variables.d.ts +0 -39
- package/dist/components/ai-elements/environment-variables.d.ts.map +0 -1
- package/dist/components/ai-elements/environment-variables.js +0 -60
- package/dist/components/ai-elements/file-tree.d.ts +0 -27
- package/dist/components/ai-elements/file-tree.d.ts.map +0 -1
- package/dist/components/ai-elements/file-tree.js +0 -73
- package/dist/components/ai-elements/image.d.ts +0 -7
- package/dist/components/ai-elements/image.d.ts.map +0 -1
- package/dist/components/ai-elements/image.js +0 -3
- package/dist/components/ai-elements/inline-citation.d.ts +0 -39
- package/dist/components/ai-elements/inline-citation.d.ts.map +0 -1
- package/dist/components/ai-elements/inline-citation.js +0 -86
- package/dist/components/ai-elements/jsx-preview.d.ts +0 -30
- package/dist/components/ai-elements/jsx-preview.d.ts.map +0 -1
- package/dist/components/ai-elements/jsx-preview.js +0 -159
- package/dist/components/ai-elements/message.d.ts +0 -38
- package/dist/components/ai-elements/message.d.ts.map +0 -1
- package/dist/components/ai-elements/message.js +0 -91
- package/dist/components/ai-elements/mic-selector.d.ts +0 -46
- package/dist/components/ai-elements/mic-selector.d.ts.map +0 -1
- package/dist/components/ai-elements/mic-selector.js +0 -180
- package/dist/components/ai-elements/model-selector.d.ts +0 -36
- package/dist/components/ai-elements/model-selector.d.ts.map +0 -1
- package/dist/components/ai-elements/model-selector.js +0 -18
- package/dist/components/ai-elements/node.d.ts +0 -22
- package/dist/components/ai-elements/node.d.ts.map +0 -1
- package/dist/components/ai-elements/node.js +0 -12
- package/dist/components/ai-elements/open-in-chat.d.ts +0 -27
- package/dist/components/ai-elements/open-in-chat.d.ts.map +0 -1
- package/dist/components/ai-elements/open-in-chat.js +0 -81
- package/dist/components/ai-elements/package-info.d.ts +0 -30
- package/dist/components/ai-elements/package-info.d.ts.map +0 -1
- package/dist/components/ai-elements/package-info.js +0 -50
- package/dist/components/ai-elements/panel.d.ts +0 -6
- package/dist/components/ai-elements/panel.d.ts.map +0 -1
- package/dist/components/ai-elements/panel.js +0 -5
- package/dist/components/ai-elements/persona.d.ts +0 -49
- package/dist/components/ai-elements/persona.d.ts.map +0 -1
- package/dist/components/ai-elements/persona.js +0 -175
- package/dist/components/ai-elements/plan.d.ts +0 -27
- package/dist/components/ai-elements/plan.d.ts.map +0 -1
- package/dist/components/ai-elements/plan.js +0 -34
- package/dist/components/ai-elements/prompt-input.d.ts +0 -149
- package/dist/components/ai-elements/prompt-input.d.ts.map +0 -1
- package/dist/components/ai-elements/prompt-input.js +0 -704
- package/dist/components/ai-elements/queue.d.ts +0 -62
- package/dist/components/ai-elements/queue.d.ts.map +0 -1
- package/dist/components/ai-elements/queue.js +0 -24
- package/dist/components/ai-elements/reasoning.d.ts +0 -27
- package/dist/components/ai-elements/reasoning.d.ts.map +0 -1
- package/dist/components/ai-elements/reasoning.js +0 -92
- package/dist/components/ai-elements/sandbox.d.ts +0 -25
- package/dist/components/ai-elements/sandbox.d.ts.map +0 -1
- package/dist/components/ai-elements/sandbox.js +0 -15
- package/dist/components/ai-elements/schema-display.d.ts +0 -56
- package/dist/components/ai-elements/schema-display.d.ts.map +0 -1
- package/dist/components/ai-elements/schema-display.js +0 -90
- package/dist/components/ai-elements/shimmer.d.ts +0 -10
- package/dist/components/ai-elements/shimmer.d.ts.map +0 -1
- package/dist/components/ai-elements/shimmer.js +0 -11
- package/dist/components/ai-elements/snippet.d.ts +0 -19
- package/dist/components/ai-elements/snippet.d.ts.map +0 -1
- package/dist/components/ai-elements/snippet.js +0 -32
- package/dist/components/ai-elements/sources.d.ts +0 -13
- package/dist/components/ai-elements/sources.d.ts.map +0 -1
- package/dist/components/ai-elements/sources.js +0 -9
- package/dist/components/ai-elements/speech-input.d.ts +0 -55
- package/dist/components/ai-elements/speech-input.d.ts.map +0 -1
- package/dist/components/ai-elements/speech-input.js +0 -187
- package/dist/components/ai-elements/stack-trace.d.ts +0 -38
- package/dist/components/ai-elements/stack-trace.d.ts.map +0 -1
- package/dist/components/ai-elements/stack-trace.js +0 -181
- package/dist/components/ai-elements/suggestion.d.ts +0 -11
- package/dist/components/ai-elements/suggestion.d.ts.map +0 -1
- package/dist/components/ai-elements/suggestion.js +0 -13
- package/dist/components/ai-elements/task.d.ts +0 -15
- package/dist/components/ai-elements/task.d.ts.map +0 -1
- package/dist/components/ai-elements/task.js +0 -10
- package/dist/components/ai-elements/terminal.d.ts +0 -28
- package/dist/components/ai-elements/terminal.d.ts.map +0 -1
- package/dist/components/ai-elements/terminal.js +0 -55
- package/dist/components/ai-elements/test-results.d.ts +0 -59
- package/dist/components/ai-elements/test-results.d.ts.map +0 -1
- package/dist/components/ai-elements/test-results.js +0 -98
- package/dist/components/ai-elements/tool.d.ts +0 -32
- package/dist/components/ai-elements/tool.d.ts.map +0 -1
- package/dist/components/ai-elements/tool.js +0 -49
- package/dist/components/ai-elements/toolbar.d.ts +0 -6
- package/dist/components/ai-elements/toolbar.d.ts.map +0 -1
- package/dist/components/ai-elements/toolbar.js +0 -5
- package/dist/components/ai-elements/transcription.d.ts +0 -17
- package/dist/components/ai-elements/transcription.d.ts.map +0 -1
- package/dist/components/ai-elements/transcription.js +0 -36
- package/dist/components/ai-elements/voice-selector.d.ts +0 -65
- package/dist/components/ai-elements/voice-selector.d.ts.map +0 -1
- package/dist/components/ai-elements/voice-selector.js +0 -224
- package/dist/components/ai-elements/web-preview.d.ts +0 -35
- package/dist/components/ai-elements/web-preview.d.ts.map +0 -1
- package/dist/components/ai-elements/web-preview.js +0 -66
- package/dist/components/artifact-panel.d.ts +0 -130
- package/dist/components/artifact-panel.d.ts.map +0 -1
- package/dist/components/artifact-panel.js +0 -180
- package/dist/components/attachment.d.ts +0 -24
- package/dist/components/attachment.d.ts.map +0 -1
- package/dist/components/attachment.js +0 -68
- package/dist/components/bubble.d.ts +0 -17
- package/dist/components/bubble.d.ts.map +0 -1
- package/dist/components/bubble.js +0 -59
- package/dist/components/demo-surface.d.ts +0 -34
- package/dist/components/demo-surface.d.ts.map +0 -1
- package/dist/components/demo-surface.js +0 -21
- package/dist/components/files-preview.d.ts +0 -36
- package/dist/components/files-preview.d.ts.map +0 -1
- package/dist/components/files-preview.js +0 -85
- package/dist/components/marker.d.ts +0 -11
- package/dist/components/marker.d.ts.map +0 -1
- package/dist/components/marker.js +0 -34
- package/dist/components/message-scroller.d.ts +0 -17
- package/dist/components/message-scroller.d.ts.map +0 -1
- package/dist/components/message-scroller.js +0 -29
- package/dist/components/message.d.ts +0 -11
- package/dist/components/message.d.ts.map +0 -1
- package/dist/components/message.js +0 -21
- package/dist/components/state-notice.d.ts +0 -13
- package/dist/components/state-notice.d.ts.map +0 -1
- package/dist/components/state-notice.js +0 -8
- package/dist/components/watch-it-work-band.d.ts +0 -12
- package/dist/components/watch-it-work-band.d.ts.map +0 -1
- package/dist/components/watch-it-work-band.js +0 -8
- package/dist/hooks/use-controllable-state.d.ts +0 -9
- package/dist/hooks/use-controllable-state.d.ts.map +0 -1
- package/dist/hooks/use-controllable-state.js +0 -23
- package/dist/lib/agent-attachment.d.ts +0 -11
- package/dist/lib/agent-attachment.d.ts.map +0 -1
- package/dist/lib/agent-attachment.js +0 -19
- package/dist/lib/agent-contracts.d.ts +0 -132
- package/dist/lib/agent-contracts.d.ts.map +0 -1
- package/dist/lib/agent-contracts.js +0 -6
- package/dist/lib/agent-state.d.ts +0 -22
- package/dist/lib/agent-state.d.ts.map +0 -1
- package/dist/lib/agent-state.js +0 -96
- package/dist/lib/agent-work-state.d.ts +0 -36
- package/dist/lib/agent-work-state.d.ts.map +0 -1
- package/dist/lib/agent-work-state.js +0 -36
- package/dist/lib/message-scroller-primitive/components.d.ts +0 -17
- package/dist/lib/message-scroller-primitive/components.d.ts.map +0 -1
- package/dist/lib/message-scroller-primitive/components.js +0 -204
- package/dist/lib/message-scroller-primitive/geometry.d.ts +0 -51
- package/dist/lib/message-scroller-primitive/geometry.d.ts.map +0 -1
- package/dist/lib/message-scroller-primitive/geometry.js +0 -199
- package/dist/lib/message-scroller-primitive/index.d.ts +0 -12
- package/dist/lib/message-scroller-primitive/index.d.ts.map +0 -1
- package/dist/lib/message-scroller-primitive/index.js +0 -12
- package/dist/lib/message-scroller-primitive/stores.d.ts +0 -6
- package/dist/lib/message-scroller-primitive/stores.d.ts.map +0 -1
- package/dist/lib/message-scroller-primitive/stores.js +0 -53
- package/dist/lib/message-scroller-primitive/types.d.ts +0 -88
- package/dist/lib/message-scroller-primitive/types.d.ts.map +0 -1
- package/dist/lib/message-scroller-primitive/types.js +0 -40
- package/dist/lib/message-scroller-primitive/use-message-scroller-commands.d.ts +0 -19
- package/dist/lib/message-scroller-primitive/use-message-scroller-commands.d.ts.map +0 -1
- package/dist/lib/message-scroller-primitive/use-message-scroller-commands.js +0 -188
- package/dist/lib/message-scroller-primitive/use-message-scroller-controller.d.ts +0 -7
- package/dist/lib/message-scroller-primitive/use-message-scroller-controller.d.ts.map +0 -1
- package/dist/lib/message-scroller-primitive/use-message-scroller-controller.js +0 -506
- package/dist/lib/message-scroller-primitive/use-message-scroller-refs.d.ts +0 -49
- package/dist/lib/message-scroller-primitive/use-message-scroller-refs.d.ts.map +0 -1
- package/dist/lib/message-scroller-primitive/use-message-scroller-refs.js +0 -90
- package/dist/lib/message-scroller-primitive/use-render.d.ts +0 -22
- package/dist/lib/message-scroller-primitive/use-render.d.ts.map +0 -1
- package/dist/lib/message-scroller-primitive/use-render.js +0 -113
- package/dist/lib/message-scroller-primitive/utils.d.ts +0 -4
- package/dist/lib/message-scroller-primitive/utils.d.ts.map +0 -1
- package/dist/lib/message-scroller-primitive/utils.js +0 -9
- package/docs/agent-work-surfaces.md +0 -132
- package/docs/migration/ai-elements-vendoring.md +0 -29
- package/docs/terminal-tui-semantics.md +0 -172
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { Button } from "../button";
|
|
2
|
-
import { Collapsible, CollapsibleContent } from "../collapsible";
|
|
3
|
-
import { ScrollArea } from "../scroll-area";
|
|
4
|
-
import type { ComponentProps } from "react";
|
|
5
|
-
export interface QueueMessagePart {
|
|
6
|
-
type: string;
|
|
7
|
-
text?: string;
|
|
8
|
-
url?: string;
|
|
9
|
-
filename?: string;
|
|
10
|
-
mediaType?: string;
|
|
11
|
-
}
|
|
12
|
-
export interface QueueMessage {
|
|
13
|
-
id: string;
|
|
14
|
-
parts: QueueMessagePart[];
|
|
15
|
-
}
|
|
16
|
-
export interface QueueTodo {
|
|
17
|
-
id: string;
|
|
18
|
-
title: string;
|
|
19
|
-
description?: string;
|
|
20
|
-
status?: "pending" | "completed";
|
|
21
|
-
}
|
|
22
|
-
export type QueueItemProps = ComponentProps<"li">;
|
|
23
|
-
export declare const QueueItem: ({ className, ...props }: QueueItemProps) => import("react").JSX.Element;
|
|
24
|
-
export type QueueItemIndicatorProps = ComponentProps<"span"> & {
|
|
25
|
-
completed?: boolean;
|
|
26
|
-
};
|
|
27
|
-
export declare const QueueItemIndicator: ({ completed, className, ...props }: QueueItemIndicatorProps) => import("react").JSX.Element;
|
|
28
|
-
export type QueueItemContentProps = ComponentProps<"span"> & {
|
|
29
|
-
completed?: boolean;
|
|
30
|
-
};
|
|
31
|
-
export declare const QueueItemContent: ({ completed, className, ...props }: QueueItemContentProps) => import("react").JSX.Element;
|
|
32
|
-
export type QueueItemDescriptionProps = ComponentProps<"div"> & {
|
|
33
|
-
completed?: boolean;
|
|
34
|
-
};
|
|
35
|
-
export declare const QueueItemDescription: ({ completed, className, ...props }: QueueItemDescriptionProps) => import("react").JSX.Element;
|
|
36
|
-
export type QueueItemActionsProps = ComponentProps<"div">;
|
|
37
|
-
export declare const QueueItemActions: ({ className, ...props }: QueueItemActionsProps) => import("react").JSX.Element;
|
|
38
|
-
export type QueueItemActionProps = Omit<ComponentProps<typeof Button>, "variant" | "size">;
|
|
39
|
-
export declare const QueueItemAction: ({ className, ...props }: QueueItemActionProps) => import("react").JSX.Element;
|
|
40
|
-
export type QueueItemAttachmentProps = ComponentProps<"div">;
|
|
41
|
-
export declare const QueueItemAttachment: ({ className, ...props }: QueueItemAttachmentProps) => import("react").JSX.Element;
|
|
42
|
-
export type QueueItemImageProps = ComponentProps<"img">;
|
|
43
|
-
export declare const QueueItemImage: ({ className, ...props }: QueueItemImageProps) => import("react").JSX.Element;
|
|
44
|
-
export type QueueItemFileProps = ComponentProps<"span">;
|
|
45
|
-
export declare const QueueItemFile: ({ children, className, ...props }: QueueItemFileProps) => import("react").JSX.Element;
|
|
46
|
-
export type QueueListProps = ComponentProps<typeof ScrollArea>;
|
|
47
|
-
export declare const QueueList: ({ children, className, ...props }: QueueListProps) => import("react").JSX.Element;
|
|
48
|
-
export type QueueSectionProps = ComponentProps<typeof Collapsible>;
|
|
49
|
-
export declare const QueueSection: ({ className, defaultOpen, ...props }: QueueSectionProps) => import("react").JSX.Element;
|
|
50
|
-
export type QueueSectionTriggerProps = ComponentProps<"button">;
|
|
51
|
-
export declare const QueueSectionTrigger: ({ children, className, ...props }: QueueSectionTriggerProps) => import("react").JSX.Element;
|
|
52
|
-
export type QueueSectionLabelProps = ComponentProps<"span"> & {
|
|
53
|
-
count?: number;
|
|
54
|
-
label: string;
|
|
55
|
-
icon?: React.ReactNode;
|
|
56
|
-
};
|
|
57
|
-
export declare const QueueSectionLabel: ({ count, label, icon, className, ...props }: QueueSectionLabelProps) => import("react").JSX.Element;
|
|
58
|
-
export type QueueSectionContentProps = ComponentProps<typeof CollapsibleContent>;
|
|
59
|
-
export declare const QueueSectionContent: ({ className, ...props }: QueueSectionContentProps) => import("react").JSX.Element;
|
|
60
|
-
export type QueueProps = ComponentProps<"div">;
|
|
61
|
-
export declare const Queue: ({ className, ...props }: QueueProps) => import("react").JSX.Element;
|
|
62
|
-
//# sourceMappingURL=queue.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/queue.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { Button } from "../button.js";
|
|
4
|
-
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../collapsible.js";
|
|
5
|
-
import { ScrollArea } from "../scroll-area.js";
|
|
6
|
-
import { cn } from "../../lib/utils.js";
|
|
7
|
-
import { ChevronDownIcon, PaperclipIcon } from "lucide-react";
|
|
8
|
-
export const QueueItem = ({ className, ...props }) => (_jsx("li", { className: cn("group flex flex-col gap-1 rounded-md px-3 py-1 text-sm transition-colors hover:bg-muted", className), ...props }));
|
|
9
|
-
export const QueueItemIndicator = ({ completed = false, className, ...props }) => (_jsx("span", { className: cn("mt-0.5 inline-block size-2.5 rounded-full border", completed
|
|
10
|
-
? "border-muted-foreground/20 bg-muted-foreground/10"
|
|
11
|
-
: "border-muted-foreground/50", className), ...props }));
|
|
12
|
-
export const QueueItemContent = ({ completed = false, className, ...props }) => (_jsx("span", { className: cn("line-clamp-1 grow break-words", completed ? "text-muted-foreground/50 line-through" : "text-muted-foreground", className), ...props }));
|
|
13
|
-
export const QueueItemDescription = ({ completed = false, className, ...props }) => (_jsx("div", { className: cn("ml-6 text-xs", completed ? "text-muted-foreground/40 line-through" : "text-muted-foreground", className), ...props }));
|
|
14
|
-
export const QueueItemActions = ({ className, ...props }) => (_jsx("div", { className: cn("flex gap-1", className), ...props }));
|
|
15
|
-
export const QueueItemAction = ({ className, ...props }) => (_jsx(Button, { className: cn("size-auto rounded p-1 text-muted-foreground opacity-0 transition-opacity hover:bg-muted-foreground/10 hover:text-foreground group-hover:opacity-100", className), size: "icon", type: "button", variant: "ghost", ...props }));
|
|
16
|
-
export const QueueItemAttachment = ({ className, ...props }) => (_jsx("div", { className: cn("mt-1 flex flex-wrap gap-2", className), ...props }));
|
|
17
|
-
export const QueueItemImage = ({ className, ...props }) => (_jsx("img", { alt: "", className: cn("h-8 w-8 rounded border object-cover", className), height: 32, width: 32, ...props }));
|
|
18
|
-
export const QueueItemFile = ({ children, className, ...props }) => (_jsxs("span", { className: cn("flex items-center gap-1 rounded border bg-muted px-2 py-1 text-xs", className), ...props, children: [_jsx(PaperclipIcon, { size: 12 }), _jsx("span", { className: "max-w-[100px] truncate", children: children })] }));
|
|
19
|
-
export const QueueList = ({ children, className, ...props }) => (_jsx(ScrollArea, { className: cn("mt-2 -mb-1", className), ...props, children: _jsx("div", { className: "max-h-40 pr-4", children: _jsx("ul", { children: children }) }) }));
|
|
20
|
-
export const QueueSection = ({ className, defaultOpen = true, ...props }) => (_jsx(Collapsible, { className: cn(className), defaultOpen: defaultOpen, ...props }));
|
|
21
|
-
export const QueueSectionTrigger = ({ children, className, ...props }) => (_jsx(CollapsibleTrigger, { render: _jsx("button", { className: cn("group flex w-full items-center justify-between rounded-md bg-muted/40 px-3 py-2 text-left font-medium text-muted-foreground text-sm transition-colors hover:bg-muted", className), type: "button", ...props, children: children }) }));
|
|
22
|
-
export const QueueSectionLabel = ({ count, label, icon, className, ...props }) => (_jsxs("span", { className: cn("flex items-center gap-2", className), ...props, children: [_jsx(ChevronDownIcon, { className: "nc-transition-transform -rotate-90 size-4 group-data-panel-open:rotate-0" }), icon, _jsxs("span", { children: [count, " ", label] })] }));
|
|
23
|
-
export const QueueSectionContent = ({ className, ...props }) => (_jsx(CollapsibleContent, { className: cn(className), ...props }));
|
|
24
|
-
export const Queue = ({ className, ...props }) => (_jsx("div", { className: cn("flex flex-col gap-2 rounded-xl border border-border bg-background px-3 pt-2 pb-2 shadow-xs", className), ...props }));
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../collapsible";
|
|
2
|
-
import type { ComponentProps, ReactNode } from "react";
|
|
3
|
-
interface ReasoningContextValue {
|
|
4
|
-
isStreaming: boolean;
|
|
5
|
-
isOpen: boolean;
|
|
6
|
-
setIsOpen: (open: boolean) => void;
|
|
7
|
-
duration: number | undefined;
|
|
8
|
-
}
|
|
9
|
-
export declare const useReasoning: () => ReasoningContextValue;
|
|
10
|
-
export type ReasoningProps = ComponentProps<typeof Collapsible> & {
|
|
11
|
-
isStreaming?: boolean;
|
|
12
|
-
open?: boolean;
|
|
13
|
-
defaultOpen?: boolean;
|
|
14
|
-
onOpenChange?: (open: boolean) => void;
|
|
15
|
-
duration?: number;
|
|
16
|
-
};
|
|
17
|
-
export declare const Reasoning: import("react").MemoExoticComponent<({ className, isStreaming, open, defaultOpen, onOpenChange, duration: durationProp, children, ...props }: ReasoningProps) => import("react").JSX.Element>;
|
|
18
|
-
export type ReasoningTriggerProps = ComponentProps<typeof CollapsibleTrigger> & {
|
|
19
|
-
getThinkingMessage?: (isStreaming: boolean, duration?: number) => ReactNode;
|
|
20
|
-
};
|
|
21
|
-
export declare const ReasoningTrigger: import("react").MemoExoticComponent<({ className, children, getThinkingMessage, ...props }: ReasoningTriggerProps) => import("react").JSX.Element>;
|
|
22
|
-
export type ReasoningContentProps = ComponentProps<typeof CollapsibleContent> & {
|
|
23
|
-
children: string;
|
|
24
|
-
};
|
|
25
|
-
export declare const ReasoningContent: import("react").MemoExoticComponent<({ className, children, ...props }: ReasoningContentProps) => import("react").JSX.Element>;
|
|
26
|
-
export {};
|
|
27
|
-
//# sourceMappingURL=reasoning.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reasoning.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/reasoning.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAO/F,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAevD,UAAU,qBAAqB;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAID,eAAO,MAAM,YAAY,6BAMxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,GAAG;IAChE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAKF,eAAO,MAAM,SAAS,gJAUjB,cAAc,iCA4ElB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC,OAAO,kBAAkB,CAAC,GAAG;IAC9E,kBAAkB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,SAAS,CAAC;CAC7E,CAAC;AAYF,eAAO,MAAM,gBAAgB,8FAMxB,qBAAqB,iCAuBzB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC,OAAO,kBAAkB,CAAC,GAAG;IAC9E,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAIF,eAAO,MAAM,gBAAgB,0EAA4C,qBAAqB,iCAO5F,CAAC"}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { useControllableState } from "../../hooks/use-controllable-state.js";
|
|
4
|
-
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../collapsible.js";
|
|
5
|
-
import { cn } from "../../lib/utils.js";
|
|
6
|
-
import { cjk } from "@streamdown/cjk";
|
|
7
|
-
import { code } from "@streamdown/code";
|
|
8
|
-
import { math } from "@streamdown/math";
|
|
9
|
-
import { mermaid } from "@streamdown/mermaid";
|
|
10
|
-
import { BrainIcon, ChevronDownIcon } from "lucide-react";
|
|
11
|
-
import { createContext, memo, useCallback, useContext, useEffect, useMemo, useRef, useState, } from "react";
|
|
12
|
-
import { Streamdown } from "streamdown";
|
|
13
|
-
import { Shimmer } from "./shimmer.js";
|
|
14
|
-
const ReasoningContext = createContext(null);
|
|
15
|
-
export const useReasoning = () => {
|
|
16
|
-
const context = useContext(ReasoningContext);
|
|
17
|
-
if (!context) {
|
|
18
|
-
throw new Error("Reasoning components must be used within Reasoning");
|
|
19
|
-
}
|
|
20
|
-
return context;
|
|
21
|
-
};
|
|
22
|
-
const AUTO_CLOSE_DELAY = 1000;
|
|
23
|
-
const MS_IN_S = 1000;
|
|
24
|
-
export const Reasoning = memo(({ className, isStreaming = false, open, defaultOpen, onOpenChange, duration: durationProp, children, ...props }) => {
|
|
25
|
-
const resolvedDefaultOpen = defaultOpen ?? isStreaming;
|
|
26
|
-
// Track if defaultOpen was explicitly set to false (to prevent auto-open)
|
|
27
|
-
const isExplicitlyClosed = defaultOpen === false;
|
|
28
|
-
const [isOpen, setIsOpen] = useControllableState({
|
|
29
|
-
defaultProp: resolvedDefaultOpen,
|
|
30
|
-
onChange: onOpenChange,
|
|
31
|
-
prop: open,
|
|
32
|
-
});
|
|
33
|
-
const [duration, setDuration] = useControllableState({
|
|
34
|
-
defaultProp: undefined,
|
|
35
|
-
prop: durationProp,
|
|
36
|
-
});
|
|
37
|
-
const hasEverStreamedRef = useRef(isStreaming);
|
|
38
|
-
const [hasAutoClosed, setHasAutoClosed] = useState(false);
|
|
39
|
-
const startTimeRef = useRef(null);
|
|
40
|
-
// Track when streaming starts and compute duration
|
|
41
|
-
useEffect(() => {
|
|
42
|
-
if (isStreaming) {
|
|
43
|
-
hasEverStreamedRef.current = true;
|
|
44
|
-
if (startTimeRef.current === null) {
|
|
45
|
-
startTimeRef.current = Date.now();
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
else if (startTimeRef.current !== null) {
|
|
49
|
-
setDuration(Math.ceil((Date.now() - startTimeRef.current) / MS_IN_S));
|
|
50
|
-
startTimeRef.current = null;
|
|
51
|
-
}
|
|
52
|
-
}, [isStreaming, setDuration]);
|
|
53
|
-
// Auto-open when streaming starts (unless explicitly closed)
|
|
54
|
-
useEffect(() => {
|
|
55
|
-
if (isStreaming && !isOpen && !isExplicitlyClosed) {
|
|
56
|
-
setIsOpen(true);
|
|
57
|
-
}
|
|
58
|
-
}, [isStreaming, isOpen, setIsOpen, isExplicitlyClosed]);
|
|
59
|
-
// Auto-close when streaming ends (once only, and only if it ever streamed)
|
|
60
|
-
useEffect(() => {
|
|
61
|
-
if (hasEverStreamedRef.current && !isStreaming && isOpen && !hasAutoClosed) {
|
|
62
|
-
const timer = setTimeout(() => {
|
|
63
|
-
setIsOpen(false);
|
|
64
|
-
setHasAutoClosed(true);
|
|
65
|
-
}, AUTO_CLOSE_DELAY);
|
|
66
|
-
return () => clearTimeout(timer);
|
|
67
|
-
}
|
|
68
|
-
}, [isStreaming, isOpen, setIsOpen, hasAutoClosed]);
|
|
69
|
-
const handleOpenChange = useCallback((newOpen) => {
|
|
70
|
-
setIsOpen(newOpen);
|
|
71
|
-
}, [setIsOpen]);
|
|
72
|
-
const contextValue = useMemo(() => ({ duration, isOpen, isStreaming, setIsOpen }), [duration, isOpen, isStreaming, setIsOpen]);
|
|
73
|
-
return (_jsx(ReasoningContext.Provider, { value: contextValue, children: _jsx(Collapsible, { className: cn("not-prose mb-4", className), onOpenChange: handleOpenChange, open: isOpen, ...props, children: children }) }));
|
|
74
|
-
});
|
|
75
|
-
const defaultGetThinkingMessage = (isStreaming, duration) => {
|
|
76
|
-
if (isStreaming || duration === 0) {
|
|
77
|
-
return _jsx(Shimmer, { duration: 1, children: "Thinking..." });
|
|
78
|
-
}
|
|
79
|
-
if (duration === undefined) {
|
|
80
|
-
return _jsx("p", { children: "Thought for a few seconds" });
|
|
81
|
-
}
|
|
82
|
-
return _jsxs("p", { children: ["Thought for ", duration, " seconds"] });
|
|
83
|
-
};
|
|
84
|
-
export const ReasoningTrigger = memo(({ className, children, getThinkingMessage = defaultGetThinkingMessage, ...props }) => {
|
|
85
|
-
const { isStreaming, isOpen, duration } = useReasoning();
|
|
86
|
-
return (_jsx(CollapsibleTrigger, { className: cn("nc-transition-paint flex w-full items-center gap-2 text-muted-foreground text-sm hover:text-foreground", className), ...props, children: children ?? (_jsxs(_Fragment, { children: [_jsx(BrainIcon, { className: "size-4" }), getThinkingMessage(isStreaming, duration), _jsx(ChevronDownIcon, { className: cn("nc-transition-transform size-4", isOpen ? "rotate-180" : "rotate-0") })] })) }));
|
|
87
|
-
});
|
|
88
|
-
const streamdownPlugins = { cjk, code, math, mermaid };
|
|
89
|
-
export const ReasoningContent = memo(({ className, children, ...props }) => (_jsx(CollapsibleContent, { className: cn("mt-4 text-sm text-muted-foreground outline-none", className), ...props, children: _jsx(Streamdown, { plugins: streamdownPlugins, children: children }) })));
|
|
90
|
-
Reasoning.displayName = "Reasoning";
|
|
91
|
-
ReasoningTrigger.displayName = "ReasoningTrigger";
|
|
92
|
-
ReasoningContent.displayName = "ReasoningContent";
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Collapsible, CollapsibleContent } from "../collapsible";
|
|
2
|
-
import { Tabs, TabsContent, TabsList, TabsTrigger } from "../tabs";
|
|
3
|
-
import type { ToolUIPart } from "ai";
|
|
4
|
-
import type { ComponentProps } from "react";
|
|
5
|
-
export type SandboxRootProps = ComponentProps<typeof Collapsible>;
|
|
6
|
-
export declare const Sandbox: ({ className, ...props }: SandboxRootProps) => import("react").JSX.Element;
|
|
7
|
-
export interface SandboxHeaderProps {
|
|
8
|
-
title?: string;
|
|
9
|
-
state: ToolUIPart["state"];
|
|
10
|
-
className?: string;
|
|
11
|
-
}
|
|
12
|
-
export declare const SandboxHeader: ({ className, title, state, ...props }: SandboxHeaderProps) => import("react").JSX.Element;
|
|
13
|
-
export type SandboxContentProps = ComponentProps<typeof CollapsibleContent>;
|
|
14
|
-
export declare const SandboxContent: ({ className, ...props }: SandboxContentProps) => import("react").JSX.Element;
|
|
15
|
-
export type SandboxTabsProps = ComponentProps<typeof Tabs>;
|
|
16
|
-
export declare const SandboxTabs: ({ className, ...props }: SandboxTabsProps) => import("react").JSX.Element;
|
|
17
|
-
export type SandboxTabsBarProps = ComponentProps<"div">;
|
|
18
|
-
export declare const SandboxTabsBar: ({ className, ...props }: SandboxTabsBarProps) => import("react").JSX.Element;
|
|
19
|
-
export type SandboxTabsListProps = ComponentProps<typeof TabsList>;
|
|
20
|
-
export declare const SandboxTabsList: ({ className, ...props }: SandboxTabsListProps) => import("react").JSX.Element;
|
|
21
|
-
export type SandboxTabsTriggerProps = ComponentProps<typeof TabsTrigger>;
|
|
22
|
-
export declare const SandboxTabsTrigger: ({ className, ...props }: SandboxTabsTriggerProps) => import("react").JSX.Element;
|
|
23
|
-
export type SandboxTabContentProps = ComponentProps<typeof TabsContent>;
|
|
24
|
-
export declare const SandboxTabContent: ({ className, ...props }: SandboxTabContentProps) => import("react").JSX.Element;
|
|
25
|
-
//# sourceMappingURL=sandbox.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/sandbox.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAsB,MAAM,0BAA0B,CAAC;AAC/F,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAErC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAI5C,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,CAAC;AAElE,eAAO,MAAM,OAAO,GAAI,yBAAyB,gBAAgB,gCAMhE,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,GAAI,uCAAuC,kBAAkB,gCAYtF,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE5E,eAAO,MAAM,cAAc,GAAI,yBAAyB,mBAAmB,gCAE1E,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,IAAI,CAAC,CAAC;AAE3D,eAAO,MAAM,WAAW,GAAI,yBAAyB,gBAAgB,gCAEpE,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAExD,eAAO,MAAM,cAAc,GAAI,yBAAyB,mBAAmB,gCAK1E,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEnE,eAAO,MAAM,eAAe,GAAI,yBAAyB,oBAAoB,gCAK5E,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,CAAC;AAEzE,eAAO,MAAM,kBAAkB,GAAI,yBAAyB,uBAAuB,gCAQlF,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,CAAC;AAExE,eAAO,MAAM,iBAAiB,GAAI,yBAAyB,sBAAsB,gCAEhF,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../collapsible.js";
|
|
4
|
-
import { Tabs, TabsContent, TabsList, TabsTrigger } from "../tabs.js";
|
|
5
|
-
import { cn } from "../../lib/utils.js";
|
|
6
|
-
import { ChevronDownIcon, Code } from "lucide-react";
|
|
7
|
-
import { getStatusBadge } from "./tool.js";
|
|
8
|
-
export const Sandbox = ({ className, ...props }) => (_jsx(Collapsible, { className: cn("not-prose group mb-4 w-full overflow-hidden rounded-md border", className), defaultOpen: true, ...props }));
|
|
9
|
-
export const SandboxHeader = ({ className, title, state, ...props }) => (_jsxs(CollapsibleTrigger, { className: cn("flex w-full items-center justify-between gap-4 p-3", className), ...props, children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Code, { className: "size-4 text-muted-foreground" }), _jsx("span", { className: "font-medium text-sm", children: title }), getStatusBadge(state)] }), _jsx(ChevronDownIcon, { className: "nc-transition-transform size-4 text-muted-foreground group-data-panel-open:rotate-180" })] }));
|
|
10
|
-
export const SandboxContent = ({ className, ...props }) => (_jsx(CollapsibleContent, { className: cn("outline-none", className), ...props }));
|
|
11
|
-
export const SandboxTabs = ({ className, ...props }) => (_jsx(Tabs, { className: cn("w-full gap-0", className), ...props }));
|
|
12
|
-
export const SandboxTabsBar = ({ className, ...props }) => (_jsx("div", { className: cn("flex w-full items-center border-border border-t border-b", className), ...props }));
|
|
13
|
-
export const SandboxTabsList = ({ className, ...props }) => (_jsx(TabsList, { className: cn("h-auto rounded-none border-0 bg-transparent p-0", className), ...props }));
|
|
14
|
-
export const SandboxTabsTrigger = ({ className, ...props }) => (_jsx(TabsTrigger, { className: cn("rounded-none border-0 border-transparent border-b-2 px-4 py-2 font-medium text-muted-foreground text-sm transition-colors data-active:border-primary data-active:bg-transparent data-active:text-foreground data-active:shadow-none", className), ...props }));
|
|
15
|
-
export const SandboxTabContent = ({ className, ...props }) => (_jsx(TabsContent, { className: cn("mt-0 text-sm", className), ...props }));
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { Badge } from "../badge";
|
|
2
|
-
import { Collapsible } from "../collapsible";
|
|
3
|
-
import type { ComponentProps, HTMLAttributes } from "react";
|
|
4
|
-
type HttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
|
|
5
|
-
interface SchemaParameter {
|
|
6
|
-
name: string;
|
|
7
|
-
type: string;
|
|
8
|
-
required?: boolean;
|
|
9
|
-
description?: string;
|
|
10
|
-
location?: "path" | "query" | "header";
|
|
11
|
-
}
|
|
12
|
-
interface SchemaProperty {
|
|
13
|
-
name: string;
|
|
14
|
-
type: string;
|
|
15
|
-
required?: boolean;
|
|
16
|
-
description?: string;
|
|
17
|
-
properties?: SchemaProperty[];
|
|
18
|
-
items?: SchemaProperty;
|
|
19
|
-
}
|
|
20
|
-
export type SchemaDisplayHeaderProps = HTMLAttributes<HTMLDivElement>;
|
|
21
|
-
export declare const SchemaDisplayHeader: ({ className, children, ...props }: SchemaDisplayHeaderProps) => import("react").JSX.Element;
|
|
22
|
-
export type SchemaDisplayMethodProps = ComponentProps<typeof Badge>;
|
|
23
|
-
export declare const SchemaDisplayMethod: ({ className, children, ...props }: SchemaDisplayMethodProps) => import("react").JSX.Element;
|
|
24
|
-
export type SchemaDisplayPathProps = HTMLAttributes<HTMLSpanElement>;
|
|
25
|
-
export declare const SchemaDisplayPath: ({ className, children, ...props }: SchemaDisplayPathProps) => import("react").JSX.Element;
|
|
26
|
-
export type SchemaDisplayDescriptionProps = HTMLAttributes<HTMLParagraphElement>;
|
|
27
|
-
export declare const SchemaDisplayDescription: ({ className, children, ...props }: SchemaDisplayDescriptionProps) => import("react").JSX.Element;
|
|
28
|
-
export type SchemaDisplayContentProps = HTMLAttributes<HTMLDivElement>;
|
|
29
|
-
export declare const SchemaDisplayContent: ({ className, children, ...props }: SchemaDisplayContentProps) => import("react").JSX.Element;
|
|
30
|
-
export type SchemaDisplayParameterProps = HTMLAttributes<HTMLDivElement> & SchemaParameter;
|
|
31
|
-
export declare const SchemaDisplayParameter: ({ name, type, required, description, location, className, ...props }: SchemaDisplayParameterProps) => import("react").JSX.Element;
|
|
32
|
-
export type SchemaDisplayParametersProps = ComponentProps<typeof Collapsible>;
|
|
33
|
-
export declare const SchemaDisplayParameters: ({ className, children, ...props }: SchemaDisplayParametersProps) => import("react").JSX.Element;
|
|
34
|
-
export type SchemaDisplayPropertyProps = HTMLAttributes<HTMLDivElement> & SchemaProperty & {
|
|
35
|
-
depth?: number;
|
|
36
|
-
};
|
|
37
|
-
export declare const SchemaDisplayProperty: ({ name, type, required, description, properties, items, depth, className, ...props }: SchemaDisplayPropertyProps) => import("react").JSX.Element;
|
|
38
|
-
export type SchemaDisplayRequestProps = ComponentProps<typeof Collapsible>;
|
|
39
|
-
export declare const SchemaDisplayRequest: ({ className, children, ...props }: SchemaDisplayRequestProps) => import("react").JSX.Element;
|
|
40
|
-
export type SchemaDisplayResponseProps = ComponentProps<typeof Collapsible>;
|
|
41
|
-
export declare const SchemaDisplayResponse: ({ className, children, ...props }: SchemaDisplayResponseProps) => import("react").JSX.Element;
|
|
42
|
-
export type SchemaDisplayProps = HTMLAttributes<HTMLDivElement> & {
|
|
43
|
-
method: HttpMethod;
|
|
44
|
-
path: string;
|
|
45
|
-
description?: string;
|
|
46
|
-
parameters?: SchemaParameter[];
|
|
47
|
-
requestBody?: SchemaProperty[];
|
|
48
|
-
responseBody?: SchemaProperty[];
|
|
49
|
-
};
|
|
50
|
-
export declare const SchemaDisplay: ({ method, path, description, parameters, requestBody, responseBody, className, children, ...props }: SchemaDisplayProps) => import("react").JSX.Element;
|
|
51
|
-
export type SchemaDisplayBodyProps = HTMLAttributes<HTMLDivElement>;
|
|
52
|
-
export declare const SchemaDisplayBody: ({ className, children, ...props }: SchemaDisplayBodyProps) => import("react").JSX.Element;
|
|
53
|
-
export type SchemaDisplayExampleProps = HTMLAttributes<HTMLPreElement>;
|
|
54
|
-
export declare const SchemaDisplayExample: ({ className, children, ...props }: SchemaDisplayExampleProps) => import("react").JSX.Element;
|
|
55
|
-
export {};
|
|
56
|
-
//# sourceMappingURL=schema-display.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-display.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/schema-display.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { Badge } from "../badge.js";
|
|
4
|
-
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../collapsible.js";
|
|
5
|
-
import { cn } from "../../lib/utils.js";
|
|
6
|
-
import { ChevronRightIcon } from "lucide-react";
|
|
7
|
-
import { createContext, useContext, useMemo } from "react";
|
|
8
|
-
const SchemaDisplayContext = createContext({
|
|
9
|
-
method: "GET",
|
|
10
|
-
path: "",
|
|
11
|
-
});
|
|
12
|
-
const methodStyles = {
|
|
13
|
-
DELETE: "bg-[var(--nc-error-soft)] text-[var(--nc-error-deep)]",
|
|
14
|
-
GET: "bg-[var(--nc-success-soft)] text-[var(--nc-success-deep)]",
|
|
15
|
-
PATCH: "bg-[var(--nc-warning-soft)] text-[var(--nc-warning-deep)]",
|
|
16
|
-
POST: "bg-[var(--nc-link-bg-soft)] text-[var(--nc-link-deep)]",
|
|
17
|
-
PUT: "bg-[var(--nc-warning-soft)] text-[var(--nc-warning-deep)]",
|
|
18
|
-
};
|
|
19
|
-
export const SchemaDisplayHeader = ({ className, children, ...props }) => (_jsx("div", { className: cn("flex items-center gap-3 border-b px-4 py-3", className), ...props, children: children }));
|
|
20
|
-
export const SchemaDisplayMethod = ({ className, children, ...props }) => {
|
|
21
|
-
const { method } = useContext(SchemaDisplayContext);
|
|
22
|
-
return (_jsx(Badge, { className: cn("font-mono text-xs", methodStyles[method], className), variant: "secondary", ...props, children: children ?? method }));
|
|
23
|
-
};
|
|
24
|
-
const pathParameterPattern = /\{[^}]+\}/g;
|
|
25
|
-
const renderSchemaPath = (value) => {
|
|
26
|
-
const segments = [];
|
|
27
|
-
let textStart = 0;
|
|
28
|
-
for (const match of value.matchAll(pathParameterPattern)) {
|
|
29
|
-
const matchText = match[0];
|
|
30
|
-
const matchIndex = match.index;
|
|
31
|
-
if (matchIndex > textStart) {
|
|
32
|
-
const text = value.slice(textStart, matchIndex);
|
|
33
|
-
segments.push(text);
|
|
34
|
-
}
|
|
35
|
-
segments.push(_jsx("span", { className: "text-[var(--nc-link-deep)]", children: matchText }, `param-${matchIndex}-${matchText}`));
|
|
36
|
-
textStart = matchIndex + matchText.length;
|
|
37
|
-
}
|
|
38
|
-
if (textStart < value.length) {
|
|
39
|
-
segments.push(value.slice(textStart));
|
|
40
|
-
}
|
|
41
|
-
return segments.length > 0 ? segments : value;
|
|
42
|
-
};
|
|
43
|
-
export const SchemaDisplayPath = ({ className, children, ...props }) => {
|
|
44
|
-
const { path } = useContext(SchemaDisplayContext);
|
|
45
|
-
return (_jsx("span", { className: cn("font-mono text-sm", className), ...props, children: typeof children === "string"
|
|
46
|
-
? renderSchemaPath(children)
|
|
47
|
-
: (children ?? renderSchemaPath(path)) }));
|
|
48
|
-
};
|
|
49
|
-
export const SchemaDisplayDescription = ({ className, children, ...props }) => {
|
|
50
|
-
const { description } = useContext(SchemaDisplayContext);
|
|
51
|
-
return (_jsx("p", { className: cn("border-b px-4 py-3 text-muted-foreground text-sm", className), ...props, children: children ?? description }));
|
|
52
|
-
};
|
|
53
|
-
export const SchemaDisplayContent = ({ className, children, ...props }) => (_jsx("div", { className: cn("divide-y", className), ...props, children: children }));
|
|
54
|
-
export const SchemaDisplayParameter = ({ name, type, required, description, location, className, ...props }) => (_jsxs("div", { className: cn("px-4 py-3 pl-10", className), ...props, children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "font-mono text-sm", children: name }), _jsx(Badge, { className: "text-xs", variant: "outline", children: type }), location && (_jsx(Badge, { className: "text-xs", variant: "secondary", children: location })), required && (_jsx(Badge, { className: "bg-[var(--nc-error-soft)] text-[var(--nc-error-deep)] text-xs", variant: "secondary", children: "required" }))] }), description && _jsx("p", { className: "mt-1 text-muted-foreground text-sm", children: description })] }));
|
|
55
|
-
export const SchemaDisplayParameters = ({ className, children, ...props }) => {
|
|
56
|
-
const { parameters } = useContext(SchemaDisplayContext);
|
|
57
|
-
return (_jsxs(Collapsible, { className: cn(className), defaultOpen: true, ...props, children: [_jsxs(CollapsibleTrigger, { className: "group flex w-full items-center gap-2 px-4 py-3 text-left transition-colors hover:bg-muted/50", children: [_jsx(ChevronRightIcon, { className: "nc-transition-transform size-4 shrink-0 text-muted-foreground group-data-panel-open:rotate-90" }), _jsx("span", { className: "font-medium text-sm", children: "Parameters" }), _jsx(Badge, { className: "ml-auto text-xs", variant: "secondary", children: parameters?.length })] }), _jsx(CollapsibleContent, { children: _jsx("div", { className: "divide-y border-t", children: children ??
|
|
58
|
-
parameters?.map((param) => _jsx(SchemaDisplayParameter, { ...param }, param.name)) }) })] }));
|
|
59
|
-
};
|
|
60
|
-
export const SchemaDisplayProperty = ({ name, type, required, description, properties, items, depth = 0, className, ...props }) => {
|
|
61
|
-
const hasChildren = properties || items;
|
|
62
|
-
const paddingLeft = 40 + depth * 16;
|
|
63
|
-
if (hasChildren) {
|
|
64
|
-
return (_jsxs(Collapsible, { defaultOpen: depth < 2, children: [_jsxs(CollapsibleTrigger, { className: cn("group flex w-full items-center gap-2 py-3 text-left transition-colors hover:bg-muted/50", className), style: { paddingLeft }, children: [_jsx(ChevronRightIcon, { className: "nc-transition-transform size-4 shrink-0 text-muted-foreground group-data-panel-open:rotate-90" }), _jsx("span", { className: "font-mono text-sm", children: name }), _jsx(Badge, { className: "text-xs", variant: "outline", children: type }), required && (_jsx(Badge, { className: "bg-[var(--nc-error-soft)] text-[var(--nc-error-deep)] text-xs", variant: "secondary", children: "required" }))] }), description && (_jsx("p", { className: "pb-2 text-muted-foreground text-sm", style: { paddingLeft: paddingLeft + 24 }, children: description })), _jsx(CollapsibleContent, { children: _jsxs("div", { className: "divide-y border-t", children: [properties?.map((prop) => (_jsx(SchemaDisplayProperty, { ...prop, depth: depth + 1 }, prop.name))), items && _jsx(SchemaDisplayProperty, { ...items, depth: depth + 1, name: `${name}[]` })] }) })] }));
|
|
65
|
-
}
|
|
66
|
-
return (_jsxs("div", { className: cn("py-3 pr-4", className), style: { paddingLeft }, ...props, children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "size-4" }), _jsx("span", { className: "font-mono text-sm", children: name }), _jsx(Badge, { className: "text-xs", variant: "outline", children: type }), required && (_jsx(Badge, { className: "bg-[var(--nc-error-soft)] text-[var(--nc-error-deep)] text-xs", variant: "secondary", children: "required" }))] }), description && _jsx("p", { className: "mt-1 pl-6 text-muted-foreground text-sm", children: description })] }));
|
|
67
|
-
};
|
|
68
|
-
export const SchemaDisplayRequest = ({ className, children, ...props }) => {
|
|
69
|
-
const { requestBody } = useContext(SchemaDisplayContext);
|
|
70
|
-
return (_jsxs(Collapsible, { className: cn(className), defaultOpen: true, ...props, children: [_jsxs(CollapsibleTrigger, { className: "group flex w-full items-center gap-2 px-4 py-3 text-left transition-colors hover:bg-muted/50", children: [_jsx(ChevronRightIcon, { className: "nc-transition-transform size-4 shrink-0 text-muted-foreground group-data-panel-open:rotate-90" }), _jsx("span", { className: "font-medium text-sm", children: "Request Body" })] }), _jsx(CollapsibleContent, { children: _jsx("div", { className: "border-t", children: children ??
|
|
71
|
-
requestBody?.map((prop) => (_jsx(SchemaDisplayProperty, { ...prop, depth: 0 }, prop.name))) }) })] }));
|
|
72
|
-
};
|
|
73
|
-
export const SchemaDisplayResponse = ({ className, children, ...props }) => {
|
|
74
|
-
const { responseBody } = useContext(SchemaDisplayContext);
|
|
75
|
-
return (_jsxs(Collapsible, { className: cn(className), defaultOpen: true, ...props, children: [_jsxs(CollapsibleTrigger, { className: "group flex w-full items-center gap-2 px-4 py-3 text-left transition-colors hover:bg-muted/50", children: [_jsx(ChevronRightIcon, { className: "nc-transition-transform size-4 shrink-0 text-muted-foreground group-data-panel-open:rotate-90" }), _jsx("span", { className: "font-medium text-sm", children: "Response" })] }), _jsx(CollapsibleContent, { children: _jsx("div", { className: "border-t", children: children ??
|
|
76
|
-
responseBody?.map((prop) => (_jsx(SchemaDisplayProperty, { ...prop, depth: 0 }, prop.name))) }) })] }));
|
|
77
|
-
};
|
|
78
|
-
export const SchemaDisplay = ({ method, path, description, parameters, requestBody, responseBody, className, children, ...props }) => {
|
|
79
|
-
const contextValue = useMemo(() => ({
|
|
80
|
-
description,
|
|
81
|
-
method,
|
|
82
|
-
parameters,
|
|
83
|
-
path,
|
|
84
|
-
requestBody,
|
|
85
|
-
responseBody,
|
|
86
|
-
}), [description, method, parameters, path, requestBody, responseBody]);
|
|
87
|
-
return (_jsx(SchemaDisplayContext.Provider, { value: contextValue, children: _jsx("div", { className: cn("overflow-hidden rounded-lg border bg-background", className), ...props, children: children ?? (_jsxs(_Fragment, { children: [_jsx(SchemaDisplayHeader, { children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(SchemaDisplayMethod, {}), _jsx(SchemaDisplayPath, {})] }) }), description && _jsx(SchemaDisplayDescription, {}), _jsxs(SchemaDisplayContent, { children: [parameters && parameters.length > 0 && _jsx(SchemaDisplayParameters, {}), requestBody && requestBody.length > 0 && _jsx(SchemaDisplayRequest, {}), responseBody && responseBody.length > 0 && _jsx(SchemaDisplayResponse, {})] })] })) }) }));
|
|
88
|
-
};
|
|
89
|
-
export const SchemaDisplayBody = ({ className, children, ...props }) => (_jsx("div", { className: cn("divide-y", className), ...props, children: children }));
|
|
90
|
-
export const SchemaDisplayExample = ({ className, children, ...props }) => (_jsx("pre", { className: cn("mx-4 mb-4 overflow-auto rounded-md bg-muted p-4 font-mono text-sm", className), ...props, children: children }));
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { ElementType } from "react";
|
|
2
|
-
export interface TextShimmerProps {
|
|
3
|
-
children: string;
|
|
4
|
-
as?: ElementType;
|
|
5
|
-
className?: string;
|
|
6
|
-
duration?: number;
|
|
7
|
-
spread?: number;
|
|
8
|
-
}
|
|
9
|
-
export declare const Shimmer: import("react").MemoExoticComponent<({ children, as: Component, className, duration, spread, }: TextShimmerProps) => import("react").JSX.Element>;
|
|
10
|
-
//# sourceMappingURL=shimmer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shimmer.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/shimmer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,WAAW,EAAE,MAAM,OAAO,CAAC;AAKxD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA8BD,eAAO,MAAM,OAAO,kGAtBjB,gBAAgB,iCAsB0B,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { memo } from "react";
|
|
3
|
-
import { cn } from "../../lib/utils.js";
|
|
4
|
-
const ShimmerComponent = ({ children, as: Component = "p", className, duration = 2, spread = 2, }) => {
|
|
5
|
-
const shimmerSpread = children.length * spread;
|
|
6
|
-
return (_jsx(Component, { "data-nc-shimmer": children, className: cn("nc-anim-shimmer relative inline-block text-muted-foreground", className), style: {
|
|
7
|
-
"--nc-duration-shimmer": `${duration}s`,
|
|
8
|
-
"--nc-shimmer-spread": `${shimmerSpread}px`,
|
|
9
|
-
}, children: children }));
|
|
10
|
-
};
|
|
11
|
-
export const Shimmer = memo(ShimmerComponent);
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText } from "../input-group";
|
|
2
|
-
import type { ComponentProps } from "react";
|
|
3
|
-
export type SnippetProps = ComponentProps<typeof InputGroup> & {
|
|
4
|
-
code: string;
|
|
5
|
-
};
|
|
6
|
-
export declare const Snippet: ({ code, className, children, ...props }: SnippetProps) => import("react").JSX.Element;
|
|
7
|
-
export type SnippetAddonProps = ComponentProps<typeof InputGroupAddon>;
|
|
8
|
-
export declare const SnippetAddon: (props: SnippetAddonProps) => import("react").JSX.Element;
|
|
9
|
-
export type SnippetTextProps = ComponentProps<typeof InputGroupText>;
|
|
10
|
-
export declare const SnippetText: ({ className, ...props }: SnippetTextProps) => import("react").JSX.Element;
|
|
11
|
-
export type SnippetInputProps = Omit<ComponentProps<typeof InputGroupInput>, "readOnly" | "value">;
|
|
12
|
-
export declare const SnippetInput: ({ className, ...props }: SnippetInputProps) => import("react").JSX.Element;
|
|
13
|
-
export type SnippetCopyButtonProps = ComponentProps<typeof InputGroupButton> & {
|
|
14
|
-
onCopy?: () => void;
|
|
15
|
-
onError?: (error: Error) => void;
|
|
16
|
-
timeout?: number;
|
|
17
|
-
};
|
|
18
|
-
export declare const SnippetCopyButton: ({ onCopy, onError, timeout, children, className, ...props }: SnippetCopyButtonProps) => import("react").JSX.Element;
|
|
19
|
-
//# sourceMappingURL=snippet.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"snippet.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/snippet.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,cAAc,EACf,MAAM,0BAA0B,CAAC;AAIlC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAW5C,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,GAAG;IAC7D,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,yCAAyC,YAAY,gCAU5E,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,OAAO,eAAe,CAAC,CAAC;AAEvE,eAAO,MAAM,YAAY,GAAI,OAAO,iBAAiB,gCAAmC,CAAC;AAEzF,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,cAAc,CAAC,CAAC;AAErE,eAAO,MAAM,WAAW,GAAI,yBAAyB,gBAAgB,gCAEpE,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC;AAEnG,eAAO,MAAM,YAAY,GAAI,yBAAyB,iBAAiB,gCAWtE,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,OAAO,gBAAgB,CAAC,GAAG;IAC7E,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,6DAO/B,sBAAsB,gCAwBxB,CAAC"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, } from "../input-group.js";
|
|
4
|
-
import { cn } from "../../lib/utils.js";
|
|
5
|
-
import { useCopyToClipboard } from "../../lib/use-copy-to-clipboard.js";
|
|
6
|
-
import { CheckIcon, CopyIcon } from "lucide-react";
|
|
7
|
-
import { createContext, useContext, useMemo } from "react";
|
|
8
|
-
const SnippetContext = createContext({
|
|
9
|
-
code: "",
|
|
10
|
-
});
|
|
11
|
-
export const Snippet = ({ code, className, children, ...props }) => {
|
|
12
|
-
const contextValue = useMemo(() => ({ code }), [code]);
|
|
13
|
-
return (_jsx(SnippetContext.Provider, { value: contextValue, children: _jsx(InputGroup, { className: cn("font-mono", className), ...props, children: children }) }));
|
|
14
|
-
};
|
|
15
|
-
export const SnippetAddon = (props) => _jsx(InputGroupAddon, { ...props });
|
|
16
|
-
export const SnippetText = ({ className, ...props }) => (_jsx(InputGroupText, { className: cn("pl-2 font-normal text-muted-foreground", className), ...props }));
|
|
17
|
-
export const SnippetInput = ({ className, ...props }) => {
|
|
18
|
-
const { code } = useContext(SnippetContext);
|
|
19
|
-
return (_jsx(InputGroupInput, { className: cn("text-foreground", className), readOnly: true, value: code, ...props }));
|
|
20
|
-
};
|
|
21
|
-
export const SnippetCopyButton = ({ onCopy, onError, timeout = 2000, children, className, ...props }) => {
|
|
22
|
-
const { code } = useContext(SnippetContext);
|
|
23
|
-
const { copyToClipboard, isCopied } = useCopyToClipboard({
|
|
24
|
-
text: code,
|
|
25
|
-
onCopy,
|
|
26
|
-
onError,
|
|
27
|
-
timeout,
|
|
28
|
-
skipWhileCopied: true,
|
|
29
|
-
});
|
|
30
|
-
const Icon = isCopied ? CheckIcon : CopyIcon;
|
|
31
|
-
return (_jsx(InputGroupButton, { "aria-label": "Copy", className: className, onClick: copyToClipboard, size: "icon-sm", title: "Copy", ...props, children: children ?? _jsx(Icon, { className: "size-3.5", size: 14 }) }));
|
|
32
|
-
};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { CollapsibleContent, CollapsibleTrigger } from "../collapsible";
|
|
2
|
-
import type { ComponentProps } from "react";
|
|
3
|
-
export type SourcesProps = ComponentProps<"div">;
|
|
4
|
-
export declare const Sources: ({ className, ...props }: SourcesProps) => import("react").JSX.Element;
|
|
5
|
-
export type SourcesTriggerProps = ComponentProps<typeof CollapsibleTrigger> & {
|
|
6
|
-
count: number;
|
|
7
|
-
};
|
|
8
|
-
export declare const SourcesTrigger: ({ className, count, children, ...props }: SourcesTriggerProps) => import("react").JSX.Element;
|
|
9
|
-
export type SourcesContentProps = ComponentProps<typeof CollapsibleContent>;
|
|
10
|
-
export declare const SourcesContent: ({ className, ...props }: SourcesContentProps) => import("react").JSX.Element;
|
|
11
|
-
export type SourceProps = ComponentProps<"a">;
|
|
12
|
-
export declare const Source: ({ href, title, children, ...props }: SourceProps) => import("react").JSX.Element;
|
|
13
|
-
//# sourceMappingURL=sources.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/sources.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAe,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAG/F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAEjD,eAAO,MAAM,OAAO,GAAI,yBAAyB,YAAY,gCAE5D,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,kBAAkB,CAAC,GAAG;IAC5E,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,0CAA0C,mBAAmB,gCAS3F,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE5E,eAAO,MAAM,cAAc,GAAI,yBAAyB,mBAAmB,gCAK1E,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;AAE9C,eAAO,MAAM,MAAM,GAAI,qCAAqC,WAAW,gCAStE,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../collapsible.js";
|
|
4
|
-
import { cn } from "../../lib/utils.js";
|
|
5
|
-
import { BookIcon, ChevronDownIcon } from "lucide-react";
|
|
6
|
-
export const Sources = ({ className, ...props }) => (_jsx(Collapsible, { className: cn("not-prose mb-4 text-primary text-xs", className), ...props }));
|
|
7
|
-
export const SourcesTrigger = ({ className, count, children, ...props }) => (_jsx(CollapsibleTrigger, { className: cn("flex items-center gap-2", className), ...props, children: children ?? (_jsxs(_Fragment, { children: [_jsxs("p", { className: "font-medium", children: ["Used ", count, " sources"] }), _jsx(ChevronDownIcon, { className: "h-4 w-4" })] })) }));
|
|
8
|
-
export const SourcesContent = ({ className, ...props }) => (_jsx(CollapsibleContent, { className: cn("mt-3 flex w-fit flex-col gap-2 outline-none", className), ...props }));
|
|
9
|
-
export const Source = ({ href, title, children, ...props }) => (_jsx("a", { className: "flex items-center gap-2", href: href, rel: "noreferrer", target: "_blank", ...props, children: children ?? (_jsxs(_Fragment, { children: [_jsx(BookIcon, { className: "h-4 w-4" }), _jsx("span", { className: "block font-medium", children: title })] })) }));
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { Button } from "../button";
|
|
2
|
-
import type { ComponentProps } from "react";
|
|
3
|
-
interface SpeechRecognition extends EventTarget {
|
|
4
|
-
continuous: boolean;
|
|
5
|
-
interimResults: boolean;
|
|
6
|
-
lang: string;
|
|
7
|
-
start(): void;
|
|
8
|
-
stop(): void;
|
|
9
|
-
onstart: ((this: SpeechRecognition, ev: Event) => void) | null;
|
|
10
|
-
onend: ((this: SpeechRecognition, ev: Event) => void) | null;
|
|
11
|
-
onresult: ((this: SpeechRecognition, ev: SpeechRecognitionEvent) => void) | null;
|
|
12
|
-
onerror: ((this: SpeechRecognition, ev: SpeechRecognitionErrorEvent) => void) | null;
|
|
13
|
-
}
|
|
14
|
-
interface SpeechRecognitionEvent extends Event {
|
|
15
|
-
results: SpeechRecognitionResultList;
|
|
16
|
-
resultIndex: number;
|
|
17
|
-
}
|
|
18
|
-
interface SpeechRecognitionResultList {
|
|
19
|
-
readonly length: number;
|
|
20
|
-
item(index: number): SpeechRecognitionResult;
|
|
21
|
-
[index: number]: SpeechRecognitionResult;
|
|
22
|
-
}
|
|
23
|
-
interface SpeechRecognitionResult {
|
|
24
|
-
readonly length: number;
|
|
25
|
-
item(index: number): SpeechRecognitionAlternative;
|
|
26
|
-
[index: number]: SpeechRecognitionAlternative;
|
|
27
|
-
isFinal: boolean;
|
|
28
|
-
}
|
|
29
|
-
interface SpeechRecognitionAlternative {
|
|
30
|
-
transcript: string;
|
|
31
|
-
confidence: number;
|
|
32
|
-
}
|
|
33
|
-
interface SpeechRecognitionErrorEvent extends Event {
|
|
34
|
-
error: string;
|
|
35
|
-
}
|
|
36
|
-
declare global {
|
|
37
|
-
interface Window {
|
|
38
|
-
SpeechRecognition: new () => SpeechRecognition;
|
|
39
|
-
webkitSpeechRecognition: new () => SpeechRecognition;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
export type SpeechInputProps = ComponentProps<typeof Button> & {
|
|
43
|
-
onTranscriptionChange?: (text: string) => void;
|
|
44
|
-
/**
|
|
45
|
-
* Callback for when audio is recorded using MediaRecorder fallback.
|
|
46
|
-
* This is called in browsers that don't support the Web Speech API (Firefox, Safari).
|
|
47
|
-
* The callback receives an audio Blob that should be sent to a transcription service.
|
|
48
|
-
* Return the transcribed text, which will be passed to onTranscriptionChange.
|
|
49
|
-
*/
|
|
50
|
-
onAudioRecorded?: (audioBlob: Blob) => Promise<string>;
|
|
51
|
-
lang?: string;
|
|
52
|
-
};
|
|
53
|
-
export declare const SpeechInput: ({ className, onTranscriptionChange, onAudioRecorded, lang, ...props }: SpeechInputProps) => import("react").JSX.Element;
|
|
54
|
-
export {};
|
|
55
|
-
//# sourceMappingURL=speech-input.d.ts.map
|