veryfront 0.1.997 → 0.1.999
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.d.ts +1 -1
- package/esm/cli/templates/manifest.js +15 -15
- package/esm/deno.d.ts +7 -0
- package/esm/deno.js +11 -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/embedding/index.d.ts +0 -2
- package/esm/src/embedding/index.d.ts.map +1 -1
- package/esm/src/embedding/index.js +0 -1
- package/esm/src/embedding/upload-handler.d.ts +2 -13
- package/esm/src/embedding/upload-handler.d.ts.map +1 -1
- package/esm/src/embedding/upload-handler.js +24 -17
- package/esm/src/modules/import-map/default-import-map.d.ts.map +1 -1
- package/esm/src/modules/import-map/default-import-map.js +0 -5
- 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/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 +5 -1
- package/esm/src/embedding/react/use-uploads.d.ts +0 -33
- package/esm/src/embedding/react/use-uploads.d.ts.map +0 -1
- package/esm/src/embedding/react/use-uploads.js +0 -76
- 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
|
@@ -1,18 +1,140 @@
|
|
|
1
1
|
import * as React from "../../../../../../react/react.js";
|
|
2
|
+
/** Upload lifecycle state (shadcn-style). Drives the icon, label, and treatment. */
|
|
3
|
+
export type AttachmentState = "selected" | "uploading" | "processing" | "uploaded" | "error";
|
|
2
4
|
/** Public API contract for attachment info. */
|
|
3
5
|
export interface AttachmentInfo {
|
|
4
6
|
id: string;
|
|
5
7
|
name: string;
|
|
8
|
+
/** Legacy two-value status; prefer `state` for the full lifecycle. */
|
|
6
9
|
status?: "uploading" | "ready";
|
|
10
|
+
/** Upload lifecycle state — sets the icon, label, and container treatment. */
|
|
11
|
+
state?: AttachmentState;
|
|
12
|
+
/** Upload progress (0–100), shown in the `uploading` label. */
|
|
13
|
+
progress?: number;
|
|
7
14
|
type?: string;
|
|
8
15
|
size?: number;
|
|
9
16
|
preview?: string;
|
|
17
|
+
/** Resolved URL once the file has finished uploading. */
|
|
18
|
+
url?: string;
|
|
19
|
+
}
|
|
20
|
+
/** Icon overrides for {@link AttachmentPill}. Each defaults to its glyph. */
|
|
21
|
+
export interface AttachmentPillIcons {
|
|
22
|
+
/** Override the remove (✕) glyph. */
|
|
23
|
+
remove?: React.ReactNode;
|
|
24
|
+
/** Override the retry glyph. */
|
|
25
|
+
retry?: React.ReactNode;
|
|
10
26
|
}
|
|
11
27
|
/** Props accepted by attachment pill. */
|
|
12
|
-
export interface AttachmentPillProps {
|
|
28
|
+
export interface AttachmentPillProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
13
29
|
attachment: AttachmentInfo;
|
|
14
30
|
onRemove?: (id: string) => void;
|
|
31
|
+
/** Retry handler — surfaces a retry button in the `error` state. */
|
|
32
|
+
onRetry?: (id: string) => void;
|
|
33
|
+
/** Override the remove / retry button icons. */
|
|
34
|
+
icons?: AttachmentPillIcons;
|
|
35
|
+
/**
|
|
36
|
+
* Draw the outline + surrounding box. `false` gives a flat, borderless row
|
|
37
|
+
* (e.g. `AttachmentsPanel`, where the pills are a plain list). @default true
|
|
38
|
+
*/
|
|
39
|
+
bordered?: boolean;
|
|
40
|
+
/** Compose your own pill; when omitted, the default anatomy is rendered. */
|
|
41
|
+
children?: React.ReactNode;
|
|
42
|
+
}
|
|
43
|
+
/** Derived per-pill view state shared with `AttachmentPill.*` sub-parts. */
|
|
44
|
+
export interface AttachmentPillContextValue {
|
|
45
|
+
attachment: AttachmentInfo;
|
|
46
|
+
onRemove?: (id: string) => void;
|
|
47
|
+
onRetry?: (id: string) => void;
|
|
48
|
+
icons?: AttachmentPillIcons;
|
|
49
|
+
/** File extension (from the name, falling back to the media type). */
|
|
50
|
+
ext: string;
|
|
51
|
+
/** Tailwind color pair for the default (no-state) icon box. */
|
|
52
|
+
colorClass: string;
|
|
53
|
+
/** Whether the attachment resolves to an image. */
|
|
54
|
+
isImage: boolean;
|
|
55
|
+
/** The image `src` to show in the thumbnail (preview → url). */
|
|
56
|
+
imageSrc?: string;
|
|
57
|
+
/** Whether the current state is `error`. */
|
|
58
|
+
isError: boolean;
|
|
59
|
+
/** Whether a spinner overlay should show (uploading / processing). */
|
|
60
|
+
isBusy: boolean;
|
|
61
|
+
/** Whether the title should shimmer (uploading / processing). */
|
|
62
|
+
shimmerTitle: boolean;
|
|
63
|
+
/** The secondary label line for the current state. */
|
|
64
|
+
label: string;
|
|
65
|
+
/** Legacy dimming for the old `status="uploading"` API. */
|
|
66
|
+
legacyUploading: boolean;
|
|
67
|
+
/** Whether the remove control should render. */
|
|
68
|
+
showRemove: boolean;
|
|
69
|
+
/** The state glyph for the icon box (null → render the extension text). */
|
|
70
|
+
stateGlyph: React.ReactNode;
|
|
71
|
+
/** Tailwind classes for the icon box background/foreground. */
|
|
72
|
+
boxClass: string;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Read the enclosing `AttachmentPill` state. Throws when used outside an
|
|
76
|
+
* `AttachmentPill`.
|
|
77
|
+
*/
|
|
78
|
+
export declare function useAttachmentPill(): AttachmentPillContextValue;
|
|
79
|
+
/**
|
|
80
|
+
* `AttachmentPill.Thumbnail` — the image square (with a busy overlay). Renders
|
|
81
|
+
* only when the attachment resolves to a non-error image with a source.
|
|
82
|
+
*/
|
|
83
|
+
declare function AttachmentPillThumbnail({ className }: {
|
|
84
|
+
className?: string;
|
|
85
|
+
}): React.JSX.Element | null;
|
|
86
|
+
declare namespace AttachmentPillThumbnail {
|
|
87
|
+
var displayName: string;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* `AttachmentPill.Icon` — the state-glyph / file-extension square shown when
|
|
91
|
+
* there is no image thumbnail.
|
|
92
|
+
*/
|
|
93
|
+
declare function AttachmentPillIcon({ className }: {
|
|
94
|
+
className?: string;
|
|
95
|
+
}): React.JSX.Element;
|
|
96
|
+
declare namespace AttachmentPillIcon {
|
|
97
|
+
var displayName: string;
|
|
98
|
+
}
|
|
99
|
+
/** `AttachmentPill.Label` — the name + secondary state-line column. */
|
|
100
|
+
declare function AttachmentPillLabel({ className }: {
|
|
101
|
+
className?: string;
|
|
102
|
+
}): React.JSX.Element;
|
|
103
|
+
declare namespace AttachmentPillLabel {
|
|
104
|
+
var displayName: string;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* `AttachmentPill.Retry` — the retry control. Renders only in the `error` state
|
|
108
|
+
* when an `onRetry` handler is provided.
|
|
109
|
+
*/
|
|
110
|
+
declare function AttachmentPillRetry({ className }: {
|
|
111
|
+
className?: string;
|
|
112
|
+
}): React.JSX.Element | null;
|
|
113
|
+
declare namespace AttachmentPillRetry {
|
|
114
|
+
var displayName: string;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* `AttachmentPill.Remove` — the remove (✕) control. Renders only when an
|
|
118
|
+
* `onRemove` handler is provided and the pill isn't a legacy uploading pill.
|
|
119
|
+
*/
|
|
120
|
+
declare function AttachmentPillRemove({ className }: {
|
|
121
|
+
className?: string;
|
|
122
|
+
}): React.JSX.Element | null;
|
|
123
|
+
declare namespace AttachmentPillRemove {
|
|
124
|
+
var displayName: string;
|
|
15
125
|
}
|
|
16
|
-
/**
|
|
17
|
-
|
|
126
|
+
/**
|
|
127
|
+
* AttachmentPill — render `<AttachmentPill attachment={…} />` for the default
|
|
128
|
+
* chip, or compose `AttachmentPill.Root` + `.Thumbnail` / `.Icon` / `.Label` /
|
|
129
|
+
* `.Retry` / `.Remove` for a custom layout. Publicly aliased as `Attachment`.
|
|
130
|
+
*/
|
|
131
|
+
export declare const AttachmentPill: React.ForwardRefExoticComponent<AttachmentPillProps & React.RefAttributes<HTMLDivElement>> & {
|
|
132
|
+
Root: React.ForwardRefExoticComponent<AttachmentPillProps & React.RefAttributes<HTMLDivElement>>;
|
|
133
|
+
Thumbnail: typeof AttachmentPillThumbnail;
|
|
134
|
+
Icon: typeof AttachmentPillIcon;
|
|
135
|
+
Label: typeof AttachmentPillLabel;
|
|
136
|
+
Retry: typeof AttachmentPillRetry;
|
|
137
|
+
Remove: typeof AttachmentPillRemove;
|
|
138
|
+
};
|
|
139
|
+
export {};
|
|
18
140
|
//# sourceMappingURL=attachment-pill.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-pill.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/components/attachment-pill.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"attachment-pill.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/components/attachment-pill.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import * as React from "../../../../../../react/react.js";
|
|
2
2
|
import { cn } from "../../theme.js";
|
|
3
|
+
import { CheckIcon, ClockIcon, FileTextIcon, RefreshCwIcon } from "../../icons/index.js";
|
|
4
|
+
import { Button } from "../../ui/button.js";
|
|
5
|
+
import { Shimmer } from "./animations.js";
|
|
6
|
+
import { COMPONENT_ERROR } from "../../../../../errors/error-registry.js";
|
|
3
7
|
const FILE_TYPE_COLORS = {
|
|
4
|
-
pdf: "text-red-
|
|
5
|
-
docx: "text-blue-
|
|
6
|
-
csv: "text-emerald-
|
|
7
|
-
txt: "text-
|
|
8
|
-
md: "text-purple-
|
|
9
|
-
mdx: "text-purple-
|
|
8
|
+
pdf: "text-red-700 bg-red-100",
|
|
9
|
+
docx: "text-blue-700 bg-blue-100",
|
|
10
|
+
csv: "text-emerald-700 bg-emerald-100",
|
|
11
|
+
txt: "text-[var(--faint)] bg-[var(--tertiary)]",
|
|
12
|
+
md: "text-purple-700 bg-purple-100",
|
|
13
|
+
mdx: "text-purple-700 bg-purple-100",
|
|
10
14
|
};
|
|
11
15
|
function getExtension(name) {
|
|
12
16
|
const dot = name.lastIndexOf(".");
|
|
@@ -19,23 +23,203 @@ function formatSize(bytes) {
|
|
|
19
23
|
return `${(bytes / 1024).toFixed(0)} KB`;
|
|
20
24
|
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
21
25
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return
|
|
28
|
-
React.createElement("span", { className: cn("inline-flex items-center justify-center rounded px-1 py-0.5 text-[9px] font-bold uppercase leading-none", colorClass) }, ext || "?"),
|
|
29
|
-
React.createElement("span", { className: "truncate max-w-[120px]" }, attachment.name),
|
|
30
|
-
attachment.size != null && (React.createElement("span", { className: "text-[10px] text-[var(--input-placeholder)] shrink-0" }, formatSize(attachment.size))),
|
|
31
|
-
attachment.status === "uploading"
|
|
32
|
-
? (React.createElement("span", { className: "size-3 shrink-0 rounded-full border-2 border-neutral-400 border-t-transparent animate-spin" }))
|
|
33
|
-
: onRemove && (React.createElement("button", { type: "button", onClick: () => onRemove(attachment.id), "aria-label": `Remove ${attachment.name}`, className: "size-4 shrink-0 flex items-center justify-center rounded-full hover:bg-[var(--accent)] text-[var(--input-placeholder)] hover:text-[var(--foreground)] transition-colors" },
|
|
34
|
-
React.createElement("svg", { className: "size-3", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round" },
|
|
35
|
-
React.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
|
|
36
|
-
React.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" })))),
|
|
37
|
-
showPreview && attachment.preview && (React.createElement("div", { className: "absolute bottom-full left-0 mb-2 z-50 w-64 pointer-events-none" },
|
|
38
|
-
React.createElement("div", { className: "bg-[var(--card)] border border-[var(--border)] rounded-xl shadow-lg p-3 text-left" },
|
|
39
|
-
React.createElement("p", { className: "text-[10px] font-medium text-[var(--muted-foreground)] uppercase mb-1" }, "Preview"),
|
|
40
|
-
React.createElement("p", { className: "text-xs text-[var(--card-foreground)] line-clamp-4 whitespace-pre-wrap" }, attachment.preview))))));
|
|
26
|
+
function getTypeLabel(attachment, ext, mediaType) {
|
|
27
|
+
if (attachment.status === "uploading")
|
|
28
|
+
return "Uploading";
|
|
29
|
+
if (attachment.size != null)
|
|
30
|
+
return formatSize(attachment.size);
|
|
31
|
+
return ext ? ext.toUpperCase() : (mediaType || "File");
|
|
41
32
|
}
|
|
33
|
+
/** Secondary line for the current lifecycle state. */
|
|
34
|
+
function getStateLabel(attachment, ext, mediaType) {
|
|
35
|
+
switch (attachment.state) {
|
|
36
|
+
case "selected":
|
|
37
|
+
return "Ready to upload";
|
|
38
|
+
case "uploading":
|
|
39
|
+
return attachment.progress != null
|
|
40
|
+
? `Uploading · ${Math.round(attachment.progress)}%`
|
|
41
|
+
: "Uploading";
|
|
42
|
+
case "processing":
|
|
43
|
+
return "Processing document";
|
|
44
|
+
case "uploaded":
|
|
45
|
+
return attachment.size != null ? `Uploaded · ${formatSize(attachment.size)}` : "Uploaded";
|
|
46
|
+
case "error":
|
|
47
|
+
return "Upload failed. Try again.";
|
|
48
|
+
default:
|
|
49
|
+
return getTypeLabel(attachment, ext, mediaType);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/** A rounded spinner used while uploading. */
|
|
53
|
+
function Spinner() {
|
|
54
|
+
return (React.createElement("span", { className: "size-4.5 animate-spin rounded-full border-2 border-[var(--faint)] border-t-transparent" }));
|
|
55
|
+
}
|
|
56
|
+
/** Alert glyph for the error state (no dedicated icon in the barrel). */
|
|
57
|
+
function AlertGlyph() {
|
|
58
|
+
return (React.createElement("svg", { viewBox: "0 0 24 24", className: "size-4.5", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true" },
|
|
59
|
+
React.createElement("circle", { cx: "12", cy: "12", r: "9" }),
|
|
60
|
+
React.createElement("line", { x1: "12", y1: "8", x2: "12", y2: "12.5" }),
|
|
61
|
+
React.createElement("line", { x1: "12", y1: "16", x2: "12.01", y2: "16" })));
|
|
62
|
+
}
|
|
63
|
+
const AttachmentPillContext = React.createContext(null);
|
|
64
|
+
/**
|
|
65
|
+
* Read the enclosing `AttachmentPill` state. Throws when used outside an
|
|
66
|
+
* `AttachmentPill`.
|
|
67
|
+
*/
|
|
68
|
+
export function useAttachmentPill() {
|
|
69
|
+
const ctx = React.useContext(AttachmentPillContext);
|
|
70
|
+
if (!ctx) {
|
|
71
|
+
throw COMPONENT_ERROR.create({
|
|
72
|
+
detail: "useAttachmentPill must be used within a AttachmentPill",
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return ctx;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* `AttachmentPill.Root` — context provider + the chip wrapper. No children
|
|
79
|
+
* renders the default anatomy; pass children to recompose.
|
|
80
|
+
*/
|
|
81
|
+
const AttachmentPillRoot = React.forwardRef(function AttachmentPill({ attachment, onRemove, onRetry, icons, bordered = true, className, children, ...props }, ref) {
|
|
82
|
+
const mediaType = attachment.type ?? "";
|
|
83
|
+
const ext = getExtension(attachment.name) ||
|
|
84
|
+
mediaType.split("/").pop()?.toLowerCase() || "";
|
|
85
|
+
const colorClass = FILE_TYPE_COLORS[ext] ??
|
|
86
|
+
"text-[var(--faint)] bg-[var(--tertiary)]";
|
|
87
|
+
const isImage = mediaType.startsWith("image/") ||
|
|
88
|
+
/\.(avif|gif|jpe?g|png|webp)$/i.test(attachment.name);
|
|
89
|
+
const state = attachment.state;
|
|
90
|
+
const isError = state === "error";
|
|
91
|
+
// Prefer the local object-URL `preview`; fall back to the resolved `url`
|
|
92
|
+
// (set on sent-message pills) so an uploaded image still shows a thumbnail.
|
|
93
|
+
const imageSrc = isImage ? (attachment.preview ?? attachment.url) : undefined;
|
|
94
|
+
const isBusy = state === "uploading" || state === "processing" ||
|
|
95
|
+
attachment.status === "uploading";
|
|
96
|
+
const shimmerTitle = state === "uploading" || state === "processing";
|
|
97
|
+
const label = getStateLabel(attachment, ext, mediaType);
|
|
98
|
+
// Legacy dimming only applies to the old `status` API (new states stay solid).
|
|
99
|
+
const legacyUploading = !state && attachment.status === "uploading";
|
|
100
|
+
const showRemove = Boolean(onRemove) &&
|
|
101
|
+
(Boolean(state) || attachment.status !== "uploading");
|
|
102
|
+
// The left box shows a state glyph when a lifecycle `state` is set, otherwise
|
|
103
|
+
// the file-type extension badge (default behaviour).
|
|
104
|
+
const stateGlyph = state === "selected"
|
|
105
|
+
? React.createElement(ClockIcon, { className: "size-4.5 text-[var(--faint)]" })
|
|
106
|
+
: state === "uploading"
|
|
107
|
+
? React.createElement(Spinner, null)
|
|
108
|
+
: state === "processing"
|
|
109
|
+
? React.createElement(FileTextIcon, { className: "size-4.5 text-[var(--faint)]" })
|
|
110
|
+
: state === "uploaded"
|
|
111
|
+
? React.createElement(CheckIcon, { className: "size-4.5 text-[var(--foreground)]" })
|
|
112
|
+
: isError
|
|
113
|
+
? React.createElement(AlertGlyph, null)
|
|
114
|
+
: null;
|
|
115
|
+
const boxClass = isError
|
|
116
|
+
? "bg-[color-mix(in_oklch,var(--destructive),transparent_86%)] text-[var(--destructive)]"
|
|
117
|
+
: state
|
|
118
|
+
? "bg-[var(--tertiary)] text-[var(--foreground)]"
|
|
119
|
+
: colorClass;
|
|
120
|
+
const context = {
|
|
121
|
+
attachment,
|
|
122
|
+
onRemove,
|
|
123
|
+
onRetry,
|
|
124
|
+
icons,
|
|
125
|
+
ext,
|
|
126
|
+
colorClass,
|
|
127
|
+
isImage,
|
|
128
|
+
imageSrc,
|
|
129
|
+
isError,
|
|
130
|
+
isBusy,
|
|
131
|
+
shimmerTitle,
|
|
132
|
+
label,
|
|
133
|
+
legacyUploading,
|
|
134
|
+
showRemove,
|
|
135
|
+
stateGlyph,
|
|
136
|
+
boxClass,
|
|
137
|
+
};
|
|
138
|
+
return (React.createElement(AttachmentPillContext.Provider, { value: context },
|
|
139
|
+
React.createElement("div", { ...props, ref: ref, className: cn(
|
|
140
|
+
// No width here on purpose — width is the container's decision
|
|
141
|
+
// (composer uses a fixed chip, AttachmentsPanel fills the row).
|
|
142
|
+
"group relative flex items-center gap-3 rounded-[var(--radius-md)] bg-[var(--secondary)] py-1 pl-1 pr-2 text-[var(--foreground)]", bordered && "border", bordered && (state === "selected"
|
|
143
|
+
? "border-dashed border-[var(--edge-medium)]"
|
|
144
|
+
: isError
|
|
145
|
+
? "border-[var(--destructive)] bg-[color-mix(in_oklch,var(--destructive),transparent_94%)]"
|
|
146
|
+
: "border-[var(--edge-medium)]"), legacyUploading && "opacity-70", className) }, children ?? (React.createElement(React.Fragment, null,
|
|
147
|
+
imageSrc && !isError ? React.createElement(AttachmentPillThumbnail, null) : React.createElement(AttachmentPillIcon, null),
|
|
148
|
+
React.createElement(AttachmentPillLabel, null),
|
|
149
|
+
React.createElement(AttachmentPillRetry, null),
|
|
150
|
+
React.createElement(AttachmentPillRemove, null))))));
|
|
151
|
+
});
|
|
152
|
+
AttachmentPillRoot.displayName = "AttachmentPill.Root";
|
|
153
|
+
/**
|
|
154
|
+
* `AttachmentPill.Thumbnail` — the image square (with a busy overlay). Renders
|
|
155
|
+
* only when the attachment resolves to a non-error image with a source.
|
|
156
|
+
*/
|
|
157
|
+
function AttachmentPillThumbnail({ className }) {
|
|
158
|
+
const { imageSrc, isError, isBusy } = useAttachmentPill();
|
|
159
|
+
if (!imageSrc || isError)
|
|
160
|
+
return null;
|
|
161
|
+
return (React.createElement("div", { className: cn("relative size-10 shrink-0 overflow-hidden rounded-[var(--radius-sm)] bg-[var(--tertiary)]", className) },
|
|
162
|
+
React.createElement("img", { alt: "", className: "size-full object-cover", src: imageSrc }),
|
|
163
|
+
isBusy && (React.createElement("div", { className: "absolute inset-0 flex items-center justify-center rounded-[var(--radius-sm)] bg-[var(--overlay)]" },
|
|
164
|
+
React.createElement("span", { className: "size-4 animate-spin rounded-full border-2 border-white border-t-transparent" })))));
|
|
165
|
+
}
|
|
166
|
+
AttachmentPillThumbnail.displayName = "AttachmentPill.Thumbnail";
|
|
167
|
+
/**
|
|
168
|
+
* `AttachmentPill.Icon` — the state-glyph / file-extension square shown when
|
|
169
|
+
* there is no image thumbnail.
|
|
170
|
+
*/
|
|
171
|
+
function AttachmentPillIcon({ className }) {
|
|
172
|
+
const { boxClass, stateGlyph, ext, legacyUploading } = useAttachmentPill();
|
|
173
|
+
return (React.createElement("div", { className: cn("relative flex size-10 shrink-0 items-center justify-center rounded-[var(--radius-sm)] text-[10px] font-medium uppercase leading-none", boxClass, className) },
|
|
174
|
+
stateGlyph ?? ext ?? "file",
|
|
175
|
+
legacyUploading && (React.createElement("div", { className: "absolute inset-0 flex items-center justify-center rounded-[var(--radius-sm)] bg-[var(--overlay)]" },
|
|
176
|
+
React.createElement("span", { className: "size-4 animate-spin rounded-full border-2 border-white border-t-transparent" })))));
|
|
177
|
+
}
|
|
178
|
+
AttachmentPillIcon.displayName = "AttachmentPill.Icon";
|
|
179
|
+
/** `AttachmentPill.Label` — the name + secondary state-line column. */
|
|
180
|
+
function AttachmentPillLabel({ className }) {
|
|
181
|
+
const { attachment, shimmerTitle, isError, label } = useAttachmentPill();
|
|
182
|
+
return (React.createElement("div", { className: cn("flex min-w-0 flex-1 flex-col gap-0.5", className) },
|
|
183
|
+
React.createElement("p", { className: "truncate text-sm font-medium leading-tight" }, shimmerTitle
|
|
184
|
+
? React.createElement(Shimmer, null, attachment.name || "Attachment")
|
|
185
|
+
: (attachment.name || "Attachment")),
|
|
186
|
+
React.createElement("p", { className: cn("truncate text-xs leading-tight", isError ? "text-[var(--destructive)]" : "text-[var(--faint)]") }, label)));
|
|
187
|
+
}
|
|
188
|
+
AttachmentPillLabel.displayName = "AttachmentPill.Label";
|
|
189
|
+
/**
|
|
190
|
+
* `AttachmentPill.Retry` — the retry control. Renders only in the `error` state
|
|
191
|
+
* when an `onRetry` handler is provided.
|
|
192
|
+
*/
|
|
193
|
+
function AttachmentPillRetry({ className }) {
|
|
194
|
+
const { attachment, isError, onRetry, icons } = useAttachmentPill();
|
|
195
|
+
if (!isError || !onRetry)
|
|
196
|
+
return null;
|
|
197
|
+
return (React.createElement(Button, { type: "button", variant: "icon-ghost", size: "icon-xs", on: "card", onClick: () => onRetry(attachment.id), "aria-label": `Retry ${attachment.name}`, className: cn("shrink-0", className) }, icons?.retry ?? React.createElement(RefreshCwIcon, null)));
|
|
198
|
+
}
|
|
199
|
+
AttachmentPillRetry.displayName = "AttachmentPill.Retry";
|
|
200
|
+
/**
|
|
201
|
+
* `AttachmentPill.Remove` — the remove (✕) control. Renders only when an
|
|
202
|
+
* `onRemove` handler is provided and the pill isn't a legacy uploading pill.
|
|
203
|
+
*/
|
|
204
|
+
function AttachmentPillRemove({ className }) {
|
|
205
|
+
const { attachment, showRemove, onRemove, icons } = useAttachmentPill();
|
|
206
|
+
if (!showRemove)
|
|
207
|
+
return null;
|
|
208
|
+
return (React.createElement(Button, { type: "button", variant: "icon-ghost", size: "icon-xs", on: "card", onClick: () => onRemove?.(attachment.id), "aria-label": `Remove ${attachment.name}`, className: cn("shrink-0 opacity-100 md:opacity-0 md:group-hover:opacity-100", className) }, icons?.remove ?? (React.createElement("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round" },
|
|
209
|
+
React.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
|
|
210
|
+
React.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" })))));
|
|
211
|
+
}
|
|
212
|
+
AttachmentPillRemove.displayName = "AttachmentPill.Remove";
|
|
213
|
+
/**
|
|
214
|
+
* AttachmentPill — render `<AttachmentPill attachment={…} />` for the default
|
|
215
|
+
* chip, or compose `AttachmentPill.Root` + `.Thumbnail` / `.Icon` / `.Label` /
|
|
216
|
+
* `.Retry` / `.Remove` for a custom layout. Publicly aliased as `Attachment`.
|
|
217
|
+
*/
|
|
218
|
+
export const AttachmentPill = Object.assign(AttachmentPillRoot, {
|
|
219
|
+
Root: AttachmentPillRoot,
|
|
220
|
+
Thumbnail: AttachmentPillThumbnail,
|
|
221
|
+
Icon: AttachmentPillIcon,
|
|
222
|
+
Label: AttachmentPillLabel,
|
|
223
|
+
Retry: AttachmentPillRetry,
|
|
224
|
+
Remove: AttachmentPillRemove,
|
|
225
|
+
});
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import * as React from "../../../../../../react/react.js";
|
|
2
|
+
/** Public API contract for uploaded file. */
|
|
3
|
+
export interface UploadedFile {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
size?: number;
|
|
7
|
+
type?: string;
|
|
8
|
+
url?: string;
|
|
9
|
+
}
|
|
10
|
+
/** Per-panel state shared with `AttachmentsPanel.*` sub-parts. */
|
|
11
|
+
export interface AttachmentsPanelContextValue {
|
|
12
|
+
uploads: UploadedFile[];
|
|
13
|
+
/** `true` while the initial list is loading; shows the placeholder state. */
|
|
14
|
+
loading?: boolean;
|
|
15
|
+
onRemoveUpload?: (id: string) => void;
|
|
16
|
+
onAttach?: (files: FileList) => void;
|
|
17
|
+
attachAccept?: string;
|
|
18
|
+
/** Dismisses the panel; enables the close button when set. */
|
|
19
|
+
onClose?: () => void;
|
|
20
|
+
/** Opens the native file picker (wired to the hidden input in `Root`). */
|
|
21
|
+
triggerAttach: () => void;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Read the enclosing `AttachmentsPanel` state. Throws when used outside an
|
|
25
|
+
* `AttachmentsPanel`.
|
|
26
|
+
*/
|
|
27
|
+
export declare function useAttachmentsPanel(): AttachmentsPanelContextValue;
|
|
28
|
+
/** Props accepted by `AttachmentsPanel` / `AttachmentsPanel.Root`. */
|
|
29
|
+
export interface AttachmentsPanelProps {
|
|
30
|
+
uploads?: UploadedFile[];
|
|
31
|
+
/**
|
|
32
|
+
* `true` while the initial list is still loading. When set and there are no
|
|
33
|
+
* uploads yet, the panel shows the `Loading` placeholder instead of `Empty`.
|
|
34
|
+
*/
|
|
35
|
+
loading?: boolean;
|
|
36
|
+
onRemoveUpload?: (id: string) => void;
|
|
37
|
+
onAttach?: (files: FileList) => void;
|
|
38
|
+
attachAccept?: string;
|
|
39
|
+
/** Called to dismiss the panel; renders the header close button when set. */
|
|
40
|
+
onClose?: () => void;
|
|
41
|
+
className?: string;
|
|
42
|
+
/** Compose your own panel; when omitted, the default anatomy is rendered. */
|
|
43
|
+
children?: React.ReactNode;
|
|
44
|
+
}
|
|
45
|
+
/** Props for `AttachmentsPanel.Header` — the title row + close button. */
|
|
46
|
+
export interface AttachmentsPanelHeaderProps {
|
|
47
|
+
className?: string;
|
|
48
|
+
/** Compose your own header; when omitted, the "Attachments" title + close. */
|
|
49
|
+
children?: React.ReactNode;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* The panel header: an "Attachments" title with a close `Button` on the right.
|
|
53
|
+
* The close button only appears when `onClose` is set on the panel.
|
|
54
|
+
*/
|
|
55
|
+
declare function AttachmentsPanelHeader({ className, children }: AttachmentsPanelHeaderProps): React.JSX.Element;
|
|
56
|
+
declare namespace AttachmentsPanelHeader {
|
|
57
|
+
var displayName: string;
|
|
58
|
+
}
|
|
59
|
+
/** Props for `AttachmentsPanel.List` — the scrollable list of file rows. */
|
|
60
|
+
export interface AttachmentsPanelListProps {
|
|
61
|
+
className?: string;
|
|
62
|
+
/** Compose your own rows; when omitted, one `AttachmentsPanel.Item` per upload. */
|
|
63
|
+
children?: React.ReactNode;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The attachment list — a flex-gap column of `AttachmentsPanel.Item` cards
|
|
67
|
+
* (one per upload) plus the "Upload files" `AttachmentsPanel.Action` underneath
|
|
68
|
+
* when `onAttach` is set.
|
|
69
|
+
*/
|
|
70
|
+
declare function AttachmentsPanelList({ className, children }: AttachmentsPanelListProps): React.JSX.Element;
|
|
71
|
+
declare namespace AttachmentsPanelList {
|
|
72
|
+
var displayName: string;
|
|
73
|
+
}
|
|
74
|
+
/** Props accepted by an individual `AttachmentsPanel.Item` (attachment card). */
|
|
75
|
+
export interface AttachmentsPanelItemProps {
|
|
76
|
+
file: UploadedFile;
|
|
77
|
+
className?: string;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* A single attachment row — the shared `Attachment` (`AttachmentPill`) card,
|
|
81
|
+
* stretched full-width. This *composes* `AttachmentPill` (rather than rendering
|
|
82
|
+
* its default anatomy) to swap the trailing remove (✕) for an overflow (⋯) menu
|
|
83
|
+
* with Open / Delete — a live test of how composable `Attachment` is.
|
|
84
|
+
*/
|
|
85
|
+
declare function AttachmentsPanelItem({ file: doc, className }: AttachmentsPanelItemProps): React.JSX.Element;
|
|
86
|
+
declare namespace AttachmentsPanelItem {
|
|
87
|
+
var displayName: string;
|
|
88
|
+
}
|
|
89
|
+
/** Props for `AttachmentsPanel.Loading` — the initial-fetch placeholder. */
|
|
90
|
+
export interface AttachmentsPanelLoadingProps {
|
|
91
|
+
className?: string;
|
|
92
|
+
/** How many skeleton rows to render. Default `3`. */
|
|
93
|
+
count?: number;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* The loading state: skeleton rows shaped like `AttachmentsPanel.Item` cards,
|
|
97
|
+
* shown while the initial list is fetched so the panel doesn't flash `Empty`.
|
|
98
|
+
*/
|
|
99
|
+
declare function AttachmentsPanelLoading({ className, count }: AttachmentsPanelLoadingProps): React.JSX.Element;
|
|
100
|
+
declare namespace AttachmentsPanelLoading {
|
|
101
|
+
var displayName: string;
|
|
102
|
+
}
|
|
103
|
+
/** Props for `AttachmentsPanel.Empty` — the no-files state. */
|
|
104
|
+
export interface AttachmentsPanelEmptyProps {
|
|
105
|
+
className?: string;
|
|
106
|
+
/** Compose your own empty state; when omitted, the default copy + action. */
|
|
107
|
+
children?: React.ReactNode;
|
|
108
|
+
}
|
|
109
|
+
/** The empty state: heading, hint, and the upload `AttachmentsPanel.Action`. */
|
|
110
|
+
declare function AttachmentsPanelEmpty({ className, children }: AttachmentsPanelEmptyProps): React.JSX.Element;
|
|
111
|
+
declare namespace AttachmentsPanelEmpty {
|
|
112
|
+
var displayName: string;
|
|
113
|
+
}
|
|
114
|
+
/** Props for `AttachmentsPanel.Action` — the upload/attach button. */
|
|
115
|
+
export interface AttachmentsPanelActionProps {
|
|
116
|
+
/**
|
|
117
|
+
* Presentation only: `empty` is the pill button in the empty state, `more` is
|
|
118
|
+
* the centered "add more" button below the list. Both render a `<Button>`
|
|
119
|
+
* labelled "Upload files". Defaults to `empty`.
|
|
120
|
+
*/
|
|
121
|
+
variant?: "empty" | "more";
|
|
122
|
+
className?: string;
|
|
123
|
+
/** Button contents; defaults to "Upload files". */
|
|
124
|
+
children?: React.ReactNode;
|
|
125
|
+
/** Called after opening the native picker. */
|
|
126
|
+
onClick?: () => void;
|
|
127
|
+
}
|
|
128
|
+
/** The upload/attach button. Opens the native file picker wired in `Root`. */
|
|
129
|
+
declare function AttachmentsPanelAction({ variant, className, children, onClick }: AttachmentsPanelActionProps): React.JSX.Element;
|
|
130
|
+
declare namespace AttachmentsPanelAction {
|
|
131
|
+
var displayName: string;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* AttachmentsPanel — render `<AttachmentsPanel uploads={…} />` for the default panel, or
|
|
135
|
+
* compose `AttachmentsPanel.Root` + `List` / `Item` / `Empty` / `Action` for a
|
|
136
|
+
* custom layout. Mirrors the `ToolCall` / `Sources` compounds: render it, or
|
|
137
|
+
* compose it.
|
|
138
|
+
*/
|
|
139
|
+
export declare const AttachmentsPanel: React.ForwardRefExoticComponent<AttachmentsPanelProps & React.RefAttributes<HTMLDivElement>> & {
|
|
140
|
+
Root: React.ForwardRefExoticComponent<AttachmentsPanelProps & React.RefAttributes<HTMLDivElement>>;
|
|
141
|
+
Header: typeof AttachmentsPanelHeader;
|
|
142
|
+
List: typeof AttachmentsPanelList;
|
|
143
|
+
Item: typeof AttachmentsPanelItem;
|
|
144
|
+
Loading: typeof AttachmentsPanelLoading;
|
|
145
|
+
Empty: typeof AttachmentsPanelEmpty;
|
|
146
|
+
Action: typeof AttachmentsPanelAction;
|
|
147
|
+
};
|
|
148
|
+
export {};
|
|
149
|
+
//# sourceMappingURL=attachments-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachments-panel.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/components/attachments-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kCAAkC,CAAC;AAqB1D,6CAA6C;AAC7C,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAYD,kEAAkE;AAClE,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,0EAA0E;IAC1E,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,4BAA4B,CAQlE;AAED,sEAAsE;AACtE,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAiFD,0EAA0E;AAC1E,MAAM,WAAW,2BAA2B;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;GAGG;AACH,iBAAS,sBAAsB,CAC7B,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,2BAA2B,GACnD,KAAK,CAAC,GAAG,CAAC,OAAO,CA4BnB;kBA9BQ,sBAAsB;;;AAiC/B,4EAA4E;AAC5E,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;GAIG;AACH,iBAAS,oBAAoB,CAC3B,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,yBAAyB,GACjD,KAAK,CAAC,GAAG,CAAC,OAAO,CAYnB;kBAdQ,oBAAoB;;;AAiB7B,iFAAiF;AACjF,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,iBAAS,oBAAoB,CAC3B,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,yBAAyB,GAClD,KAAK,CAAC,GAAG,CAAC,OAAO,CASnB;kBAXQ,oBAAoB;;;AAsE7B,4EAA4E;AAC5E,MAAM,WAAW,4BAA4B;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,iBAAS,uBAAuB,CAC9B,EAAE,SAAS,EAAE,KAAS,EAAE,EAAE,4BAA4B,GACrD,KAAK,CAAC,GAAG,CAAC,OAAO,CAuBnB;kBAzBQ,uBAAuB;;;AA4BhC,+DAA+D;AAC/D,MAAM,WAAW,0BAA0B;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,gFAAgF;AAChF,iBAAS,qBAAqB,CAC5B,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,0BAA0B,GAClD,KAAK,CAAC,GAAG,CAAC,OAAO,CA6BnB;kBA/BQ,qBAAqB;;;AAkC9B,sEAAsE;AACtE,MAAM,WAAW,2BAA2B;IAC1C;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,8EAA8E;AAC9E,iBAAS,sBAAsB,CAC7B,EAAE,OAAiB,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,2BAA2B,GAC/E,KAAK,CAAC,GAAG,CAAC,OAAO,CA2BnB;kBA7BQ,sBAAsB;;;AAgC/B;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;CAQ3B,CAAC"}
|