@nodeblocks/frontend-chat-conversation-block 0.1.0 → 0.2.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.
@@ -0,0 +1,251 @@
1
+ import { AvatarProps, Box, Stack } from '@mui/material';
2
+ import { ComponentProps, ReactNode } from 'react';
3
+ import { BlocksOverride } from './lib';
4
+ declare const ChatConversation: {
5
+ <CustomBlocks extends Record<string, ReactNode> = {}>({ chatView, onInputChange, onMessageSubmit, commentInput, commentSubmitButton, labels, onNavigate, placeholders, messages, className, children, ...props }: Omit<ComponentProps<typeof Stack>, "children"> & {
6
+ /** Callback when submitting a message*/
7
+ onMessageSubmit?: (text: string) => void;
8
+ /** Callback on comment change */
9
+ onInputChange?: (text: string) => void;
10
+ /** Configs for the comment input at the bottom of the page */
11
+ commentInput?: {
12
+ /** Disables input (while submitting or similar) */
13
+ isDisabled?: boolean;
14
+ /** Error message to show below the comment input field */
15
+ errorText?: string;
16
+ };
17
+ /** Configs for the comment input submit button */
18
+ commentSubmitButton?: {
19
+ /** Disables input (while submitting or similar) */
20
+ isDisabled?: boolean;
21
+ };
22
+ /** Chat panel configuration */
23
+ chatView: {
24
+ /** Configuration for the chat view heading above the chat view */
25
+ heading?: {
26
+ avatar?: (Partial<AvatarProps> & {
27
+ isLoading?: boolean;
28
+ }) | (Partial<AvatarProps<"a">> & {
29
+ isLoading?: boolean;
30
+ component: "a";
31
+ });
32
+ buttonHref: string;
33
+ };
34
+ /**
35
+ * Loading state for either overall view or for previous methods
36
+ * (depends on whether messages is empty)
37
+ */
38
+ isLoading?: boolean;
39
+ /**
40
+ * Callback when the user has scrolled up and reached the top of the chat view
41
+ * This can be used to fetch more messages from the server.
42
+ */
43
+ onScrollTop?: (earliestMessageId: string) => void;
44
+ };
45
+ /**
46
+ * The list of messages to show in the chat view
47
+ * Messages should always be provided newest-first.
48
+ * They will be displayed with the newest at the bottom.
49
+ *
50
+ * When the latest message id changes, the user scroll will be
51
+ * updated automatically if the user is currently at the bottom, otherwise
52
+ * they will remain where they are.
53
+ */
54
+ messages: {
55
+ /** MUI Avatar props plus optional href for navigation (requires onNavigate) */
56
+ avatar?: Partial<AvatarProps> & {
57
+ /** Avatar link href (requires onNavigate) */
58
+ href?: string;
59
+ /** Show a temporary loading state (if this user has yet to finish loading) */
60
+ isLoading?: boolean;
61
+ };
62
+ /** Message bubble content */
63
+ content: string;
64
+ /**
65
+ * Date time the message was created at, as an ISO string
66
+ * Messages will then be grouped by days based on the configured locale via
67
+ * the luxon library
68
+ */
69
+ createdAt: string;
70
+ /** Identifier for this message (for callbacks) */
71
+ id: string;
72
+ /** Messages that are your own are highlighted */
73
+ isOwnMessage?: boolean;
74
+ /** Title string (appears above the bubble) */
75
+ title?: string;
76
+ }[];
77
+ /** Label text configuration */
78
+ labels: {
79
+ chatViewHeadingButtonText?: string;
80
+ chatViewHeadingText?: string;
81
+ };
82
+ /** Navigation callback (required for href) */
83
+ onNavigate: (url: string) => void;
84
+ /** Placeholder text configuration */
85
+ placeholders: {
86
+ commentInput: string;
87
+ };
88
+ children?: BlocksOverride<typeof defaultBlocks, CustomBlocks>;
89
+ }): import("react/jsx-runtime").JSX.Element;
90
+ Heading(props: Partial<ComponentProps<typeof Stack> & {
91
+ labels: {
92
+ chatViewHeadingButtonText?: string;
93
+ chatViewHeadingText?: string;
94
+ };
95
+ chatView: {
96
+ heading?: {
97
+ avatar?: Partial<AvatarProps> & {
98
+ isLoading?: boolean;
99
+ };
100
+ buttonHref: string;
101
+ };
102
+ isLoading?: boolean;
103
+ onScrollTop?: (earliestMessageId: string) => void;
104
+ };
105
+ onNavigate: (url: string) => void;
106
+ }>): import("react/jsx-runtime").JSX.Element;
107
+ Body(props: Partial<ComponentProps<typeof Box> & {
108
+ onMessageSubmit?: (text: string) => void;
109
+ onInputChange?: (text: string) => void;
110
+ commentInput?: {
111
+ isDisabled?: boolean;
112
+ errorText?: string;
113
+ };
114
+ commentSubmitButton?: {
115
+ isDisabled?: boolean;
116
+ };
117
+ chatView: {
118
+ heading?: {
119
+ avatar?: Partial<AvatarProps> & {
120
+ isLoading?: boolean;
121
+ };
122
+ buttonHref: string;
123
+ };
124
+ isLoading?: boolean;
125
+ onScrollTop?: (earliestMessageId: string) => void;
126
+ };
127
+ messages: {
128
+ avatar?: Partial<AvatarProps> & {
129
+ href?: string;
130
+ isLoading?: boolean;
131
+ };
132
+ content: string;
133
+ createdAt: string;
134
+ id: string;
135
+ isOwnMessage?: boolean;
136
+ title?: string;
137
+ }[];
138
+ onNavigate: (url: string) => void;
139
+ placeholders: {
140
+ commentInput: string;
141
+ };
142
+ }>): import("react/jsx-runtime").JSX.Element;
143
+ };
144
+ declare const defaultBlocks: {
145
+ heading: import("react").ReactElement<Partial<import("@mui/material").StackOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import("@mui/material/OverridableComponent").CommonProps | keyof import("@mui/material").StackOwnProps> & {
146
+ labels: {
147
+ chatViewHeadingButtonText?: string;
148
+ chatViewHeadingText?: string;
149
+ };
150
+ chatView: {
151
+ heading?: {
152
+ avatar?: Partial<AvatarProps> & {
153
+ isLoading?: boolean;
154
+ };
155
+ buttonHref: string;
156
+ };
157
+ isLoading?: boolean;
158
+ onScrollTop?: (earliestMessageId: string) => void;
159
+ };
160
+ onNavigate: (url: string) => void;
161
+ }>, (props: Partial<ComponentProps<typeof Stack> & {
162
+ labels: {
163
+ chatViewHeadingButtonText?: string;
164
+ chatViewHeadingText?: string;
165
+ };
166
+ chatView: {
167
+ heading?: {
168
+ avatar?: Partial<AvatarProps> & {
169
+ isLoading?: boolean;
170
+ };
171
+ buttonHref: string;
172
+ };
173
+ isLoading?: boolean;
174
+ onScrollTop?: (earliestMessageId: string) => void;
175
+ };
176
+ onNavigate: (url: string) => void;
177
+ }>) => import("react/jsx-runtime").JSX.Element>;
178
+ body: import("react").ReactElement<Partial<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & {
179
+ onMessageSubmit?: (text: string) => void;
180
+ onInputChange?: (text: string) => void;
181
+ commentInput?: {
182
+ isDisabled?: boolean;
183
+ errorText?: string;
184
+ };
185
+ commentSubmitButton?: {
186
+ isDisabled?: boolean;
187
+ };
188
+ chatView: {
189
+ heading?: {
190
+ avatar?: Partial<AvatarProps> & {
191
+ isLoading?: boolean;
192
+ };
193
+ buttonHref: string;
194
+ };
195
+ isLoading?: boolean;
196
+ onScrollTop?: (earliestMessageId: string) => void;
197
+ };
198
+ messages: {
199
+ avatar?: Partial<AvatarProps> & {
200
+ href?: string;
201
+ isLoading?: boolean;
202
+ };
203
+ content: string;
204
+ createdAt: string;
205
+ id: string;
206
+ isOwnMessage?: boolean;
207
+ title?: string;
208
+ }[];
209
+ onNavigate: (url: string) => void;
210
+ placeholders: {
211
+ commentInput: string;
212
+ };
213
+ }>, (props: Partial<ComponentProps<typeof Box> & {
214
+ onMessageSubmit?: (text: string) => void;
215
+ onInputChange?: (text: string) => void;
216
+ commentInput?: {
217
+ isDisabled?: boolean;
218
+ errorText?: string;
219
+ };
220
+ commentSubmitButton?: {
221
+ isDisabled?: boolean;
222
+ };
223
+ chatView: {
224
+ heading?: {
225
+ avatar?: Partial<AvatarProps> & {
226
+ isLoading?: boolean;
227
+ };
228
+ buttonHref: string;
229
+ };
230
+ isLoading?: boolean;
231
+ onScrollTop?: (earliestMessageId: string) => void;
232
+ };
233
+ messages: {
234
+ avatar?: Partial<AvatarProps> & {
235
+ href?: string;
236
+ isLoading?: boolean;
237
+ };
238
+ content: string;
239
+ createdAt: string;
240
+ id: string;
241
+ isOwnMessage?: boolean;
242
+ title?: string;
243
+ }[];
244
+ onNavigate: (url: string) => void;
245
+ placeholders: {
246
+ commentInput: string;
247
+ };
248
+ }>) => import("react/jsx-runtime").JSX.Element>;
249
+ };
250
+ export default ChatConversation;
251
+ //# sourceMappingURL=chat-conversation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-conversation.d.ts","sourceRoot":"","sources":["../src/chat-conversation.tsx"],"names":[],"mappings":"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"}
package/dist/context.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { AvatarProps } from '@basaldev/blocks-frontend-framework';
1
+ import { AvatarProps } from '@mui/material';
2
2
  import { ReactNode } from 'react';
