@gendive/chatllm 0.2.0 → 0.3.1
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/README.md +952 -0
- package/dist/react/index.d.mts +66 -2
- package/dist/react/index.d.ts +66 -2
- package/dist/react/index.js +1151 -122
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.mjs +1144 -118
- package/dist/react/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/react/index.d.mts
CHANGED
|
@@ -116,6 +116,8 @@ interface ChatUIProps {
|
|
|
116
116
|
personalization?: Partial<PersonalizationConfig>;
|
|
117
117
|
/** API 키 (DevDive 등 외부 프로바이더용) */
|
|
118
118
|
apiKey?: string;
|
|
119
|
+
/** API 키 변경 핸들러 */
|
|
120
|
+
onApiKeyChange?: (key: string) => void;
|
|
119
121
|
/** API 엔드포인트 */
|
|
120
122
|
apiEndpoint?: string;
|
|
121
123
|
/** 테마 설정 */
|
|
@@ -328,7 +330,7 @@ declare const useChatUI: (options: UseChatUIOptions) => UseChatUIReturn;
|
|
|
328
330
|
* Using Remix Icons 4.6.0 via CDN or npm package
|
|
329
331
|
*/
|
|
330
332
|
|
|
331
|
-
type IconName = 'menu-line' | 'close-line' | 'arrow-left-line' | 'arrow-right-line' | 'arrow-down-s-line' | 'arrow-up-s-line' | 'more-line' | 'more-2-line' | 'settings-3-line' | 'settings-4-line' | 'chat-1-line' | 'chat-3-line' | 'chat-new-line' | 'message-2-line' | 'send-plane-line' | 'send-plane-fill' | 'question-answer-line' | 'add-line' | 'add-circle-line' | 'delete-bin-line' | 'delete-bin-6-line' | 'edit-line' | 'edit-2-line' | 'pencil-line' | 'check-line' | 'close-circle-line' | 'refresh-line' | 'loop-left-line' | 'stop-line' | 'stop-circle-line' | 'play-line' | 'pause-line' | 'file-copy-line' | 'clipboard-line' | 'quote-text' | 'double-quotes-l' | 'double-quotes-r' | 'search-line' | 'search-2-line' | 'global-line' | 'image-line' | 'image-add-line' | 'gallery-line' | 'video-line' | 'mic-line' | 'code-line' | 'code-s-slash-line' | 'terminal-box-line' | 'bug-line' | 'git-branch-line' | 'file-text-line' | 'file-list-line' | 'article-line' | 'draft-line' | 'book-2-line' | 'magic-line' | 'sparkling-line' | 'sparkling-2-line' | 'robot-line' | 'brain-line' | 'user-line' | 'user-3-line' | 'user-settings-line' | 'account-circle-line' | 'sun-line' | 'moon-line' | 'computer-line' | 'information-line' | 'error-warning-line' | 'checkbox-circle-line' | 'loader-4-line' | 'translate-2' | 'time-line' | 'history-line' | 'star-line' | 'star-fill' | 'heart-line' | 'thumb-up-line' | 'thumb-down-line' | 'attachment-line' | 'link' | 'external-link-line' | 'download-line' | 'upload-line' | 'folder-line' | 'home-line' | 'dashboard-line' | 'list-check' | 'list-unordered' | 'key-line' | 'lock-line' | 'eye-line' | 'eye-off-line';
|
|
333
|
+
type IconName = 'menu-line' | 'close-line' | 'arrow-left-line' | 'arrow-right-line' | 'arrow-down-s-line' | 'arrow-up-s-line' | 'more-line' | 'more-2-line' | 'settings-3-line' | 'settings-4-line' | 'chat-1-line' | 'chat-3-line' | 'chat-new-line' | 'message-2-line' | 'send-plane-line' | 'send-plane-fill' | 'question-answer-line' | 'add-line' | 'add-circle-line' | 'delete-bin-line' | 'delete-bin-6-line' | 'edit-line' | 'edit-2-line' | 'pencil-line' | 'check-line' | 'close-circle-line' | 'refresh-line' | 'loop-left-line' | 'stop-line' | 'stop-circle-line' | 'play-line' | 'pause-line' | 'file-copy-line' | 'clipboard-line' | 'quote-text' | 'double-quotes-l' | 'double-quotes-r' | 'search-line' | 'search-2-line' | 'global-line' | 'image-line' | 'image-add-line' | 'gallery-line' | 'video-line' | 'mic-line' | 'code-line' | 'code-s-slash-line' | 'terminal-box-line' | 'bug-line' | 'git-branch-line' | 'file-text-line' | 'file-list-line' | 'article-line' | 'draft-line' | 'book-2-line' | 'magic-line' | 'sparkling-line' | 'sparkling-2-line' | 'robot-line' | 'brain-line' | 'user-line' | 'user-3-line' | 'user-settings-line' | 'account-circle-line' | 'sun-line' | 'moon-line' | 'computer-line' | 'information-line' | 'error-warning-line' | 'checkbox-circle-line' | 'loader-4-line' | 'translate-2' | 'time-line' | 'history-line' | 'star-line' | 'star-fill' | 'heart-line' | 'thumb-up-line' | 'thumb-down-line' | 'attachment-line' | 'link' | 'links-line' | 'external-link-line' | 'download-line' | 'upload-line' | 'folder-line' | 'home-line' | 'dashboard-line' | 'list-check' | 'list-unordered' | 'key-line' | 'lock-line' | 'eye-line' | 'eye-off-line';
|
|
332
334
|
interface IconProps {
|
|
333
335
|
/** Icon name from Remix Icons */
|
|
334
336
|
name: IconName;
|
|
@@ -338,6 +340,8 @@ interface IconProps {
|
|
|
338
340
|
color?: string;
|
|
339
341
|
/** Additional CSS classes */
|
|
340
342
|
className?: string;
|
|
343
|
+
/** Additional inline styles */
|
|
344
|
+
style?: React$1.CSSProperties;
|
|
341
345
|
/** Click handler */
|
|
342
346
|
onClick?: () => void;
|
|
343
347
|
/** Accessibility label */
|
|
@@ -378,6 +382,7 @@ declare const ChatHeader: React$1.FC<HeaderProps>;
|
|
|
378
382
|
/**
|
|
379
383
|
* @description 메시지 버블 컴포넌트
|
|
380
384
|
* 사용자/AI 메시지 표시, 복사, 수정, 재생성
|
|
385
|
+
* 마크다운 렌더링 및 출처 링크 칩 지원
|
|
381
386
|
*/
|
|
382
387
|
|
|
383
388
|
declare const MessageBubble: React$1.FC<MessageBubbleProps>;
|
|
@@ -423,4 +428,63 @@ interface MemoryPanelProps {
|
|
|
423
428
|
}
|
|
424
429
|
declare const MemoryPanel: React$1.FC<MemoryPanelProps>;
|
|
425
430
|
|
|
426
|
-
|
|
431
|
+
/**
|
|
432
|
+
* @description 마크다운 렌더러 컴포넌트
|
|
433
|
+
* 외부 의존성 없이 기본 마크다운 파싱 지원
|
|
434
|
+
*/
|
|
435
|
+
|
|
436
|
+
interface MarkdownRendererProps {
|
|
437
|
+
/** 마크다운 텍스트 */
|
|
438
|
+
content: string;
|
|
439
|
+
/** 커스텀 클래스 */
|
|
440
|
+
className?: string;
|
|
441
|
+
}
|
|
442
|
+
declare const MarkdownRenderer: React$1.FC<MarkdownRendererProps>;
|
|
443
|
+
|
|
444
|
+
/**
|
|
445
|
+
* @description 링크 칩 컴포넌트
|
|
446
|
+
* 출처 링크를 칩 형태로 표시
|
|
447
|
+
*/
|
|
448
|
+
|
|
449
|
+
interface LinkChipProps {
|
|
450
|
+
/** 링크 텍스트 */
|
|
451
|
+
text: string;
|
|
452
|
+
/** 링크 URL */
|
|
453
|
+
url: string;
|
|
454
|
+
/** 파비콘 표시 여부 */
|
|
455
|
+
showFavicon?: boolean;
|
|
456
|
+
/** 번호 표시 */
|
|
457
|
+
index?: number;
|
|
458
|
+
/** 커스텀 스타일 */
|
|
459
|
+
style?: React$1.CSSProperties;
|
|
460
|
+
}
|
|
461
|
+
declare const LinkChip: React$1.FC<LinkChipProps>;
|
|
462
|
+
|
|
463
|
+
/**
|
|
464
|
+
* @description 설정 모달 컴포넌트
|
|
465
|
+
* 일반/개인화/데이터 설정 탭 포함
|
|
466
|
+
*/
|
|
467
|
+
|
|
468
|
+
interface SettingsModalProps {
|
|
469
|
+
/** 모달 열림 상태 */
|
|
470
|
+
isOpen: boolean;
|
|
471
|
+
/** 모달 닫기 핸들러 */
|
|
472
|
+
onClose: () => void;
|
|
473
|
+
/** 개인화 설정 */
|
|
474
|
+
personalization: PersonalizationConfig;
|
|
475
|
+
/** 개인화 설정 변경 핸들러 */
|
|
476
|
+
onPersonalizationChange: (config: PersonalizationConfig) => void;
|
|
477
|
+
/** API 키 */
|
|
478
|
+
apiKey?: string;
|
|
479
|
+
/** API 키 변경 핸들러 */
|
|
480
|
+
onApiKeyChange?: (key: string) => void;
|
|
481
|
+
/** 전체 데이터 삭제 핸들러 */
|
|
482
|
+
onClearAllData?: () => void;
|
|
483
|
+
/** API 키 레이블 */
|
|
484
|
+
apiKeyLabel?: string;
|
|
485
|
+
/** API 키 설명 */
|
|
486
|
+
apiKeyDescription?: string;
|
|
487
|
+
}
|
|
488
|
+
declare const SettingsModal: React$1.FC<SettingsModalProps>;
|
|
489
|
+
|
|
490
|
+
export { type ActionItem, type ActionMenuProps, type AlternativeResponse, ChatHeader, ChatInput, type ChatMessage, type ChatSession, ChatSidebar, ChatUI, type ChatUIComponents, type ChatUIProps, EmptyState, type EmptyStateProps, type HeaderProps, Icon, type IconName, type IconProps, IconSvg, type InputProps, LinkChip, type LinkChipProps, MarkdownRenderer, type MarkdownRendererProps, type MemoryItem, MemoryPanel, type MemoryPanelProps, MessageBubble, type MessageBubbleProps, MessageList, type MessageListProps, type ModelConfig, type ModelSelectorProps, type PersonalizationConfig, type PromptTemplate, type ProviderType, type ResponseStyle, type SendMessageParams, SettingsModal, type SettingsModalProps, type SettingsTab, type SidebarProps, type ThemeConfig, type ThemeMode, type UseChatUIOptions, type UseChatUIReturn, type UserProfile, useChatUI };
|
package/dist/react/index.d.ts
CHANGED
|
@@ -116,6 +116,8 @@ interface ChatUIProps {
|
|
|
116
116
|
personalization?: Partial<PersonalizationConfig>;
|
|
117
117
|
/** API 키 (DevDive 등 외부 프로바이더용) */
|
|
118
118
|
apiKey?: string;
|
|
119
|
+
/** API 키 변경 핸들러 */
|
|
120
|
+
onApiKeyChange?: (key: string) => void;
|
|
119
121
|
/** API 엔드포인트 */
|
|
120
122
|
apiEndpoint?: string;
|
|
121
123
|
/** 테마 설정 */
|
|
@@ -328,7 +330,7 @@ declare const useChatUI: (options: UseChatUIOptions) => UseChatUIReturn;
|
|
|
328
330
|
* Using Remix Icons 4.6.0 via CDN or npm package
|
|
329
331
|
*/
|
|
330
332
|
|
|
331
|
-
type IconName = 'menu-line' | 'close-line' | 'arrow-left-line' | 'arrow-right-line' | 'arrow-down-s-line' | 'arrow-up-s-line' | 'more-line' | 'more-2-line' | 'settings-3-line' | 'settings-4-line' | 'chat-1-line' | 'chat-3-line' | 'chat-new-line' | 'message-2-line' | 'send-plane-line' | 'send-plane-fill' | 'question-answer-line' | 'add-line' | 'add-circle-line' | 'delete-bin-line' | 'delete-bin-6-line' | 'edit-line' | 'edit-2-line' | 'pencil-line' | 'check-line' | 'close-circle-line' | 'refresh-line' | 'loop-left-line' | 'stop-line' | 'stop-circle-line' | 'play-line' | 'pause-line' | 'file-copy-line' | 'clipboard-line' | 'quote-text' | 'double-quotes-l' | 'double-quotes-r' | 'search-line' | 'search-2-line' | 'global-line' | 'image-line' | 'image-add-line' | 'gallery-line' | 'video-line' | 'mic-line' | 'code-line' | 'code-s-slash-line' | 'terminal-box-line' | 'bug-line' | 'git-branch-line' | 'file-text-line' | 'file-list-line' | 'article-line' | 'draft-line' | 'book-2-line' | 'magic-line' | 'sparkling-line' | 'sparkling-2-line' | 'robot-line' | 'brain-line' | 'user-line' | 'user-3-line' | 'user-settings-line' | 'account-circle-line' | 'sun-line' | 'moon-line' | 'computer-line' | 'information-line' | 'error-warning-line' | 'checkbox-circle-line' | 'loader-4-line' | 'translate-2' | 'time-line' | 'history-line' | 'star-line' | 'star-fill' | 'heart-line' | 'thumb-up-line' | 'thumb-down-line' | 'attachment-line' | 'link' | 'external-link-line' | 'download-line' | 'upload-line' | 'folder-line' | 'home-line' | 'dashboard-line' | 'list-check' | 'list-unordered' | 'key-line' | 'lock-line' | 'eye-line' | 'eye-off-line';
|
|
333
|
+
type IconName = 'menu-line' | 'close-line' | 'arrow-left-line' | 'arrow-right-line' | 'arrow-down-s-line' | 'arrow-up-s-line' | 'more-line' | 'more-2-line' | 'settings-3-line' | 'settings-4-line' | 'chat-1-line' | 'chat-3-line' | 'chat-new-line' | 'message-2-line' | 'send-plane-line' | 'send-plane-fill' | 'question-answer-line' | 'add-line' | 'add-circle-line' | 'delete-bin-line' | 'delete-bin-6-line' | 'edit-line' | 'edit-2-line' | 'pencil-line' | 'check-line' | 'close-circle-line' | 'refresh-line' | 'loop-left-line' | 'stop-line' | 'stop-circle-line' | 'play-line' | 'pause-line' | 'file-copy-line' | 'clipboard-line' | 'quote-text' | 'double-quotes-l' | 'double-quotes-r' | 'search-line' | 'search-2-line' | 'global-line' | 'image-line' | 'image-add-line' | 'gallery-line' | 'video-line' | 'mic-line' | 'code-line' | 'code-s-slash-line' | 'terminal-box-line' | 'bug-line' | 'git-branch-line' | 'file-text-line' | 'file-list-line' | 'article-line' | 'draft-line' | 'book-2-line' | 'magic-line' | 'sparkling-line' | 'sparkling-2-line' | 'robot-line' | 'brain-line' | 'user-line' | 'user-3-line' | 'user-settings-line' | 'account-circle-line' | 'sun-line' | 'moon-line' | 'computer-line' | 'information-line' | 'error-warning-line' | 'checkbox-circle-line' | 'loader-4-line' | 'translate-2' | 'time-line' | 'history-line' | 'star-line' | 'star-fill' | 'heart-line' | 'thumb-up-line' | 'thumb-down-line' | 'attachment-line' | 'link' | 'links-line' | 'external-link-line' | 'download-line' | 'upload-line' | 'folder-line' | 'home-line' | 'dashboard-line' | 'list-check' | 'list-unordered' | 'key-line' | 'lock-line' | 'eye-line' | 'eye-off-line';
|
|
332
334
|
interface IconProps {
|
|
333
335
|
/** Icon name from Remix Icons */
|
|
334
336
|
name: IconName;
|
|
@@ -338,6 +340,8 @@ interface IconProps {
|
|
|
338
340
|
color?: string;
|
|
339
341
|
/** Additional CSS classes */
|
|
340
342
|
className?: string;
|
|
343
|
+
/** Additional inline styles */
|
|
344
|
+
style?: React$1.CSSProperties;
|
|
341
345
|
/** Click handler */
|
|
342
346
|
onClick?: () => void;
|
|
343
347
|
/** Accessibility label */
|
|
@@ -378,6 +382,7 @@ declare const ChatHeader: React$1.FC<HeaderProps>;
|
|
|
378
382
|
/**
|
|
379
383
|
* @description 메시지 버블 컴포넌트
|
|
380
384
|
* 사용자/AI 메시지 표시, 복사, 수정, 재생성
|
|
385
|
+
* 마크다운 렌더링 및 출처 링크 칩 지원
|
|
381
386
|
*/
|
|
382
387
|
|
|
383
388
|
declare const MessageBubble: React$1.FC<MessageBubbleProps>;
|
|
@@ -423,4 +428,63 @@ interface MemoryPanelProps {
|
|
|
423
428
|
}
|
|
424
429
|
declare const MemoryPanel: React$1.FC<MemoryPanelProps>;
|
|
425
430
|
|
|
426
|
-
|
|
431
|
+
/**
|
|
432
|
+
* @description 마크다운 렌더러 컴포넌트
|
|
433
|
+
* 외부 의존성 없이 기본 마크다운 파싱 지원
|
|
434
|
+
*/
|
|
435
|
+
|
|
436
|
+
interface MarkdownRendererProps {
|
|
437
|
+
/** 마크다운 텍스트 */
|
|
438
|
+
content: string;
|
|
439
|
+
/** 커스텀 클래스 */
|
|
440
|
+
className?: string;
|
|
441
|
+
}
|
|
442
|
+
declare const MarkdownRenderer: React$1.FC<MarkdownRendererProps>;
|
|
443
|
+
|
|
444
|
+
/**
|
|
445
|
+
* @description 링크 칩 컴포넌트
|
|
446
|
+
* 출처 링크를 칩 형태로 표시
|
|
447
|
+
*/
|
|
448
|
+
|
|
449
|
+
interface LinkChipProps {
|
|
450
|
+
/** 링크 텍스트 */
|
|
451
|
+
text: string;
|
|
452
|
+
/** 링크 URL */
|
|
453
|
+
url: string;
|
|
454
|
+
/** 파비콘 표시 여부 */
|
|
455
|
+
showFavicon?: boolean;
|
|
456
|
+
/** 번호 표시 */
|
|
457
|
+
index?: number;
|
|
458
|
+
/** 커스텀 스타일 */
|
|
459
|
+
style?: React$1.CSSProperties;
|
|
460
|
+
}
|
|
461
|
+
declare const LinkChip: React$1.FC<LinkChipProps>;
|
|
462
|
+
|
|
463
|
+
/**
|
|
464
|
+
* @description 설정 모달 컴포넌트
|
|
465
|
+
* 일반/개인화/데이터 설정 탭 포함
|
|
466
|
+
*/
|
|
467
|
+
|
|
468
|
+
interface SettingsModalProps {
|
|
469
|
+
/** 모달 열림 상태 */
|
|
470
|
+
isOpen: boolean;
|
|
471
|
+
/** 모달 닫기 핸들러 */
|
|
472
|
+
onClose: () => void;
|
|
473
|
+
/** 개인화 설정 */
|
|
474
|
+
personalization: PersonalizationConfig;
|
|
475
|
+
/** 개인화 설정 변경 핸들러 */
|
|
476
|
+
onPersonalizationChange: (config: PersonalizationConfig) => void;
|
|
477
|
+
/** API 키 */
|
|
478
|
+
apiKey?: string;
|
|
479
|
+
/** API 키 변경 핸들러 */
|
|
480
|
+
onApiKeyChange?: (key: string) => void;
|
|
481
|
+
/** 전체 데이터 삭제 핸들러 */
|
|
482
|
+
onClearAllData?: () => void;
|
|
483
|
+
/** API 키 레이블 */
|
|
484
|
+
apiKeyLabel?: string;
|
|
485
|
+
/** API 키 설명 */
|
|
486
|
+
apiKeyDescription?: string;
|
|
487
|
+
}
|
|
488
|
+
declare const SettingsModal: React$1.FC<SettingsModalProps>;
|
|
489
|
+
|
|
490
|
+
export { type ActionItem, type ActionMenuProps, type AlternativeResponse, ChatHeader, ChatInput, type ChatMessage, type ChatSession, ChatSidebar, ChatUI, type ChatUIComponents, type ChatUIProps, EmptyState, type EmptyStateProps, type HeaderProps, Icon, type IconName, type IconProps, IconSvg, type InputProps, LinkChip, type LinkChipProps, MarkdownRenderer, type MarkdownRendererProps, type MemoryItem, MemoryPanel, type MemoryPanelProps, MessageBubble, type MessageBubbleProps, MessageList, type MessageListProps, type ModelConfig, type ModelSelectorProps, type PersonalizationConfig, type PromptTemplate, type ProviderType, type ResponseStyle, type SendMessageParams, SettingsModal, type SettingsModalProps, type SettingsTab, type SidebarProps, type ThemeConfig, type ThemeMode, type UseChatUIOptions, type UseChatUIReturn, type UserProfile, useChatUI };
|