@orion-ds/react 5.1.13 → 5.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/AI_COMPONENTS.md +9 -2
- package/README.md +1 -5
- package/dist/blocks/index.cjs +1 -1
- package/dist/blocks/index.mjs +50 -54
- package/dist/blocks/sections/index.d.ts +0 -2
- package/dist/blocks/sections/index.d.ts.map +1 -1
- package/dist/blocks/templates/index.cjs +1 -1
- package/dist/blocks/templates/index.d.ts +0 -5
- package/dist/blocks/templates/index.d.ts.map +1 -1
- package/dist/blocks/templates/index.mjs +12 -14
- package/dist/blocks.css +0 -4
- package/dist/client.d.ts +1 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/components/ThemeController/ThemeController.cjs +1 -1
- package/dist/components/ThemeController/ThemeController.d.ts.map +1 -1
- package/dist/components/ThemeController/ThemeController.mjs +7 -7
- package/dist/components/index.d.ts +0 -3
- package/dist/components/index.d.ts.map +1 -1
- package/dist/hooks/useTheme.cjs +1 -1
- package/dist/hooks/useTheme.d.ts +1 -1
- package/dist/hooks/useTheme.d.ts.map +1 -1
- package/dist/hooks/useTheme.mjs +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/styles.css +0 -2
- package/dist/tokens/types.d.ts +64 -37
- package/dist/tokens/types.d.ts.map +1 -1
- package/dist/utils/fonts.cjs +1 -1
- package/dist/utils/fonts.d.ts.map +1 -1
- package/dist/utils/fonts.mjs +1 -0
- package/package.json +1 -6
- package/dist/blocks/sections/Chat/Chat.cjs +0 -1
- package/dist/blocks/sections/Chat/Chat.d.ts +0 -5
- package/dist/blocks/sections/Chat/Chat.d.ts.map +0 -1
- package/dist/blocks/sections/Chat/Chat.mjs +0 -93
- package/dist/blocks/sections/Chat/Chat.module.css +0 -1
- package/dist/blocks/sections/Chat/Chat.module.css.cjs +0 -1
- package/dist/blocks/sections/Chat/Chat.module.css.mjs +0 -47
- package/dist/blocks/sections/Chat/Chat.types.d.ts +0 -33
- package/dist/blocks/sections/Chat/Chat.types.d.ts.map +0 -1
- package/dist/blocks/sections/Chat/index.d.ts +0 -3
- package/dist/blocks/sections/Chat/index.d.ts.map +0 -1
- package/dist/blocks/templates/app/ChatPageTemplate/ChatPageTemplate.cjs +0 -1
- package/dist/blocks/templates/app/ChatPageTemplate/ChatPageTemplate.d.ts +0 -5
- package/dist/blocks/templates/app/ChatPageTemplate/ChatPageTemplate.d.ts.map +0 -1
- package/dist/blocks/templates/app/ChatPageTemplate/ChatPageTemplate.mjs +0 -192
- package/dist/blocks/templates/app/ChatPageTemplate/ChatPageTemplate.module.css +0 -1
- package/dist/blocks/templates/app/ChatPageTemplate/ChatPageTemplate.module.css.cjs +0 -1
- package/dist/blocks/templates/app/ChatPageTemplate/ChatPageTemplate.module.css.mjs +0 -81
- package/dist/blocks/templates/app/ChatPageTemplate/ChatPageTemplate.types.d.ts +0 -42
- package/dist/blocks/templates/app/ChatPageTemplate/ChatPageTemplate.types.d.ts.map +0 -1
- package/dist/blocks/templates/app/ChatPageTemplate/index.d.ts +0 -3
- package/dist/blocks/templates/app/ChatPageTemplate/index.d.ts.map +0 -1
- package/dist/components/Chat/Chat.cjs +0 -1
- package/dist/components/Chat/Chat.d.ts +0 -22
- package/dist/components/Chat/Chat.d.ts.map +0 -1
- package/dist/components/Chat/Chat.mjs +0 -56
- package/dist/components/Chat/Chat.module.css +0 -1
- package/dist/components/Chat/Chat.module.css.cjs +0 -1
- package/dist/components/Chat/Chat.module.css.mjs +0 -237
- package/dist/components/Chat/Chat.types.d.ts +0 -387
- package/dist/components/Chat/Chat.types.d.ts.map +0 -1
- package/dist/components/Chat/components/ChatAttachment.cjs +0 -1
- package/dist/components/Chat/components/ChatAttachment.d.ts +0 -5
- package/dist/components/Chat/components/ChatAttachment.d.ts.map +0 -1
- package/dist/components/Chat/components/ChatAttachment.mjs +0 -125
- package/dist/components/Chat/components/ChatAudioPlayer.cjs +0 -1
- package/dist/components/Chat/components/ChatAudioPlayer.d.ts +0 -5
- package/dist/components/Chat/components/ChatAudioPlayer.d.ts.map +0 -1
- package/dist/components/Chat/components/ChatAudioPlayer.mjs +0 -127
- package/dist/components/Chat/components/ChatCodeBlock.cjs +0 -1
- package/dist/components/Chat/components/ChatCodeBlock.d.ts +0 -5
- package/dist/components/Chat/components/ChatCodeBlock.d.ts.map +0 -1
- package/dist/components/Chat/components/ChatCodeBlock.mjs +0 -93
- package/dist/components/Chat/components/ChatFileUpload.cjs +0 -1
- package/dist/components/Chat/components/ChatFileUpload.d.ts +0 -5
- package/dist/components/Chat/components/ChatFileUpload.d.ts.map +0 -1
- package/dist/components/Chat/components/ChatFileUpload.mjs +0 -114
- package/dist/components/Chat/components/ChatHeader.cjs +0 -1
- package/dist/components/Chat/components/ChatHeader.d.ts +0 -5
- package/dist/components/Chat/components/ChatHeader.d.ts.map +0 -1
- package/dist/components/Chat/components/ChatHeader.mjs +0 -36
- package/dist/components/Chat/components/ChatImagePreview.cjs +0 -1
- package/dist/components/Chat/components/ChatImagePreview.d.ts +0 -5
- package/dist/components/Chat/components/ChatImagePreview.d.ts.map +0 -1
- package/dist/components/Chat/components/ChatImagePreview.mjs +0 -69
- package/dist/components/Chat/components/ChatInput.cjs +0 -1
- package/dist/components/Chat/components/ChatInput.d.ts +0 -5
- package/dist/components/Chat/components/ChatInput.d.ts.map +0 -1
- package/dist/components/Chat/components/ChatInput.mjs +0 -188
- package/dist/components/Chat/components/ChatLightbox.cjs +0 -1
- package/dist/components/Chat/components/ChatLightbox.d.ts +0 -5
- package/dist/components/Chat/components/ChatLightbox.d.ts.map +0 -1
- package/dist/components/Chat/components/ChatLightbox.mjs +0 -57
- package/dist/components/Chat/components/ChatMarkdown.cjs +0 -1
- package/dist/components/Chat/components/ChatMarkdown.d.ts +0 -5
- package/dist/components/Chat/components/ChatMarkdown.d.ts.map +0 -1
- package/dist/components/Chat/components/ChatMarkdown.mjs +0 -70
- package/dist/components/Chat/components/ChatMessage.cjs +0 -1
- package/dist/components/Chat/components/ChatMessage.d.ts +0 -5
- package/dist/components/Chat/components/ChatMessage.d.ts.map +0 -1
- package/dist/components/Chat/components/ChatMessage.mjs +0 -173
- package/dist/components/Chat/components/ChatMessages.cjs +0 -1
- package/dist/components/Chat/components/ChatMessages.d.ts +0 -5
- package/dist/components/Chat/components/ChatMessages.d.ts.map +0 -1
- package/dist/components/Chat/components/ChatMessages.mjs +0 -46
- package/dist/components/Chat/components/ChatSidebar.cjs +0 -1
- package/dist/components/Chat/components/ChatSidebar.d.ts +0 -5
- package/dist/components/Chat/components/ChatSidebar.d.ts.map +0 -1
- package/dist/components/Chat/components/ChatSidebar.mjs +0 -217
- package/dist/components/Chat/components/ChatTypingIndicator.cjs +0 -1
- package/dist/components/Chat/components/ChatTypingIndicator.d.ts +0 -5
- package/dist/components/Chat/components/ChatTypingIndicator.d.ts.map +0 -1
- package/dist/components/Chat/components/ChatTypingIndicator.mjs +0 -31
- package/dist/components/Chat/components/ChatVoiceRecorder.cjs +0 -1
- package/dist/components/Chat/components/ChatVoiceRecorder.d.ts +0 -5
- package/dist/components/Chat/components/ChatVoiceRecorder.d.ts.map +0 -1
- package/dist/components/Chat/components/ChatVoiceRecorder.mjs +0 -111
- package/dist/components/Chat/components/index.d.ts +0 -18
- package/dist/components/Chat/components/index.d.ts.map +0 -1
- package/dist/components/Chat/hooks/index.d.ts +0 -12
- package/dist/components/Chat/hooks/index.d.ts.map +0 -1
- package/dist/components/Chat/hooks/useAutoScroll.cjs +0 -1
- package/dist/components/Chat/hooks/useAutoScroll.d.ts +0 -24
- package/dist/components/Chat/hooks/useAutoScroll.d.ts.map +0 -1
- package/dist/components/Chat/hooks/useAutoScroll.mjs +0 -50
- package/dist/components/Chat/hooks/useChatInput.cjs +0 -1
- package/dist/components/Chat/hooks/useChatInput.d.ts +0 -43
- package/dist/components/Chat/hooks/useChatInput.d.ts.map +0 -1
- package/dist/components/Chat/hooks/useChatInput.mjs +0 -44
- package/dist/components/Chat/hooks/useStreamingText.d.ts +0 -22
- package/dist/components/Chat/hooks/useStreamingText.d.ts.map +0 -1
- package/dist/components/Chat/hooks/useVoiceRecorder.cjs +0 -1
- package/dist/components/Chat/hooks/useVoiceRecorder.d.ts +0 -26
- package/dist/components/Chat/hooks/useVoiceRecorder.d.ts.map +0 -1
- package/dist/components/Chat/hooks/useVoiceRecorder.mjs +0 -74
- package/dist/components/Chat/index.d.ts +0 -28
- package/dist/components/Chat/index.d.ts.map +0 -1
- package/dist/components/Chat/utils.cjs +0 -1
- package/dist/components/Chat/utils.d.ts +0 -16
- package/dist/components/Chat/utils.d.ts.map +0 -1
- package/dist/components/Chat/utils.mjs +0 -12
- package/dist/rich.cjs +0 -1
- package/dist/rich.d.ts +0 -16
- package/dist/rich.d.ts.map +0 -1
- package/dist/rich.mjs +0 -4
|
@@ -1 +0,0 @@
|
|
|
1
|
-
._section_n9a63_1{display:flex;height:520px;background:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-container);overflow:hidden}._sidebar_n9a63_10{width:240px;border-right:1px solid var(--border-subtle);background:var(--surface-subtle);display:flex;flex-direction:column;flex-shrink:0}._sidebarHeader_n9a63_19{padding:var(--spacing-4);border-bottom:1px solid var(--border-subtle);font-family:var(--font-secondary);font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}._conversationList_n9a63_28{flex:1;overflow-y:auto}._conversationItem_n9a63_33{display:block;width:100%;padding:var(--spacing-3) var(--spacing-4);border:none;background:transparent;text-align:left;cursor:pointer;transition:background .15s ease;font-family:var(--font-secondary);font-size:var(--font-size-sm);color:var(--text-primary)}._conversationItem_n9a63_33:hover,._conversationItemActive_n9a63_51{background:var(--surface-layer)}._conversationTitle_n9a63_55{display:block;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._main_n9a63_63{flex:1;display:flex;flex-direction:column;min-width:0}._messages_n9a63_70{flex:1;overflow-y:auto;padding:var(--spacing-4);display:flex;flex-direction:column;gap:var(--spacing-4)}._message_n9a63_70{display:flex;gap:var(--spacing-3);max-width:80%}._messageUser_n9a63_85{align-self:flex-end;flex-direction:row-reverse}._messageAssistant_n9a63_90{align-self:flex-start}._messageSystem_n9a63_94{align-self:center;max-width:90%}._messageAvatar_n9a63_99{width:32px;height:32px;border-radius:var(--radius-full);background:var(--surface-layer);display:flex;align-items:center;justify-content:center;font-family:var(--font-secondary);font-size:var(--font-size-xs);font-weight:600;color:var(--text-secondary);flex-shrink:0}._messageBubble_n9a63_114{padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-container);font-family:var(--font-secondary);font-size:var(--font-size-base);line-height:1.5}._messageBubbleUser_n9a63_122{background:var(--interactive-primary);color:var(--interactive-primary-text)}._messageBubbleAssistant_n9a63_127{background:var(--surface-subtle);color:var(--text-primary)}._messageBubbleSystem_n9a63_132{background:var(--surface-layer);color:var(--text-secondary);font-size:var(--font-size-sm);text-align:center}._inputArea_n9a63_139{padding:var(--spacing-4);border-top:1px solid var(--border-subtle);display:flex;gap:var(--spacing-2)}._input_n9a63_139{flex:1;padding:var(--spacing-3) var(--spacing-4);border:1px solid var(--border-base);border-radius:var(--radius-control);background:var(--surface-base);color:var(--text-primary);font-family:var(--font-secondary);font-size:var(--font-size-base);outline:none;transition:border-color .15s ease}._input_n9a63_139::placeholder{color:var(--text-tertiary)}._input_n9a63_139:focus{border-color:var(--interactive-primary)}._sendButton_n9a63_167{padding:var(--spacing-3) var(--spacing-4);border:none;border-radius:var(--radius-control);background:var(--interactive-primary);color:var(--interactive-primary-text);font-family:var(--font-secondary);font-size:var(--font-size-base);font-weight:500;cursor:pointer;transition:background .15s ease;white-space:nowrap}._sendButton_n9a63_167:hover{background:var(--interactive-primary-hover)}._sendButton_n9a63_167:disabled{opacity:.5;cursor:not-allowed}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s="_section_n9a63_1",e="_sidebar_n9a63_10",a="_sidebarHeader_n9a63_19",t="_conversationList_n9a63_28",n="_conversationItem_n9a63_33",o="_conversationItemActive_n9a63_51",_="_conversationTitle_n9a63_55",i="_main_n9a63_63",m="_messages_n9a63_70",r="_message_n9a63_70",c="_messageUser_n9a63_85",b="_messageAssistant_n9a63_90",g="_messageSystem_n9a63_94",u="_messageAvatar_n9a63_99",l="_messageBubble_n9a63_114",v="_messageBubbleUser_n9a63_122",d="_messageBubbleAssistant_n9a63_127",A="_messageBubbleSystem_n9a63_132",B="_inputArea_n9a63_139",y="_input_n9a63_139",S="_sendButton_n9a63_167",p={section:s,sidebar:e,sidebarHeader:a,conversationList:t,conversationItem:n,conversationItemActive:o,conversationTitle:_,main:i,messages:m,message:r,messageUser:c,messageAssistant:b,messageSystem:g,messageAvatar:u,messageBubble:l,messageBubbleUser:v,messageBubbleAssistant:d,messageBubbleSystem:A,inputArea:B,input:y,sendButton:S};exports.conversationItem=n;exports.conversationItemActive=o;exports.conversationList=t;exports.conversationTitle=_;exports.default=p;exports.input=y;exports.inputArea=B;exports.main=i;exports.message=r;exports.messageAssistant=b;exports.messageAvatar=u;exports.messageBubble=l;exports.messageBubbleAssistant=d;exports.messageBubbleSystem=A;exports.messageBubbleUser=v;exports.messageSystem=g;exports.messageUser=c;exports.messages=m;exports.section=s;exports.sendButton=S;exports.sidebar=e;exports.sidebarHeader=a;
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
const s = "_section_n9a63_1", e = "_sidebar_n9a63_10", a = "_sidebarHeader_n9a63_19", n = "_conversationList_n9a63_28", t = "_conversationItem_n9a63_33", _ = "_conversationItemActive_n9a63_51", o = "_conversationTitle_n9a63_55", i = "_main_n9a63_63", m = "_messages_n9a63_70", c = "_message_n9a63_70", r = "_messageUser_n9a63_85", b = "_messageAssistant_n9a63_90", g = "_messageSystem_n9a63_94", u = "_messageAvatar_n9a63_99", v = "_messageBubble_n9a63_114", l = "_messageBubbleUser_n9a63_122", A = "_messageBubbleAssistant_n9a63_127", B = "_messageBubbleSystem_n9a63_132", d = "_inputArea_n9a63_139", p = "_input_n9a63_139", y = "_sendButton_n9a63_167", I = {
|
|
2
|
-
section: s,
|
|
3
|
-
sidebar: e,
|
|
4
|
-
sidebarHeader: a,
|
|
5
|
-
conversationList: n,
|
|
6
|
-
conversationItem: t,
|
|
7
|
-
conversationItemActive: _,
|
|
8
|
-
conversationTitle: o,
|
|
9
|
-
main: i,
|
|
10
|
-
messages: m,
|
|
11
|
-
message: c,
|
|
12
|
-
messageUser: r,
|
|
13
|
-
messageAssistant: b,
|
|
14
|
-
messageSystem: g,
|
|
15
|
-
messageAvatar: u,
|
|
16
|
-
messageBubble: v,
|
|
17
|
-
messageBubbleUser: l,
|
|
18
|
-
messageBubbleAssistant: A,
|
|
19
|
-
messageBubbleSystem: B,
|
|
20
|
-
inputArea: d,
|
|
21
|
-
input: p,
|
|
22
|
-
sendButton: y
|
|
23
|
-
};
|
|
24
|
-
export {
|
|
25
|
-
t as conversationItem,
|
|
26
|
-
_ as conversationItemActive,
|
|
27
|
-
n as conversationList,
|
|
28
|
-
o as conversationTitle,
|
|
29
|
-
I as default,
|
|
30
|
-
p as input,
|
|
31
|
-
d as inputArea,
|
|
32
|
-
i as main,
|
|
33
|
-
c as message,
|
|
34
|
-
b as messageAssistant,
|
|
35
|
-
u as messageAvatar,
|
|
36
|
-
v as messageBubble,
|
|
37
|
-
A as messageBubbleAssistant,
|
|
38
|
-
B as messageBubbleSystem,
|
|
39
|
-
l as messageBubbleUser,
|
|
40
|
-
g as messageSystem,
|
|
41
|
-
r as messageUser,
|
|
42
|
-
m as messages,
|
|
43
|
-
s as section,
|
|
44
|
-
y as sendButton,
|
|
45
|
-
e as sidebar,
|
|
46
|
-
a as sidebarHeader
|
|
47
|
-
};
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
export type ChatMessageRole = "user" | "assistant" | "system";
|
|
2
|
-
export interface ChatMessage {
|
|
3
|
-
id: string;
|
|
4
|
-
role: ChatMessageRole;
|
|
5
|
-
content: string;
|
|
6
|
-
timestamp?: Date;
|
|
7
|
-
}
|
|
8
|
-
export interface ChatConversation {
|
|
9
|
-
id: string;
|
|
10
|
-
title: string;
|
|
11
|
-
updatedAt?: Date;
|
|
12
|
-
}
|
|
13
|
-
export interface ChatInputProps {
|
|
14
|
-
placeholder?: string;
|
|
15
|
-
onSend?: (message: string) => void;
|
|
16
|
-
}
|
|
17
|
-
export interface ChatSectionProps {
|
|
18
|
-
/** Messages to display */
|
|
19
|
-
messages?: ChatMessage[];
|
|
20
|
-
/** Available conversations for sidebar */
|
|
21
|
-
conversations?: ChatConversation[];
|
|
22
|
-
/** Currently active conversation id */
|
|
23
|
-
activeConversationId?: string;
|
|
24
|
-
/** Callback when a conversation is selected */
|
|
25
|
-
onConversationSelect?: (id: string) => void;
|
|
26
|
-
/** Callback when a new message is sent */
|
|
27
|
-
onSendMessage?: (content: string) => void;
|
|
28
|
-
/** Input placeholder text */
|
|
29
|
-
placeholder?: string;
|
|
30
|
-
/** Optional className */
|
|
31
|
-
className?: string;
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=Chat.types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.types.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/Chat/Chat.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACnC,uCAAuC;IACvC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+CAA+C;IAC/C,oBAAoB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,0CAA0C;IAC1C,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/blocks/sections/Chat/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,eAAe,GAChB,MAAM,cAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("react"),C=require("@orion-ds/react"),r=require("lucide-react"),a=require("./ChatPageTemplate.module.css.cjs"),h=t.forwardRef(({title:j="Chat",messages:d=[],inputPlaceholder:x="Type a message...",onSendMessage:c,participants:u=[],selectedParticipantId:N,onSelectParticipant:p,isTyping:v=!1,isLoading:l=!1,error:m,className:b,...g},y)=>{const[i,o]=t.useState(""),f=t.useRef(null);t.useEffect(()=>{f.current?.scrollIntoView({behavior:"smooth"})},[d]);const n=t.useCallback(()=>{i.trim()&&(c?.(i.trim()),o(""))},[i,c]),S=t.useCallback(s=>{s.key==="Enter"&&!s.shiftKey&&(s.preventDefault(),n())},[n]);return e.jsxs("div",{ref:y,className:[a.default.root,b].filter(Boolean).join(" "),...g,children:[u.length>0&&e.jsxs("div",{className:a.default.sidebar,children:[e.jsx("h3",{className:a.default.sidebarTitle,children:"Participants"}),e.jsx("div",{className:a.default.participantsList,children:u.map(s=>e.jsxs("div",{className:[a.default.participant,N===s.id&&a.default.participantActive].filter(Boolean).join(" "),onClick:()=>p?.(s.id),children:[s.avatar&&e.jsx("img",{src:s.avatar,alt:s.name,className:a.default.participantAvatar}),e.jsxs("div",{className:a.default.participantInfo,children:[e.jsx("div",{className:a.default.participantName,children:s.name}),s.status&&e.jsx("div",{className:[a.default.participantStatus,a.default[`status${s.status}`]].filter(Boolean).join(" "),children:s.status})]})]},s.id))})]}),e.jsxs("div",{className:a.default.mainArea,children:[e.jsxs("div",{className:a.default.header,children:[e.jsx("h2",{className:a.default.title,children:j}),m&&e.jsx("div",{className:a.default.errorBadge,children:m})]}),e.jsxs("div",{className:a.default.messagesContainer,children:[d.length===0?e.jsxs("div",{className:a.default.emptyState,children:[e.jsx("div",{className:a.default.emptyStateIcon,children:"💬"}),e.jsx("h3",{className:a.default.emptyStateTitle,children:"No messages yet"}),e.jsx("p",{className:a.default.emptyStateText,children:"Start the conversation by sending a message"})]}):e.jsxs(e.Fragment,{children:[d.map(s=>e.jsxs("div",{className:[a.default.messageWrapper,a.default[`message${s.role}`]].filter(Boolean).join(" "),children:[e.jsxs("div",{className:a.default.messageBubble,children:[e.jsx("p",{className:a.default.messageContent,children:s.content}),s.timestamp&&e.jsx("span",{className:a.default.messageTime,children:new Date(s.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})})]}),s.status&&e.jsxs("span",{className:[a.default.messageStatus,a.default[`status${s.status}`]].filter(Boolean).join(" "),title:s.status,children:[s.status==="sending"&&"⏱",s.status==="sent"&&"✓",s.status==="error"&&"✗"]})]},s.id)),v&&e.jsx("div",{className:[a.default.messageWrapper,a.default.messageAssistant].join(" "),children:e.jsx("div",{className:a.default.messageBubble,children:e.jsxs("div",{className:a.default.typingIndicator,children:[e.jsx("span",{}),e.jsx("span",{}),e.jsx("span",{})]})})})]}),e.jsx("div",{ref:f})]}),e.jsx("div",{className:a.default.inputArea,children:e.jsxs("div",{className:a.default.inputGroup,children:[e.jsx("button",{className:a.default.actionButton,"aria-label":"Attach file",disabled:l,children:e.jsx(r.Paperclip,{size:20})}),e.jsx("textarea",{className:a.default.input,placeholder:x,value:i,onChange:s=>o(s.target.value),onKeyDown:S,disabled:l,rows:1}),e.jsx("button",{className:a.default.actionButton,"aria-label":"Add emoji",disabled:l,children:e.jsx(r.Smile,{size:20})}),e.jsx(C.Button,{variant:"primary",iconOnly:!0,icon:e.jsx(r.Send,{size:20}),onClick:n,disabled:!i.trim()||l,isLoading:l,"aria-label":"Send message"})]})})]})]})});h.displayName="ChatPageTemplate";exports.ChatPageTemplate=h;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { ChatPageTemplateProps } from './ChatPageTemplate.types';
|
|
2
|
-
|
|
3
|
-
export declare const ChatPageTemplate: import('react').ForwardRefExoticComponent<ChatPageTemplateProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
4
|
-
export default ChatPageTemplate;
|
|
5
|
-
//# sourceMappingURL=ChatPageTemplate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChatPageTemplate.d.ts","sourceRoot":"","sources":["../../../../../src/blocks/templates/app/ChatPageTemplate/ChatPageTemplate.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGtE,eAAO,MAAM,gBAAgB,kHA8N5B,CAAC;AAGF,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
import { jsxs as s, jsx as t, Fragment as j } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef as C, useState as T, useRef as A, useEffect as w, useCallback as u } from "react";
|
|
3
|
-
import { Button as x } from "@orion-ds/react";
|
|
4
|
-
import { Paperclip as I, Smile as k, Send as D } from "lucide-react";
|
|
5
|
-
import e from "./ChatPageTemplate.module.css.mjs";
|
|
6
|
-
const P = C(
|
|
7
|
-
({
|
|
8
|
-
title: p = "Chat",
|
|
9
|
-
messages: n = [],
|
|
10
|
-
inputPlaceholder: N = "Type a message...",
|
|
11
|
-
onSendMessage: c,
|
|
12
|
-
participants: d = [],
|
|
13
|
-
selectedParticipantId: v,
|
|
14
|
-
onSelectParticipant: f,
|
|
15
|
-
isTyping: b = !1,
|
|
16
|
-
isLoading: i = !1,
|
|
17
|
-
error: m,
|
|
18
|
-
className: y,
|
|
19
|
-
...g
|
|
20
|
-
}, S) => {
|
|
21
|
-
const [l, o] = T(""), h = A(null);
|
|
22
|
-
w(() => {
|
|
23
|
-
h.current?.scrollIntoView({ behavior: "smooth" });
|
|
24
|
-
}, [n]);
|
|
25
|
-
const r = u(() => {
|
|
26
|
-
l.trim() && (c?.(l.trim()), o(""));
|
|
27
|
-
}, [l, c]), B = u(
|
|
28
|
-
(a) => {
|
|
29
|
-
a.key === "Enter" && !a.shiftKey && (a.preventDefault(), r());
|
|
30
|
-
},
|
|
31
|
-
[r]
|
|
32
|
-
);
|
|
33
|
-
return /* @__PURE__ */ s(
|
|
34
|
-
"div",
|
|
35
|
-
{
|
|
36
|
-
ref: S,
|
|
37
|
-
className: [e.root, y].filter(Boolean).join(" "),
|
|
38
|
-
...g,
|
|
39
|
-
children: [
|
|
40
|
-
d.length > 0 && /* @__PURE__ */ s("div", { className: e.sidebar, children: [
|
|
41
|
-
/* @__PURE__ */ t("h3", { className: e.sidebarTitle, children: "Participants" }),
|
|
42
|
-
/* @__PURE__ */ t("div", { className: e.participantsList, children: d.map((a) => /* @__PURE__ */ s(
|
|
43
|
-
"div",
|
|
44
|
-
{
|
|
45
|
-
className: [
|
|
46
|
-
e.participant,
|
|
47
|
-
v === a.id && e.participantActive
|
|
48
|
-
].filter(Boolean).join(" "),
|
|
49
|
-
onClick: () => f?.(a.id),
|
|
50
|
-
children: [
|
|
51
|
-
a.avatar && /* @__PURE__ */ t(
|
|
52
|
-
"img",
|
|
53
|
-
{
|
|
54
|
-
src: a.avatar,
|
|
55
|
-
alt: a.name,
|
|
56
|
-
className: e.participantAvatar
|
|
57
|
-
}
|
|
58
|
-
),
|
|
59
|
-
/* @__PURE__ */ s("div", { className: e.participantInfo, children: [
|
|
60
|
-
/* @__PURE__ */ t("div", { className: e.participantName, children: a.name }),
|
|
61
|
-
a.status && /* @__PURE__ */ t(
|
|
62
|
-
"div",
|
|
63
|
-
{
|
|
64
|
-
className: [
|
|
65
|
-
e.participantStatus,
|
|
66
|
-
e[`status${a.status}`]
|
|
67
|
-
].filter(Boolean).join(" "),
|
|
68
|
-
children: a.status
|
|
69
|
-
}
|
|
70
|
-
)
|
|
71
|
-
] })
|
|
72
|
-
]
|
|
73
|
-
},
|
|
74
|
-
a.id
|
|
75
|
-
)) })
|
|
76
|
-
] }),
|
|
77
|
-
/* @__PURE__ */ s("div", { className: e.mainArea, children: [
|
|
78
|
-
/* @__PURE__ */ s("div", { className: e.header, children: [
|
|
79
|
-
/* @__PURE__ */ t("h2", { className: e.title, children: p }),
|
|
80
|
-
m && /* @__PURE__ */ t("div", { className: e.errorBadge, children: m })
|
|
81
|
-
] }),
|
|
82
|
-
/* @__PURE__ */ s("div", { className: e.messagesContainer, children: [
|
|
83
|
-
n.length === 0 ? /* @__PURE__ */ s("div", { className: e.emptyState, children: [
|
|
84
|
-
/* @__PURE__ */ t("div", { className: e.emptyStateIcon, children: "💬" }),
|
|
85
|
-
/* @__PURE__ */ t("h3", { className: e.emptyStateTitle, children: "No messages yet" }),
|
|
86
|
-
/* @__PURE__ */ t("p", { className: e.emptyStateText, children: "Start the conversation by sending a message" })
|
|
87
|
-
] }) : /* @__PURE__ */ s(j, { children: [
|
|
88
|
-
n.map((a) => /* @__PURE__ */ s(
|
|
89
|
-
"div",
|
|
90
|
-
{
|
|
91
|
-
className: [
|
|
92
|
-
e.messageWrapper,
|
|
93
|
-
e[`message${a.role}`]
|
|
94
|
-
].filter(Boolean).join(" "),
|
|
95
|
-
children: [
|
|
96
|
-
/* @__PURE__ */ s("div", { className: e.messageBubble, children: [
|
|
97
|
-
/* @__PURE__ */ t("p", { className: e.messageContent, children: a.content }),
|
|
98
|
-
a.timestamp && /* @__PURE__ */ t("span", { className: e.messageTime, children: new Date(a.timestamp).toLocaleTimeString([], {
|
|
99
|
-
hour: "2-digit",
|
|
100
|
-
minute: "2-digit"
|
|
101
|
-
}) })
|
|
102
|
-
] }),
|
|
103
|
-
a.status && /* @__PURE__ */ s(
|
|
104
|
-
"span",
|
|
105
|
-
{
|
|
106
|
-
className: [
|
|
107
|
-
e.messageStatus,
|
|
108
|
-
e[`status${a.status}`]
|
|
109
|
-
].filter(Boolean).join(" "),
|
|
110
|
-
title: a.status,
|
|
111
|
-
children: [
|
|
112
|
-
a.status === "sending" && "⏱",
|
|
113
|
-
a.status === "sent" && "✓",
|
|
114
|
-
a.status === "error" && "✗"
|
|
115
|
-
]
|
|
116
|
-
}
|
|
117
|
-
)
|
|
118
|
-
]
|
|
119
|
-
},
|
|
120
|
-
a.id
|
|
121
|
-
)),
|
|
122
|
-
b && /* @__PURE__ */ t(
|
|
123
|
-
"div",
|
|
124
|
-
{
|
|
125
|
-
className: [
|
|
126
|
-
e.messageWrapper,
|
|
127
|
-
e.messageAssistant
|
|
128
|
-
].join(" "),
|
|
129
|
-
children: /* @__PURE__ */ t("div", { className: e.messageBubble, children: /* @__PURE__ */ s("div", { className: e.typingIndicator, children: [
|
|
130
|
-
/* @__PURE__ */ t("span", {}),
|
|
131
|
-
/* @__PURE__ */ t("span", {}),
|
|
132
|
-
/* @__PURE__ */ t("span", {})
|
|
133
|
-
] }) })
|
|
134
|
-
}
|
|
135
|
-
)
|
|
136
|
-
] }),
|
|
137
|
-
/* @__PURE__ */ t("div", { ref: h })
|
|
138
|
-
] }),
|
|
139
|
-
/* @__PURE__ */ t("div", { className: e.inputArea, children: /* @__PURE__ */ s("div", { className: e.inputGroup, children: [
|
|
140
|
-
/* @__PURE__ */ t(
|
|
141
|
-
"button",
|
|
142
|
-
{
|
|
143
|
-
className: e.actionButton,
|
|
144
|
-
"aria-label": "Attach file",
|
|
145
|
-
disabled: i,
|
|
146
|
-
children: /* @__PURE__ */ t(I, { size: 20 })
|
|
147
|
-
}
|
|
148
|
-
),
|
|
149
|
-
/* @__PURE__ */ t(
|
|
150
|
-
"textarea",
|
|
151
|
-
{
|
|
152
|
-
className: e.input,
|
|
153
|
-
placeholder: N,
|
|
154
|
-
value: l,
|
|
155
|
-
onChange: (a) => o(a.target.value),
|
|
156
|
-
onKeyDown: B,
|
|
157
|
-
disabled: i,
|
|
158
|
-
rows: 1
|
|
159
|
-
}
|
|
160
|
-
),
|
|
161
|
-
/* @__PURE__ */ t(
|
|
162
|
-
"button",
|
|
163
|
-
{
|
|
164
|
-
className: e.actionButton,
|
|
165
|
-
"aria-label": "Add emoji",
|
|
166
|
-
disabled: i,
|
|
167
|
-
children: /* @__PURE__ */ t(k, { size: 20 })
|
|
168
|
-
}
|
|
169
|
-
),
|
|
170
|
-
/* @__PURE__ */ t(
|
|
171
|
-
x,
|
|
172
|
-
{
|
|
173
|
-
variant: "primary",
|
|
174
|
-
iconOnly: !0,
|
|
175
|
-
icon: /* @__PURE__ */ t(D, { size: 20 }),
|
|
176
|
-
onClick: r,
|
|
177
|
-
disabled: !l.trim() || i,
|
|
178
|
-
isLoading: i,
|
|
179
|
-
"aria-label": "Send message"
|
|
180
|
-
}
|
|
181
|
-
)
|
|
182
|
-
] }) })
|
|
183
|
-
] })
|
|
184
|
-
]
|
|
185
|
-
}
|
|
186
|
-
);
|
|
187
|
-
}
|
|
188
|
-
);
|
|
189
|
-
P.displayName = "ChatPageTemplate";
|
|
190
|
-
export {
|
|
191
|
-
P as ChatPageTemplate
|
|
192
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
._root_z5x1z_3{display:flex;height:100%;width:100%;background:var(--surface-base);overflow:hidden}._sidebar_z5x1z_11{width:280px;border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;background:var(--surface-subtle);overflow-y:auto}@media(max-width:768px){._sidebar_z5x1z_11{display:none}}._sidebarTitle_z5x1z_26{margin:var(--spacing-4);font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}._participantsList_z5x1z_35{display:flex;flex-direction:column}._participant_z5x1z_35{padding:var(--spacing-3) var(--spacing-4);display:flex;align-items:center;gap:var(--spacing-3);cursor:pointer;transition:background-color .15s ease;border-left:3px solid transparent}._participant_z5x1z_35:hover{background:var(--surface-layer)}._participantActive_z5x1z_54{background:var(--surface-base);border-left-color:var(--border-primary)}._participantAvatar_z5x1z_59{width:40px;height:40px;border-radius:var(--radius-full);object-fit:cover}._participantInfo_z5x1z_66{flex:1;min-width:0}._participantName_z5x1z_71{font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._participantStatus_z5x1z_80{font-size:var(--font-size-xs);color:var(--text-tertiary);text-transform:capitalize}._statusonline_z5x1z_86{color:var(--text-success)}._statusaway_z5x1z_90{color:var(--text-warning)}._statusoffline_z5x1z_94{color:var(--text-tertiary)}._mainArea_z5x1z_98{flex:1;display:flex;flex-direction:column;overflow:hidden}._header_z5x1z_105{padding:var(--spacing-4);border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;align-items:center;background:var(--surface-base)}._title_z5x1z_114{margin:0;font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary)}._errorBadge_z5x1z_121{padding:var(--spacing-2) var(--spacing-3);background:var(--surface-danger-subtle);color:var(--text-danger);border-radius:var(--radius-control);font-size:var(--font-size-xs);font-weight:500}._messagesContainer_z5x1z_130{flex:1;overflow-y:auto;padding:var(--spacing-4);display:flex;flex-direction:column;gap:var(--spacing-3)}._emptyState_z5x1z_139{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--spacing-3);text-align:center}._emptyStateIcon_z5x1z_149{font-size:48px}._emptyStateTitle_z5x1z_153{margin:0;font-size:var(--font-size-md);font-weight:600;color:var(--text-primary)}._emptyStateText_z5x1z_160{margin:0;font-size:var(--font-size-sm);color:var(--text-secondary)}._messageWrapper_z5x1z_166{display:flex;align-items:flex-end;gap:var(--spacing-2)}._messageuser_z5x1z_172{justify-content:flex-end}._messageassistant_z5x1z_176{justify-content:flex-start}._messageBubble_z5x1z_180{max-width:60%;padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-control);overflow-wrap:break-word}._messageuser_z5x1z_172 ._messageBubble_z5x1z_180{background:var(--interactive-primary);color:var(--interactive-primary-text);border-bottom-right-radius:4px}._messageassistant_z5x1z_176 ._messageBubble_z5x1z_180{background:var(--surface-layer);color:var(--text-primary);border-bottom-left-radius:4px}._messageContent_z5x1z_199{margin:0;font-size:var(--font-size-base);line-height:1.5}._messageTime_z5x1z_205{display:block;font-size:var(--font-size-xs);opacity:.7;margin-top:var(--spacing-1)}._messageStatus_z5x1z_212{font-size:var(--font-size-xs);opacity:.7}._statussending_z5x1z_217{color:var(--text-warning)}._statussent_z5x1z_221{color:var(--text-success)}._statuserror_z5x1z_225{color:var(--text-danger)}._typingIndicator_z5x1z_229{display:flex;gap:4px;align-items:center;padding:var(--spacing-1) 0}._typingIndicator_z5x1z_229 span{width:8px;height:8px;border-radius:var(--radius-full);background:var(--text-secondary);animation:_typing_z5x1z_229 1.4s infinite}._typingIndicator_z5x1z_229 span:nth-child(2){animation-delay:.2s}._typingIndicator_z5x1z_229 span:nth-child(3){animation-delay:.4s}@keyframes _typing_z5x1z_229{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-10px)}}._inputArea_z5x1z_265{padding:var(--spacing-4);border-top:1px solid var(--border-subtle);background:var(--surface-base)}._inputGroup_z5x1z_271{display:flex;align-items:flex-end;gap:var(--spacing-2)}._input_z5x1z_265{flex:1;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:var(--surface-base);color:var(--text-primary);font-family:var(--font-secondary);font-size:var(--font-size-base);resize:none;max-height:120px;transition:border-color .15s ease}._input_z5x1z_265:hover{border-color:var(--border-base)}._input_z5x1z_265:focus{outline:none;border-color:var(--border-primary);box-shadow:0 0 0 2px var(--surface-primary-subtle)}._input_z5x1z_265:disabled{background:var(--surface-subtle);color:var(--text-tertiary)}._actionButton_z5x1z_306{display:flex;align-items:center;justify-content:center;padding:var(--spacing-2);border:none;border-radius:var(--radius-control);background:transparent;color:var(--text-secondary);cursor:pointer;transition:color .15s ease,background-color .15s ease}._actionButton_z5x1z_306:hover:not(:disabled){color:var(--text-primary);background:var(--surface-subtle)}._actionButton_z5x1z_306:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){._messageBubble_z5x1z_180{max-width:85%}._inputArea_z5x1z_265{padding:var(--spacing-3)}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t="_root_z5x1z_3",a="_sidebar_z5x1z_11",e="_sidebarTitle_z5x1z_26",s="_participantsList_z5x1z_35",n="_participant_z5x1z_35",i="_participantActive_z5x1z_54",_="_participantAvatar_z5x1z_59",r="_participantInfo_z5x1z_66",p="_participantName_z5x1z_71",o="_participantStatus_z5x1z_80",c="_statusonline_z5x1z_86",z="_statusaway_z5x1z_90",u="_statusoffline_z5x1z_94",m="_mainArea_z5x1z_98",g="_header_z5x1z_105",x="_title_z5x1z_114",l="_errorBadge_z5x1z_121",y="_messagesContainer_z5x1z_130",d="_emptyState_z5x1z_139",S="_emptyStateIcon_z5x1z_149",b="_emptyStateTitle_z5x1z_153",T="_emptyStateText_z5x1z_160",A="_messageWrapper_z5x1z_166",f="_messageuser_z5x1z_172",B="_messageassistant_z5x1z_176",I="_messageBubble_z5x1z_180",v="_messageContent_z5x1z_199",C="_messageTime_z5x1z_205",h="_messageStatus_z5x1z_212",w="_statussending_z5x1z_217",G="_statussent_z5x1z_221",L="_statuserror_z5x1z_225",N="_typingIndicator_z5x1z_229",W="_typing_z5x1z_229",M="_inputArea_z5x1z_265",j="_inputGroup_z5x1z_271",O="_input_z5x1z_265",P="_actionButton_z5x1z_306",k={root:t,sidebar:a,sidebarTitle:e,participantsList:s,participant:n,participantActive:i,participantAvatar:_,participantInfo:r,participantName:p,participantStatus:o,statusonline:c,statusaway:z,statusoffline:u,mainArea:m,header:g,title:x,errorBadge:l,messagesContainer:y,emptyState:d,emptyStateIcon:S,emptyStateTitle:b,emptyStateText:T,messageWrapper:A,messageuser:f,messageassistant:B,messageBubble:I,messageContent:v,messageTime:C,messageStatus:h,statussending:w,statussent:G,statuserror:L,typingIndicator:N,typing:W,inputArea:M,inputGroup:j,input:O,actionButton:P};exports.actionButton=P;exports.default=k;exports.emptyState=d;exports.emptyStateIcon=S;exports.emptyStateText=T;exports.emptyStateTitle=b;exports.errorBadge=l;exports.header=g;exports.input=O;exports.inputArea=M;exports.inputGroup=j;exports.mainArea=m;exports.messageBubble=I;exports.messageContent=v;exports.messageStatus=h;exports.messageTime=C;exports.messageWrapper=A;exports.messageassistant=B;exports.messagesContainer=y;exports.messageuser=f;exports.participant=n;exports.participantActive=i;exports.participantAvatar=_;exports.participantInfo=r;exports.participantName=p;exports.participantStatus=o;exports.participantsList=s;exports.root=t;exports.sidebar=a;exports.sidebarTitle=e;exports.statusaway=z;exports.statuserror=L;exports.statusoffline=u;exports.statusonline=c;exports.statussending=w;exports.statussent=G;exports.title=x;exports.typing=W;exports.typingIndicator=N;
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
const t = "_root_z5x1z_3", s = "_sidebar_z5x1z_11", a = "_sidebarTitle_z5x1z_26", e = "_participantsList_z5x1z_35", n = "_participant_z5x1z_35", _ = "_participantActive_z5x1z_54", i = "_participantAvatar_z5x1z_59", o = "_participantInfo_z5x1z_66", p = "_participantName_z5x1z_71", r = "_participantStatus_z5x1z_80", z = "_statusonline_z5x1z_86", c = "_statusaway_z5x1z_90", u = "_statusoffline_z5x1z_94", m = "_mainArea_z5x1z_98", x = "_header_z5x1z_105", g = "_title_z5x1z_114", y = "_errorBadge_z5x1z_121", l = "_messagesContainer_z5x1z_130", d = "_emptyState_z5x1z_139", S = "_emptyStateIcon_z5x1z_149", b = "_emptyStateTitle_z5x1z_153", A = "_emptyStateText_z5x1z_160", T = "_messageWrapper_z5x1z_166", f = "_messageuser_z5x1z_172", B = "_messageassistant_z5x1z_176", I = "_messageBubble_z5x1z_180", v = "_messageContent_z5x1z_199", C = "_messageTime_z5x1z_205", h = "_messageStatus_z5x1z_212", w = "_statussending_z5x1z_217", G = "_statussent_z5x1z_221", L = "_statuserror_z5x1z_225", N = "_typingIndicator_z5x1z_229", W = "_typing_z5x1z_229", j = "_inputArea_z5x1z_265", k = "_inputGroup_z5x1z_271", q = "_input_z5x1z_265", D = "_actionButton_z5x1z_306", E = {
|
|
2
|
-
root: t,
|
|
3
|
-
sidebar: s,
|
|
4
|
-
sidebarTitle: a,
|
|
5
|
-
participantsList: e,
|
|
6
|
-
participant: n,
|
|
7
|
-
participantActive: _,
|
|
8
|
-
participantAvatar: i,
|
|
9
|
-
participantInfo: o,
|
|
10
|
-
participantName: p,
|
|
11
|
-
participantStatus: r,
|
|
12
|
-
statusonline: z,
|
|
13
|
-
statusaway: c,
|
|
14
|
-
statusoffline: u,
|
|
15
|
-
mainArea: m,
|
|
16
|
-
header: x,
|
|
17
|
-
title: g,
|
|
18
|
-
errorBadge: y,
|
|
19
|
-
messagesContainer: l,
|
|
20
|
-
emptyState: d,
|
|
21
|
-
emptyStateIcon: S,
|
|
22
|
-
emptyStateTitle: b,
|
|
23
|
-
emptyStateText: A,
|
|
24
|
-
messageWrapper: T,
|
|
25
|
-
messageuser: f,
|
|
26
|
-
messageassistant: B,
|
|
27
|
-
messageBubble: I,
|
|
28
|
-
messageContent: v,
|
|
29
|
-
messageTime: C,
|
|
30
|
-
messageStatus: h,
|
|
31
|
-
statussending: w,
|
|
32
|
-
statussent: G,
|
|
33
|
-
statuserror: L,
|
|
34
|
-
typingIndicator: N,
|
|
35
|
-
typing: W,
|
|
36
|
-
inputArea: j,
|
|
37
|
-
inputGroup: k,
|
|
38
|
-
input: q,
|
|
39
|
-
actionButton: D
|
|
40
|
-
};
|
|
41
|
-
export {
|
|
42
|
-
D as actionButton,
|
|
43
|
-
E as default,
|
|
44
|
-
d as emptyState,
|
|
45
|
-
S as emptyStateIcon,
|
|
46
|
-
A as emptyStateText,
|
|
47
|
-
b as emptyStateTitle,
|
|
48
|
-
y as errorBadge,
|
|
49
|
-
x as header,
|
|
50
|
-
q as input,
|
|
51
|
-
j as inputArea,
|
|
52
|
-
k as inputGroup,
|
|
53
|
-
m as mainArea,
|
|
54
|
-
I as messageBubble,
|
|
55
|
-
v as messageContent,
|
|
56
|
-
h as messageStatus,
|
|
57
|
-
C as messageTime,
|
|
58
|
-
T as messageWrapper,
|
|
59
|
-
B as messageassistant,
|
|
60
|
-
l as messagesContainer,
|
|
61
|
-
f as messageuser,
|
|
62
|
-
n as participant,
|
|
63
|
-
_ as participantActive,
|
|
64
|
-
i as participantAvatar,
|
|
65
|
-
o as participantInfo,
|
|
66
|
-
p as participantName,
|
|
67
|
-
r as participantStatus,
|
|
68
|
-
e as participantsList,
|
|
69
|
-
t as root,
|
|
70
|
-
s as sidebar,
|
|
71
|
-
a as sidebarTitle,
|
|
72
|
-
c as statusaway,
|
|
73
|
-
L as statuserror,
|
|
74
|
-
u as statusoffline,
|
|
75
|
-
z as statusonline,
|
|
76
|
-
w as statussending,
|
|
77
|
-
G as statussent,
|
|
78
|
-
g as title,
|
|
79
|
-
W as typing,
|
|
80
|
-
N as typingIndicator
|
|
81
|
-
};
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
2
|
-
|
|
3
|
-
export interface ChatParticipant {
|
|
4
|
-
id: string;
|
|
5
|
-
name: string;
|
|
6
|
-
avatar?: string;
|
|
7
|
-
status?: "online" | "offline" | "away";
|
|
8
|
-
}
|
|
9
|
-
export interface ChatMessage {
|
|
10
|
-
id: string;
|
|
11
|
-
role: "user" | "assistant";
|
|
12
|
-
content: string;
|
|
13
|
-
timestamp?: Date;
|
|
14
|
-
status?: "sending" | "sent" | "error";
|
|
15
|
-
}
|
|
16
|
-
export interface ChatPageTemplateProps {
|
|
17
|
-
/** Page title */
|
|
18
|
-
title?: string;
|
|
19
|
-
/** Messages to display */
|
|
20
|
-
messages?: ChatMessage[];
|
|
21
|
-
/** Input placeholder text */
|
|
22
|
-
inputPlaceholder?: string;
|
|
23
|
-
/** Called when message is sent */
|
|
24
|
-
onSendMessage?: (message: string) => void;
|
|
25
|
-
/** Chat participants (for sidebar or header) */
|
|
26
|
-
participants?: ChatParticipant[];
|
|
27
|
-
/** Currently selected participant */
|
|
28
|
-
selectedParticipantId?: string;
|
|
29
|
-
/** Called when participant is selected */
|
|
30
|
-
onSelectParticipant?: (participantId: string) => void;
|
|
31
|
-
/** Loading/typing indicator state */
|
|
32
|
-
isTyping?: boolean;
|
|
33
|
-
/** Loading state */
|
|
34
|
-
isLoading?: boolean;
|
|
35
|
-
/** Error message */
|
|
36
|
-
error?: string;
|
|
37
|
-
/** Custom className */
|
|
38
|
-
className?: string;
|
|
39
|
-
/** Additional content */
|
|
40
|
-
children?: ReactNode;
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=ChatPageTemplate.types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChatPageTemplate.types.d.ts","sourceRoot":"","sources":["../../../../../src/blocks/templates/app/ChatPageTemplate/ChatPageTemplate.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;CACvC;AAED,MAAM,WAAW,qBAAqB;IACpC,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IAEzB,6BAA6B;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,kCAAkC;IAClC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C,gDAAgD;IAChD,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;IAEjC,qCAAqC;IACrC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,0CAA0C;IAC1C,mBAAmB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtD,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,oBAAoB;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/blocks/templates/app/ChatPageTemplate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EACV,qBAAqB,EACrB,WAAW,EACX,eAAe,GAChB,MAAM,0BAA0B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),s=require("./Chat.module.css.cjs"),d=require("./components/ChatHeader.cjs"),h=require("./components/ChatMessages.cjs"),n=require("./components/ChatMessage.cjs"),C=require("./components/ChatInput.cjs"),c=require("./components/ChatTypingIndicator.cjs"),l=require("./components/ChatCodeBlock.cjs"),u=require("./components/ChatMarkdown.cjs"),p=require("./components/ChatImagePreview.cjs"),m=require("./components/ChatAudioPlayer.cjs"),y=require("./components/ChatVoiceRecorder.cjs"),g=require("./components/ChatFileUpload.cjs"),M=require("./components/ChatAttachment.cjs"),q=require("./components/ChatSidebar.cjs"),a=({children:t,className:r,...i})=>o.jsx("div",{className:[s.default.chat,r].filter(Boolean).join(" "),role:"region","aria-label":"Chat interface",...i,children:t});a.displayName="Chat";const e=a;e.Header=d.ChatHeader;e.Messages=h.ChatMessages;e.Message=n.ChatMessage;e.Input=C.ChatInput;e.TypingIndicator=c.ChatTypingIndicator;e.CodeBlock=l.ChatCodeBlock;e.Markdown=u.ChatMarkdown;e.ImagePreview=p.ChatImagePreview;e.AudioPlayer=m.ChatAudioPlayer;e.VoiceRecorder=y.ChatVoiceRecorder;e.FileUpload=g.ChatFileUpload;e.Attachment=M.ChatAttachment;e.Sidebar=q.ChatSidebar;e.Header.displayName="Chat.Header";e.Messages.displayName="Chat.Messages";e.Message.displayName="Chat.Message";e.Input.displayName="Chat.Input";e.TypingIndicator.displayName="Chat.TypingIndicator";e.CodeBlock.displayName="Chat.CodeBlock";e.Markdown.displayName="Chat.Markdown";e.ImagePreview.displayName="Chat.ImagePreview";e.AudioPlayer.displayName="Chat.AudioPlayer";e.VoiceRecorder.displayName="Chat.VoiceRecorder";e.FileUpload.displayName="Chat.FileUpload";e.Attachment.displayName="Chat.Attachment";e.Sidebar.displayName="Chat.Sidebar";exports.Chat=e;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
import { ChatProps } from './Chat.types';
|
|
3
|
-
import { ChatMessage, ChatMessages, ChatInput, ChatHeader, ChatTypingIndicator, ChatCodeBlock, ChatMarkdown, ChatImagePreview, ChatAudioPlayer, ChatVoiceRecorder, ChatFileUpload, ChatAttachment, ChatSidebar } from './components';
|
|
4
|
-
|
|
5
|
-
type ChatComponent = React.FC<ChatProps> & {
|
|
6
|
-
Header: typeof ChatHeader;
|
|
7
|
-
Messages: typeof ChatMessages;
|
|
8
|
-
Message: typeof ChatMessage;
|
|
9
|
-
Input: typeof ChatInput;
|
|
10
|
-
TypingIndicator: typeof ChatTypingIndicator;
|
|
11
|
-
CodeBlock: typeof ChatCodeBlock;
|
|
12
|
-
Markdown: typeof ChatMarkdown;
|
|
13
|
-
ImagePreview: typeof ChatImagePreview;
|
|
14
|
-
AudioPlayer: typeof ChatAudioPlayer;
|
|
15
|
-
VoiceRecorder: typeof ChatVoiceRecorder;
|
|
16
|
-
FileUpload: typeof ChatFileUpload;
|
|
17
|
-
Attachment: typeof ChatAttachment;
|
|
18
|
-
Sidebar: typeof ChatSidebar;
|
|
19
|
-
};
|
|
20
|
-
export declare const Chat: ChatComponent;
|
|
21
|
-
export {};
|
|
22
|
-
//# sourceMappingURL=Chat.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../src/components/Chat/Chat.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACL,WAAW,EACX,YAAY,EACZ,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,WAAW,EACZ,MAAM,cAAc,CAAC;AAoBtB,KAAK,aAAa,GAAG,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG;IACzC,MAAM,EAAE,OAAO,UAAU,CAAC;IAC1B,QAAQ,EAAE,OAAO,YAAY,CAAC;IAC9B,OAAO,EAAE,OAAO,WAAW,CAAC;IAC5B,KAAK,EAAE,OAAO,SAAS,CAAC;IACxB,eAAe,EAAE,OAAO,mBAAmB,CAAC;IAC5C,SAAS,EAAE,OAAO,aAAa,CAAC;IAChC,QAAQ,EAAE,OAAO,YAAY,CAAC;IAC9B,YAAY,EAAE,OAAO,gBAAgB,CAAC;IACtC,WAAW,EAAE,OAAO,eAAe,CAAC;IACpC,aAAa,EAAE,OAAO,iBAAiB,CAAC;IACxC,UAAU,EAAE,OAAO,cAAc,CAAC;IAClC,UAAU,EAAE,OAAO,cAAc,CAAC;IAClC,OAAO,EAAE,OAAO,WAAW,CAAC;CAC7B,CAAC;AAGF,eAAO,MAAM,IAAI,EAAe,aAAa,CAAC"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { jsx as i } from "react/jsx-runtime";
|
|
2
|
-
import m from "./Chat.module.css.mjs";
|
|
3
|
-
import { ChatHeader as d } from "./components/ChatHeader.mjs";
|
|
4
|
-
import { ChatMessages as p } from "./components/ChatMessages.mjs";
|
|
5
|
-
import { ChatMessage as s } from "./components/ChatMessage.mjs";
|
|
6
|
-
import { ChatInput as l } from "./components/ChatInput.mjs";
|
|
7
|
-
import { ChatTypingIndicator as h } from "./components/ChatTypingIndicator.mjs";
|
|
8
|
-
import { ChatCodeBlock as C } from "./components/ChatCodeBlock.mjs";
|
|
9
|
-
import { ChatMarkdown as n } from "./components/ChatMarkdown.mjs";
|
|
10
|
-
import { ChatImagePreview as c } from "./components/ChatImagePreview.mjs";
|
|
11
|
-
import { ChatAudioPlayer as y } from "./components/ChatAudioPlayer.mjs";
|
|
12
|
-
import { ChatVoiceRecorder as f } from "./components/ChatVoiceRecorder.mjs";
|
|
13
|
-
import { ChatFileUpload as g } from "./components/ChatFileUpload.mjs";
|
|
14
|
-
import { ChatAttachment as N } from "./components/ChatAttachment.mjs";
|
|
15
|
-
import { ChatSidebar as I } from "./components/ChatSidebar.mjs";
|
|
16
|
-
const e = ({ children: t, className: o, ...r }) => /* @__PURE__ */ i(
|
|
17
|
-
"div",
|
|
18
|
-
{
|
|
19
|
-
className: [m.chat, o].filter(Boolean).join(" "),
|
|
20
|
-
role: "region",
|
|
21
|
-
"aria-label": "Chat interface",
|
|
22
|
-
...r,
|
|
23
|
-
children: t
|
|
24
|
-
}
|
|
25
|
-
);
|
|
26
|
-
e.displayName = "Chat";
|
|
27
|
-
const a = e;
|
|
28
|
-
a.Header = d;
|
|
29
|
-
a.Messages = p;
|
|
30
|
-
a.Message = s;
|
|
31
|
-
a.Input = l;
|
|
32
|
-
a.TypingIndicator = h;
|
|
33
|
-
a.CodeBlock = C;
|
|
34
|
-
a.Markdown = n;
|
|
35
|
-
a.ImagePreview = c;
|
|
36
|
-
a.AudioPlayer = y;
|
|
37
|
-
a.VoiceRecorder = f;
|
|
38
|
-
a.FileUpload = g;
|
|
39
|
-
a.Attachment = N;
|
|
40
|
-
a.Sidebar = I;
|
|
41
|
-
a.Header.displayName = "Chat.Header";
|
|
42
|
-
a.Messages.displayName = "Chat.Messages";
|
|
43
|
-
a.Message.displayName = "Chat.Message";
|
|
44
|
-
a.Input.displayName = "Chat.Input";
|
|
45
|
-
a.TypingIndicator.displayName = "Chat.TypingIndicator";
|
|
46
|
-
a.CodeBlock.displayName = "Chat.CodeBlock";
|
|
47
|
-
a.Markdown.displayName = "Chat.Markdown";
|
|
48
|
-
a.ImagePreview.displayName = "Chat.ImagePreview";
|
|
49
|
-
a.AudioPlayer.displayName = "Chat.AudioPlayer";
|
|
50
|
-
a.VoiceRecorder.displayName = "Chat.VoiceRecorder";
|
|
51
|
-
a.FileUpload.displayName = "Chat.FileUpload";
|
|
52
|
-
a.Attachment.displayName = "Chat.Attachment";
|
|
53
|
-
a.Sidebar.displayName = "Chat.Sidebar";
|
|
54
|
-
export {
|
|
55
|
-
a as Chat
|
|
56
|
-
};
|