@baishuyun/chat-sdk 0.0.1-alpha.1
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/.storybook/main.ts +21 -0
- package/.storybook/preview-head.html +1 -0
- package/.storybook/preview.ts +16 -0
- package/.turbo/turbo-build.log +82 -0
- package/components.json +22 -0
- package/dist/chat-sdk.js +55613 -0
- package/dist/chat-sdk.js.map +1 -0
- package/dist/chat-sdk.umd.cjs +661 -0
- package/dist/chat-sdk.umd.cjs.map +1 -0
- package/dist/chat.d.ts +5 -0
- package/dist/chat.d.ts.map +1 -0
- package/dist/components/biz-comp/FakeBotMsg.d.ts +7 -0
- package/dist/components/biz-comp/FakeBotMsg.d.ts.map +1 -0
- package/dist/components/biz-comp/FieldChecker.d.ts +16 -0
- package/dist/components/biz-comp/FieldChecker.d.ts.map +1 -0
- package/dist/components/biz-comp/FieldCheckerListMsg.d.ts +12 -0
- package/dist/components/biz-comp/FieldCheckerListMsg.d.ts.map +1 -0
- package/dist/components/biz-comp/FieldValueChecker.d.ts +14 -0
- package/dist/components/biz-comp/FieldValueChecker.d.ts.map +1 -0
- package/dist/components/biz-comp/SubformFieldsValueChecker.d.ts +20 -0
- package/dist/components/biz-comp/SubformFieldsValueChecker.d.ts.map +1 -0
- package/dist/components/biz-comp/chat-client.d.ts +13 -0
- package/dist/components/biz-comp/chat-client.d.ts.map +1 -0
- package/dist/components/biz-comp/chat-frame.d.ts +6 -0
- package/dist/components/biz-comp/chat-frame.d.ts.map +1 -0
- package/dist/components/biz-comp/conversation.d.ts +10 -0
- package/dist/components/biz-comp/conversation.d.ts.map +1 -0
- package/dist/components/biz-comp/dock-btn.d.ts +2 -0
- package/dist/components/biz-comp/dock-btn.d.ts.map +1 -0
- package/dist/components/biz-comp/field-icon.d.ts +5 -0
- package/dist/components/biz-comp/field-icon.d.ts.map +1 -0
- package/dist/components/biz-comp/markdown-part.d.ts +5 -0
- package/dist/components/biz-comp/markdown-part.d.ts.map +1 -0
- package/dist/components/biz-comp/markdown.d.ts +5 -0
- package/dist/components/biz-comp/markdown.d.ts.map +1 -0
- package/dist/components/biz-comp/message-content.d.ts +6 -0
- package/dist/components/biz-comp/message-content.d.ts.map +1 -0
- package/dist/components/biz-comp/messages.d.ts +3 -0
- package/dist/components/biz-comp/messages.d.ts.map +1 -0
- package/dist/components/biz-comp/multi-modal-input/attachment-btn.d.ts +9 -0
- package/dist/components/biz-comp/multi-modal-input/attachment-btn.d.ts.map +1 -0
- package/dist/components/biz-comp/multi-modal-input/clear-btn.d.ts +7 -0
- package/dist/components/biz-comp/multi-modal-input/clear-btn.d.ts.map +1 -0
- package/dist/components/biz-comp/multi-modal-input/index.d.ts +21 -0
- package/dist/components/biz-comp/multi-modal-input/index.d.ts.map +1 -0
- package/dist/components/biz-comp/multi-modal-input/preview-attachment.d.ts +12 -0
- package/dist/components/biz-comp/multi-modal-input/preview-attachment.d.ts.map +1 -0
- package/dist/components/biz-comp/multi-modal-input/prompt-input.d.ts +35 -0
- package/dist/components/biz-comp/multi-modal-input/prompt-input.d.ts.map +1 -0
- package/dist/components/biz-comp/opening-lines.d.ts +3 -0
- package/dist/components/biz-comp/opening-lines.d.ts.map +1 -0
- package/dist/components/biz-comp/preview-message-wrapper.d.ts +9 -0
- package/dist/components/biz-comp/preview-message-wrapper.d.ts.map +1 -0
- package/dist/components/biz-comp/preview-message.d.ts +11 -0
- package/dist/components/biz-comp/preview-message.d.ts.map +1 -0
- package/dist/components/biz-comp/response.d.ts +6 -0
- package/dist/components/biz-comp/response.d.ts.map +1 -0
- package/dist/components/biz-comp/suggestions.d.ts +7 -0
- package/dist/components/biz-comp/suggestions.d.ts.map +1 -0
- package/dist/components/bs-ui/abs-fullscreen-gradient-bg.d.ts +9 -0
- package/dist/components/bs-ui/abs-fullscreen-gradient-bg.d.ts.map +1 -0
- package/dist/components/bs-ui/attachments-previewer.d.ts +15 -0
- package/dist/components/bs-ui/attachments-previewer.d.ts.map +1 -0
- package/dist/components/bs-ui/border-color-animation.d.ts +9 -0
- package/dist/components/bs-ui/border-color-animation.d.ts.map +1 -0
- package/dist/components/bs-ui/bot-avatar-name.d.ts +6 -0
- package/dist/components/bs-ui/bot-avatar-name.d.ts.map +1 -0
- package/dist/components/bs-ui/bot-icon.d.ts +5 -0
- package/dist/components/bs-ui/bot-icon.d.ts.map +1 -0
- package/dist/components/bs-ui/bs-icons.d.ts +39 -0
- package/dist/components/bs-ui/bs-icons.d.ts.map +1 -0
- package/dist/components/bs-ui/card.d.ts +10 -0
- package/dist/components/bs-ui/card.d.ts.map +1 -0
- package/dist/components/bs-ui/chat-area-header.d.ts +9 -0
- package/dist/components/bs-ui/chat-area-header.d.ts.map +1 -0
- package/dist/components/bs-ui/collapsible-txt-msg.d.ts +10 -0
- package/dist/components/bs-ui/collapsible-txt-msg.d.ts.map +1 -0
- package/dist/components/bs-ui/confirm-dialog.d.ts +26 -0
- package/dist/components/bs-ui/confirm-dialog.d.ts.map +1 -0
- package/dist/components/bs-ui/fields-generating-indicator.d.ts +2 -0
- package/dist/components/bs-ui/fields-generating-indicator.d.ts.map +1 -0
- package/dist/components/bs-ui/fields-portal.d.ts +8 -0
- package/dist/components/bs-ui/fields-portal.d.ts.map +1 -0
- package/dist/components/bs-ui/fields-previewer.d.ts +12 -0
- package/dist/components/bs-ui/fields-previewer.d.ts.map +1 -0
- package/dist/components/bs-ui/font-icon.d.ts +6 -0
- package/dist/components/bs-ui/font-icon.d.ts.map +1 -0
- package/dist/components/bs-ui/form-info-editor.d.ts +37 -0
- package/dist/components/bs-ui/form-info-editor.d.ts.map +1 -0
- package/dist/components/bs-ui/generate-animation.d.ts +4 -0
- package/dist/components/bs-ui/generate-animation.d.ts.map +1 -0
- package/dist/components/bs-ui/icon-btn.d.ts +7 -0
- package/dist/components/bs-ui/icon-btn.d.ts.map +1 -0
- package/dist/components/bs-ui/line-checker.d.ts +15 -0
- package/dist/components/bs-ui/line-checker.d.ts.map +1 -0
- package/dist/components/bs-ui/linear-gradient-border-btn.d.ts +10 -0
- package/dist/components/bs-ui/linear-gradient-border-btn.d.ts.map +1 -0
- package/dist/components/bs-ui/linear-gradient-color-bg-animation.d.ts +8 -0
- package/dist/components/bs-ui/linear-gradient-color-bg-animation.d.ts.map +1 -0
- package/dist/components/bs-ui/option-item.d.ts +9 -0
- package/dist/components/bs-ui/option-item.d.ts.map +1 -0
- package/dist/components/bs-ui/previewer-header.d.ts +13 -0
- package/dist/components/bs-ui/previewer-header.d.ts.map +1 -0
- package/dist/components/bs-ui/primary-confirm-btn.d.ts +7 -0
- package/dist/components/bs-ui/primary-confirm-btn.d.ts.map +1 -0
- package/dist/components/bs-ui/primary-entry-btn.d.ts +9 -0
- package/dist/components/bs-ui/primary-entry-btn.d.ts.map +1 -0
- package/dist/components/bs-ui/tab-radio-group.d.ts +16 -0
- package/dist/components/bs-ui/tab-radio-group.d.ts.map +1 -0
- package/dist/components/bs-ui/tooltip.d.ts +5 -0
- package/dist/components/bs-ui/tooltip.d.ts.map +1 -0
- package/dist/components/bs-ui/user-txt-msg-bubble.d.ts +6 -0
- package/dist/components/bs-ui/user-txt-msg-bubble.d.ts.map +1 -0
- package/dist/components/ui/badge.d.ts +10 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/button.d.ts +12 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/card.d.ts +9 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/checkbox.d.ts +5 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -0
- package/dist/components/ui/collapsible.d.ts +6 -0
- package/dist/components/ui/collapsible.d.ts.map +1 -0
- package/dist/components/ui/dialog.d.ts +24 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +28 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/icons.d.ts +176 -0
- package/dist/components/ui/icons.d.ts.map +1 -0
- package/dist/components/ui/input-group.d.ts +17 -0
- package/dist/components/ui/input-group.d.ts.map +1 -0
- package/dist/components/ui/input.d.ts +4 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/label.d.ts +6 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/one-time-click-btn.d.ts +4 -0
- package/dist/components/ui/one-time-click-btn.d.ts.map +1 -0
- package/dist/components/ui/select.d.ts +14 -0
- package/dist/components/ui/select.d.ts.map +1 -0
- package/dist/components/ui/spinner.d.ts +3 -0
- package/dist/components/ui/spinner.d.ts.map +1 -0
- package/dist/components/ui/tabs.d.ts +8 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/textarea.d.ts +4 -0
- package/dist/components/ui/textarea.d.ts.map +1 -0
- package/dist/components/ui/tooltip.d.ts +8 -0
- package/dist/components/ui/tooltip.d.ts.map +1 -0
- package/dist/components/web-comp/fields-previewer-web-component.d.ts +61 -0
- package/dist/components/web-comp/fields-previewer-web-component.d.ts.map +1 -0
- package/dist/const/index.d.ts +4 -0
- package/dist/const/index.d.ts.map +1 -0
- package/dist/const/ui.d.ts +4 -0
- package/dist/const/ui.d.ts.map +1 -0
- package/dist/hooks/use-evt-bus.d.ts +2 -0
- package/dist/hooks/use-evt-bus.d.ts.map +1 -0
- package/dist/hooks/use-evt.d.ts +3 -0
- package/dist/hooks/use-evt.d.ts.map +1 -0
- package/dist/hooks/use-frame-mode.d.ts +5 -0
- package/dist/hooks/use-frame-mode.d.ts.map +1 -0
- package/dist/hooks/use-plugin-component.d.ts +5 -0
- package/dist/hooks/use-plugin-component.d.ts.map +1 -0
- package/dist/hooks/use-plugin-ctx.d.ts +3 -0
- package/dist/hooks/use-plugin-ctx.d.ts.map +1 -0
- package/dist/hooks/use-plugin-custom-components.d.ts +4 -0
- package/dist/hooks/use-plugin-custom-components.d.ts.map +1 -0
- package/dist/hooks/use-plugin-life-cycle-chain-runner.d.ts +5 -0
- package/dist/hooks/use-plugin-life-cycle-chain-runner.d.ts.map +1 -0
- package/dist/hooks/use-plugin-list.d.ts +2 -0
- package/dist/hooks/use-plugin-list.d.ts.map +1 -0
- package/dist/hooks/use-plugin.d.ts +2 -0
- package/dist/hooks/use-plugin.d.ts.map +1 -0
- package/dist/hooks/use-shadow.d.ts +25 -0
- package/dist/hooks/use-shadow.d.ts.map +1 -0
- package/dist/index.css +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/lib/event-emitter.d.ts +39 -0
- package/dist/lib/event-emitter.d.ts.map +1 -0
- package/dist/lib/utils.d.ts +30 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/plugins/form-builder-base-plugin/const.d.ts +3 -0
- package/dist/plugins/form-builder-base-plugin/const.d.ts.map +1 -0
- package/dist/plugins/form-builder-base-plugin/index.d.ts +7 -0
- package/dist/plugins/form-builder-base-plugin/index.d.ts.map +1 -0
- package/dist/plugins/form-builder-base-plugin/types.d.ts +12 -0
- package/dist/plugins/form-builder-base-plugin/types.d.ts.map +1 -0
- package/dist/plugins/form-filling-plugin/components/FormFillingOpeningLines.d.ts +2 -0
- package/dist/plugins/form-filling-plugin/components/FormFillingOpeningLines.d.ts.map +1 -0
- package/dist/plugins/form-filling-plugin/components/avatar.d.ts +5 -0
- package/dist/plugins/form-filling-plugin/components/avatar.d.ts.map +1 -0
- package/dist/plugins/form-filling-plugin/components/entry-btn.d.ts +3 -0
- package/dist/plugins/form-filling-plugin/components/entry-btn.d.ts.map +1 -0
- package/dist/plugins/form-filling-plugin/components/msg-part.d.ts +3 -0
- package/dist/plugins/form-filling-plugin/components/msg-part.d.ts.map +1 -0
- package/dist/plugins/form-filling-plugin/const.d.ts +612 -0
- package/dist/plugins/form-filling-plugin/const.d.ts.map +1 -0
- package/dist/plugins/form-filling-plugin/index.d.ts +13 -0
- package/dist/plugins/form-filling-plugin/index.d.ts.map +1 -0
- package/dist/plugins/form-filling-plugin/types.d.ts +8 -0
- package/dist/plugins/form-filling-plugin/types.d.ts.map +1 -0
- package/dist/plugins/form-filling-plugin/utils.d.ts +4 -0
- package/dist/plugins/form-filling-plugin/utils.d.ts.map +1 -0
- package/dist/plugins/general-model-form-builder-plugin/components/confirmer.d.ts +9 -0
- package/dist/plugins/general-model-form-builder-plugin/components/confirmer.d.ts.map +1 -0
- package/dist/plugins/general-model-form-builder-plugin/components/ghost-evt-dispatcher.d.ts +10 -0
- package/dist/plugins/general-model-form-builder-plugin/components/ghost-evt-dispatcher.d.ts.map +1 -0
- package/dist/plugins/general-model-form-builder-plugin/components/msg-part.d.ts +3 -0
- package/dist/plugins/general-model-form-builder-plugin/components/msg-part.d.ts.map +1 -0
- package/dist/plugins/general-model-form-builder-plugin/components/new-confirmer.d.ts +10 -0
- package/dist/plugins/general-model-form-builder-plugin/components/new-confirmer.d.ts.map +1 -0
- package/dist/plugins/general-model-form-builder-plugin/const.d.ts +3 -0
- package/dist/plugins/general-model-form-builder-plugin/const.d.ts.map +1 -0
- package/dist/plugins/general-model-form-builder-plugin/index.d.ts +9 -0
- package/dist/plugins/general-model-form-builder-plugin/index.d.ts.map +1 -0
- package/dist/plugins/general-model-form-builder-plugin/types.d.ts +3 -0
- package/dist/plugins/general-model-form-builder-plugin/types.d.ts.map +1 -0
- package/dist/plugins/mcp-form-builder-plugin/components/create-form-confirm.d.ts +7 -0
- package/dist/plugins/mcp-form-builder-plugin/components/create-form-confirm.d.ts.map +1 -0
- package/dist/plugins/mcp-form-builder-plugin/components/entry-btn.d.ts +3 -0
- package/dist/plugins/mcp-form-builder-plugin/components/entry-btn.d.ts.map +1 -0
- package/dist/plugins/mcp-form-builder-plugin/components/follow-up.d.ts +3 -0
- package/dist/plugins/mcp-form-builder-plugin/components/follow-up.d.ts.map +1 -0
- package/dist/plugins/mcp-form-builder-plugin/components/msg-part.d.ts +3 -0
- package/dist/plugins/mcp-form-builder-plugin/components/msg-part.d.ts.map +1 -0
- package/dist/plugins/mcp-form-builder-plugin/const/index.d.ts +12 -0
- package/dist/plugins/mcp-form-builder-plugin/const/index.d.ts.map +1 -0
- package/dist/plugins/mcp-form-builder-plugin/hooks/index.d.ts +1 -0
- package/dist/plugins/mcp-form-builder-plugin/hooks/index.d.ts.map +1 -0
- package/dist/plugins/mcp-form-builder-plugin/hooks/use-fields-confirmed.d.ts +2 -0
- package/dist/plugins/mcp-form-builder-plugin/hooks/use-fields-confirmed.d.ts.map +1 -0
- package/dist/plugins/mcp-form-builder-plugin/index.d.ts +23 -0
- package/dist/plugins/mcp-form-builder-plugin/index.d.ts.map +1 -0
- package/dist/plugins/mcp-form-builder-plugin/types.d.ts +17 -0
- package/dist/plugins/mcp-form-builder-plugin/types.d.ts.map +1 -0
- package/dist/plugins/mcp-form-builder-plugin/utils/index.d.ts +51 -0
- package/dist/plugins/mcp-form-builder-plugin/utils/index.d.ts.map +1 -0
- package/dist/sdk.impl.d.ts +21 -0
- package/dist/sdk.impl.d.ts.map +1 -0
- package/dist/store/context.d.ts +12 -0
- package/dist/store/context.d.ts.map +1 -0
- package/dist/store/index.d.ts +13 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/stories/AbsFullscreenGradientBg.stories.d.ts +17 -0
- package/dist/stories/AbsFullscreenGradientBg.stories.d.ts.map +1 -0
- package/dist/stories/AttachmentsPreviewer.stories.d.ts +16 -0
- package/dist/stories/AttachmentsPreviewer.stories.d.ts.map +1 -0
- package/dist/stories/BorderColorAnimation.stories.d.ts +24 -0
- package/dist/stories/BorderColorAnimation.stories.d.ts.map +1 -0
- package/dist/stories/BotAvatarAndName.stories.d.ts +18 -0
- package/dist/stories/BotAvatarAndName.stories.d.ts.map +1 -0
- package/dist/stories/BotIcon.stories.d.ts +17 -0
- package/dist/stories/BotIcon.stories.d.ts.map +1 -0
- package/dist/stories/BsTooltip.stories.d.ts +7 -0
- package/dist/stories/BsTooltip.stories.d.ts.map +1 -0
- package/dist/stories/Card.stories.d.ts +14 -0
- package/dist/stories/Card.stories.d.ts.map +1 -0
- package/dist/stories/ChatAreaHeader.stories.d.ts +14 -0
- package/dist/stories/ChatAreaHeader.stories.d.ts.map +1 -0
- package/dist/stories/CollapsibleTextMsg.stories.d.ts +16 -0
- package/dist/stories/CollapsibleTextMsg.stories.d.ts.map +1 -0
- package/dist/stories/ConfirmDialog.stories.d.ts +61 -0
- package/dist/stories/ConfirmDialog.stories.d.ts.map +1 -0
- package/dist/stories/FormInfoEditor.stories.d.ts +15 -0
- package/dist/stories/FormInfoEditor.stories.d.ts.map +1 -0
- package/dist/stories/GenerateAnimation.stories.d.ts +16 -0
- package/dist/stories/GenerateAnimation.stories.d.ts.map +1 -0
- package/dist/stories/IconBtn.stories.d.ts +14 -0
- package/dist/stories/IconBtn.stories.d.ts.map +1 -0
- package/dist/stories/IconLib.d.ts +12 -0
- package/dist/stories/IconLib.d.ts.map +1 -0
- package/dist/stories/Icons.stories.d.ts +24 -0
- package/dist/stories/Icons.stories.d.ts.map +1 -0
- package/dist/stories/LineChecker.stories.d.ts +23 -0
- package/dist/stories/LineChecker.stories.d.ts.map +1 -0
- package/dist/stories/LinearGradientBorderBtn.stories.d.ts +22 -0
- package/dist/stories/LinearGradientBorderBtn.stories.d.ts.map +1 -0
- package/dist/stories/LinearGradientColorBgAnimation.stories.d.ts +23 -0
- package/dist/stories/LinearGradientColorBgAnimation.stories.d.ts.map +1 -0
- package/dist/stories/OptionItem.stories.d.ts +20 -0
- package/dist/stories/OptionItem.stories.d.ts.map +1 -0
- package/dist/stories/PreviewerHeader.stories.d.ts +9 -0
- package/dist/stories/PreviewerHeader.stories.d.ts.map +1 -0
- package/dist/stories/PrimaryConfirmBtn.stories.d.ts +16 -0
- package/dist/stories/PrimaryConfirmBtn.stories.d.ts.map +1 -0
- package/dist/stories/PrimaryEntryBtn.stories.d.ts +26 -0
- package/dist/stories/PrimaryEntryBtn.stories.d.ts.map +1 -0
- package/dist/stories/TabRadioGroup.stories.d.ts +18 -0
- package/dist/stories/TabRadioGroup.stories.d.ts.map +1 -0
- package/dist/stories/UserTextMsgBubble.stories.d.ts +14 -0
- package/dist/stories/UserTextMsgBubble.stories.d.ts.map +1 -0
- package/dist/stories/fields-generating.stories.d.ts +14 -0
- package/dist/stories/fields-generating.stories.d.ts.map +1 -0
- package/dist/stories/fields-previewer.stories.d.ts +18 -0
- package/dist/stories/fields-previewer.stories.d.ts.map +1 -0
- package/package.json +76 -0
- package/scripts/inline-style-inject.ts +36 -0
- package/src/chat.tsx +56 -0
- package/src/components/biz-comp/FakeBotMsg.tsx +52 -0
- package/src/components/biz-comp/FieldChecker.tsx +114 -0
- package/src/components/biz-comp/FieldCheckerListMsg.tsx +34 -0
- package/src/components/biz-comp/FieldValueChecker.tsx +98 -0
- package/src/components/biz-comp/SubformFieldsValueChecker.tsx +166 -0
- package/src/components/biz-comp/chat-client.tsx +206 -0
- package/src/components/biz-comp/chat-frame.tsx +25 -0
- package/src/components/biz-comp/conversation.tsx +70 -0
- package/src/components/biz-comp/dock-btn.tsx +52 -0
- package/src/components/biz-comp/field-icon.tsx +8 -0
- package/src/components/biz-comp/markdown-part.tsx +48 -0
- package/src/components/biz-comp/markdown.tsx +36 -0
- package/src/components/biz-comp/message-content.tsx +21 -0
- package/src/components/biz-comp/messages.tsx +42 -0
- package/src/components/biz-comp/multi-modal-input/attachment-btn.tsx +30 -0
- package/src/components/biz-comp/multi-modal-input/clear-btn.tsx +42 -0
- package/src/components/biz-comp/multi-modal-input/index.tsx +422 -0
- package/src/components/biz-comp/multi-modal-input/preview-attachment.tsx +72 -0
- package/src/components/biz-comp/multi-modal-input/prompt-input.tsx +260 -0
- package/src/components/biz-comp/opening-lines.tsx +34 -0
- package/src/components/biz-comp/preview-message-wrapper.tsx +55 -0
- package/src/components/biz-comp/preview-message.tsx +91 -0
- package/src/components/biz-comp/response.tsx +23 -0
- package/src/components/biz-comp/suggestions.tsx +78 -0
- package/src/components/bs-ui/abs-fullscreen-gradient-bg.tsx +34 -0
- package/src/components/bs-ui/attachments-previewer.tsx +229 -0
- package/src/components/bs-ui/border-color-animation.tsx +58 -0
- package/src/components/bs-ui/bot-avatar-name.tsx +25 -0
- package/src/components/bs-ui/bot-icon.tsx +23 -0
- package/src/components/bs-ui/bs-icons.tsx +801 -0
- package/src/components/bs-ui/card.tsx +37 -0
- package/src/components/bs-ui/chat-area-header.tsx +41 -0
- package/src/components/bs-ui/collapsible-txt-msg.tsx +50 -0
- package/src/components/bs-ui/confirm-dialog.tsx +128 -0
- package/src/components/bs-ui/fields-generating-indicator.tsx +50 -0
- package/src/components/bs-ui/fields-portal.tsx +18 -0
- package/src/components/bs-ui/fields-previewer.tsx +109 -0
- package/src/components/bs-ui/font-icon.tsx +17 -0
- package/src/components/bs-ui/form-info-editor.tsx +286 -0
- package/src/components/bs-ui/generate-animation.tsx +54 -0
- package/src/components/bs-ui/icon-btn.tsx +31 -0
- package/src/components/bs-ui/line-checker.tsx +129 -0
- package/src/components/bs-ui/linear-gradient-border-btn.tsx +48 -0
- package/src/components/bs-ui/linear-gradient-color-bg-animation.tsx +103 -0
- package/src/components/bs-ui/option-item.tsx +28 -0
- package/src/components/bs-ui/previewer-header.tsx +134 -0
- package/src/components/bs-ui/primary-confirm-btn.tsx +46 -0
- package/src/components/bs-ui/primary-entry-btn.tsx +37 -0
- package/src/components/bs-ui/tab-radio-group.tsx +73 -0
- package/src/components/bs-ui/tooltip.tsx +18 -0
- package/src/components/bs-ui/user-txt-msg-bubble.tsx +19 -0
- package/src/components/ui/badge.tsx +36 -0
- package/src/components/ui/button.tsx +51 -0
- package/src/components/ui/card.tsx +76 -0
- package/src/components/ui/checkbox.tsx +29 -0
- package/src/components/ui/collapsible.tsx +9 -0
- package/src/components/ui/dialog.tsx +104 -0
- package/src/components/ui/dropdown-menu.tsx +199 -0
- package/src/components/ui/icons.tsx +1288 -0
- package/src/components/ui/input-group.tsx +172 -0
- package/src/components/ui/input.tsx +22 -0
- package/src/components/ui/label.tsx +24 -0
- package/src/components/ui/one-time-click-btn.tsx +32 -0
- package/src/components/ui/select.tsx +157 -0
- package/src/components/ui/spinner.tsx +17 -0
- package/src/components/ui/tabs.tsx +53 -0
- package/src/components/ui/textarea.tsx +22 -0
- package/src/components/ui/tooltip.tsx +34 -0
- package/src/components/web-comp/fields-previewer-web-component.ts +259 -0
- package/src/const/index.ts +61 -0
- package/src/const/ui.ts +7 -0
- package/src/global.d.ts +1 -0
- package/src/hooks/use-evt-bus.ts +11 -0
- package/src/hooks/use-evt.ts +17 -0
- package/src/hooks/use-frame-mode.ts +13 -0
- package/src/hooks/use-plugin-component.ts +12 -0
- package/src/hooks/use-plugin-ctx.ts +12 -0
- package/src/hooks/use-plugin-custom-components.ts +31 -0
- package/src/hooks/use-plugin-life-cycle-chain-runner.ts +26 -0
- package/src/hooks/use-plugin-list.ts +11 -0
- package/src/hooks/use-plugin.ts +11 -0
- package/src/hooks/use-shadow.ts +128 -0
- package/src/index.tsx +10 -0
- package/src/lib/event-emitter.ts +93 -0
- package/src/lib/utils.ts +222 -0
- package/src/plugins/form-builder-base-plugin/const.ts +27 -0
- package/src/plugins/form-builder-base-plugin/index.ts +45 -0
- package/src/plugins/form-builder-base-plugin/types.ts +13 -0
- package/src/plugins/form-filling-plugin/components/FormFillingOpeningLines.tsx +3 -0
- package/src/plugins/form-filling-plugin/components/avatar.tsx +14 -0
- package/src/plugins/form-filling-plugin/components/entry-btn.tsx +15 -0
- package/src/plugins/form-filling-plugin/components/msg-part.tsx +90 -0
- package/src/plugins/form-filling-plugin/const.ts +595 -0
- package/src/plugins/form-filling-plugin/index.ts +135 -0
- package/src/plugins/form-filling-plugin/types.ts +11 -0
- package/src/plugins/form-filling-plugin/utils.ts +63 -0
- package/src/plugins/general-model-form-builder-plugin/components/confirmer.tsx +90 -0
- package/src/plugins/general-model-form-builder-plugin/components/ghost-evt-dispatcher.tsx +69 -0
- package/src/plugins/general-model-form-builder-plugin/components/msg-part.tsx +147 -0
- package/src/plugins/general-model-form-builder-plugin/components/new-confirmer.tsx +191 -0
- package/src/plugins/general-model-form-builder-plugin/const.ts +3 -0
- package/src/plugins/general-model-form-builder-plugin/index.ts +20 -0
- package/src/plugins/general-model-form-builder-plugin/types.ts +1 -0
- package/src/plugins/mcp-form-builder-plugin/components/create-form-confirm.tsx +126 -0
- package/src/plugins/mcp-form-builder-plugin/components/entry-btn.tsx +9 -0
- package/src/plugins/mcp-form-builder-plugin/components/follow-up.tsx +15 -0
- package/src/plugins/mcp-form-builder-plugin/components/msg-part.tsx +135 -0
- package/src/plugins/mcp-form-builder-plugin/const/index.ts +13 -0
- package/src/plugins/mcp-form-builder-plugin/hooks/index.ts +0 -0
- package/src/plugins/mcp-form-builder-plugin/hooks/use-fields-confirmed.ts +12 -0
- package/src/plugins/mcp-form-builder-plugin/index.ts +225 -0
- package/src/plugins/mcp-form-builder-plugin/types.ts +21 -0
- package/src/plugins/mcp-form-builder-plugin/utils/index.ts +450 -0
- package/src/sdk.impl.tsx +108 -0
- package/src/store/context.tsx +22 -0
- package/src/store/index.ts +53 -0
- package/src/stories/AbsFullscreenGradientBg.stories.tsx +36 -0
- package/src/stories/AttachmentsPreviewer.stories.tsx +188 -0
- package/src/stories/BorderColorAnimation.stories.tsx +60 -0
- package/src/stories/BotAvatarAndName.stories.ts +24 -0
- package/src/stories/BotIcon.stories.ts +22 -0
- package/src/stories/BsTooltip.stories.tsx +32 -0
- package/src/stories/Card.stories.tsx +28 -0
- package/src/stories/ChatAreaHeader.stories.ts +26 -0
- package/src/stories/CollapsibleTextMsg.stories.ts +44 -0
- package/src/stories/ConfirmDialog.stories.tsx +123 -0
- package/src/stories/FormInfoEditor.stories.tsx +183 -0
- package/src/stories/GenerateAnimation.stories.ts +20 -0
- package/src/stories/IconBtn.stories.tsx +26 -0
- package/src/stories/IconLib.tsx +47 -0
- package/src/stories/Icons.stories.ts +22 -0
- package/src/stories/LineChecker.stories.tsx +134 -0
- package/src/stories/LinearGradientBorderBtn.stories.tsx +86 -0
- package/src/stories/LinearGradientColorBgAnimation.stories.tsx +60 -0
- package/src/stories/OptionItem.stories.tsx +77 -0
- package/src/stories/PreviewerHeader.stories.tsx +45 -0
- package/src/stories/PrimaryConfirmBtn.stories.ts +37 -0
- package/src/stories/PrimaryEntryBtn.stories.tsx +74 -0
- package/src/stories/TabRadioGroup.stories.tsx +84 -0
- package/src/stories/UserTextMsgBubble.stories.ts +24 -0
- package/src/stories/assets/accessibility.png +0 -0
- package/src/stories/assets/accessibility.svg +1 -0
- package/src/stories/assets/addon-library.png +0 -0
- package/src/stories/assets/assets.png +0 -0
- package/src/stories/assets/avif-test-image.avif +0 -0
- package/src/stories/assets/context.png +0 -0
- package/src/stories/assets/demo.css +539 -0
- package/src/stories/assets/demo_index.html +7988 -0
- package/src/stories/assets/discord.svg +1 -0
- package/src/stories/assets/docs.png +0 -0
- package/src/stories/assets/figma-plugin.png +0 -0
- package/src/stories/assets/github.svg +1 -0
- package/src/stories/assets/iconfont.css +1377 -0
- package/src/stories/assets/iconfont.eot +0 -0
- package/src/stories/assets/iconfont.json +2382 -0
- package/src/stories/assets/iconfont.svg +697 -0
- package/src/stories/assets/iconfont.ttf +0 -0
- package/src/stories/assets/iconfont.woff +0 -0
- package/src/stories/assets/iconfont.woff2 +0 -0
- package/src/stories/assets/share.png +0 -0
- package/src/stories/assets/styling.png +0 -0
- package/src/stories/assets/testing.png +0 -0
- package/src/stories/assets/theming.png +0 -0
- package/src/stories/assets/tutorials.svg +1 -0
- package/src/stories/assets/youtube.svg +1 -0
- package/src/stories/fields-generating.stories.tsx +22 -0
- package/src/stories/fields-previewer.stories.tsx +67 -0
- package/src/style.css +172 -0
- package/stats.html +4949 -0
- package/tailwind.config.js +49 -0
- package/tsconfig.json +13 -0
- package/vite.config.ts +38 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { transCls } from "@/const/ui";
|
|
2
|
+
import { cn } from "@/lib/utils";
|
|
3
|
+
import { ReactNode } from "react";
|
|
4
|
+
|
|
5
|
+
export interface CardProps {
|
|
6
|
+
title: string;
|
|
7
|
+
desc?: string;
|
|
8
|
+
index?: number;
|
|
9
|
+
icon?: ReactNode;
|
|
10
|
+
onClick?: (title: string) => void;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const Card = ({ title, desc, index, icon, onClick }: CardProps) => {
|
|
14
|
+
return (
|
|
15
|
+
<div
|
|
16
|
+
className={cn(
|
|
17
|
+
"bs-card flex flex-col cursor-pointer p-2.5 gap-2.5 rounded-lg bg-[#F5F7FA] max-w-[350px] border border-transparent hover:border-[#e0e0e0]",
|
|
18
|
+
{
|
|
19
|
+
transCls,
|
|
20
|
+
},
|
|
21
|
+
)}
|
|
22
|
+
onClick={() => {
|
|
23
|
+
onClick?.(title);
|
|
24
|
+
}}
|
|
25
|
+
>
|
|
26
|
+
<div className="px-2.5 flex items-center gap-1.5 rounded-[4px] h-[34px] bg-white">
|
|
27
|
+
{index === undefined ? null : <div>{index}</div>}
|
|
28
|
+
{icon === undefined ? null : (
|
|
29
|
+
<div className="text-[#0265FF]">{icon}</div>
|
|
30
|
+
)}
|
|
31
|
+
{/* make title text ellipsis */}
|
|
32
|
+
<div className="truncate">{title}</div>
|
|
33
|
+
</div>
|
|
34
|
+
<div className="text-[#666] leading-5">{desc}</div>
|
|
35
|
+
</div>
|
|
36
|
+
);
|
|
37
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { cn } from '@/lib/utils';
|
|
2
|
+
import { BotIcon } from './bot-icon';
|
|
3
|
+
import { ChatHeaderBgImgUrl } from '@/const/ui';
|
|
4
|
+
import { IconBtn } from './icon-btn';
|
|
5
|
+
import { CloseIcon, DockIcon } from './bs-icons';
|
|
6
|
+
|
|
7
|
+
export interface ChatAreaHeaderProps {
|
|
8
|
+
title?: string;
|
|
9
|
+
width?: number;
|
|
10
|
+
onDockClick?: () => void;
|
|
11
|
+
onCloseClick?: () => void;
|
|
12
|
+
avatar?: React.ReactNode;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const ChatAreaHeader = ({
|
|
16
|
+
avatar,
|
|
17
|
+
width,
|
|
18
|
+
onDockClick,
|
|
19
|
+
onCloseClick,
|
|
20
|
+
}: ChatAreaHeaderProps) => {
|
|
21
|
+
return (
|
|
22
|
+
<div
|
|
23
|
+
className={cn('flex items-center justify-between', 'px-4', 'h-[52px] min-w-[200px]', {
|
|
24
|
+
'w-full': !width,
|
|
25
|
+
[`w-[${width}px]`]: width,
|
|
26
|
+
})}
|
|
27
|
+
style={{
|
|
28
|
+
backgroundImage: ChatHeaderBgImgUrl,
|
|
29
|
+
backgroundSize: 'cover',
|
|
30
|
+
backgroundRepeat: 'no-repeat',
|
|
31
|
+
}}
|
|
32
|
+
>
|
|
33
|
+
{avatar}
|
|
34
|
+
|
|
35
|
+
<div className="actions flex items-center gap-2.5">
|
|
36
|
+
<IconBtn icon={<DockIcon />} onClick={onDockClick} />
|
|
37
|
+
<IconBtn icon={<CloseIcon />} onClick={onCloseClick} />
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
);
|
|
41
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { ReactNode, useState } from "react";
|
|
2
|
+
import { cn } from "@/lib/utils";
|
|
3
|
+
import { transCls } from "@/const/ui";
|
|
4
|
+
import { AnalysisIcon, ChevronIcon } from "./bs-icons";
|
|
5
|
+
|
|
6
|
+
export interface CollapsibleTxtMsgProps {
|
|
7
|
+
title: string;
|
|
8
|
+
content?: string;
|
|
9
|
+
icon?: ReactNode;
|
|
10
|
+
defaultOpen?: boolean;
|
|
11
|
+
children?: ReactNode;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
export const CollapsibleTxtMsg = ({
|
|
16
|
+
title,
|
|
17
|
+
content,
|
|
18
|
+
icon,
|
|
19
|
+
children,
|
|
20
|
+
defaultOpen,
|
|
21
|
+
}: CollapsibleTxtMsgProps) => {
|
|
22
|
+
const [isOpen, setIsOpen] = useState(defaultOpen);
|
|
23
|
+
|
|
24
|
+
return (
|
|
25
|
+
<div className="bg-[#fafafa] border border-[#e0e0e0] border-solid flex flex-col gap-2.5 p-2.5 rounded-[10px] w-full">
|
|
26
|
+
<div className="flex items-center justify-between w-full cursor-pointer" onClick={() => {
|
|
27
|
+
setIsOpen(!isOpen)
|
|
28
|
+
}}>
|
|
29
|
+
<div className="flex gap-1.5 items-center">
|
|
30
|
+
<div className="w-4 h-4 shrink-0">{icon || <AnalysisIcon />}</div>
|
|
31
|
+
<p className="text-[#666] text-[14px] leading-normal">{title}</p>
|
|
32
|
+
</div>
|
|
33
|
+
<button
|
|
34
|
+
onClick={() => setIsOpen(!isOpen)}
|
|
35
|
+
className={cn(
|
|
36
|
+
"flex items-center justify-center w-5 h-5 rounded cursor-pointer",
|
|
37
|
+
transCls
|
|
38
|
+
)}
|
|
39
|
+
>
|
|
40
|
+
<ChevronIcon isOpen={isOpen} />
|
|
41
|
+
</button>
|
|
42
|
+
</div>
|
|
43
|
+
{isOpen && (
|
|
44
|
+
<div className="text-[#030303] text-[14px]">
|
|
45
|
+
{content || children}
|
|
46
|
+
</div>
|
|
47
|
+
)}
|
|
48
|
+
</div>
|
|
49
|
+
);
|
|
50
|
+
};
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Dialog,
|
|
3
|
+
DialogContent,
|
|
4
|
+
DialogDescription,
|
|
5
|
+
DialogFooter,
|
|
6
|
+
DialogHeader,
|
|
7
|
+
DialogTitle,
|
|
8
|
+
} from '@/components/ui/dialog';
|
|
9
|
+
import { QuestionIcon } from './bs-icons';
|
|
10
|
+
import { cn } from '@/lib/utils';
|
|
11
|
+
|
|
12
|
+
export interface ConfirmDialogProps {
|
|
13
|
+
open?: boolean;
|
|
14
|
+
onOpenChange?: (open: boolean) => void;
|
|
15
|
+
title: string;
|
|
16
|
+
description?: string;
|
|
17
|
+
/** Text for the left link button */
|
|
18
|
+
linkText?: string;
|
|
19
|
+
/** Callback when link button is clicked */
|
|
20
|
+
onLinkClick?: () => void;
|
|
21
|
+
/** Text for the cancel button */
|
|
22
|
+
cancelText?: string;
|
|
23
|
+
/** Callback when cancel button is clicked */
|
|
24
|
+
onCancel?: () => void;
|
|
25
|
+
/** Text for the confirm button */
|
|
26
|
+
confirmText?: string;
|
|
27
|
+
/** Callback when confirm button is clicked */
|
|
28
|
+
onConfirm?: () => void;
|
|
29
|
+
/** Whether to show the link button */
|
|
30
|
+
showLink?: boolean;
|
|
31
|
+
/** Whether to show the cancel button */
|
|
32
|
+
showCancel?: boolean;
|
|
33
|
+
/** Container element for the dialog portal */
|
|
34
|
+
container?: HTMLElement;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function ConfirmDialog({
|
|
38
|
+
open,
|
|
39
|
+
onOpenChange,
|
|
40
|
+
title,
|
|
41
|
+
description,
|
|
42
|
+
linkText = '留在此页',
|
|
43
|
+
onLinkClick,
|
|
44
|
+
cancelText = '不保存',
|
|
45
|
+
onCancel,
|
|
46
|
+
confirmText = '保存并继续',
|
|
47
|
+
onConfirm,
|
|
48
|
+
container,
|
|
49
|
+
showLink = true,
|
|
50
|
+
showCancel = true,
|
|
51
|
+
}: ConfirmDialogProps) {
|
|
52
|
+
const btnStyle = {
|
|
53
|
+
borderRadius: 4,
|
|
54
|
+
padding: '6px 20px',
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
return (
|
|
58
|
+
<Dialog open={open} onOpenChange={onOpenChange}>
|
|
59
|
+
<DialogContent
|
|
60
|
+
container={container}
|
|
61
|
+
className={cn(
|
|
62
|
+
'w-[480px] max-w-[480px] p-0 gap-0 rounded-[10px] border-none',
|
|
63
|
+
'shadow-[0px_0px_10px_0px_rgba(0,0,0,0.04)]',
|
|
64
|
+
'[&>button]:hidden'
|
|
65
|
+
)}
|
|
66
|
+
>
|
|
67
|
+
<DialogHeader className="flex flex-row items-start gap-[10px] p-9 pb-0">
|
|
68
|
+
<div className="size-[30px] shrink-0 text-[#0265FF]">
|
|
69
|
+
<QuestionIcon />
|
|
70
|
+
</div>
|
|
71
|
+
<div className="flex flex-col gap-2">
|
|
72
|
+
<DialogTitle className="text-[16px] font-[700] text-[#030303] leading-normal">
|
|
73
|
+
{title}
|
|
74
|
+
</DialogTitle>
|
|
75
|
+
{description && (
|
|
76
|
+
<DialogDescription className="text-[14px] text-[#666] leading-normal">
|
|
77
|
+
{description}
|
|
78
|
+
</DialogDescription>
|
|
79
|
+
)}
|
|
80
|
+
</div>
|
|
81
|
+
</DialogHeader>
|
|
82
|
+
|
|
83
|
+
<DialogFooter className="flex flex-row items-center !justify-between p-9 pt-6">
|
|
84
|
+
{showLink ? (
|
|
85
|
+
<button
|
|
86
|
+
type="button"
|
|
87
|
+
onClick={onLinkClick}
|
|
88
|
+
className="text-[14px] text-[#0265ff] hover:text-[#0265ff]/80 bg-transparent border-none cursor-pointer"
|
|
89
|
+
>
|
|
90
|
+
{linkText}
|
|
91
|
+
</button>
|
|
92
|
+
) : (
|
|
93
|
+
<div />
|
|
94
|
+
)}
|
|
95
|
+
|
|
96
|
+
<div className="flex items-center gap-3">
|
|
97
|
+
{showCancel && (
|
|
98
|
+
<button
|
|
99
|
+
type="button"
|
|
100
|
+
onClick={onCancel}
|
|
101
|
+
style={btnStyle}
|
|
102
|
+
className={cn(
|
|
103
|
+
'h-8 px-5 py-1.5 rounded border border-[#e0e0e0]',
|
|
104
|
+
'text-[14px] text-[#030303] bg-white',
|
|
105
|
+
'hover:bg-gray-50 cursor-pointer'
|
|
106
|
+
)}
|
|
107
|
+
>
|
|
108
|
+
{cancelText}
|
|
109
|
+
</button>
|
|
110
|
+
)}
|
|
111
|
+
<button
|
|
112
|
+
type="button"
|
|
113
|
+
onClick={onConfirm}
|
|
114
|
+
style={btnStyle}
|
|
115
|
+
className={cn(
|
|
116
|
+
'h-8 px-5 py-1.5 rounded',
|
|
117
|
+
'text-[14px] text-white bg-[#0265ff]',
|
|
118
|
+
'hover:bg-[#0265ff]/80 cursor-pointer border-none'
|
|
119
|
+
)}
|
|
120
|
+
>
|
|
121
|
+
{confirmText}
|
|
122
|
+
</button>
|
|
123
|
+
</div>
|
|
124
|
+
</DialogFooter>
|
|
125
|
+
</DialogContent>
|
|
126
|
+
</Dialog>
|
|
127
|
+
);
|
|
128
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { BorderColorAnimation } from './border-color-animation';
|
|
2
|
+
import { MagicIcon } from './bs-icons';
|
|
3
|
+
|
|
4
|
+
export const FieldsGeneratingIndicator = () => {
|
|
5
|
+
return (
|
|
6
|
+
<BorderColorAnimation borderRadius={100} width={136} height={34} borderWidth={1}>
|
|
7
|
+
<div className="flex items-center gap-[6px] h-[31px] ml-[16px]">
|
|
8
|
+
<MagicIcon />
|
|
9
|
+
<span className="text-[14px] text-[#0265FF]">字段生成中</span>
|
|
10
|
+
<div className="flex gap-[2px] flex-shrink-0 relative -left-[4px] top-[3px]">
|
|
11
|
+
<div
|
|
12
|
+
className="w-[2px] h-[2px] rounded-full bg-[#0265FF] flex-shrink-0"
|
|
13
|
+
style={{
|
|
14
|
+
animation: 'pulse 1.4s ease-in-out infinite',
|
|
15
|
+
animationDelay: '0s',
|
|
16
|
+
marginRight: '2px',
|
|
17
|
+
}}
|
|
18
|
+
/>
|
|
19
|
+
<div
|
|
20
|
+
className="w-[2px] h-[2px] rounded-full bg-[#0265FF] flex-shrink-0"
|
|
21
|
+
style={{
|
|
22
|
+
animation: 'pulse 1.4s ease-in-out infinite',
|
|
23
|
+
animationDelay: '0.2s',
|
|
24
|
+
marginRight: '2px',
|
|
25
|
+
}}
|
|
26
|
+
/>
|
|
27
|
+
<div
|
|
28
|
+
className="w-[2px] h-[2px] rounded-full bg-[#0265FF] flex-shrink-0"
|
|
29
|
+
style={{
|
|
30
|
+
animation: 'pulse 1.4s ease-in-out infinite',
|
|
31
|
+
animationDelay: '0.4s',
|
|
32
|
+
}}
|
|
33
|
+
/>
|
|
34
|
+
</div>
|
|
35
|
+
<style>{`
|
|
36
|
+
@keyframes pulse {
|
|
37
|
+
0%, 60%, 100% {
|
|
38
|
+
opacity: 0.3;
|
|
39
|
+
transform: scale(1);
|
|
40
|
+
}
|
|
41
|
+
30% {
|
|
42
|
+
opacity: 1;
|
|
43
|
+
transform: scale(1.2);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
`}</style>
|
|
47
|
+
</div>
|
|
48
|
+
</BorderColorAnimation>
|
|
49
|
+
);
|
|
50
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useShadow } from '@/hooks/use-shadow';
|
|
2
|
+
import { createPortal } from 'react-dom';
|
|
3
|
+
import { FieldsPreviewer, FieldsPreviewerProps } from './fields-previewer';
|
|
4
|
+
import { ReactPortal } from 'react';
|
|
5
|
+
|
|
6
|
+
export interface FieldsPortalProps extends FieldsPreviewerProps {
|
|
7
|
+
portalEl: HTMLElement;
|
|
8
|
+
children?: React.ReactNode;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const FieldsPortal = ({ portalEl, children, ...rest }: FieldsPortalProps): ReactPortal => {
|
|
12
|
+
const { shadowContainer: shadowEntry } = useShadow({
|
|
13
|
+
rootEl: portalEl,
|
|
14
|
+
id: 'chat-sdk-fields-portal',
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
return createPortal(<FieldsPreviewer {...rest}>{children}</FieldsPreviewer>, shadowEntry!);
|
|
18
|
+
};
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import classNames from 'classnames';
|
|
2
|
+
import { useRef } from 'react';
|
|
3
|
+
import { AbsFullscreenGradientBg } from './abs-fullscreen-gradient-bg';
|
|
4
|
+
import { BorderColorAnimation } from './border-color-animation';
|
|
5
|
+
import { FieldsGeneratingIndicator } from './fields-generating-indicator';
|
|
6
|
+
import { PreviewerHeader, PreviewerHeaderProps } from './previewer-header';
|
|
7
|
+
|
|
8
|
+
export interface FieldsPreviewerProps extends PreviewerHeaderProps {
|
|
9
|
+
fullscreen?: boolean;
|
|
10
|
+
|
|
11
|
+
rightSpaceWidth?: number;
|
|
12
|
+
|
|
13
|
+
// generating fields
|
|
14
|
+
streaming?: boolean;
|
|
15
|
+
|
|
16
|
+
empty?: boolean;
|
|
17
|
+
|
|
18
|
+
zIndex?: number;
|
|
19
|
+
|
|
20
|
+
padding?: number;
|
|
21
|
+
|
|
22
|
+
// children means the content inside the previewer, not the right side components
|
|
23
|
+
children?: React.ReactNode;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const PlaceholderDashedBox = () => {
|
|
27
|
+
return (
|
|
28
|
+
<div
|
|
29
|
+
style={{
|
|
30
|
+
borderRadius: 10,
|
|
31
|
+
width: '100%',
|
|
32
|
+
height: '100%',
|
|
33
|
+
border: '1px dashed var(---e0e0e0, #E0E0E0)',
|
|
34
|
+
}}
|
|
35
|
+
/>
|
|
36
|
+
);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export const FieldsPreviewer = ({
|
|
40
|
+
zIndex = 1,
|
|
41
|
+
children,
|
|
42
|
+
title,
|
|
43
|
+
tips,
|
|
44
|
+
active,
|
|
45
|
+
fullscreen,
|
|
46
|
+
padding = 10,
|
|
47
|
+
className,
|
|
48
|
+
empty,
|
|
49
|
+
rightSpaceWidth,
|
|
50
|
+
streaming,
|
|
51
|
+
onBackClick,
|
|
52
|
+
onSave,
|
|
53
|
+
onCancel,
|
|
54
|
+
style,
|
|
55
|
+
}: FieldsPreviewerProps) => {
|
|
56
|
+
const p = fullscreen ? 0 : padding;
|
|
57
|
+
const pr = fullscreen ? 0 : rightSpaceWidth;
|
|
58
|
+
|
|
59
|
+
const absWrapperRef = useRef<HTMLDivElement>(null);
|
|
60
|
+
|
|
61
|
+
const contentJsx = (
|
|
62
|
+
<>
|
|
63
|
+
<PreviewerHeader
|
|
64
|
+
title={title}
|
|
65
|
+
tips={tips}
|
|
66
|
+
active={active}
|
|
67
|
+
className={className}
|
|
68
|
+
onBackClick={onBackClick}
|
|
69
|
+
onSave={streaming ? undefined : onSave}
|
|
70
|
+
onCancel={streaming ? undefined : onCancel}
|
|
71
|
+
style={style}
|
|
72
|
+
dialogContainer={absWrapperRef.current!}
|
|
73
|
+
/>
|
|
74
|
+
<div
|
|
75
|
+
className={classNames(
|
|
76
|
+
'm-[20px] w-[calc(100%-40px)] h-[calc(100%-90px)] relative p-[10px] overflow-x-hidden overflow-y-auto',
|
|
77
|
+
{
|
|
78
|
+
'opacity-60': streaming,
|
|
79
|
+
}
|
|
80
|
+
)}
|
|
81
|
+
>
|
|
82
|
+
{empty ? <PlaceholderDashedBox /> : children}
|
|
83
|
+
</div>
|
|
84
|
+
{streaming && (
|
|
85
|
+
// abs center
|
|
86
|
+
<div className="absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2">
|
|
87
|
+
<FieldsGeneratingIndicator />
|
|
88
|
+
</div>
|
|
89
|
+
)}
|
|
90
|
+
</>
|
|
91
|
+
);
|
|
92
|
+
|
|
93
|
+
return (
|
|
94
|
+
<AbsFullscreenGradientBg
|
|
95
|
+
zIndex={zIndex}
|
|
96
|
+
padding={p}
|
|
97
|
+
disableGradient={fullscreen}
|
|
98
|
+
ref={absWrapperRef}
|
|
99
|
+
>
|
|
100
|
+
{fullscreen ? (
|
|
101
|
+
contentJsx
|
|
102
|
+
) : (
|
|
103
|
+
<BorderColorAnimation width={pr ? `calc(100% - ${pr}px)` : '100%'}>
|
|
104
|
+
{contentJsx}
|
|
105
|
+
</BorderColorAnimation>
|
|
106
|
+
)}
|
|
107
|
+
</AbsFullscreenGradientBg>
|
|
108
|
+
);
|
|
109
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export const FontIcon = ({
|
|
2
|
+
code,
|
|
3
|
+
className,
|
|
4
|
+
style,
|
|
5
|
+
}: {
|
|
6
|
+
code: string;
|
|
7
|
+
className?: string;
|
|
8
|
+
style?: React.CSSProperties;
|
|
9
|
+
}) => {
|
|
10
|
+
return (
|
|
11
|
+
<i
|
|
12
|
+
className={`sdk-icon ${className || ''}`}
|
|
13
|
+
style={style}
|
|
14
|
+
dangerouslySetInnerHTML={{ __html: code }}
|
|
15
|
+
/>
|
|
16
|
+
);
|
|
17
|
+
};
|