@liveblocks/react-ui
Version:
A set of React pre-built components for the Liveblocks products. Liveblocks is the all-in-one toolkit to build collaborative products like Figma, Notion, and more.
1 lines • 3.95 kB
Source Map (JSON)
{"version":3,"file":"AiChatUserMessage.cjs","sources":["../../../src/components/internal/AiChatUserMessage.tsx"],"sourcesContent":["import type { AiUserMessage, WithNavigation } from \"@liveblocks/core\";\nimport type { ComponentProps } from \"react\";\nimport { forwardRef, memo } from \"react\";\n\nimport type { GlobalComponents } from \"../../components\";\nimport { type GlobalOverrides, useOverrides } from \"../../overrides\";\nimport * as AiMessage from \"../../primitives/AiMessage\";\nimport type { AiMessageContentTextPartProps } from \"../../primitives/AiMessage/types\";\nimport type { MarkdownComponents } from \"../../primitives/Markdown\";\nimport { cn } from \"../../utils/cn\";\nimport { Prose } from \"./Prose\";\n\ntype UiUserMessage = WithNavigation<AiUserMessage>;\n\ntype AiChatUserMessageComponents = {\n /**\n * The components used to render Markdown content.\n */\n markdown?: Partial<MarkdownComponents>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * AiChatUserMessage\n * -----------------------------------------------------------------------------------------------*/\nexport interface AiChatUserMessageProps extends ComponentProps<\"div\"> {\n /**\n * The message to display.\n */\n message: UiUserMessage;\n\n /**\n * Override the component's strings.\n */\n overrides?: Partial<GlobalOverrides>;\n\n /**\n * Override the component's components.\n */\n components?: Partial<GlobalComponents & AiChatUserMessageComponents>;\n}\n\ninterface TextPartProps extends AiMessageContentTextPartProps {\n components?: Partial<GlobalComponents & AiChatUserMessageComponents>;\n}\n\nfunction TextPart({ part, components }: TextPartProps) {\n return (\n <Prose\n content={part.text}\n className=\"lb-ai-chat-message-text\"\n components={components}\n />\n );\n}\n\nexport const AiChatUserMessage = memo(\n forwardRef<HTMLDivElement, AiChatUserMessageProps>(\n ({ message, className, overrides, components, ...props }, forwardedRef) => {\n const $ = useOverrides(overrides);\n return (\n <div\n ref={forwardedRef}\n className={cn(\n \"lb-ai-chat-message lb-ai-chat-user-message\",\n className\n )}\n {...props}\n >\n {message.deletedAt !== undefined ? (\n <div className=\"lb-ai-chat-message-deleted\">\n {$.AI_CHAT_MESSAGE_DELETED}\n </div>\n ) : (\n <AiMessage.Content\n className=\"lb-ai-chat-message-content\"\n message={message}\n components={{\n TextPart: (props) => (\n <TextPart {...props} components={components} />\n ),\n }}\n />\n )}\n </div>\n );\n }\n )\n);\n"],"names":["jsx","Prose","memo","forwardRef","overrides","useOverrides","cn","AiMessage.Content","props"],"mappings":";;;;;;;;;AA6CA,SAAS,QAAS,CAAA,EAAE,IAAM,EAAA,UAAA,EAA6B,EAAA;AACrD,EACE,uBAAAA,cAAA;AAAA,IAACC,WAAA;AAAA,IAAA;AAAA,MACC,SAAS,IAAK,CAAA,IAAA;AAAA,MACd,SAAU,EAAA,yBAAA;AAAA,MACV,UAAA;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ,CAAA;AAEO,MAAM,iBAAoB,GAAAC,UAAA;AAAA,EAC/BC,gBAAA;AAAA,IACE,CAAC,EAAE,OAAS,EAAA,SAAA,aAAWC,aAAW,UAAY,EAAA,GAAG,KAAM,EAAA,EAAG,YAAiB,KAAA;AACzE,MAAM,MAAA,CAAA,GAAIC,uBAAaD,WAAS,CAAA,CAAA;AAChC,MACE,uBAAAJ,cAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,GAAK,EAAA,YAAA;AAAA,UACL,SAAW,EAAAM,KAAA;AAAA,YACT,4CAAA;AAAA,YACA,SAAA;AAAA,WACF;AAAA,UACC,GAAG,KAAA;AAAA,UAEH,QAAA,EAAA,OAAA,CAAQ,cAAc,KACrB,CAAA,mBAAAN,cAAA,CAAC,SAAI,SAAU,EAAA,4BAAA,EACZ,QAAE,EAAA,CAAA,CAAA,uBAAA,EACL,CAEA,mBAAAA,cAAA;AAAA,YAACO,aAAU;AAAA,YAAV;AAAA,cACC,SAAU,EAAA,4BAAA;AAAA,cACV,OAAA;AAAA,cACA,UAAY,EAAA;AAAA,gBACV,UAAU,CAACC,MAAAA,oCACR,QAAU,EAAA,EAAA,GAAGA,QAAO,UAAwB,EAAA,CAAA;AAAA,eAEjD;AAAA,aAAA;AAAA,WACF;AAAA,SAAA;AAAA,OAEJ,CAAA;AAAA,KAEJ;AAAA,GACF;AACF;;;;"}