@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.
@@ -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
- 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, 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, type SettingsTab, type SidebarProps, type ThemeConfig, type ThemeMode, type UseChatUIOptions, type UseChatUIReturn, type UserProfile, useChatUI };
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 };
@@ -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
- 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, 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, type SettingsTab, type SidebarProps, type ThemeConfig, type ThemeMode, type UseChatUIOptions, type UseChatUIReturn, type UserProfile, useChatUI };
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 };