@agentuity/workbench 0.0.63 → 0.0.65
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/dist/components/App.d.ts +6 -0
- package/dist/components/App.d.ts.map +1 -0
- package/dist/components/App.js +13 -0
- package/dist/components/App.js.map +1 -0
- package/dist/components/ConnectionStatus.d.ts +7 -0
- package/dist/components/ConnectionStatus.d.ts.map +1 -0
- package/dist/components/ConnectionStatus.js +52 -0
- package/dist/components/ConnectionStatus.js.map +1 -0
- package/dist/components/Inline.d.ts +10 -0
- package/dist/components/Inline.d.ts.map +1 -0
- package/dist/components/Inline.js +11 -0
- package/dist/components/Inline.js.map +1 -0
- package/dist/components/ai-elements/actions.d.ts +10 -0
- package/dist/components/ai-elements/actions.d.ts.map +1 -0
- package/dist/components/ai-elements/actions.js +14 -0
- package/dist/components/ai-elements/actions.js.map +1 -0
- package/dist/components/ai-elements/artifact.d.ts +24 -0
- package/dist/components/ai-elements/artifact.d.ts.map +1 -0
- package/dist/components/ai-elements/artifact.js +21 -0
- package/dist/components/ai-elements/artifact.js.map +1 -0
- package/dist/components/ai-elements/branch.d.ts +21 -0
- package/dist/components/ai-elements/branch.d.ts.map +1 -0
- package/dist/components/ai-elements/branch.js +71 -0
- package/dist/components/ai-elements/branch.js.map +1 -0
- package/dist/components/ai-elements/canvas.d.ts +9 -0
- package/dist/components/ai-elements/canvas.d.ts.map +1 -0
- package/dist/components/ai-elements/canvas.js +6 -0
- package/dist/components/ai-elements/canvas.js.map +1 -0
- package/dist/components/ai-elements/chain-of-thought.d.ts +30 -0
- package/dist/components/ai-elements/chain-of-thought.d.ts.map +1 -0
- package/dist/components/ai-elements/chain-of-thought.js +52 -0
- package/dist/components/ai-elements/chain-of-thought.js.map +1 -0
- package/dist/components/ai-elements/code-block.d.ts +18 -0
- package/dist/components/ai-elements/code-block.d.ts.map +1 -0
- package/dist/components/ai-elements/code-block.js +89 -0
- package/dist/components/ai-elements/code-block.js.map +1 -0
- package/dist/components/ai-elements/confirmation.d.ts +27 -0
- package/dist/components/ai-elements/confirmation.d.ts.map +1 -0
- package/dist/components/ai-elements/confirmation.js +57 -0
- package/dist/components/ai-elements/confirmation.js.map +1 -0
- package/dist/components/ai-elements/connection.d.ts +3 -0
- package/dist/components/ai-elements/connection.d.ts.map +1 -0
- package/dist/components/ai-elements/connection.js +4 -0
- package/dist/components/ai-elements/connection.js.map +1 -0
- package/dist/components/ai-elements/context.d.ts +33 -0
- package/dist/components/ai-elements/context.d.ts.map +1 -0
- package/dist/components/ai-elements/context.js +167 -0
- package/dist/components/ai-elements/context.js.map +1 -0
- package/dist/components/ai-elements/controls.d.ts +5 -0
- package/dist/components/ai-elements/controls.d.ts.map +1 -0
- package/dist/components/ai-elements/controls.js +6 -0
- package/dist/components/ai-elements/controls.js.map +1 -0
- package/dist/components/ai-elements/conversation.d.ts +16 -0
- package/dist/components/ai-elements/conversation.d.ts.map +1 -0
- package/dist/components/ai-elements/conversation.js +18 -0
- package/dist/components/ai-elements/conversation.js.map +1 -0
- package/dist/components/ai-elements/edge.d.ts +6 -0
- package/dist/components/ai-elements/edge.d.ts.map +1 -0
- package/dist/components/ai-elements/edge.js +83 -0
- package/dist/components/ai-elements/edge.js.map +1 -0
- package/dist/components/ai-elements/image.d.ts +7 -0
- package/dist/components/ai-elements/image.d.ts.map +1 -0
- package/dist/components/ai-elements/image.js +4 -0
- package/dist/components/ai-elements/image.js.map +1 -0
- package/dist/components/ai-elements/inline-citation.d.ts +39 -0
- package/dist/components/ai-elements/inline-citation.d.ts.map +1 -0
- package/dist/components/ai-elements/inline-citation.js +62 -0
- package/dist/components/ai-elements/inline-citation.js.map +1 -0
- package/dist/components/ai-elements/loader.d.ts +6 -0
- package/dist/components/ai-elements/loader.d.ts.map +1 -0
- package/dist/components/ai-elements/loader.js +5 -0
- package/dist/components/ai-elements/loader.js.map +1 -0
- package/dist/components/ai-elements/message.d.ts +20 -0
- package/dist/components/ai-elements/message.d.ts.map +1 -0
- package/dist/components/ai-elements/message.js +26 -0
- package/dist/components/ai-elements/message.js.map +1 -0
- package/dist/components/ai-elements/node.d.ts +22 -0
- package/dist/components/ai-elements/node.d.ts.map +1 -0
- package/dist/components/ai-elements/node.js +12 -0
- package/dist/components/ai-elements/node.js.map +1 -0
- package/dist/components/ai-elements/open-in-chat.d.ts +29 -0
- package/dist/components/ai-elements/open-in-chat.d.ts.map +1 -0
- package/dist/components/ai-elements/open-in-chat.js +97 -0
- package/dist/components/ai-elements/open-in-chat.js.map +1 -0
- package/dist/components/ai-elements/panel.d.ts +6 -0
- package/dist/components/ai-elements/panel.d.ts.map +1 -0
- package/dist/components/ai-elements/panel.js +5 -0
- package/dist/components/ai-elements/panel.js.map +1 -0
- package/dist/components/ai-elements/plan.d.ts +26 -0
- package/dist/components/ai-elements/plan.d.ts.map +1 -0
- package/dist/components/ai-elements/plan.js +32 -0
- package/dist/components/ai-elements/plan.js.map +1 -0
- package/dist/components/ai-elements/prompt-input.d.ts +187 -0
- package/dist/components/ai-elements/prompt-input.d.ts.map +1 -0
- package/dist/components/ai-elements/prompt-input.js +544 -0
- package/dist/components/ai-elements/prompt-input.js.map +1 -0
- package/dist/components/ai-elements/queue.d.ts +62 -0
- package/dist/components/ai-elements/queue.d.ts.map +1 -0
- package/dist/components/ai-elements/queue.js +25 -0
- package/dist/components/ai-elements/queue.js.map +1 -0
- package/dist/components/ai-elements/reasoning.d.ts +17 -0
- package/dist/components/ai-elements/reasoning.d.ts.map +1 -0
- package/dist/components/ai-elements/reasoning.js +77 -0
- package/dist/components/ai-elements/reasoning.js.map +1 -0
- package/dist/components/ai-elements/response.d.ts +6 -0
- package/dist/components/ai-elements/response.d.ts.map +1 -0
- package/dist/components/ai-elements/response.js +8 -0
- package/dist/components/ai-elements/response.js.map +1 -0
- package/dist/components/ai-elements/shimmer.d.ts +10 -0
- package/dist/components/ai-elements/shimmer.d.ts.map +1 -0
- package/dist/components/ai-elements/shimmer.js +19 -0
- package/dist/components/ai-elements/shimmer.js.map +1 -0
- package/dist/components/ai-elements/sources.d.ts +13 -0
- package/dist/components/ai-elements/sources.d.ts.map +1 -0
- package/dist/components/ai-elements/sources.js +10 -0
- package/dist/components/ai-elements/sources.js.map +1 -0
- package/dist/components/ai-elements/suggestion.d.ts +11 -0
- package/dist/components/ai-elements/suggestion.d.ts.map +1 -0
- package/dist/components/ai-elements/suggestion.js +13 -0
- package/dist/components/ai-elements/suggestion.js.map +1 -0
- package/dist/components/ai-elements/task.d.ts +15 -0
- package/dist/components/ai-elements/task.d.ts.map +1 -0
- package/dist/components/ai-elements/task.js +11 -0
- package/dist/components/ai-elements/task.js.map +1 -0
- package/dist/components/ai-elements/tool.d.ts +24 -0
- package/dist/components/ai-elements/tool.d.ts.map +1 -0
- package/dist/components/ai-elements/tool.js +47 -0
- package/dist/components/ai-elements/tool.js.map +1 -0
- package/dist/components/ai-elements/toolbar.d.ts +6 -0
- package/dist/components/ai-elements/toolbar.d.ts.map +1 -0
- package/dist/components/ai-elements/toolbar.js +5 -0
- package/dist/components/ai-elements/toolbar.js.map +1 -0
- package/dist/components/ai-elements/web-preview.d.ts +35 -0
- package/dist/components/ai-elements/web-preview.d.ts.map +1 -0
- package/dist/components/ai-elements/web-preview.js +63 -0
- package/dist/components/ai-elements/web-preview.js.map +1 -0
- package/dist/components/internal/Chat.d.ts +11 -0
- package/dist/components/internal/Chat.d.ts.map +1 -0
- package/dist/components/internal/Chat.js +52 -0
- package/dist/components/internal/Chat.js.map +1 -0
- package/dist/components/internal/Header.d.ts +10 -0
- package/dist/components/internal/Header.d.ts.map +1 -0
- package/dist/components/internal/Header.js +31 -0
- package/dist/components/internal/Header.js.map +1 -0
- package/dist/components/internal/InputSection.d.ts +14 -0
- package/dist/components/internal/InputSection.d.ts.map +1 -0
- package/dist/components/internal/InputSection.js +212 -0
- package/dist/components/internal/InputSection.js.map +1 -0
- package/dist/components/internal/Schema.d.ts +7 -0
- package/dist/components/internal/Schema.d.ts.map +1 -0
- package/dist/components/internal/Schema.js +14 -0
- package/dist/components/internal/Schema.js.map +1 -0
- package/dist/components/internal/WorkbenchProvider.d.ts +11 -0
- package/dist/components/internal/WorkbenchProvider.d.ts.map +1 -0
- package/dist/components/internal/WorkbenchProvider.js +224 -0
- package/dist/components/internal/WorkbenchProvider.js.map +1 -0
- package/dist/components/internal/logo.d.ts +2 -0
- package/dist/components/internal/logo.d.ts.map +1 -0
- package/dist/components/internal/logo.js +5 -0
- package/dist/components/internal/logo.js.map +1 -0
- package/dist/components/ui/alert.d.ts +10 -0
- package/dist/components/ui/alert.d.ts.map +1 -0
- package/dist/components/ui/alert.js +25 -0
- package/dist/components/ui/alert.js.map +1 -0
- package/dist/components/ui/avatar.d.ts +7 -0
- package/dist/components/ui/avatar.d.ts.map +1 -0
- package/dist/components/ui/avatar.js +14 -0
- package/dist/components/ui/avatar.js.map +1 -0
- package/dist/components/ui/badge.d.ts +10 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/badge.js +23 -0
- package/dist/components/ui/badge.js.map +1 -0
- package/dist/components/ui/button.d.ts +3 -4
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/ui/card.d.ts +2 -1
- package/dist/components/ui/card.d.ts.map +1 -1
- package/dist/components/ui/card.js +4 -1
- package/dist/components/ui/card.js.map +1 -1
- package/dist/components/ui/carousel.d.ts +20 -0
- package/dist/components/ui/carousel.d.ts.map +1 -0
- package/dist/components/ui/carousel.js +92 -0
- package/dist/components/ui/carousel.js.map +1 -0
- package/dist/components/ui/checkbox.d.ts +5 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -0
- package/dist/components/ui/checkbox.js +9 -0
- package/dist/components/ui/checkbox.js.map +1 -0
- package/dist/components/ui/collapsible.d.ts +6 -0
- package/dist/components/ui/collapsible.d.ts.map +1 -0
- package/dist/components/ui/collapsible.js +14 -0
- package/dist/components/ui/collapsible.js.map +1 -0
- package/dist/components/ui/command.d.ts +19 -0
- package/dist/components/ui/command.d.ts.map +1 -0
- package/dist/components/ui/command.js +34 -0
- package/dist/components/ui/command.js.map +1 -0
- package/dist/components/ui/dialog.d.ts +16 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/dialog.js +36 -0
- package/dist/components/ui/dialog.js.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +26 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.js +52 -0
- package/dist/components/ui/dropdown-menu.js.map +1 -0
- package/dist/components/ui/field.d.ts +25 -0
- package/dist/components/ui/field.d.ts.map +1 -0
- package/dist/components/ui/field.js +74 -0
- package/dist/components/ui/field.js.map +1 -0
- package/dist/components/ui/form.d.ts +25 -0
- package/dist/components/ui/form.d.ts.map +1 -0
- package/dist/components/ui/form.js +58 -0
- package/dist/components/ui/form.js.map +1 -0
- package/dist/components/ui/hover-card.d.ts +7 -0
- package/dist/components/ui/hover-card.d.ts.map +1 -0
- package/dist/components/ui/hover-card.js +14 -0
- package/dist/components/ui/hover-card.js.map +1 -0
- package/dist/components/ui/input-group.d.ts +17 -0
- package/dist/components/ui/input-group.d.ts.map +1 -0
- package/dist/components/ui/input-group.js +64 -0
- package/dist/components/ui/input-group.js.map +1 -0
- package/dist/components/ui/input.d.ts +1 -2
- package/dist/components/ui/input.d.ts.map +1 -1
- package/dist/components/ui/input.js +3 -5
- package/dist/components/ui/input.js.map +1 -1
- package/dist/components/ui/label.d.ts +5 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/label.js +9 -0
- package/dist/components/ui/label.js.map +1 -0
- package/dist/components/ui/popover.d.ts +8 -0
- package/dist/components/ui/popover.d.ts.map +1 -0
- package/dist/components/ui/popover.js +18 -0
- package/dist/components/ui/popover.js.map +1 -0
- package/dist/components/ui/progress.d.ts +5 -0
- package/dist/components/ui/progress.d.ts.map +1 -0
- package/dist/components/ui/progress.js +9 -0
- package/dist/components/ui/progress.js.map +1 -0
- package/dist/components/ui/resizable-provider.d.ts +15 -0
- package/dist/components/ui/resizable-provider.d.ts.map +1 -0
- package/dist/components/ui/resizable-provider.js +54 -0
- package/dist/components/ui/resizable-provider.js.map +1 -0
- package/dist/components/ui/resizable.d.ts +9 -0
- package/dist/components/ui/resizable.d.ts.map +1 -0
- package/dist/components/ui/resizable.js +16 -0
- package/dist/components/ui/resizable.js.map +1 -0
- package/dist/components/ui/scroll-area.d.ts +6 -0
- package/dist/components/ui/scroll-area.d.ts.map +1 -0
- package/dist/components/ui/scroll-area.js +11 -0
- package/dist/components/ui/scroll-area.js.map +1 -0
- package/dist/components/ui/select.d.ts +16 -0
- package/dist/components/ui/select.d.ts.map +1 -0
- package/dist/components/ui/select.js +39 -0
- package/dist/components/ui/select.js.map +1 -0
- package/dist/components/ui/separator.d.ts +5 -0
- package/dist/components/ui/separator.d.ts.map +1 -0
- package/dist/components/ui/separator.js +9 -0
- package/dist/components/ui/separator.js.map +1 -0
- package/dist/components/ui/switch.d.ts +5 -0
- package/dist/components/ui/switch.d.ts.map +1 -0
- package/dist/components/ui/switch.js +8 -0
- package/dist/components/ui/switch.js.map +1 -0
- package/dist/components/ui/tabs.d.ts +8 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/tabs.js +17 -0
- package/dist/components/ui/tabs.js.map +1 -0
- package/dist/components/ui/textarea.d.ts +4 -0
- package/dist/components/ui/textarea.d.ts.map +1 -0
- package/dist/components/ui/textarea.js +7 -0
- package/dist/components/ui/textarea.js.map +1 -0
- package/dist/components/ui/theme-provider.d.ts +14 -0
- package/dist/components/ui/theme-provider.d.ts.map +1 -0
- package/dist/components/ui/theme-provider.js +37 -0
- package/dist/components/ui/theme-provider.js.map +1 -0
- package/dist/components/ui/theme-toggle.d.ts +2 -0
- package/dist/components/ui/theme-toggle.d.ts.map +1 -0
- package/dist/components/ui/theme-toggle.js +10 -0
- package/dist/components/ui/theme-toggle.js.map +1 -0
- package/dist/components/ui/toggle.d.ts +10 -0
- package/dist/components/ui/toggle.d.ts.map +1 -0
- package/dist/components/ui/toggle.js +26 -0
- package/dist/components/ui/toggle.js.map +1 -0
- package/dist/components/ui/tooltip.d.ts +8 -0
- package/dist/components/ui/tooltip.d.ts.map +1 -0
- package/dist/components/ui/tooltip.js +17 -0
- package/dist/components/ui/tooltip.js.map +1 -0
- package/dist/components.d.ts +10 -6
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +11 -36
- package/dist/components.js.map +1 -1
- package/dist/hooks/index.d.ts +6 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +4 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useAgentSchemas.d.ts +70 -0
- package/dist/hooks/useAgentSchemas.d.ts.map +1 -0
- package/dist/hooks/useAgentSchemas.js +90 -0
- package/dist/hooks/useAgentSchemas.js.map +1 -0
- package/dist/hooks/useWorkbenchSchemas.d.ts +56 -0
- package/dist/hooks/useWorkbenchSchemas.d.ts.map +1 -0
- package/dist/hooks/useWorkbenchSchemas.js +63 -0
- package/dist/hooks/useWorkbenchSchemas.js.map +1 -0
- package/dist/hooks/useWorkbenchWebsocket.d.ts +14 -0
- package/dist/hooks/useWorkbenchWebsocket.d.ts.map +1 -0
- package/dist/hooks/useWorkbenchWebsocket.js +163 -0
- package/dist/hooks/useWorkbenchWebsocket.js.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -5
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts +3 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +5 -0
- package/dist/server.js.map +1 -0
- package/dist/styles.css +3423 -196
- package/dist/types/config.d.ts +29 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +2 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/workbench.d.ts +1 -2
- package/dist/workbench.d.ts.map +1 -1
- package/dist/workbench.js +0 -2
- package/dist/workbench.js.map +1 -1
- package/package.json +50 -7
- package/src/components/App.tsx +29 -0
- package/src/components/ConnectionStatus.tsx +67 -0
- package/src/components/Inline.tsx +16 -0
- package/src/components/ai-elements/actions.tsx +60 -0
- package/src/components/ai-elements/artifact.tsx +118 -0
- package/src/components/ai-elements/branch.tsx +187 -0
- package/src/components/ai-elements/canvas.tsx +24 -0
- package/src/components/ai-elements/chain-of-thought.tsx +198 -0
- package/src/components/ai-elements/code-block.tsx +175 -0
- package/src/components/ai-elements/confirmation.tsx +119 -0
- package/src/components/ai-elements/connection.tsx +16 -0
- package/src/components/ai-elements/context.tsx +357 -0
- package/src/components/ai-elements/controls.tsx +18 -0
- package/src/components/ai-elements/conversation.tsx +90 -0
- package/src/components/ai-elements/edge.tsx +131 -0
- package/src/components/ai-elements/image.tsx +16 -0
- package/src/components/ai-elements/inline-citation.tsx +246 -0
- package/src/components/ai-elements/loader.tsx +88 -0
- package/src/components/ai-elements/message.tsx +63 -0
- package/src/components/ai-elements/node.tsx +66 -0
- package/src/components/ai-elements/open-in-chat.tsx +333 -0
- package/src/components/ai-elements/panel.tsx +12 -0
- package/src/components/ai-elements/plan.tsx +123 -0
- package/src/components/ai-elements/prompt-input.tsx +1203 -0
- package/src/components/ai-elements/queue.tsx +231 -0
- package/src/components/ai-elements/reasoning.tsx +163 -0
- package/src/components/ai-elements/response.tsx +19 -0
- package/src/components/ai-elements/shimmer.tsx +53 -0
- package/src/components/ai-elements/sources.tsx +53 -0
- package/src/components/ai-elements/suggestion.tsx +47 -0
- package/src/components/ai-elements/task.tsx +64 -0
- package/src/components/ai-elements/tool.tsx +136 -0
- package/src/components/ai-elements/toolbar.tsx +13 -0
- package/src/components/ai-elements/web-preview.tsx +238 -0
- package/src/components/internal/Chat.tsx +183 -0
- package/src/components/internal/Header.tsx +77 -0
- package/src/components/internal/InputSection.tsx +427 -0
- package/src/components/internal/Schema.tsx +111 -0
- package/src/components/internal/WorkbenchProvider.tsx +265 -0
- package/src/components/internal/logo.tsx +11 -0
- package/src/components/ui/alert.tsx +60 -0
- package/src/components/ui/avatar.tsx +42 -0
- package/src/components/ui/badge.tsx +40 -0
- package/src/components/ui/button.tsx +10 -5
- package/src/components/ui/card.tsx +4 -1
- package/src/components/ui/carousel.tsx +234 -0
- package/src/components/ui/checkbox.tsx +27 -0
- package/src/components/ui/collapsible.tsx +21 -0
- package/src/components/ui/command.tsx +153 -0
- package/src/components/ui/dialog.tsx +127 -0
- package/src/components/ui/dropdown-menu.tsx +228 -0
- package/src/components/ui/field.tsx +234 -0
- package/src/components/ui/form.tsx +154 -0
- package/src/components/ui/hover-card.tsx +36 -0
- package/src/components/ui/input-group.tsx +158 -0
- package/src/components/ui/input.tsx +16 -18
- package/src/components/ui/label.tsx +21 -0
- package/src/components/ui/popover.tsx +42 -0
- package/src/components/ui/progress.tsx +28 -0
- package/src/components/ui/resizable-provider.tsx +83 -0
- package/src/components/ui/resizable.tsx +54 -0
- package/src/components/ui/scroll-area.tsx +54 -0
- package/src/components/ui/select.tsx +172 -0
- package/src/components/ui/separator.tsx +28 -0
- package/src/components/ui/switch.tsx +26 -0
- package/src/components/ui/tabs.tsx +52 -0
- package/src/components/ui/textarea.tsx +18 -0
- package/src/components/ui/theme-provider.tsx +71 -0
- package/src/components/ui/theme-toggle.tsx +30 -0
- package/src/components/ui/toggle.tsx +44 -0
- package/src/components/ui/tooltip.tsx +55 -0
- package/src/components.tsx +28 -74
- package/src/hooks/index.ts +19 -0
- package/src/hooks/useAgentSchemas.ts +144 -0
- package/src/hooks/useWorkbenchSchemas.ts +69 -0
- package/src/hooks/useWorkbenchWebsocket.ts +220 -0
- package/src/index.ts +5 -11
- package/src/server.ts +6 -0
- package/src/styles.css +214 -59
- package/src/types/config.ts +34 -0
- package/src/types.ts +1 -1
- package/src/workbench.ts +1 -4
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Button } from '../ui/button';
|
|
2
|
+
import { Collapsible, CollapsibleContent } from '../ui/collapsible';
|
|
3
|
+
import { ScrollArea } from '../ui/scroll-area';
|
|
4
|
+
import type { ComponentProps } from 'react';
|
|
5
|
+
export type QueueMessagePart = {
|
|
6
|
+
type: string;
|
|
7
|
+
text?: string;
|
|
8
|
+
url?: string;
|
|
9
|
+
filename?: string;
|
|
10
|
+
mediaType?: string;
|
|
11
|
+
};
|
|
12
|
+
export type QueueMessage = {
|
|
13
|
+
id: string;
|
|
14
|
+
parts: QueueMessagePart[];
|
|
15
|
+
};
|
|
16
|
+
export type 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-runtime").JSX.Element;
|
|
24
|
+
export type QueueItemIndicatorProps = ComponentProps<'span'> & {
|
|
25
|
+
completed?: boolean;
|
|
26
|
+
};
|
|
27
|
+
export declare const QueueItemIndicator: ({ completed, className, ...props }: QueueItemIndicatorProps) => import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
export type QueueItemContentProps = ComponentProps<'span'> & {
|
|
29
|
+
completed?: boolean;
|
|
30
|
+
};
|
|
31
|
+
export declare const QueueItemContent: ({ completed, className, ...props }: QueueItemContentProps) => import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
export type QueueItemDescriptionProps = ComponentProps<'div'> & {
|
|
33
|
+
completed?: boolean;
|
|
34
|
+
};
|
|
35
|
+
export declare const QueueItemDescription: ({ completed, className, ...props }: QueueItemDescriptionProps) => import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
export type QueueItemActionsProps = ComponentProps<'div'>;
|
|
37
|
+
export declare const QueueItemActions: ({ className, ...props }: QueueItemActionsProps) => import("react/jsx-runtime").JSX.Element;
|
|
38
|
+
export type QueueItemActionProps = Omit<ComponentProps<typeof Button>, 'variant' | 'size'>;
|
|
39
|
+
export declare const QueueItemAction: ({ className, ...props }: QueueItemActionProps) => import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
export type QueueItemAttachmentProps = ComponentProps<'div'>;
|
|
41
|
+
export declare const QueueItemAttachment: ({ className, ...props }: QueueItemAttachmentProps) => import("react/jsx-runtime").JSX.Element;
|
|
42
|
+
export type QueueItemImageProps = ComponentProps<'img'>;
|
|
43
|
+
export declare const QueueItemImage: ({ className, ...props }: QueueItemImageProps) => import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
export type QueueItemFileProps = ComponentProps<'span'>;
|
|
45
|
+
export declare const QueueItemFile: ({ children, className, ...props }: QueueItemFileProps) => import("react/jsx-runtime").JSX.Element;
|
|
46
|
+
export type QueueListProps = ComponentProps<typeof ScrollArea>;
|
|
47
|
+
export declare const QueueList: ({ children, className, ...props }: QueueListProps) => import("react/jsx-runtime").JSX.Element;
|
|
48
|
+
export type QueueSectionProps = ComponentProps<typeof Collapsible>;
|
|
49
|
+
export declare const QueueSection: ({ className, defaultOpen, ...props }: QueueSectionProps) => import("react/jsx-runtime").JSX.Element;
|
|
50
|
+
export type QueueSectionTriggerProps = ComponentProps<'button'>;
|
|
51
|
+
export declare const QueueSectionTrigger: ({ children, className, ...props }: QueueSectionTriggerProps) => import("react/jsx-runtime").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-runtime").JSX.Element;
|
|
58
|
+
export type QueueSectionContentProps = ComponentProps<typeof CollapsibleContent>;
|
|
59
|
+
export declare const QueueSectionContent: ({ className, ...props }: QueueSectionContentProps) => import("react/jsx-runtime").JSX.Element;
|
|
60
|
+
export type QueueProps = ComponentProps<'div'>;
|
|
61
|
+
export declare const Queue: ({ className, ...props }: QueueProps) => import("react/jsx-runtime").JSX.Element;
|
|
62
|
+
//# sourceMappingURL=queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/queue.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Button } from '../ui/button';
|
|
4
|
+
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../ui/collapsible';
|
|
5
|
+
import { ScrollArea } from '../ui/scroll-area';
|
|
6
|
+
import { cn } from '../../lib/utils';
|
|
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('-mb-1 mt-2', 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, { asChild: true, children: _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: "group-data-[state=closed]:-rotate-90 size-4 transition-transform" }), 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 }));
|
|
25
|
+
//# sourceMappingURL=queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/components/ai-elements/queue.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ComponentProps } from 'react';
|
|
2
|
+
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../ui/collapsible';
|
|
3
|
+
export type ReasoningProps = ComponentProps<typeof Collapsible> & {
|
|
4
|
+
isStreaming?: boolean;
|
|
5
|
+
open?: boolean;
|
|
6
|
+
defaultOpen?: boolean;
|
|
7
|
+
onOpenChange?: (open: boolean) => void;
|
|
8
|
+
duration?: number;
|
|
9
|
+
};
|
|
10
|
+
export declare const Reasoning: import("react").MemoExoticComponent<({ className, isStreaming, open, defaultOpen, onOpenChange, duration: durationProp, children, ...props }: ReasoningProps) => import("react/jsx-runtime").JSX.Element>;
|
|
11
|
+
export type ReasoningTriggerProps = ComponentProps<typeof CollapsibleTrigger>;
|
|
12
|
+
export declare const ReasoningTrigger: import("react").MemoExoticComponent<({ className, children, ...props }: ReasoningTriggerProps) => import("react/jsx-runtime").JSX.Element>;
|
|
13
|
+
export type ReasoningContentProps = ComponentProps<typeof CollapsibleContent> & {
|
|
14
|
+
children: string;
|
|
15
|
+
};
|
|
16
|
+
export declare const ReasoningContent: import("react").MemoExoticComponent<({ className, children, ...props }: ReasoningContentProps) => import("react/jsx-runtime").JSX.Element>;
|
|
17
|
+
//# sourceMappingURL=reasoning.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reasoning.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/reasoning.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAsBxF,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,GAAG;IACjE,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;CAClB,CAAC;AAKF,eAAO,MAAM,SAAS,gJAUlB,cAAc,6CAwDjB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAY9E,eAAO,MAAM,gBAAgB,0EAA4C,qBAAqB,6CAsB5F,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC,OAAO,kBAAkB,CAAC,GAAG;IAC/E,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,gBAAgB,0EAA4C,qBAAqB,6CAW5F,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useControllableState } from '@radix-ui/react-use-controllable-state';
|
|
4
|
+
import { BrainIcon, ChevronDownIcon } from 'lucide-react';
|
|
5
|
+
import { createContext, memo, useContext, useEffect, useState } from 'react';
|
|
6
|
+
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../ui/collapsible';
|
|
7
|
+
import { cn } from '../../lib/utils';
|
|
8
|
+
import { Response } from './response';
|
|
9
|
+
import { Shimmer } from './shimmer';
|
|
10
|
+
const ReasoningContext = createContext(null);
|
|
11
|
+
const useReasoning = () => {
|
|
12
|
+
const context = useContext(ReasoningContext);
|
|
13
|
+
if (!context) {
|
|
14
|
+
throw new Error('Reasoning components must be used within Reasoning');
|
|
15
|
+
}
|
|
16
|
+
return context;
|
|
17
|
+
};
|
|
18
|
+
const AUTO_CLOSE_DELAY = 1000;
|
|
19
|
+
const MS_IN_S = 1000;
|
|
20
|
+
export const Reasoning = memo(({ className, isStreaming = false, open, defaultOpen = true, onOpenChange, duration: durationProp, children, ...props }) => {
|
|
21
|
+
const [isOpen, setIsOpen] = useControllableState({
|
|
22
|
+
prop: open,
|
|
23
|
+
defaultProp: defaultOpen,
|
|
24
|
+
onChange: onOpenChange,
|
|
25
|
+
});
|
|
26
|
+
const [duration, setDuration] = useControllableState({
|
|
27
|
+
prop: durationProp,
|
|
28
|
+
defaultProp: 0,
|
|
29
|
+
});
|
|
30
|
+
const [hasAutoClosed, setHasAutoClosed] = useState(false);
|
|
31
|
+
const [startTime, setStartTime] = useState(null);
|
|
32
|
+
// Track duration when streaming starts and ends
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
if (isStreaming) {
|
|
35
|
+
if (startTime === null) {
|
|
36
|
+
setStartTime(Date.now());
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
else if (startTime !== null) {
|
|
40
|
+
setDuration(Math.ceil((Date.now() - startTime) / MS_IN_S));
|
|
41
|
+
setStartTime(null);
|
|
42
|
+
}
|
|
43
|
+
}, [isStreaming, startTime, setDuration]);
|
|
44
|
+
// Auto-open when streaming starts, auto-close when streaming ends (once only)
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
if (defaultOpen && !isStreaming && isOpen && !hasAutoClosed) {
|
|
47
|
+
// Add a small delay before closing to allow user to see the content
|
|
48
|
+
const timer = setTimeout(() => {
|
|
49
|
+
setIsOpen(false);
|
|
50
|
+
setHasAutoClosed(true);
|
|
51
|
+
}, AUTO_CLOSE_DELAY);
|
|
52
|
+
return () => clearTimeout(timer);
|
|
53
|
+
}
|
|
54
|
+
}, [isStreaming, isOpen, defaultOpen, setIsOpen, hasAutoClosed]);
|
|
55
|
+
const handleOpenChange = (newOpen) => {
|
|
56
|
+
setIsOpen(newOpen);
|
|
57
|
+
};
|
|
58
|
+
return (_jsx(ReasoningContext.Provider, { value: { isStreaming, isOpen, setIsOpen, duration }, children: _jsx(Collapsible, { className: cn('not-prose mb-4', className), onOpenChange: handleOpenChange, open: isOpen, ...props, children: children }) }));
|
|
59
|
+
});
|
|
60
|
+
const getThinkingMessage = (isStreaming, duration) => {
|
|
61
|
+
if (isStreaming || duration === 0) {
|
|
62
|
+
return _jsx(Shimmer, { duration: 1, children: "Thinking..." });
|
|
63
|
+
}
|
|
64
|
+
if (duration === undefined) {
|
|
65
|
+
return _jsx("p", { children: "Thought for a few seconds" });
|
|
66
|
+
}
|
|
67
|
+
return _jsxs("p", { children: ["Thought for ", duration, " seconds"] });
|
|
68
|
+
};
|
|
69
|
+
export const ReasoningTrigger = memo(({ className, children, ...props }) => {
|
|
70
|
+
const { isStreaming, isOpen, duration } = useReasoning();
|
|
71
|
+
return (_jsx(CollapsibleTrigger, { className: cn('flex w-full items-center gap-2 text-muted-foreground text-sm transition-colors hover:text-foreground', className), ...props, children: children ?? (_jsxs(_Fragment, { children: [_jsx(BrainIcon, { className: "size-4" }), getThinkingMessage(isStreaming, duration), _jsx(ChevronDownIcon, { className: cn('size-4 transition-transform', isOpen ? 'rotate-180' : 'rotate-0') })] })) }));
|
|
72
|
+
});
|
|
73
|
+
export const ReasoningContent = memo(({ className, children, ...props }) => (_jsx(CollapsibleContent, { className: cn('mt-4 text-sm', 'data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-muted-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in', className), ...props, children: _jsx(Response, { className: "grid gap-2", children: children }) })));
|
|
74
|
+
Reasoning.displayName = 'Reasoning';
|
|
75
|
+
ReasoningTrigger.displayName = 'ReasoningTrigger';
|
|
76
|
+
ReasoningContent.displayName = 'ReasoningContent';
|
|
77
|
+
//# sourceMappingURL=reasoning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reasoning.js","sourceRoot":"","sources":["../../../src/components/ai-elements/reasoning.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type ComponentProps } from 'react';
|
|
2
|
+
import { Streamdown } from 'streamdown';
|
|
3
|
+
type ResponseProps = ComponentProps<typeof Streamdown>;
|
|
4
|
+
export declare const Response: import("react").MemoExoticComponent<({ className, ...props }: ResponseProps) => import("react/jsx-runtime").JSX.Element>;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/response.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,KAAK,aAAa,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,CAAC;AAEvD,eAAO,MAAM,QAAQ,gEACM,aAAa,6CAOvC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from '../../lib/utils';
|
|
4
|
+
import { memo } from 'react';
|
|
5
|
+
import { Streamdown } from 'streamdown';
|
|
6
|
+
export const Response = memo(({ className, ...props }) => (_jsx(Streamdown, { className: cn('size-full [&>*:first-child]:mt-0 [&>*:last-child]:mb-0', className), ...props })), (prevProps, nextProps) => prevProps.children === nextProps.children);
|
|
7
|
+
Response.displayName = 'Response';
|
|
8
|
+
//# sourceMappingURL=response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/components/ai-elements/response.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAuB,IAAI,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAIxC,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAC3B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiB,EAAE,EAAE,CAAC,CAC3C,KAAC,UAAU,IACV,SAAS,EAAE,EAAE,CAAC,wDAAwD,EAAE,SAAS,CAAC,KAC9E,KAAK,GACR,CACF,EACD,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,CACnE,CAAC;AAEF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ElementType } from 'react';
|
|
2
|
+
export type 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-runtime").JSX.Element>;
|
|
10
|
+
//# sourceMappingURL=shimmer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shimmer.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/shimmer.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAsB,KAAK,WAAW,EAA2B,MAAM,OAAO,CAAC;AAEtF,MAAM,MAAM,gBAAgB,GAAG;IAC9B,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;CAChB,CAAC;AAwCF,eAAO,MAAM,OAAO,kGAhCjB,gBAAgB,6CAgC0B,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from '../../lib/utils';
|
|
4
|
+
import { motion } from 'motion/react';
|
|
5
|
+
import { memo, useMemo } from 'react';
|
|
6
|
+
const ShimmerComponent = ({ children, as: Component = 'p', className, duration = 2, spread = 2, }) => {
|
|
7
|
+
const MotionComponent = motion.create(Component);
|
|
8
|
+
const dynamicSpread = useMemo(() => (children?.length ?? 0) * spread, [children, spread]);
|
|
9
|
+
return (_jsx(MotionComponent, { animate: { backgroundPosition: '0% center' }, className: cn('relative inline-block bg-[length:250%_100%,auto] bg-clip-text text-transparent', '[--bg:linear-gradient(90deg,#0000_calc(50%-var(--spread)),var(--color-background),#0000_calc(50%+var(--spread)))] [background-repeat:no-repeat,padding-box]', className), initial: { backgroundPosition: '100% center' }, style: {
|
|
10
|
+
'--spread': `${dynamicSpread}px`,
|
|
11
|
+
backgroundImage: 'var(--bg), linear-gradient(var(--color-muted-foreground), var(--color-muted-foreground))',
|
|
12
|
+
}, transition: {
|
|
13
|
+
repeat: Number.POSITIVE_INFINITY,
|
|
14
|
+
duration,
|
|
15
|
+
ease: 'linear',
|
|
16
|
+
}, children: children }));
|
|
17
|
+
};
|
|
18
|
+
export const Shimmer = memo(ShimmerComponent);
|
|
19
|
+
//# sourceMappingURL=shimmer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shimmer.js","sourceRoot":"","sources":["../../../src/components/ai-elements/shimmer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAkD,IAAI,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAUtF,MAAM,gBAAgB,GAAG,CAAC,EACzB,QAAQ,EACR,EAAE,EAAE,SAAS,GAAG,GAAG,EACnB,SAAS,EACT,QAAQ,GAAG,CAAC,EACZ,MAAM,GAAG,CAAC,GACQ,EAAE,EAAE;IACtB,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,SAAwC,CAAC,CAAC;IAEhF,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAE1F,OAAO,CACN,KAAC,eAAe,IACf,OAAO,EAAE,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAC5C,SAAS,EAAE,EAAE,CACZ,gFAAgF,EAChF,6JAA6J,EAC7J,SAAS,CACT,EACD,OAAO,EAAE,EAAE,kBAAkB,EAAE,aAAa,EAAE,EAC9C,KAAK,EACJ;YACC,UAAU,EAAE,GAAG,aAAa,IAAI;YAChC,eAAe,EACd,0FAA0F;SAC1E,EAEnB,UAAU,EAAE;YACX,MAAM,EAAE,MAAM,CAAC,iBAAiB;YAChC,QAAQ;YACR,IAAI,EAAE,QAAQ;SACd,YAEA,QAAQ,GACQ,CAClB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CollapsibleContent, CollapsibleTrigger } from '../ui/collapsible';
|
|
2
|
+
import type { ComponentProps } from 'react';
|
|
3
|
+
export type SourcesProps = ComponentProps<'div'>;
|
|
4
|
+
export declare const Sources: ({ className, ...props }: SourcesProps) => import("react/jsx-runtime").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-runtime").JSX.Element;
|
|
9
|
+
export type SourcesContentProps = ComponentProps<typeof CollapsibleContent>;
|
|
10
|
+
export declare const SourcesContent: ({ className, ...props }: SourcesContentProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export type SourceProps = ComponentProps<'a'>;
|
|
12
|
+
export declare const Source: ({ href, title, children, ...props }: SourceProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=sources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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,mBAAmB,CAAC;AAGxF,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,4CAE5D,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,kBAAkB,CAAC,GAAG;IAC7E,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,0CAA0C,mBAAmB,4CAS3F,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE5E,eAAO,MAAM,cAAc,GAAI,yBAAyB,mBAAmB,4CAS1E,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;AAE9C,eAAO,MAAM,MAAM,GAAI,qCAAqC,WAAW,4CAStE,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../ui/collapsible';
|
|
4
|
+
import { cn } from '../../lib/utils';
|
|
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', 'data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 outline-none data-[state=closed]:animate-out data-[state=open]:animate-in', 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 })] })) }));
|
|
10
|
+
//# sourceMappingURL=sources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../../src/components/ai-elements/sources.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAKzD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAgB,EAAE,EAAE,CAAC,CACjE,KAAC,WAAW,IAAC,SAAS,EAAE,EAAE,CAAC,qCAAqC,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAC3F,CAAC;AAMF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAuB,EAAE,EAAE,CAAC,CAChG,KAAC,kBAAkB,IAAC,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,SAAS,CAAC,KAAM,KAAK,YAChF,QAAQ,IAAI,CACZ,8BACC,aAAG,SAAS,EAAC,aAAa,sBAAO,KAAK,gBAAa,EACnD,KAAC,eAAe,IAAC,SAAS,EAAC,SAAS,GAAG,IACrC,CACH,GACmB,CACrB,CAAC;AAIF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAuB,EAAE,EAAE,CAAC,CAC/E,KAAC,kBAAkB,IAClB,SAAS,EAAE,EAAE,CACZ,gCAAgC,EAChC,uLAAuL,EACvL,SAAS,CACT,KACG,KAAK,GACR,CACF,CAAC;AAIF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAe,EAAE,EAAE,CAAC,CAC3E,YAAG,SAAS,EAAC,yBAAyB,EAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAC,YAAY,EAAC,MAAM,EAAC,QAAQ,KAAK,KAAK,YAC3F,QAAQ,IAAI,CACZ,8BACC,KAAC,QAAQ,IAAC,SAAS,EAAC,SAAS,GAAG,EAChC,eAAM,SAAS,EAAC,mBAAmB,YAAE,KAAK,GAAQ,IAChD,CACH,GACE,CACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ComponentProps } from 'react';
|
|
2
|
+
import { Button } from '../ui/button';
|
|
3
|
+
import { ScrollArea } from '../ui/scroll-area';
|
|
4
|
+
export type SuggestionsProps = ComponentProps<typeof ScrollArea>;
|
|
5
|
+
export declare const Suggestions: ({ className, children, ...props }: SuggestionsProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export type SuggestionProps = Omit<ComponentProps<typeof Button>, 'onClick'> & {
|
|
7
|
+
suggestion: string;
|
|
8
|
+
onClick?: (suggestion: string) => void;
|
|
9
|
+
};
|
|
10
|
+
export declare const Suggestion: ({ suggestion, onClick, className, variant, size, children, ...props }: SuggestionProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=suggestion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suggestion.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/suggestion.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,UAAU,EAAa,MAAM,mBAAmB,CAAC;AAG1D,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,CAAC;AAEjE,eAAO,MAAM,WAAW,GAAI,mCAAmC,gBAAgB,4CAK9E,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG;IAC9E,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,uEAQxB,eAAe,4CAiBjB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Button } from '../ui/button';
|
|
4
|
+
import { ScrollArea, ScrollBar } from '../ui/scroll-area';
|
|
5
|
+
import { cn } from '../../lib/utils';
|
|
6
|
+
export const Suggestions = ({ className, children, ...props }) => (_jsxs(ScrollArea, { className: "w-full overflow-x-auto whitespace-nowrap", ...props, children: [_jsx("div", { className: cn('flex w-max flex-nowrap items-center gap-2', className), children: children }), _jsx(ScrollBar, { className: "hidden", orientation: "horizontal" })] }));
|
|
7
|
+
export const Suggestion = ({ suggestion, onClick, className, variant = 'outline', size = 'sm', children, ...props }) => {
|
|
8
|
+
const handleClick = () => {
|
|
9
|
+
onClick?.(suggestion);
|
|
10
|
+
};
|
|
11
|
+
return (_jsx(Button, { className: cn('cursor-pointer rounded-full px-4', className), onClick: handleClick, size: size, type: "button", variant: variant, ...props, children: children || suggestion }));
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=suggestion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suggestion.js","sourceRoot":"","sources":["../../../src/components/ai-elements/suggestion.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAIrC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAoB,EAAE,EAAE,CAAC,CACnF,MAAC,UAAU,IAAC,SAAS,EAAC,0CAA0C,KAAK,KAAK,aACzE,cAAK,SAAS,EAAE,EAAE,CAAC,2CAA2C,EAAE,SAAS,CAAC,YAAG,QAAQ,GAAO,EAC5F,KAAC,SAAS,IAAC,SAAS,EAAC,QAAQ,EAAC,WAAW,EAAC,YAAY,GAAG,IAC7C,CACb,CAAC;AAOF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAC1B,UAAU,EACV,OAAO,EACP,SAAS,EACT,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,IAAI,EACX,QAAQ,EACR,GAAG,KAAK,EACS,EAAE,EAAE;IACrB,MAAM,WAAW,GAAG,GAAG,EAAE;QACxB,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,OAAO,CACN,KAAC,MAAM,IACN,SAAS,EAAE,EAAE,CAAC,kCAAkC,EAAE,SAAS,CAAC,EAC5D,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,IAAI,EACV,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,KACZ,KAAK,YAER,QAAQ,IAAI,UAAU,GACf,CACT,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../ui/collapsible';
|
|
2
|
+
import type { ComponentProps } from 'react';
|
|
3
|
+
export type TaskItemFileProps = ComponentProps<'div'>;
|
|
4
|
+
export declare const TaskItemFile: ({ children, className, ...props }: TaskItemFileProps) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export type TaskItemProps = ComponentProps<'div'>;
|
|
6
|
+
export declare const TaskItem: ({ children, className, ...props }: TaskItemProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export type TaskProps = ComponentProps<typeof Collapsible>;
|
|
8
|
+
export declare const Task: ({ defaultOpen, className, ...props }: TaskProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export type TaskTriggerProps = ComponentProps<typeof CollapsibleTrigger> & {
|
|
10
|
+
title: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const TaskTrigger: ({ children, className, title, ...props }: TaskTriggerProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export type TaskContentProps = ComponentProps<typeof CollapsibleContent>;
|
|
14
|
+
export declare const TaskContent: ({ children, className, ...props }: TaskContentProps) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=task.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/task.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAEtD,eAAO,MAAM,YAAY,GAAI,mCAAmC,iBAAiB,4CAUhF,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAElD,eAAO,MAAM,QAAQ,GAAI,mCAAmC,aAAa,4CAIxE,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,CAAC;AAE3D,eAAO,MAAM,IAAI,GAAI,sCAA6C,SAAS,4CAE1E,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,kBAAkB,CAAC,GAAG;IAC1E,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,0CAA0C,gBAAgB,4CAUrF,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEzE,eAAO,MAAM,WAAW,GAAI,mCAAmC,gBAAgB,4CAU9E,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../ui/collapsible';
|
|
4
|
+
import { cn } from '../../lib/utils';
|
|
5
|
+
import { ChevronDownIcon, SearchIcon } from 'lucide-react';
|
|
6
|
+
export const TaskItemFile = ({ children, className, ...props }) => (_jsx("div", { className: cn('inline-flex items-center gap-1 rounded-md border bg-secondary px-1.5 py-0.5 text-foreground text-xs', className), ...props, children: children }));
|
|
7
|
+
export const TaskItem = ({ children, className, ...props }) => (_jsx("div", { className: cn('text-muted-foreground text-sm', className), ...props, children: children }));
|
|
8
|
+
export const Task = ({ defaultOpen = true, className, ...props }) => (_jsx(Collapsible, { className: cn(className), defaultOpen: defaultOpen, ...props }));
|
|
9
|
+
export const TaskTrigger = ({ children, className, title, ...props }) => (_jsx(CollapsibleTrigger, { asChild: true, className: cn('group', className), ...props, children: children ?? (_jsxs("div", { className: "flex w-full cursor-pointer items-center gap-2 text-muted-foreground text-sm transition-colors hover:text-foreground", children: [_jsx(SearchIcon, { className: "size-4" }), _jsx("p", { className: "text-sm", children: title }), _jsx(ChevronDownIcon, { className: "size-4 transition-transform group-data-[state=open]:rotate-180" })] })) }));
|
|
10
|
+
export const TaskContent = ({ children, className, ...props }) => (_jsx(CollapsibleContent, { className: cn('data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-popover-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in', className), ...props, children: _jsx("div", { className: "mt-4 space-y-2 border-muted border-l-2 pl-4", children: children }) }));
|
|
11
|
+
//# sourceMappingURL=task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../../src/components/ai-elements/task.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK3D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAqB,EAAE,EAAE,CAAC,CACrF,cACC,SAAS,EAAE,EAAE,CACZ,qGAAqG,EACrG,SAAS,CACT,KACG,KAAK,YAER,QAAQ,GACJ,CACN,CAAC;AAIF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiB,EAAE,EAAE,CAAC,CAC7E,cAAK,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KAAM,KAAK,YACvE,QAAQ,GACJ,CACN,CAAC;AAIF,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,WAAW,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAAa,EAAE,EAAE,CAAC,CAC/E,KAAC,WAAW,IAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,WAAW,KAAM,KAAK,GAAI,CAC9E,CAAC;AAMF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAoB,EAAE,EAAE,CAAC,CAC1F,KAAC,kBAAkB,IAAC,OAAO,QAAC,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,KAAM,KAAK,YACtE,QAAQ,IAAI,CACZ,eAAK,SAAS,EAAC,qHAAqH,aACnI,KAAC,UAAU,IAAC,SAAS,EAAC,QAAQ,GAAG,EACjC,YAAG,SAAS,EAAC,SAAS,YAAE,KAAK,GAAK,EAClC,KAAC,eAAe,IAAC,SAAS,EAAC,gEAAgE,GAAG,IACzF,CACN,GACmB,CACrB,CAAC;AAIF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAoB,EAAE,EAAE,CAAC,CACnF,KAAC,kBAAkB,IAClB,SAAS,EAAE,EAAE,CACZ,+MAA+M,EAC/M,SAAS,CACT,KACG,KAAK,YAET,cAAK,SAAS,EAAC,6CAA6C,YAAE,QAAQ,GAAO,GACzD,CACrB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Collapsible, CollapsibleContent } from '../ui/collapsible';
|
|
2
|
+
import type { ToolUIPart } from 'ai';
|
|
3
|
+
import type { ComponentProps } from 'react';
|
|
4
|
+
export type ToolProps = ComponentProps<typeof Collapsible>;
|
|
5
|
+
export declare const Tool: ({ className, ...props }: ToolProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export type ToolHeaderProps = {
|
|
7
|
+
title?: string;
|
|
8
|
+
type: ToolUIPart['type'];
|
|
9
|
+
state: any;
|
|
10
|
+
className?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const ToolHeader: ({ className, title, type, state, ...props }: ToolHeaderProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export type ToolContentProps = ComponentProps<typeof CollapsibleContent>;
|
|
14
|
+
export declare const ToolContent: ({ className, ...props }: ToolContentProps) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export type ToolInputProps = ComponentProps<'div'> & {
|
|
16
|
+
input: ToolUIPart['input'];
|
|
17
|
+
};
|
|
18
|
+
export declare const ToolInput: ({ className, input, ...props }: ToolInputProps) => import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export type ToolOutputProps = ComponentProps<'div'> & {
|
|
20
|
+
output: ToolUIPart['output'];
|
|
21
|
+
errorText: ToolUIPart['errorText'];
|
|
22
|
+
};
|
|
23
|
+
export declare const ToolOutput: ({ className, output, errorText, ...props }: ToolOutputProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
24
|
+
//# sourceMappingURL=tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/tool.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAsB,MAAM,mBAAmB,CAAC;AAExF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AASrC,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,OAAO,CAAC;AAIvD,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,CAAC;AAE3D,eAAO,MAAM,IAAI,GAAI,yBAAyB,SAAS,4CAEtD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACzB,KAAK,EAAE,GAAG,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AA+BF,eAAO,MAAM,UAAU,GAAI,6CAA6C,eAAe,4CAYtF,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEzE,eAAO,MAAM,WAAW,GAAI,yBAAyB,gBAAgB,4CAQpE,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IACpD,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,gCAAgC,cAAc,4CASvE,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IACrD,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,4CAA4C,eAAe,mDA6BrF,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Badge } from '../ui/badge';
|
|
4
|
+
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../ui/collapsible';
|
|
5
|
+
import { cn } from '../../lib/utils';
|
|
6
|
+
import { CheckCircleIcon, ChevronDownIcon, CircleIcon, ClockIcon, WrenchIcon, XCircleIcon, } from 'lucide-react';
|
|
7
|
+
import { isValidElement } from 'react';
|
|
8
|
+
import { CodeBlock } from './code-block';
|
|
9
|
+
export const Tool = ({ className, ...props }) => (_jsx(Collapsible, { className: cn('not-prose mb-4 w-full rounded-md border', className), ...props }));
|
|
10
|
+
const getStatusBadge = (status) => {
|
|
11
|
+
const labels = {
|
|
12
|
+
'input-streaming': 'Pending',
|
|
13
|
+
'input-available': 'Running',
|
|
14
|
+
'approval-requested': 'Awaiting Approval',
|
|
15
|
+
'approval-responded': 'Responded',
|
|
16
|
+
'output-available': 'Completed',
|
|
17
|
+
'output-error': 'Error',
|
|
18
|
+
'output-denied': 'Denied',
|
|
19
|
+
};
|
|
20
|
+
const icons = {
|
|
21
|
+
'input-streaming': _jsx(CircleIcon, { className: "size-4" }),
|
|
22
|
+
'input-available': _jsx(ClockIcon, { className: "size-4 animate-pulse" }),
|
|
23
|
+
'approval-requested': _jsx(ClockIcon, { className: "size-4 text-yellow-600" }),
|
|
24
|
+
'approval-responded': _jsx(CheckCircleIcon, { className: "size-4 text-blue-600" }),
|
|
25
|
+
'output-available': _jsx(CheckCircleIcon, { className: "size-4 text-green-600" }),
|
|
26
|
+
'output-error': _jsx(XCircleIcon, { className: "size-4 text-red-600" }),
|
|
27
|
+
'output-denied': _jsx(XCircleIcon, { className: "size-4 text-orange-600" }),
|
|
28
|
+
};
|
|
29
|
+
return (_jsxs(Badge, { className: "gap-1.5 rounded-full text-xs", variant: "secondary", children: [icons[status], labels[status]] }));
|
|
30
|
+
};
|
|
31
|
+
export const ToolHeader = ({ className, title, type, 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(WrenchIcon, { className: "size-4 text-muted-foreground" }), _jsx("span", { className: "font-medium text-sm", children: title ?? type.split('-').slice(1).join('-') }), getStatusBadge(state)] }), _jsx(ChevronDownIcon, { className: "size-4 text-muted-foreground transition-transform group-data-[state=open]:rotate-180" })] }));
|
|
32
|
+
export const ToolContent = ({ className, ...props }) => (_jsx(CollapsibleContent, { className: cn('data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-popover-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in', className), ...props }));
|
|
33
|
+
export const ToolInput = ({ className, input, ...props }) => (_jsxs("div", { className: cn('space-y-2 overflow-hidden p-4', className), ...props, children: [_jsx("h4", { className: "font-medium text-muted-foreground text-xs uppercase tracking-wide", children: "Parameters" }), _jsx("div", { className: "rounded-md bg-muted/50", children: _jsx(CodeBlock, { code: JSON.stringify(input, null, 2), language: "json" }) })] }));
|
|
34
|
+
export const ToolOutput = ({ className, output, errorText, ...props }) => {
|
|
35
|
+
if (!(output || errorText)) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
let Output = _jsx("div", { children: output });
|
|
39
|
+
if (typeof output === 'object' && !isValidElement(output)) {
|
|
40
|
+
Output = _jsx(CodeBlock, { code: JSON.stringify(output, null, 2), language: "json" });
|
|
41
|
+
}
|
|
42
|
+
else if (typeof output === 'string') {
|
|
43
|
+
Output = _jsx(CodeBlock, { code: output, language: "json" });
|
|
44
|
+
}
|
|
45
|
+
return (_jsxs("div", { className: cn('space-y-2 p-4', className), ...props, children: [_jsx("h4", { className: "font-medium text-muted-foreground text-xs uppercase tracking-wide", children: errorText ? 'Error' : 'Result' }), _jsxs("div", { className: cn('overflow-x-auto rounded-md text-xs [&_table]:w-full', errorText ? 'bg-destructive/10 text-destructive' : 'bg-muted/50 text-foreground'), children: [errorText && _jsx("div", { children: errorText }), Output] })] }));
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/components/ai-elements/tool.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,OAAO,EACN,eAAe,EACf,eAAe,EACf,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,GACX,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAa,EAAE,EAAE,CAAC,CAC3D,KAAC,WAAW,IAAC,SAAS,EAAE,EAAE,CAAC,yCAAyC,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAC/F,CAAC;AASF,MAAM,cAAc,GAAG,CAAC,MAAW,EAAE,EAAE;IACtC,MAAM,MAAM,GAA2B;QACtC,iBAAiB,EAAE,SAAS;QAC5B,iBAAiB,EAAE,SAAS;QAC5B,oBAAoB,EAAE,mBAAmB;QACzC,oBAAoB,EAAE,WAAW;QACjC,kBAAkB,EAAE,WAAW;QAC/B,cAAc,EAAE,OAAO;QACvB,eAAe,EAAE,QAAQ;KACzB,CAAC;IAEF,MAAM,KAAK,GAA8B;QACxC,iBAAiB,EAAE,KAAC,UAAU,IAAC,SAAS,EAAC,QAAQ,GAAG;QACpD,iBAAiB,EAAE,KAAC,SAAS,IAAC,SAAS,EAAC,sBAAsB,GAAG;QACjE,oBAAoB,EAAE,KAAC,SAAS,IAAC,SAAS,EAAC,wBAAwB,GAAG;QACtE,oBAAoB,EAAE,KAAC,eAAe,IAAC,SAAS,EAAC,sBAAsB,GAAG;QAC1E,kBAAkB,EAAE,KAAC,eAAe,IAAC,SAAS,EAAC,uBAAuB,GAAG;QACzE,cAAc,EAAE,KAAC,WAAW,IAAC,SAAS,EAAC,qBAAqB,GAAG;QAC/D,eAAe,EAAE,KAAC,WAAW,IAAC,SAAS,EAAC,wBAAwB,GAAG;KACnE,CAAC;IAEF,OAAO,CACN,MAAC,KAAK,IAAC,SAAS,EAAC,8BAA8B,EAAC,OAAO,EAAC,WAAW,aACjE,KAAK,CAAC,MAAM,CAAC,EACb,MAAM,CAAC,MAAM,CAAC,IACR,CACR,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,EAAmB,EAAE,EAAE,CAAC,CAC3F,MAAC,kBAAkB,IAClB,SAAS,EAAE,EAAE,CAAC,oDAAoD,EAAE,SAAS,CAAC,KAC1E,KAAK,aAET,eAAK,SAAS,EAAC,yBAAyB,aACvC,KAAC,UAAU,IAAC,SAAS,EAAC,8BAA8B,GAAG,EACvD,eAAM,SAAS,EAAC,qBAAqB,YAAE,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAQ,EACzF,cAAc,CAAC,KAAK,CAAC,IACjB,EACN,KAAC,eAAe,IAAC,SAAS,EAAC,sFAAsF,GAAG,IAChG,CACrB,CAAC;AAIF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAoB,EAAE,EAAE,CAAC,CACzE,KAAC,kBAAkB,IAClB,SAAS,EAAE,EAAE,CACZ,+MAA+M,EAC/M,SAAS,CACT,KACG,KAAK,GACR,CACF,CAAC;AAMF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAkB,EAAE,EAAE,CAAC,CAC5E,eAAK,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KAAM,KAAK,aACxE,aAAI,SAAS,EAAC,mEAAmE,2BAE5E,EACL,cAAK,SAAS,EAAC,wBAAwB,YACtC,KAAC,SAAS,IAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAC,MAAM,GAAG,GAC9D,IACD,CACN,CAAC;AAOF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAmB,EAAE,EAAE;IACzF,IAAI,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,MAAM,GAAG,wBAAM,MAAmB,GAAO,CAAC;IAE9C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3D,MAAM,GAAG,KAAC,SAAS,IAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAC,MAAM,GAAG,CAAC;IAC/E,CAAC;SAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,GAAG,KAAC,SAAS,IAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAC,MAAM,GAAG,CAAC;IACtD,CAAC;IAED,OAAO,CACN,eAAK,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,KAAM,KAAK,aACxD,aAAI,SAAS,EAAC,mEAAmE,YAC/E,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,GAC3B,EACL,eACC,SAAS,EAAE,EAAE,CACZ,qDAAqD,EACrD,SAAS,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,6BAA6B,CAChF,aAEA,SAAS,IAAI,wBAAM,SAAS,GAAO,EACnC,MAAM,IACF,IACD,CACN,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { NodeToolbar } from '@xyflow/react';
|
|
2
|
+
import type { ComponentProps } from 'react';
|
|
3
|
+
type ToolbarProps = ComponentProps<typeof NodeToolbar>;
|
|
4
|
+
export declare const Toolbar: ({ className, ...props }: ToolbarProps) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=toolbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolbar.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/toolbar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAY,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,KAAK,YAAY,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,CAAC;AAEvD,eAAO,MAAM,OAAO,GAAI,yBAAyB,YAAY,4CAM5D,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from '../../lib/utils';
|
|
3
|
+
import { NodeToolbar, Position } from '@xyflow/react';
|
|
4
|
+
export const Toolbar = ({ className, ...props }) => (_jsx(NodeToolbar, { className: cn('flex items-center gap-1 rounded-sm border bg-background p-1.5', className), position: Position.Bottom, ...props }));
|
|
5
|
+
//# sourceMappingURL=toolbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolbar.js","sourceRoot":"","sources":["../../../src/components/ai-elements/toolbar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAKtD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAgB,EAAE,EAAE,CAAC,CACjE,KAAC,WAAW,IACX,SAAS,EAAE,EAAE,CAAC,+DAA+D,EAAE,SAAS,CAAC,EACzF,QAAQ,EAAE,QAAQ,CAAC,MAAM,KACrB,KAAK,GACR,CACF,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Button } from '../ui/button';
|
|
2
|
+
import { Input } from '../ui/input';
|
|
3
|
+
import type { ComponentProps, ReactNode } from 'react';
|
|
4
|
+
export type WebPreviewContextValue = {
|
|
5
|
+
url: string;
|
|
6
|
+
setUrl: (url: string) => void;
|
|
7
|
+
consoleOpen: boolean;
|
|
8
|
+
setConsoleOpen: (open: boolean) => void;
|
|
9
|
+
};
|
|
10
|
+
export type WebPreviewProps = ComponentProps<'div'> & {
|
|
11
|
+
defaultUrl?: string;
|
|
12
|
+
onUrlChange?: (url: string) => void;
|
|
13
|
+
};
|
|
14
|
+
export declare const WebPreview: ({ className, children, defaultUrl, onUrlChange, ...props }: WebPreviewProps) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export type WebPreviewNavigationProps = ComponentProps<'div'>;
|
|
16
|
+
export declare const WebPreviewNavigation: ({ className, children, ...props }: WebPreviewNavigationProps) => import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export type WebPreviewNavigationButtonProps = ComponentProps<typeof Button> & {
|
|
18
|
+
tooltip?: string;
|
|
19
|
+
};
|
|
20
|
+
export declare const WebPreviewNavigationButton: ({ onClick, disabled, tooltip, children, ...props }: WebPreviewNavigationButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export type WebPreviewUrlProps = ComponentProps<typeof Input>;
|
|
22
|
+
export declare const WebPreviewUrl: ({ value, onChange, onKeyDown, ...props }: WebPreviewUrlProps) => import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export type WebPreviewBodyProps = ComponentProps<'iframe'> & {
|
|
24
|
+
loading?: ReactNode;
|
|
25
|
+
};
|
|
26
|
+
export declare const WebPreviewBody: ({ className, loading, src, ...props }: WebPreviewBodyProps) => import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
export type WebPreviewConsoleProps = ComponentProps<'div'> & {
|
|
28
|
+
logs?: Array<{
|
|
29
|
+
level: 'log' | 'warn' | 'error';
|
|
30
|
+
message: string;
|
|
31
|
+
timestamp: Date;
|
|
32
|
+
}>;
|
|
33
|
+
};
|
|
34
|
+
export declare const WebPreviewConsole: ({ className, logs, children, ...props }: WebPreviewConsoleProps) => import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
//# sourceMappingURL=web-preview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-preview.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/web-preview.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIpC,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,MAAM,MAAM,sBAAsB,GAAG;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC,CAAC;AAYF,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,4DAMxB,eAAe,4CA0BjB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAE9D,eAAO,MAAM,oBAAoB,GAAI,mCAIlC,yBAAyB,4CAI3B,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG,cAAc,CAAC,OAAO,MAAM,CAAC,GAAG;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,oDAMxC,+BAA+B,4CAoBjC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,OAAO,KAAK,CAAC,CAAC;AAE9D,eAAO,MAAM,aAAa,GAAI,0CAA0C,kBAAkB,4CAgCzF,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG;IAC5D,OAAO,CAAC,EAAE,SAAS,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,uCAAuC,mBAAmB,4CAexF,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IAC5D,IAAI,CAAC,EAAE,KAAK,CAAC;QACZ,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;QAChC,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,IAAI,CAAC;KAChB,CAAC,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,yCAK/B,sBAAsB,4CAwDxB,CAAC"}
|