@connectycube/react-ui-kit 0.0.19 → 0.0.22
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/configs/dependencies.json +21 -0
- package/configs/imports.json +7 -0
- package/dist/index.cjs +1 -36
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -35
- package/dist/index.js.map +1 -1
- package/dist/types/components/attachment.d.ts +7 -8
- package/dist/types/components/attachment.d.ts.map +1 -1
- package/dist/types/components/avatar.d.ts +1 -0
- package/dist/types/components/avatar.d.ts.map +1 -1
- package/dist/types/components/badge.d.ts +1 -1
- package/dist/types/components/button.d.ts +2 -2
- package/dist/types/components/chat-bubble.d.ts +32 -0
- package/dist/types/components/chat-bubble.d.ts.map +1 -0
- package/dist/types/components/chat-input.d.ts +27 -0
- package/dist/types/components/chat-input.d.ts.map +1 -0
- package/dist/types/components/chat-list.d.ts +30 -0
- package/dist/types/components/chat-list.d.ts.map +1 -0
- package/dist/types/components/checkbox.d.ts +11 -0
- package/dist/types/components/checkbox.d.ts.map +1 -0
- package/dist/types/components/dialog-item.d.ts.map +1 -1
- package/dist/types/components/dialogs-list.d.ts +14 -0
- package/dist/types/components/dialogs-list.d.ts.map +1 -0
- package/dist/types/components/file-picker.d.ts +1 -1
- package/dist/types/components/file-picker.d.ts.map +1 -1
- package/dist/types/components/linkify-text.d.ts +6 -1
- package/dist/types/components/linkify-text.d.ts.map +1 -1
- package/dist/types/components/placeholder-text.d.ts.map +1 -1
- package/dist/types/components/quick-actions.d.ts +14 -0
- package/dist/types/components/quick-actions.d.ts.map +1 -0
- package/dist/types/components/status-call.d.ts +8 -0
- package/dist/types/components/status-call.d.ts.map +1 -0
- package/dist/types/components/switch.d.ts.map +1 -1
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -1
- package/gen/components/attachment.jsx +27 -25
- package/gen/components/avatar.jsx +14 -2
- package/gen/components/button.jsx +1 -1
- package/gen/components/chat-bubble.jsx +141 -0
- package/gen/components/chat-input.jsx +152 -0
- package/gen/components/chat-list.jsx +151 -0
- package/gen/components/checkbox.jsx +30 -0
- package/gen/components/dialog-item.jsx +5 -2
- package/gen/components/dialogs-list.jsx +73 -0
- package/gen/components/dismiss-layer.jsx +1 -1
- package/gen/components/file-picker.jsx +2 -2
- package/gen/components/linkify-text.jsx +41 -2
- package/gen/components/placeholder-text.jsx +5 -1
- package/gen/components/quick-actions.jsx +62 -0
- package/gen/components/search.jsx +1 -1
- package/gen/components/status-call.jsx +18 -0
- package/gen/components/stream-view.jsx +8 -8
- package/gen/components/switch.jsx +0 -2
- package/gen/index.js +16 -0
- package/package.json +17 -13
- package/src/components/attachment.tsx +38 -37
- package/src/components/avatar.tsx +3 -1
- package/src/components/button.tsx +1 -1
- package/src/components/chat-bubble.tsx +176 -0
- package/src/components/chat-input.tsx +172 -0
- package/src/components/chat-list.tsx +164 -0
- package/src/components/checkbox.tsx +40 -0
- package/src/components/connectycube-ui/attachment.tsx +269 -0
- package/src/components/connectycube-ui/chat-input.tsx +174 -0
- package/src/components/connectycube-ui/chat-message.tsx +138 -0
- package/src/components/connectycube-ui/link-preview.tsx +149 -0
- package/src/components/dialog-item.tsx +5 -2
- package/src/components/dialogs-list.tsx +84 -0
- package/src/components/dismiss-layer.tsx +1 -1
- package/src/components/file-picker.tsx +3 -3
- package/src/components/linkify-text.tsx +44 -3
- package/src/components/placeholder-text.tsx +5 -1
- package/src/components/quick-actions.tsx +74 -0
- package/src/components/search.tsx +1 -1
- package/src/components/status-call.tsx +23 -0
- package/src/components/stream-view.tsx +8 -8
- package/src/components/switch.tsx +0 -2
- package/src/index.ts +21 -0
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
2
|
import { type LucideProps } from 'lucide-react';
|
|
3
3
|
interface AttachmentProps {
|
|
4
|
+
pending?: boolean;
|
|
4
5
|
uid?: string;
|
|
5
6
|
url?: string;
|
|
6
7
|
mimeType?: string;
|
|
7
|
-
|
|
8
|
-
onReady?: (skipOnce?: boolean) => void;
|
|
8
|
+
onReady?: () => void;
|
|
9
9
|
linkProps?: AttachmentLinkProps;
|
|
10
10
|
containerProps?: React.ComponentProps<'div'>;
|
|
11
11
|
}
|
|
12
|
-
interface AttachmentLinkProps extends React.ComponentProps<'a'>, Omit<AttachmentProps, 'containerProps' & 'mimeType'
|
|
13
|
-
children?: React.ReactNode;
|
|
12
|
+
interface AttachmentLinkProps extends React.ComponentProps<'a'>, Omit<AttachmentProps, 'containerProps' & 'mimeType'> {
|
|
14
13
|
}
|
|
15
14
|
interface AttachmentImageProps extends React.ComponentProps<'img'>, Omit<AttachmentProps, 'containerProps' & 'mimeType'> {
|
|
16
15
|
}
|
|
17
|
-
interface AttachmentAudioProps extends React.ComponentProps<'audio'>, Omit<AttachmentProps, 'linkProps' & 'mimeType'
|
|
16
|
+
interface AttachmentAudioProps extends React.ComponentProps<'audio'>, Omit<AttachmentProps, 'linkProps' & 'mimeType'> {
|
|
18
17
|
}
|
|
19
18
|
interface AttachmentVideoProps extends React.ComponentProps<'video'>, Omit<AttachmentProps, 'linkProps' & 'mimeType'> {
|
|
20
19
|
maxSize?: number;
|
|
@@ -31,15 +30,15 @@ declare const AttachmentLink: React.ForwardRefExoticComponent<Omit<AttachmentLin
|
|
|
31
30
|
declare const AttachmentAudio: React.ForwardRefExoticComponent<Omit<AttachmentAudioProps, "ref"> & React.RefAttributes<HTMLAudioElement>>;
|
|
32
31
|
declare const AttachmentVideo: React.ForwardRefExoticComponent<Omit<AttachmentVideoProps, "ref"> & React.RefAttributes<HTMLVideoElement>>;
|
|
33
32
|
declare const AttachmentImage: React.ForwardRefExoticComponent<Omit<AttachmentImageProps, "ref"> & React.RefAttributes<HTMLImageElement>>;
|
|
34
|
-
declare function AttachmentFile({ url, name,
|
|
33
|
+
declare function AttachmentFile({ url, name, pending, iconElement, linkProps, ...props }: AttachmentFileProps): import("react/jsx-runtime").JSX.Element;
|
|
35
34
|
declare namespace AttachmentFile {
|
|
36
35
|
var displayName: string;
|
|
37
36
|
}
|
|
38
|
-
declare function AttachmentFailed({ name,
|
|
37
|
+
declare function AttachmentFailed({ name, pending, iconElement, containerProps, ...props }: AttachmentFailedProps): import("react/jsx-runtime").JSX.Element;
|
|
39
38
|
declare namespace AttachmentFailed {
|
|
40
39
|
var displayName: string;
|
|
41
40
|
}
|
|
42
|
-
declare function AttachmentBase({ mimeType, ...props }: AttachmentProps): import("react/jsx-runtime").JSX.Element;
|
|
41
|
+
declare function AttachmentBase({ mimeType, onReady, containerProps, linkProps, ...props }: AttachmentProps): import("react/jsx-runtime").JSX.Element;
|
|
43
42
|
declare const Attachment: React.MemoExoticComponent<typeof AttachmentBase>;
|
|
44
43
|
export { Attachment, AttachmentLink, AttachmentImage, AttachmentAudio, AttachmentVideo, AttachmentFile, AttachmentFailed, type AttachmentLinkProps, type AttachmentImageProps, type AttachmentAudioProps, type AttachmentVideoProps, type AttachmentFileProps, type AttachmentFailedProps, type AttachmentProps, };
|
|
45
44
|
//# sourceMappingURL=attachment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../../../src/components/attachment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAInE,UAAU,eAAe;IACvB,
|
|
1
|
+
{"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../../../src/components/attachment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAInE,UAAU,eAAe;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,cAAc,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;CAC9C;AAED,UAAU,mBAAoB,SAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,gBAAgB,GAAG,UAAU,CAAC;CAAG;AAExH,UAAU,oBACR,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,gBAAgB,GAAG,UAAU,CAAC;CAAG;AAE9F,UAAU,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,UAAU,CAAC;CAAG;AAExH,UAAU,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,UAAU,CAAC;IACnH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,mBAAoB,SAAQ,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,gBAAgB,GAAG,UAAU,CAAC;IACrG,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC/B;AAED,UAAU,qBAAsB,SAAQ,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,UAAU,CAAC;IAClG,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC/B;AAwBD,QAAA,MAAM,cAAc,4GAAyE,CAAC;AAqB9F,QAAA,MAAM,eAAe,4GAA0E,CAAC;AAmDhG,QAAA,MAAM,eAAe,4GAA0E,CAAC;AAgChG,QAAA,MAAM,eAAe,4GAA0E,CAAC;AAIhG,iBAAS,cAAc,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAe,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,2CA2B5G;kBA3BQ,cAAc;;;AA+BvB,iBAAS,gBAAgB,CAAC,EACxB,IAAqB,EACrB,OAAe,EACf,WAAW,EACX,cAAc,EACd,GAAG,KAAK,EACT,EAAE,qBAAqB,2CAkBvB;kBAxBQ,gBAAgB;;;AA4BzB,iBAAS,cAAc,CAAC,EACtB,QAAQ,EACR,OAAkB,EAClB,cAAmB,EACnB,SAAc,EACd,GAAG,KAAK,EACT,EAAE,eAAe,2CAiBjB;AAED,QAAA,MAAM,UAAU,kDAAuB,CAAC;AAIxC,OAAO,EACL,UAAU,EACV,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,GACrB,CAAC"}
|
|
@@ -4,6 +4,7 @@ import { type PresenceStatus, type PresenceBadgeProps } from './presence';
|
|
|
4
4
|
interface AvatarProps extends AvatarPrimitive.AvatarProps {
|
|
5
5
|
src?: string | undefined;
|
|
6
6
|
name?: string | undefined;
|
|
7
|
+
fallbackIconElement?: React.ReactNode | undefined;
|
|
7
8
|
online?: boolean | undefined;
|
|
8
9
|
presence?: PresenceStatus;
|
|
9
10
|
onlineProps?: React.ComponentProps<'div'>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../../src/components/avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGzF,UAAU,WAAY,SAAQ,eAAe,CAAC,WAAW;IACvD,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,WAAW,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,UAAU,CAAC,EAAE,eAAe,CAAC,gBAAgB,CAAC;IAC9C,aAAa,CAAC,EAAE,eAAe,CAAC,mBAAmB,CAAC;CACrD;
|
|
1
|
+
{"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../../src/components/avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGzF,UAAU,WAAY,SAAQ,eAAe,CAAC,WAAW;IACvD,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IAClD,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,WAAW,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,UAAU,CAAC,EAAE,eAAe,CAAC,gBAAgB,CAAC;IAC9C,aAAa,CAAC,EAAE,eAAe,CAAC,mBAAmB,CAAC;CACrD;AA0DD,QAAA,MAAM,MAAM,+EAA4D,CAAC;AAIzE,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,CAAC"}
|
|
@@ -4,7 +4,7 @@ interface BadgeProps extends React.HTMLAttributes<HTMLElement>, VariantProps<typ
|
|
|
4
4
|
asChild?: boolean;
|
|
5
5
|
}
|
|
6
6
|
declare const badgeVariants: (props?: ({
|
|
7
|
-
variant?: "default" | "
|
|
7
|
+
variant?: "default" | "destructive" | "outline" | "secondary" | null | undefined;
|
|
8
8
|
} & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
|
|
9
9
|
declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLElement>>;
|
|
10
10
|
export { Badge, type BadgeProps };
|
|
@@ -4,8 +4,8 @@ interface ButtonProps extends React.ComponentProps<'button'>, VariantProps<typeo
|
|
|
4
4
|
asChild?: boolean;
|
|
5
5
|
}
|
|
6
6
|
declare const buttonVariants: (props?: ({
|
|
7
|
-
variant?: "
|
|
8
|
-
size?: "default" | "
|
|
7
|
+
variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
|
|
8
|
+
size?: "default" | "sm" | "lg" | "icon" | null | undefined;
|
|
9
9
|
} & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
|
|
10
10
|
declare const Button: React.ForwardRefExoticComponent<Omit<ButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
11
11
|
export { Button, type ButtonProps };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import { type AvatarProps } from './avatar';
|
|
3
|
+
import { type FormattedDateProps } from './formatted-date';
|
|
4
|
+
import { type StatusSentProps } from './status-sent';
|
|
5
|
+
interface ChatBubbleProps extends React.ComponentProps<'div'> {
|
|
6
|
+
onView?: () => void;
|
|
7
|
+
isLast?: boolean;
|
|
8
|
+
date?: FormattedDateProps['date'];
|
|
9
|
+
language?: FormattedDateProps['language'];
|
|
10
|
+
formattedDateProps?: FormattedDateProps;
|
|
11
|
+
}
|
|
12
|
+
interface ChatBubbleMessageProps extends ChatBubbleProps {
|
|
13
|
+
fromMe: boolean;
|
|
14
|
+
sameSenderAbove: boolean;
|
|
15
|
+
title?: string;
|
|
16
|
+
senderName?: string;
|
|
17
|
+
senderAvatar?: AvatarProps['src'];
|
|
18
|
+
statusSent?: StatusSentProps['status'];
|
|
19
|
+
avatarProps?: AvatarProps;
|
|
20
|
+
bubbleProps?: React.ComponentProps<'div'>;
|
|
21
|
+
titleProps?: React.ComponentProps<'span'>;
|
|
22
|
+
statusSentProps?: StatusSentProps;
|
|
23
|
+
}
|
|
24
|
+
interface ChatBubbleInfoProps extends ChatBubbleProps {
|
|
25
|
+
info?: string | undefined;
|
|
26
|
+
iconElement?: React.ReactNode;
|
|
27
|
+
infoProps?: React.ComponentProps<'span'>;
|
|
28
|
+
}
|
|
29
|
+
declare const ChatBubbleMessage: React.NamedExoticComponent<Omit<ChatBubbleMessageProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
30
|
+
declare const ChatBubbleInfo: React.NamedExoticComponent<Omit<ChatBubbleInfoProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
31
|
+
export { ChatBubbleMessage, ChatBubbleInfo, type ChatBubbleMessageProps, type ChatBubbleInfoProps };
|
|
32
|
+
//# sourceMappingURL=chat-bubble.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-bubble.d.ts","sourceRoot":"","sources":["../../../src/components/chat-bubble.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAGjE,UAAU,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IAC3D,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC1C,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAED,UAAU,sBAAuB,SAAQ,eAAe;IACtD,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC1C,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,UAAU,mBAAoB,SAAQ,eAAe;IACnD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;CAC1C;AA2GD,QAAA,MAAM,iBAAiB,uGAAkF,CAAC;AA+B1G,QAAA,MAAM,cAAc,oGAA4E,CAAC;AAIjG,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,KAAK,sBAAsB,EAAE,KAAK,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import { type TextareaAutosizeProps } from 'react-textarea-autosize';
|
|
3
|
+
import { type LucideProps } from 'lucide-react';
|
|
4
|
+
import { type LabelProps } from './label';
|
|
5
|
+
interface ChatInputSendProps extends LabelProps {
|
|
6
|
+
onSend: () => void;
|
|
7
|
+
iconElement?: React.ReactNode;
|
|
8
|
+
iconProps?: LucideProps;
|
|
9
|
+
}
|
|
10
|
+
interface ChatInputProps extends TextareaAutosizeProps, Omit<React.ComponentProps<'textarea'>, 'style'> {
|
|
11
|
+
children?: React.ReactNode;
|
|
12
|
+
pending?: boolean;
|
|
13
|
+
draft?: string;
|
|
14
|
+
onSend?: (value?: string) => void;
|
|
15
|
+
onDraft?: (value?: string) => void;
|
|
16
|
+
onTyping?: (typing?: boolean) => void;
|
|
17
|
+
onHeightGrow?: (data: {
|
|
18
|
+
height: number;
|
|
19
|
+
shift: number;
|
|
20
|
+
}) => void;
|
|
21
|
+
hideChatInputSend?: boolean;
|
|
22
|
+
chatInputSendProps?: ChatInputSendProps;
|
|
23
|
+
containerProps?: React.ComponentProps<'div'>;
|
|
24
|
+
}
|
|
25
|
+
declare const ChatInput: React.ForwardRefExoticComponent<Omit<ChatInputProps, "ref"> & React.RefAttributes<HTMLTextAreaElement>>;
|
|
26
|
+
export { ChatInput, type ChatInputProps };
|
|
27
|
+
//# sourceMappingURL=chat-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-input.d.ts","sourceRoot":"","sources":["../../../src/components/chat-input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAyB,EAAE,KAAK,qBAAqB,EAAiC,MAAM,yBAAyB,CAAC;AACtH,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAGjD,UAAU,kBAAmB,SAAQ,UAAU;IAC7C,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,WAAW,CAAC;CACzB;AAED,UAAU,cAAe,SAAQ,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrG,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACjE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,cAAc,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;CAC9C;AA+ID,QAAA,MAAM,SAAS,yGAAiE,CAAC;AAIjF,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { VirtualizerProps, type VirtualizerHandle } from 'virtua';
|
|
3
|
+
import { type FilePickerDropzoneProps } from './file-picker';
|
|
4
|
+
import { type QuickActionsProps } from './quick-actions';
|
|
5
|
+
interface ChatListProps extends VirtualizerProps {
|
|
6
|
+
key: string;
|
|
7
|
+
loading?: boolean;
|
|
8
|
+
textareaMeasurement: {
|
|
9
|
+
height: number;
|
|
10
|
+
shift: number;
|
|
11
|
+
};
|
|
12
|
+
offsetToReach?: number;
|
|
13
|
+
onScrollStartReached?: () => void;
|
|
14
|
+
onScrollEndReached?: () => void;
|
|
15
|
+
onListReset?: (prev: string | undefined, next: string | undefined) => void;
|
|
16
|
+
onListCreate?: () => void;
|
|
17
|
+
onListGrow?: () => void;
|
|
18
|
+
enableFilePickerDropzone?: boolean;
|
|
19
|
+
containerProps?: React.ComponentProps<'div'>;
|
|
20
|
+
filePickerDropzoneProps?: FilePickerDropzoneProps;
|
|
21
|
+
quickActionsProps?: QuickActionsProps;
|
|
22
|
+
quickActionsVisible?: boolean;
|
|
23
|
+
minItemsCount?: number;
|
|
24
|
+
}
|
|
25
|
+
interface ChatListHandle extends VirtualizerHandle {
|
|
26
|
+
scrollToBottom: (force?: boolean) => void;
|
|
27
|
+
}
|
|
28
|
+
declare const ChatList: React.ForwardRefExoticComponent<ChatListProps & React.RefAttributes<ChatListHandle>>;
|
|
29
|
+
export { ChatList, type ChatListProps, type ChatListHandle };
|
|
30
|
+
//# sourceMappingURL=chat-list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-list.d.ts","sourceRoot":"","sources":["../../../src/components/chat-list.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoF,MAAM,OAAO,CAAC;AACzG,OAAO,EAAe,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC/E,OAAO,EAAsB,KAAK,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAIvE,UAAU,aAAc,SAAQ,gBAAgB;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mBAAmB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC3E,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,cAAc,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7C,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAClD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,cAAe,SAAQ,iBAAiB;IAChD,cAAc,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAC3C;AAoID,QAAA,MAAM,QAAQ,sFAA0D,CAAC;AAIzE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
|
|
3
|
+
import { type LucideProps } from 'lucide-react';
|
|
4
|
+
interface CheckboxProps extends CheckboxPrimitive.CheckboxProps {
|
|
5
|
+
iconElement?: React.ReactNode;
|
|
6
|
+
iconProps?: LucideProps;
|
|
7
|
+
indicatorProps?: CheckboxPrimitive.CheckboxIndicatorProps;
|
|
8
|
+
}
|
|
9
|
+
declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLButtonElement>>;
|
|
10
|
+
export { Checkbox, type CheckboxProps };
|
|
11
|
+
//# sourceMappingURL=checkbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3D,UAAU,aAAc,SAAQ,iBAAiB,CAAC,aAAa;IAC7D,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,cAAc,CAAC,EAAE,iBAAiB,CAAC,sBAAsB,CAAC;CAC3D;AAyBD,QAAA,MAAM,QAAQ,yFAA6D,CAAC;AAI5E,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog-item.d.ts","sourceRoot":"","sources":["../../../src/components/dialog-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAS,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAEjD,UAAU,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC3C,YAAY,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IAC7C,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,eAAe,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC9C,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,SAAS,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACzC,gBAAgB,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/C,mBAAmB,CAAC,EAAE,eAAe,CAAC;IACtC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,WAAW,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,gBAAgB,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAChD,eAAe,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC/C,mBAAmB,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACnD,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B,YAAY,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;CAC5C;
|
|
1
|
+
{"version":3,"file":"dialog-item.d.ts","sourceRoot":"","sources":["../../../src/components/dialog-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAS,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAEjD,UAAU,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC3C,YAAY,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IAC7C,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,eAAe,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC9C,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,SAAS,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACzC,gBAAgB,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/C,mBAAmB,CAAC,EAAE,eAAe,CAAC;IACtC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,WAAW,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,gBAAgB,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAChD,eAAe,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC/C,mBAAmB,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACnD,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B,YAAY,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;CAC5C;AA6ID,QAAA,MAAM,UAAU,gGAAoE,CAAC;AAIrF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import { type VListHandle, type VListProps } from 'virtua';
|
|
3
|
+
interface DialogsListProps extends VListProps {
|
|
4
|
+
pending?: boolean;
|
|
5
|
+
pendingListLength?: number;
|
|
6
|
+
offsetToReach?: number;
|
|
7
|
+
placeholderVisible?: boolean;
|
|
8
|
+
placeholderTitles?: string[];
|
|
9
|
+
onScrollStartReached?: () => void;
|
|
10
|
+
onScrollEndReached?: () => void;
|
|
11
|
+
}
|
|
12
|
+
declare const DialogsList: React.ForwardRefExoticComponent<DialogsListProps & React.RefAttributes<VListHandle>>;
|
|
13
|
+
export { DialogsList, type DialogsListProps };
|
|
14
|
+
//# sourceMappingURL=dialogs-list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialogs-list.d.ts","sourceRoot":"","sources":["../../../src/components/dialogs-list.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAS,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGlE,UAAU,gBAAiB,SAAQ,UAAU;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC;AAkED,QAAA,MAAM,WAAW,sFAA6D,CAAC;AAI/E,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,CAAC"}
|
|
@@ -2,7 +2,7 @@ import type React from 'react';
|
|
|
2
2
|
import { LucideProps } from 'lucide-react';
|
|
3
3
|
import { type LabelProps } from './label';
|
|
4
4
|
interface FilePickerInputProps extends React.ComponentProps<'input'> {
|
|
5
|
-
onSelectFile
|
|
5
|
+
onSelectFile?: (files: File[]) => void;
|
|
6
6
|
onInvalidFile?: () => void;
|
|
7
7
|
iconElement?: React.ReactNode;
|
|
8
8
|
labelProps?: LabelProps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-picker.d.ts","sourceRoot":"","sources":["../../../src/components/file-picker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAkB,WAAW,EAAa,MAAM,cAAc,CAAC;AACtE,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAwDjD,UAAU,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC;IAClE,YAAY,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"file-picker.d.ts","sourceRoot":"","sources":["../../../src/components/file-picker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAkB,WAAW,EAAa,MAAM,cAAc,CAAC;AACtE,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAwDjD,UAAU,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC;IAClE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,WAAW,CAAC;CACzB;AAED,UAAU,uBAAwB,SAAQ,oBAAoB;IAC5D,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC5C,yBAAyB,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACxD,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,gBAAgB,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;CACjD;AAoDD,QAAA,MAAM,eAAe,4GAA0E,CAAC;AA6FhG,QAAA,MAAM,kBAAkB,6GAA8E,CAAC;AAIvG,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,eAAe,IAAI,KAAK,EACxB,kBAAkB,IAAI,QAAQ,EAC9B,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,GAC7B,CAAC"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
2
|
import type { Opts } from 'linkifyjs';
|
|
3
3
|
interface LinkifyTextProps extends React.ComponentProps<'p'> {
|
|
4
|
-
text
|
|
4
|
+
text?: string;
|
|
5
|
+
pending?: boolean;
|
|
6
|
+
onReady?: () => void;
|
|
5
7
|
linkifyProps?: Opts;
|
|
8
|
+
skeletonContainerProps?: React.ComponentProps<'div'>;
|
|
9
|
+
skeletonLineProps?: React.ComponentProps<'span'>;
|
|
10
|
+
skeletonLinesClassNames?: string[];
|
|
6
11
|
}
|
|
7
12
|
declare const LinkifyText: React.NamedExoticComponent<Omit<LinkifyTextProps, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
|
|
8
13
|
export { LinkifyText, type LinkifyTextProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linkify-text.d.ts","sourceRoot":"","sources":["../../../src/components/linkify-text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"linkify-text.d.ts","sourceRoot":"","sources":["../../../src/components/linkify-text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAWtC,UAAU,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,sBAAsB,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACrD,iBAAiB,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACjD,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;CACpC;AAyDD,QAAA,MAAM,WAAW,uGAA4E,CAAC;AAI9F,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"placeholder-text.d.ts","sourceRoot":"","sources":["../../../src/components/placeholder-text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,UAAU,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;CACxC;
|
|
1
|
+
{"version":3,"file":"placeholder-text.d.ts","sourceRoot":"","sources":["../../../src/components/placeholder-text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,UAAU,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;CACxC;AA2BD,QAAA,MAAM,eAAe,0GAAkC,CAAC;AAIxD,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
interface QuickActionsProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
title?: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
actions?: string[];
|
|
6
|
+
onAction?: (action: string) => void;
|
|
7
|
+
containerProps?: React.ComponentProps<'div'>;
|
|
8
|
+
titleProps?: React.ComponentProps<'h2'>;
|
|
9
|
+
descriptionProps?: React.ComponentProps<'span'>;
|
|
10
|
+
actionProps?: React.ComponentProps<'div'>;
|
|
11
|
+
}
|
|
12
|
+
declare const QuickActions: React.ForwardRefExoticComponent<QuickActionsProps & React.RefAttributes<HTMLDivElement>>;
|
|
13
|
+
export { QuickActions, type QuickActionsProps };
|
|
14
|
+
//# sourceMappingURL=quick-actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quick-actions.d.ts","sourceRoot":"","sources":["../../../src/components/quick-actions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,UAAU,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,cAAc,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7C,UAAU,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACxC,gBAAgB,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAChD,WAAW,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;CAC3C;AAwDD,QAAA,MAAM,YAAY,0FAAkE,CAAC;AAIrF,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type LucideProps } from 'lucide-react';
|
|
2
|
+
interface StatusCallProps extends LucideProps {
|
|
3
|
+
fromMe?: boolean;
|
|
4
|
+
status?: 'reject' | 'notAnswer' | 'hungUp' | 'cancel' | undefined;
|
|
5
|
+
}
|
|
6
|
+
declare const StatusCall: React.FC<StatusCallProps>;
|
|
7
|
+
export { StatusCall, type StatusCallProps };
|
|
8
|
+
//# sourceMappingURL=status-call.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-call.d.ts","sourceRoot":"","sources":["../../../src/components/status-call.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoD,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAGlG,UAAU,eAAgB,SAAQ,WAAW;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;CACnE;AAED,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAUzC,CAAC;AAIF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../../src/components/switch.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../../src/components/switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAG1D,KAAK,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAErE,iBAAS,MAAM,CAAC,KAAK,EAAE,WAAW,2CAgBjC;AAED,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
|
+
export { AlertDialog, type AlertDialogProps } from './components/alert-dialog';
|
|
1
2
|
export { Attachment, AttachmentLink, AttachmentImage, AttachmentAudio, AttachmentVideo, AttachmentFile, AttachmentFailed, type AttachmentProps, type AttachmentLinkProps, type AttachmentImageProps, type AttachmentAudioProps, type AttachmentVideoProps, type AttachmentFileProps, type AttachmentFailedProps, } from './components/attachment';
|
|
2
3
|
export { Avatar, type AvatarProps } from './components/avatar';
|
|
3
4
|
export { Badge, type BadgeProps } from './components/badge';
|
|
4
5
|
export { Button, type ButtonProps } from './components/button';
|
|
6
|
+
export { ChatBubbleMessage, ChatBubbleInfo, type ChatBubbleMessageProps, type ChatBubbleInfoProps, } from './components/chat-bubble';
|
|
7
|
+
export { ChatInput, type ChatInputProps } from './components/chat-input';
|
|
8
|
+
export { ChatList, type ChatListProps, type ChatListHandle } from './components/chat-list';
|
|
9
|
+
export { Checkbox, type CheckboxProps } from './components/checkbox';
|
|
5
10
|
export { DialogItem, type DialogItemProps } from './components/dialog-item';
|
|
11
|
+
export { DialogsList, type DialogsListProps } from './components/dialogs-list';
|
|
6
12
|
export { DismissLayer, type DismissLayerProps } from './components/dismiss-layer';
|
|
7
13
|
export { FilePickerInput, FilePickerDropzone, type FilePickerInputProps, type FilePickerDropzoneProps, } from './components/file-picker';
|
|
8
14
|
export { FormattedDate, type FormattedDateProps } from './components/formatted-date';
|
|
@@ -12,8 +18,10 @@ export { LinkPreview, type LinkPreviewProps } from './components/link-preview';
|
|
|
12
18
|
export { LinkifyText, type LinkifyTextProps } from './components/linkify-text';
|
|
13
19
|
export { PlaceholderText, type PlaceholderTextProps } from './components/placeholder-text';
|
|
14
20
|
export { Presence, PresenceBadge, type PresenceStatus, type PresenceProps, type PresenceBadgeProps, } from './components/presence';
|
|
21
|
+
export { QuickActions, type QuickActionsProps } from './components/quick-actions';
|
|
15
22
|
export { Search, type SearchProps } from './components/search';
|
|
16
23
|
export { Spinner, type SpinnerProps } from './components/spinner';
|
|
24
|
+
export { StatusCall, type StatusCallProps } from './components/status-call';
|
|
17
25
|
export { StatusIndicator, type StatusName, type StatusIndicatorProps } from './components/status-indicator';
|
|
18
26
|
export { StatusSent, type StatusSentProps } from './components/status-sent';
|
|
19
27
|
export { StreamView, LocalStreamView, RemoteStreamView, FullscreenStreamView, type StreamViewProps, type FullscreenStreamViewProps, type FullscreenStreamViewRef, } from './components/stream-view';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,GAC3B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE5E,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAElF,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,GAC7B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAErF,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE/E,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE/E,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE3F,OAAO,EACL,QAAQ,EACR,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,kBAAkB,GACxB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,KAAK,UAAU,EAAE,KAAK,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE5G,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE5E,OAAO,EACL,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,GAC7B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE/D,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { File, FileXCorner } from 'lucide-react';
|
|
|
3
3
|
import { Spinner } from './spinner';
|
|
4
4
|
import { cn, getRandomString } from './utils';
|
|
5
5
|
|
|
6
|
-
function AttachmentLinkBase({ url,
|
|
6
|
+
function AttachmentLinkBase({ url, pending = false, children, ...props }, ref) {
|
|
7
7
|
return (
|
|
8
8
|
<a
|
|
9
9
|
ref={ref}
|
|
@@ -12,12 +12,12 @@ function AttachmentLinkBase({ url, uploading = false, children, ...props }, ref)
|
|
|
12
12
|
{...props}
|
|
13
13
|
href={url}
|
|
14
14
|
className={cn(
|
|
15
|
-
'group relative min-h-
|
|
15
|
+
'group relative min-h-8 min-w-8 w-full flex items-center justify-center rounded-md overflow-hidden bg-ring/10 hover:bg-ring/20 transition-color duration-300 ease-out cursor-pointer',
|
|
16
16
|
props?.className
|
|
17
17
|
)}
|
|
18
18
|
>
|
|
19
19
|
{children}
|
|
20
|
-
<Spinner loading={
|
|
20
|
+
<Spinner loading={pending} layout="overlay" />
|
|
21
21
|
</a>
|
|
22
22
|
);
|
|
23
23
|
}
|
|
@@ -26,16 +26,16 @@ const AttachmentLink = forwardRef(AttachmentLinkBase);
|
|
|
26
26
|
|
|
27
27
|
AttachmentLink.displayName = 'AttachmentLink';
|
|
28
28
|
|
|
29
|
-
function AttachmentAudioBase({ uid, url,
|
|
29
|
+
function AttachmentAudioBase({ uid, url, pending = false, containerProps, ...props }, ref) {
|
|
30
30
|
const audioId = `attachment_audio_${uid || getRandomString()}`;
|
|
31
31
|
|
|
32
32
|
return (
|
|
33
33
|
<div
|
|
34
34
|
{...containerProps}
|
|
35
|
-
className={cn('relative min-h-
|
|
35
|
+
className={cn('relative min-h-8 min-w-8 w-full rounded-md overflow-hidden', containerProps?.className)}
|
|
36
36
|
>
|
|
37
37
|
<audio ref={ref} src={url} id={audioId} controls {...props} />
|
|
38
|
-
<Spinner loading={
|
|
38
|
+
<Spinner loading={pending} layout="overlay" />
|
|
39
39
|
</div>
|
|
40
40
|
);
|
|
41
41
|
}
|
|
@@ -43,7 +43,7 @@ function AttachmentAudioBase({ uid, url, uploading = false, containerProps, ...p
|
|
|
43
43
|
const AttachmentAudio = forwardRef(AttachmentAudioBase);
|
|
44
44
|
|
|
45
45
|
function AttachmentVideoBase(
|
|
46
|
-
{ uid, url, maxSize = 360,
|
|
46
|
+
{ uid, url, maxSize = 360, pending = false, onReady = () => {}, containerProps, ...props },
|
|
47
47
|
ref
|
|
48
48
|
) {
|
|
49
49
|
const videoId = `attachment_video_${uid || getRandomString()}`;
|
|
@@ -73,7 +73,7 @@ function AttachmentVideoBase(
|
|
|
73
73
|
}
|
|
74
74
|
};
|
|
75
75
|
|
|
76
|
-
useImperativeHandle(ref, () => playerRef.current, []);
|
|
76
|
+
useImperativeHandle(ref, () => playerRef.current || {}, []);
|
|
77
77
|
|
|
78
78
|
return (
|
|
79
79
|
<div
|
|
@@ -91,7 +91,7 @@ function AttachmentVideoBase(
|
|
|
91
91
|
onCanPlay={handleCanPlay}
|
|
92
92
|
className={cn('size-full', props?.className)}
|
|
93
93
|
/>
|
|
94
|
-
<Spinner loading={
|
|
94
|
+
<Spinner loading={pending} layout="overlay" />
|
|
95
95
|
</div>
|
|
96
96
|
);
|
|
97
97
|
}
|
|
@@ -100,7 +100,7 @@ const AttachmentVideo = forwardRef(AttachmentVideoBase);
|
|
|
100
100
|
|
|
101
101
|
AttachmentVideo.displayName = 'AttachmentVideo';
|
|
102
102
|
|
|
103
|
-
function AttachmentImageBase({ uid, url,
|
|
103
|
+
function AttachmentImageBase({ uid, url, pending = false, onReady = () => {}, linkProps, ...props }, ref) {
|
|
104
104
|
const imageId = `attachment_image_${uid || getRandomString()}`;
|
|
105
105
|
const handleLoad = (event) => {
|
|
106
106
|
props.onLoad?.(event);
|
|
@@ -108,7 +108,7 @@ function AttachmentImageBase({ uid, url, uploading = false, onReady = () => {},
|
|
|
108
108
|
};
|
|
109
109
|
|
|
110
110
|
return (
|
|
111
|
-
<AttachmentLink href={url}
|
|
111
|
+
<AttachmentLink href={url} pending={pending} {...linkProps}>
|
|
112
112
|
<img
|
|
113
113
|
ref={ref}
|
|
114
114
|
src={url}
|
|
@@ -116,7 +116,7 @@ function AttachmentImageBase({ uid, url, uploading = false, onReady = () => {},
|
|
|
116
116
|
alt="attachment"
|
|
117
117
|
{...props}
|
|
118
118
|
className={cn(
|
|
119
|
-
'rounded-md object-cover min-h-
|
|
119
|
+
'rounded-md object-cover min-h-8 min-w-8 max-h-[360px] group-hover:scale-102 transition-transform duration-300 ease-out',
|
|
120
120
|
props?.className
|
|
121
121
|
)}
|
|
122
122
|
onLoad={handleLoad}
|
|
@@ -129,28 +129,28 @@ const AttachmentImage = forwardRef(AttachmentImageBase);
|
|
|
129
129
|
|
|
130
130
|
AttachmentImage.displayName = 'AttachmentImage';
|
|
131
131
|
|
|
132
|
-
function AttachmentFile({ url, name,
|
|
132
|
+
function AttachmentFile({ url, name, pending = false, iconElement, linkProps, ...props }) {
|
|
133
133
|
const fileId = `attachment_file_${props.id || getRandomString()}`;
|
|
134
134
|
|
|
135
135
|
return (
|
|
136
136
|
<AttachmentLink
|
|
137
137
|
href={url}
|
|
138
|
-
|
|
138
|
+
pending={pending}
|
|
139
139
|
{...linkProps}
|
|
140
|
-
className={cn('flex-row gap-
|
|
140
|
+
className={cn('flex-row gap-1.5 p-2 hover:shadow', linkProps?.className)}
|
|
141
141
|
>
|
|
142
142
|
{iconElement || (
|
|
143
143
|
<File
|
|
144
144
|
id={fileId}
|
|
145
145
|
{...props}
|
|
146
146
|
className={cn(
|
|
147
|
-
'size-
|
|
147
|
+
'size-5 shrink-0 text-foreground/80 group-hover:text-foreground duration-300 ease-out',
|
|
148
148
|
props?.className
|
|
149
149
|
)}
|
|
150
150
|
/>
|
|
151
151
|
)}
|
|
152
152
|
{name && (
|
|
153
|
-
<span className="font-medium line-clamp-1 break-all text-foreground/
|
|
153
|
+
<span className="font-medium line-clamp-1 break-all text-foreground/80 group-hover:text-foreground duration-300 ease-out">
|
|
154
154
|
{name}
|
|
155
155
|
</span>
|
|
156
156
|
)}
|
|
@@ -160,14 +160,14 @@ function AttachmentFile({ url, name, uploading = false, iconElement, linkProps,
|
|
|
160
160
|
|
|
161
161
|
AttachmentFile.displayName = 'AttachmentFile';
|
|
162
162
|
|
|
163
|
-
function AttachmentFailed({ name = 'Unknown file',
|
|
163
|
+
function AttachmentFailed({ name = 'Unknown file', pending = false, iconElement, containerProps, ...props }) {
|
|
164
164
|
const failedId = `attachment_failed_${props.id || getRandomString()}`;
|
|
165
165
|
|
|
166
166
|
return (
|
|
167
167
|
<div
|
|
168
168
|
{...containerProps}
|
|
169
169
|
className={cn(
|
|
170
|
-
'relative min-h-
|
|
170
|
+
'relative min-h-8 min-w-8 w-full flex flex-row items-center justify-center gap-2 px-2 bg-red-600/10 rounded-md overflow-hidden',
|
|
171
171
|
containerProps?.className
|
|
172
172
|
)}
|
|
173
173
|
>
|
|
@@ -175,14 +175,14 @@ function AttachmentFailed({ name = 'Unknown file', uploading = false, iconElemen
|
|
|
175
175
|
<FileXCorner id={failedId} {...props} className={cn('size-6 shrink-0 text-red-600', props?.className)} />
|
|
176
176
|
)}
|
|
177
177
|
<span className="font-medium line-clamp-1 break-all text-red-600">{name}</span>
|
|
178
|
-
<Spinner loading={
|
|
178
|
+
<Spinner loading={pending} layout="overlay" />
|
|
179
179
|
</div>
|
|
180
180
|
);
|
|
181
181
|
}
|
|
182
182
|
|
|
183
183
|
AttachmentFailed.displayName = 'AttachmentFailed';
|
|
184
184
|
|
|
185
|
-
function AttachmentBase({ mimeType, ...props }) {
|
|
185
|
+
function AttachmentBase({ mimeType, onReady = () => {}, containerProps = {}, linkProps = {}, ...props }) {
|
|
186
186
|
const [type = ''] = mimeType?.split('/') || [];
|
|
187
187
|
|
|
188
188
|
if (!props.url) {
|
|
@@ -191,18 +191,20 @@ function AttachmentBase({ mimeType, ...props }) {
|
|
|
191
191
|
|
|
192
192
|
switch (type) {
|
|
193
193
|
case 'image':
|
|
194
|
-
return <AttachmentImage {...props} />;
|
|
194
|
+
return <AttachmentImage onReady={onReady} linkProps={linkProps} {...props} />;
|
|
195
195
|
case 'video':
|
|
196
|
-
return <AttachmentVideo {...props} />;
|
|
196
|
+
return <AttachmentVideo onReady={onReady} containerProps={containerProps} {...props} />;
|
|
197
197
|
case 'audio':
|
|
198
|
-
return <AttachmentAudio {...props} />;
|
|
198
|
+
return <AttachmentAudio containerProps={containerProps} {...props} />;
|
|
199
199
|
default:
|
|
200
|
-
return <AttachmentFile name={mimeType} {...props} />;
|
|
200
|
+
return <AttachmentFile name={mimeType} containerProps={containerProps} {...props} />;
|
|
201
201
|
}
|
|
202
202
|
}
|
|
203
203
|
|
|
204
204
|
const Attachment = memo(AttachmentBase);
|
|
205
205
|
|
|
206
|
+
Attachment.displayName = 'Attachment';
|
|
207
|
+
|
|
206
208
|
export {
|
|
207
209
|
Attachment,
|
|
208
210
|
AttachmentLink,
|
|
@@ -11,7 +11,19 @@ function getInitialsFromName(name) {
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
function AvatarBase(
|
|
14
|
-
{
|
|
14
|
+
{
|
|
15
|
+
src,
|
|
16
|
+
name = 'NA',
|
|
17
|
+
fallbackIconElement,
|
|
18
|
+
online,
|
|
19
|
+
presence,
|
|
20
|
+
className,
|
|
21
|
+
onlineProps,
|
|
22
|
+
presenceProps,
|
|
23
|
+
imageProps,
|
|
24
|
+
fallbackProps,
|
|
25
|
+
...props
|
|
26
|
+
},
|
|
15
27
|
ref
|
|
16
28
|
) {
|
|
17
29
|
const initials = getInitialsFromName(name);
|
|
@@ -27,7 +39,7 @@ function AvatarBase(
|
|
|
27
39
|
{...fallbackProps}
|
|
28
40
|
className={cn('bg-muted size-full rounded-full flex items-center justify-center', fallbackProps?.className)}
|
|
29
41
|
>
|
|
30
|
-
{initials}
|
|
42
|
+
{fallbackIconElement || initials}
|
|
31
43
|
</AvatarPrimitive.Fallback>
|
|
32
44
|
{online && (
|
|
33
45
|
<div
|