3
3
  type ChatConversationContextValue = {
4
4
  /** Callback when submitting a message*/
@@ -21,7 +21,12 @@ type ChatConversationContextValue = {
21
21
  chatView: {
22
22
  /** Configuration for the chat view heading above the chat view */
23
23
  heading?: {
24
- avatar?: AvatarProps;
24
+ avatar?: (Partial<AvatarProps> & {
25
+ isLoading?: boolean;
26
+ }) | (Partial<AvatarProps<'a'>> & {
27
+ isLoading?: boolean;
28
+ component: 'a';
29
+ });
25
30
  buttonHref: string;
26
31
  };
27
32
  /**
@@ -45,12 +50,13 @@ type ChatConversationContextValue = {
45
50
  * they will remain where they are.
46
51
  */
47
52
  messages: {
48
- /** Avatar used if no image is provided; if not provided, no avatar shown */
49
- avatarColor?: AvatarProps['avatarColor'];
50
- /** Avatar link href (requires onNavigate) */
51
- avatarHref?: AvatarProps['href'];
52
- /** Avatar picture */
53
- avatarUrl?: AvatarProps['avatarUrl'];
53
+ /** MUI Avatar props plus optional href for navigation (requires onNavigate) */
54
+ avatar?: Partial<AvatarProps> & {
55
+ /** Avatar link href (requires onNavigate) */
56
+ href?: string;
57
+ /** Loading state - shows grey placeholder */
58
+ isLoading?: boolean;
59
+ };
54
60
  /** Message bubble content */
55
61
  content: string;
56
62
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,EAAiB,SAAS,EAAc,MAAM,OAAO,CAAC;AAE7D,KAAK,4BAA4B,GAAG;IAClC,wCAAwC;IACxC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,iCAAiC;IACjC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC,8DAA8D;IAC9D,YAAY,CAAC,EAAE;QACb,mDAAmD;QACnD,UAAU,CAAC,EAAE,OAAO,CAAC;QAIrB,0DAA0D;QAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,kDAAkD;IAClD,mBAAmB,CAAC,EAAE;QACpB,mDAAmD;QACnD,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,+BAA+B;IAC/B,QAAQ,EAAE;QACR,kEAAkE;QAClE,OAAO,CAAC,EAAE;YACR,MAAM,CAAC,EAAE,WAAW,CAAC;YACrB,UAAU,EAAE,MAAM,CAAC;SACpB,CAAC;QACF;;;WAGG;QACH,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB;;;WAGG;QACH,WAAW,CAAC,EAAE,CAAC,iBAAiB,EAAE,MAAM,KAAK,IAAI,CAAC;KACnD,CAAC;IACF;;;;;;;;OAQG;IACH,QAAQ,EAAE;QACR,4EAA4E;QAC5E,WAAW,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACzC,6CAA6C;QAC7C,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC,qBAAqB;QACrB,SAAS,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;QACrC,6BAA6B;QAC7B,OAAO,EAAE,MAAM,CAAC;QAChB;;;;WAIG;QACH,SAAS,EAAE,MAAM,CAAC;QAClB,kDAAkD;QAClD,EAAE,EAAE,MAAM,CAAC;QACX,iDAAiD;QACjD,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,8CAA8C;QAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,EAAE,CAAC;IACJ,+BAA+B;IAC/B,MAAM,EAAE;QACN,yBAAyB,CAAC,EAAE,MAAM,CAAC;QACnC,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,8CAA8C;IAC9C,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,qCAAqC;IACrC,YAAY,EAAE;QACZ,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC;AAIF,eAAO,MAAM,wBAAwB,GAAI,wBAGtC,4BAA4B,GAAG;IAChC,QAAQ,EAAE,SAAS,CAAC;CACrB,4CAEA,CAAC;AAEF,eAAO,MAAM,0BAA0B,oCAOtC,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAiB,SAAS,EAAc,MAAM,OAAO,CAAC;AAE7D,KAAK,4BAA4B,GAAG;IAClC,wCAAwC;IACxC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,iCAAiC;IACjC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC,8DAA8D;IAC9D,YAAY,CAAC,EAAE;QACb,mDAAmD;QACnD,UAAU,CAAC,EAAE,OAAO,CAAC;QAIrB,0DAA0D;QAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,kDAAkD;IAClD,mBAAmB,CAAC,EAAE;QACpB,mDAAmD;QACnD,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,+BAA+B;IAC/B,QAAQ,EAAE;QACR,kEAAkE;QAClE,OAAO,CAAC,EAAE;YACR,MAAM,CAAC,EACH,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG;gBAAE,SAAS,CAAC,EAAE,OAAO,CAAA;aAAE,CAAC,GAChD,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG;gBAAE,SAAS,CAAC,EAAE,OAAO,CAAC;gBAAC,SAAS,EAAE,GAAG,CAAA;aAAE,CAAC,CAAC;YAC1E,UAAU,EAAE,MAAM,CAAC;SACpB,CAAC;QACF;;;WAGG;QACH,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB;;;WAGG;QACH,WAAW,CAAC,EAAE,CAAC,iBAAiB,EAAE,MAAM,KAAK,IAAI,CAAC;KACnD,CAAC;IACF;;;;;;;;OAQG;IACH,QAAQ,EAAE;QACR,+EAA+E;QAC/E,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG;YAC9B,6CAA6C;YAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,6CAA6C;YAC7C,SAAS,CAAC,EAAE,OAAO,CAAC;SACrB,CAAC;QACF,6BAA6B;QAC7B,OAAO,EAAE,MAAM,CAAC;QAChB;;;;WAIG;QACH,SAAS,EAAE,MAAM,CAAC;QAClB,kDAAkD;QAClD,EAAE,EAAE,MAAM,CAAC;QACX,iDAAiD;QACjD,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,8CAA8C;QAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,EAAE,CAAC;IACJ,+BAA+B;IAC/B,MAAM,EAAE;QACN,yBAAyB,CAAC,EAAE,MAAM,CAAC;QACnC,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,8CAA8C;IAC9C,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,qCAAqC;IACrC,YAAY,EAAE;QACZ,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC;AAIF,eAAO,MAAM,wBAAwB,GAAI,wBAGtC,4BAA4B,GAAG;IAChC,QAAQ,EAAE,SAAS,CAAC;CACrB,4CAEA,CAAC;AAEF,eAAO,MAAM,0BAA0B,oCAOtC,CAAC"}