pixelon 0.1.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/README.md +54 -0
- package/dist/App.d.ts +3 -0
- package/dist/App.js +6 -0
- package/dist/assets/output-BpGRJPjR.css +1 -0
- package/dist/assets/output-DGLCW84k.css +1 -0
- package/dist/components/atoms/AttachmentPreview/AttachmentPreview.d.ts +8 -0
- package/dist/components/atoms/AttachmentPreview/AttachmentPreview.js +44 -0
- package/dist/components/atoms/Avatar/Avatar.d.ts +10 -0
- package/dist/components/atoms/Avatar/Avatar.js +28 -0
- package/dist/components/atoms/Button/Button.d.ts +10 -0
- package/dist/components/atoms/Button/Button.js +137 -0
- package/dist/components/atoms/DateDivider/DateDivider.d.ts +7 -0
- package/dist/components/atoms/DateDivider/DateDivider.js +40 -0
- package/dist/components/atoms/DateDivider/index.d.ts +2 -0
- package/dist/components/atoms/DateDivider/index.js +1 -0
- package/dist/components/atoms/Input/Input.d.ts +10 -0
- package/dist/components/atoms/Input/Input.js +111 -0
- package/dist/components/atoms/Link/Link.d.ts +14 -0
- package/dist/components/atoms/Link/Link.js +16 -0
- package/dist/components/atoms/SelectMenu/SelectMenu.d.ts +9 -0
- package/dist/components/atoms/SelectMenu/SelectMenu.js +23 -0
- package/dist/components/atoms/Text/Text.d.ts +11 -0
- package/dist/components/atoms/Text/Text.js +93 -0
- package/dist/components/atoms/Textarea/Textarea.d.ts +6 -0
- package/dist/components/atoms/Textarea/Textarea.js +5 -0
- package/dist/components/atoms/logo/Logo.d.ts +6 -0
- package/dist/components/atoms/logo/Logo.js +5 -0
- package/dist/components/molecules/chat/AssistantMessage/AssistantMessage.d.ts +7 -0
- package/dist/components/molecules/chat/AssistantMessage/AssistantMessage.js +10 -0
- package/dist/components/molecules/chat/AssistantThinkingIndicator/AssistantThinkingIndicator.d.ts +3 -0
- package/dist/components/molecules/chat/AssistantThinkingIndicator/AssistantThinkingIndicator.js +36 -0
- package/dist/components/molecules/chat/ChatHeader/ChatHeader.d.ts +6 -0
- package/dist/components/molecules/chat/ChatHeader/ChatHeader.js +6 -0
- package/dist/components/molecules/chat/ChatInput/ChatInput.d.ts +17 -0
- package/dist/components/molecules/chat/ChatInput/ChatInput.js +56 -0
- package/dist/components/molecules/chat/FileViewer/FileViewer.d.ts +7 -0
- package/dist/components/molecules/chat/FileViewer/FileViewer.js +41 -0
- package/dist/components/molecules/chat/FullscreenViewer/FullscreenViewer.d.ts +10 -0
- package/dist/components/molecules/chat/FullscreenViewer/FullscreenViewer.js +65 -0
- package/dist/components/molecules/chat/MessageStatus/MessageStatus.d.ts +9 -0
- package/dist/components/molecules/chat/MessageStatus/MessageStatus.js +14 -0
- package/dist/components/molecules/chat/Modal/Modal.d.ts +12 -0
- package/dist/components/molecules/chat/Modal/Modal.js +29 -0
- package/dist/components/molecules/chat/UserAttachments/UserAttachments.d.ts +6 -0
- package/dist/components/molecules/chat/UserAttachments/UserAttachments.js +8 -0
- package/dist/components/molecules/chat/UserMessage/UserMessage.d.ts +11 -0
- package/dist/components/molecules/chat/UserMessage/UserMessage.js +8 -0
- package/dist/components/organisms/chat/Chat.d.ts +21 -0
- package/dist/components/organisms/chat/Chat.js +278 -0
- package/dist/components/organisms/chat/index.d.ts +1 -0
- package/dist/components/organisms/chat/index.js +1 -0
- package/dist/index.d.ts +171 -0
- package/dist/index.esm.js +21664 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.js +21666 -0
- package/dist/index.js.map +1 -0
- package/dist/main.d.ts +1 -0
- package/dist/main.js +6 -0
- package/dist/styles.css +1 -0
- package/dist/styles.css.map +1 -0
- package/dist/test/setup.d.ts +1 -0
- package/dist/test/setup.js +20 -0
- package/package.json +95 -0
- package/src/styles/_variables.scss +84 -0
- package/src/styles/global.scss +58 -0
- package/src/styles/index.scss +30 -0
package/dist/main.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import './index.css';
|
package/dist/main.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { StrictMode } from 'react';
|
|
3
|
+
import { createRoot } from 'react-dom/client';
|
|
4
|
+
import './index.css';
|
|
5
|
+
import App from './App';
|
|
6
|
+
createRoot(document.getElementById('root')).render(_jsx(StrictMode, { children: _jsx(App, {}) }));
|
package/dist/styles.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--color-black: #000000;--color-white: #FFFFFF;--color-primary: var(--color-black);--color-secondary: #343541;--color-background: #FFFFFF;--color-background-alt: #F7F7F8;--color-text: #2D2D2D;--color-text-secondary: #6B7280;--color-text-inverse: #FFFFFF;--color-border: #E5E7EB;--color-success: #10B981;--color-error: #EF4444;--color-warning: #F59E0B;--color-info: #3B82F6;--color-chat-user-bg: #F7F7F8;--color-chat-assistant-bg: #FFFFFF;--color-chat-border: #E5E7EB;--color-chat-input-bg: #FFFFFF;--color-chat-input-border: #E5E7EB;--color-chat-input-focus: #000000;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);--spacing-xs: 0.25rem;--spacing-sm: 0.5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--border-radius-sm: 0.25rem;--border-radius-md: 0.375rem;--border-radius-lg: 0.5rem;--border-radius-full: 9999px;--font-family-base: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;--font-size-xs: 0.75rem;--font-size-sm: 0.875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75}[data-theme=dark]{--color-background: #343541;--color-background-alt: #444654;--color-text: #FFFFFF;--color-text-secondary: #9CA3AF;--color-border: #4B5563;--color-chat-user-bg: #444654;--color-chat-assistant-bg: #343541;--color-chat-border: #4B5563;--color-chat-input-bg: #40414F;--color-chat-input-border: #4B5563;--color-chat-input-focus: #FFFFFF}:root{--color-black: #000000;--color-white: #FFFFFF;--color-primary: var(--color-black);--color-secondary: #343541;--color-background: #FFFFFF;--color-background-alt: #F7F7F8;--color-text: #2D2D2D;--color-text-secondary: #6B7280;--color-text-inverse: #FFFFFF;--color-border: #E5E7EB;--color-success: #10B981;--color-error: #EF4444;--color-warning: #F59E0B;--color-info: #3B82F6;--color-chat-user-bg: #F7F7F8;--color-chat-assistant-bg: #FFFFFF;--color-chat-border: #E5E7EB;--color-chat-input-bg: #FFFFFF;--color-chat-input-border: #E5E7EB;--color-chat-input-focus: #000000;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);--spacing-xs: 0.25rem;--spacing-sm: 0.5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--border-radius-sm: 0.25rem;--border-radius-md: 0.375rem;--border-radius-lg: 0.5rem;--border-radius-full: 9999px;--font-family-base: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;--font-size-xs: 0.75rem;--font-size-sm: 0.875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75}[data-theme=dark]{--color-background: #343541;--color-background-alt: #444654;--color-text: #FFFFFF;--color-text-secondary: #9CA3AF;--color-border: #4B5563;--color-chat-user-bg: #444654;--color-chat-assistant-bg: #343541;--color-chat-border: #4B5563;--color-chat-input-bg: #40414F;--color-chat-input-border: #4B5563;--color-chat-input-focus: #FFFFFF}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-family-base);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-text-secondary)}.bg-primary{background-color:var(--color-primary)}.bg-secondary{background-color:var(--color-background-alt)}.transition-all{transition:all .2s ease-in-out}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-background)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--border-radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);border:none;border-radius:var(--border-radius-md);font-family:var(--font-family-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s ease-in-out;position:relative}.button--primary{background-color:var(--color-primary);color:var(--color-white)}.button--primary:hover:not(:disabled){opacity:.9}.button--primary:active:not(:disabled){opacity:.8}.button--secondary{background-color:var(--color-background-alt);color:var(--color-text)}.button--secondary:hover:not(:disabled){background-color:var(--color-border)}.button--ghost{background-color:rgba(0,0,0,0);color:var(--color-text)}.button--ghost:hover:not(:disabled){background-color:var(--color-background-alt)}.button--icon{padding:var(--spacing-sm);border-radius:var(--border-radius-full);background-color:rgba(0,0,0,0);color:var(--color-text)}.button--icon:hover:not(:disabled){background-color:var(--color-background-alt)}.button--small{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm)}.button--medium{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base)}.button--large{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-lg)}.button:disabled{opacity:.5;cursor:not-allowed}.button--full-width{width:100%}.button--loading{cursor:wait}.button--loading .button__text{visibility:hidden}.button__loader{position:absolute;width:16px;height:16px;border:2px solid var(--color-white);border-radius:50%;border-top-color:rgba(0,0,0,0);animation:button-spin .8s linear infinite}.button__icon{display:flex;align-items:center;justify-content:center}@keyframes button-spin{to{transform:rotate(360deg)}}.button--circle{background:var(--color-black) !important;color:var(--color-white);border-radius:50% !important;width:32px !important;height:32px !important;min-width:32px !important;min-height:32px !important;padding:0 !important;display:flex;align-items:center;justify-content:center;box-shadow:none;border:none;transition:background .2s}.button--circle:hover,.button--circle:focus{background:#222 !important}.button--circle .button__icon{color:var(--color-white);display:flex;align-items:center;justify-content:center}.input-wrapper{display:flex;flex-direction:column;gap:var(--spacing-xs)}.input-wrapper--full-width{width:100%}.input-wrapper--error .input{border-color:var(--color-error)}.input-wrapper--error .input:focus{border-color:var(--color-error);box-shadow:0 0 0 2px rgba(239,68,68,.1)}.input-wrapper--chat .input{background-color:var(--color-chat-input-bg);border:1px solid var(--color-chat-input-border);border-radius:var(--border-radius-lg);padding:0 var(--spacing-lg);font-size:var(--font-size-base);line-height:var(--line-height-relaxed);height:40px;min-height:40px;box-sizing:border-box;display:flex;align-items:center}.input-wrapper--chat .input:focus{border-color:var(--color-chat-input-focus);box-shadow:0 0 0 2px rgba(0,0,0,.1)}.input-wrapper__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.input-wrapper__container{position:relative;display:flex;align-items:center}.input-wrapper__icon{position:absolute;left:var(--spacing-md);display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary)}.input-wrapper__error{font-size:var(--font-size-sm);color:var(--color-error)}.input{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-family-base);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-md);transition:all .2s ease-in-out}.input--with-icon{padding-left:calc(var(--spacing-md)*2 + 16px)}.input::placeholder{color:var(--color-text-secondary)}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(0,0,0,.1)}.input:disabled{background-color:var(--color-background-alt);cursor:not-allowed}.text{margin:0;font-family:var(--font-family-base)}.text--h1{font-size:var(--font-size-2xl);line-height:var(--line-height-tight);font-weight:var(--font-weight-bold)}.text--h2{font-size:var(--font-size-xl);line-height:var(--line-height-tight);font-weight:var(--font-weight-semibold)}.text--h3{font-size:var(--font-size-lg);line-height:var(--line-height-tight);font-weight:var(--font-weight-semibold)}.text--h4{font-size:var(--font-size-base);line-height:var(--line-height-normal);font-weight:var(--font-weight-semibold)}.text--body{font-size:var(--font-size-base);line-height:var(--line-height-normal)}.text--small{font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.text--caption{font-size:var(--font-size-xs);line-height:var(--line-height-normal)}.text--normal{font-weight:var(--font-weight-normal)}.text--medium{font-weight:var(--font-weight-medium)}.text--semibold{font-weight:var(--font-weight-semibold)}.text--bold{font-weight:var(--font-weight-bold)}.text--primary{color:var(--color-text)}.text--secondary{color:var(--color-text-secondary)}.text--inherit{color:inherit}.text--left{text-align:left}.text--center{text-align:center}.text--right{text-align:right}.textarea{width:100%;border:none;outline:none;background:rgba(0,0,0,0);font-family:var(--font-family-base);font-size:var(--font-size-base);color:var(--color-text);resize:none;min-height:32px;max-height:120px;line-height:1.5;padding:0}:root{--color-black: #000000;--color-white: #FFFFFF;--color-primary: var(--color-black);--color-secondary: #343541;--color-background: #FFFFFF;--color-background-alt: #F7F7F8;--color-text: #2D2D2D;--color-text-secondary: #6B7280;--color-text-inverse: #FFFFFF;--color-border: #E5E7EB;--color-success: #10B981;--color-error: #EF4444;--color-warning: #F59E0B;--color-info: #3B82F6;--color-chat-user-bg: #F7F7F8;--color-chat-assistant-bg: #FFFFFF;--color-chat-border: #E5E7EB;--color-chat-input-bg: #FFFFFF;--color-chat-input-border: #E5E7EB;--color-chat-input-focus: #000000;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);--spacing-xs: 0.25rem;--spacing-sm: 0.5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--border-radius-sm: 0.25rem;--border-radius-md: 0.375rem;--border-radius-lg: 0.5rem;--border-radius-full: 9999px;--font-family-base: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;--font-size-xs: 0.75rem;--font-size-sm: 0.875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75}[data-theme=dark]{--color-background: #343541;--color-background-alt: #444654;--color-text: #FFFFFF;--color-text-secondary: #9CA3AF;--color-border: #4B5563;--color-chat-user-bg: #444654;--color-chat-assistant-bg: #343541;--color-chat-border: #4B5563;--color-chat-input-bg: #40414F;--color-chat-input-border: #4B5563;--color-chat-input-focus: #FFFFFF}.link{display:inline-flex;align-items:center;gap:.25rem;text-decoration:none;transition:all .2s ease-in-out;font-family:var(--font-family-base);cursor:pointer}.link--primary{color:var(--color-primary)}.link--primary:hover{color:var(--color-primary-dark)}.link--secondary{color:var(--color-secondary)}.link--secondary:hover{color:var(--color-secondary-dark)}.link--accent{color:var(--color-accent)}.link--accent:hover{color:var(--color-accent-dark)}.link--small{font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.link--medium{font-size:var(--font-size-base);line-height:var(--line-height-normal)}.link--large{font-size:var(--font-size-lg);line-height:var(--line-height-normal)}.link--normal{font-weight:var(--font-weight-normal)}.link--medium{font-weight:var(--font-weight-medium)}.link--semibold{font-weight:var(--font-weight-semibold)}.link--bold{font-weight:var(--font-weight-bold)}.link--underline{text-decoration:underline;text-decoration-color:currentColor;text-decoration-thickness:1px;text-underline-offset:2px}.link--underline:hover{text-decoration-thickness:2px}.link--external .link__external-icon{opacity:.7;transition:opacity .2s ease-in-out}.link--external:hover .link__external-icon{opacity:1}.link:hover{transform:translateY(-1px)}.link:active{transform:translateY(0)}.link:focus{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:4px}.link__external-icon{flex-shrink:0}.avatar{position:relative;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-full);overflow:hidden;background-color:var(--color-background-alt)}.avatar--small{width:24px;height:24px;font-size:var(--font-size-xs)}.avatar--medium{width:32px;height:32px;font-size:var(--font-size-sm)}.avatar--large{width:40px;height:40px;font-size:var(--font-size-base)}.avatar--user{background-color:var(--color-primary);color:var(--color-white)}.avatar--assistant{background-color:var(--color-background-alt);color:var(--color-text)}.avatar__image{width:100%;height:100%;object-fit:cover}.avatar__fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-medium)}.avatar__assistant-icon{width:60%;height:60%}.avatar__assistant-icon svg{width:100%;height:100%}.avatar--fallback .avatar__fallback{display:flex}.attachment-preview{display:flex;align-items:center;gap:.75rem;padding:.75rem;border:1px solid var(--color-border);border-radius:var(--border-radius-md);background:var(--color-background-secondary);position:relative;transition:all .2s ease;font-family:var(--font-family-base)}.attachment-preview--clickable{cursor:pointer}.attachment-preview--clickable:hover,.attachment-preview--clickable:focus{border-color:#111;outline:none}.attachment-preview__thumb{width:48px;height:48px;object-fit:cover;border-radius:var(--border-radius-sm);flex-shrink:0}.attachment-preview__icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-background);border-radius:var(--border-radius-sm);flex-shrink:0}.attachment-preview__pdf-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-error);color:#fff;border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);flex-shrink:0}.attachment-preview__info{flex:1;min-width:0}.attachment-preview__name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-bottom:.25rem;word-break:break-word;line-height:1.2}.attachment-preview__type{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.attachment-preview__remove{position:absolute;top:-0.5rem;right:-0.5rem;width:24px;height:24px;min-width:24px;min-height:24px;border:2px solid rgba(0,0,0,0);background:#111;color:#fff;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);transition:all .2s ease;z-index:1;box-sizing:border-box;padding:0}.attachment-preview__remove svg{width:12px;height:12px;display:block}.attachment-preview__remove:hover,.attachment-preview__remove:focus{background:#111;border:2px solid #111;color:#fff;outline:none;transform:scale(1.1)}:root{--color-black: #000000;--color-white: #FFFFFF;--color-primary: var(--color-black);--color-secondary: #343541;--color-background: #FFFFFF;--color-background-alt: #F7F7F8;--color-text: #2D2D2D;--color-text-secondary: #6B7280;--color-text-inverse: #FFFFFF;--color-border: #E5E7EB;--color-success: #10B981;--color-error: #EF4444;--color-warning: #F59E0B;--color-info: #3B82F6;--color-chat-user-bg: #F7F7F8;--color-chat-assistant-bg: #FFFFFF;--color-chat-border: #E5E7EB;--color-chat-input-bg: #FFFFFF;--color-chat-input-border: #E5E7EB;--color-chat-input-focus: #000000;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);--spacing-xs: 0.25rem;--spacing-sm: 0.5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--border-radius-sm: 0.25rem;--border-radius-md: 0.375rem;--border-radius-lg: 0.5rem;--border-radius-full: 9999px;--font-family-base: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;--font-size-xs: 0.75rem;--font-size-sm: 0.875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75}[data-theme=dark]{--color-background: #343541;--color-background-alt: #444654;--color-text: #FFFFFF;--color-text-secondary: #9CA3AF;--color-border: #4B5563;--color-chat-user-bg: #444654;--color-chat-assistant-bg: #343541;--color-chat-border: #4B5563;--color-chat-input-bg: #40414F;--color-chat-input-border: #4B5563;--color-chat-input-focus: #FFFFFF}.select-menu__backdrop{position:fixed;inset:0;z-index:999;background:rgba(0,0,0,0)}.select-menu{background:var(--color-background, #fff);border-radius:.5rem;box-shadow:0 4px 24px rgba(0,0,0,.12);padding:.5rem 0;min-width:180px;display:flex;flex-direction:column;gap:.25rem}.select-menu__item{background:none;border:none;width:100%;text-align:left;padding:.75rem 1.25rem;font-size:var(--font-size-base);color:var(--color-primary);cursor:pointer;border-radius:.25rem;transition:background .15s;font-family:var(--font-family-base);font-weight:var(--font-weight-medium)}.select-menu__item:hover,.select-menu__item:focus{background:var(--color-background-secondary, #f5f5f5);outline:none}.date-divider{display:flex;align-items:center;justify-content:center;margin:1.5rem 0;padding:0;position:relative}.date-divider::before,.date-divider::after{content:"";flex:1;height:1px;background-color:var(--color-border);max-width:100px}.date-divider::before{margin-right:1rem}.date-divider::after{margin-left:1rem}.date-divider__text{font-family:var(--font-family-base);font-size:.75rem;font-weight:700;color:#6b7280;letter-spacing:.05em;white-space:nowrap}.logo{display:inline-flex;align-items:center;justify-content:center}.logo svg{display:block}:root{--color-black: #000000;--color-white: #FFFFFF;--color-primary: var(--color-black);--color-secondary: #343541;--color-background: #FFFFFF;--color-background-alt: #F7F7F8;--color-text: #2D2D2D;--color-text-secondary: #6B7280;--color-text-inverse: #FFFFFF;--color-border: #E5E7EB;--color-success: #10B981;--color-error: #EF4444;--color-warning: #F59E0B;--color-info: #3B82F6;--color-chat-user-bg: #F7F7F8;--color-chat-assistant-bg: #FFFFFF;--color-chat-border: #E5E7EB;--color-chat-input-bg: #FFFFFF;--color-chat-input-border: #E5E7EB;--color-chat-input-focus: #000000;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);--spacing-xs: 0.25rem;--spacing-sm: 0.5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--border-radius-sm: 0.25rem;--border-radius-md: 0.375rem;--border-radius-lg: 0.5rem;--border-radius-full: 9999px;--font-family-base: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;--font-size-xs: 0.75rem;--font-size-sm: 0.875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75}[data-theme=dark]{--color-background: #343541;--color-background-alt: #444654;--color-text: #FFFFFF;--color-text-secondary: #9CA3AF;--color-border: #4B5563;--color-chat-user-bg: #444654;--color-chat-assistant-bg: #343541;--color-chat-border: #4B5563;--color-chat-input-bg: #40414F;--color-chat-input-border: #4B5563;--color-chat-input-focus: #FFFFFF}.assistant-message{display:flex;gap:1rem;padding:1rem 0rem 1rem 0rem;width:100%;flex-direction:row;animation:fadeInAndSlideUp .4s cubic-bezier(0.25, 0.1, 0.25, 1) forwards}.assistant-message__content{display:flex;flex-direction:column;gap:.25rem;max-width:100%;min-width:0;box-sizing:border-box;align-items:flex-start}.assistant-message__bubble{padding:0;border-radius:1.25rem;background-color:rgba(0,0,0,0);display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;max-width:420px;min-width:0;word-break:break-word;overflow-wrap:break-word;box-sizing:border-box}.assistant-message__role{font-weight:600;margin-bottom:.25rem;text-transform:capitalize;color:var(--color-secondary)}.assistant-message__markdown{color:var(--color-primary);line-height:var(--line-height-normal);font-family:var(--font-family-base);font-size:var(--font-size-base)}.assistant-message__markdown p{margin:0 0 1rem 0;font-size:var(--font-size-base);line-height:var(--line-height-normal);font-family:var(--font-family-base)}.assistant-message__markdown p:last-child{margin-bottom:0}.assistant-message__markdown h1,.assistant-message__markdown h2,.assistant-message__markdown h3,.assistant-message__markdown h4,.assistant-message__markdown h5,.assistant-message__markdown h6{margin:1.5rem 0 .5rem 0;font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);font-family:var(--font-family-base)}.assistant-message__markdown h1:first-child,.assistant-message__markdown h2:first-child,.assistant-message__markdown h3:first-child,.assistant-message__markdown h4:first-child,.assistant-message__markdown h5:first-child,.assistant-message__markdown h6:first-child{margin-top:0}.assistant-message__markdown h1{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold)}.assistant-message__markdown h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.assistant-message__markdown h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.assistant-message__markdown ul,.assistant-message__markdown ol{margin:.5rem 0;padding-left:1.5rem;font-size:var(--font-size-base);line-height:var(--line-height-normal);font-family:var(--font-family-base)}.assistant-message__markdown li{margin:.25rem 0;font-size:var(--font-size-base);line-height:var(--line-height-normal);font-family:var(--font-family-base)}.assistant-message__markdown code{background-color:var(--color-background-secondary);padding:.125rem .25rem;border-radius:.25rem;font-family:"Monaco","Menlo","Ubuntu Mono",monospace;font-size:var(--font-size-sm)}.assistant-message__markdown pre{background-color:var(--color-background-secondary);padding:1rem;border-radius:.5rem;overflow-x:auto;margin:1rem 0}.assistant-message__markdown pre code{background:none;padding:0;border-radius:0;font-size:var(--font-size-sm)}.assistant-message__markdown strong{font-weight:var(--font-weight-semibold);font-family:var(--font-family-base)}.assistant-message__markdown em{font-style:italic;font-family:var(--font-family-base)}.assistant-message__markdown blockquote{border-left:3px solid var(--color-secondary);padding-left:1rem;margin:1rem 0;font-style:italic;color:var(--color-secondary);font-family:var(--font-family-base);font-size:var(--font-size-base);line-height:var(--line-height-normal)}.assistant-message__markdown table{border-collapse:collapse;width:100%;margin:1rem 0;font-family:var(--font-family-base);font-size:var(--font-size-base)}.assistant-message__markdown th,.assistant-message__markdown td{border:1px solid var(--color-border);padding:.5rem;text-align:left;font-family:var(--font-family-base);font-size:var(--font-size-base)}.assistant-message__markdown th{background-color:var(--color-background-secondary);font-weight:var(--font-weight-semibold)}.assistant-message__timestamp{opacity:.7;text-align:right}@keyframes fadeInAndSlideUp{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@media(max-width: 700px){.assistant-message__content{max-width:100%}.assistant-message__bubble{max-width:95vw}}:root{--color-black: #000000;--color-white: #FFFFFF;--color-primary: var(--color-black);--color-secondary: #343541;--color-background: #FFFFFF;--color-background-alt: #F7F7F8;--color-text: #2D2D2D;--color-text-secondary: #6B7280;--color-text-inverse: #FFFFFF;--color-border: #E5E7EB;--color-success: #10B981;--color-error: #EF4444;--color-warning: #F59E0B;--color-info: #3B82F6;--color-chat-user-bg: #F7F7F8;--color-chat-assistant-bg: #FFFFFF;--color-chat-border: #E5E7EB;--color-chat-input-bg: #FFFFFF;--color-chat-input-border: #E5E7EB;--color-chat-input-focus: #000000;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);--spacing-xs: 0.25rem;--spacing-sm: 0.5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--border-radius-sm: 0.25rem;--border-radius-md: 0.375rem;--border-radius-lg: 0.5rem;--border-radius-full: 9999px;--font-family-base: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;--font-size-xs: 0.75rem;--font-size-sm: 0.875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75}[data-theme=dark]{--color-background: #343541;--color-background-alt: #444654;--color-text: #FFFFFF;--color-text-secondary: #9CA3AF;--color-border: #4B5563;--color-chat-user-bg: #444654;--color-chat-assistant-bg: #343541;--color-chat-border: #4B5563;--color-chat-input-bg: #40414F;--color-chat-input-border: #4B5563;--color-chat-input-focus: #FFFFFF}.assistant-thinking-indicator{display:flex;gap:1rem;padding:1rem 0rem 0rem 0rem;width:100%;flex-direction:row}.assistant-thinking-indicator__content{display:flex;flex-direction:column;gap:.25rem;max-width:100%;min-width:0;box-sizing:border-box;align-items:flex-start}.assistant-thinking-indicator__bubble{border-radius:1.25rem;background-color:var(--color-background-secondary);display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;max-width:420px;min-width:0;overflow-wrap:break-word;box-sizing:border-box}.assistant-thinking-indicator__role{font-weight:600;margin-bottom:.25rem;text-transform:capitalize;color:var(--color-secondary)}.assistant-thinking-indicator__text-container{display:flex;align-items:center}.assistant-thinking-indicator__wave-text span{display:inline-block;animation:pulse-animation 1.8s ease-in-out infinite}@keyframes pulse-animation{0%,100%{opacity:1}50%{opacity:.4}}@media(max-width: 700px){.assistant-thinking-indicator__bubble{max-width:95vw}}:root{--color-black: #000000;--color-white: #FFFFFF;--color-primary: var(--color-black);--color-secondary: #343541;--color-background: #FFFFFF;--color-background-alt: #F7F7F8;--color-text: #2D2D2D;--color-text-secondary: #6B7280;--color-text-inverse: #FFFFFF;--color-border: #E5E7EB;--color-success: #10B981;--color-error: #EF4444;--color-warning: #F59E0B;--color-info: #3B82F6;--color-chat-user-bg: #F7F7F8;--color-chat-assistant-bg: #FFFFFF;--color-chat-border: #E5E7EB;--color-chat-input-bg: #FFFFFF;--color-chat-input-border: #E5E7EB;--color-chat-input-focus: #000000;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);--spacing-xs: 0.25rem;--spacing-sm: 0.5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--border-radius-sm: 0.25rem;--border-radius-md: 0.375rem;--border-radius-lg: 0.5rem;--border-radius-full: 9999px;--font-family-base: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;--font-size-xs: 0.75rem;--font-size-sm: 0.875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75}[data-theme=dark]{--color-background: #343541;--color-background-alt: #444654;--color-text: #FFFFFF;--color-text-secondary: #9CA3AF;--color-border: #4B5563;--color-chat-user-bg: #444654;--color-chat-assistant-bg: #343541;--color-chat-border: #4B5563;--color-chat-input-bg: #40414F;--color-chat-input-border: #4B5563;--color-chat-input-focus: #FFFFFF}.chat-header{display:flex;align-items:center;justify-content:center;padding:.75rem;background-color:var(--color-background)}.chat-header__content{display:flex;align-items:center;gap:.3rem}.chat-header__logo{flex-shrink:0}.chat-header__title{margin:0;font-family:var(--font-family-base);font-size:1.125rem;font-weight:600;color:var(--color-text)}.chat__input{padding:1rem 1.5rem;background:none;border-top:none;box-shadow:none;width:100vw;max-width:100vw;box-sizing:border-box}.chat__input-stack{display:flex;flex-direction:column;gap:.5rem;background:var(--color-chat-input-bg);border:1px solid var(--color-chat-input-border);border-radius:var(--border-radius-lg);padding:.5rem 1rem .5rem 1rem}.chat__textarea{width:100%;border:none;outline:none;background:rgba(0,0,0,0);font-family:var(--font-family-base);font-size:var(--font-size-base);color:var(--color-text);resize:none;min-height:32px;max-height:120px;line-height:1.5;padding:0}.chat__actions{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.chat__actions-left{display:flex;align-items:center;gap:.5rem}.chat__actions-right{display:flex;align-items:center;gap:.5rem}.chat__icon-btn{background:none;border:none;padding:0;margin:0 .25rem 0 0;border-radius:0;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);cursor:pointer;transition:color .2s}.chat__icon-btn:last-child{margin-right:0}.chat__icon-btn:hover,.chat__icon-btn:focus{background:none;color:var(--color-primary)}.chat__attachments{display:flex;flex-direction:row;gap:12px;overflow-x:auto;padding:8px 0 4px 0;margin-bottom:0;scrollbar-width:none;scrollbar-color:var(--color-border) var(--color-background-secondary);width:100%;max-width:100%;white-space:nowrap}.chat__attachments::-webkit-scrollbar{display:none}.chat__attachments::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}.chat__attachments::-webkit-scrollbar-track{background:var(--color-background-secondary);border-radius:4px}.chat__attachments>*{flex-shrink:0}.chat__attachments-wrapper{position:relative;padding-bottom:22px}.chat__attachments-count{position:absolute;right:0;bottom:0;color:var(--color-text-secondary, #888);font-size:var(--font-size-xs);padding:0;background:none;border-radius:0;box-shadow:none;pointer-events:none;z-index:3;font-family:var(--font-family-base);font-weight:var(--font-weight-medium)}.file-viewer__grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(120px, 1fr));gap:.75rem;margin-bottom:1rem}.file-viewer__item{cursor:pointer;border-radius:var(--border-radius-md);overflow:hidden;transition:all .2s ease;border:1px solid var(--color-border)}.file-viewer__item:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--color-primary)}.file-viewer__item:focus{outline:2px solid var(--color-primary);outline-offset:2px}.file-viewer__image-container{position:relative;aspect-ratio:1;overflow:hidden}.file-viewer__image-container:hover .file-viewer__overlay{opacity:1}.file-viewer__image{width:100%;height:100%;object-fit:cover;transition:transform .2s ease}.file-viewer__item:hover .file-viewer__image{transform:scale(1.05)}.file-viewer__overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease;color:#fff}.file-viewer__file-container{padding:1rem;text-align:center;background:var(--color-background-secondary);min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem}.file-viewer__file-icon{color:var(--color-text-secondary);display:flex;flex-direction:column;align-items:center;gap:.25rem}.file-viewer__pdf-icon{display:flex;flex-direction:column;align-items:center;gap:.25rem}.file-viewer__pdf-icon span{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-error)}.file-viewer__file-info{text-align:center}.file-viewer__file-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-bottom:.25rem;word-break:break-word;line-height:1.2}.file-viewer__file-type{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.file-viewer__navigation{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:1rem;background:rgba(0,0,0,.8);padding:.75rem 1.5rem;border-radius:var(--border-radius-lg);z-index:1001}.file-viewer__nav-btn{background:rgba(0,0,0,0);border:none;color:#fff;padding:.5rem;border-radius:var(--border-radius-sm);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.file-viewer__nav-btn:hover{background:hsla(0,0%,100%,.1)}.file-viewer__nav-btn:focus{outline:2px solid #fff;outline-offset:2px}.file-viewer__counter{color:#fff;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);min-width:60px;text-align:center}.fullscreen-viewer{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;width:100vw;height:100vh;background:var(--color-background);position:relative;font-family:var(--font-family-base)}.fullscreen-viewer__image-container{position:absolute;top:0;left:0;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-background);z-index:1}.fullscreen-viewer__image{max-width:100vw;max-height:100vh;width:100vw;height:100vh;object-fit:contain;border-radius:0;opacity:0;transition:opacity .3s ease;background:var(--color-background)}.fullscreen-viewer__image--loaded{opacity:1}.fullscreen-viewer__loading,.fullscreen-viewer__error{position:absolute;left:0;right:0;top:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--color-text-secondary);gap:1rem;background:var(--color-background);z-index:2}.fullscreen-viewer__video-container{width:100%;height:100%;min-height:0;display:flex;align-items:center;justify-content:center;background:var(--color-background)}.fullscreen-viewer__video{max-width:100vw;max-height:100%;border-radius:0;background:var(--color-background)}.fullscreen-viewer__file-container{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:2rem;padding:2rem;width:100vw;height:100vh;background:var(--color-background)}.fullscreen-viewer__file-icon{color:var(--color-text-secondary);display:flex;flex-direction:column;align-items:center;gap:.5rem}.fullscreen-viewer__pdf-icon{display:flex;flex-direction:column;align-items:center;gap:.5rem}.fullscreen-viewer__pdf-icon span{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-error)}.fullscreen-viewer__file-info{display:flex;flex-direction:column;align-items:center;gap:1rem}.fullscreen-viewer__file-name{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);word-break:break-word;max-width:400px}.fullscreen-viewer__file-details{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.fullscreen-viewer__download-btn{margin-top:1rem}.fullscreen-viewer__arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:10;background:var(--color-background);box-shadow:0 2px 8px rgba(0,0,0,.1);opacity:.95;transition:background .2s,box-shadow .2s;border:none;outline:none}.fullscreen-viewer__arrow:hover,.fullscreen-viewer__arrow:focus{background:var(--color-background-hover, #f0f0f0);box-shadow:0 4px 12px rgba(0,0,0,.15)}.fullscreen-viewer__arrow--left{left:2rem}.fullscreen-viewer__arrow--right{right:2rem}.fullscreen-viewer__counter{position:absolute;bottom:3.5rem;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.7);color:#fff;padding:.5rem 1rem;border-radius:1rem;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);z-index:10;pointer-events:none}.fullscreen-viewer__floating-header{position:absolute;top:0;left:0;width:100vw;display:flex;align-items:flex-start;justify-content:flex-start;padding:1.2rem 0 0 1.5rem;background:rgba(0,0,0,0);z-index:20;box-shadow:none;backdrop-filter:none}.fullscreen-viewer__floating-title{color:#fff;font-size:1.15rem;font-weight:600;text-shadow:0 1px 4px rgba(0,0,0,.25);max-width:80vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:3.5rem}.fullscreen-viewer__floating-close{position:absolute;top:1.2rem;right:2.5rem;background:#111;border:none;border-radius:50%;padding:.12rem;width:32px;height:32px;min-width:32px;min-height:32px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,border .2s;box-shadow:0 2px 8px rgba(0,0,0,.1);border:2px solid rgba(0,0,0,0);z-index:30}.fullscreen-viewer__floating-close:hover,.fullscreen-viewer__floating-close:focus{background:#fff;border:2px solid #111}.fullscreen-viewer__floating-close svg{width:18px;height:18px;stroke:#fff;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;display:block}.fullscreen-viewer__floating-close:hover svg,.fullscreen-viewer__floating-close:focus svg{stroke:#111}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.message-status{display:inline-block}.message-status--failed{color:#ff3b30 !important}.message-status__retry{text-decoration:underline;cursor:pointer;color:#ff3b30;font-weight:600}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:1000;padding:0;width:100vw;height:100vh}.modal{background:var(--color-background);border-radius:0;box-shadow:var(--shadow-xl);max-width:100vw;max-height:100vh;width:100vw;height:100vh;display:flex;flex-direction:column;overflow:hidden;animation:modalFadeIn .2s ease-out;font-family:var(--font-family-base)}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:var(--color-background-secondary);flex-shrink:0}.modal__title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.modal__close-btn{background:rgba(0,0,0,0);border:none;color:var(--color-text-secondary);padding:.5rem;border-radius:var(--border-radius-sm);cursor:pointer;transition:all .2s ease}.modal__close-btn:hover{background:var(--color-background-hover);color:var(--color-text-primary)}.modal__content{flex:1;min-height:0;overflow:hidden;padding:0;display:flex;align-items:center;justify-content:center;height:100%;width:100%}@keyframes modalFadeIn{from{opacity:0;transform:scale(0.95)}to{opacity:1;transform:scale(1)}}.user-attachments{display:flex;flex-direction:row;gap:12px;overflow-x:auto;padding:0 0 4px 0;margin-bottom:.5rem;scrollbar-width:none;width:100%;max-width:100%;white-space:nowrap}.user-attachments::-webkit-scrollbar{display:none}.user-attachments>*{flex-shrink:0}:root{--color-black: #000000;--color-white: #FFFFFF;--color-primary: var(--color-black);--color-secondary: #343541;--color-background: #FFFFFF;--color-background-alt: #F7F7F8;--color-text: #2D2D2D;--color-text-secondary: #6B7280;--color-text-inverse: #FFFFFF;--color-border: #E5E7EB;--color-success: #10B981;--color-error: #EF4444;--color-warning: #F59E0B;--color-info: #3B82F6;--color-chat-user-bg: #F7F7F8;--color-chat-assistant-bg: #FFFFFF;--color-chat-border: #E5E7EB;--color-chat-input-bg: #FFFFFF;--color-chat-input-border: #E5E7EB;--color-chat-input-focus: #000000;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);--spacing-xs: 0.25rem;--spacing-sm: 0.5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--border-radius-sm: 0.25rem;--border-radius-md: 0.375rem;--border-radius-lg: 0.5rem;--border-radius-full: 9999px;--font-family-base: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;--font-size-xs: 0.75rem;--font-size-sm: 0.875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75}[data-theme=dark]{--color-background: #343541;--color-background-alt: #444654;--color-text: #FFFFFF;--color-text-secondary: #9CA3AF;--color-border: #4B5563;--color-chat-user-bg: #444654;--color-chat-assistant-bg: #343541;--color-chat-border: #4B5563;--color-chat-input-bg: #40414F;--color-chat-input-border: #4B5563;--color-chat-input-focus: #FFFFFF}.user-message{display:flex;gap:1rem;padding:1rem 0rem 1rem 0rem;width:100%;flex-direction:row-reverse;font-family:var(--font-family-base)}.user-message__content{display:flex;flex-direction:column;gap:.25rem;max-width:100%;min-width:0;box-sizing:border-box;align-items:flex-end}.user-message__bubble{padding:1rem 1.5rem;border-radius:1.5rem 1.5rem .5rem 1.5rem;background:#f5f6fa;display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;max-width:420px;min-width:0;word-break:break-word;overflow-wrap:break-word;box-sizing:border-box;color:#23272f;font-family:var(--font-family-base)}.user-message__role{font-weight:600;margin-bottom:.25rem;text-transform:capitalize}.user-message__meta{display:flex;align-items:center;justify-content:flex-end;gap:.5rem}.user-message__timestamp{opacity:.7;text-align:right}@media(max-width: 700px){.user-message__content{max-width:100%}.user-message__bubble{max-width:95vw}}.chat-layout{display:grid;grid-template-rows:auto 1fr auto;grid-template-areas:"header" "main" "footer";height:var(--app-height, 100vh);width:100vw;box-sizing:border-box;background-color:var(--color-background);overflow:hidden;margin:0;max-width:none;max-height:none}.chat-header{grid-area:header;height:25px}.chat-main{grid-area:main;flex-grow:1;overflow-y:auto;padding:0 2rem;display:flex;flex-direction:column;gap:.5rem;width:100%;box-sizing:border-box;position:relative;background-color:var(--color-background);-ms-overflow-style:none;scrollbar-width:none}.chat-main::-webkit-scrollbar{display:none}.chat-footer{grid-area:footer;position:relative}.chat__input{padding:1rem 1.5rem;background:none;border-top:none;box-shadow:none}.chat__input-wrapper{position:relative;width:100%;display:flex;align-items:center}.chat__input-wrapper input,.chat__input-wrapper .input{padding-right:4.5rem !important}.chat__send-btn{position:absolute !important;right:8px;top:50%;transform:translateY(-50%);height:40px;min-width:80px;border-radius:var(--border-radius-lg);z-index:2;margin:0}.chat__input-stack{display:flex;flex-direction:column;gap:.5rem;background:var(--color-chat-input-bg);border:1px solid var(--color-chat-input-border);border-radius:var(--border-radius-lg);padding:.5rem 1rem .5rem 1rem}.chat__textarea{width:100%;border:none;outline:none;background:rgba(0,0,0,0);font-family:var(--font-family-base);font-size:var(--font-size-base);color:var(--color-text);resize:none;min-height:32px;max-height:120px;line-height:1.5;padding:0}.chat__actions{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.chat__actions-left{display:flex;align-items:center;gap:.5rem}.chat__actions-right{display:flex;align-items:center;gap:.5rem}.chat__icon-btn{background:none;border:none;padding:0;margin:0 .25rem 0 0;border-radius:0;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);cursor:pointer;transition:color .2s}.chat__icon-btn:last-child{margin-right:0}.chat__icon-btn:hover,.chat__icon-btn:focus{background:none;color:var(--color-primary)}.chat__attachments{display:flex;flex-direction:row;gap:12px;overflow-x:auto;padding:8px 0 4px 0;margin-bottom:0;scrollbar-width:none;scrollbar-color:var(--color-border) var(--color-background-alt);width:100%;max-width:100%;white-space:nowrap}.chat__attachments::-webkit-scrollbar{display:none}.chat__attachments::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}.chat__attachments::-webkit-scrollbar-track{background:var(--color-background-alt);border-radius:4px}.chat__attachments>*{flex-shrink:0}.chat__attachments-wrapper{position:relative;padding-bottom:22px}.chat__attachments-count{position:absolute;right:0;bottom:0;color:var(--color-text-secondary, #888);font-size:var(--font-size-xs);padding:0;background:none;border-radius:0;box-shadow:none;pointer-events:none;z-index:3;font-family:var(--font-family-base);font-weight:var(--font-weight-medium)}.chat__scroll-to-bottom{position:absolute;left:50%;transform:translateX(-50%);top:-3rem;z-index:10;box-shadow:0 2px 8px rgba(0,0,0,.1);background:var(--color-background);transition:opacity .2s,transform .2s;opacity:.95}@media(max-width: 700px){.chat-layout{max-width:100vw;width:100vw;border-radius:0}.chat-main,.chat__input{padding-left:1rem;padding-right:1rem}.chat__scroll-to-bottom{left:50%;transform:translateX(-50%);top:-2.5rem}}.chat__scroll-to-bottom .button__icon{display:flex;align-items:center;justify-content:center;transform:rotate(180deg)}/*# sourceMappingURL=styles.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../src/styles/_variables.scss","../src/styles/global.scss","../src/components/atoms/Button/Button.scss","../src/components/atoms/Input/Input.scss","../src/components/atoms/Text/Text.scss","../src/components/atoms/Textarea/Textarea.scss","../src/components/atoms/Link/Link.scss","../src/components/atoms/Avatar/Avatar.scss","../src/components/atoms/AttachmentPreview/AttachmentPreview.scss","../src/components/atoms/SelectMenu/SelectMenu.scss","../src/components/atoms/DateDivider/DateDivider.scss","../src/components/atoms/logo/Logo.scss","../src/components/molecules/chat/AssistantMessage/AssistantMessage.scss","../src/components/molecules/chat/AssistantThinkingIndicator/AssistantThinkingIndicator.scss","../src/components/molecules/chat/ChatHeader/ChatHeader.scss","../src/components/molecules/chat/ChatInput/ChatInput.scss","../src/components/molecules/chat/FileViewer/FileViewer.scss","../src/components/molecules/chat/FullscreenViewer/FullscreenViewer.scss","../src/components/molecules/chat/MessageStatus/MessageStatus.scss","../src/components/molecules/chat/Modal/Modal.scss","../src/components/molecules/chat/UserAttachments/UserAttachments.scss","../src/components/molecules/chat/UserMessage/UserMessage.scss","../src/components/organisms/chat/Chat.scss"],"names":[],"mappings":"AACA,MAEE,uBACA,uBAGA,oCACA,2BACA,4BACA,gCACA,sBACA,gCACA,8BACA,wBAGA,yBACA,uBACA,yBACA,sBAGA,8BACA,mCACA,6BACA,+BACA,mCACA,kCAGA,2CACA,6CACA,+CAGA,sBACA,qBACA,mBACA,qBACA,mBAGA,4BACA,6BACA,2BACA,6BAGA,yJACA,wBACA,yBACA,uBACA,yBACA,wBACA,wBAGA,0BACA,0BACA,4BACA,wBAGA,0BACA,0BACA,4BAIF,kBACE,4BACA,gCACA,sBACA,gCACA,wBAEA,8BACA,mCACA,6BACA,+BACA,mCACA,kCAjFF,MAEE,uBACA,uBAGA,oCACA,2BACA,4BACA,gCACA,sBACA,gCACA,8BACA,wBAGA,yBACA,uBACA,yBACA,sBAGA,8BACA,mCACA,6BACA,+BACA,mCACA,kCAGA,2CACA,6CACA,+CAGA,sBACA,qBACA,mBACA,qBACA,mBAGA,4BACA,6BACA,2BACA,6BAGA,yJACA,wBACA,yBACA,uBACA,yBACA,wBACA,wBAGA,0BACA,0BACA,4BACA,wBAGA,0BACA,0BACA,4BAIF,kBACE,4BACA,gCACA,sBACA,gCACA,wBAEA,8BACA,mCACA,6BACA,+BACA,mCACA,kCChFF,EACE,SACA,UACA,sBAGF,KACE,oCACA,gCACA,sCACA,wBACA,yCACA,mCACA,kCAIF,cACE,2BAGF,gBACE,kCAGF,YACE,sCAGF,cACE,6CAIF,gBACE,+BAIF,oBACE,UACA,WAGF,0BACE,mCAGF,0BACE,+BACA,wCAGF,gCACE,uCCxDF,QACE,oBACA,mBACA,uBACA,sBACA,YACA,sCACA,oCACA,sCACA,eACA,+BACA,kBAGA,iBACE,sCACA,yBAEA,sCACE,WAGF,uCACE,WAIJ,mBACE,6CACA,wBAEA,wCACE,qCAIJ,eACE,+BACA,wBAEA,oCACE,6CAIJ,cACE,0BACA,wCACA,+BACA,wBAEA,mCACE,6CAKJ,eACE,4CACA,8BAGF,gBACE,4CACA,gCAGF,eACE,4CACA,8BAIF,iBACE,WACA,mBAGF,oBACE,WAGF,iBACE,YAEA,+BACE,kBAKJ,gBACE,kBACA,WACA,YACA,oCACA,kBACA,+BACA,0CAIF,cACE,aACA,mBACA,uBAIJ,uBACE,GACE,0BAIJ,gBACE,yCACA,yBACA,6BACA,sBACA,uBACA,0BACA,2BACA,qBACA,aACA,mBACA,uBACA,gBACA,YACA,0BAGF,4CAEE,2BAGF,8BACE,yBACA,aACA,mBACA,uBC7IF,eACE,aACA,sBACA,sBAEA,2BACE,WAIA,6BACE,gCAEA,mCACE,gCACA,wCAMJ,4BACE,4CACA,gDACA,sCACA,4BACA,gCACA,uCACA,YACA,gBACA,sBACA,aACA,mBAEA,kCACE,2CACA,oCAKN,sBACE,8BACA,sCACA,wBAGF,0BACE,kBACA,aACA,mBAGF,qBACE,kBACA,uBACA,aACA,mBACA,uBACA,kCAGF,sBACE,8BACA,yBAIJ,OACE,WACA,4CACA,oCACA,gCACA,sCACA,wBACA,yCACA,qCACA,sCACA,+BAEA,kBACE,8CAGF,oBACE,kCAGF,aACE,aACA,kCACA,oCAGF,gBACE,6CACA,mBChGJ,MACE,SACA,oCAGA,UACE,+BACA,qCACA,oCAGF,UACE,8BACA,qCACA,wCAGF,UACE,8BACA,qCACA,wCAGF,UACE,gCACA,sCACA,wCAGF,YACE,gCACA,sCAGF,aACE,8BACA,sCAGF,eACE,8BACA,sCAIF,cACE,sCAGF,cACE,sCAGF,gBACE,wCAGF,YACE,oCAIF,eACE,wBAGF,iBACE,kCAGF,eACE,cAIF,YACE,gBAGF,cACE,kBAGF,aACE,iBCpFJ,UACE,WACA,YACA,aACA,yBACA,oCACA,gCACA,wBACA,YACA,gBACA,iBACA,gBACA,ULXF,MAEE,uBACA,uBAGA,oCACA,2BACA,4BACA,gCACA,sBACA,gCACA,8BACA,wBAGA,yBACA,uBACA,yBACA,sBAGA,8BACA,mCACA,6BACA,+BACA,mCACA,kCAGA,2CACA,6CACA,+CAGA,sBACA,qBACA,mBACA,qBACA,mBAGA,4BACA,6BACA,2BACA,6BAGA,yJACA,wBACA,yBACA,uBACA,yBACA,wBACA,wBAGA,0BACA,0BACA,4BACA,wBAGA,0BACA,0BACA,4BAIF,kBACE,4BACA,gCACA,sBACA,gCACA,wBAEA,8BACA,mCACA,6BACA,+BACA,mCACA,kCMhFF,MACE,oBACA,mBACA,WACA,qBACA,+BACA,oCACA,eAGA,eACE,2BAEA,qBACE,gCAIJ,iBACE,6BAEA,uBACE,kCAIJ,cACE,0BAEA,oBACE,+BAKJ,aACE,8BACA,sCAGF,cACE,gCACA,sCAGF,aACE,8BACA,sCAIF,cACE,sCAGF,cACE,sCAGF,gBACE,wCAGF,YACE,oCAIF,iBACE,0BACA,mCACA,8BACA,0BAEA,uBACE,8BAMF,qCACE,WACA,mCAIA,2CACE,UAMN,YACE,2BAGF,aACE,wBAIF,YACE,uCACA,mBACA,kBAIF,qBACE,cCjHJ,QACE,kBACA,aACA,mBACA,uBACA,wCACA,gBACA,6CAEA,eACE,WACA,YACA,8BAGF,gBACE,WACA,YACA,8BAGF,eACE,WACA,YACA,gCAIF,cACE,sCACA,yBAGF,mBACE,6CACA,wBAIF,eACE,WACA,YACA,iBAIF,kBACE,WACA,YACA,aACA,mBACA,uBACA,sCAIF,wBACE,UACA,WAEA,4BACE,WACA,YAMF,oCACE,aCrEN,oBACE,aACA,mBACA,WACA,eACA,qCACA,sCACA,6CACA,kBACA,wBACA,oCAEA,+BACE,eAEA,0EAEE,kBACA,aAIJ,2BACE,WACA,YACA,iBACA,sCACA,cAGF,0BACE,WACA,YACA,aACA,mBACA,uBACA,mCACA,sCACA,cAGF,8BACE,WACA,YACA,aACA,mBACA,uBACA,8BACA,WACA,sCACA,8BACA,oCACA,cAGF,0BACE,OACA,YAGF,0BACE,8BACA,sCACA,gCACA,qBACA,sBACA,gBAGF,0BACE,8BACA,kCAGF,4BACE,kBACA,YACA,cACA,WACA,YACA,eACA,gBACA,+BACA,gBACA,WACA,kBACA,eACA,aACA,mBACA,uBACA,8BACA,oCACA,wBACA,UACA,sBACA,UAEA,gCACE,WACA,YACA,cAGF,oEAEE,gBACA,sBACA,WACA,aACA,qBR5GN,MAEE,uBACA,uBAGA,oCACA,2BACA,4BACA,gCACA,sBACA,gCACA,8BACA,wBAGA,yBACA,uBACA,yBACA,sBAGA,8BACA,mCACA,6BACA,+BACA,mCACA,kCAGA,2CACA,6CACA,+CAGA,sBACA,qBACA,mBACA,qBACA,mBAGA,4BACA,6BACA,2BACA,6BAGA,yJACA,wBACA,yBACA,uBACA,yBACA,wBACA,wBAGA,0BACA,0BACA,4BACA,wBAGA,0BACA,0BACA,4BAIF,kBACE,4BACA,gCACA,sBACA,gCACA,wBAEA,8BACA,mCACA,6BACA,+BACA,mCACA,kCShFF,uBACE,eACA,QACA,YACA,yBAGF,aACE,yCACA,oBACA,sCACA,gBACA,gBACA,aACA,sBACA,WAGF,mBACE,gBACA,YACA,WACA,gBACA,uBACA,gCACA,2BACA,eACA,qBACA,2BACA,oCACA,sCAGF,kDAEE,sDACA,aCtCF,cACE,aACA,mBACA,uBACA,gBACA,UACA,kBAEA,2CAEE,WACA,OACA,WACA,qCACA,gBAGF,sBACE,kBAGF,qBACE,iBAIJ,oBACE,oCACA,iBACA,gBACA,cACA,qBACA,mBChCF,MACE,oBACA,mBACA,uBAEA,UACE,cXLJ,MAEE,uBACA,uBAGA,oCACA,2BACA,4BACA,gCACA,sBACA,gCACA,8BACA,wBAGA,yBACA,uBACA,yBACA,sBAGA,8BACA,mCACA,6BACA,+BACA,mCACA,kCAGA,2CACA,6CACA,+CAGA,sBACA,qBACA,mBACA,qBACA,mBAGA,4BACA,6BACA,2BACA,6BAGA,yJACA,wBACA,yBACA,uBACA,yBACA,wBACA,wBAGA,0BACA,0BACA,4BACA,wBAGA,0BACA,0BACA,4BAIF,kBACE,4BACA,gCACA,sBACA,gCACA,wBAEA,8BACA,mCACA,6BACA,+BACA,mCACA,kCYhFF,mBACE,aACA,SACA,4BACA,WACA,mBACA,yEAEA,4BACE,aACA,sBACA,WACA,eACA,YACA,sBACA,uBAGF,2BACE,UACA,sBACA,+BACA,aACA,sBACA,uBACA,WACA,gBACA,YACA,sBACA,yBACA,sBAGF,yBACE,gBACA,qBACA,0BACA,6BAGF,6BACE,2BACA,sCACA,oCACA,gCAGA,+BACE,kBACA,gCACA,sCACA,oCAEA,0CACE,gBAKJ,gMACE,wBACA,wCACA,qCACA,oCAEA,wQACE,aAIJ,gCACE,+BACA,oCAEF,gCACE,8BACA,wCAEF,gCACE,8BACA,wCAIF,gEACE,eACA,oBACA,gCACA,sCACA,oCAGF,gCACE,gBACA,gCACA,sCACA,oCAIF,kCACE,mDACA,uBACA,qBACA,qDACA,8BAIF,iCACE,mDACA,aACA,oBACA,gBACA,cAEA,sCACE,gBACA,UACA,gBACA,8BAgBJ,oCACE,wCACA,oCAGF,gCACE,kBACA,oCAIF,wCACE,6CACA,kBACA,cACA,kBACA,6BACA,oCACA,gCACA,sCAIF,mCACE,yBACA,WACA,cACA,oCACA,gCAGF,gEACE,qCACA,cACA,gBACA,oCACA,gCAGF,gCACE,mDACA,wCAIJ,8BACE,WACA,iBAIJ,4BACE,KACE,UACA,2BAEF,GACE,UACA,yBAIJ,yBAEI,4BACE,eAEF,2BACE,gBZ7MN,MAEE,uBACA,uBAGA,oCACA,2BACA,4BACA,gCACA,sBACA,gCACA,8BACA,wBAGA,yBACA,uBACA,yBACA,sBAGA,8BACA,mCACA,6BACA,+BACA,mCACA,kCAGA,2CACA,6CACA,+CAGA,sBACA,qBACA,mBACA,qBACA,mBAGA,4BACA,6BACA,2BACA,6BAGA,yJACA,wBACA,yBACA,uBACA,yBACA,wBACA,wBAGA,0BACA,0BACA,4BACA,wBAGA,0BACA,0BACA,4BAIF,kBACE,4BACA,gCACA,sBACA,gCACA,wBAEA,8BACA,mCACA,6BACA,+BACA,mCACA,kCahFF,8BACE,aACA,SACA,4BACA,WACA,mBAEA,uCACE,aACA,sBACA,WACA,eACA,YACA,sBACA,uBAGF,sCACE,sBACA,mDACA,aACA,sBACA,uBACA,WACA,gBACA,YACA,yBACA,sBAGF,oCACE,gBACA,qBACA,0BACA,6BAGF,8CACE,aACA,mBAIA,8CACE,qBACA,oDAKN,2BACE,QACE,UAEF,IACE,YAIJ,yBACE,sCACE,gBb9DJ,MAEE,uBACA,uBAGA,oCACA,2BACA,4BACA,gCACA,sBACA,gCACA,8BACA,wBAGA,yBACA,uBACA,yBACA,sBAGA,8BACA,mCACA,6BACA,+BACA,mCACA,kCAGA,2CACA,6CACA,+CAGA,sBACA,qBACA,mBACA,qBACA,mBAGA,4BACA,6BACA,2BACA,6BAGA,yJACA,wBACA,yBACA,uBACA,yBACA,wBACA,wBAGA,0BACA,0BACA,4BACA,wBAGA,0BACA,0BACA,4BAIF,kBACE,4BACA,gCACA,sBACA,gCACA,wBAEA,8BACA,mCACA,6BACA,+BACA,mCACA,kCchFF,aACE,aACA,mBACA,uBACA,eACA,yCAGA,sBACE,aACA,mBACA,UAGF,mBACE,cAGF,oBACE,SACA,oCACA,mBACA,gBACA,wBCzBJ,aACE,oBACA,gBACA,gBACA,gBACA,YACA,gBACA,sBAGF,mBACE,aACA,sBACA,UACA,sCACA,gDACA,sCACA,8BAGF,gBACE,WACA,YACA,aACA,yBACA,oCACA,gCACA,wBACA,YACA,gBACA,iBACA,gBACA,UAGF,eACE,aACA,8BACA,mBACA,UAGF,oBACE,aACA,mBACA,UAGF,qBACE,aACA,mBACA,UAGF,gBACE,gBACA,YACA,UACA,oBACA,gBACA,aACA,mBACA,uBACA,kCACA,eACA,qBAEF,2BACE,eAEF,4CAEE,gBACA,2BAGF,mBACE,aACA,mBACA,SACA,gBACA,oBACA,gBACA,qBACA,sEACA,WACA,eACA,mBAGF,sCACE,aAGF,4CACE,+BACA,kBAGF,4CACE,6CACA,kBAGF,qBACE,cAGF,2BACE,kBACA,oBAGF,yBACE,kBACA,QACA,SACA,wCACA,8BACA,UACA,gBACA,gBACA,gBACA,oBACA,UACA,oCACA,sCC7HA,mBACE,aACA,4DACA,WACA,mBAGF,mBACE,eACA,sCACA,gBACA,wBACA,qCAEA,yBACE,2BACA,4BACA,kCAGF,yBACE,uCACA,mBAIJ,8BACE,kBACA,eACA,gBAEA,0DACE,UAIJ,oBACE,WACA,YACA,iBACA,8BAEA,6CACE,sBAIJ,sBACE,kBACA,MACA,OACA,QACA,SACA,0BACA,aACA,mBACA,uBACA,UACA,4BACA,WAGF,6BACE,aACA,kBACA,6CACA,iBACA,aACA,sBACA,mBACA,uBACA,UAGF,wBACE,kCACA,aACA,sBACA,mBACA,WAGF,uBACE,aACA,sBACA,mBACA,WAEA,4BACE,8BACA,wCACA,yBAIJ,wBACE,kBAGF,wBACE,8BACA,sCACA,gCACA,qBACA,sBACA,gBAGF,wBACE,8BACA,kCAGF,yBACE,eACA,YACA,SACA,2BACA,aACA,mBACA,SACA,0BACA,sBACA,sCACA,aAGF,sBACE,yBACA,YACA,WACA,cACA,sCACA,eACA,wBACA,aACA,mBACA,uBAEA,4BACE,8BAGF,4BACE,uBACA,mBAIJ,sBACE,WACA,8BACA,sCACA,eACA,kBC3JJ,mBACE,aACA,sBACA,mBACA,uBACA,aACA,YACA,aACA,mCACA,kBACA,oCAEA,oCACE,kBACA,MACA,OACA,YACA,aACA,aACA,mBACA,uBACA,mCACA,UAGF,0BACE,gBACA,iBACA,YACA,aACA,mBACA,gBACA,UACA,4BACA,mCAEA,kCACE,UAIJ,sDACE,kBACA,8BACA,aACA,sBACA,mBACA,uBACA,kCACA,SACA,mCACA,UAGF,oCACE,WACA,YACA,aACA,aACA,mBACA,uBACA,mCAGF,0BACE,gBACA,gBACA,gBACA,mCAGF,mCACE,aACA,sBACA,mBACA,uBACA,kBACA,SACA,aACA,YACA,aACA,mCAGF,8BACE,kCACA,aACA,sBACA,mBACA,UAGF,6BACE,aACA,sBACA,mBACA,UAEA,kCACE,8BACA,wCACA,yBAIJ,8BACE,aACA,sBACA,mBACA,SAGF,8BACE,SACA,8BACA,wCACA,gCACA,sBACA,gBAGF,iCACE,SACA,8BACA,kCAGF,iCACE,gBAGF,0BACE,kBACA,QACA,2BACA,WACA,mCACA,oCACA,YACA,yCACA,YACA,aACA,gEAEE,kDACA,sCAEF,gCACE,UAEF,iCACE,WAIJ,4BACE,kBACA,cACA,SACA,2BACA,0BACA,WACA,mBACA,mBACA,8BACA,sCACA,WACA,oBAGF,oCACE,kBACA,MACA,OACA,YACA,aACA,uBACA,2BACA,0BACA,yBACA,WACA,gBACA,qBAGF,mCACE,WACA,kBACA,gBACA,sCACA,eACA,gBACA,uBACA,mBACA,oBAGF,mCACE,kBACA,WACA,aACA,gBACA,YACA,kBACA,eACA,WACA,YACA,eACA,gBACA,eACA,aACA,mBACA,uBACA,qCACA,oCACA,+BACA,WAGF,kFAEE,gBACA,sBAGF,uCACE,WACA,YACA,YACA,iBACA,qBACA,sBACA,cAGF,0FAEE,YAIJ,gBACE,0BACA,+BCnPF,gBACE,qBAEA,wBACE,yBAGF,uBACE,0BACA,eACA,cACA,gBCXJ,eACE,eACA,MACA,OACA,QACA,SACA,gCACA,aACA,mBACA,uBACA,aACA,UACA,YACA,aAGF,OACE,mCACA,gBACA,4BACA,gBACA,iBACA,YACA,aACA,aACA,sBACA,gBACA,mCACA,oCAEA,eACE,aACA,mBACA,8BACA,oBACA,6CACA,cAGF,cACE,SACA,8BACA,wCACA,gCAGF,kBACE,yBACA,YACA,kCACA,cACA,sCACA,eACA,wBAEA,wBACE,yCACA,gCAIJ,gBACE,OACA,aACA,gBACA,UACA,aACA,mBACA,uBACA,YACA,WAIJ,uBACE,KACE,UACA,sBAEF,GACE,UACA,oBCjFJ,kBACE,aACA,mBACA,SACA,gBACA,kBACA,oBACA,qBACA,WACA,eACA,mBAGF,qCACE,aAGF,oBACE,cpBjBF,MAEE,uBACA,uBAGA,oCACA,2BACA,4BACA,gCACA,sBACA,gCACA,8BACA,wBAGA,yBACA,uBACA,yBACA,sBAGA,8BACA,mCACA,6BACA,+BACA,mCACA,kCAGA,2CACA,6CACA,+CAGA,sBACA,qBACA,mBACA,qBACA,mBAGA,4BACA,6BACA,2BACA,6BAGA,yJACA,wBACA,yBACA,uBACA,yBACA,wBACA,wBAGA,0BACA,0BACA,4BACA,wBAGA,0BACA,0BACA,4BAIF,kBACE,4BACA,gCACA,sBACA,gCACA,wBAEA,8BACA,mCACA,6BACA,+BACA,mCACA,kCqBhFF,cACE,aACA,SACA,4BACA,WACA,2BACA,oCAEA,uBACE,aACA,sBACA,WACA,eACA,YACA,sBACA,qBAGF,sBACE,oBACA,yCACA,mBACA,aACA,sBACA,uBACA,WACA,gBACA,YACA,sBACA,yBACA,sBACA,cACA,oCAGF,oBACE,gBACA,qBACA,0BAGF,oBACE,aACA,mBACA,yBACA,UAGF,yBACE,WACA,iBAIJ,yBAEI,uBACE,eAEF,sBACE,gBC5DN,aACE,aACA,iCACA,oBACE,yBAGF,gCACA,YACA,sBACA,yCACA,gBACA,SACA,eACA,gBAGF,aACE,iBACA,YAGF,WACE,eACA,YACA,gBACA,eACA,aACA,sBACA,UACA,WACA,sBACA,kBACA,yCAOA,wBACA,qBALA,8BACE,aAOJ,aACE,iBACA,kBAGF,aACE,oBACA,gBACA,gBACA,gBAGF,qBACE,kBACA,WACA,aACA,mBAGF,uDAEE,gCAGF,gBACE,6BACA,UACA,QACA,2BACA,YACA,eACA,sCACA,UACA,SAGF,mBACE,aACA,sBACA,UACA,sCACA,gDACA,sCACA,8BAGF,gBACE,WACA,YACA,aACA,yBACA,oCACA,gCACA,wBACA,YACA,gBACA,iBACA,gBACA,UAGF,eACE,aACA,8BACA,mBACA,UAGF,oBACE,aACA,mBACA,UAGF,qBACE,aACA,mBACA,UAGF,gBACE,gBACA,YACA,UACA,oBACA,gBACA,aACA,mBACA,uBACA,kCACA,eACA,qBAEF,2BACE,eAEF,4CAEE,gBACA,2BAGF,mBACE,aACA,mBACA,SACA,gBACA,oBACA,gBACA,qBACA,gEACA,WACA,eACA,mBAGF,sCACE,aAGF,4CACE,+BACA,kBAGF,4CACE,uCACA,kBAGF,qBACE,cAGF,2BACE,kBACA,oBAGF,yBACE,kBACA,QACA,SACA,wCACA,8BACA,UACA,gBACA,gBACA,gBACA,oBACA,UACA,oCACA,sCAGF,wBACE,kBACA,SACA,2BACA,UACA,WACA,oCACA,mCACA,qCACA,YAGF,yBACE,aACE,gBACA,YACA,gBAEF,wBAEE,kBACA,mBAEF,wBACE,SACA,2BACA,aAIJ,sCACE,aACA,mBACA,uBACA","file":"styles.css"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@testing-library/jest-dom';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import '@testing-library/jest-dom';
|
|
2
|
+
import { vi } from 'vitest';
|
|
3
|
+
// Mock de CSS modules para evitar errores en los tests
|
|
4
|
+
vi.mock('*.scss', () => ({
|
|
5
|
+
default: {},
|
|
6
|
+
}));
|
|
7
|
+
// Configuración global para los tests
|
|
8
|
+
Object.defineProperty(window, 'matchMedia', {
|
|
9
|
+
writable: true,
|
|
10
|
+
value: vi.fn().mockImplementation(query => ({
|
|
11
|
+
matches: false,
|
|
12
|
+
media: query,
|
|
13
|
+
onchange: null,
|
|
14
|
+
addListener: vi.fn(), // deprecated
|
|
15
|
+
removeListener: vi.fn(), // deprecated
|
|
16
|
+
addEventListener: vi.fn(),
|
|
17
|
+
removeEventListener: vi.fn(),
|
|
18
|
+
dispatchEvent: vi.fn(),
|
|
19
|
+
})),
|
|
20
|
+
});
|
package/package.json
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "pixelon",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Design system de la marca goluti",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"module": "dist/index.esm.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"files": [
|
|
10
|
+
"dist",
|
|
11
|
+
"src/styles"
|
|
12
|
+
],
|
|
13
|
+
"style": "dist/styles.css",
|
|
14
|
+
"scripts": {
|
|
15
|
+
"dev": "vite",
|
|
16
|
+
"build": "tsc -b && vite build",
|
|
17
|
+
"build:lib": "tsc --project tsconfig.json && rollup -c && npx sass src/styles/index.scss dist/styles.css --style=compressed",
|
|
18
|
+
"lint": "eslint .",
|
|
19
|
+
"preview": "vite preview",
|
|
20
|
+
"storybook": "storybook dev -p 6006",
|
|
21
|
+
"build-storybook": "storybook build",
|
|
22
|
+
"test": "vitest",
|
|
23
|
+
"test:ui": "vitest --ui",
|
|
24
|
+
"test:run": "vitest run",
|
|
25
|
+
"mobile": "npx storybook dev -p 6006 --host 0.0.0.0",
|
|
26
|
+
"get:ip": "ipconfig getifaddr en0",
|
|
27
|
+
"prepublishOnly": "npm run build:lib"
|
|
28
|
+
},
|
|
29
|
+
"keywords": [
|
|
30
|
+
"pixelon",
|
|
31
|
+
"goluti",
|
|
32
|
+
"react",
|
|
33
|
+
"typescript",
|
|
34
|
+
"design-system",
|
|
35
|
+
"components",
|
|
36
|
+
"atomic-design"
|
|
37
|
+
],
|
|
38
|
+
"author": "Marlon Andrés León León <dandresleon64@gmail.com>",
|
|
39
|
+
"license": "MIT",
|
|
40
|
+
"repository": {
|
|
41
|
+
"type": "git",
|
|
42
|
+
"url": "https://github.com/dandres10/pixelon"
|
|
43
|
+
},
|
|
44
|
+
"homepage": "https://github.com/dandres10/pixelon#readme",
|
|
45
|
+
"bugs": {
|
|
46
|
+
"url": "https://github.com/dandres10/pixelon/issues"
|
|
47
|
+
},
|
|
48
|
+
"peerDependencies": {
|
|
49
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
50
|
+
"react-dom": "^18.0.0 || ^19.0.0"
|
|
51
|
+
},
|
|
52
|
+
"dependencies": {
|
|
53
|
+
"@emotion/react": "^11.14.0",
|
|
54
|
+
"@fontsource/inter": "^5.2.5",
|
|
55
|
+
"pdfjs-dist": "^5.3.31",
|
|
56
|
+
"react-loading-skeleton": "^3.5.0",
|
|
57
|
+
"react-markdown": "^10.1.0",
|
|
58
|
+
"react-pdf": "^10.0.1",
|
|
59
|
+
"sass": "^1.89.0"
|
|
60
|
+
},
|
|
61
|
+
"devDependencies": {
|
|
62
|
+
"@eslint/js": "^9.25.0",
|
|
63
|
+
"@rollup/plugin-commonjs": "^27.0.0",
|
|
64
|
+
"@rollup/plugin-node-resolve": "^15.3.1",
|
|
65
|
+
"@rollup/plugin-typescript": "^12.1.4",
|
|
66
|
+
"@storybook/addon-onboarding": "^9.0.0",
|
|
67
|
+
"@storybook/react-vite": "^9.0.0",
|
|
68
|
+
"@testing-library/jest-dom": "^6.6.3",
|
|
69
|
+
"@testing-library/react": "^16.3.0",
|
|
70
|
+
"@testing-library/user-event": "^14.6.1",
|
|
71
|
+
"@types/react": "^19.1.2",
|
|
72
|
+
"@types/react-dom": "^19.1.2",
|
|
73
|
+
"@vitejs/plugin-react": "^4.4.1",
|
|
74
|
+
"@vitest/ui": "^3.2.4",
|
|
75
|
+
"eslint": "^9.25.0",
|
|
76
|
+
"eslint-plugin-react-hooks": "^5.2.0",
|
|
77
|
+
"eslint-plugin-react-refresh": "^0.4.19",
|
|
78
|
+
"eslint-plugin-storybook": "^9.0.0",
|
|
79
|
+
"globals": "^16.0.0",
|
|
80
|
+
"jsdom": "^26.1.0",
|
|
81
|
+
"rollup": "^4.46.2",
|
|
82
|
+
"rollup-plugin-dts": "^6.2.1",
|
|
83
|
+
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
84
|
+
"rollup-plugin-scss": "^4.0.1",
|
|
85
|
+
"sass": "^1.89.2",
|
|
86
|
+
"storybook": "^9.0.0",
|
|
87
|
+
"typescript": "~5.8.3",
|
|
88
|
+
"typescript-eslint": "^8.30.1",
|
|
89
|
+
"vite": "^6.3.5",
|
|
90
|
+
"vitest": "^3.2.4"
|
|
91
|
+
},
|
|
92
|
+
"publishConfig": {
|
|
93
|
+
"access": "public"
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// Variables de color
|
|
2
|
+
:root {
|
|
3
|
+
// Colores base
|
|
4
|
+
--color-black: #000000;
|
|
5
|
+
--color-white: #FFFFFF;
|
|
6
|
+
|
|
7
|
+
// Colores del tema
|
|
8
|
+
--color-primary: var(--color-black);
|
|
9
|
+
--color-secondary: #343541;
|
|
10
|
+
--color-background: #FFFFFF;
|
|
11
|
+
--color-background-alt: #F7F7F8;
|
|
12
|
+
--color-text: #2D2D2D;
|
|
13
|
+
--color-text-secondary: #6B7280;
|
|
14
|
+
--color-text-inverse: #FFFFFF;
|
|
15
|
+
--color-border: #E5E7EB;
|
|
16
|
+
|
|
17
|
+
// Colores de estado
|
|
18
|
+
--color-success: #10B981;
|
|
19
|
+
--color-error: #EF4444;
|
|
20
|
+
--color-warning: #F59E0B;
|
|
21
|
+
--color-info: #3B82F6;
|
|
22
|
+
|
|
23
|
+
// Colores del chat
|
|
24
|
+
--color-chat-user-bg: #F7F7F8;
|
|
25
|
+
--color-chat-assistant-bg: #FFFFFF;
|
|
26
|
+
--color-chat-border: #E5E7EB;
|
|
27
|
+
--color-chat-input-bg: #FFFFFF;
|
|
28
|
+
--color-chat-input-border: #E5E7EB;
|
|
29
|
+
--color-chat-input-focus: #000000;
|
|
30
|
+
|
|
31
|
+
// Sombras
|
|
32
|
+
--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
|
|
33
|
+
--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);
|
|
34
|
+
--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);
|
|
35
|
+
|
|
36
|
+
// Espaciado
|
|
37
|
+
--spacing-xs: 0.25rem;
|
|
38
|
+
--spacing-sm: 0.5rem;
|
|
39
|
+
--spacing-md: 1rem;
|
|
40
|
+
--spacing-lg: 1.5rem;
|
|
41
|
+
--spacing-xl: 2rem;
|
|
42
|
+
|
|
43
|
+
// Bordes
|
|
44
|
+
--border-radius-sm: 0.25rem;
|
|
45
|
+
--border-radius-md: 0.375rem;
|
|
46
|
+
--border-radius-lg: 0.5rem;
|
|
47
|
+
--border-radius-full: 9999px;
|
|
48
|
+
|
|
49
|
+
// Tipografía
|
|
50
|
+
--font-family-base: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
|
51
|
+
--font-size-xs: 0.75rem;
|
|
52
|
+
--font-size-sm: 0.875rem;
|
|
53
|
+
--font-size-base: 1rem;
|
|
54
|
+
--font-size-lg: 1.125rem;
|
|
55
|
+
--font-size-xl: 1.25rem;
|
|
56
|
+
--font-size-2xl: 1.5rem;
|
|
57
|
+
|
|
58
|
+
// Pesos de fuente
|
|
59
|
+
--font-weight-normal: 400;
|
|
60
|
+
--font-weight-medium: 500;
|
|
61
|
+
--font-weight-semibold: 600;
|
|
62
|
+
--font-weight-bold: 700;
|
|
63
|
+
|
|
64
|
+
// Altura de línea
|
|
65
|
+
--line-height-tight: 1.25;
|
|
66
|
+
--line-height-normal: 1.5;
|
|
67
|
+
--line-height-relaxed: 1.75;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Tema oscuro
|
|
71
|
+
[data-theme="dark"] {
|
|
72
|
+
--color-background: #343541;
|
|
73
|
+
--color-background-alt: #444654;
|
|
74
|
+
--color-text: #FFFFFF;
|
|
75
|
+
--color-text-secondary: #9CA3AF;
|
|
76
|
+
--color-border: #4B5563;
|
|
77
|
+
|
|
78
|
+
--color-chat-user-bg: #444654;
|
|
79
|
+
--color-chat-assistant-bg: #343541;
|
|
80
|
+
--color-chat-border: #4B5563;
|
|
81
|
+
--color-chat-input-bg: #40414F;
|
|
82
|
+
--color-chat-input-border: #4B5563;
|
|
83
|
+
--color-chat-input-focus: #FFFFFF;
|
|
84
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
@import './variables';
|
|
2
|
+
|
|
3
|
+
* {
|
|
4
|
+
margin: 0;
|
|
5
|
+
padding: 0;
|
|
6
|
+
box-sizing: border-box;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
body {
|
|
10
|
+
font-family: var(--font-family-base);
|
|
11
|
+
font-size: var(--font-size-base);
|
|
12
|
+
line-height: var(--line-height-normal);
|
|
13
|
+
color: var(--color-text);
|
|
14
|
+
background-color: var(--color-background);
|
|
15
|
+
-webkit-font-smoothing: antialiased;
|
|
16
|
+
-moz-osx-font-smoothing: grayscale;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Utilidades
|
|
20
|
+
.text-primary {
|
|
21
|
+
color: var(--color-primary);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.text-secondary {
|
|
25
|
+
color: var(--color-text-secondary);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.bg-primary {
|
|
29
|
+
background-color: var(--color-primary);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.bg-secondary {
|
|
33
|
+
background-color: var(--color-background-alt);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Transiciones
|
|
37
|
+
.transition-all {
|
|
38
|
+
transition: all 0.2s ease-in-out;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Scrollbar personalizado
|
|
42
|
+
::-webkit-scrollbar {
|
|
43
|
+
width: 8px;
|
|
44
|
+
height: 8px;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
::-webkit-scrollbar-track {
|
|
48
|
+
background: var(--color-background);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
::-webkit-scrollbar-thumb {
|
|
52
|
+
background: var(--color-border);
|
|
53
|
+
border-radius: var(--border-radius-full);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
::-webkit-scrollbar-thumb:hover {
|
|
57
|
+
background: var(--color-text-secondary);
|
|
58
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// Importar variables y estilos globales
|
|
2
|
+
@import './variables';
|
|
3
|
+
@import './global';
|
|
4
|
+
|
|
5
|
+
// Atoms
|
|
6
|
+
@import '../components/atoms/Button/Button.scss';
|
|
7
|
+
@import '../components/atoms/Input/Input.scss';
|
|
8
|
+
@import '../components/atoms/Text/Text.scss';
|
|
9
|
+
@import '../components/atoms/Textarea/Textarea.scss';
|
|
10
|
+
@import '../components/atoms/Link/Link.scss';
|
|
11
|
+
@import '../components/atoms/Avatar/Avatar.scss';
|
|
12
|
+
@import '../components/atoms/AttachmentPreview/AttachmentPreview.scss';
|
|
13
|
+
@import '../components/atoms/SelectMenu/SelectMenu.scss';
|
|
14
|
+
@import '../components/atoms/DateDivider/DateDivider.scss';
|
|
15
|
+
@import '../components/atoms/logo/Logo.scss';
|
|
16
|
+
|
|
17
|
+
// Molecules
|
|
18
|
+
@import '../components/molecules/chat/AssistantMessage/AssistantMessage.scss';
|
|
19
|
+
@import '../components/molecules/chat/AssistantThinkingIndicator/AssistantThinkingIndicator.scss';
|
|
20
|
+
@import '../components/molecules/chat/ChatHeader/ChatHeader.scss';
|
|
21
|
+
@import '../components/molecules/chat/ChatInput/ChatInput.scss';
|
|
22
|
+
@import '../components/molecules/chat/FileViewer/FileViewer.scss';
|
|
23
|
+
@import '../components/molecules/chat/FullscreenViewer/FullscreenViewer.scss';
|
|
24
|
+
@import '../components/molecules/chat/MessageStatus/MessageStatus.scss';
|
|
25
|
+
@import '../components/molecules/chat/Modal/Modal.scss';
|
|
26
|
+
@import '../components/molecules/chat/UserAttachments/UserAttachments.scss';
|
|
27
|
+
@import '../components/molecules/chat/UserMessage/UserMessage.scss';
|
|
28
|
+
|
|
29
|
+
// Organisms
|
|
30
|
+
@import '../components/organisms/chat/Chat.scss';
|