ui: Constants refactor (#26908)

* refactor: Constants

* refactor: Constants/Enums cleanup

* refactor: Constant objects instead of multiple single value constants

* refactor: Cleanup constants
This commit is contained in:
Aleksander Grygier
2026-08-13 06:53:56 +02:00
committed by GitHub
parent 8e7f22b67e
commit e21152dc96
209 changed files with 1101 additions and 1137 deletions
@@ -0,0 +1,93 @@
import { FolderOpen, MessageSquare, Zap } from '@lucide/svelte';
import { FILE_TYPE_ICONS } from '$lib/constants';
import {
AttachmentAction,
AttachmentItemEnabledWhen,
AttachmentItemVisibleWhen,
AttachmentMenuItemId
} from '$lib/enums';
import type { AttachmentMenuItem } from '$lib/types';
/**
* File attachment menu items shown in both the desktop dropdown and mobile sheet.
* The "Tools" submenu is handled separately by each component.
*/
export const ATTACHMENT_FILE_ITEMS: AttachmentMenuItem[] = [
{
action: AttachmentAction.FILE_UPLOAD,
class: 'images-button',
disabledTooltip: 'Image processing requires a vision model',
enabledWhen: AttachmentItemEnabledWhen.HAS_VISION_MODALITY,
icon: FILE_TYPE_ICONS.image,
id: AttachmentMenuItemId.IMAGES,
label: 'Images'
},
{
action: AttachmentAction.FILE_UPLOAD,
class: 'audio-button',
disabledTooltip: 'Audio files processing requires an audio model',
enabledWhen: AttachmentItemEnabledWhen.HAS_AUDIO_MODALITY,
icon: FILE_TYPE_ICONS.audio,
id: AttachmentMenuItemId.AUDIO,
label: 'Audio Files'
},
{
action: AttachmentAction.FILE_UPLOAD,
class: 'video-button',
disabledTooltip: 'Video files processing requires a video model',
enabledWhen: AttachmentItemEnabledWhen.HAS_VIDEO_MODALITY,
icon: FILE_TYPE_ICONS.video,
id: AttachmentMenuItemId.VIDEO,
label: 'Video Files'
},
{
action: AttachmentAction.FILE_UPLOAD,
enabledWhen: AttachmentItemEnabledWhen.ALWAYS,
icon: FILE_TYPE_ICONS.text,
id: AttachmentMenuItemId.TEXT,
label: 'Text Files'
},
{
action: AttachmentAction.FILE_UPLOAD,
disabledTooltip: 'PDFs will be converted to text. Image-based PDFs may not work properly.',
enabledWhen: AttachmentItemEnabledWhen.ALWAYS,
hasEnabledTooltip: true,
icon: FILE_TYPE_ICONS.pdf,
id: AttachmentMenuItemId.PDF,
label: 'PDF Files'
}
];
export const ATTACHMENT_EXTRA_ITEMS: AttachmentMenuItem[] = [];
export const ATTACHMENT_PROMPT_ITEMS: AttachmentMenuItem[] = [
{
action: AttachmentAction.SYSTEM_PROMPT_CLICK,
enabledWhen: AttachmentItemEnabledWhen.ALWAYS,
hasEnabledTooltip: true,
icon: MessageSquare,
id: AttachmentMenuItemId.SYSTEM_MESSAGE,
label: 'System Message'
},
{
action: AttachmentAction.MCP_PROMPT_CLICK,
enabledWhen: AttachmentItemEnabledWhen.ALWAYS,
icon: Zap,
id: AttachmentMenuItemId.MCP_PROMPT,
label: 'MCP Prompt',
visibleWhen: AttachmentItemVisibleWhen.HAS_MCP_PROMPTS_SUPPORT
}
];
export const ATTACHMENT_MCP_ITEMS: AttachmentMenuItem[] = [
{
action: AttachmentAction.MCP_RESOURCES_CLICK,
enabledWhen: AttachmentItemEnabledWhen.ALWAYS,
icon: FolderOpen,
id: AttachmentMenuItemId.MCP_RESOURCES,
label: 'MCP Resources',
visibleWhen: AttachmentItemVisibleWhen.HAS_MCP_RESOURCES_SUPPORT
}
];
export const ATTACHMENT_TOOLTIP_TEXT = 'Add files, prompts, tools or MCP Servers';