claritykit-svelte
Version:
A comprehensive Svelte component library focused on accessibility, ADHD-optimized design, developer experience, and full SSR compatibility
159 lines • 4.05 kB
TypeScript
import type { HTMLAttributes } from 'svelte/elements';
export type ProcessingStatus = 'idle' | 'processing' | 'completed' | 'saved' | 'error';
export type CapturePriority = 'low' | 'normal' | 'high' | 'urgent';
export type CaptureSource = 'manual' | 'voice' | 'clipboard' | 'integration';
export interface CaptureMetadata {
timestamp: Date;
wordCount: number;
characterCount: number;
tags: string[];
context: Record<string, any>;
source: CaptureSource;
priority: CapturePriority;
sessionId?: string;
location?: {
lat: number;
lng: number;
accuracy: number;
};
device?: {
type: string;
os: string;
browser: string;
};
}
export interface CaptureContext {
projectId?: string;
workflowId?: string;
parentCaptureId?: string;
relatedConcepts?: string[];
currentActivity?: string;
mood?: string;
energy?: number;
}
export interface BrainDumpCaptureProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onCapture'> {
/**
* Placeholder text for the capture area
* @default "What's on your mind? Dump your thoughts here..."
*/
placeholder?: string;
/**
* Minimum length required for capture
* @default 10
*/
minLength?: number;
/**
* Maximum length allowed for capture
* @default 5000
*/
maxLength?: number;
/**
* Available tags for quick categorization
*/
tags?: string[];
/**
* Context information to attach to the capture
*/
context?: CaptureContext;
/**
* Enable auto-save functionality
* @default true
*/
autoSave?: boolean;
/**
* Delay in milliseconds before auto-saving
* @default 2000
*/
autoSaveDelay?: number;
/**
* Show metadata information (word count, etc.)
* @default true
*/
showMetadata?: boolean;
/**
* Show processing status indicator
* @default true
*/
showProcessingStatus?: boolean;
/**
* Callback when content is captured
*/
onCapture?: (data: {
content: string;
metadata: CaptureMetadata;
}) => void | Promise<void>;
/**
* Callback when content is processed
*/
onProcess?: (data: {
content: string;
tags: string[];
}) => void | Promise<void>;
/**
* Callback when content is saved
*/
onSave?: (data: {
content: string;
metadata: CaptureMetadata;
}) => void | Promise<void>;
/**
* Callback when a tag is added
*/
onTagAdd?: (tag: string) => void;
/**
* Callback when a tag is removed
*/
onTagRemove?: (tag: string) => void;
}
export interface BrainDumpIntegration {
/**
* Send to Oracle agent for processing
*/
sendToOracle: (content: string, metadata: CaptureMetadata) => Promise<OracleResponse>;
/**
* Route through Scribe agent for structuring
*/
routeToScribe: (content: string, tags: string[]) => Promise<ScribeResponse>;
/**
* Store in catalog system
*/
storeToCatalog: (data: CatalogEntry) => Promise<string>;
}
export interface OracleResponse {
intent: string;
suggestedWorkflow: string;
extractedConcepts: string[];
priority: CapturePriority;
delegatedTo?: string[];
}
export interface ScribeResponse {
structuredContent: {
title: string;
summary: string;
keyPoints: string[];
entities: Array<{
type: string;
value: string;
}>;
concepts: string[];
actions: Array<{
type: string;
description: string;
}>;
};
metadata: {
complexity: number;
sentiment: string;
category: string;
};
}
export interface CatalogEntry {
id?: string;
content: string;
metadata: CaptureMetadata;
processed?: ScribeResponse;
oracleAnalysis?: OracleResponse;
createdAt?: Date;
updatedAt?: Date;
}
//# sourceMappingURL=types.d.ts.map