@ryanhe919/lumen-ui 0.2.2 → 0.3.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/LICENSE +21 -0
- package/dist/{LMBadge-OEGi87jW.js → LMBadge-BBDOGTps.js} +3 -3
- package/dist/{LMBadge-OEGi87jW.js.map → LMBadge-BBDOGTps.js.map} +1 -1
- package/dist/{LMBadge-1rGc3lqC.cjs → LMBadge-D95iccla.cjs} +3 -3
- package/dist/{LMBadge-1rGc3lqC.cjs.map → LMBadge-D95iccla.cjs.map} +1 -1
- package/dist/{LMCard-Sulq0Yjh.js → LMCard-D7ABNC95.js} +2 -2
- package/dist/{LMCard-Sulq0Yjh.js.map → LMCard-D7ABNC95.js.map} +1 -1
- package/dist/{LMCard-C48UclOk.cjs → LMCard-D_K051f2.cjs} +2 -2
- package/dist/{LMCard-C48UclOk.cjs.map → LMCard-D_K051f2.cjs.map} +1 -1
- package/dist/{LMDatePicker-BlKctoyr.cjs → LMDatePicker-BlUwN4On.cjs} +12 -12
- package/dist/LMDatePicker-BlUwN4On.cjs.map +1 -0
- package/dist/{LMDatePicker-CXiYSome.js → LMDatePicker-DSv28BFH.js} +12 -12
- package/dist/LMDatePicker-DSv28BFH.js.map +1 -0
- package/dist/{LMDrawer-BcVtcYCN.cjs → LMDrawer--lFV_a3m.cjs} +3 -3
- package/dist/{LMDrawer-BcVtcYCN.cjs.map → LMDrawer--lFV_a3m.cjs.map} +1 -1
- package/dist/{LMDrawer-DcPqwiuo.js → LMDrawer-DJ5ugeZR.js} +3 -3
- package/dist/{LMDrawer-DcPqwiuo.js.map → LMDrawer-DJ5ugeZR.js.map} +1 -1
- package/dist/{LMStatCard-4mDqhlHt.js → LMStatCard-D5HV9r6d.js} +4 -4
- package/dist/{LMStatCard-4mDqhlHt.js.map → LMStatCard-D5HV9r6d.js.map} +1 -1
- package/dist/{LMStatCard-Du5Mti-p.cjs → LMStatCard-MXs9Z0qH.cjs} +4 -4
- package/dist/{LMStatCard-Du5Mti-p.cjs.map → LMStatCard-MXs9Z0qH.cjs.map} +1 -1
- package/dist/{LMSwitch-CVFdgSPh.js → LMSwitch-CP1_nrfU.js} +2 -2
- package/dist/LMSwitch-CP1_nrfU.js.map +1 -0
- package/dist/{LMSwitch-CKnrY30F.cjs → LMSwitch-DYoSH6wE.cjs} +2 -2
- package/dist/LMSwitch-DYoSH6wE.cjs.map +1 -0
- package/dist/{LMTabs-DZFAU58t.js → LMTabs-D5n9lB8X.js} +3 -3
- package/dist/{LMTabs-DZFAU58t.js.map → LMTabs-D5n9lB8X.js.map} +1 -1
- package/dist/{LMTabs-DCVaqbrn.cjs → LMTabs-NPmOzPat.cjs} +3 -3
- package/dist/{LMTabs-DCVaqbrn.cjs.map → LMTabs-NPmOzPat.cjs.map} +1 -1
- package/dist/{LMUpload-B_GA4O8W.js → LMUpload-BwXoxIfE.js} +5 -5
- package/dist/LMUpload-BwXoxIfE.js.map +1 -0
- package/dist/{LMUpload-BpISVQGz.cjs → LMUpload-CJopkWc6.cjs} +5 -5
- package/dist/LMUpload-CJopkWc6.cjs.map +1 -0
- package/dist/components/Chat/LMChatBubble/LMChatBubble.d.ts +28 -0
- package/dist/components/Chat/LMChatBubble/LMChatBubble.d.ts.map +1 -0
- package/dist/components/Chat/LMChatBubble/LMChatBubble.stories.d.ts +25 -0
- package/dist/components/Chat/LMChatBubble/LMChatBubble.stories.d.ts.map +1 -0
- package/dist/components/Chat/LMChatBubble/index.d.ts +3 -0
- package/dist/components/Chat/LMChatBubble/index.d.ts.map +1 -0
- package/dist/components/Chat/LMChatContainer/LMChatContainer.d.ts +85 -0
- package/dist/components/Chat/LMChatContainer/LMChatContainer.d.ts.map +1 -0
- package/dist/components/Chat/LMChatContainer/LMChatContainer.stories.d.ts +23 -0
- package/dist/components/Chat/LMChatContainer/LMChatContainer.stories.d.ts.map +1 -0
- package/dist/components/Chat/LMChatContainer/index.d.ts +3 -0
- package/dist/components/Chat/LMChatContainer/index.d.ts.map +1 -0
- package/dist/components/Chat/LMChatInput/LMChatInput.d.ts +55 -0
- package/dist/components/Chat/LMChatInput/LMChatInput.d.ts.map +1 -0
- package/dist/components/Chat/LMChatInput/LMChatInput.stories.d.ts +27 -0
- package/dist/components/Chat/LMChatInput/LMChatInput.stories.d.ts.map +1 -0
- package/dist/components/Chat/LMChatInput/index.d.ts +3 -0
- package/dist/components/Chat/LMChatInput/index.d.ts.map +1 -0
- package/dist/components/Chat/LMChatList/LMChatList.d.ts +60 -0
- package/dist/components/Chat/LMChatList/LMChatList.d.ts.map +1 -0
- package/dist/components/Chat/LMChatList/LMChatList.stories.d.ts +21 -0
- package/dist/components/Chat/LMChatList/LMChatList.stories.d.ts.map +1 -0
- package/dist/components/Chat/LMChatList/index.d.ts +3 -0
- package/dist/components/Chat/LMChatList/index.d.ts.map +1 -0
- package/dist/components/Chat/LMChatMessage/LMChatMessage.d.ts +56 -0
- package/dist/components/Chat/LMChatMessage/LMChatMessage.d.ts.map +1 -0
- package/dist/components/Chat/LMChatMessage/LMChatMessage.stories.d.ts +27 -0
- package/dist/components/Chat/LMChatMessage/LMChatMessage.stories.d.ts.map +1 -0
- package/dist/components/Chat/LMChatMessage/index.d.ts +3 -0
- package/dist/components/Chat/LMChatMessage/index.d.ts.map +1 -0
- package/dist/components/Chat/LMCodeBlock/LMCodeBlock.d.ts +32 -0
- package/dist/components/Chat/LMCodeBlock/LMCodeBlock.d.ts.map +1 -0
- package/dist/components/Chat/LMCodeBlock/LMCodeBlock.stories.d.ts +27 -0
- package/dist/components/Chat/LMCodeBlock/LMCodeBlock.stories.d.ts.map +1 -0
- package/dist/components/Chat/LMCodeBlock/index.d.ts +3 -0
- package/dist/components/Chat/LMCodeBlock/index.d.ts.map +1 -0
- package/dist/components/Chat/LMMarkdownRenderer/LMMarkdownRenderer.d.ts +24 -0
- package/dist/components/Chat/LMMarkdownRenderer/LMMarkdownRenderer.d.ts.map +1 -0
- package/dist/components/Chat/LMMarkdownRenderer/LMMarkdownRenderer.stories.d.ts +23 -0
- package/dist/components/Chat/LMMarkdownRenderer/LMMarkdownRenderer.stories.d.ts.map +1 -0
- package/dist/components/Chat/LMMarkdownRenderer/index.d.ts +3 -0
- package/dist/components/Chat/LMMarkdownRenderer/index.d.ts.map +1 -0
- package/dist/components/Chat/LMTypingIndicator/LMTypingIndicator.d.ts +21 -0
- package/dist/components/Chat/LMTypingIndicator/LMTypingIndicator.d.ts.map +1 -0
- package/dist/components/Chat/LMTypingIndicator/LMTypingIndicator.stories.d.ts +25 -0
- package/dist/components/Chat/LMTypingIndicator/LMTypingIndicator.stories.d.ts.map +1 -0
- package/dist/components/Chat/LMTypingIndicator/index.d.ts +3 -0
- package/dist/components/Chat/LMTypingIndicator/index.d.ts.map +1 -0
- package/dist/components/Chat/index.d.ts +9 -0
- package/dist/components/Chat/index.d.ts.map +1 -0
- package/dist/components/badge/index.cjs +1 -1
- package/dist/components/badge/index.js +1 -1
- package/dist/components/card/index.cjs +1 -1
- package/dist/components/card/index.js +1 -1
- package/dist/components/date-picker/index.cjs +1 -1
- package/dist/components/date-picker/index.js +1 -1
- package/dist/components/drawer/index.cjs +1 -1
- package/dist/components/drawer/index.js +1 -1
- package/dist/components/stat-card/index.cjs +1 -1
- package/dist/components/stat-card/index.js +1 -1
- package/dist/components/switch/index.cjs +1 -1
- package/dist/components/switch/index.js +1 -1
- package/dist/components/tabs/index.cjs +1 -1
- package/dist/components/tabs/index.js +1 -1
- package/dist/components/upload/index.cjs +1 -1
- package/dist/components/upload/index.js +1 -1
- package/dist/index.cjs +2017 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2023 -13
- package/dist/index.js.map +1 -1
- package/dist/style.css +254 -2
- package/package.json +7 -7
- package/dist/LMDatePicker-BlKctoyr.cjs.map +0 -1
- package/dist/LMDatePicker-CXiYSome.js.map +0 -1
- package/dist/LMSwitch-CKnrY30F.cjs.map +0 -1
- package/dist/LMSwitch-CVFdgSPh.js.map +0 -1
- package/dist/LMUpload-B_GA4O8W.js.map +0 -1
- package/dist/LMUpload-BpISVQGz.cjs.map +0 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { default as LMChatContainer } from './LMChatContainer';
|
|
3
|
+
|
|
4
|
+
declare const meta: Meta<typeof LMChatContainer>;
|
|
5
|
+
export default meta;
|
|
6
|
+
type Story = StoryObj<typeof meta>;
|
|
7
|
+
/** 基础聊天容器 */
|
|
8
|
+
export declare const Default: Story;
|
|
9
|
+
/** 空状态 */
|
|
10
|
+
export declare const Empty: Story;
|
|
11
|
+
/** 正在生成 */
|
|
12
|
+
export declare const Generating: Story;
|
|
13
|
+
/** 禁用输入 */
|
|
14
|
+
export declare const Disabled: Story;
|
|
15
|
+
/** 带头部 */
|
|
16
|
+
export declare const WithHeader: Story;
|
|
17
|
+
/** 带底部额外内容 */
|
|
18
|
+
export declare const WithFooter: Story;
|
|
19
|
+
/** 完整功能演示 */
|
|
20
|
+
export declare const FullFeature: Story;
|
|
21
|
+
/** 打字机效果 - 流式输出 Markdown */
|
|
22
|
+
export declare const TypewriterStreaming: Story;
|
|
23
|
+
//# sourceMappingURL=LMChatContainer.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LMChatContainer.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/LMChatContainer/LMChatContainer.stories.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAK/C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,eAAe,CAsCtC,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAA;AA0BlC,aAAa;AACb,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAA;AAED,UAAU;AACV,eAAO,MAAM,KAAK,EAAE,KAMnB,CAAA;AAED,WAAW;AACX,eAAO,MAAM,UAAU,EAAE,KASxB,CAAA;AAED,WAAW;AACX,eAAO,MAAM,QAAQ,EAAE,KAOtB,CAAA;AAED,UAAU;AACV,eAAO,MAAM,UAAU,EAAE,KA0BxB,CAAA;AAED,cAAc;AACd,eAAO,MAAM,UAAU,EAAE,KAwCxB,CAAA;AAyBD,aAAa;AACb,eAAO,MAAM,WAAW,EAAE,KAuFzB,CAAA;AAwMD,4BAA4B;AAC5B,eAAO,MAAM,mBAAmB,EAAE,KASjC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/LMChatContainer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC9D,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ComponentSize } from '../../../utils/componentSizes';
|
|
3
|
+
|
|
4
|
+
export interface LMChatInputProps {
|
|
5
|
+
/** 输入值 */
|
|
6
|
+
value?: string;
|
|
7
|
+
/** 值变化回调 */
|
|
8
|
+
onChange?: (value: string) => void;
|
|
9
|
+
/** 发送消息回调 */
|
|
10
|
+
onSend?: (value: string) => void;
|
|
11
|
+
/** 占位符文本 */
|
|
12
|
+
placeholder?: string;
|
|
13
|
+
/** 尺寸 */
|
|
14
|
+
size?: ComponentSize;
|
|
15
|
+
/** 是否禁用 */
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
/** 是否正在发送(加载状态) */
|
|
18
|
+
sending?: boolean;
|
|
19
|
+
/** 最大字符数 */
|
|
20
|
+
maxLength?: number;
|
|
21
|
+
/** 显示字符计数 */
|
|
22
|
+
showCount?: boolean;
|
|
23
|
+
/** 最大高度 */
|
|
24
|
+
maxRows?: number;
|
|
25
|
+
/** 自定义类名 */
|
|
26
|
+
className?: string;
|
|
27
|
+
/** 是否自动聚焦 */
|
|
28
|
+
autoFocus?: boolean;
|
|
29
|
+
/** 发送按钮文本 */
|
|
30
|
+
sendButtonText?: string;
|
|
31
|
+
/** 是否显示发送按钮 */
|
|
32
|
+
showSendButton?: boolean;
|
|
33
|
+
/** 右侧自定义内容(发送按钮之前) */
|
|
34
|
+
rightSlot?: React.ReactNode;
|
|
35
|
+
/** 底部工具栏 */
|
|
36
|
+
toolbar?: React.ReactNode;
|
|
37
|
+
/** 是否按 Enter 发送(Shift+Enter 换行) */
|
|
38
|
+
enterToSend?: boolean;
|
|
39
|
+
/** 停止生成回调(显示停止按钮) */
|
|
40
|
+
onStop?: () => void;
|
|
41
|
+
/** 是否正在生成 */
|
|
42
|
+
isGenerating?: boolean;
|
|
43
|
+
}
|
|
44
|
+
/** 工具栏按钮组件 */
|
|
45
|
+
export interface ToolbarButtonProps {
|
|
46
|
+
icon: React.ReactNode;
|
|
47
|
+
label?: string;
|
|
48
|
+
onClick?: () => void;
|
|
49
|
+
disabled?: boolean;
|
|
50
|
+
active?: boolean;
|
|
51
|
+
}
|
|
52
|
+
export declare const ToolbarButton: React.FC<ToolbarButtonProps>;
|
|
53
|
+
declare const _default: React.NamedExoticComponent<LMChatInputProps>;
|
|
54
|
+
export default _default;
|
|
55
|
+
//# sourceMappingURL=LMChatInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LMChatInput.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/LMChatInput/LMChatInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAA;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAuBlE,MAAM,WAAW,gBAAgB;IAC/B,UAAU;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY;IACZ,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,aAAa;IACb,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,YAAY;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS;IACT,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,WAAW;IACX,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,mBAAmB;IACnB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa;IACb,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW;IACX,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa;IACb,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa;IACb,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe;IACf,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,sBAAsB;IACtB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,YAAY;IACZ,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,mCAAmC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,aAAa;IACb,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,cAAc;AACd,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA0BtD,CAAA;;AAmUD,wBAAgC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { default as LMChatInput } from './LMChatInput';
|
|
3
|
+
|
|
4
|
+
declare const meta: Meta<typeof LMChatInput>;
|
|
5
|
+
export default meta;
|
|
6
|
+
type Story = StoryObj<typeof meta>;
|
|
7
|
+
/** 默认输入框 - 基础聊天输入 */
|
|
8
|
+
export declare const Default: Story;
|
|
9
|
+
/** 带工具栏 - 底部自定义工具按钮 */
|
|
10
|
+
export declare const WithToolbar: Story;
|
|
11
|
+
/** 完整功能 - 工具栏 + 字符计数 */
|
|
12
|
+
export declare const FullFeature: Story;
|
|
13
|
+
/** 带默认值 - 显示预设内容 */
|
|
14
|
+
export declare const WithValue: Story;
|
|
15
|
+
/** 显示字符计数 - 带字符限制 */
|
|
16
|
+
export declare const WithCount: Story;
|
|
17
|
+
/** 发送中状态 - 显示加载动画 */
|
|
18
|
+
export declare const Sending: Story;
|
|
19
|
+
/** 禁用状态 - 不可输入 */
|
|
20
|
+
export declare const Disabled: Story;
|
|
21
|
+
/** 正在生成 - 显示停止按钮 */
|
|
22
|
+
export declare const Generating: Story;
|
|
23
|
+
/** 不显示发送按钮 */
|
|
24
|
+
export declare const WithoutSendButton: Story;
|
|
25
|
+
/** 尺寸展示 - 所有可用尺寸 */
|
|
26
|
+
export declare const Sizes: Story;
|
|
27
|
+
//# sourceMappingURL=LMChatInput.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LMChatInput.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/LMChatInput/LMChatInput.stories.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,WAA8B,MAAM,eAAe,CAAA;AAE1D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CA0DlC,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAA;AAyClC,qBAAqB;AACrB,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAA;AAED,uBAAuB;AACvB,eAAO,MAAM,WAAW,EAAE,KAazB,CAAA;AAED,wBAAwB;AACxB,eAAO,MAAM,WAAW,EAAE,KAazB,CAAA;AAED,oBAAoB;AACpB,eAAO,MAAM,SAAS,EAAE,KAMvB,CAAA;AAED,qBAAqB;AACrB,eAAO,MAAM,SAAS,EAAE,KAMvB,CAAA;AAED,qBAAqB;AACrB,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAA;AAED,kBAAkB;AAClB,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAA;AAED,oBAAoB;AACpB,eAAO,MAAM,UAAU,EAAE,KAMxB,CAAA;AAED,cAAc;AACd,eAAO,MAAM,iBAAiB,EAAE,KAK/B,CAAA;AAED,oBAAoB;AACpB,eAAO,MAAM,KAAK,EAAE,KAWnB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/LMChatInput/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACrE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ComponentSize } from '../../../utils/componentSizes';
|
|
3
|
+
import { LMChatMessageProps } from '../LMChatMessage';
|
|
4
|
+
import { TypingIndicatorVariant } from '../LMTypingIndicator';
|
|
5
|
+
|
|
6
|
+
export interface ChatMessage extends Omit<LMChatMessageProps, 'size' | 'variant'> {
|
|
7
|
+
/** 消息唯一 ID(必须) */
|
|
8
|
+
id: string;
|
|
9
|
+
}
|
|
10
|
+
export interface LMChatListProps {
|
|
11
|
+
/** 消息列表 */
|
|
12
|
+
messages: ChatMessage[];
|
|
13
|
+
/** 尺寸 */
|
|
14
|
+
size?: ComponentSize;
|
|
15
|
+
/** 消息气泡变体 */
|
|
16
|
+
variant?: 'default' | 'filled' | 'outline' | 'soft';
|
|
17
|
+
/** 是否显示打字指示器 */
|
|
18
|
+
showTypingIndicator?: boolean;
|
|
19
|
+
/** 打字指示器变体 */
|
|
20
|
+
typingIndicatorVariant?: TypingIndicatorVariant;
|
|
21
|
+
/** 打字指示器文字 */
|
|
22
|
+
typingIndicatorText?: string;
|
|
23
|
+
/** 打字指示器头像 */
|
|
24
|
+
typingIndicatorAvatar?: React.ReactNode;
|
|
25
|
+
/** 是否自动滚动到底部 */
|
|
26
|
+
autoScrollToBottom?: boolean;
|
|
27
|
+
/** 滚动行为 */
|
|
28
|
+
scrollBehavior?: 'auto' | 'smooth';
|
|
29
|
+
/** 消息间距 */
|
|
30
|
+
messageGap?: number;
|
|
31
|
+
/** 自定义类名 */
|
|
32
|
+
className?: string;
|
|
33
|
+
/** 空状态内容 */
|
|
34
|
+
emptyContent?: React.ReactNode;
|
|
35
|
+
/** 加载中状态 */
|
|
36
|
+
loading?: boolean;
|
|
37
|
+
/** 加载更多回调(滚动到顶部时触发) */
|
|
38
|
+
onLoadMore?: () => void;
|
|
39
|
+
/** 是否还有更多消息 */
|
|
40
|
+
hasMore?: boolean;
|
|
41
|
+
/** 加载更多文字 */
|
|
42
|
+
loadMoreText?: string;
|
|
43
|
+
/** 自定义渲染消息 */
|
|
44
|
+
renderMessage?: (message: ChatMessage, index: number) => React.ReactNode;
|
|
45
|
+
/** 消息重试回调 */
|
|
46
|
+
onMessageRetry?: (messageId: string) => void;
|
|
47
|
+
/** 气泡最大宽度(默认 85%) */
|
|
48
|
+
bubbleMaxWidth?: string | number;
|
|
49
|
+
}
|
|
50
|
+
export interface LMChatListRef {
|
|
51
|
+
/** 滚动到底部 */
|
|
52
|
+
scrollToBottom: (behavior?: 'auto' | 'smooth') => void;
|
|
53
|
+
/** 滚动到指定消息 */
|
|
54
|
+
scrollToMessage: (messageId: string, behavior?: 'auto' | 'smooth') => void;
|
|
55
|
+
/** 获取容器元素 */
|
|
56
|
+
getContainer: () => HTMLDivElement | null;
|
|
57
|
+
}
|
|
58
|
+
declare const _default: React.MemoExoticComponent<React.ForwardRefExoticComponent<LMChatListProps & React.RefAttributes<LMChatListRef>>>;
|
|
59
|
+
export default _default;
|
|
60
|
+
//# sourceMappingURL=LMChatList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LMChatList.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/LMChatList/LMChatList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgF,MAAM,OAAO,CAAA;AACpG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAElE,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAqB,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAuCrF,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/E,kBAAkB;IAClB,EAAE,EAAE,MAAM,CAAA;CACX;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW;IACX,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,SAAS;IACT,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,aAAa;IACb,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAA;IACnD,gBAAgB;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,cAAc;IACd,sBAAsB,CAAC,EAAE,sBAAsB,CAAA;IAC/C,cAAc;IACd,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,cAAc;IACd,qBAAqB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvC,gBAAgB;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,WAAW;IACX,cAAc,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IAClC,WAAW;IACX,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY;IACZ,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B,YAAY;IACZ,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,uBAAuB;IACvB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,eAAe;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,aAAa;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc;IACd,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAA;IACxE,aAAa;IACb,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5C,qBAAqB;IACrB,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY;IACZ,cAAc,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,KAAK,IAAI,CAAA;IACtD,cAAc;IACd,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,KAAK,IAAI,CAAA;IAC1E,aAAa;IACb,YAAY,EAAE,MAAM,cAAc,GAAG,IAAI,CAAA;CAC1C;;AAkOD,wBAA+B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { default as LMChatList } from './LMChatList';
|
|
3
|
+
|
|
4
|
+
declare const meta: Meta<typeof LMChatList>;
|
|
5
|
+
export default meta;
|
|
6
|
+
type Story = StoryObj<typeof meta>;
|
|
7
|
+
/** 基础消息列表 */
|
|
8
|
+
export declare const Default: Story;
|
|
9
|
+
/** 空状态 */
|
|
10
|
+
export declare const Empty: Story;
|
|
11
|
+
/** 加载中状态 */
|
|
12
|
+
export declare const Loading: Story;
|
|
13
|
+
/** 显示打字指示器 */
|
|
14
|
+
export declare const WithTypingIndicator: Story;
|
|
15
|
+
/** 带加载更多 */
|
|
16
|
+
export declare const WithLoadMore: Story;
|
|
17
|
+
/** 自定义空状态 */
|
|
18
|
+
export declare const CustomEmpty: Story;
|
|
19
|
+
/** 长对话 */
|
|
20
|
+
export declare const LongConversation: Story;
|
|
21
|
+
//# sourceMappingURL=LMChatList.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LMChatList.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/LMChatList/LMChatList.stories.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,UAAU,MAAM,cAAc,CAAA;AAGrC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,UAAU,CAsCjC,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAA;AAiClC,aAAa;AACb,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAA;AAED,UAAU;AACV,eAAO,MAAM,KAAK,EAAE,KAInB,CAAA;AAED,YAAY;AACZ,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAA;AAED,cAAc;AACd,eAAO,MAAM,mBAAmB,EAAE,KAMjC,CAAA;AAED,YAAY;AACZ,eAAO,MAAM,YAAY,EAAE,KAO1B,CAAA;AAED,aAAa;AACb,eAAO,MAAM,WAAW,EAAE,KAUzB,CAAA;AAED,UAAU;AACV,eAAO,MAAM,gBAAgB,EAAE,KAkC9B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/LMChatList/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AACpD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ComponentSize } from '../../../utils/componentSizes';
|
|
3
|
+
import { ChatRole, ChatBubbleVariant } from '../LMChatBubble';
|
|
4
|
+
|
|
5
|
+
export type MessageStatus = 'sending' | 'sent' | 'error' | 'streaming';
|
|
6
|
+
export interface ChatMessageAction {
|
|
7
|
+
/** 操作唯一标识 */
|
|
8
|
+
key: string;
|
|
9
|
+
/** 图标 */
|
|
10
|
+
icon: React.ReactNode;
|
|
11
|
+
/** 提示文字 */
|
|
12
|
+
tooltip?: string;
|
|
13
|
+
/** 点击回调 */
|
|
14
|
+
onClick?: () => void;
|
|
15
|
+
/** 是否禁用 */
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface LMChatMessageProps {
|
|
19
|
+
/** 消息唯一 ID */
|
|
20
|
+
id?: string;
|
|
21
|
+
/** 消息角色 */
|
|
22
|
+
role?: ChatRole;
|
|
23
|
+
/** 消息内容(纯文本或自定义 React 节点) */
|
|
24
|
+
content: React.ReactNode;
|
|
25
|
+
/** 头像(URL 或 React 节点) */
|
|
26
|
+
avatar?: string | React.ReactNode;
|
|
27
|
+
/** 发送者名称 */
|
|
28
|
+
name?: string;
|
|
29
|
+
/** 时间戳 */
|
|
30
|
+
timestamp?: string | Date;
|
|
31
|
+
/** 消息状态 */
|
|
32
|
+
status?: MessageStatus;
|
|
33
|
+
/** 尺寸 */
|
|
34
|
+
size?: ComponentSize;
|
|
35
|
+
/** 气泡变体 */
|
|
36
|
+
variant?: ChatBubbleVariant;
|
|
37
|
+
/** 操作按钮 */
|
|
38
|
+
actions?: ChatMessageAction[];
|
|
39
|
+
/** 是否显示操作按钮(hover 时显示) */
|
|
40
|
+
showActions?: boolean;
|
|
41
|
+
/** 错误信息 */
|
|
42
|
+
errorMessage?: string;
|
|
43
|
+
/** 重试回调 */
|
|
44
|
+
onRetry?: () => void;
|
|
45
|
+
/** 自定义类名 */
|
|
46
|
+
className?: string;
|
|
47
|
+
/** 是否隐藏头像 */
|
|
48
|
+
hideAvatar?: boolean;
|
|
49
|
+
/** 自定义气泡渲染 */
|
|
50
|
+
renderBubble?: (content: React.ReactNode) => React.ReactNode;
|
|
51
|
+
/** 气泡最大宽度(默认 85%) */
|
|
52
|
+
bubbleMaxWidth?: string | number;
|
|
53
|
+
}
|
|
54
|
+
declare const _default: React.NamedExoticComponent<LMChatMessageProps>;
|
|
55
|
+
export default _default;
|
|
56
|
+
//# sourceMappingURL=LMChatMessage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LMChatMessage.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/LMChatMessage/LMChatMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAElE,OAAO,EAAgB,KAAK,QAAQ,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAErF,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAA;AAEtE,MAAM,WAAW,iBAAiB;IAChC,aAAa;IACb,GAAG,EAAE,MAAM,CAAA;IACX,SAAS;IACT,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;IACrB,WAAW;IACX,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW;IACX,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,WAAW;IACX,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc;IACd,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,WAAW;IACX,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,6BAA6B;IAC7B,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAA;IACjC,YAAY;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU;IACV,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,WAAW;IACX,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,SAAS;IACT,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,WAAW;IACX,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,WAAW;IACX,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAC7B,0BAA0B;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW;IACX,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW;IACX,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,cAAc;IACd,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,CAAA;IAC5D,qBAAqB;IACrB,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACjC;;AAgVD,wBAAkC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { default as LMChatMessage } from './LMChatMessage';
|
|
3
|
+
|
|
4
|
+
declare const meta: Meta<typeof LMChatMessage>;
|
|
5
|
+
export default meta;
|
|
6
|
+
type Story = StoryObj<typeof meta>;
|
|
7
|
+
/** 用户消息 - 显示在右侧 */
|
|
8
|
+
export declare const UserMessage: Story;
|
|
9
|
+
/** 助手消息 - 显示在左侧 */
|
|
10
|
+
export declare const AssistantMessage: Story;
|
|
11
|
+
/** 带自定义头像 */
|
|
12
|
+
export declare const WithAvatar: Story;
|
|
13
|
+
/** 发送中状态 */
|
|
14
|
+
export declare const Sending: Story;
|
|
15
|
+
/** 流式输出中 */
|
|
16
|
+
export declare const Streaming: Story;
|
|
17
|
+
/** 错误状态 */
|
|
18
|
+
export declare const Error: Story;
|
|
19
|
+
/** 带操作按钮 - hover 显示 */
|
|
20
|
+
export declare const WithActions: Story;
|
|
21
|
+
/** 隐藏头像 - 连续消息 */
|
|
22
|
+
export declare const HideAvatar: Story;
|
|
23
|
+
/** 尺寸展示 - 所有可用尺寸 */
|
|
24
|
+
export declare const Sizes: Story;
|
|
25
|
+
/** 完整对话示例 */
|
|
26
|
+
export declare const Conversation: Story;
|
|
27
|
+
//# sourceMappingURL=LMChatMessage.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LMChatMessage.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/LMChatMessage/LMChatMessage.stories.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAE3C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,aAAa,CA4CpC,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAA;AAElC,mBAAmB;AACnB,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAA;AAED,mBAAmB;AACnB,eAAO,MAAM,gBAAgB,EAAE,KAO9B,CAAA;AAED,aAAa;AACb,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAA;AAED,YAAY;AACZ,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAA;AAED,YAAY;AACZ,eAAO,MAAM,SAAS,EAAE,KAOvB,CAAA;AAED,WAAW;AACX,eAAO,MAAM,KAAK,EAAE,KAQnB,CAAA;AAED,uBAAuB;AACvB,eAAO,MAAM,WAAW,EAAE,KAQzB,CAAA;AAED,kBAAkB;AAClB,eAAO,MAAM,UAAU,EAAE,KAMxB,CAAA;AAED,oBAAoB;AACpB,eAAO,MAAM,KAAK,EAAE,KAQnB,CAAA;AAED,aAAa;AACb,eAAO,MAAM,YAAY,EAAE,KAuB1B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/LMChatMessage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC1D,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ComponentSize } from '../../../utils/componentSizes';
|
|
3
|
+
|
|
4
|
+
export interface LMCodeBlockProps {
|
|
5
|
+
/** 代码内容 */
|
|
6
|
+
code: string;
|
|
7
|
+
/** 编程语言 */
|
|
8
|
+
language?: string;
|
|
9
|
+
/** 文件名(可选) */
|
|
10
|
+
filename?: string;
|
|
11
|
+
/** 尺寸 */
|
|
12
|
+
size?: ComponentSize;
|
|
13
|
+
/** 是否显示行号 */
|
|
14
|
+
showLineNumbers?: boolean;
|
|
15
|
+
/** 起始行号 */
|
|
16
|
+
startLineNumber?: number;
|
|
17
|
+
/** 高亮行(数组) */
|
|
18
|
+
highlightLines?: number[];
|
|
19
|
+
/** 是否显示复制按钮 */
|
|
20
|
+
showCopyButton?: boolean;
|
|
21
|
+
/** 自定义类名 */
|
|
22
|
+
className?: string;
|
|
23
|
+
/** 最大高度 */
|
|
24
|
+
maxHeight?: string | number;
|
|
25
|
+
/** 是否允许换行 */
|
|
26
|
+
wrapLines?: boolean;
|
|
27
|
+
/** 是否启用语法高亮 */
|
|
28
|
+
enableHighlight?: boolean;
|
|
29
|
+
}
|
|
30
|
+
declare const _default: React.NamedExoticComponent<LMCodeBlockProps>;
|
|
31
|
+
export default _default;
|
|
32
|
+
//# sourceMappingURL=LMCodeBlock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LMCodeBlock.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/LMCodeBlock/LMCodeBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAA;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAGlE,MAAM,WAAW,gBAAgB;IAC/B,WAAW;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS;IACT,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,aAAa;IACb,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,WAAW;IACX,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,cAAc;IACd,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,eAAe;IACf,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW;IACX,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC3B,aAAa;IACb,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,eAAe;IACf,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;;AAyUD,wBAAgC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { default as LMCodeBlock } from './LMCodeBlock';
|
|
3
|
+
|
|
4
|
+
declare const meta: Meta<typeof LMCodeBlock>;
|
|
5
|
+
export default meta;
|
|
6
|
+
type Story = StoryObj<typeof meta>;
|
|
7
|
+
/** JavaScript 代码 */
|
|
8
|
+
export declare const JavaScript: Story;
|
|
9
|
+
/** TypeScript 代码 */
|
|
10
|
+
export declare const TypeScript: Story;
|
|
11
|
+
/** Python 代码 */
|
|
12
|
+
export declare const Python: Story;
|
|
13
|
+
/** 带文件名 */
|
|
14
|
+
export declare const WithFilename: Story;
|
|
15
|
+
/** 不显示行号 */
|
|
16
|
+
export declare const WithoutLineNumbers: Story;
|
|
17
|
+
/** 高亮特定行 */
|
|
18
|
+
export declare const HighlightLines: Story;
|
|
19
|
+
/** 限制高度 */
|
|
20
|
+
export declare const WithMaxHeight: Story;
|
|
21
|
+
/** 允许换行 */
|
|
22
|
+
export declare const WrapLines: Story;
|
|
23
|
+
/** 尺寸展示 - 所有可用尺寸 */
|
|
24
|
+
export declare const Sizes: Story;
|
|
25
|
+
/** JSON 格式 */
|
|
26
|
+
export declare const JSON: Story;
|
|
27
|
+
//# sourceMappingURL=LMCodeBlock.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LMCodeBlock.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/LMCodeBlock/LMCodeBlock.stories.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,WAAW,MAAM,eAAe,CAAA;AAEvC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CA2ClC,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAA;AAkDlC,oBAAoB;AACpB,eAAO,MAAM,UAAU,EAAE,KAKxB,CAAA;AAED,oBAAoB;AACpB,eAAO,MAAM,UAAU,EAAE,KAKxB,CAAA;AAED,gBAAgB;AAChB,eAAO,MAAM,MAAM,EAAE,KAKpB,CAAA;AAED,WAAW;AACX,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAA;AAED,YAAY;AACZ,eAAO,MAAM,kBAAkB,EAAE,KAMhC,CAAA;AAED,YAAY;AACZ,eAAO,MAAM,cAAc,EAAE,KAM5B,CAAA;AAED,WAAW;AACX,eAAO,MAAM,aAAa,EAAE,KAM3B,CAAA;AAED,WAAW;AACX,eAAO,MAAM,SAAS,EAAE,KAMvB,CAAA;AAED,oBAAoB;AACpB,eAAO,MAAM,KAAK,EAAE,KAiBnB,CAAA;AAED,cAAc;AACd,eAAO,MAAM,IAAI,EAAE,KAalB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/LMCodeBlock/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ComponentSize } from '../../../utils/componentSizes';
|
|
3
|
+
|
|
4
|
+
export interface LMMarkdownRendererProps {
|
|
5
|
+
/** Markdown 内容 */
|
|
6
|
+
content: string;
|
|
7
|
+
/** 尺寸 */
|
|
8
|
+
size?: ComponentSize;
|
|
9
|
+
/** 自定义类名 */
|
|
10
|
+
className?: string;
|
|
11
|
+
/** 是否允许 HTML */
|
|
12
|
+
allowHtml?: boolean;
|
|
13
|
+
/** 代码块渲染器(可自定义) */
|
|
14
|
+
renderCodeBlock?: (code: string, language?: string, filename?: string) => React.ReactNode;
|
|
15
|
+
/** 链接点击处理 */
|
|
16
|
+
onLinkClick?: (url: string, event: React.MouseEvent) => void;
|
|
17
|
+
/** 是否在新窗口打开链接 */
|
|
18
|
+
openLinksInNewTab?: boolean;
|
|
19
|
+
/** 自定义渲染器(完全自定义解析) */
|
|
20
|
+
customRenderer?: (content: string) => React.ReactNode;
|
|
21
|
+
}
|
|
22
|
+
declare const _default: React.NamedExoticComponent<LMMarkdownRendererProps>;
|
|
23
|
+
export default _default;
|
|
24
|
+
//# sourceMappingURL=LMMarkdownRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LMMarkdownRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/LMMarkdownRenderer/LMMarkdownRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAIlE,MAAM,WAAW,uBAAuB;IACtC,kBAAkB;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS;IACT,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,mBAAmB;IACnB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAA;IACzF,aAAa;IACb,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAA;IAC5D,iBAAiB;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,sBAAsB;IACtB,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAA;CACtD;;AAmeD,wBAAuC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { default as LMMarkdownRenderer } from './LMMarkdownRenderer';
|
|
3
|
+
|
|
4
|
+
declare const meta: Meta<typeof LMMarkdownRenderer>;
|
|
5
|
+
export default meta;
|
|
6
|
+
type Story = StoryObj<typeof meta>;
|
|
7
|
+
/** 基础 Markdown */
|
|
8
|
+
export declare const Basic: Story;
|
|
9
|
+
/** 列表渲染 */
|
|
10
|
+
export declare const Lists: Story;
|
|
11
|
+
/** 代码块渲染 */
|
|
12
|
+
export declare const CodeBlocks: Story;
|
|
13
|
+
/** 表格渲染 */
|
|
14
|
+
export declare const Table: Story;
|
|
15
|
+
/** 引用渲染 */
|
|
16
|
+
export declare const Blockquote: Story;
|
|
17
|
+
/** 行内样式 */
|
|
18
|
+
export declare const InlineStyles: Story;
|
|
19
|
+
/** 尺寸展示 - 所有可用尺寸 */
|
|
20
|
+
export declare const Sizes: Story;
|
|
21
|
+
/** 完整示例 - AI 回复 */
|
|
22
|
+
export declare const FullExample: Story;
|
|
23
|
+
//# sourceMappingURL=LMMarkdownRenderer.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LMMarkdownRenderer.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/LMMarkdownRenderer/LMMarkdownRenderer.stories.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,kBAAkB,MAAM,sBAAsB,CAAA;AAErD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,kBAAkB,CA8BzC,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAA;AAqDlC,kBAAkB;AAClB,eAAO,MAAM,KAAK,EAAE,KAInB,CAAA;AAED,WAAW;AACX,eAAO,MAAM,KAAK,EAAE,KAInB,CAAA;AAED,YAAY;AACZ,eAAO,MAAM,UAAU,EAAE,KAIxB,CAAA;AAED,WAAW;AACX,eAAO,MAAM,KAAK,EAAE,KAInB,CAAA;AAED,WAAW;AACX,eAAO,MAAM,UAAU,EAAE,KASxB,CAAA;AAED,WAAW;AACX,eAAO,MAAM,YAAY,EAAE,KAI1B,CAAA;AAED,oBAAoB;AACpB,eAAO,MAAM,KAAK,EAAE,KAgCnB,CAAA;AAED,mBAAmB;AACnB,eAAO,MAAM,WAAW,EAAE,KAmCzB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/LMMarkdownRenderer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACpE,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ComponentSize } from '../../../utils/componentSizes';
|
|
3
|
+
|
|
4
|
+
export type TypingIndicatorVariant = 'dots' | 'pulse' | 'wave' | 'bounce';
|
|
5
|
+
export interface LMTypingIndicatorProps {
|
|
6
|
+
/** 变体样式 */
|
|
7
|
+
variant?: TypingIndicatorVariant;
|
|
8
|
+
/** 尺寸 */
|
|
9
|
+
size?: ComponentSize;
|
|
10
|
+
/** 显示文字(如 "正在输入...") */
|
|
11
|
+
text?: string;
|
|
12
|
+
/** 头像 */
|
|
13
|
+
avatar?: React.ReactNode;
|
|
14
|
+
/** 自定义类名 */
|
|
15
|
+
className?: string;
|
|
16
|
+
/** 颜色 */
|
|
17
|
+
color?: string;
|
|
18
|
+
}
|
|
19
|
+
declare const _default: React.NamedExoticComponent<LMTypingIndicatorProps>;
|
|
20
|
+
export default _default;
|
|
21
|
+
//# sourceMappingURL=LMTypingIndicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LMTypingIndicator.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/LMTypingIndicator/LMTypingIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAA;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAmBlE,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAA;AAEzE,MAAM,WAAW,sBAAsB;IACrC,WAAW;IACX,OAAO,CAAC,EAAE,sBAAsB,CAAA;IAChC,SAAS;IACT,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS;IACT,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS;IACT,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;;AA0LD,wBAAsC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { default as LMTypingIndicator } from './LMTypingIndicator';
|
|
3
|
+
|
|
4
|
+
declare const meta: Meta<typeof LMTypingIndicator>;
|
|
5
|
+
export default meta;
|
|
6
|
+
type Story = StoryObj<typeof meta>;
|
|
7
|
+
/** 默认样式 - 点动画 */
|
|
8
|
+
export declare const Default: Story;
|
|
9
|
+
/** 带文字提示 */
|
|
10
|
+
export declare const WithText: Story;
|
|
11
|
+
/** 脉冲动画 */
|
|
12
|
+
export declare const Pulse: Story;
|
|
13
|
+
/** 波浪动画 */
|
|
14
|
+
export declare const Wave: Story;
|
|
15
|
+
/** 弹跳动画 */
|
|
16
|
+
export declare const Bounce: Story;
|
|
17
|
+
/** 自定义颜色 */
|
|
18
|
+
export declare const CustomColor: Story;
|
|
19
|
+
/** 尺寸展示 - 所有可用尺寸 */
|
|
20
|
+
export declare const Sizes: Story;
|
|
21
|
+
/** 所有变体展示 */
|
|
22
|
+
export declare const AllVariants: Story;
|
|
23
|
+
/** 带头像 */
|
|
24
|
+
export declare const WithAvatar: Story;
|
|
25
|
+
//# sourceMappingURL=LMTypingIndicator.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LMTypingIndicator.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/LMTypingIndicator/LMTypingIndicator.stories.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,iBAAiB,MAAM,qBAAqB,CAAA;AAEnD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,iBAAiB,CAuCxC,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAA;AAElC,iBAAiB;AACjB,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAA;AAED,YAAY;AACZ,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAA;AAED,WAAW;AACX,eAAO,MAAM,KAAK,EAAE,KAKnB,CAAA;AAED,WAAW;AACX,eAAO,MAAM,IAAI,EAAE,KAKlB,CAAA;AAED,WAAW;AACX,eAAO,MAAM,MAAM,EAAE,KAKpB,CAAA;AAED,YAAY;AACZ,eAAO,MAAM,WAAW,EAAE,KAMzB,CAAA;AAED,oBAAoB;AACpB,eAAO,MAAM,KAAK,EAAE,KA6BnB,CAAA;AAED,aAAa;AACb,eAAO,MAAM,WAAW,EAAE,KAqBzB,CAAA;AAED,UAAU;AACV,eAAO,MAAM,UAAU,EAAE,KAoBxB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Chat/LMTypingIndicator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAClE,YAAY,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './LMChatInput';
|
|
2
|
+
export * from './LMChatBubble';
|
|
3
|
+
export * from './LMChatMessage';
|
|
4
|
+
export * from './LMCodeBlock';
|
|
5
|
+
export * from './LMMarkdownRenderer';
|
|
6
|
+
export * from './LMTypingIndicator';
|
|
7
|
+
export * from './LMChatList';
|
|
8
|
+
export * from './LMChatContainer';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Chat/index.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const LMBadge = require("../../LMBadge-
|
|
3
|
+
const LMBadge = require("../../LMBadge-D95iccla.cjs");
|
|
4
4
|
exports.LMBadge = LMBadge.LMBadge;
|
|
5
5
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const LMDatePicker = require("../../LMDatePicker-
|
|
3
|
+
const LMDatePicker = require("../../LMDatePicker-BlUwN4On.cjs");
|
|
4
4
|
exports.LMDatePicker = LMDatePicker.LMDatePicker;
|
|
5
5
|
//# sourceMappingURL=index.cjs.map
|