veryfront 0.1.996 → 0.1.998
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/esm/cli/templates/manifest.js +1 -1
- package/esm/deno.d.ts +8 -0
- package/esm/deno.js +12 -3
- package/esm/deps/esm.sh/react-dom@19.2.4.d.ts +2 -0
- package/esm/deps/esm.sh/react-dom@19.2.4.d.ts.map +1 -0
- package/esm/deps/esm.sh/react-dom@19.2.4.js +3 -0
- package/esm/react/react-dom.d.ts +3 -0
- package/esm/react/react-dom.d.ts.map +1 -0
- package/esm/react/react-dom.js +2 -0
- package/esm/src/agent/ag-ui/host-support.d.ts.map +1 -1
- package/esm/src/agent/ag-ui/host-support.js +12 -0
- package/esm/src/agent/react/index.d.ts +4 -2
- package/esm/src/agent/react/index.d.ts.map +1 -1
- package/esm/src/agent/react/index.js +2 -1
- package/esm/src/agent/react/use-agent-metadata.d.ts +5 -0
- package/esm/src/agent/react/use-agent-metadata.d.ts.map +1 -1
- package/esm/src/agent/react/use-agent-metadata.js +18 -9
- package/esm/src/agent/react/use-agents.d.ts +33 -0
- package/esm/src/agent/react/use-agents.d.ts.map +1 -0
- package/esm/src/agent/react/use-agents.js +72 -0
- package/esm/src/agent/react/use-chat/index.d.ts +1 -1
- package/esm/src/agent/react/use-chat/index.d.ts.map +1 -1
- package/esm/src/agent/react/use-chat/types.d.ts +3 -2
- package/esm/src/agent/react/use-chat/types.d.ts.map +1 -1
- package/esm/src/agent/react/use-chat/use-chat.d.ts +12 -1
- package/esm/src/agent/react/use-chat/use-chat.d.ts.map +1 -1
- package/esm/src/agent/react/use-chat/use-chat.js +47 -7
- package/esm/src/agent/react/use-chat/utils.d.ts.map +1 -1
- package/esm/src/agent/react/use-chat/utils.js +4 -0
- package/esm/src/agent/runtime/message-adapter.d.ts.map +1 -1
- package/esm/src/agent/runtime/message-adapter.js +3 -1
- package/esm/src/agent/runtime/text-generation-runtime-message-converter.d.ts.map +1 -1
- package/esm/src/agent/runtime/text-generation-runtime-message-converter.js +6 -2
- package/esm/src/chat/index.d.ts +17 -7
- package/esm/src/chat/index.d.ts.map +1 -1
- package/esm/src/chat/index.js +33 -7
- package/esm/src/chat/protocol.d.ts +13 -1
- package/esm/src/chat/protocol.d.ts.map +1 -1
- package/esm/src/chat/upload-handler.d.ts +55 -0
- package/esm/src/chat/upload-handler.d.ts.map +1 -0
- package/esm/src/chat/upload-handler.js +180 -0
- package/esm/src/discovery/import-rewriter.d.ts +1 -1
- package/esm/src/discovery/import-rewriter.d.ts.map +1 -1
- package/esm/src/discovery/import-rewriter.js +2 -0
- package/esm/src/discovery/transpiler.d.ts.map +1 -1
- package/esm/src/discovery/transpiler.js +2 -0
- package/esm/src/react/components/chat/agent-card.d.ts +84 -11
- package/esm/src/react/components/chat/agent-card.d.ts.map +1 -1
- package/esm/src/react/components/chat/agent-card.js +151 -57
- package/esm/src/react/components/chat/agent-picker.d.ts +166 -0
- package/esm/src/react/components/chat/agent-picker.d.ts.map +1 -0
- package/esm/src/react/components/chat/agent-picker.js +183 -0
- package/esm/src/react/components/chat/chat/components/animations.js +1 -1
- package/esm/src/react/components/chat/chat/components/attachment-pill.d.ts +125 -3
- package/esm/src/react/components/chat/chat/components/attachment-pill.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/components/attachment-pill.js +209 -25
- package/esm/src/react/components/chat/chat/components/attachments-panel.d.ts +149 -0
- package/esm/src/react/components/chat/chat/components/attachments-panel.d.ts.map +1 -0
- package/esm/src/react/components/chat/chat/components/attachments-panel.js +187 -0
- package/esm/src/react/components/chat/chat/components/branch-picker.d.ts +13 -2
- package/esm/src/react/components/chat/chat/components/branch-picker.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/components/branch-picker.js +6 -8
- package/esm/src/react/components/chat/chat/components/chat-messages-skeleton.d.ts +20 -0
- package/esm/src/react/components/chat/chat/components/chat-messages-skeleton.d.ts.map +1 -0
- package/esm/src/react/components/chat/chat/components/chat-messages-skeleton.js +31 -0
- package/esm/src/react/components/chat/chat/components/code-block.d.ts +9 -1
- package/esm/src/react/components/chat/chat/components/code-block.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/components/code-block.js +14 -6
- package/esm/src/react/components/chat/chat/components/drop-zone.d.ts +11 -4
- package/esm/src/react/components/chat/chat/components/drop-zone.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/components/drop-zone.js +10 -8
- package/esm/src/react/components/chat/chat/components/empty-state.d.ts +2 -1
- package/esm/src/react/components/chat/chat/components/empty-state.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/components/empty-state.js +7 -8
- package/esm/src/react/components/chat/chat/components/inference-badge.d.ts +6 -2
- package/esm/src/react/components/chat/chat/components/inference-badge.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/components/inference-badge.js +5 -4
- package/esm/src/react/components/chat/chat/components/inline-citation.d.ts +9 -1
- package/esm/src/react/components/chat/chat/components/inline-citation.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/components/inline-citation.js +19 -20
- package/esm/src/react/components/chat/chat/components/message-actions.d.ts +28 -5
- package/esm/src/react/components/chat/chat/components/message-actions.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/components/message-actions.js +24 -36
- package/esm/src/react/components/chat/chat/components/message-edit-form.d.ts +7 -2
- package/esm/src/react/components/chat/chat/components/message-edit-form.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/components/message-edit-form.js +5 -5
- package/esm/src/react/components/chat/chat/components/message-feedback.d.ts +11 -1
- package/esm/src/react/components/chat/chat/components/message-feedback.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/components/message-feedback.js +9 -11
- package/esm/src/react/components/chat/chat/components/quick-actions.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/components/quick-actions.js +3 -1
- package/esm/src/react/components/chat/chat/components/reasoning.d.ts +66 -3
- package/esm/src/react/components/chat/chat/components/reasoning.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/components/reasoning.js +95 -21
- package/esm/src/react/components/chat/chat/components/sidebar.d.ts +178 -12
- package/esm/src/react/components/chat/chat/components/sidebar.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/components/sidebar.js +228 -45
- package/esm/src/react/components/chat/chat/components/skill-badge.d.ts +6 -1
- package/esm/src/react/components/chat/chat/components/skill-badge.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/components/skill-badge.js +6 -5
- package/esm/src/react/components/chat/chat/components/skill-tool.d.ts +37 -0
- package/esm/src/react/components/chat/chat/components/skill-tool.d.ts.map +1 -0
- package/esm/src/react/components/chat/chat/components/skill-tool.js +46 -0
- package/esm/src/react/components/chat/chat/components/sources.d.ts +55 -3
- package/esm/src/react/components/chat/chat/components/sources.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/components/sources.js +50 -16
- package/esm/src/react/components/chat/chat/components/step-indicator.d.ts +42 -3
- package/esm/src/react/components/chat/chat/components/step-indicator.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/components/step-indicator.js +55 -12
- package/esm/src/react/components/chat/chat/components/tab-switcher.d.ts +1 -1
- package/esm/src/react/components/chat/chat/components/tab-switcher.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/components/tab-switcher.js +3 -3
- package/esm/src/react/components/chat/chat/components/tool-ui.d.ts +96 -3
- package/esm/src/react/components/chat/chat/components/tool-ui.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/components/tool-ui.js +158 -36
- package/esm/src/react/components/chat/chat/composition/api.d.ts +4 -2
- package/esm/src/react/components/chat/chat/composition/api.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/composition/api.js +4 -2
- package/esm/src/react/components/chat/chat/composition/chat-composer.d.ts +112 -5
- package/esm/src/react/components/chat/chat/composition/chat-composer.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/composition/chat-composer.js +251 -61
- package/esm/src/react/components/chat/chat/composition/chat-empty-state.d.ts +78 -0
- package/esm/src/react/components/chat/chat/composition/chat-empty-state.d.ts.map +1 -0
- package/esm/src/react/components/chat/chat/composition/chat-empty-state.js +63 -0
- package/esm/src/react/components/chat/chat/composition/chat-empty.d.ts +4 -1
- package/esm/src/react/components/chat/chat/composition/chat-empty.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/composition/chat-empty.js +11 -10
- package/esm/src/react/components/chat/chat/composition/chat-message-list.d.ts +11 -3
- package/esm/src/react/components/chat/chat/composition/chat-message-list.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/composition/chat-message-list.js +81 -111
- package/esm/src/react/components/chat/chat/composition/chat-root.d.ts +4 -0
- package/esm/src/react/components/chat/chat/composition/chat-root.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/composition/chat-root.js +3 -1
- package/esm/src/react/components/chat/chat/composition/error-banner.d.ts +4 -0
- package/esm/src/react/components/chat/chat/composition/error-banner.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/composition/error-banner.js +10 -7
- package/esm/src/react/components/chat/chat/composition/message.d.ts +123 -5
- package/esm/src/react/components/chat/chat/composition/message.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/composition/message.js +332 -53
- package/esm/src/react/components/chat/chat/composition/model-avatar.d.ts +6 -1
- package/esm/src/react/components/chat/chat/composition/model-avatar.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/composition/model-avatar.js +3 -4
- package/esm/src/react/components/chat/chat/composition/pending-message.d.ts +31 -0
- package/esm/src/react/components/chat/chat/composition/pending-message.d.ts.map +1 -0
- package/esm/src/react/components/chat/chat/composition/pending-message.js +31 -0
- package/esm/src/react/components/chat/chat/contexts/chat-context.d.ts +4 -0
- package/esm/src/react/components/chat/chat/contexts/chat-context.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/contexts/composer-context.d.ts +1 -0
- package/esm/src/react/components/chat/chat/contexts/composer-context.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/contexts/conversations-context.d.ts +29 -0
- package/esm/src/react/components/chat/chat/contexts/conversations-context.d.ts.map +1 -0
- package/esm/src/react/components/chat/chat/contexts/conversations-context.js +39 -0
- package/esm/src/react/components/chat/chat/contexts/index.d.ts +1 -1
- package/esm/src/react/components/chat/chat/contexts/index.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/contexts/index.js +1 -1
- package/esm/src/react/components/chat/chat/contexts/message-context.d.ts +2 -0
- package/esm/src/react/components/chat/chat/contexts/message-context.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/hooks/use-clipboard.d.ts +10 -0
- package/esm/src/react/components/chat/chat/hooks/use-clipboard.d.ts.map +1 -0
- package/esm/src/react/components/chat/chat/hooks/use-clipboard.js +34 -0
- package/esm/src/react/components/chat/chat/hooks/use-conversation.d.ts +21 -0
- package/esm/src/react/components/chat/chat/hooks/use-conversation.d.ts.map +1 -0
- package/esm/src/react/components/chat/chat/hooks/use-conversation.js +54 -0
- package/esm/src/react/components/chat/chat/hooks/use-conversations.d.ts +67 -0
- package/esm/src/react/components/chat/chat/hooks/use-conversations.d.ts.map +1 -0
- package/esm/src/react/components/chat/chat/hooks/use-conversations.js +317 -0
- package/esm/src/react/components/chat/chat/hooks/use-drop-zone.d.ts +27 -0
- package/esm/src/react/components/chat/chat/hooks/use-drop-zone.d.ts.map +1 -0
- package/esm/src/react/components/chat/chat/hooks/use-drop-zone.js +50 -0
- package/esm/src/react/components/chat/chat/hooks/use-stick-to-bottom.d.ts +49 -0
- package/esm/src/react/components/chat/chat/hooks/use-stick-to-bottom.d.ts.map +1 -0
- package/esm/src/react/components/chat/chat/hooks/use-stick-to-bottom.js +120 -0
- package/esm/src/react/components/chat/chat/hooks/use-upload.d.ts +34 -0
- package/esm/src/react/components/chat/chat/hooks/use-upload.d.ts.map +1 -0
- package/esm/src/react/components/chat/chat/hooks/use-upload.js +147 -0
- package/esm/src/react/components/chat/chat/hooks/use-uploads-registry.d.ts +37 -0
- package/esm/src/react/components/chat/chat/hooks/use-uploads-registry.d.ts.map +1 -0
- package/esm/src/react/components/chat/chat/hooks/use-uploads-registry.js +178 -0
- package/esm/src/react/components/chat/chat/index.d.ts +171 -31
- package/esm/src/react/components/chat/chat/index.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/index.js +371 -77
- package/esm/src/react/components/chat/chat/persistence/conversation-store.d.ts +63 -0
- package/esm/src/react/components/chat/chat/persistence/conversation-store.d.ts.map +1 -0
- package/esm/src/react/components/chat/chat/persistence/conversation-store.js +1 -0
- package/esm/src/react/components/chat/chat/persistence/local-conversation-store.d.ts +13 -0
- package/esm/src/react/components/chat/chat/persistence/local-conversation-store.d.ts.map +1 -0
- package/esm/src/react/components/chat/chat/persistence/local-conversation-store.js +102 -0
- package/esm/src/react/components/chat/chat/persistence/memory-conversation-store.d.ts +11 -0
- package/esm/src/react/components/chat/chat/persistence/memory-conversation-store.d.ts.map +1 -0
- package/esm/src/react/components/chat/chat/persistence/memory-conversation-store.js +33 -0
- package/esm/src/react/components/chat/chat/utils/message-parts.d.ts +4 -1
- package/esm/src/react/components/chat/chat/utils/message-parts.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/utils/message-parts.js +4 -0
- package/esm/src/react/components/chat/chat-actions.d.ts +164 -0
- package/esm/src/react/components/chat/chat-actions.d.ts.map +1 -0
- package/esm/src/react/components/chat/chat-actions.js +191 -0
- package/esm/src/react/components/chat/chat-agent-picker.d.ts +50 -0
- package/esm/src/react/components/chat/chat-agent-picker.d.ts.map +1 -0
- package/esm/src/react/components/chat/chat-agent-picker.js +40 -0
- package/esm/src/react/components/chat/chat-theme-scope.d.ts +26 -0
- package/esm/src/react/components/chat/chat-theme-scope.d.ts.map +1 -0
- package/esm/src/react/components/chat/chat-theme-scope.js +27 -0
- package/esm/src/react/components/chat/chat-tokens-style.d.ts +21 -0
- package/esm/src/react/components/chat/chat-tokens-style.d.ts.map +1 -0
- package/esm/src/react/components/chat/chat-tokens-style.js +24 -0
- package/esm/src/react/components/chat/chat.d.ts +5 -5
- package/esm/src/react/components/chat/chat.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat.js +5 -5
- package/esm/src/react/components/chat/color-mode.d.ts +46 -0
- package/esm/src/react/components/chat/color-mode.d.ts.map +1 -0
- package/esm/src/react/components/chat/color-mode.js +123 -0
- package/esm/src/react/components/chat/error-boundary.js +2 -2
- package/esm/src/react/components/chat/icons/index.d.ts +8 -0
- package/esm/src/react/components/chat/icons/index.d.ts.map +1 -1
- package/esm/src/react/components/chat/icons/index.js +64 -0
- package/esm/src/react/components/chat/markdown.d.ts +24 -1
- package/esm/src/react/components/chat/markdown.d.ts.map +1 -1
- package/esm/src/react/components/chat/markdown.js +122 -38
- package/esm/src/react/components/chat/model-selector.d.ts +130 -8
- package/esm/src/react/components/chat/model-selector.d.ts.map +1 -1
- package/esm/src/react/components/chat/model-selector.js +148 -121
- package/esm/src/react/components/chat/theme.d.ts +9 -12
- package/esm/src/react/components/chat/theme.d.ts.map +1 -1
- package/esm/src/react/components/chat/theme.js +149 -93
- package/esm/src/react/components/chat/ui/alert.d.ts +30 -0
- package/esm/src/react/components/chat/ui/alert.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/alert.js +35 -0
- package/esm/src/react/components/chat/ui/app-shell.d.ts +155 -0
- package/esm/src/react/components/chat/ui/app-shell.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/app-shell.js +276 -0
- package/esm/src/react/components/chat/ui/avatar.d.ts +24 -0
- package/esm/src/react/components/chat/ui/avatar.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/avatar.js +44 -0
- package/esm/src/react/components/chat/ui/badge.d.ts +24 -0
- package/esm/src/react/components/chat/ui/badge.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/badge.js +30 -0
- package/esm/src/react/components/chat/ui/button.d.ts +44 -0
- package/esm/src/react/components/chat/ui/button.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/button.js +108 -0
- package/esm/src/react/components/chat/ui/card.d.ts +42 -0
- package/esm/src/react/components/chat/ui/card.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/card.js +55 -0
- package/esm/src/react/components/chat/ui/checkbox.d.ts +28 -0
- package/esm/src/react/components/chat/ui/checkbox.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/checkbox.js +36 -0
- package/esm/src/react/components/chat/ui/code-block.d.ts +89 -0
- package/esm/src/react/components/chat/ui/code-block.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/code-block.js +277 -0
- package/esm/src/react/components/chat/ui/collapsible.d.ts +30 -0
- package/esm/src/react/components/chat/ui/collapsible.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/collapsible.js +44 -0
- package/esm/src/react/components/chat/ui/command.d.ts +65 -0
- package/esm/src/react/components/chat/ui/command.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/command.js +121 -0
- package/esm/src/react/components/chat/ui/cva.d.ts +36 -0
- package/esm/src/react/components/chat/ui/cva.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/cva.js +45 -0
- package/esm/src/react/components/chat/ui/dialog.d.ts +55 -0
- package/esm/src/react/components/chat/ui/dialog.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/dialog.js +116 -0
- package/esm/src/react/components/chat/ui/drawer.d.ts +41 -0
- package/esm/src/react/components/chat/ui/drawer.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/drawer.js +92 -0
- package/esm/src/react/components/chat/ui/dropdown-menu.d.ts +63 -0
- package/esm/src/react/components/chat/ui/dropdown-menu.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/dropdown-menu.js +76 -0
- package/esm/src/react/components/chat/ui/file-type.d.ts +26 -0
- package/esm/src/react/components/chat/ui/file-type.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/file-type.js +235 -0
- package/esm/src/react/components/chat/ui/floating.d.ts +29 -0
- package/esm/src/react/components/chat/ui/floating.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/floating.js +90 -0
- package/esm/src/react/components/chat/ui/icon-button.d.ts +19 -0
- package/esm/src/react/components/chat/ui/icon-button.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/icon-button.js +20 -0
- package/esm/src/react/components/chat/ui/index.d.ts +43 -0
- package/esm/src/react/components/chat/ui/index.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/index.js +42 -0
- package/esm/src/react/components/chat/ui/input.d.ts +27 -0
- package/esm/src/react/components/chat/ui/input.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/input.js +41 -0
- package/esm/src/react/components/chat/ui/label.d.ts +29 -0
- package/esm/src/react/components/chat/ui/label.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/label.js +40 -0
- package/esm/src/react/components/chat/ui/list.d.ts +47 -0
- package/esm/src/react/components/chat/ui/list.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/list.js +40 -0
- package/esm/src/react/components/chat/ui/pill.d.ts +26 -0
- package/esm/src/react/components/chat/ui/pill.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/pill.js +39 -0
- package/esm/src/react/components/chat/ui/popover.d.ts +47 -0
- package/esm/src/react/components/chat/ui/popover.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/popover.js +68 -0
- package/esm/src/react/components/chat/ui/progress-bar.d.ts +20 -0
- package/esm/src/react/components/chat/ui/progress-bar.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/progress-bar.js +31 -0
- package/esm/src/react/components/chat/ui/radio.d.ts +25 -0
- package/esm/src/react/components/chat/ui/radio.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/radio.js +29 -0
- package/esm/src/react/components/chat/ui/scroll-fade.d.ts +23 -0
- package/esm/src/react/components/chat/ui/scroll-fade.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/scroll-fade.js +40 -0
- package/esm/src/react/components/chat/ui/select.d.ts +64 -0
- package/esm/src/react/components/chat/ui/select.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/select.js +148 -0
- package/esm/src/react/components/chat/ui/shimmer.d.ts +25 -0
- package/esm/src/react/components/chat/ui/shimmer.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/shimmer.js +24 -0
- package/esm/src/react/components/chat/ui/skeleton.d.ts +14 -0
- package/esm/src/react/components/chat/ui/skeleton.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/skeleton.js +12 -0
- package/esm/src/react/components/chat/ui/slot.d.ts +21 -0
- package/esm/src/react/components/chat/ui/slot.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/slot.js +70 -0
- package/esm/src/react/components/chat/ui/status.d.ts +28 -0
- package/esm/src/react/components/chat/ui/status.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/status.js +23 -0
- package/esm/src/react/components/chat/ui/switch.d.ts +34 -0
- package/esm/src/react/components/chat/ui/switch.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/switch.js +58 -0
- package/esm/src/react/components/chat/ui/tabs.d.ts +44 -0
- package/esm/src/react/components/chat/ui/tabs.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/tabs.js +51 -0
- package/esm/src/react/components/chat/ui/tag.d.ts +22 -0
- package/esm/src/react/components/chat/ui/tag.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/tag.js +27 -0
- package/esm/src/react/components/chat/ui/textarea.d.ts +22 -0
- package/esm/src/react/components/chat/ui/textarea.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/textarea.js +35 -0
- package/esm/src/react/components/chat/ui/tooltip.d.ts +40 -0
- package/esm/src/react/components/chat/ui/tooltip.d.ts.map +1 -0
- package/esm/src/react/components/chat/ui/tooltip.js +132 -0
- package/esm/src/react/primitives/input-box.d.ts.map +1 -1
- package/esm/src/react/primitives/input-box.js +17 -4
- package/esm/src/server/handlers/dev/framework-candidates.generated.d.ts.map +1 -1
- package/esm/src/server/handlers/dev/framework-candidates.generated.js +9437 -1064
- package/esm/src/server/handlers/dev/projects/html-shell.d.ts +1 -1
- package/esm/src/server/handlers/dev/projects/html-shell.d.ts.map +1 -1
- package/esm/src/server/handlers/dev/projects/html-shell.js +1 -12
- package/esm/src/server/handlers/request/public-agents-list.handler.d.ts +18 -0
- package/esm/src/server/handlers/request/public-agents-list.handler.d.ts.map +1 -0
- package/esm/src/server/handlers/request/public-agents-list.handler.js +44 -0
- package/esm/src/server/runtime-handler/index.d.ts +1 -1
- package/esm/src/server/runtime-handler/index.d.ts.map +1 -1
- package/esm/src/server/runtime-handler/index.js +3 -0
- package/esm/src/studio/bridge/bridge-bundle.generated.d.ts +1 -1
- package/esm/src/studio/bridge/bridge-bundle.generated.d.ts.map +1 -1
- package/esm/src/studio/bridge/bridge-bundle.generated.js +3 -2
- package/esm/src/task/discovery.d.ts +95 -0
- package/esm/src/task/discovery.d.ts.map +1 -0
- package/esm/src/task/discovery.js +192 -0
- package/esm/src/task/index.d.ts +27 -0
- package/esm/src/task/index.d.ts.map +1 -0
- package/esm/src/task/index.js +22 -0
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/esm/src/workflow/blob/local-storage.d.ts +32 -0
- package/esm/src/workflow/blob/local-storage.d.ts.map +1 -0
- package/esm/src/workflow/blob/local-storage.js +179 -0
- package/esm/src/workflow/blob/types.d.ts +5 -0
- package/esm/src/workflow/blob/types.d.ts.map +1 -1
- package/esm/src/workflow/blob/veryfront-cloud-storage.d.ts +11 -0
- package/esm/src/workflow/blob/veryfront-cloud-storage.d.ts.map +1 -1
- package/esm/src/workflow/blob/veryfront-cloud-storage.js +36 -0
- package/package.json +9 -1
- package/esm/src/react/components/chat/chat/components/uploads-panel.d.ts +0 -20
- package/esm/src/react/components/chat/chat/components/uploads-panel.d.ts.map +0 -1
- package/esm/src/react/components/chat/chat/components/uploads-panel.js +0 -49
- package/esm/src/react/components/chat/chat/contexts/thread-list-context.d.ts +0 -28
- package/esm/src/react/components/chat/chat/contexts/thread-list-context.d.ts.map +0 -1
- package/esm/src/react/components/chat/chat/contexts/thread-list-context.js +0 -27
- package/esm/src/react/components/chat/chat/hooks/use-threads.d.ts +0 -28
- package/esm/src/react/components/chat/chat/hooks/use-threads.d.ts.map +0 -1
- package/esm/src/react/components/chat/chat/hooks/use-threads.js +0 -151
- package/esm/src/react/components/chat/chat-with-sidebar.d.ts +0 -110
- package/esm/src/react/components/chat/chat-with-sidebar.d.ts.map +0 -1
- package/esm/src/react/components/chat/chat-with-sidebar.js +0 -167
- package/esm/src/react/components/chat/message.d.ts +0 -42
- package/esm/src/react/components/chat/message.d.ts.map +0 -1
- package/esm/src/react/components/chat/message.js +0 -69
|
@@ -11,73 +11,91 @@ import { clsx } from "../../../utils/clsx.js";
|
|
|
11
11
|
// CSS Custom Property tokens
|
|
12
12
|
// ---------------------------------------------------------------------------
|
|
13
13
|
/**
|
|
14
|
-
* Light-mode defaults
|
|
15
|
-
*
|
|
14
|
+
* Light-mode defaults copied from Veryfront Studio `styles/styles.css`.
|
|
15
|
+
* Keep these values aligned with Studio so standalone chat renders with the
|
|
16
|
+
* same surface, edge, and text hierarchy before a host app provides tokens.
|
|
16
17
|
*/
|
|
17
18
|
const TOKENS_LIGHT = {
|
|
18
|
-
"--background": "
|
|
19
|
-
"--foreground": "
|
|
20
|
-
"--
|
|
21
|
-
"--
|
|
22
|
-
"--
|
|
23
|
-
"--
|
|
24
|
-
"--
|
|
25
|
-
"--
|
|
26
|
-
"--
|
|
27
|
-
"--
|
|
28
|
-
"--
|
|
29
|
-
"--
|
|
30
|
-
"--
|
|
31
|
-
"--
|
|
32
|
-
"--
|
|
33
|
-
"--
|
|
34
|
-
"--
|
|
35
|
-
"--
|
|
36
|
-
"--
|
|
37
|
-
"--
|
|
38
|
-
"--
|
|
39
|
-
"--
|
|
40
|
-
"--
|
|
41
|
-
"--
|
|
42
|
-
"--
|
|
43
|
-
"--
|
|
44
|
-
"--
|
|
45
|
-
"--
|
|
46
|
-
"--
|
|
19
|
+
"--background": "#F0EFE9",
|
|
20
|
+
"--foreground": "#010101",
|
|
21
|
+
"--primary": "#282828",
|
|
22
|
+
"--secondary": "#FFFFFF",
|
|
23
|
+
"--tertiary": "#F0EFE9",
|
|
24
|
+
"--accent": "#E8E6DB",
|
|
25
|
+
"--muted": "#F7F6F4",
|
|
26
|
+
"--destructive": "#D40C1A",
|
|
27
|
+
"--outline-border": "#DCDAD0",
|
|
28
|
+
"--status-neutral": "#9F9F9F",
|
|
29
|
+
"--status-info": "#0071DF",
|
|
30
|
+
"--status-success": "#098926",
|
|
31
|
+
"--status-warning": "#F99100",
|
|
32
|
+
"--status-error": "#D40924",
|
|
33
|
+
"--alert-warning-bg": "#F1E3CD",
|
|
34
|
+
"--alert-error-bg": "#ECD3D1",
|
|
35
|
+
"--alert-success-bg": "#D4E2D2",
|
|
36
|
+
"--alert-info-bg": "#E6E6E0",
|
|
37
|
+
"--faint": "oklch(from var(--foreground) l c h / 0.25)",
|
|
38
|
+
"--soft": "oklch(from var(--foreground) l c h / 0.7)",
|
|
39
|
+
"--tint": "oklch(from var(--foreground) l c h / 0.04)",
|
|
40
|
+
"--edge": "oklch(from var(--foreground) l c h / 0.06)",
|
|
41
|
+
"--edge-medium": "oklch(from var(--foreground) l c h / 0.1)",
|
|
42
|
+
"--separator": "#EEEEED",
|
|
43
|
+
"--shadow-sm": "0 1.5px 3px rgba(0, 0, 0, 0.08)",
|
|
44
|
+
"--code-bg": "var(--secondary)",
|
|
45
|
+
"--input-bg": "var(--secondary)",
|
|
46
|
+
"--popover": "var(--secondary)",
|
|
47
|
+
"--dialog": "var(--background)",
|
|
48
|
+
"--drawer": "var(--background)",
|
|
49
|
+
"--overlay": "rgba(0, 0, 0, 0.5)",
|
|
50
|
+
"--card": "var(--secondary)",
|
|
51
|
+
"--card-foreground": "var(--foreground)",
|
|
52
|
+
"--popover-foreground": "var(--foreground)",
|
|
53
|
+
"--primary-foreground": "var(--secondary)",
|
|
54
|
+
"--muted-foreground": "var(--faint)",
|
|
55
|
+
"--accent-foreground": "var(--foreground)",
|
|
56
|
+
"--destructive-foreground": "#FFFFFF",
|
|
57
|
+
"--border": "var(--outline-border)",
|
|
58
|
+
"--input": "var(--input-bg)",
|
|
59
|
+
"--input-border": "var(--edge-medium)",
|
|
60
|
+
"--input-placeholder": "var(--faint)",
|
|
61
|
+
"--ring": "var(--edge-medium)",
|
|
62
|
+
"--success": "var(--status-success)",
|
|
63
|
+
"--chat-bubble": "var(--primary)",
|
|
64
|
+
"--chat-bubble-foreground": "var(--secondary)",
|
|
65
|
+
"--tab-background": "var(--secondary)",
|
|
66
|
+
"--tab-foreground": "var(--faint)",
|
|
67
|
+
"--tab-active-background": "var(--accent)",
|
|
68
|
+
"--tab-active-foreground": "var(--foreground)",
|
|
69
|
+
"--sidebar-background": "var(--background)",
|
|
70
|
+
"--sidebar-foreground": "var(--foreground)",
|
|
71
|
+
"--sidebar-border": "var(--edge-medium)",
|
|
72
|
+
"--radius-xs": "4px",
|
|
73
|
+
"--radius-sm": "8px",
|
|
74
|
+
"--radius-md": "12px",
|
|
75
|
+
"--radius-lg": "20px",
|
|
76
|
+
"--radius-xl": "35px",
|
|
77
|
+
"--font-weight-normal": "400",
|
|
78
|
+
"--font-weight-medium": "500",
|
|
47
79
|
};
|
|
48
80
|
/**
|
|
49
|
-
* Dark-mode defaults
|
|
81
|
+
* Dark-mode defaults copied from Studio `[data-theme="dark"]`.
|
|
50
82
|
*/
|
|
51
83
|
const TOKENS_DARK = {
|
|
52
|
-
|
|
53
|
-
"--
|
|
54
|
-
"--
|
|
55
|
-
"--
|
|
56
|
-
"--
|
|
57
|
-
"--
|
|
58
|
-
"--
|
|
59
|
-
"--
|
|
60
|
-
"--
|
|
61
|
-
"--
|
|
62
|
-
"--
|
|
63
|
-
"--
|
|
64
|
-
"--
|
|
65
|
-
"--
|
|
66
|
-
"--
|
|
67
|
-
"--input": "oklch(0.3211 0 0)",
|
|
68
|
-
"--input-border": "oklch(0.38 0.01 220)",
|
|
69
|
-
"--input-placeholder": "oklch(0.8975 0 0)",
|
|
70
|
-
"--ring": "oklch(0.6 0.01 220 / 0.5)",
|
|
71
|
-
"--success": "oklch(0.52 0.14 143)",
|
|
72
|
-
"--chat-bubble": "oklch(0.9512 0.008 98.88)",
|
|
73
|
-
"--chat-bubble-foreground": "oklch(0.2768 0 0)",
|
|
74
|
-
"--tab-background": "oklch(0.3211 0 0)",
|
|
75
|
-
"--tab-foreground": "oklch(0.8975 0 0)",
|
|
76
|
-
"--tab-active-background": "oklch(0.5338 0.0046 106.55)",
|
|
77
|
-
"--tab-active-foreground": "oklch(0.9512 0.008 98.88)",
|
|
78
|
-
"--sidebar-background": "oklch(0.18 0.01 220)",
|
|
79
|
-
"--sidebar-foreground": "oklch(0.9512 0.008 98.88)",
|
|
80
|
-
"--sidebar-border": "oklch(0.3 0.01 220)",
|
|
84
|
+
...TOKENS_LIGHT,
|
|
85
|
+
"--background": "#282828",
|
|
86
|
+
"--foreground": "#F0EFE9",
|
|
87
|
+
"--primary": "#F1F0EA",
|
|
88
|
+
"--secondary": "#333333",
|
|
89
|
+
"--tertiary": "#262626",
|
|
90
|
+
"--accent": "#303030",
|
|
91
|
+
"--muted": "#0D1315",
|
|
92
|
+
"--outline-border": "#3A3A3A",
|
|
93
|
+
"--separator": "oklch(from var(--foreground) l c h / 0.06)",
|
|
94
|
+
"--code-bg": "oklch(0.08 0.005 280)",
|
|
95
|
+
"--input-bg": "#40403F",
|
|
96
|
+
"--primary-foreground": "var(--secondary)",
|
|
97
|
+
"--chat-bubble": "var(--primary)",
|
|
98
|
+
"--chat-bubble-foreground": "var(--secondary)",
|
|
81
99
|
};
|
|
82
100
|
function tokensToCSS(tokens) {
|
|
83
101
|
return Object.entries(tokens).map(([k, v]) => `${k}:${v}`).join(";");
|
|
@@ -94,38 +112,66 @@ function tokensToCSS(tokens) {
|
|
|
94
112
|
*
|
|
95
113
|
* Dark mode: supports prefers-color-scheme, .dark, and [data-theme="dark"].
|
|
96
114
|
*/
|
|
115
|
+
/**
|
|
116
|
+
* Animation CSS for the chat UI primitives (Spinner, Shimmer, ProgressBar,
|
|
117
|
+
* LoadingButton). Copied from Studio `styles/animations.css`. Since
|
|
118
|
+
* `veryfront/chat` ships as a self-contained npm package, it carries both the
|
|
119
|
+
* `@keyframes` AND the named `animate-*` utility classes itself — components
|
|
120
|
+
* use Studio's clean class names (`animate-bounce-spin`) without requiring the
|
|
121
|
+
* consumer's Tailwind to register them. `shimmer-sweep` stays an arbitrary
|
|
122
|
+
* `animate-[…]` utility (its duration is set inline), so only its keyframes are
|
|
123
|
+
* needed here. Keep in sync with `storybook/.storybook/preview.css`.
|
|
124
|
+
*/
|
|
125
|
+
const ANIMATION_CSS = "@keyframes bounce-spin{0%,100%{transform:translateY(0) rotate(0deg);animation-timing-function:ease-in-out}25%{transform:translateY(-30%) rotate(90deg);animation-timing-function:ease-in}50%{transform:translateY(0) rotate(180deg);animation-timing-function:ease-out}75%{transform:translateY(-15%) rotate(270deg);animation-timing-function:ease-in}}" +
|
|
126
|
+
"@keyframes button-loading{0%,100%{opacity:1}50%{opacity:.55}}" +
|
|
127
|
+
"@keyframes shimmer-sweep{0%{background-position:100% center}100%{background-position:0% center}}" +
|
|
128
|
+
"@keyframes progress-indeterminate{0%{transform:translateX(-120%)}100%{transform:translateX(320%)}}" +
|
|
129
|
+
".animate-bounce-spin{animation:bounce-spin 2.5s cubic-bezier(0.25,1,0.5,1) infinite}" +
|
|
130
|
+
".animate-button-loading{animation:button-loading 1.4s cubic-bezier(0.4,0,0.2,1) infinite}" +
|
|
131
|
+
".animate-progress-indeterminate{animation:progress-indeterminate 1.2s ease-in-out infinite}";
|
|
97
132
|
export function generateTokenCSS() {
|
|
98
133
|
const light = tokensToCSS(TOKENS_LIGHT);
|
|
99
134
|
const dark = tokensToCSS(TOKENS_DARK);
|
|
135
|
+
// The design tokens stay scoped to `[data-vf-chat]`, never `:root`: the
|
|
136
|
+
// names (`--primary`, `--background`, `--accent`, …) are the same generic
|
|
137
|
+
// convention host apps use for their own themes, and these style tags render
|
|
138
|
+
// in the body — after a host's <head> stylesheets — so a `:root` rule here
|
|
139
|
+
// would override the host's tokens page-wide (and the dark media query would
|
|
140
|
+
// repaint light-only host pages for OS-dark users). Surfaces that render
|
|
141
|
+
// *outside* `<Chat>` (`<ChatSidebar>`, `<AttachmentsPanel>`, `<AppShell>`)
|
|
142
|
+
// establish their own `data-vf-chat` scope and inject `<ChatTokens>`;
|
|
143
|
+
// portalled content re-anchors via `closest("[data-vf-chat]")`.
|
|
100
144
|
return [
|
|
101
|
-
|
|
102
|
-
`[data-vf-chat]{font-family:'Inter',ui-sans-serif,system-ui,sans-serif;${light}}`,
|
|
145
|
+
`[data-vf-chat]{font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-weight:var(--font-weight-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;${light}}`,
|
|
103
146
|
`[data-vf-chat] button{cursor:pointer;}`,
|
|
104
147
|
`@media(prefers-color-scheme:dark){[data-vf-chat]:not([data-vf-theme]){${dark}}}`,
|
|
105
|
-
`.dark [data-vf-chat]:not([data-vf-theme]),[data-theme="dark"] [data-vf-chat]:not([data-vf-theme]){${dark}}`,
|
|
148
|
+
`.dark [data-vf-chat]:not([data-vf-theme]),[data-theme="dark"] [data-vf-chat]:not([data-vf-theme]),.dark[data-vf-chat]:not([data-vf-theme]),[data-theme="dark"][data-vf-chat]:not([data-vf-theme]){${dark}}`,
|
|
149
|
+
ANIMATION_CSS,
|
|
106
150
|
].join("");
|
|
107
151
|
}
|
|
108
152
|
/**
|
|
109
153
|
* Default theme using CSS custom properties from the design system.
|
|
110
154
|
*/
|
|
111
155
|
export const defaultChatTheme = {
|
|
112
|
-
container: "flex flex-col h-full overflow-hidden bg-[var(--background)]",
|
|
156
|
+
container: "flex flex-col h-full overflow-hidden bg-[var(--background)] text-[var(--foreground)]",
|
|
113
157
|
message: {
|
|
114
|
-
user
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
158
|
+
// Plain right-aligned user turn (no bubble) — the Root handles alignment +
|
|
159
|
+
// max-width. A consumer can opt into a bubble via `theme.message.user`.
|
|
160
|
+
user: "text-[15px] leading-relaxed text-[var(--foreground)]",
|
|
161
|
+
assistant: "max-w-none text-[var(--foreground)] [overflow-wrap:anywhere]",
|
|
162
|
+
system: "text-[var(--faint)] text-sm mx-auto text-center py-2",
|
|
163
|
+
tool: "rounded-[var(--radius-md)] border border-[var(--outline-border)] bg-transparent px-4 py-3 text-sm font-mono text-[var(--foreground)]",
|
|
118
164
|
},
|
|
119
|
-
input: "w-full bg-transparent border-none
|
|
120
|
-
button: "size-
|
|
121
|
-
loading: "size-2 bg-[var(--
|
|
165
|
+
input: "w-full bg-transparent border-none text-[15px] leading-6 text-[var(--foreground)] placeholder:text-[var(--faint)] focus:outline-none focus:ring-0",
|
|
166
|
+
button: "flex size-8 shrink-0 items-center justify-center rounded-full bg-[var(--primary)] text-[var(--secondary)] transition-[background-color,color] hover:bg-[var(--secondary)] hover:text-[var(--foreground)]",
|
|
167
|
+
loading: "size-2 bg-[var(--edge-medium)] rounded-full animate-pulse",
|
|
122
168
|
};
|
|
123
169
|
export const defaultAgentTheme = {
|
|
124
|
-
container: "
|
|
125
|
-
status: "inline-flex items-center
|
|
126
|
-
thinking: "
|
|
127
|
-
tool: "rounded-
|
|
128
|
-
toolResult: "mt-2
|
|
170
|
+
container: "space-y-4 rounded-[var(--radius-lg)] bg-[var(--secondary)] p-5 text-[var(--foreground)]",
|
|
171
|
+
status: "inline-flex items-center rounded-full px-2.5 py-1 text-xs font-medium",
|
|
172
|
+
thinking: "rounded-[var(--radius-md)] border border-[var(--outline-border)] bg-transparent px-4 py-3 text-sm text-[var(--foreground)]",
|
|
173
|
+
tool: "rounded-[var(--radius-md)] border border-[var(--outline-border)] bg-transparent px-4 py-3",
|
|
174
|
+
toolResult: "mt-2 overflow-x-auto rounded-[var(--radius-sm)] bg-[var(--tertiary)] p-3 font-mono text-xs",
|
|
129
175
|
};
|
|
130
176
|
function isPlainObject(value) {
|
|
131
177
|
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
@@ -154,6 +200,14 @@ export function mergeThemes(defaultTheme, userTheme) {
|
|
|
154
200
|
}
|
|
155
201
|
/**
|
|
156
202
|
* Utility to combine class names.
|
|
203
|
+
*
|
|
204
|
+
* NOTE: this is `clsx` only — it does NOT tailwind-merge. A `className` passed by
|
|
205
|
+
* a consumer is *appended*, not deduped, so it does not automatically beat a base
|
|
206
|
+
* utility of the same property (both end up in the class list, last-wins by
|
|
207
|
+
* CSS-source order, which is usually the base). To override a base utility from
|
|
208
|
+
* userland, use the `!` important suffix — e.g. `px-8!`, `rounded-xl!`, `size-6!`.
|
|
209
|
+
* Every cva-based primitive (Button, Card, Input, Textarea, Badge, Pill, Select,
|
|
210
|
+
* Tabs) inherits this behaviour.
|
|
157
211
|
*/
|
|
158
212
|
export function cn(...inputs) {
|
|
159
213
|
return clsx(inputs);
|
|
@@ -177,10 +231,10 @@ function variantClasses(base, config) {
|
|
|
177
231
|
export const messageVariants = variantClasses("", {
|
|
178
232
|
variants: {
|
|
179
233
|
role: {
|
|
180
|
-
user: "
|
|
181
|
-
assistant: "text-[var(--
|
|
182
|
-
system: "text-[var(--
|
|
183
|
-
tool: "
|
|
234
|
+
user: "max-w-[80%] rounded-[var(--radius-lg)] bg-[var(--chat-bubble)] px-4 py-3 text-base leading-relaxed text-[var(--chat-bubble-foreground)] shadow-sm",
|
|
235
|
+
assistant: "max-w-none text-[var(--foreground)] [overflow-wrap:anywhere]",
|
|
236
|
+
system: "text-[var(--faint)] text-sm mx-auto text-center py-2",
|
|
237
|
+
tool: "rounded-[var(--radius-md)] border border-[var(--outline-border)] bg-transparent px-4 py-3 text-sm font-mono text-[var(--foreground)]",
|
|
184
238
|
},
|
|
185
239
|
},
|
|
186
240
|
defaultVariants: {
|
|
@@ -188,25 +242,27 @@ export const messageVariants = variantClasses("", {
|
|
|
188
242
|
},
|
|
189
243
|
});
|
|
190
244
|
export const chatButtonVariants = variantClasses([
|
|
245
|
+
"relative",
|
|
191
246
|
"inline-flex items-center justify-center gap-2 whitespace-nowrap",
|
|
192
|
-
"font-
|
|
193
|
-
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--
|
|
194
|
-
"disabled:pointer-events-none
|
|
247
|
+
"font-normal rounded-full transition-[background-color,color,border-color] duration-150 ease-in",
|
|
248
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--edge-medium)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--background)]",
|
|
249
|
+
"disabled:pointer-events-none",
|
|
195
250
|
"[&_svg]:shrink-0",
|
|
196
251
|
], {
|
|
197
252
|
variants: {
|
|
198
253
|
variant: {
|
|
199
|
-
primary: "bg-[var(--primary)] text-[var(--
|
|
200
|
-
ghost: "bg-transparent text-[var(--foreground)] hover:bg-[var(--
|
|
201
|
-
outline: "border border-[var(--border)] bg-transparent text-[var(--foreground)] hover:bg-[var(--
|
|
202
|
-
"icon-ghost": "bg-transparent text-[var(--
|
|
254
|
+
primary: "bg-[var(--primary)] text-[var(--secondary)] shadow-sm hover:bg-[var(--secondary)] hover:text-[var(--foreground)]",
|
|
255
|
+
ghost: "bg-transparent text-[var(--foreground)] hover:bg-[var(--accent)]",
|
|
256
|
+
outline: "border border-[var(--outline-border)] bg-transparent text-[var(--foreground)] hover:border-transparent hover:bg-[var(--accent)]",
|
|
257
|
+
"icon-ghost": "bg-transparent text-[var(--foreground)] hover:bg-[var(--accent)] !p-0 !gap-0",
|
|
203
258
|
},
|
|
204
259
|
size: {
|
|
205
|
-
sm: "h-[
|
|
206
|
-
default: "h-[
|
|
260
|
+
sm: "h-[32px] px-3.5 text-sm [&_svg]:size-4",
|
|
261
|
+
default: "h-[38px] px-[1.125rem] text-base [&_svg]:size-4",
|
|
207
262
|
"icon-xs": "size-7 [&_svg]:size-4",
|
|
208
|
-
"icon-sm": "size-
|
|
209
|
-
"icon-default": "size-
|
|
263
|
+
"icon-sm": "size-7 [&_svg]:size-4",
|
|
264
|
+
"icon-default": "size-8 [&_svg]:size-[1.125rem]",
|
|
265
|
+
"icon-lg": "size-9 [&_svg]:size-5",
|
|
210
266
|
},
|
|
211
267
|
},
|
|
212
268
|
defaultVariants: {
|
|
@@ -219,7 +275,7 @@ export const chatContainerVariants = variantClasses("flex flex-col overflow-hidd
|
|
|
219
275
|
variant: {
|
|
220
276
|
default: "h-full bg-[var(--background)]",
|
|
221
277
|
embedded: "h-full bg-transparent",
|
|
222
|
-
floating: "h-[600px] w-[400px] rounded-
|
|
278
|
+
floating: "h-[600px] w-[400px] rounded-[var(--radius-lg)] border border-[var(--outline-border)] bg-[var(--background)] shadow-sm",
|
|
223
279
|
},
|
|
224
280
|
},
|
|
225
281
|
defaultVariants: {
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Alert — soft-fill status callout, forked dependency-light from Veryfront
|
|
3
|
+
* Studio's `Alert`. Studio uses `--alert-{variant}-bg` + `--alert-{variant}-border`
|
|
4
|
+
* tokens; we only ship the `-bg` tokens, so the 1px border is derived from the
|
|
5
|
+
* fill via `color-mix` (no new tokens needed). The fill is a mode-invariant light
|
|
6
|
+
* pastel, so text stays dark in both themes (`dark:text-[var(--background)]`).
|
|
7
|
+
*
|
|
8
|
+
* @module react/components/chat/ui/alert
|
|
9
|
+
*/
|
|
10
|
+
import * as React from "../../../../../react/react.js";
|
|
11
|
+
declare const alertVariants: {
|
|
12
|
+
readonly default: "bg-[var(--alert-info-bg)] border-[color-mix(in_oklch,var(--alert-info-bg),black_10%)]";
|
|
13
|
+
readonly warning: "bg-[var(--alert-warning-bg)] border-[color-mix(in_oklch,var(--alert-warning-bg),black_10%)]";
|
|
14
|
+
readonly error: "bg-[var(--alert-error-bg)] border-[color-mix(in_oklch,var(--alert-error-bg),black_10%)]";
|
|
15
|
+
readonly success: "bg-[var(--alert-success-bg)] border-[color-mix(in_oklch,var(--alert-success-bg),black_10%)]";
|
|
16
|
+
};
|
|
17
|
+
/** Props accepted by `<Alert>`. */
|
|
18
|
+
export interface AlertProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
19
|
+
/** Colour scheme. @default "default" */
|
|
20
|
+
variant?: keyof typeof alertVariants;
|
|
21
|
+
}
|
|
22
|
+
export declare function Alert({ children, className, variant, ...props }: AlertProps): React.ReactElement;
|
|
23
|
+
/** Leading icon slot for `<Alert>` (size-4 recommended). */
|
|
24
|
+
export declare function AlertIcon({ children, className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.ReactElement;
|
|
25
|
+
/** Message body for `<Alert>`. */
|
|
26
|
+
export declare function AlertContent({ children, className, ...props }: React.HTMLAttributes<HTMLParagraphElement>): React.ReactElement;
|
|
27
|
+
/** Trailing action slot for `<Alert>` (button or link). */
|
|
28
|
+
export declare function AlertAction({ children, className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.ReactElement;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=alert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../../../../src/src/react/components/chat/ui/alert.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,KAAK,MAAM,+BAA+B,CAAC;AAGvD,QAAA,MAAM,aAAa;;;;;CAOT,CAAC;AAEX,mCAAmC;AACnC,MAAM,WAAW,UAAW,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACtE,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,OAAO,aAAa,CAAC;CACtC;AAED,wBAAgB,KAAK,CAAC,EACpB,QAAQ,EACR,SAAS,EACT,OAAmB,EACnB,GAAG,KAAK,EACT,EAAE,UAAU,GAAG,KAAK,CAAC,YAAY,CAejC;AAED,4DAA4D;AAC5D,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,YAAY,CAY3D;AAED,kCAAkC;AAClC,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC,YAAY,CAYjE;AAED,2DAA2D;AAC3D,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,YAAY,CAS3D"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Alert — soft-fill status callout, forked dependency-light from Veryfront
|
|
3
|
+
* Studio's `Alert`. Studio uses `--alert-{variant}-bg` + `--alert-{variant}-border`
|
|
4
|
+
* tokens; we only ship the `-bg` tokens, so the 1px border is derived from the
|
|
5
|
+
* fill via `color-mix` (no new tokens needed). The fill is a mode-invariant light
|
|
6
|
+
* pastel, so text stays dark in both themes (`dark:text-[var(--background)]`).
|
|
7
|
+
*
|
|
8
|
+
* @module react/components/chat/ui/alert
|
|
9
|
+
*/
|
|
10
|
+
import * as React from "../../../../../react/react.js";
|
|
11
|
+
import { cn } from "../theme.js";
|
|
12
|
+
const alertVariants = {
|
|
13
|
+
default: "bg-[var(--alert-info-bg)] border-[color-mix(in_oklch,var(--alert-info-bg),black_10%)]",
|
|
14
|
+
warning: "bg-[var(--alert-warning-bg)] border-[color-mix(in_oklch,var(--alert-warning-bg),black_10%)]",
|
|
15
|
+
error: "bg-[var(--alert-error-bg)] border-[color-mix(in_oklch,var(--alert-error-bg),black_10%)]",
|
|
16
|
+
success: "bg-[var(--alert-success-bg)] border-[color-mix(in_oklch,var(--alert-success-bg),black_10%)]",
|
|
17
|
+
};
|
|
18
|
+
export function Alert({ children, className, variant = "default", ...props }) {
|
|
19
|
+
return (React.createElement("div", { className: cn(
|
|
20
|
+
// 14px: Inter renders larger than Studio's Söhne, so `vf-type-base`
|
|
21
|
+
// (16px) reads too big here — step down to `text-sm`.
|
|
22
|
+
"flex items-center gap-3 rounded-md border px-4 py-2.5 text-sm text-[var(--foreground)] dark:text-[var(--background)]", alertVariants[variant], className), ...props }, children));
|
|
23
|
+
}
|
|
24
|
+
/** Leading icon slot for `<Alert>` (size-4 recommended). */
|
|
25
|
+
export function AlertIcon({ children, className, ...props }) {
|
|
26
|
+
return (React.createElement("div", { className: cn("shrink-0 text-[var(--foreground)] dark:text-[var(--background)]", className), ...props }, children));
|
|
27
|
+
}
|
|
28
|
+
/** Message body for `<Alert>`. */
|
|
29
|
+
export function AlertContent({ children, className, ...props }) {
|
|
30
|
+
return (React.createElement("p", { className: cn("flex-1 text-sm text-[var(--foreground)] dark:text-[var(--background)]", className), ...props }, children));
|
|
31
|
+
}
|
|
32
|
+
/** Trailing action slot for `<Alert>` (button or link). */
|
|
33
|
+
export function AlertAction({ children, className, ...props }) {
|
|
34
|
+
return (React.createElement("div", { className: cn("-my-1 -mr-1 flex shrink-0 items-center", className), ...props }, children));
|
|
35
|
+
}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AppShell — a chat-independent layout primitive modeled on the shadcn sidebar
|
|
3
|
+
* (https://ui.shadcn.com/blocks). It owns the *layout + sidebar visibility*;
|
|
4
|
+
* everything else is slots. The sidebar is binary — visible or hidden (no
|
|
5
|
+
* collapse/icon-rail mode). Supports a left AND a right sidebar, each with its
|
|
6
|
+
* own toggle and persisted state.
|
|
7
|
+
*
|
|
8
|
+
* Desktop: sidebars are inline flex columns (mounted only while open).
|
|
9
|
+
* Mobile (< sm): sidebars become a focus-trapped off-canvas overlay + backdrop
|
|
10
|
+
* that slides in from the relevant edge, with Escape-to-close, scroll-lock, and
|
|
11
|
+
* focus restore.
|
|
12
|
+
*
|
|
13
|
+
* Purely structural: it injects no theme/token CSS — the host owns theming.
|
|
14
|
+
* Zero external deps (uses the local `cn` + `ui/button`). Built in `chat/ui`
|
|
15
|
+
* for now; designed for a clean `git mv` to a top-level `/ui`.
|
|
16
|
+
*
|
|
17
|
+
* @module react/components/chat/ui/app-shell
|
|
18
|
+
*/
|
|
19
|
+
import * as React from "../../../../../react/react.js";
|
|
20
|
+
import { type ButtonProps } from "./button.js";
|
|
21
|
+
/** Which edge a sidebar docks to. */
|
|
22
|
+
export type AppShellSide = "left" | "right";
|
|
23
|
+
interface AppShellContextValue {
|
|
24
|
+
/** Viewport is below the `sm` breakpoint (< 640px). */
|
|
25
|
+
isMobile: boolean;
|
|
26
|
+
/** Effective visibility of a side for the current viewport. */
|
|
27
|
+
isOpen: (side: AppShellSide) => boolean;
|
|
28
|
+
/** Flip a side's visibility. */
|
|
29
|
+
toggle: (side: AppShellSide) => void;
|
|
30
|
+
/** Set a side's visibility explicitly. */
|
|
31
|
+
setOpen: (side: AppShellSide, open: boolean) => void;
|
|
32
|
+
/** Stable DOM id for a side's sidebar (for `aria-controls`). */
|
|
33
|
+
sidebarId: (side: AppShellSide) => string;
|
|
34
|
+
}
|
|
35
|
+
/** Access the enclosing {@link AppShell}'s state (external triggers, etc.). */
|
|
36
|
+
export declare function useAppShell(): AppShellContextValue;
|
|
37
|
+
/** Per-side visibility map. */
|
|
38
|
+
export interface AppShellOpenState {
|
|
39
|
+
left?: boolean;
|
|
40
|
+
right?: boolean;
|
|
41
|
+
}
|
|
42
|
+
/** Props accepted by {@link AppShell}. */
|
|
43
|
+
export interface AppShellProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
44
|
+
/** Controlled desktop visibility per side. Omit a side to leave it uncontrolled. */
|
|
45
|
+
open?: AppShellOpenState;
|
|
46
|
+
/** Uncontrolled initial desktop visibility. Defaults: left `true`, right `false`. */
|
|
47
|
+
defaultOpen?: AppShellOpenState;
|
|
48
|
+
/** Fires when a side is toggled (desktop). Receives the requested next value. */
|
|
49
|
+
onOpenChange?: (side: AppShellSide, open: boolean) => void;
|
|
50
|
+
/** localStorage key prefix for persisting uncontrolled desktop visibility. */
|
|
51
|
+
storageKey?: string;
|
|
52
|
+
/** Toggle the left sidebar with ⌘/Ctrl+B. Default `true`. */
|
|
53
|
+
keyboardShortcut?: boolean;
|
|
54
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
55
|
+
}
|
|
56
|
+
/** Root — provides sidebar state and the flex layout container. */
|
|
57
|
+
declare function AppShellRoot({ open, defaultOpen, onOpenChange, storageKey, keyboardShortcut, className, children, ref, ...props }: AppShellProps): React.ReactElement;
|
|
58
|
+
declare namespace AppShellRoot {
|
|
59
|
+
var displayName: string;
|
|
60
|
+
}
|
|
61
|
+
/** Props accepted by {@link AppShellSidebar}. */
|
|
62
|
+
export interface AppShellSidebarProps extends React.HTMLAttributes<HTMLElement> {
|
|
63
|
+
/** Edge to dock to. Default `left`. */
|
|
64
|
+
side?: AppShellSide;
|
|
65
|
+
/** Sidebar width in px (desktop column + mobile overlay panel). Default `240`. */
|
|
66
|
+
width?: number;
|
|
67
|
+
}
|
|
68
|
+
/** A dockable sidebar. Renders inline on desktop, as an overlay on mobile. */
|
|
69
|
+
declare function AppShellSidebar({ side, width, className, children, ...props }: AppShellSidebarProps): React.ReactElement | null;
|
|
70
|
+
declare namespace AppShellSidebar {
|
|
71
|
+
var displayName: string;
|
|
72
|
+
}
|
|
73
|
+
/** Optional border-carrying section. */
|
|
74
|
+
interface BorderedProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
75
|
+
/** Draw a divider on the section's inner edge. Default `false`. */
|
|
76
|
+
border?: boolean;
|
|
77
|
+
}
|
|
78
|
+
/** Sidebar header slot — optional bottom border. */
|
|
79
|
+
declare function AppShellSidebarHeader({ border, className, ...props }: BorderedProps): React.ReactElement;
|
|
80
|
+
declare namespace AppShellSidebarHeader {
|
|
81
|
+
var displayName: string;
|
|
82
|
+
}
|
|
83
|
+
/** Sidebar scroll region — grows to fill and scrolls. */
|
|
84
|
+
declare function AppShellSidebarContent({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.ReactElement;
|
|
85
|
+
declare namespace AppShellSidebarContent {
|
|
86
|
+
var displayName: string;
|
|
87
|
+
}
|
|
88
|
+
/** Sidebar footer slot — optional top border. */
|
|
89
|
+
declare function AppShellSidebarFooter({ border, className, ...props }: BorderedProps): React.ReactElement;
|
|
90
|
+
declare namespace AppShellSidebarFooter {
|
|
91
|
+
var displayName: string;
|
|
92
|
+
}
|
|
93
|
+
/** The main content column, between/beside the sidebars. */
|
|
94
|
+
declare function AppShellMain({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.ReactElement;
|
|
95
|
+
declare namespace AppShellMain {
|
|
96
|
+
var displayName: string;
|
|
97
|
+
}
|
|
98
|
+
/** Props accepted by {@link AppShellHeader}. */
|
|
99
|
+
export interface AppShellHeaderProps extends React.HTMLAttributes<HTMLElement> {
|
|
100
|
+
/** Draw a bottom divider. Default `false`. */
|
|
101
|
+
border?: boolean;
|
|
102
|
+
}
|
|
103
|
+
/** Optional top bar inside the main column — with or without a bottom border. */
|
|
104
|
+
declare function AppShellHeader({ border, className, ...props }: AppShellHeaderProps): React.ReactElement;
|
|
105
|
+
declare namespace AppShellHeader {
|
|
106
|
+
var displayName: string;
|
|
107
|
+
}
|
|
108
|
+
/** The main content region — grows to fill, host owns overflow. */
|
|
109
|
+
declare function AppShellContent({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): React.ReactElement;
|
|
110
|
+
declare namespace AppShellContent {
|
|
111
|
+
var displayName: string;
|
|
112
|
+
}
|
|
113
|
+
/** Props accepted by {@link AppShellTrigger}. */
|
|
114
|
+
export interface AppShellTriggerProps extends ButtonProps {
|
|
115
|
+
/** Which sidebar to toggle. Default `left`. */
|
|
116
|
+
side?: AppShellSide;
|
|
117
|
+
/** Override the default panel icon (`PanelLeft` / `PanelRight`). */
|
|
118
|
+
icon?: React.ReactNode;
|
|
119
|
+
}
|
|
120
|
+
/** Toggle button — built on the shared `Button`, defaults its icon by `side`. */
|
|
121
|
+
declare function AppShellTrigger({ side, icon, variant, size, className, onClick, "aria-label": ariaLabel, ...props }: AppShellTriggerProps): React.ReactElement;
|
|
122
|
+
declare namespace AppShellTrigger {
|
|
123
|
+
var displayName: string;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Compound AppShell. Compose:
|
|
127
|
+
*
|
|
128
|
+
* ```tsx
|
|
129
|
+
* <AppShell storageKey="vf-shell">
|
|
130
|
+
* <AppShell.Sidebar side="left">
|
|
131
|
+
* <AppShell.SidebarHeader border>…</AppShell.SidebarHeader>
|
|
132
|
+
* <AppShell.SidebarContent>…</AppShell.SidebarContent>
|
|
133
|
+
* </AppShell.Sidebar>
|
|
134
|
+
* <AppShell.Main>
|
|
135
|
+
* <AppShell.Header border>
|
|
136
|
+
* <AppShell.Trigger side="left" />
|
|
137
|
+
* </AppShell.Header>
|
|
138
|
+
* <AppShell.Content>…</AppShell.Content>
|
|
139
|
+
* </AppShell.Main>
|
|
140
|
+
* <AppShell.Sidebar side="right">…</AppShell.Sidebar>
|
|
141
|
+
* </AppShell>
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
export declare const AppShell: typeof AppShellRoot & {
|
|
145
|
+
Sidebar: typeof AppShellSidebar;
|
|
146
|
+
SidebarHeader: typeof AppShellSidebarHeader;
|
|
147
|
+
SidebarContent: typeof AppShellSidebarContent;
|
|
148
|
+
SidebarFooter: typeof AppShellSidebarFooter;
|
|
149
|
+
Main: typeof AppShellMain;
|
|
150
|
+
Header: typeof AppShellHeader;
|
|
151
|
+
Content: typeof AppShellContent;
|
|
152
|
+
Trigger: typeof AppShellTrigger;
|
|
153
|
+
};
|
|
154
|
+
export {};
|
|
155
|
+
//# sourceMappingURL=app-shell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-shell.d.ts","sourceRoot":"","sources":["../../../../../../src/src/react/components/chat/ui/app-shell.tsx"],"names":[],"mappings":"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"}
|