@lobehub/ui 4.33.3 → 4.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/es/A/index.mjs.map +1 -1
- package/es/Accordion/Accordion.d.mts +2 -2
- package/es/Accordion/Accordion.mjs +3 -3
- package/es/Accordion/Accordion.mjs.map +1 -1
- package/es/Accordion/AccordionItem.d.mts +2 -2
- package/es/Accordion/AccordionItem.mjs +15 -15
- package/es/Accordion/AccordionItem.mjs.map +1 -1
- package/es/Accordion/context.mjs +2 -2
- package/es/Accordion/context.mjs.map +1 -1
- package/es/ActionIcon/ActionIcon.d.mts +2 -2
- package/es/ActionIcon/ActionIcon.mjs +2 -2
- package/es/ActionIcon/ActionIcon.mjs.map +1 -1
- package/es/ActionIcon/style.mjs.map +1 -1
- package/es/ActionIconGroup/ActionIconGroup.mjs +3 -3
- package/es/ActionIconGroup/ActionIconGroup.mjs.map +1 -1
- package/es/ActionIconGroup/style.mjs.map +1 -1
- package/es/Alert/Alert.d.mts +2 -2
- package/es/Alert/Alert.mjs +6 -6
- package/es/Alert/Alert.mjs.map +1 -1
- package/es/Alert/style.mjs.map +1 -1
- package/es/AutoComplete/Select.d.mts +2 -2
- package/es/AutoComplete/Select.mjs +1 -1
- package/es/AutoComplete/Select.mjs.map +1 -1
- package/es/AutoComplete/style.mjs.map +1 -1
- package/es/Avatar/Avatar.mjs +4 -4
- package/es/Avatar/Avatar.mjs.map +1 -1
- package/es/Avatar/AvatarGroup/index.d.mts +2 -2
- package/es/Avatar/AvatarGroup/index.mjs +5 -5
- package/es/Avatar/AvatarGroup/index.mjs.map +1 -1
- package/es/Avatar/index.mjs.map +1 -1
- package/es/Avatar/style.mjs.map +1 -1
- package/es/Avatar/utils.mjs.map +1 -1
- package/es/Block/style.mjs.map +1 -1
- package/es/Burger/Burger.d.mts +2 -2
- package/es/Burger/Burger.mjs +2 -2
- package/es/Burger/Burger.mjs.map +1 -1
- package/es/Burger/type.d.mts +1 -1
- package/es/Button/Button.mjs +7 -7
- package/es/Button/Button.mjs.map +1 -1
- package/es/Button/style.mjs.map +1 -1
- package/es/Checkbox/Checkbox.mjs +8 -8
- package/es/Checkbox/Checkbox.mjs.map +1 -1
- package/es/Checkbox/CheckboxGroup.mjs +4 -4
- package/es/Checkbox/CheckboxGroup.mjs.map +1 -1
- package/es/Checkbox/index.mjs.map +1 -1
- package/es/CodeDiff/CodeDiff.d.mts +2 -2
- package/es/CodeDiff/CodeDiff.mjs +3 -3
- package/es/CodeDiff/CodeDiff.mjs.map +1 -1
- package/es/CodeDiff/PatchDiff.d.mts +2 -2
- package/es/CodeDiff/PatchDiff.mjs +3 -3
- package/es/CodeDiff/PatchDiff.mjs.map +1 -1
- package/es/CodeDiff/style.mjs.map +1 -1
- package/es/CodeEditor/CodeEditor.d.mts +2 -2
- package/es/CodeEditor/CodeEditor.mjs +5 -5
- package/es/CodeEditor/CodeEditor.mjs.map +1 -1
- package/es/CodeEditor/style.mjs.map +1 -1
- package/es/Collapse/Collapse.d.mts +2 -2
- package/es/Collapse/Collapse.mjs +5 -5
- package/es/Collapse/Collapse.mjs.map +1 -1
- package/es/Collapse/style.mjs.map +1 -1
- package/es/ColorSwatches/ColorSwatches.mjs +11 -11
- package/es/ColorSwatches/ColorSwatches.mjs.map +1 -1
- package/es/ConfigProvider/index.d.mts +3 -3
- package/es/ConfigProvider/index.mjs.map +1 -1
- package/es/ContextMenu/ContextMenuHost.d.mts +3 -3
- package/es/ContextMenu/ContextMenuHost.mjs +10 -3
- package/es/ContextMenu/ContextMenuHost.mjs.map +1 -1
- package/es/ContextMenu/ContextMenuTrigger.mjs.map +1 -1
- package/es/ContextMenu/renderItems.d.mts +1 -1
- package/es/ContextMenu/renderItems.mjs +39 -14
- package/es/ContextMenu/renderItems.mjs.map +1 -1
- package/es/ContextMenu/store.d.mts +3 -1
- package/es/ContextMenu/store.mjs +1 -0
- package/es/ContextMenu/store.mjs.map +1 -1
- package/es/CopyButton/CopyButton.d.mts +2 -2
- package/es/DatePicker/DatePicker.d.mts +2 -2
- package/es/DatePicker/DatePicker.mjs +1 -1
- package/es/DatePicker/DatePicker.mjs.map +1 -1
- package/es/DatePicker/style.mjs.map +1 -1
- package/es/DraggablePanel/DraggablePanel.mjs +9 -9
- package/es/DraggablePanel/DraggablePanel.mjs.map +1 -1
- package/es/DraggablePanel/components/DraggablePanelBody.d.mts +2 -2
- package/es/DraggablePanel/components/DraggablePanelContainer.d.mts +2 -2
- package/es/DraggablePanel/components/DraggablePanelFooter.d.mts +2 -2
- package/es/DraggablePanel/components/DraggablePanelFooter.mjs +1 -1
- package/es/DraggablePanel/components/DraggablePanelFooter.mjs.map +1 -1
- package/es/DraggablePanel/components/DraggablePanelHeader.d.mts +2 -2
- package/es/DraggablePanel/components/DraggablePanelHeader.mjs +7 -7
- package/es/DraggablePanel/components/DraggablePanelHeader.mjs.map +1 -1
- package/es/DraggablePanel/index.mjs +1 -1
- package/es/DraggablePanel/index.mjs.map +1 -1
- package/es/DraggablePanel/style.mjs.map +1 -1
- package/es/DraggableSideNav/DraggableSideNav.d.mts +2 -2
- package/es/DraggableSideNav/DraggableSideNav.mjs +5 -5
- package/es/DraggableSideNav/DraggableSideNav.mjs.map +1 -1
- package/es/Drawer/Drawer.d.mts +2 -2
- package/es/Drawer/Drawer.mjs +5 -5
- package/es/Drawer/Drawer.mjs.map +1 -1
- package/es/Dropdown/Dropdown.d.mts +2 -2
- package/es/DropdownMenu/DropdownMenu.d.mts +2 -2
- package/es/DropdownMenu/DropdownMenu.mjs +7 -3
- package/es/DropdownMenu/DropdownMenu.mjs.map +1 -1
- package/es/DropdownMenu/atoms.d.mts +33 -17
- package/es/DropdownMenu/atoms.mjs +20 -6
- package/es/DropdownMenu/atoms.mjs.map +1 -1
- package/es/DropdownMenu/index.d.mts +2 -2
- package/es/DropdownMenu/index.mjs +2 -2
- package/es/DropdownMenu/renderItems.d.mts +1 -1
- package/es/DropdownMenu/renderItems.mjs +36 -14
- package/es/DropdownMenu/renderItems.mjs.map +1 -1
- package/es/DropdownMenu/type.d.mts +8 -1
- package/es/EditableText/ControlInput.mjs +29 -29
- package/es/EditableText/ControlInput.mjs.map +1 -1
- package/es/EditableText/EditableText.d.mts +2 -2
- package/es/EditableText/EditableText.mjs +16 -16
- package/es/EditableText/EditableText.mjs.map +1 -1
- package/es/EditorSlashMenu/EditorSlashMenu.mjs +2 -2
- package/es/EditorSlashMenu/EditorSlashMenu.mjs.map +1 -1
- package/es/EditorSlashMenu/MenuItemRenderer.mjs +1 -1
- package/es/EditorSlashMenu/MenuItemRenderer.mjs.map +1 -1
- package/es/EditorSlashMenu/atoms.d.mts +22 -13
- package/es/EditorSlashMenu/atoms.mjs +3 -4
- package/es/EditorSlashMenu/atoms.mjs.map +1 -1
- package/es/EmojiPicker/AvatarUploader.mjs +5 -5
- package/es/EmojiPicker/AvatarUploader.mjs.map +1 -1
- package/es/EmojiPicker/EmojiPicker.d.mts +2 -2
- package/es/EmojiPicker/EmojiPicker.mjs +23 -23
- package/es/EmojiPicker/EmojiPicker.mjs.map +1 -1
- package/es/Empty/Empty.mjs +2 -2
- package/es/Empty/Empty.mjs.map +1 -1
- package/es/FileTypeIcon/components/FileIcon.mjs.map +1 -1
- package/es/FileTypeIcon/components/FolderIcon.mjs.map +1 -1
- package/es/Flex/FlexBasic.d.mts +2 -2
- package/es/FluentEmoji/FluentEmoji.mjs +1 -1
- package/es/FluentEmoji/FluentEmoji.mjs.map +1 -1
- package/es/FontLoader/index.d.mts +2 -2
- package/es/Footer/Footer.d.mts +2 -2
- package/es/Footer/Footer.mjs +1 -1
- package/es/Footer/Footer.mjs.map +1 -1
- package/es/Form/Form.mjs +12 -12
- package/es/Form/Form.mjs.map +1 -1
- package/es/Form/components/FormGroup.d.mts +2 -2
- package/es/Form/components/FormGroup.mjs +5 -5
- package/es/Form/components/FormGroup.mjs.map +1 -1
- package/es/Form/components/FormItem.d.mts +2 -2
- package/es/Form/components/FormProvider.mjs.map +1 -1
- package/es/Form/components/FormSubmitFooter.d.mts +2 -2
- package/es/Form/components/FormSubmitFooter.mjs +5 -5
- package/es/Form/components/FormSubmitFooter.mjs.map +1 -1
- package/es/Form/components/FormTitle.mjs +1 -1
- package/es/Form/components/FormTitle.mjs.map +1 -1
- package/es/Form/components/merge.mjs.map +1 -1
- package/es/Form/index.mjs +1 -1
- package/es/Form/index.mjs.map +1 -1
- package/es/Form/style.mjs.map +1 -1
- package/es/Form/type.d.mts +1 -1
- package/es/FormModal/FormModal.d.mts +2 -2
- package/es/FormModal/FormModal.mjs +10 -10
- package/es/FormModal/FormModal.mjs.map +1 -1
- package/es/GroupAvatar/style.mjs.map +1 -1
- package/es/GroupAvatar/type.d.mts +1 -1
- package/es/GuideCard/GuideCard.d.mts +2 -2
- package/es/GuideCard/style.mjs.map +1 -1
- package/es/Header/Header.d.mts +2 -2
- package/es/Header/Header.mjs +5 -5
- package/es/Header/Header.mjs.map +1 -1
- package/es/Highlighter/FullFeatured.mjs +9 -9
- package/es/Highlighter/FullFeatured.mjs.map +1 -1
- package/es/Highlighter/Highlighter.d.mts +2 -2
- package/es/Highlighter/Highlighter.mjs +4 -4
- package/es/Highlighter/Highlighter.mjs.map +1 -1
- package/es/Highlighter/LangSelect.mjs +6 -6
- package/es/Highlighter/LangSelect.mjs.map +1 -1
- package/es/Highlighter/SyntaxHighlighter/StaticRenderer.mjs +2 -2
- package/es/Highlighter/SyntaxHighlighter/StaticRenderer.mjs.map +1 -1
- package/es/Highlighter/SyntaxHighlighter/index.d.mts +2 -2
- package/es/Highlighter/SyntaxHighlighter/style.mjs.map +1 -1
- package/es/Highlighter/style.mjs.map +1 -1
- package/es/Hotkey/Hotkey.d.mts +2 -2
- package/es/Hotkey/Hotkey.mjs +5 -5
- package/es/Hotkey/Hotkey.mjs.map +1 -1
- package/es/Hotkey/style.mjs.map +1 -1
- package/es/HotkeyInput/HotkeyInput.d.mts +2 -2
- package/es/HotkeyInput/HotkeyInput.mjs +10 -10
- package/es/HotkeyInput/HotkeyInput.mjs.map +1 -1
- package/es/HotkeyInput/style.mjs.map +1 -1
- package/es/Icon/Icon.d.mts +2 -2
- package/es/Icon/Icon.mjs.map +1 -1
- package/es/Icon/components/IconProvider.d.mts +3 -3
- package/es/Icon/components/IconProvider.mjs.map +1 -1
- package/es/Icon/style.mjs.map +1 -1
- package/es/Image/Image.mjs +3 -3
- package/es/Image/Image.mjs.map +1 -1
- package/es/Image/PreviewGroup.d.mts +2 -2
- package/es/Image/PreviewGroup.mjs.map +1 -1
- package/es/Image/components/Preview.mjs.map +1 -1
- package/es/Image/components/Toolbar.mjs +1 -1
- package/es/Image/components/Toolbar.mjs.map +1 -1
- package/es/Image/components/usePreviewGroup.mjs.map +1 -1
- package/es/Image/style.mjs.map +1 -1
- package/es/ImageSelect/ImageSelect.d.mts +2 -2
- package/es/ImageSelect/ImageSelect.mjs +7 -7
- package/es/ImageSelect/ImageSelect.mjs.map +1 -1
- package/es/Img/index.mjs.map +1 -1
- package/es/Input/Input.d.mts +2 -2
- package/es/Input/Input.mjs +2 -2
- package/es/Input/Input.mjs.map +1 -1
- package/es/Input/InputNumber.d.mts +2 -2
- package/es/Input/InputNumber.mjs +2 -2
- package/es/Input/InputNumber.mjs.map +1 -1
- package/es/Input/InputOPT.mjs +2 -2
- package/es/Input/InputOPT.mjs.map +1 -1
- package/es/Input/InputPassword.d.mts +2 -2
- package/es/Input/InputPassword.mjs +2 -2
- package/es/Input/InputPassword.mjs.map +1 -1
- package/es/Input/TextArea.d.mts +2 -2
- package/es/Input/TextArea.mjs +2 -2
- package/es/Input/TextArea.mjs.map +1 -1
- package/es/Input/style.mjs.map +1 -1
- package/es/Layout/Layout.mjs +1 -1
- package/es/Layout/Layout.mjs.map +1 -1
- package/es/Layout/components/LayoutFooter.d.mts +2 -2
- package/es/Layout/components/LayoutHeader.d.mts +2 -2
- package/es/Layout/components/LayoutMain.d.mts +2 -2
- package/es/Layout/components/LayoutSidebar.d.mts +2 -2
- package/es/Layout/components/LayoutSidebarInner.d.mts +2 -2
- package/es/Layout/components/LayoutToc.d.mts +2 -2
- package/es/Layout/index.mjs.map +1 -1
- package/es/List/List.mjs +6 -6
- package/es/List/List.mjs.map +1 -1
- package/es/List/ListItem/index.d.mts +2 -2
- package/es/List/ListItem/index.mjs +11 -11
- package/es/List/ListItem/index.mjs.map +1 -1
- package/es/LobeSelect/LobeSelect.d.mts +2 -2
- package/es/LobeSelect/LobeSelect.mjs +16 -16
- package/es/LobeSelect/LobeSelect.mjs.map +1 -1
- package/es/LobeSelect/atoms.d.mts +19 -19
- package/es/LobeSelect/atoms.mjs +1 -1
- package/es/LobeSelect/atoms.mjs.map +1 -1
- package/es/LobeSwitch/LobeSwitch.d.mts +2 -2
- package/es/LobeSwitch/LobeSwitch.mjs +2 -2
- package/es/LobeSwitch/LobeSwitch.mjs.map +1 -1
- package/es/LobeSwitch/atoms.d.mts +4 -4
- package/es/LobeSwitch/atoms.mjs +10 -10
- package/es/LobeSwitch/atoms.mjs.map +1 -1
- package/es/Markdown/Markdown.d.mts +2 -2
- package/es/Markdown/Markdown.mjs +3 -3
- package/es/Markdown/Markdown.mjs.map +1 -1
- package/es/Markdown/SyntaxMarkdown/StreamdownRender.mjs.map +1 -1
- package/es/Markdown/Typography.d.mts +2 -2
- package/es/Markdown/components/CodeBlock.mjs.map +1 -1
- package/es/Markdown/components/Footnotes.mjs +3 -3
- package/es/Markdown/components/Footnotes.mjs.map +1 -1
- package/es/Markdown/components/MarkdownProvider.mjs.map +1 -1
- package/es/Markdown/components/SearchResultCards/SearchResultCard.mjs +3 -3
- package/es/Markdown/components/SearchResultCards/SearchResultCard.mjs.map +1 -1
- package/es/Markdown/components/SearchResultCards/index.d.mts +2 -2
- package/es/Markdown/components/SearchResultCards/index.mjs +1 -1
- package/es/Markdown/components/SearchResultCards/index.mjs.map +1 -1
- package/es/Markdown/plugins/rehypeCustomFootnotes.mjs.map +1 -1
- package/es/Markdown/plugins/rehypeKatexDir.mjs.map +1 -1
- package/es/Markdown/plugins/rehypeStreamAnimated.mjs.map +1 -1
- package/es/Markdown/plugins/remarkColor.mjs +1 -1
- package/es/Markdown/plugins/remarkColor.mjs.map +1 -1
- package/es/Markdown/plugins/remarkCustomFootnotes.mjs.map +1 -1
- package/es/Markdown/plugins/remarkVideo.mjs +3 -3
- package/es/Markdown/plugins/remarkVideo.mjs.map +1 -1
- package/es/Markdown/style.mjs.map +1 -1
- package/es/MaskShadow/MaskShadow.d.mts +2 -2
- package/es/MaskShadow/style.mjs.map +1 -1
- package/es/Menu/Menu.d.mts +2 -2
- package/es/Menu/Menu.mjs.map +1 -1
- package/es/Menu/checkboxItem.d.mts +1 -0
- package/es/Menu/index.d.mts +2 -2
- package/es/Menu/renderUtils.d.mts +4 -1
- package/es/Menu/renderUtils.mjs.map +1 -1
- package/es/Menu/sharedStyle.d.mts +4 -0
- package/es/Menu/sharedStyle.mjs +24 -0
- package/es/Menu/sharedStyle.mjs.map +1 -1
- package/es/Menu/style.mjs.map +1 -1
- package/es/Menu/switchItem.d.mts +1 -0
- package/es/Menu/type.d.mts +3 -1
- package/es/Mermaid/FullFeatured.mjs +7 -7
- package/es/Mermaid/FullFeatured.mjs.map +1 -1
- package/es/Mermaid/Mermaid.d.mts +2 -2
- package/es/Mermaid/Mermaid.mjs +1 -1
- package/es/Mermaid/Mermaid.mjs.map +1 -1
- package/es/Mermaid/SyntaxMermaid/StaticMermaid.mjs +3 -3
- package/es/Mermaid/SyntaxMermaid/StaticMermaid.mjs.map +1 -1
- package/es/Mermaid/SyntaxMermaid/StreamMermaid.mjs +3 -3
- package/es/Mermaid/SyntaxMermaid/StreamMermaid.mjs.map +1 -1
- package/es/Mermaid/SyntaxMermaid/index.d.mts +2 -2
- package/es/Mermaid/SyntaxMermaid/style.mjs.map +1 -1
- package/es/Modal/Modal.d.mts +2 -2
- package/es/Modal/Modal.mjs +25 -25
- package/es/Modal/Modal.mjs.map +1 -1
- package/es/Modal/ModalProvider.d.mts +2 -2
- package/es/Modal/ModalStackItem.mjs +1 -1
- package/es/Modal/ModalStackItem.mjs.map +1 -1
- package/es/Modal/imperative.d.mts +2 -2
- package/es/Modal/imperative.mjs +5 -5
- package/es/Modal/imperative.mjs.map +1 -1
- package/es/MotionProvider/index.d.mts +2 -2
- package/es/MotionProvider/index.mjs.map +1 -1
- package/es/Popover/ArrowIcon.d.mts +2 -2
- package/es/Popover/Popover.mjs +2 -2
- package/es/Popover/Popover.mjs.map +1 -1
- package/es/Popover/PopoverGroup.mjs +2 -2
- package/es/Popover/PopoverGroup.mjs.map +1 -1
- package/es/Popover/PopoverInGroup.mjs +2 -2
- package/es/Popover/PopoverInGroup.mjs.map +1 -1
- package/es/Popover/PopoverStandalone.mjs +1 -1
- package/es/Popover/PopoverStandalone.mjs.map +1 -1
- package/es/Popover/atoms.d.mts +9 -9
- package/es/Popover/atoms.mjs +1 -1
- package/es/Popover/atoms.mjs.map +1 -1
- package/es/Popover/context.d.mts +2 -2
- package/es/Popover/context.mjs.map +1 -1
- package/es/Popover/groupContext.mjs.map +1 -1
- package/es/ScrollArea/atoms.d.mts +7 -7
- package/es/ScrollArea/type.d.mts +1 -1
- package/es/ScrollShadow/style.mjs.map +1 -1
- package/es/ScrollShadow/useScrollOverflow.mjs.map +1 -1
- package/es/SearchBar/SearchBar.d.mts +2 -2
- package/es/SearchBar/SearchBar.mjs +14 -14
- package/es/SearchBar/SearchBar.mjs.map +1 -1
- package/es/Segmented/Segmented.d.mts +2 -2
- package/es/Segmented/style.mjs.map +1 -1
- package/es/Select/Select.d.mts +2 -2
- package/es/Select/Select.mjs +2 -2
- package/es/Select/Select.mjs.map +1 -1
- package/es/Select/style.mjs.map +1 -1
- package/es/SideNav/SideNav.d.mts +2 -2
- package/es/Skeleton/Skeleton.mjs +1 -1
- package/es/Skeleton/Skeleton.mjs.map +1 -1
- package/es/Skeleton/SkeletonBlock.mjs.map +1 -1
- package/es/Skeleton/SkeletonTags.mjs +3 -3
- package/es/Skeleton/SkeletonTags.mjs.map +1 -1
- package/es/Skeleton/SkeletonTitle.mjs +1 -1
- package/es/Skeleton/SkeletonTitle.mjs.map +1 -1
- package/es/SliderWithInput/SliderWithInput.d.mts +2 -2
- package/es/SliderWithInput/SliderWithInput.mjs +3 -3
- package/es/SliderWithInput/SliderWithInput.mjs.map +1 -1
- package/es/Snippet/Snippet.mjs +1 -1
- package/es/Snippet/Snippet.mjs.map +1 -1
- package/es/Snippet/style.mjs.map +1 -1
- package/es/SortableList/SortableList.mjs +1 -1
- package/es/SortableList/SortableList.mjs.map +1 -1
- package/es/SortableList/components/DragHandle.d.mts +2 -2
- package/es/SortableList/components/DragHandle.mjs +3 -3
- package/es/SortableList/components/DragHandle.mjs.map +1 -1
- package/es/SortableList/components/SortableItem.d.mts +2 -2
- package/es/SortableList/components/SortableItem.mjs +1 -1
- package/es/SortableList/components/SortableItem.mjs.map +1 -1
- package/es/SortableList/components/SortableOverlay.mjs.map +1 -1
- package/es/SortableList/style.mjs.map +1 -1
- package/es/SortableList/type.d.mts +2 -2
- package/es/Tabs/style.mjs.map +1 -1
- package/es/Tag/Tag.mjs +2 -2
- package/es/Tag/Tag.mjs.map +1 -1
- package/es/Tag/styles.mjs.map +1 -1
- package/es/Text/Text.mjs +27 -14
- package/es/Text/Text.mjs.map +1 -1
- package/es/Text/type.d.mts +18 -1
- package/es/ThemeProvider/ConfigProvider.mjs.map +1 -1
- package/es/ThemeProvider/GlobalStyle/antdOverride.mjs.map +1 -1
- package/es/ThemeProvider/GlobalStyle/global.mjs.map +1 -1
- package/es/ThemeProvider/ThemeProvider.d.mts +2 -2
- package/es/ThemeProvider/ThemeProvider.mjs.map +1 -1
- package/es/ThemeSwitch/ThemeSwitch.mjs +4 -4
- package/es/ThemeSwitch/ThemeSwitch.mjs.map +1 -1
- package/es/Toast/Toast.mjs +3 -3
- package/es/Toast/Toast.mjs.map +1 -1
- package/es/Toast/imperative.d.mts +3 -3
- package/es/Toast/imperative.mjs +1 -1
- package/es/Toast/imperative.mjs.map +1 -1
- package/es/Toc/Toc.d.mts +2 -2
- package/es/Toc/Toc.mjs.map +1 -1
- package/es/Toc/TocMobile.mjs +6 -6
- package/es/Toc/TocMobile.mjs.map +1 -1
- package/es/Toc/utils.mjs.map +1 -1
- package/es/Tooltip/Tooltip.mjs +2 -2
- package/es/Tooltip/Tooltip.mjs.map +1 -1
- package/es/Tooltip/TooltipContent.mjs.map +1 -1
- package/es/Tooltip/TooltipGroup.mjs +3 -3
- package/es/Tooltip/TooltipGroup.mjs.map +1 -1
- package/es/Tooltip/TooltipInGroup.mjs +3 -3
- package/es/Tooltip/TooltipInGroup.mjs.map +1 -1
- package/es/Tooltip/TooltipStandalone.mjs +2 -2
- package/es/Tooltip/TooltipStandalone.mjs.map +1 -1
- package/es/Tooltip/groupContext.mjs.map +1 -1
- package/es/Tooltip/type.d.mts +1 -1
- package/es/Video/index.d.mts +2 -2
- package/es/Video/index.mjs +8 -8
- package/es/Video/index.mjs.map +1 -1
- package/es/Video/style.mjs.map +1 -1
- package/es/awesome/AuroraBackground/AuroraBackground.d.mts +2 -2
- package/es/awesome/BottomGradientButton/BottomGradientButton.d.mts +2 -2
- package/es/awesome/BottomGradientButton/BottomGradientButton.mjs +1 -1
- package/es/awesome/BottomGradientButton/BottomGradientButton.mjs.map +1 -1
- package/es/awesome/Features/FeatureItem.mjs +1 -1
- package/es/awesome/Features/FeatureItem.mjs.map +1 -1
- package/es/awesome/Features/Features.d.mts +2 -2
- package/es/awesome/Features/Features.mjs +4 -4
- package/es/awesome/Features/Features.mjs.map +1 -1
- package/es/awesome/Features/type.d.mts +1 -1
- package/es/awesome/Giscus/Giscus.d.mts +2 -2
- package/es/awesome/GradientButton/GradientButton.mjs +2 -2
- package/es/awesome/GradientButton/GradientButton.mjs.map +1 -1
- package/es/awesome/GridBackground/GridBackground.d.mts +2 -2
- package/es/awesome/GridBackground/GridShowcase.d.mts +2 -2
- package/es/awesome/GridBackground/GridShowcase.mjs +5 -5
- package/es/awesome/GridBackground/GridShowcase.mjs.map +1 -1
- package/es/awesome/GridBackground/components/Grid.mjs.map +1 -1
- package/es/awesome/Hero/Hero.d.mts +2 -2
- package/es/awesome/Hero/Hero.mjs +3 -3
- package/es/awesome/Hero/Hero.mjs.map +1 -1
- package/es/awesome/Hero/type.d.mts +1 -1
- package/es/awesome/Spline/ParentSize.mjs.map +1 -1
- package/es/awesome/Spline/Spine.mjs +2 -2
- package/es/awesome/Spline/Spine.mjs.map +1 -1
- package/es/awesome/Spotlight/Spotlight.d.mts +2 -2
- package/es/awesome/SpotlightCard/SpotlightCard.d.mts +2 -2
- package/es/brand/BrandLoading/index.mjs.map +1 -1
- package/es/brand/LobeChat/index.d.mts +2 -2
- package/es/brand/LobeChat/index.mjs +3 -3
- package/es/brand/LobeChat/index.mjs.map +1 -1
- package/es/brand/LobeChatText/index.mjs.map +1 -1
- package/es/brand/LobeHub/index.d.mts +2 -2
- package/es/brand/LobeHub/index.mjs +3 -3
- package/es/brand/LobeHub/index.mjs.map +1 -1
- package/es/brand/LobeHubText/index.mjs.map +1 -1
- package/es/brand/Logo3d/index.mjs.map +1 -1
- package/es/brand/LogoThree/Loading.mjs +2 -2
- package/es/brand/LogoThree/Loading.mjs.map +1 -1
- package/es/brand/LogoThree/LogoSpline.d.mts +2 -2
- package/es/brand/LogoThree/LogoSpline.mjs +1 -1
- package/es/brand/LogoThree/LogoSpline.mjs.map +1 -1
- package/es/brand/LogoThree/index.d.mts +2 -2
- package/es/brand/LogoThree/index.mjs +4 -4
- package/es/brand/LogoThree/index.mjs.map +1 -1
- package/es/brand/components/Divider.mjs.map +1 -1
- package/es/chat/BackBottom/BackBottom.d.mts +2 -2
- package/es/chat/BackBottom/BackBottom.mjs +2 -2
- package/es/chat/BackBottom/BackBottom.mjs.map +1 -1
- package/es/chat/ChatHeader/ChatHeader.mjs +6 -6
- package/es/chat/ChatHeader/ChatHeader.mjs.map +1 -1
- package/es/chat/ChatHeader/ChatHeaderTitle.mjs +4 -4
- package/es/chat/ChatHeader/ChatHeaderTitle.mjs.map +1 -1
- package/es/chat/ChatInputArea/ChatInputArea.mjs +3 -3
- package/es/chat/ChatInputArea/ChatInputArea.mjs.map +1 -1
- package/es/chat/ChatInputArea/components/ChatInputActionBar.mjs +3 -3
- package/es/chat/ChatInputArea/components/ChatInputActionBar.mjs.map +1 -1
- package/es/chat/ChatInputArea/components/ChatInputAreaInner.d.mts +2 -2
- package/es/chat/ChatInputArea/components/ChatInputAreaInner.mjs +3 -3
- package/es/chat/ChatInputArea/components/ChatInputAreaInner.mjs.map +1 -1
- package/es/chat/ChatInputArea/components/ChatSendButton.mjs +5 -5
- package/es/chat/ChatInputArea/components/ChatSendButton.mjs.map +1 -1
- package/es/chat/ChatItem/ChatItem.mjs +9 -9
- package/es/chat/ChatItem/ChatItem.mjs.map +1 -1
- package/es/chat/ChatItem/components/Actions.mjs.map +1 -1
- package/es/chat/ChatItem/components/Avatar.mjs +2 -2
- package/es/chat/ChatItem/components/Avatar.mjs.map +1 -1
- package/es/chat/ChatItem/components/ErrorContent.mjs +1 -1
- package/es/chat/ChatItem/components/ErrorContent.mjs.map +1 -1
- package/es/chat/ChatItem/components/Loading.mjs +2 -2
- package/es/chat/ChatItem/components/Loading.mjs.map +1 -1
- package/es/chat/ChatItem/components/MessageContent.mjs +4 -4
- package/es/chat/ChatItem/components/MessageContent.mjs.map +1 -1
- package/es/chat/ChatItem/components/Title.mjs.map +1 -1
- package/es/chat/ChatList/ChatList.d.mts +2 -2
- package/es/chat/ChatList/components/ChatListItem.mjs +14 -14
- package/es/chat/ChatList/components/ChatListItem.mjs.map +1 -1
- package/es/chat/ChatList/type.d.mts +1 -1
- package/es/chat/EditableMessage/EditableMessage.d.mts +2 -2
- package/es/chat/EditableMessage/EditableMessage.mjs +18 -18
- package/es/chat/EditableMessage/EditableMessage.mjs.map +1 -1
- package/es/chat/EditableMessageList/EditableMessageList.mjs +17 -17
- package/es/chat/EditableMessageList/EditableMessageList.mjs.map +1 -1
- package/es/chat/MessageInput/MessageInput.d.mts +2 -2
- package/es/chat/MessageInput/MessageInput.mjs +8 -8
- package/es/chat/MessageInput/MessageInput.mjs.map +1 -1
- package/es/chat/MessageModal/MessageModal.d.mts +2 -2
- package/es/chat/MessageModal/MessageModal.mjs +15 -15
- package/es/chat/MessageModal/MessageModal.mjs.map +1 -1
- package/es/chat/TokenTag/TokenTag.mjs +2 -2
- package/es/chat/TokenTag/TokenTag.mjs.map +1 -1
- package/es/chat/types/error.mjs.map +1 -1
- package/es/color/ColorScales/ScaleRow.mjs +3 -3
- package/es/color/ColorScales/ScaleRow.mjs.map +1 -1
- package/es/color/ColorScales/index.d.mts +2 -2
- package/es/color/ColorScales/index.mjs +4 -4
- package/es/color/ColorScales/index.mjs.map +1 -1
- package/es/color/CssVar/ScaleRow.mjs +4 -4
- package/es/color/CssVar/ScaleRow.mjs.map +1 -1
- package/es/color/CssVar/VarRow.mjs +2 -2
- package/es/color/CssVar/VarRow.mjs.map +1 -1
- package/es/color/CssVar/index.d.mts +2 -2
- package/es/color/CssVar/index.mjs +4 -4
- package/es/color/CssVar/index.mjs.map +1 -1
- package/es/color/colors/blue.mjs.map +1 -1
- package/es/color/colors/cyan.mjs.map +1 -1
- package/es/color/colors/geekblue.mjs.map +1 -1
- package/es/color/colors/gold.mjs.map +1 -1
- package/es/color/colors/gray.mjs.map +1 -1
- package/es/color/colors/green.mjs.map +1 -1
- package/es/color/colors/lime.mjs.map +1 -1
- package/es/color/colors/magenta.mjs.map +1 -1
- package/es/color/colors/orange.mjs.map +1 -1
- package/es/color/colors/primary.mjs.map +1 -1
- package/es/color/colors/purple.mjs.map +1 -1
- package/es/color/colors/red.mjs.map +1 -1
- package/es/color/colors/volcano.mjs.map +1 -1
- package/es/color/colors/yellow.mjs.map +1 -1
- package/es/color/neutrals/mauve.mjs.map +1 -1
- package/es/color/neutrals/olive.mjs.map +1 -1
- package/es/color/neutrals/sage.mjs.map +1 -1
- package/es/color/neutrals/sand.mjs.map +1 -1
- package/es/color/neutrals/slate.mjs.map +1 -1
- package/es/hooks/useFloatingLayer.mjs +2 -2
- package/es/hooks/useFloatingLayer.mjs.map +1 -1
- package/es/hooks/useHighlight.mjs.map +1 -1
- package/es/hooks/useMarkdown/latex.mjs +12 -12
- package/es/hooks/useMarkdown/latex.mjs.map +1 -1
- package/es/hooks/useMarkdown/useMarkdownComponents.mjs +1 -1
- package/es/hooks/useMarkdown/useMarkdownComponents.mjs.map +1 -1
- package/es/hooks/useMarkdown/utils.mjs +4 -4
- package/es/hooks/useMarkdown/utils.mjs.map +1 -1
- package/es/hooks/useNativeButton.mjs.map +1 -1
- package/es/hooks/useStreamHighlight.mjs.map +1 -1
- package/es/i18n/context.d.mts +3 -3
- package/es/i18n/context.mjs.map +1 -1
- package/es/icons/Authelia/components/Color.mjs.map +1 -1
- package/es/icons/lucideExtra/BotPromptIcon.d.mts +2 -2
- package/es/icons/lucideExtra/CreateBotIcon.d.mts +3 -3
- package/es/icons/lucideExtra/DiscordIcon.d.mts +2 -2
- package/es/icons/lucideExtra/GlobeOffIcon.d.mts +3 -3
- package/es/icons/lucideExtra/GroupBotIcon.d.mts +2 -2
- package/es/icons/lucideExtra/GroupBotSquareIcon.d.mts +3 -3
- package/es/icons/lucideExtra/LeftClickIcon.d.mts +3 -3
- package/es/icons/lucideExtra/LeftDoubleClickIcon.d.mts +3 -3
- package/es/icons/lucideExtra/McpIcon.d.mts +2 -2
- package/es/icons/lucideExtra/ProviderIcon.d.mts +3 -3
- package/es/icons/lucideExtra/RightClickIcon.d.mts +3 -3
- package/es/icons/lucideExtra/RightDoubleClickIcon.d.mts +3 -3
- package/es/icons/lucideExtra/ShapesUploadIcon.d.mts +3 -3
- package/es/icons/lucideExtra/TreeDownRightIcon.d.mts +3 -3
- package/es/icons/lucideExtra/TreeUpDownRightIcon.d.mts +3 -3
- package/es/mdx/Callout/index.mjs +1 -1
- package/es/mdx/Callout/index.mjs.map +1 -1
- package/es/mdx/Cards/Card.mjs +2 -2
- package/es/mdx/Cards/Card.mjs.map +1 -1
- package/es/mdx/FileTree/File.mjs +1 -1
- package/es/mdx/FileTree/File.mjs.map +1 -1
- package/es/mdx/FileTree/Folder.mjs +1 -1
- package/es/mdx/FileTree/Folder.mjs.map +1 -1
- package/es/mdx/FileTree/index.mjs.map +1 -1
- package/es/mdx/Mdx/index.d.mts +2 -2
- package/es/mdx/Mdx/index.mjs +3 -3
- package/es/mdx/Mdx/index.mjs.map +1 -1
- package/es/mdx/Steps/index.mjs.map +1 -1
- package/es/mdx/Tabs/Tab.mjs.map +1 -1
- package/es/mdx/Tabs/index.mjs +1 -1
- package/es/mdx/Tabs/index.mjs.map +1 -1
- package/es/mdx/mdxComponents/Citation/PopoverPanel.mjs +3 -3
- package/es/mdx/mdxComponents/Citation/PopoverPanel.mjs.map +1 -1
- package/es/mdx/mdxComponents/Citation/index.mjs.map +1 -1
- package/es/mdx/mdxComponents/Link.mjs +1 -1
- package/es/mdx/mdxComponents/Link.mjs.map +1 -1
- package/es/mobile/ChatHeader/ChatHeader.mjs +4 -4
- package/es/mobile/ChatHeader/ChatHeader.mjs.map +1 -1
- package/es/mobile/ChatHeader/ChatHeaderTitle.d.mts +2 -2
- package/es/mobile/ChatHeader/ChatHeaderTitle.mjs +5 -5
- package/es/mobile/ChatHeader/ChatHeaderTitle.mjs.map +1 -1
- package/es/mobile/ChatInputArea/ChatInputArea.mjs +9 -9
- package/es/mobile/ChatInputArea/ChatInputArea.mjs.map +1 -1
- package/es/mobile/ChatInputArea/components/ChatSendButton.d.mts +2 -2
- package/es/mobile/ChatInputArea/components/ChatSendButton.mjs +2 -2
- package/es/mobile/ChatInputArea/components/ChatSendButton.mjs.map +1 -1
- package/es/mobile/SafeArea/SafeArea.mjs.map +1 -1
- package/es/mobile/TabBar/TabBar.d.mts +2 -2
- package/es/mobile/TabBar/TabBar.mjs +3 -3
- package/es/mobile/TabBar/TabBar.mjs.map +1 -1
- package/es/storybook/StoryBook/index.d.mts +2 -2
- package/es/storybook/StoryBook/index.mjs.map +1 -1
- package/es/styles/theme/algorithms/darkAlgorithm.mjs.map +1 -1
- package/es/styles/theme/algorithms/lightAlgorithm.mjs.map +1 -1
- package/es/styles/theme/antdTheme.mjs.map +1 -1
- package/es/styles/theme/customStylish.mjs.map +1 -1
- package/es/styles/theme/customToken.mjs.map +1 -1
- package/es/styles/theme/generateColorPalette.mjs.map +1 -1
- package/es/styles/theme/token/base.mjs.map +1 -1
- package/es/styles/theme/token/dark.mjs.map +1 -1
- package/es/styles/theme/token/light.mjs.map +1 -1
- package/package.json +79 -1
|
@@ -35,16 +35,16 @@ const LogoThree = memo(({ className, style, size = 128, onLoad, ...rest }) => {
|
|
|
35
35
|
style: { position: "absolute" },
|
|
36
36
|
width: size * .75
|
|
37
37
|
}), /* @__PURE__ */ jsx(Spine_default, {
|
|
38
|
-
onLoad: (splineApp) => {
|
|
39
|
-
setLoading(false);
|
|
40
|
-
onLoad?.(splineApp);
|
|
41
|
-
},
|
|
42
38
|
scene: "https://hub-apac-1.lobeobjects.space/logo.splinecode",
|
|
43
39
|
style: {
|
|
44
40
|
flex: "none",
|
|
45
41
|
height: size,
|
|
46
42
|
width: size
|
|
47
43
|
},
|
|
44
|
+
onLoad: (splineApp) => {
|
|
45
|
+
setLoading(false);
|
|
46
|
+
onLoad?.(splineApp);
|
|
47
|
+
},
|
|
48
48
|
...rest
|
|
49
49
|
})]
|
|
50
50
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["Flexbox","Img","Spline"],"sources":["../../../src/brand/LogoThree/index.tsx"],"sourcesContent":["'use client';\n\nimport { CSSProperties, memo, useState } from 'react';\n\nimport {
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["Flexbox","Img","Spline"],"sources":["../../../src/brand/LogoThree/index.tsx"],"sourcesContent":["'use client';\n\nimport { type CSSProperties, memo, useState } from 'react';\n\nimport Spline, { type SplineProps } from '@/awesome/Spline';\nimport { useCdnFn } from '@/ConfigProvider';\nimport { Flexbox } from '@/Flex';\nimport Img from '@/Img';\n\nconst LOGO_3D = {\n path: 'assets/logo-3d.webp',\n pkg: '@lobehub/assets-logo',\n version: '1.2.0',\n};\n\nexport interface LogoThreeProps extends Partial<SplineProps> {\n className?: string;\n size?: number;\n style?: CSSProperties;\n}\n\nconst LogoThree = memo<LogoThreeProps>(({ className, style, size = 128, onLoad, ...rest }) => {\n const genCdnUrl = useCdnFn();\n const [loading, setLoading] = useState(true);\n return (\n <Flexbox\n align={'center'}\n className={className}\n flex={'none'}\n justify={'center'}\n style={{ height: size, overflow: 'hidden', position: 'relative', width: size, ...style }}\n >\n {loading && (\n <Img\n alt={'logo'}\n height={size * 0.75}\n src={genCdnUrl(LOGO_3D)}\n style={{ position: 'absolute' }}\n width={size * 0.75}\n />\n )}\n <Spline\n scene={'https://hub-apac-1.lobeobjects.space/logo.splinecode'}\n style={{\n flex: 'none',\n height: size,\n width: size,\n }}\n onLoad={(splineApp) => {\n setLoading(false);\n onLoad?.(splineApp);\n }}\n {...rest}\n />\n </Flexbox>\n );\n});\n\nLogoThree.displayName = 'LobeHubLogoThree';\n\nexport default LogoThree;\n"],"mappings":";;;;;;;;;;AASA,MAAM,UAAU;CACd,MAAM;CACN,KAAK;CACL,SAAS;CACV;AAQD,MAAM,YAAY,MAAsB,EAAE,WAAW,OAAO,OAAO,KAAK,QAAQ,GAAG,WAAW;CAC5F,MAAM,YAAY,UAAU;CAC5B,MAAM,CAAC,SAAS,cAAc,SAAS,KAAK;AAC5C,QACE,qBAACA;EACC,OAAO;EACI;EACX,MAAM;EACN,SAAS;EACT,OAAO;GAAE,QAAQ;GAAM,UAAU;GAAU,UAAU;GAAY,OAAO;GAAM,GAAG;GAAO;aAEvF,WACC,oBAACC;GACC,KAAK;GACL,QAAQ,OAAO;GACf,KAAK,UAAU,QAAQ;GACvB,OAAO,EAAE,UAAU,YAAY;GAC/B,OAAO,OAAO;IACd,EAEJ,oBAACC;GACC,OAAO;GACP,OAAO;IACL,MAAM;IACN,QAAQ;IACR,OAAO;IACR;GACD,SAAS,cAAc;AACrB,eAAW,MAAM;AACjB,aAAS,UAAU;;GAErB,GAAI;IACJ;GACM;EAEZ;AAEF,UAAU,cAAc;AAExB,wBAAe"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Divider.mjs","names":["Divider: FC<SvgProps & DivProps & { size?: number }>"],"sources":["../../../src/brand/components/Divider.tsx"],"sourcesContent":["import { type FC } from 'react';\n\nimport { DivProps, SvgProps } from '@/types';\n\nconst Divider: FC<SvgProps & DivProps & { size?: number }> = ({ size = '1em', style, ...rest }) => (\n <svg\n fill=\"none\"\n height={size}\n shapeRendering=\"geometricPrecision\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n style={{ flex: 'none', lineHeight: 1, ...style }}\n viewBox=\"0 0 24 24\"\n width={size}\n {...rest}\n >\n <path d=\"M16.88 3.549L7.12 20.451\" />\n </svg>\n);\n\nexport default Divider;\n"],"mappings":";;;AAIA,MAAMA,WAAwD,EAAE,OAAO,OAAO,OAAO,GAAG,WACtF,oBAAC;CACC,MAAK;CACL,QAAQ;CACR,gBAAe;CACf,QAAO;CACP,eAAc;CACd,gBAAe;CACf,OAAO;EAAE,MAAM;EAAQ,YAAY;EAAG,GAAG;EAAO;CAChD,SAAQ;CACR,OAAO;CACP,GAAI;WAEJ,oBAAC,UAAK,GAAE,6BAA6B;EACjC;AAGR,sBAAe"}
|
|
1
|
+
{"version":3,"file":"Divider.mjs","names":["Divider: FC<SvgProps & DivProps & { size?: number }>"],"sources":["../../../src/brand/components/Divider.tsx"],"sourcesContent":["import { type FC } from 'react';\n\nimport type { DivProps, SvgProps } from '@/types';\n\nconst Divider: FC<SvgProps & DivProps & { size?: number }> = ({ size = '1em', style, ...rest }) => (\n <svg\n fill=\"none\"\n height={size}\n shapeRendering=\"geometricPrecision\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n style={{ flex: 'none', lineHeight: 1, ...style }}\n viewBox=\"0 0 24 24\"\n width={size}\n {...rest}\n >\n <path d=\"M16.88 3.549L7.12 20.451\" />\n </svg>\n);\n\nexport default Divider;\n"],"mappings":";;;AAIA,MAAMA,WAAwD,EAAE,OAAO,OAAO,OAAO,GAAG,WACtF,oBAAC;CACC,MAAK;CACL,QAAQ;CACR,gBAAe;CACf,QAAO;CACP,eAAc;CACd,gBAAe;CACf,OAAO;EAAE,MAAM;EAAQ,YAAY;EAAG,GAAG;EAAO;CAChD,SAAQ;CACR,OAAO;CACP,GAAI;WAEJ,oBAAC,UAAK,GAAE,6BAA6B;EACjC;AAGR,sBAAe"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BackBottomProps } from "./type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react130 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/chat/BackBottom/BackBottom.d.ts
|
|
5
|
-
declare const BackBottom:
|
|
5
|
+
declare const BackBottom: react130.NamedExoticComponent<BackBottomProps>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { BackBottom };
|
|
8
8
|
//# sourceMappingURL=BackBottom.d.mts.map
|
|
@@ -32,15 +32,15 @@ const BackBottom = memo(({ visibilityHeight = 240, target, onClick, style, class
|
|
|
32
32
|
onClick?.(e);
|
|
33
33
|
};
|
|
34
34
|
return /* @__PURE__ */ jsx(Button_default, {
|
|
35
|
-
className: cx(visible ? styles.visible : styles.hidden, className),
|
|
36
35
|
glass: true,
|
|
36
|
+
className: cx(visible ? styles.visible : styles.hidden, className),
|
|
37
37
|
icon: ListEnd,
|
|
38
|
-
onClick: scrollToBottom,
|
|
39
38
|
ref,
|
|
40
39
|
shape: "round",
|
|
41
40
|
size: "small",
|
|
42
41
|
style,
|
|
43
42
|
variant: "filled",
|
|
43
|
+
onClick: scrollToBottom,
|
|
44
44
|
children: text || "Back to bottom"
|
|
45
45
|
});
|
|
46
46
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BackBottom.mjs","names":["scrollToBottom: MouseEventHandler<HTMLDivElement>","Button"],"sources":["../../../src/chat/BackBottom/BackBottom.tsx"],"sourcesContent":["'use client';\n\nimport { useScroll } from 'ahooks';\nimport { cx } from 'antd-style';\nimport { ListEnd } from 'lucide-react';\nimport { type MouseEventHandler,
|
|
1
|
+
{"version":3,"file":"BackBottom.mjs","names":["scrollToBottom: MouseEventHandler<HTMLDivElement>","Button"],"sources":["../../../src/chat/BackBottom/BackBottom.tsx"],"sourcesContent":["'use client';\n\nimport { useScroll } from 'ahooks';\nimport { cx } from 'antd-style';\nimport { ListEnd } from 'lucide-react';\nimport { memo, type MouseEventHandler, useEffect, useRef, useState } from 'react';\n\nimport Button from '@/Button';\n\nimport { styles } from './style';\nimport { type BackBottomProps } from './type';\n\nconst BackBottom = memo<BackBottomProps>(\n ({ visibilityHeight = 240, target, onClick, style, className, text }) => {\n const [visible, setVisible] = useState<boolean>(false);\n const ref = useRef<HTMLButtonElement>(null);\n const current = (target as any)?.current;\n const scrollHeight = current?.scrollHeight || 0;\n const clientHeight = current?.clientHeight || 0;\n const scroll = useScroll(target);\n\n useEffect(() => {\n if (scroll?.top) {\n setVisible(scroll?.top + clientHeight + visibilityHeight < scrollHeight);\n }\n }, [scrollHeight, scroll, visibilityHeight]);\n\n const scrollToBottom: MouseEventHandler<HTMLDivElement> = (e) => {\n (target as any)?.current?.scrollTo({ behavior: 'smooth', left: 0, top: scrollHeight });\n onClick?.(e);\n };\n\n return (\n <Button\n glass\n className={cx(visible ? styles.visible : styles.hidden, className)}\n icon={ListEnd}\n ref={ref}\n shape={'round'}\n size={'small'}\n style={style}\n variant={'filled'}\n onClick={scrollToBottom}\n >\n {text || 'Back to bottom'}\n </Button>\n );\n },\n);\n\nBackBottom.displayName = 'BackBottom';\n\nexport default BackBottom;\n"],"mappings":";;;;;;;;;;;AAYA,MAAM,aAAa,MAChB,EAAE,mBAAmB,KAAK,QAAQ,SAAS,OAAO,WAAW,WAAW;CACvE,MAAM,CAAC,SAAS,cAAc,SAAkB,MAAM;CACtD,MAAM,MAAM,OAA0B,KAAK;CAC3C,MAAM,UAAW,QAAgB;CACjC,MAAM,eAAe,SAAS,gBAAgB;CAC9C,MAAM,eAAe,SAAS,gBAAgB;CAC9C,MAAM,SAAS,UAAU,OAAO;AAEhC,iBAAgB;AACd,MAAI,QAAQ,IACV,YAAW,QAAQ,MAAM,eAAe,mBAAmB,aAAa;IAEzE;EAAC;EAAc;EAAQ;EAAiB,CAAC;CAE5C,MAAMA,kBAAqD,MAAM;AAC/D,EAAC,QAAgB,SAAS,SAAS;GAAE,UAAU;GAAU,MAAM;GAAG,KAAK;GAAc,CAAC;AACtF,YAAU,EAAE;;AAGd,QACE,oBAACC;EACC;EACA,WAAW,GAAG,UAAU,OAAO,UAAU,OAAO,QAAQ,UAAU;EAClE,MAAM;EACD;EACL,OAAO;EACP,MAAM;EACC;EACP,SAAS;EACT,SAAS;YAER,QAAQ;GACF;EAGd;AAED,WAAW,cAAc;AAEzB,yBAAe"}
|
|
@@ -11,41 +11,41 @@ import { ChevronLeft } from "lucide-react";
|
|
|
11
11
|
//#region src/chat/ChatHeader/ChatHeader.tsx
|
|
12
12
|
const ChatHeader = memo(({ left, right, className, styles: contentStyles, gaps, classNames, showBackButton, onBackClick, children, gap = 16, ...rest }) => {
|
|
13
13
|
return /* @__PURE__ */ jsxs(FlexBasic_default, {
|
|
14
|
+
horizontal: true,
|
|
14
15
|
align: "center",
|
|
15
16
|
className: cx(styles.container, className),
|
|
16
17
|
distribution: "space-between",
|
|
17
18
|
gap,
|
|
18
|
-
horizontal: true,
|
|
19
19
|
paddingInline: 16,
|
|
20
20
|
...rest,
|
|
21
21
|
children: [
|
|
22
22
|
/* @__PURE__ */ jsxs(FlexBasic_default, {
|
|
23
|
+
horizontal: true,
|
|
23
24
|
align: "center",
|
|
24
25
|
className: cx(styles.left, classNames?.left),
|
|
25
26
|
gap: gaps?.left || 12,
|
|
26
|
-
horizontal: true,
|
|
27
27
|
justify: "flex-start",
|
|
28
28
|
style: contentStyles?.left,
|
|
29
29
|
children: [showBackButton && /* @__PURE__ */ jsx(ActionIcon_default, {
|
|
30
30
|
icon: ChevronLeft,
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
style: { marginRight: gaps?.left ? -gaps.left / 2 : -6 },
|
|
32
|
+
onClick: () => onBackClick?.()
|
|
33
33
|
}), left]
|
|
34
34
|
}),
|
|
35
35
|
children && /* @__PURE__ */ jsx(FlexBasic_default, {
|
|
36
|
+
horizontal: true,
|
|
36
37
|
align: "center",
|
|
37
38
|
className: cx(styles.center, classNames?.center),
|
|
38
39
|
gap: gaps?.center || 8,
|
|
39
|
-
horizontal: true,
|
|
40
40
|
justify: "center",
|
|
41
41
|
style: contentStyles?.center,
|
|
42
42
|
children
|
|
43
43
|
}),
|
|
44
44
|
/* @__PURE__ */ jsx(FlexBasic_default, {
|
|
45
|
+
horizontal: true,
|
|
45
46
|
align: "center",
|
|
46
47
|
className: cx(styles.right, classNames?.right),
|
|
47
48
|
gap: gaps?.right || 8,
|
|
48
|
-
horizontal: true,
|
|
49
49
|
justify: "flex-end",
|
|
50
50
|
style: contentStyles?.right,
|
|
51
51
|
children: right
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatHeader.mjs","names":["Flexbox","ActionIcon"],"sources":["../../../src/chat/ChatHeader/ChatHeader.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { ChevronLeft } from 'lucide-react';\nimport { memo } from 'react';\n\nimport ActionIcon from '@/ActionIcon';\nimport { Flexbox } from '@/Flex';\n\nimport { styles } from './style';\nimport type { ChatHeaderProps } from './type';\n\nconst ChatHeader = memo<ChatHeaderProps>(\n ({\n left,\n right,\n className,\n styles: contentStyles,\n gaps,\n classNames,\n showBackButton,\n onBackClick,\n children,\n gap = 16,\n ...rest\n }) => {\n return (\n <Flexbox\n align={'center'}\n className={cx(styles.container, className)}\n distribution={'space-between'}\n gap={gap}\n
|
|
1
|
+
{"version":3,"file":"ChatHeader.mjs","names":["Flexbox","ActionIcon"],"sources":["../../../src/chat/ChatHeader/ChatHeader.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { ChevronLeft } from 'lucide-react';\nimport { memo } from 'react';\n\nimport ActionIcon from '@/ActionIcon';\nimport { Flexbox } from '@/Flex';\n\nimport { styles } from './style';\nimport type { ChatHeaderProps } from './type';\n\nconst ChatHeader = memo<ChatHeaderProps>(\n ({\n left,\n right,\n className,\n styles: contentStyles,\n gaps,\n classNames,\n showBackButton,\n onBackClick,\n children,\n gap = 16,\n ...rest\n }) => {\n return (\n <Flexbox\n horizontal\n align={'center'}\n className={cx(styles.container, className)}\n distribution={'space-between'}\n gap={gap}\n paddingInline={16}\n {...rest}\n >\n <Flexbox\n horizontal\n align={'center'}\n className={cx(styles.left, classNames?.left)}\n gap={gaps?.left || 12}\n justify={'flex-start'}\n style={contentStyles?.left}\n >\n {showBackButton && (\n <ActionIcon\n icon={ChevronLeft}\n style={{ marginRight: gaps?.left ? -gaps.left / 2 : -6 }}\n onClick={() => onBackClick?.()}\n />\n )}\n {left}\n </Flexbox>\n {children && (\n <Flexbox\n horizontal\n align={'center'}\n className={cx(styles.center, classNames?.center)}\n gap={gaps?.center || 8}\n justify={'center'}\n style={contentStyles?.center}\n >\n {children}\n </Flexbox>\n )}\n <Flexbox\n horizontal\n align={'center'}\n className={cx(styles.right, classNames?.right)}\n gap={gaps?.right || 8}\n justify={'flex-end'}\n style={contentStyles?.right}\n >\n {right}\n </Flexbox>\n </Flexbox>\n );\n },\n);\n\nChatHeader.displayName = 'ChatHeader';\n\nexport default ChatHeader;\n"],"mappings":";;;;;;;;;;;AAYA,MAAM,aAAa,MAChB,EACC,MACA,OACA,WACA,QAAQ,eACR,MACA,YACA,gBACA,aACA,UACA,MAAM,IACN,GAAG,WACC;AACJ,QACE,qBAACA;EACC;EACA,OAAO;EACP,WAAW,GAAG,OAAO,WAAW,UAAU;EAC1C,cAAc;EACT;EACL,eAAe;EACf,GAAI;;GAEJ,qBAACA;IACC;IACA,OAAO;IACP,WAAW,GAAG,OAAO,MAAM,YAAY,KAAK;IAC5C,KAAK,MAAM,QAAQ;IACnB,SAAS;IACT,OAAO,eAAe;eAErB,kBACC,oBAACC;KACC,MAAM;KACN,OAAO,EAAE,aAAa,MAAM,OAAO,CAAC,KAAK,OAAO,IAAI,IAAI;KACxD,eAAe,eAAe;MAC9B,EAEH;KACO;GACT,YACC,oBAACD;IACC;IACA,OAAO;IACP,WAAW,GAAG,OAAO,QAAQ,YAAY,OAAO;IAChD,KAAK,MAAM,UAAU;IACrB,SAAS;IACT,OAAO,eAAe;IAErB;KACO;GAEZ,oBAACA;IACC;IACA,OAAO;IACP,WAAW,GAAG,OAAO,OAAO,YAAY,MAAM;IAC9C,KAAK,MAAM,SAAS;IACpB,SAAS;IACT,OAAO,eAAe;cAErB;KACO;;GACF;EAGf;AAED,WAAW,cAAc;AAEzB,yBAAe"}
|
|
@@ -5,35 +5,35 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
5
5
|
//#region src/chat/ChatHeader/ChatHeaderTitle.tsx
|
|
6
6
|
const ChatHeaderTitle = ({ title, desc, tag }) => {
|
|
7
7
|
const tagContent = tag && /* @__PURE__ */ jsx(FlexBasic_default, {
|
|
8
|
+
horizontal: true,
|
|
8
9
|
align: "center",
|
|
9
10
|
className: titleStyles.tag,
|
|
10
|
-
horizontal: true,
|
|
11
11
|
children: tag
|
|
12
12
|
});
|
|
13
13
|
if (desc) return /* @__PURE__ */ jsxs(FlexBasic_default, {
|
|
14
14
|
className: titleStyles.container,
|
|
15
15
|
gap: 4,
|
|
16
16
|
children: [/* @__PURE__ */ jsxs(FlexBasic_default, {
|
|
17
|
+
horizontal: true,
|
|
17
18
|
align: "center",
|
|
18
19
|
className: titleStyles.titleContainer,
|
|
19
20
|
gap: 8,
|
|
20
|
-
horizontal: true,
|
|
21
21
|
children: [/* @__PURE__ */ jsx("div", {
|
|
22
22
|
className: titleStyles.titleWithDesc,
|
|
23
23
|
children: title
|
|
24
24
|
}), tagContent]
|
|
25
25
|
}), /* @__PURE__ */ jsx(FlexBasic_default, {
|
|
26
|
+
horizontal: true,
|
|
26
27
|
align: "center",
|
|
27
28
|
className: titleStyles.desc,
|
|
28
|
-
horizontal: true,
|
|
29
29
|
children: desc
|
|
30
30
|
})]
|
|
31
31
|
});
|
|
32
32
|
return /* @__PURE__ */ jsxs(FlexBasic_default, {
|
|
33
|
+
horizontal: true,
|
|
33
34
|
align: "center",
|
|
34
35
|
className: titleStyles.container,
|
|
35
36
|
gap: 8,
|
|
36
|
-
horizontal: true,
|
|
37
37
|
children: [/* @__PURE__ */ jsx("div", {
|
|
38
38
|
className: titleStyles.title,
|
|
39
39
|
children: title
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatHeaderTitle.mjs","names":["ChatHeaderTitle: FC<ChatHeaderTitleProps>","Flexbox","styles"],"sources":["../../../src/chat/ChatHeader/ChatHeaderTitle.tsx"],"sourcesContent":["import { type FC } from 'react';\n\nimport { Flexbox } from '@/Flex';\n\nimport { titleStyles as styles } from './style';\nimport type { ChatHeaderTitleProps } from './type';\n\nconst ChatHeaderTitle: FC<ChatHeaderTitleProps> = ({ title, desc, tag }) => {\n const tagContent = tag && (\n <Flexbox align={'center'} className={styles.tag}
|
|
1
|
+
{"version":3,"file":"ChatHeaderTitle.mjs","names":["ChatHeaderTitle: FC<ChatHeaderTitleProps>","Flexbox","styles"],"sources":["../../../src/chat/ChatHeader/ChatHeaderTitle.tsx"],"sourcesContent":["import { type FC } from 'react';\n\nimport { Flexbox } from '@/Flex';\n\nimport { titleStyles as styles } from './style';\nimport type { ChatHeaderTitleProps } from './type';\n\nconst ChatHeaderTitle: FC<ChatHeaderTitleProps> = ({ title, desc, tag }) => {\n const tagContent = tag && (\n <Flexbox horizontal align={'center'} className={styles.tag}>\n {tag}\n </Flexbox>\n );\n\n if (desc)\n return (\n <Flexbox className={styles.container} gap={4}>\n <Flexbox horizontal align={'center'} className={styles.titleContainer} gap={8}>\n <div className={styles.titleWithDesc}>{title}</div>\n {tagContent}\n </Flexbox>\n <Flexbox horizontal align={'center'} className={styles.desc}>\n {desc}\n </Flexbox>\n </Flexbox>\n );\n return (\n <Flexbox horizontal align={'center'} className={styles.container} gap={8}>\n <div className={styles.title}>{title}</div>\n {tagContent}\n </Flexbox>\n );\n};\n\nexport default ChatHeaderTitle;\n"],"mappings":";;;;;AAOA,MAAMA,mBAA6C,EAAE,OAAO,MAAM,UAAU;CAC1E,MAAM,aAAa,OACjB,oBAACC;EAAQ;EAAW,OAAO;EAAU,WAAWC,YAAO;YACpD;GACO;AAGZ,KAAI,KACF,QACE,qBAACD;EAAQ,WAAWC,YAAO;EAAW,KAAK;aACzC,qBAACD;GAAQ;GAAW,OAAO;GAAU,WAAWC,YAAO;GAAgB,KAAK;cAC1E,oBAAC;IAAI,WAAWA,YAAO;cAAgB;KAAY,EAClD;IACO,EACV,oBAACD;GAAQ;GAAW,OAAO;GAAU,WAAWC,YAAO;aACpD;IACO;GACF;AAEd,QACE,qBAACD;EAAQ;EAAW,OAAO;EAAU,WAAWC,YAAO;EAAW,KAAK;aACrE,oBAAC;GAAI,WAAWA,YAAO;aAAQ;IAAY,EAC1C;GACO;;AAId,8BAAe"}
|
|
@@ -15,7 +15,6 @@ const ChatInputArea = memo(({ ref, className, style, classNames, expand = true,
|
|
|
15
15
|
headerHeight: heights?.headerHeight,
|
|
16
16
|
maxHeight: heights?.maxHeight,
|
|
17
17
|
minHeight: heights?.minHeight,
|
|
18
|
-
onSizeChange,
|
|
19
18
|
placement: "bottom",
|
|
20
19
|
size: {
|
|
21
20
|
height: heights?.inputHeight,
|
|
@@ -25,6 +24,7 @@ const ChatInputArea = memo(({ ref, className, style, classNames, expand = true,
|
|
|
25
24
|
zIndex: 10,
|
|
26
25
|
...style
|
|
27
26
|
},
|
|
27
|
+
onSizeChange,
|
|
28
28
|
children: /* @__PURE__ */ jsxs("section", {
|
|
29
29
|
className: styles.container,
|
|
30
30
|
style: { minHeight: heights?.minHeight },
|
|
@@ -34,12 +34,12 @@ const ChatInputArea = memo(({ ref, className, style, classNames, expand = true,
|
|
|
34
34
|
className: styles.textareaContainer,
|
|
35
35
|
children: /* @__PURE__ */ jsx(ChatInputAreaInner_default, {
|
|
36
36
|
className: styles.textarea,
|
|
37
|
+
ref,
|
|
38
|
+
style: { paddingInline: 16 },
|
|
37
39
|
onSend: () => {
|
|
38
40
|
onSend?.();
|
|
39
41
|
setExpand?.(false);
|
|
40
42
|
},
|
|
41
|
-
ref,
|
|
42
|
-
style: { paddingInline: 16 },
|
|
43
43
|
...rest
|
|
44
44
|
})
|
|
45
45
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatInputArea.mjs","names":["DraggablePanel","ChatInputAreaInner"],"sources":["../../../src/chat/ChatInputArea/ChatInputArea.tsx"],"sourcesContent":["'use client';\n\nimport { memo } from 'react';\n\nimport DraggablePanel from '@/DraggablePanel';\n\nimport ChatInputAreaInner from './components/ChatInputAreaInner';\nimport { styles } from './style';\nimport type { ChatInputAreaProps } from './type';\n\nconst ChatInputArea = memo<ChatInputAreaProps>(\n ({\n ref,\n className,\n style,\n classNames,\n expand = true,\n setExpand,\n bottomAddons,\n topAddons,\n onSizeChange,\n heights,\n onSend,\n ...rest\n }) => {\n return (\n <DraggablePanel\n className={className}\n classNames={classNames}\n fullscreen={expand}\n headerHeight={heights?.headerHeight}\n maxHeight={heights?.maxHeight}\n minHeight={heights?.minHeight}\n
|
|
1
|
+
{"version":3,"file":"ChatInputArea.mjs","names":["DraggablePanel","ChatInputAreaInner"],"sources":["../../../src/chat/ChatInputArea/ChatInputArea.tsx"],"sourcesContent":["'use client';\n\nimport { memo } from 'react';\n\nimport DraggablePanel from '@/DraggablePanel';\n\nimport ChatInputAreaInner from './components/ChatInputAreaInner';\nimport { styles } from './style';\nimport type { ChatInputAreaProps } from './type';\n\nconst ChatInputArea = memo<ChatInputAreaProps>(\n ({\n ref,\n className,\n style,\n classNames,\n expand = true,\n setExpand,\n bottomAddons,\n topAddons,\n onSizeChange,\n heights,\n onSend,\n ...rest\n }) => {\n return (\n <DraggablePanel\n className={className}\n classNames={classNames}\n fullscreen={expand}\n headerHeight={heights?.headerHeight}\n maxHeight={heights?.maxHeight}\n minHeight={heights?.minHeight}\n placement=\"bottom\"\n size={{ height: heights?.inputHeight, width: '100%' }}\n style={{ zIndex: 10, ...style }}\n onSizeChange={onSizeChange}\n >\n <section className={styles.container} style={{ minHeight: heights?.minHeight }}>\n {topAddons}\n <div className={styles.textareaContainer}>\n <ChatInputAreaInner\n className={styles.textarea}\n ref={ref}\n style={{\n paddingInline: 16,\n }}\n onSend={() => {\n onSend?.();\n setExpand?.(false);\n }}\n {...rest}\n />\n </div>\n {bottomAddons}\n </section>\n </DraggablePanel>\n );\n },\n);\n\nexport default ChatInputArea;\n"],"mappings":";;;;;;;;;AAUA,MAAM,gBAAgB,MACnB,EACC,KACA,WACA,OACA,YACA,SAAS,MACT,WACA,cACA,WACA,cACA,SACA,QACA,GAAG,WACC;AACJ,QACE,oBAACA;EACY;EACC;EACZ,YAAY;EACZ,cAAc,SAAS;EACvB,WAAW,SAAS;EACpB,WAAW,SAAS;EACpB,WAAU;EACV,MAAM;GAAE,QAAQ,SAAS;GAAa,OAAO;GAAQ;EACrD,OAAO;GAAE,QAAQ;GAAI,GAAG;GAAO;EACjB;YAEd,qBAAC;GAAQ,WAAW,OAAO;GAAW,OAAO,EAAE,WAAW,SAAS,WAAW;;IAC3E;IACD,oBAAC;KAAI,WAAW,OAAO;eACrB,oBAACC;MACC,WAAW,OAAO;MACb;MACL,OAAO,EACL,eAAe,IAChB;MACD,cAAc;AACZ,iBAAU;AACV,mBAAY,MAAM;;MAEpB,GAAI;OACJ;MACE;IACL;;IACO;GACK;EAGtB;AAED,4BAAe"}
|
|
@@ -9,27 +9,27 @@ import { useResponsive } from "antd-style";
|
|
|
9
9
|
const ChatInputActionBar = ({ ref, padding = "0 16px", leftAddons, rightAddons, ...rest }) => {
|
|
10
10
|
const { mobile } = useResponsive();
|
|
11
11
|
return /* @__PURE__ */ jsxs(FlexBasic_default, {
|
|
12
|
+
horizontal: true,
|
|
12
13
|
align: "center",
|
|
13
14
|
className: actionBarStyles.root,
|
|
14
15
|
flex: "none",
|
|
15
|
-
horizontal: true,
|
|
16
16
|
justify: "space-between",
|
|
17
17
|
padding,
|
|
18
18
|
ref,
|
|
19
19
|
...rest,
|
|
20
20
|
children: [/* @__PURE__ */ jsx(FlexBasic_default, {
|
|
21
|
+
horizontal: true,
|
|
21
22
|
align: "center",
|
|
22
23
|
className: actionBarStyles.left,
|
|
23
24
|
flex: 1,
|
|
24
25
|
gap: mobile ? 0 : 4,
|
|
25
|
-
horizontal: true,
|
|
26
26
|
children: leftAddons
|
|
27
27
|
}), /* @__PURE__ */ jsx(FlexBasic_default, {
|
|
28
|
+
horizontal: true,
|
|
28
29
|
align: "center",
|
|
29
30
|
className: actionBarStyles.right,
|
|
30
31
|
flex: 0,
|
|
31
32
|
gap: mobile ? 0 : 4,
|
|
32
|
-
horizontal: true,
|
|
33
33
|
justify: "flex-end",
|
|
34
34
|
children: rightAddons
|
|
35
35
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatInputActionBar.mjs","names":["ChatInputActionBar: FC<ChatInputActionBarProps>","Flexbox","styles"],"sources":["../../../../src/chat/ChatInputArea/components/ChatInputActionBar.tsx"],"sourcesContent":["'use client';\n\nimport { useResponsive } from 'antd-style';\nimport { type FC } from 'react';\n\nimport { Flexbox } from '@/Flex';\n\nimport { actionBarStyles as styles } from '../style';\nimport { ChatInputActionBarProps } from '../type';\n\nconst ChatInputActionBar: FC<ChatInputActionBarProps> = ({\n ref,\n padding = '0 16px',\n leftAddons,\n rightAddons,\n ...rest\n}) => {\n const { mobile } = useResponsive();\n return (\n <Flexbox\n align={'center'}\n className={styles.root}\n flex={'none'}\n
|
|
1
|
+
{"version":3,"file":"ChatInputActionBar.mjs","names":["ChatInputActionBar: FC<ChatInputActionBarProps>","Flexbox","styles"],"sources":["../../../../src/chat/ChatInputArea/components/ChatInputActionBar.tsx"],"sourcesContent":["'use client';\n\nimport { useResponsive } from 'antd-style';\nimport { type FC } from 'react';\n\nimport { Flexbox } from '@/Flex';\n\nimport { actionBarStyles as styles } from '../style';\nimport type { ChatInputActionBarProps } from '../type';\n\nconst ChatInputActionBar: FC<ChatInputActionBarProps> = ({\n ref,\n padding = '0 16px',\n leftAddons,\n rightAddons,\n ...rest\n}) => {\n const { mobile } = useResponsive();\n return (\n <Flexbox\n horizontal\n align={'center'}\n className={styles.root}\n flex={'none'}\n justify={'space-between'}\n padding={padding}\n ref={ref}\n {...rest}\n >\n <Flexbox horizontal align={'center'} className={styles.left} flex={1} gap={mobile ? 0 : 4}>\n {leftAddons}\n </Flexbox>\n <Flexbox\n horizontal\n align={'center'}\n className={styles.right}\n flex={0}\n gap={mobile ? 0 : 4}\n justify={'flex-end'}\n >\n {rightAddons}\n </Flexbox>\n </Flexbox>\n );\n};\n\nChatInputActionBar.displayName = 'ChatInputActionBar';\n\nexport default ChatInputActionBar;\n"],"mappings":";;;;;;;;AAUA,MAAMA,sBAAmD,EACvD,KACA,UAAU,UACV,YACA,aACA,GAAG,WACC;CACJ,MAAM,EAAE,WAAW,eAAe;AAClC,QACE,qBAACC;EACC;EACA,OAAO;EACP,WAAWC,gBAAO;EAClB,MAAM;EACN,SAAS;EACA;EACJ;EACL,GAAI;aAEJ,oBAACD;GAAQ;GAAW,OAAO;GAAU,WAAWC,gBAAO;GAAM,MAAM;GAAG,KAAK,SAAS,IAAI;aACrF;IACO,EACV,oBAACD;GACC;GACA,OAAO;GACP,WAAWC,gBAAO;GAClB,MAAM;GACN,KAAK,SAAS,IAAI;GAClB,SAAS;aAER;IACO;GACF;;AAId,mBAAmB,cAAc;AAEjC,iCAAe"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ChatInputAreaInnerProps } from "../type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react136 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/chat/ChatInputArea/components/ChatInputAreaInner.d.ts
|
|
5
|
-
declare const ChatInputAreaInner:
|
|
5
|
+
declare const ChatInputAreaInner: react136.NamedExoticComponent<ChatInputAreaInnerProps>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { ChatInputAreaInner };
|
|
8
8
|
//# sourceMappingURL=ChatInputAreaInner.d.mts.map
|
|
@@ -9,6 +9,9 @@ const ChatInputAreaInner = memo(({ ref, resize = false, onCompositionEnd, onPres
|
|
|
9
9
|
const isChineseInput = useRef(false);
|
|
10
10
|
return /* @__PURE__ */ jsx(TextArea_default, {
|
|
11
11
|
className,
|
|
12
|
+
ref,
|
|
13
|
+
resize,
|
|
14
|
+
variant: "borderless",
|
|
12
15
|
onBlur: (e) => {
|
|
13
16
|
onInput?.(e.target.value);
|
|
14
17
|
onBlur?.(e);
|
|
@@ -33,9 +36,6 @@ const ChatInputAreaInner = memo(({ ref, resize = false, onCompositionEnd, onPres
|
|
|
33
36
|
onSend?.();
|
|
34
37
|
}
|
|
35
38
|
},
|
|
36
|
-
ref,
|
|
37
|
-
resize,
|
|
38
|
-
variant: "borderless",
|
|
39
39
|
...rest
|
|
40
40
|
});
|
|
41
41
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatInputAreaInner.mjs","names":["TextArea"],"sources":["../../../../src/chat/ChatInputArea/components/ChatInputAreaInner.tsx"],"sourcesContent":["'use client';\n\nimport { memo, useRef } from 'react';\n\nimport { TextArea } from '@/Input';\n\nimport { ChatInputAreaInnerProps } from '../type';\n\nconst ChatInputAreaInner = memo<ChatInputAreaInnerProps>(\n ({\n ref,\n resize = false,\n onCompositionEnd,\n onPressEnter,\n onCompositionStart,\n className,\n onInput,\n loading,\n onSend,\n onBlur,\n onChange,\n ...rest\n }) => {\n const isChineseInput = useRef(false);\n\n return (\n <TextArea\n className={className}\n onBlur={(e) => {\n onInput?.(e.target.value);\n onBlur?.(e);\n }}\n onChange={(e) => {\n onInput?.(e.target.value);\n onChange?.(e);\n }}\n onCompositionEnd={(e) => {\n isChineseInput.current = false;\n onCompositionEnd?.(e);\n }}\n onCompositionStart={(e) => {\n isChineseInput.current = true;\n onCompositionStart?.(e);\n }}\n onPressEnter={(e) => {\n onPressEnter?.(e);\n const isMobile = /mobi|android|iphone/i.test(navigator.userAgent);\n if (\n !loading &&\n !isChineseInput.current &&\n ((!isMobile && !e.shiftKey) || (isMobile && e.shiftKey))\n ) {\n e.preventDefault();\n onSend?.();\n }\n }}\n
|
|
1
|
+
{"version":3,"file":"ChatInputAreaInner.mjs","names":["TextArea"],"sources":["../../../../src/chat/ChatInputArea/components/ChatInputAreaInner.tsx"],"sourcesContent":["'use client';\n\nimport { memo, useRef } from 'react';\n\nimport { TextArea } from '@/Input';\n\nimport type { ChatInputAreaInnerProps } from '../type';\n\nconst ChatInputAreaInner = memo<ChatInputAreaInnerProps>(\n ({\n ref,\n resize = false,\n onCompositionEnd,\n onPressEnter,\n onCompositionStart,\n className,\n onInput,\n loading,\n onSend,\n onBlur,\n onChange,\n ...rest\n }) => {\n const isChineseInput = useRef(false);\n\n return (\n <TextArea\n className={className}\n ref={ref}\n resize={resize}\n variant={'borderless'}\n onBlur={(e) => {\n onInput?.(e.target.value);\n onBlur?.(e);\n }}\n onChange={(e) => {\n onInput?.(e.target.value);\n onChange?.(e);\n }}\n onCompositionEnd={(e) => {\n isChineseInput.current = false;\n onCompositionEnd?.(e);\n }}\n onCompositionStart={(e) => {\n isChineseInput.current = true;\n onCompositionStart?.(e);\n }}\n onPressEnter={(e) => {\n onPressEnter?.(e);\n const isMobile = /mobi|android|iphone/i.test(navigator.userAgent);\n if (\n !loading &&\n !isChineseInput.current &&\n ((!isMobile && !e.shiftKey) || (isMobile && e.shiftKey))\n ) {\n e.preventDefault();\n onSend?.();\n }\n }}\n {...rest}\n />\n );\n },\n);\n\nexport default ChatInputAreaInner;\n"],"mappings":";;;;;;;AAQA,MAAM,qBAAqB,MACxB,EACC,KACA,SAAS,OACT,kBACA,cACA,oBACA,WACA,SACA,SACA,QACA,QACA,UACA,GAAG,WACC;CACJ,MAAM,iBAAiB,OAAO,MAAM;AAEpC,QACE,oBAACA;EACY;EACN;EACG;EACR,SAAS;EACT,SAAS,MAAM;AACb,aAAU,EAAE,OAAO,MAAM;AACzB,YAAS,EAAE;;EAEb,WAAW,MAAM;AACf,aAAU,EAAE,OAAO,MAAM;AACzB,cAAW,EAAE;;EAEf,mBAAmB,MAAM;AACvB,kBAAe,UAAU;AACzB,sBAAmB,EAAE;;EAEvB,qBAAqB,MAAM;AACzB,kBAAe,UAAU;AACzB,wBAAqB,EAAE;;EAEzB,eAAe,MAAM;AACnB,kBAAe,EAAE;GACjB,MAAM,WAAW,uBAAuB,KAAK,UAAU,UAAU;AACjE,OACE,CAAC,WACD,CAAC,eAAe,YACd,CAAC,YAAY,CAAC,EAAE,YAAc,YAAY,EAAE,WAC9C;AACA,MAAE,gBAAgB;AAClB,cAAU;;;EAGd,GAAI;GACJ;EAGP;AAED,iCAAe"}
|
|
@@ -8,27 +8,27 @@ import { ArrowBigUp, CornerDownLeft, Loader2 } from "lucide-react";
|
|
|
8
8
|
//#region src/chat/ChatInputArea/components/ChatSendButton.tsx
|
|
9
9
|
const ChatSendButton = ({ ref, leftAddons, rightAddons, texts, onSend, loading, onStop, ...rest }) => {
|
|
10
10
|
return /* @__PURE__ */ jsxs(FlexBasic_default, {
|
|
11
|
+
horizontal: true,
|
|
11
12
|
align: "end",
|
|
12
13
|
distribution: "space-between",
|
|
13
14
|
flex: "none",
|
|
14
15
|
gap: 8,
|
|
15
|
-
horizontal: true,
|
|
16
16
|
paddingInline: 16,
|
|
17
17
|
ref,
|
|
18
18
|
...rest,
|
|
19
19
|
children: [/* @__PURE__ */ jsx(FlexBasic_default, {
|
|
20
|
+
horizontal: true,
|
|
20
21
|
align: "center",
|
|
21
22
|
gap: 8,
|
|
22
|
-
horizontal: true,
|
|
23
23
|
children: leftAddons
|
|
24
24
|
}), /* @__PURE__ */ jsxs(FlexBasic_default, {
|
|
25
|
+
horizontal: true,
|
|
25
26
|
align: "center",
|
|
26
27
|
gap: 8,
|
|
27
|
-
horizontal: true,
|
|
28
28
|
children: [
|
|
29
29
|
/* @__PURE__ */ jsxs(FlexBasic_default, {
|
|
30
|
-
gap: 4,
|
|
31
30
|
horizontal: true,
|
|
31
|
+
gap: 4,
|
|
32
32
|
style: {
|
|
33
33
|
color: cssVar.colorTextDescription,
|
|
34
34
|
fontSize: 12,
|
|
@@ -51,8 +51,8 @@ const ChatSendButton = ({ ref, leftAddons, rightAddons, texts, onSend, loading,
|
|
|
51
51
|
onClick: onStop,
|
|
52
52
|
children: texts?.stop || "Stop"
|
|
53
53
|
}) : /* @__PURE__ */ jsx(Button_default, {
|
|
54
|
-
onClick: onSend,
|
|
55
54
|
type: "primary",
|
|
55
|
+
onClick: onSend,
|
|
56
56
|
children: texts?.send || "Send"
|
|
57
57
|
})
|
|
58
58
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatSendButton.mjs","names":["ChatSendButton: FC<ChatSendButtonProps>","Flexbox","Icon","Button"],"sources":["../../../../src/chat/ChatInputArea/components/ChatSendButton.tsx"],"sourcesContent":["import { cssVar } from 'antd-style';\nimport { ArrowBigUp, CornerDownLeft, Loader2 } from 'lucide-react';\nimport { type FC } from 'react';\n\nimport Button from '@/Button';\nimport { Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\n\nimport { ChatSendButtonProps } from '../type';\n\nconst ChatSendButton: FC<ChatSendButtonProps> = ({\n ref,\n leftAddons,\n rightAddons,\n texts,\n onSend,\n loading,\n onStop,\n ...rest\n}) => {\n return (\n <Flexbox\n align={'end'}\n distribution={'space-between'}\n flex={'none'}\n gap={8}\n
|
|
1
|
+
{"version":3,"file":"ChatSendButton.mjs","names":["ChatSendButton: FC<ChatSendButtonProps>","Flexbox","Icon","Button"],"sources":["../../../../src/chat/ChatInputArea/components/ChatSendButton.tsx"],"sourcesContent":["import { cssVar } from 'antd-style';\nimport { ArrowBigUp, CornerDownLeft, Loader2 } from 'lucide-react';\nimport { type FC } from 'react';\n\nimport Button from '@/Button';\nimport { Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\n\nimport type { ChatSendButtonProps } from '../type';\n\nconst ChatSendButton: FC<ChatSendButtonProps> = ({\n ref,\n leftAddons,\n rightAddons,\n texts,\n onSend,\n loading,\n onStop,\n ...rest\n}) => {\n return (\n <Flexbox\n horizontal\n align={'end'}\n distribution={'space-between'}\n flex={'none'}\n gap={8}\n paddingInline={16}\n ref={ref}\n {...rest}\n >\n <Flexbox horizontal align={'center'} gap={8}>\n {leftAddons}\n </Flexbox>\n <Flexbox horizontal align={'center'} gap={8}>\n <Flexbox\n horizontal\n gap={4}\n style={{ color: cssVar.colorTextDescription, fontSize: 12, marginRight: 12 }}\n >\n <Icon icon={CornerDownLeft} />\n <span>{texts?.send || 'Send'}</span>\n <span>/</span>\n <Flexbox horizontal>\n <Icon icon={ArrowBigUp} />\n <Icon icon={CornerDownLeft} />\n </Flexbox>\n <span>{texts?.warp || 'Warp'}</span>\n </Flexbox>\n {rightAddons}\n {loading ? (\n <Button icon={loading && Loader2} onClick={onStop}>\n {texts?.stop || 'Stop'}\n </Button>\n ) : (\n <Button type={'primary'} onClick={onSend}>\n {texts?.send || 'Send'}\n </Button>\n )}\n </Flexbox>\n </Flexbox>\n );\n};\n\nChatSendButton.displayName = 'ChatSendButton';\n\nexport default ChatSendButton;\n"],"mappings":";;;;;;;;AAUA,MAAMA,kBAA2C,EAC/C,KACA,YACA,aACA,OACA,QACA,SACA,QACA,GAAG,WACC;AACJ,QACE,qBAACC;EACC;EACA,OAAO;EACP,cAAc;EACd,MAAM;EACN,KAAK;EACL,eAAe;EACV;EACL,GAAI;aAEJ,oBAACA;GAAQ;GAAW,OAAO;GAAU,KAAK;aACvC;IACO,EACV,qBAACA;GAAQ;GAAW,OAAO;GAAU,KAAK;;IACxC,qBAACA;KACC;KACA,KAAK;KACL,OAAO;MAAE,OAAO,OAAO;MAAsB,UAAU;MAAI,aAAa;MAAI;;MAE5E,oBAACC,gBAAK,MAAM,iBAAkB;MAC9B,oBAAC,oBAAM,OAAO,QAAQ,SAAc;MACpC,oBAAC,oBAAK,MAAQ;MACd,qBAACD;OAAQ;kBACP,oBAACC,gBAAK,MAAM,aAAc,EAC1B,oBAACA,gBAAK,MAAM,iBAAkB;QACtB;MACV,oBAAC,oBAAM,OAAO,QAAQ,SAAc;;MAC5B;IACT;IACA,UACC,oBAACC;KAAO,MAAM,WAAW;KAAS,SAAS;eACxC,OAAO,QAAQ;MACT,GAET,oBAACA;KAAO,MAAM;KAAW,SAAS;eAC/B,OAAO,QAAQ;MACT;;IAEH;GACF;;AAId,eAAe,cAAc;AAE7B,6BAAe"}
|
|
@@ -64,13 +64,13 @@ const ChatItem = memo(({ avatarAddon, onAvatarClick, avatarProps, actions, class
|
|
|
64
64
|
alt: avatarAlt,
|
|
65
65
|
avatar,
|
|
66
66
|
loading,
|
|
67
|
-
onClick: onAvatarClick,
|
|
68
67
|
placement,
|
|
69
68
|
size: avatarSize,
|
|
70
69
|
style: {
|
|
71
70
|
marginTop: showTitle ? -12 : 6,
|
|
72
71
|
...avatarProps?.style
|
|
73
|
-
}
|
|
72
|
+
},
|
|
73
|
+
onClick: onAvatarClick
|
|
74
74
|
}),
|
|
75
75
|
/* @__PURE__ */ jsxs(FlexBasic_default, {
|
|
76
76
|
align: placement === "left" ? "flex-start" : "flex-end",
|
|
@@ -89,8 +89,8 @@ const ChatItem = memo(({ avatarAddon, onAvatarClick, avatarProps, actions, class
|
|
|
89
89
|
align: placement === "left" ? "flex-start" : "flex-end",
|
|
90
90
|
className: messageContentClassName,
|
|
91
91
|
"data-layout": layoutMode,
|
|
92
|
-
direction: layoutMode === "horizontal" ? placement === "left" ? "horizontal" : "horizontal-reverse" : "vertical",
|
|
93
92
|
gap: 8,
|
|
93
|
+
direction: layoutMode === "horizontal" ? placement === "left" ? "horizontal" : "horizontal-reverse" : "vertical",
|
|
94
94
|
children: [/* @__PURE__ */ jsx(FlexBasic_default, {
|
|
95
95
|
ref: contentRef,
|
|
96
96
|
width: "100%",
|
|
@@ -103,6 +103,11 @@ const ChatItem = memo(({ avatarAddon, onAvatarClick, avatarProps, actions, class
|
|
|
103
103
|
fontSize,
|
|
104
104
|
markdownProps,
|
|
105
105
|
message,
|
|
106
|
+
placement,
|
|
107
|
+
primary,
|
|
108
|
+
renderMessage,
|
|
109
|
+
text,
|
|
110
|
+
variant,
|
|
106
111
|
messageExtra: /* @__PURE__ */ jsxs(Fragment$1, { children: [error && /* @__PURE__ */ jsx(ErrorContent_default, {
|
|
107
112
|
error,
|
|
108
113
|
message: errorMessage,
|
|
@@ -110,12 +115,7 @@ const ChatItem = memo(({ avatarAddon, onAvatarClick, avatarProps, actions, class
|
|
|
110
115
|
}), messageExtra] }),
|
|
111
116
|
onChange,
|
|
112
117
|
onDoubleClick,
|
|
113
|
-
onEditingChange
|
|
114
|
-
placement,
|
|
115
|
-
primary,
|
|
116
|
-
renderMessage,
|
|
117
|
-
text,
|
|
118
|
-
variant
|
|
118
|
+
onEditingChange
|
|
119
119
|
})
|
|
120
120
|
}), actions && /* @__PURE__ */ jsx(Actions_default, {
|
|
121
121
|
actions,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatItem.mjs","names":["chatMessages","Flexbox","Avatar","Title","ErrorContent","MessageContent","Actions","BorderSpacing"],"sources":["../../../src/chat/ChatItem/ChatItem.tsx"],"sourcesContent":["'use client';\n\nimport { cx, useResponsive } from 'antd-style';\nimport { memo, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { Flexbox } from '@/Flex';\nimport chatMessages from '@/i18n/resources/en/chat';\nimport { useTranslation } from '@/i18n/useTranslation';\n\nimport Actions from './components/Actions';\nimport Avatar from './components/Avatar';\nimport BorderSpacing from './components/BorderSpacing';\nimport ErrorContent from './components/ErrorContent';\nimport MessageContent from './components/MessageContent';\nimport Title from './components/Title';\nimport { styles } from './style';\nimport type { ChatItemProps } from './type';\n\nconst MOBILE_AVATAR_SIZE = 32;\n\nconst ChatItem = memo<ChatItemProps>(\n ({\n avatarAddon,\n onAvatarClick,\n avatarProps,\n actions,\n className,\n primary,\n loading,\n message,\n placeholderMessage,\n placement = 'left',\n variant = 'bubble',\n avatar,\n error,\n showTitle,\n time,\n editing,\n onChange,\n onEditingChange,\n messageExtra,\n renderMessage,\n text,\n errorMessage,\n onDoubleClick,\n fontSize,\n aboveMessage,\n belowMessage,\n markdownProps,\n actionsWrapWidth = 54,\n showAvatar = true,\n titleAddon,\n ...rest\n }) => {\n const { mobile } = useResponsive();\n const { t } = useTranslation(chatMessages);\n\n const avatarSize = mobile ? MOBILE_AVATAR_SIZE : avatarProps?.size || 40;\n const cssVariables = useMemo<Record<string, string>>(\n () => ({\n '--chat-item-avatar-size': `${avatarSize}px`,\n }),\n [avatarSize],\n );\n\n const hasTime = Boolean(time);\n const placeholderText = placeholderMessage ?? t('chat.placeholder');\n const avatarAlt = avatarProps?.alt || avatar.title || t('chat.avatar');\n\n // 在 ChatItem 组件中添加\n const contentRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const [layoutMode, setLayoutMode] = useState<'horizontal' | 'vertical'>(\n variant === 'bubble' ? 'horizontal' : 'vertical',\n );\n\n // 使用 ResizeObserver 监控内容和容器尺寸\n useEffect(() => {\n if (variant === 'docs') {\n setLayoutMode('vertical');\n return;\n }\n\n if (!contentRef.current || !containerRef.current) return;\n\n const observer = new ResizeObserver(() => {\n if (!contentRef.current || !containerRef.current) return;\n\n const containerWidth = containerRef.current.clientWidth;\n const contentWidth = contentRef.current.scrollWidth; // 使用scrollWidth获取实际内容宽度\n\n // 预留给Actions的最小空间 (根据实际Actions大小调整)\n\n // 只有当内容宽度 + Actions最小宽度 > 容器宽度时才切换布局\n setLayoutMode(contentWidth + actionsWrapWidth > containerWidth ? 'vertical' : 'horizontal');\n });\n\n observer.observe(contentRef.current);\n observer.observe(containerRef.current);\n\n return () => observer.disconnect();\n }, [variant, actionsWrapWidth]);\n\n const containerClassName = cx(\n variant === 'docs' ? styles.containerDocs : styles.container,\n className,\n );\n\n const messageContainerClassName = useMemo(() => {\n if (editing) {\n return hasTime ? styles.messageContainerEditingWithTime : styles.messageContainerEditing;\n }\n return hasTime ? styles.messageContainerWithTime : styles.messageContainer;\n }, [editing, hasTime]);\n\n const messageContentClassName = useMemo(() => {\n return editing ? styles.messageContentEditing : styles.messageContent;\n }, [editing]);\n\n return (\n <Flexbox\n className={containerClassName}\n direction={placement === 'left' ? 'horizontal' : 'horizontal-reverse'}\n gap={mobile ? 6 : 12}\n style={cssVariables}\n {...rest}\n >\n {showAvatar && (\n <Avatar\n {...avatarProps}\n addon={avatarAddon}\n alt={avatarAlt}\n avatar={avatar}\n loading={loading}\n
|
|
1
|
+
{"version":3,"file":"ChatItem.mjs","names":["chatMessages","Flexbox","Avatar","Title","ErrorContent","MessageContent","Actions","BorderSpacing"],"sources":["../../../src/chat/ChatItem/ChatItem.tsx"],"sourcesContent":["'use client';\n\nimport { cx, useResponsive } from 'antd-style';\nimport { memo, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { Flexbox } from '@/Flex';\nimport chatMessages from '@/i18n/resources/en/chat';\nimport { useTranslation } from '@/i18n/useTranslation';\n\nimport Actions from './components/Actions';\nimport Avatar from './components/Avatar';\nimport BorderSpacing from './components/BorderSpacing';\nimport ErrorContent from './components/ErrorContent';\nimport MessageContent from './components/MessageContent';\nimport Title from './components/Title';\nimport { styles } from './style';\nimport type { ChatItemProps } from './type';\n\nconst MOBILE_AVATAR_SIZE = 32;\n\nconst ChatItem = memo<ChatItemProps>(\n ({\n avatarAddon,\n onAvatarClick,\n avatarProps,\n actions,\n className,\n primary,\n loading,\n message,\n placeholderMessage,\n placement = 'left',\n variant = 'bubble',\n avatar,\n error,\n showTitle,\n time,\n editing,\n onChange,\n onEditingChange,\n messageExtra,\n renderMessage,\n text,\n errorMessage,\n onDoubleClick,\n fontSize,\n aboveMessage,\n belowMessage,\n markdownProps,\n actionsWrapWidth = 54,\n showAvatar = true,\n titleAddon,\n ...rest\n }) => {\n const { mobile } = useResponsive();\n const { t } = useTranslation(chatMessages);\n\n const avatarSize = mobile ? MOBILE_AVATAR_SIZE : avatarProps?.size || 40;\n const cssVariables = useMemo<Record<string, string>>(\n () => ({\n '--chat-item-avatar-size': `${avatarSize}px`,\n }),\n [avatarSize],\n );\n\n const hasTime = Boolean(time);\n const placeholderText = placeholderMessage ?? t('chat.placeholder');\n const avatarAlt = avatarProps?.alt || avatar.title || t('chat.avatar');\n\n // 在 ChatItem 组件中添加\n const contentRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const [layoutMode, setLayoutMode] = useState<'horizontal' | 'vertical'>(\n variant === 'bubble' ? 'horizontal' : 'vertical',\n );\n\n // 使用 ResizeObserver 监控内容和容器尺寸\n useEffect(() => {\n if (variant === 'docs') {\n setLayoutMode('vertical');\n return;\n }\n\n if (!contentRef.current || !containerRef.current) return;\n\n const observer = new ResizeObserver(() => {\n if (!contentRef.current || !containerRef.current) return;\n\n const containerWidth = containerRef.current.clientWidth;\n const contentWidth = contentRef.current.scrollWidth; // 使用scrollWidth获取实际内容宽度\n\n // 预留给Actions的最小空间 (根据实际Actions大小调整)\n\n // 只有当内容宽度 + Actions最小宽度 > 容器宽度时才切换布局\n setLayoutMode(contentWidth + actionsWrapWidth > containerWidth ? 'vertical' : 'horizontal');\n });\n\n observer.observe(contentRef.current);\n observer.observe(containerRef.current);\n\n return () => observer.disconnect();\n }, [variant, actionsWrapWidth]);\n\n const containerClassName = cx(\n variant === 'docs' ? styles.containerDocs : styles.container,\n className,\n );\n\n const messageContainerClassName = useMemo(() => {\n if (editing) {\n return hasTime ? styles.messageContainerEditingWithTime : styles.messageContainerEditing;\n }\n return hasTime ? styles.messageContainerWithTime : styles.messageContainer;\n }, [editing, hasTime]);\n\n const messageContentClassName = useMemo(() => {\n return editing ? styles.messageContentEditing : styles.messageContent;\n }, [editing]);\n\n return (\n <Flexbox\n className={containerClassName}\n direction={placement === 'left' ? 'horizontal' : 'horizontal-reverse'}\n gap={mobile ? 6 : 12}\n style={cssVariables}\n {...rest}\n >\n {showAvatar && (\n <Avatar\n {...avatarProps}\n addon={avatarAddon}\n alt={avatarAlt}\n avatar={avatar}\n loading={loading}\n placement={placement}\n size={avatarSize}\n style={{\n marginTop: showTitle ? -12 : 6,\n ...avatarProps?.style,\n }}\n onClick={onAvatarClick}\n />\n )}\n <Flexbox\n align={placement === 'left' ? 'flex-start' : 'flex-end'}\n className={messageContainerClassName}\n ref={containerRef}\n >\n <Title\n avatar={avatar}\n placement={placement}\n showTitle={showTitle}\n time={time}\n titleAddon={titleAddon}\n />\n {aboveMessage}\n <Flexbox\n align={placement === 'left' ? 'flex-start' : 'flex-end'}\n className={messageContentClassName}\n data-layout={layoutMode} // 添加数据属性以方便样式选择\n gap={8}\n direction={\n layoutMode === 'horizontal'\n ? placement === 'left'\n ? 'horizontal'\n : 'horizontal-reverse'\n : 'vertical'\n }\n >\n <Flexbox ref={contentRef} width={'100%'}>\n {error && (message === placeholderText || !message) ? (\n <ErrorContent error={error} message={errorMessage} placement={placement} />\n ) : (\n <MessageContent\n editing={editing}\n fontSize={fontSize}\n markdownProps={markdownProps}\n message={message}\n placement={placement}\n primary={primary}\n renderMessage={renderMessage}\n text={text}\n variant={variant}\n messageExtra={\n <>\n {error && (\n <ErrorContent error={error} message={errorMessage} placement={placement} />\n )}\n {messageExtra}\n </>\n }\n onChange={onChange}\n onDoubleClick={onDoubleClick}\n onEditingChange={onEditingChange}\n />\n )}\n </Flexbox>\n {actions && (\n <Actions\n actions={actions}\n editing={editing}\n placement={placement}\n variant={variant}\n />\n )}\n </Flexbox>\n {belowMessage}\n </Flexbox>\n {mobile && variant === 'bubble' && showAvatar && (\n <BorderSpacing borderSpacing={MOBILE_AVATAR_SIZE} />\n )}\n </Flexbox>\n );\n },\n);\n\nexport default ChatItem;\n\nexport type { ChatItemProps } from './type';\n"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,MAAM,qBAAqB;AAE3B,MAAM,WAAW,MACd,EACC,aACA,eACA,aACA,SACA,WACA,SACA,SACA,SACA,oBACA,YAAY,QACZ,UAAU,UACV,QACA,OACA,WACA,MACA,SACA,UACA,iBACA,cACA,eACA,MACA,cACA,eACA,UACA,cACA,cACA,eACA,mBAAmB,IACnB,aAAa,MACb,YACA,GAAG,WACC;CACJ,MAAM,EAAE,WAAW,eAAe;CAClC,MAAM,EAAE,MAAM,eAAeA,aAAa;CAE1C,MAAM,aAAa,SAAS,qBAAqB,aAAa,QAAQ;CACtE,MAAM,eAAe,eACZ,EACL,2BAA2B,GAAG,WAAW,KAC1C,GACD,CAAC,WAAW,CACb;CAED,MAAM,UAAU,QAAQ,KAAK;CAC7B,MAAM,kBAAkB,sBAAsB,EAAE,mBAAmB;CACnE,MAAM,YAAY,aAAa,OAAO,OAAO,SAAS,EAAE,cAAc;CAGtE,MAAM,aAAa,OAAuB,KAAK;CAC/C,MAAM,eAAe,OAAuB,KAAK;CACjD,MAAM,CAAC,YAAY,iBAAiB,SAClC,YAAY,WAAW,eAAe,WACvC;AAGD,iBAAgB;AACd,MAAI,YAAY,QAAQ;AACtB,iBAAc,WAAW;AACzB;;AAGF,MAAI,CAAC,WAAW,WAAW,CAAC,aAAa,QAAS;EAElD,MAAM,WAAW,IAAI,qBAAqB;AACxC,OAAI,CAAC,WAAW,WAAW,CAAC,aAAa,QAAS;GAElD,MAAM,iBAAiB,aAAa,QAAQ;GAC5C,MAAM,eAAe,WAAW,QAAQ;AAKxC,iBAAc,eAAe,mBAAmB,iBAAiB,aAAa,aAAa;IAC3F;AAEF,WAAS,QAAQ,WAAW,QAAQ;AACpC,WAAS,QAAQ,aAAa,QAAQ;AAEtC,eAAa,SAAS,YAAY;IACjC,CAAC,SAAS,iBAAiB,CAAC;CAE/B,MAAM,qBAAqB,GACzB,YAAY,SAAS,OAAO,gBAAgB,OAAO,WACnD,UACD;CAED,MAAM,4BAA4B,cAAc;AAC9C,MAAI,QACF,QAAO,UAAU,OAAO,kCAAkC,OAAO;AAEnE,SAAO,UAAU,OAAO,2BAA2B,OAAO;IACzD,CAAC,SAAS,QAAQ,CAAC;CAEtB,MAAM,0BAA0B,cAAc;AAC5C,SAAO,UAAU,OAAO,wBAAwB,OAAO;IACtD,CAAC,QAAQ,CAAC;AAEb,QACE,qBAACC;EACC,WAAW;EACX,WAAW,cAAc,SAAS,eAAe;EACjD,KAAK,SAAS,IAAI;EAClB,OAAO;EACP,GAAI;;GAEH,cACC,oBAACC;IACC,GAAI;IACJ,OAAO;IACP,KAAK;IACG;IACC;IACE;IACX,MAAM;IACN,OAAO;KACL,WAAW,YAAY,MAAM;KAC7B,GAAG,aAAa;KACjB;IACD,SAAS;KACT;GAEJ,qBAACD;IACC,OAAO,cAAc,SAAS,eAAe;IAC7C,WAAW;IACX,KAAK;;KAEL,oBAACE;MACS;MACG;MACA;MACL;MACM;OACZ;KACD;KACD,qBAACF;MACC,OAAO,cAAc,SAAS,eAAe;MAC7C,WAAW;MACX,eAAa;MACb,KAAK;MACL,WACE,eAAe,eACX,cAAc,SACZ,eACA,uBACF;iBAGN,oBAACA;OAAQ,KAAK;OAAY,OAAO;iBAC9B,UAAU,YAAY,mBAAmB,CAAC,WACzC,oBAACG;QAAoB;QAAO,SAAS;QAAyB;SAAa,GAE3E,oBAACC;QACU;QACC;QACK;QACN;QACE;QACF;QACM;QACT;QACG;QACT,cACE,8CACG,SACC,oBAACD;SAAoB;SAAO,SAAS;SAAyB;UAAa,EAE5E,gBACA;QAEK;QACK;QACE;SACjB;QAEI,EACT,WACC,oBAACE;OACU;OACA;OACE;OACF;QACT;OAEI;KACT;;KACO;GACT,UAAU,YAAY,YAAY,cACjC,oBAACC,yBAAc,eAAe,qBAAsB;;GAE9C;EAGf;AAED,uBAAe"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Actions.mjs","names":["Actions: FC<ActionsProps>","Flexbox"],"sources":["../../../../src/chat/ChatItem/components/Actions.tsx"],"sourcesContent":["import { cx } from 'antd-style';\nimport { type FC, type Ref, useMemo } from 'react';\n\nimport {
|
|
1
|
+
{"version":3,"file":"Actions.mjs","names":["Actions: FC<ActionsProps>","Flexbox"],"sources":["../../../../src/chat/ChatItem/components/Actions.tsx"],"sourcesContent":["import { cx } from 'antd-style';\nimport { type FC, type Ref, useMemo } from 'react';\n\nimport { type ChatItemProps } from '@/chat/ChatItem';\nimport { Flexbox } from '@/Flex';\n\nimport { styles } from '../style';\n\nexport interface ActionsProps {\n actions: ChatItemProps['actions'];\n editing?: boolean;\n placement?: ChatItemProps['placement'];\n ref?: Ref<HTMLDivElement>;\n variant?: ChatItemProps['variant'];\n}\n\nconst Actions: FC<ActionsProps> = ({\n actions,\n placement = 'left',\n variant = 'bubble',\n editing,\n ref,\n}) => {\n const actionsClassName = useMemo(() => {\n if (variant === 'bubble') {\n return placement === 'left' ? styles.actionsBubbleLeft : styles.actionsBubbleRight;\n }\n return placement === 'left' ? styles.actionsDocsLeft : styles.actionsDocsRight;\n }, [placement, variant]);\n\n return (\n <Flexbox\n align={'flex-start'}\n className={cx(actionsClassName, editing && styles.actionsEditing)}\n ref={ref}\n role=\"menubar\"\n >\n {actions}\n </Flexbox>\n );\n};\n\nexport default Actions;\n"],"mappings":";;;;;;;AAgBA,MAAMA,WAA6B,EACjC,SACA,YAAY,QACZ,UAAU,UACV,SACA,UACI;AAQJ,QACE,oBAACC;EACC,OAAO;EACP,WAAW,GAVU,cAAc;AACrC,OAAI,YAAY,SACd,QAAO,cAAc,SAAS,OAAO,oBAAoB,OAAO;AAElE,UAAO,cAAc,SAAS,OAAO,kBAAkB,OAAO;KAC7D,CAAC,WAAW,QAAQ,CAAC,EAKY,WAAW,OAAO,eAAe;EAC5D;EACL,MAAK;YAEJ;GACO;;AAId,sBAAe"}
|
|
@@ -19,10 +19,10 @@ const Avatar = ({ loading, avatar, placement, unoptimized, addon, onClick, size
|
|
|
19
19
|
animation: loading,
|
|
20
20
|
avatar: avatar.avatar,
|
|
21
21
|
background: avatar.backgroundColor,
|
|
22
|
-
onClick,
|
|
23
22
|
size,
|
|
24
23
|
title: avatar.title,
|
|
25
|
-
unoptimized
|
|
24
|
+
unoptimized,
|
|
25
|
+
onClick
|
|
26
26
|
}), /* @__PURE__ */ jsx(Loading_default, {
|
|
27
27
|
loading,
|
|
28
28
|
placement
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.mjs","names":["Avatar: FC<AvatarProps>","A","Loading","Flexbox"],"sources":["../../../../src/chat/ChatItem/components/Avatar.tsx"],"sourcesContent":["import { type CSSProperties, type FC, useMemo } from 'react';\n\nimport A from '@/Avatar';\nimport { Flexbox } from '@/Flex';\n\nimport { styles } from '../style';\nimport type { ChatItemProps } from '../type';\nimport Loading from './Loading';\n\nexport interface AvatarProps {\n addon?: ChatItemProps['avatarAddon'];\n alt?: string;\n avatar: ChatItemProps['avatar'];\n loading?: ChatItemProps['loading'];\n onClick?: ChatItemProps['onAvatarClick'];\n placement?: ChatItemProps['placement'];\n size?: number;\n style?: CSSProperties;\n unoptimized?: boolean;\n}\n\nconst Avatar: FC<AvatarProps> = ({\n loading,\n avatar,\n placement,\n unoptimized,\n addon,\n onClick,\n size = 40,\n style,\n alt,\n}) => {\n const cssVariables = useMemo<Record<string, string>>(\n () => ({\n '--chat-item-avatar-size': `${size}px`,\n }),\n [size],\n );\n\n const avatarContent = (\n <div className={styles.avatarContainer} style={{ ...cssVariables, ...style }}>\n <A\n alt={alt || avatar.title}\n animation={loading}\n avatar={avatar.avatar}\n background={avatar.backgroundColor}\n
|
|
1
|
+
{"version":3,"file":"Avatar.mjs","names":["Avatar: FC<AvatarProps>","A","Loading","Flexbox"],"sources":["../../../../src/chat/ChatItem/components/Avatar.tsx"],"sourcesContent":["import { type CSSProperties, type FC, useMemo } from 'react';\n\nimport A from '@/Avatar';\nimport { Flexbox } from '@/Flex';\n\nimport { styles } from '../style';\nimport type { ChatItemProps } from '../type';\nimport Loading from './Loading';\n\nexport interface AvatarProps {\n addon?: ChatItemProps['avatarAddon'];\n alt?: string;\n avatar: ChatItemProps['avatar'];\n loading?: ChatItemProps['loading'];\n onClick?: ChatItemProps['onAvatarClick'];\n placement?: ChatItemProps['placement'];\n size?: number;\n style?: CSSProperties;\n unoptimized?: boolean;\n}\n\nconst Avatar: FC<AvatarProps> = ({\n loading,\n avatar,\n placement,\n unoptimized,\n addon,\n onClick,\n size = 40,\n style,\n alt,\n}) => {\n const cssVariables = useMemo<Record<string, string>>(\n () => ({\n '--chat-item-avatar-size': `${size}px`,\n }),\n [size],\n );\n\n const avatarContent = (\n <div className={styles.avatarContainer} style={{ ...cssVariables, ...style }}>\n <A\n alt={alt || avatar.title}\n animation={loading}\n avatar={avatar.avatar}\n background={avatar.backgroundColor}\n size={size}\n title={avatar.title}\n unoptimized={unoptimized}\n onClick={onClick}\n />\n <Loading loading={loading} placement={placement} />\n </div>\n );\n\n if (!addon) return avatarContent;\n return (\n <Flexbox align={'center'} className={styles.avatarGroupContainer} gap={8}>\n {avatarContent}\n {addon}\n </Flexbox>\n );\n};\n\nexport default Avatar;\n"],"mappings":";;;;;;;;AAqBA,MAAMA,UAA2B,EAC/B,SACA,QACA,WACA,aACA,OACA,SACA,OAAO,IACP,OACA,UACI;CACJ,MAAM,eAAe,eACZ,EACL,2BAA2B,GAAG,KAAK,KACpC,GACD,CAAC,KAAK,CACP;CAED,MAAM,gBACJ,qBAAC;EAAI,WAAW,OAAO;EAAiB,OAAO;GAAE,GAAG;GAAc,GAAG;GAAO;aAC1E,oBAACC;GACC,KAAK,OAAO,OAAO;GACnB,WAAW;GACX,QAAQ,OAAO;GACf,YAAY,OAAO;GACb;GACN,OAAO,OAAO;GACD;GACJ;IACT,EACF,oBAACC;GAAiB;GAAoB;IAAa;GAC/C;AAGR,KAAI,CAAC,MAAO,QAAO;AACnB,QACE,qBAACC;EAAQ,OAAO;EAAU,WAAW,OAAO;EAAsB,KAAK;aACpE,eACA;GACO;;AAId,qBAAe"}
|
|
@@ -8,9 +8,9 @@ const ErrorContent = ({ message, error }) => {
|
|
|
8
8
|
return /* @__PURE__ */ jsx(FlexBasic_default, {
|
|
9
9
|
className: styles.errorContainer,
|
|
10
10
|
children: /* @__PURE__ */ jsx(Alert_default, {
|
|
11
|
+
showIcon: true,
|
|
11
12
|
closable: false,
|
|
12
13
|
extra: message,
|
|
13
|
-
showIcon: true,
|
|
14
14
|
type: "error",
|
|
15
15
|
...error
|
|
16
16
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorContent.mjs","names":["ErrorContent: FC<ErrorContentProps>","Flexbox","Alert"],"sources":["../../../../src/chat/ChatItem/components/ErrorContent.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"ErrorContent.mjs","names":["ErrorContent: FC<ErrorContentProps>","Flexbox","Alert"],"sources":["../../../../src/chat/ChatItem/components/ErrorContent.tsx"],"sourcesContent":["import type { FC } from 'react';\n\nimport Alert from '@/Alert';\nimport { type ChatItemProps } from '@/chat/ChatItem';\nimport { Flexbox } from '@/Flex';\n\nimport { styles } from '../style';\n\nexport interface ErrorContentProps {\n error?: ChatItemProps['error'];\n message?: ChatItemProps['errorMessage'];\n placement?: ChatItemProps['placement'];\n}\n\nconst ErrorContent: FC<ErrorContentProps> = ({ message, error }) => {\n return (\n <Flexbox className={styles.errorContainer}>\n <Alert showIcon closable={false} extra={message} type={'error'} {...error} />\n </Flexbox>\n );\n};\n\nexport default ErrorContent;\n"],"mappings":";;;;;;AAcA,MAAMA,gBAAuC,EAAE,SAAS,YAAY;AAClE,QACE,oBAACC;EAAQ,WAAW,OAAO;YACzB,oBAACC;GAAM;GAAS,UAAU;GAAO,OAAO;GAAS,MAAM;GAAS,GAAI;IAAS;GACrE;;AAId,2BAAe"}
|
|
@@ -12,12 +12,12 @@ const Loading = ({ loading, placement = "left" }) => {
|
|
|
12
12
|
className: placement === "left" ? styles.loadingLeft : styles.loadingRight,
|
|
13
13
|
justify: "center",
|
|
14
14
|
children: /* @__PURE__ */ jsx(Icon_default, {
|
|
15
|
+
spin: true,
|
|
15
16
|
icon: Loader2,
|
|
16
17
|
size: {
|
|
17
18
|
size: 12,
|
|
18
19
|
strokeWidth: 3
|
|
19
|
-
}
|
|
20
|
-
spin: true
|
|
20
|
+
}
|
|
21
21
|
})
|
|
22
22
|
});
|
|
23
23
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Loading.mjs","names":["Loading: FC<LoadingProps>","Flexbox","Icon"],"sources":["../../../../src/chat/ChatItem/components/Loading.tsx"],"sourcesContent":["import { Loader2 } from 'lucide-react';\nimport {
|
|
1
|
+
{"version":3,"file":"Loading.mjs","names":["Loading: FC<LoadingProps>","Flexbox","Icon"],"sources":["../../../../src/chat/ChatItem/components/Loading.tsx"],"sourcesContent":["import { Loader2 } from 'lucide-react';\nimport type { FC } from 'react';\n\nimport { type ChatItemProps } from '@/chat/ChatItem';\nimport { Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\n\nimport { styles } from '../style';\n\nexport interface LoadingProps {\n loading?: ChatItemProps['loading'];\n placement?: ChatItemProps['placement'];\n}\n\nconst Loading: FC<LoadingProps> = ({ loading, placement = 'left' }) => {\n if (!loading) return null;\n\n return (\n <Flexbox\n align={'center'}\n className={placement === 'left' ? styles.loadingLeft : styles.loadingRight}\n justify={'center'}\n >\n <Icon spin icon={Loader2} size={{ size: 12, strokeWidth: 3 }} />\n </Flexbox>\n );\n};\n\nexport default Loading;\n"],"mappings":";;;;;;;AAcA,MAAMA,WAA6B,EAAE,SAAS,YAAY,aAAa;AACrE,KAAI,CAAC,QAAS,QAAO;AAErB,QACE,oBAACC;EACC,OAAO;EACP,WAAW,cAAc,SAAS,OAAO,cAAc,OAAO;EAC9D,SAAS;YAET,oBAACC;GAAK;GAAK,MAAM;GAAS,MAAM;IAAE,MAAM;IAAI,aAAa;IAAG;IAAI;GACxD;;AAId,sBAAe"}
|