@devalok/shilp-sutra 0.32.0 → 0.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/_chunks/date-time-picker.js +851 -0
- package/dist/_chunks/mention-suggestion.js +362 -0
- package/dist/_chunks/tiptap.js +11595 -7731
- package/dist/_chunks/use-calendar.js +115 -956
- package/dist/_chunks/vendor-client.js +1055 -894
- package/dist/composed/date-picker/index.js +9 -8
- package/dist/composed/emoji-picker.d.ts +8 -2
- package/dist/composed/emoji-picker.d.ts.map +1 -1
- package/dist/composed/emoji-picker.js +65 -56
- package/dist/composed/extensions/emoji-data.d.ts +35 -0
- package/dist/composed/extensions/emoji-data.d.ts.map +1 -0
- package/dist/composed/extensions/emoji-node.d.ts +11 -0
- package/dist/composed/extensions/emoji-node.d.ts.map +1 -0
- package/dist/composed/extensions/emoji-suggestion.d.ts +4 -6
- package/dist/composed/extensions/emoji-suggestion.d.ts.map +1 -1
- package/dist/composed/extensions/slash-command.d.ts +35 -0
- package/dist/composed/extensions/slash-command.d.ts.map +1 -0
- package/dist/composed/index.d.ts +7 -1
- package/dist/composed/index.d.ts.map +1 -1
- package/dist/composed/index.js +79 -70
- package/dist/composed/rich-chat-input/attachment-strip.d.ts +15 -0
- package/dist/composed/rich-chat-input/attachment-strip.d.ts.map +1 -0
- package/dist/composed/rich-chat-input/audio-player.d.ts +11 -0
- package/dist/composed/rich-chat-input/audio-player.d.ts.map +1 -0
- package/dist/composed/rich-chat-input/audio-waveform.d.ts +24 -0
- package/dist/composed/rich-chat-input/audio-waveform.d.ts.map +1 -0
- package/dist/composed/rich-chat-input/chat-toolbar.d.ts +51 -0
- package/dist/composed/rich-chat-input/chat-toolbar.d.ts.map +1 -0
- package/dist/composed/rich-chat-input/recording-overlay.d.ts +15 -0
- package/dist/composed/rich-chat-input/recording-overlay.d.ts.map +1 -0
- package/dist/composed/rich-chat-input/reply-banner.d.ts +8 -0
- package/dist/composed/rich-chat-input/reply-banner.d.ts.map +1 -0
- package/dist/composed/rich-chat-input/schedule-send.d.ts +22 -0
- package/dist/composed/rich-chat-input/schedule-send.d.ts.map +1 -0
- package/dist/composed/rich-chat-input/use-voice-recorder.d.ts +18 -0
- package/dist/composed/rich-chat-input/use-voice-recorder.d.ts.map +1 -0
- package/dist/composed/rich-chat-input.d.ts +91 -0
- package/dist/composed/rich-chat-input.d.ts.map +1 -0
- package/dist/composed/rich-chat-input.js +1861 -0
- package/dist/composed/rich-text-editor.d.ts +3 -0
- package/dist/composed/rich-text-editor.d.ts.map +1 -1
- package/dist/composed/rich-text-editor.js +278 -448
- package/dist/ui/button-group.d.ts +27 -37
- package/dist/ui/button-group.d.ts.map +1 -1
- package/dist/ui/button-group.js +95 -29
- package/dist/ui/button.d.ts.map +1 -1
- package/dist/ui/button.js +110 -106
- package/dist/ui/index.d.ts +1 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +335 -333
- package/dist/ui/split-button.d.ts +45 -0
- package/dist/ui/split-button.d.ts.map +1 -0
- package/dist/ui/split-button.js +282 -0
- package/docs/components/composed/emoji-picker.md +9 -0
- package/docs/components/composed/rich-chat-input.md +88 -0
- package/docs/components/composed/rich-text-editor.md +5 -0
- package/docs/components/ui/button-group.md +9 -0
- package/docs/components/ui/button.md +4 -0
- package/docs/components/ui/split-button.md +41 -0
- package/llms-full.txt +157 -1
- package/llms.txt +22 -2
- package/package.json +30 -26
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Editor } from '@tiptap/core';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
/**
|
|
5
|
+
* A single toolbar button. Use for built-in or custom actions.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* <ToolbarButton onClick={() => editor.chain().focus().toggleBold().run()} isActive={editor.isActive('bold')} title="Bold">
|
|
9
|
+
* <Icon icon={IconBold} size="xs" />
|
|
10
|
+
* </ToolbarButton>
|
|
11
|
+
*/
|
|
12
|
+
export declare function ToolbarButton({ onClick, isActive, disabled: disabledProp, title, children, className: classNameProp, }: {
|
|
13
|
+
onClick: () => void;
|
|
14
|
+
isActive?: boolean;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
title: string;
|
|
17
|
+
children: React.ReactNode;
|
|
18
|
+
className?: string;
|
|
19
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
/** Visual separator between toolbar button groups. */
|
|
21
|
+
export declare function ToolbarDivider(): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
/** Group wrapper — applies consistent spacing to a set of buttons. */
|
|
23
|
+
export declare function ToolbarGroup({ children, className }: {
|
|
24
|
+
children: React.ReactNode;
|
|
25
|
+
className?: string;
|
|
26
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
export declare function BoldButton(): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
export declare function ItalicButton(): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
export declare function UnderlineButton(): import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
export declare function StrikeButton(): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
export declare function HighlightButton(): import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
export declare function CodeButton(): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
export declare function BulletListButton(): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
export declare function OrderedListButton(): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
export declare function BlockquoteButton(): import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
export declare function LinkButton(): import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
export declare function MentionButton(): import("react/jsx-runtime").JSX.Element;
|
|
38
|
+
export declare function EmojiButton(): import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
export declare function SlashCommandButton(): import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
export type ChatToolbarItem = 'bold' | 'italic' | 'underline' | 'strike' | 'highlight' | 'code' | 'bulletList' | 'orderedList' | 'blockquote' | 'link' | 'mention' | 'emoji' | 'slash';
|
|
41
|
+
export interface ChatToolbarProps {
|
|
42
|
+
editor: Editor;
|
|
43
|
+
/** true = default layout, ChatToolbarItem[] = whitelist, false = hidden, ReactNode = custom */
|
|
44
|
+
toolbar: boolean | ChatToolbarItem[] | React.ReactNode;
|
|
45
|
+
isMobile: boolean;
|
|
46
|
+
hasMentions: boolean;
|
|
47
|
+
hasSlashCommands: boolean;
|
|
48
|
+
disabled: boolean;
|
|
49
|
+
}
|
|
50
|
+
export declare function ChatToolbar({ editor, toolbar, isMobile, hasMentions, hasSlashCommands, disabled, }: ChatToolbarProps): import("react/jsx-runtime").JSX.Element | null;
|
|
51
|
+
//# sourceMappingURL=chat-toolbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-toolbar.d.ts","sourceRoot":"","sources":["../../../src/composed/rich-chat-input/chat-toolbar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAiC1C;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,QAAQ,EACR,QAAQ,EAAE,YAAY,EACtB,KAAK,EACL,QAAQ,EACR,SAAS,EAAE,aAAa,GACzB,EAAE;IACD,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,2CA0BA;AAED,sDAAsD;AACtD,wBAAgB,cAAc,4CAE7B;AAED,sEAAsE;AACtE,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAEtG;AAKD,wBAAgB,UAAU,4CAWzB;AAED,wBAAgB,YAAY,4CAW3B;AAED,wBAAgB,eAAe,4CAW9B;AAED,wBAAgB,YAAY,4CAW3B;AAED,wBAAgB,eAAe,4CAW9B;AAED,wBAAgB,UAAU,4CAWzB;AAED,wBAAgB,gBAAgB,4CAW/B;AAED,wBAAgB,iBAAiB,4CAWhC;AAED,wBAAgB,gBAAgB,4CAW/B;AAED,wBAAgB,UAAU,4CAkBzB;AAED,wBAAgB,aAAa,4CAO5B;AAED,wBAAgB,WAAW,4CAO1B;AAED,wBAAgB,kBAAkB,4CAOjC;AAID,MAAM,MAAM,eAAe,GACvB,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GACjE,YAAY,GAAG,aAAa,GAC5B,YAAY,GAAG,MAAM,GACrB,SAAS,GAAG,OAAO,GAAG,OAAO,CAAA;AA2DjC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,+FAA+F;IAC/F,OAAO,EAAE,OAAO,GAAG,eAAe,EAAE,GAAG,KAAK,CAAC,SAAS,CAAA;IACtD,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,OAAO,CAAA;IACpB,gBAAgB,EAAE,OAAO,CAAA;IACzB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,OAAO,EACP,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,QAAQ,GACT,EAAE,gBAAgB,kDAwBlB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
interface RecordingOverlayProps {
|
|
3
|
+
duration: number;
|
|
4
|
+
analyserNode: AnalyserNode | null;
|
|
5
|
+
maxDuration?: number;
|
|
6
|
+
/** Escape key handler — cancel recording. Stop/cancel buttons are external. */
|
|
7
|
+
onCancel: () => void;
|
|
8
|
+
}
|
|
9
|
+
declare function RecordingOverlay({ duration, analyserNode, maxDuration, onCancel, }: RecordingOverlayProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
declare namespace RecordingOverlay {
|
|
11
|
+
var displayName: string;
|
|
12
|
+
}
|
|
13
|
+
export { RecordingOverlay };
|
|
14
|
+
export type { RecordingOverlayProps };
|
|
15
|
+
//# sourceMappingURL=recording-overlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recording-overlay.d.ts","sourceRoot":"","sources":["../../../src/composed/rich-chat-input/recording-overlay.tsx"],"names":[],"mappings":"AAOA,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,IAAI,CAAA;CACrB;AAYD,iBAAS,gBAAgB,CAAC,EACxB,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,QAAQ,GACT,EAAE,qBAAqB,2CA6EvB;kBAlFQ,gBAAgB;;;AAqFzB,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAC3B,YAAY,EAAE,qBAAqB,EAAE,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
export interface ReplyBannerProps {
|
|
3
|
+
author: string;
|
|
4
|
+
preview: string;
|
|
5
|
+
onDismiss: () => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function ReplyBanner({ author, preview, onDismiss }: ReplyBannerProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=reply-banner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reply-banner.d.ts","sourceRoot":"","sources":["../../../src/composed/rich-chat-input/reply-banner.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,IAAI,CAAA;CACtB;AAED,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,gBAAgB,2CAwC3E"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
export interface ScheduleDropdownContentProps {
|
|
3
|
+
onSchedule: (date: Date) => void;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
/** Open a full dialog instead of inline picker. Consumer provides the dialog. */
|
|
6
|
+
onOpenDialog?: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function ScheduleDropdownContent({ onSchedule, onClose, onOpenDialog }: ScheduleDropdownContentProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export interface ScheduleDialogProps {
|
|
10
|
+
open: boolean;
|
|
11
|
+
onOpenChange: (open: boolean) => void;
|
|
12
|
+
onSchedule: (date: Date) => void;
|
|
13
|
+
/** Pre-fill with existing scheduled date (edit mode). */
|
|
14
|
+
initialDate?: Date | null;
|
|
15
|
+
}
|
|
16
|
+
export declare function ScheduleDialog({ open, onOpenChange, onSchedule, initialDate }: ScheduleDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export declare function ScheduleBanner({ date, onClear, onEdit }: {
|
|
18
|
+
date: Date;
|
|
19
|
+
onClear: () => void;
|
|
20
|
+
onEdit?: () => void;
|
|
21
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
//# sourceMappingURL=schedule-send.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule-send.d.ts","sourceRoot":"","sources":["../../../src/composed/rich-chat-input/schedule-send.tsx"],"names":[],"mappings":"AA0PA,MAAM,WAAW,4BAA4B;IAC3C,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IAChC,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B;AAED,wBAAgB,uBAAuB,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,4BAA4B,2CA4F1G;AAID,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IAChC,yDAAyD;IACzD,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CAC1B;AAED,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,mBAAmB,2CAyClG;AAmBD,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,2CAmCjH"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
export interface UseVoiceRecorderOptions {
|
|
3
|
+
maxDuration?: number;
|
|
4
|
+
onComplete: (blob: Blob, duration: number, waveformData: number[]) => void;
|
|
5
|
+
}
|
|
6
|
+
export interface UseVoiceRecorderReturn {
|
|
7
|
+
state: 'idle' | 'recording' | 'paused';
|
|
8
|
+
duration: number;
|
|
9
|
+
analyserNode: AnalyserNode | null;
|
|
10
|
+
waveformData: number[];
|
|
11
|
+
start: () => Promise<void>;
|
|
12
|
+
stop: () => void;
|
|
13
|
+
cancel: () => void;
|
|
14
|
+
pause: () => void;
|
|
15
|
+
resume: () => void;
|
|
16
|
+
}
|
|
17
|
+
export declare function useVoiceRecorder(options: UseVoiceRecorderOptions): UseVoiceRecorderReturn;
|
|
18
|
+
//# sourceMappingURL=use-voice-recorder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-voice-recorder.d.ts","sourceRoot":"","sources":["../../../src/composed/rich-chat-input/use-voice-recorder.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;CAC3E;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAA;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAA;IACjC,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB;AAkBD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,uBAAuB,GAC/B,sBAAsB,CA4QxB"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { SlashCommandGroup } from './extensions/slash-command';
|
|
3
|
+
import { MentionItem } from './rich-text-editor';
|
|
4
|
+
import { EmojiSet } from './emoji-picker';
|
|
5
|
+
import { ChatToolbarItem } from './rich-chat-input/chat-toolbar';
|
|
6
|
+
import { AudioWaveform, AudioWaveformProps } from './rich-chat-input/audio-waveform';
|
|
7
|
+
import { AudioPlayer, AudioPlayerProps } from './rich-chat-input/audio-player';
|
|
8
|
+
import { useVoiceRecorder, UseVoiceRecorderOptions, UseVoiceRecorderReturn } from './rich-chat-input/use-voice-recorder';
|
|
9
|
+
import * as React from 'react';
|
|
10
|
+
export type { MentionItem };
|
|
11
|
+
export type { SlashCommand, SlashCommandGroup } from './extensions/slash-command';
|
|
12
|
+
export { AudioWaveform };
|
|
13
|
+
export type { AudioWaveformProps };
|
|
14
|
+
export { AudioPlayer };
|
|
15
|
+
export type { AudioPlayerProps };
|
|
16
|
+
export { useVoiceRecorder };
|
|
17
|
+
export type { UseVoiceRecorderOptions, UseVoiceRecorderReturn };
|
|
18
|
+
export interface RichChatInputMessage {
|
|
19
|
+
html: string;
|
|
20
|
+
plainText: string;
|
|
21
|
+
attachments?: Array<{
|
|
22
|
+
url: string;
|
|
23
|
+
name: string;
|
|
24
|
+
size: number;
|
|
25
|
+
type: string;
|
|
26
|
+
}>;
|
|
27
|
+
voiceNote?: {
|
|
28
|
+
blob: Blob;
|
|
29
|
+
duration: number;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export interface RichChatInputProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSubmit' | 'content'> {
|
|
33
|
+
onSubmit: (message: RichChatInputMessage) => void;
|
|
34
|
+
placeholder?: string;
|
|
35
|
+
disabled?: boolean;
|
|
36
|
+
/** Initial HTML content (not reactive — use for message editing). */
|
|
37
|
+
content?: string;
|
|
38
|
+
variant?: 'compact' | 'expanded' | 'minimal' | 'inline';
|
|
39
|
+
enterBehavior?: 'send' | 'newline';
|
|
40
|
+
maxLength?: number;
|
|
41
|
+
/** When to show the character counter. @default 'near-limit' */
|
|
42
|
+
charCountDisplay?: 'always' | 'focus' | 'near-limit' | 'hidden';
|
|
43
|
+
mentions?: MentionItem[];
|
|
44
|
+
onMentionSearch?: (query: string) => Promise<MentionItem[]>;
|
|
45
|
+
onMentionSelect?: (item: MentionItem) => void;
|
|
46
|
+
onFileUpload?: (file: File) => Promise<{
|
|
47
|
+
url: string;
|
|
48
|
+
name: string;
|
|
49
|
+
size: number;
|
|
50
|
+
}>;
|
|
51
|
+
onImageUpload?: (file: File) => Promise<string>;
|
|
52
|
+
slashCommands?: SlashCommandGroup[];
|
|
53
|
+
onVoiceRecord?: (audio: Blob, duration: number) => void;
|
|
54
|
+
/** Called after recording stops. Consumer can transcribe and return text to insert into the editor. If null is returned, the audio is attached as a voice note. */
|
|
55
|
+
onTranscribe?: (blob: Blob, duration: number) => Promise<string | null>;
|
|
56
|
+
maxDuration?: number;
|
|
57
|
+
replyTo?: {
|
|
58
|
+
id: string;
|
|
59
|
+
author: string;
|
|
60
|
+
preview: string;
|
|
61
|
+
onDismiss: () => void;
|
|
62
|
+
};
|
|
63
|
+
onTyping?: (isTyping: boolean) => void;
|
|
64
|
+
onEmpty?: (isEmpty: boolean) => void;
|
|
65
|
+
isStreaming?: boolean;
|
|
66
|
+
onCancel?: () => void;
|
|
67
|
+
leadingSlot?: React.ReactNode;
|
|
68
|
+
trailingSlot?: React.ReactNode;
|
|
69
|
+
disclaimer?: string;
|
|
70
|
+
/** true = default toolbar, ChatToolbarItem[] = whitelist, ReactNode = custom toolbar, false = hidden */
|
|
71
|
+
toolbar?: boolean | ChatToolbarItem[] | React.ReactNode;
|
|
72
|
+
/** Custom action button rendered to the left of the input (replaces the default attach button). Pass `false` to hide. */
|
|
73
|
+
actionButton?: React.ReactNode | false;
|
|
74
|
+
/** Emoji art style in the picker. @default 'native' (system emoji) */
|
|
75
|
+
emojiSet?: EmojiSet;
|
|
76
|
+
/** Called when user schedules a message. If provided, a schedule button appears next to send. */
|
|
77
|
+
onSchedule?: (message: RichChatInputMessage, scheduledAt: Date) => void;
|
|
78
|
+
/** Split send button — dropdown options next to send (e.g. custom actions). */
|
|
79
|
+
sendOptions?: Array<{
|
|
80
|
+
label: string;
|
|
81
|
+
icon?: React.ComponentType<{
|
|
82
|
+
className?: string;
|
|
83
|
+
}>;
|
|
84
|
+
onSelect: () => void;
|
|
85
|
+
}>;
|
|
86
|
+
}
|
|
87
|
+
declare const RichChatInput: React.ForwardRefExoticComponent<RichChatInputProps & React.RefAttributes<HTMLDivElement>>;
|
|
88
|
+
export { RichChatInput };
|
|
89
|
+
export type { ChatToolbarItem };
|
|
90
|
+
export { ToolbarButton, ToolbarDivider, ToolbarGroup, BoldButton, ItalicButton, UnderlineButton, StrikeButton, HighlightButton, CodeButton, BulletListButton, OrderedListButton, BlockquoteButton, LinkButton, MentionButton, EmojiButton, SlashCommandButton, } from './rich-chat-input/chat-toolbar';
|
|
91
|
+
//# sourceMappingURL=rich-chat-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rich-chat-input.d.ts","sourceRoot":"","sources":["../../src/composed/rich-chat-input.tsx"],"names":[],"mappings":"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"}
|