import type { LeftToolbarItemId, RightToolbarItemId, ToolbarItemConfig } from './types'; const DEFAULT_LEFT_IDS: LeftToolbarItemId[] = ['search', 'zap', 'lightbulb']; const DEFAULT_RIGHT_IDS: RightToolbarItemId[] = ['projectSettings', 'tag', 'chip', 'camera', 'image', 'attach', 'mic']; const DEFAULT_LEFT_LABELS: Record = { search: 'Chat mode', zap: 'Deep Search', lightbulb: 'Build mode', template: 'Template', }; const DEFAULT_RIGHT_LABELS: Record = { projectSettings: 'Project settings', tag: 'Enhance your prompt with AI', chip: 'Configure chat model', camera: 'Capture image', image: 'Insert image', attach: 'Attach file', mic: 'Mic / Send', }; export type LeftItemOverrides = Partial< Record, 'id'>>> >; export type RightItemOverrides = Partial< Record, 'id'>>> >; /** * Build default left toolbar items (search, zap, lightbulb). Omit or set enabled: false to hide. * Override label, enabled, active, onClick, icon, customButton per id. */ export function getDefaultLeftItems(overrides?: LeftItemOverrides): ToolbarItemConfig[] { return DEFAULT_LEFT_IDS.map((id) => { const o = overrides?.[id]; return { id, label: o?.label ?? DEFAULT_LEFT_LABELS[id], enabled: o?.enabled ?? true, disabled: o?.disabled, loading: o?.loading, active: o?.active, onClick: o?.onClick, icon: o?.icon, customButton: o?.customButton, }; }); } /** * Build default right toolbar items (projectSettings, tag, chip, camera, image, attach, mic). * projectSettings is disabled by default; pass projectSettings: { enabled: true, onClick } to show. * Override label, enabled, disabled, loading, active, onClick, icon, customButton per id. */ export function getDefaultRightItems(overrides?: RightItemOverrides): ToolbarItemConfig[] { return DEFAULT_RIGHT_IDS.map((id) => { const o = overrides?.[id]; const defaultEnabled = id === 'projectSettings' ? false : true; return { id, label: o?.label ?? DEFAULT_RIGHT_LABELS[id], enabled: o?.enabled ?? defaultEnabled, disabled: o?.disabled, loading: o?.loading, active: o?.active, onClick: o?.onClick, icon: o?.icon, customButton: o?.customButton, }; }); }