TimeGrid sets days side by side under a column of hours. Each event is a card by its hours, clipped to each day it touches, and events that overlap share the width in lanes. A drag on empty time makes an event by quarter hours through forms::pen; a drag on an event's lower edge, on the day it ends, moves its end, each drag checked against its owner. The grid opens at half past seven, or an hour and a half before now when today is shown and that is later. CurrentTimeIndicator marks the minute now on today and moves with the clock. TimezoneOverlay adds another zone's hours beside the grid's. AllDayRow lays whole days across their columns in lanes. CalendarWeekView and CalendarDayView are one view of seven days or one: a header that steps and comes back to today, the days' names stacked so they fit narrow columns, the whole days, then the hours. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
12 KiB
12 KiB
Chapters 21–30
T21a Documents · Editing — src/documents
- RichTextEditor
- MarkdownEditor — visual, source, split
- BlockEditor
- Block types — paragraph, heading, list, todo, quote, code, divider, table, image, video, embed, math, callout, toggle, columns, synced; video and embed open as cards the app plays or shows
- BlockHandle → the block editor's handle, a
menus::OverflowMenuthat drags its block - SlashMenu →
/inBlockEditor - FloatingFormatToolbar →
overlays::FloatingToolbar - FixedFormatToolbar
- LinkEditor
- MentionMenu →
@inRichTextEditorandBlockEditor;forms::MentionInputin a field - EmojiAutocomplete → a colon and two letters in
RichTextEditorandBlockEditor - TableEditor → the block editor's table: rows and columns added and removed, cells merged across
- ImageEditorBlock → the block editor's picture: resized by its edges, aligned, captioned
- MathEditor / LatexBlock → the block editor's math block over
typography::Latex - MermaidBlock / DiagramBlock — host renders the SVG →
BlockEditor::diagrams - CodeBlockEditor → the block editor's code block
- TodoItem / Checklist
- PlaceholderText → each kind's hint in
BlockEditor - WordCount / CharacterCount →
WordCount, withlimitfor characters - ReadingTime
T21b Documents · Reading
- MarkdownRenderer
- DocumentViewer — host pages
- PDFViewer — host pages; thumbnails, search, zoom, notes →
documents::DocumentViewerwiththumbnails,find(aneditor::FindWidget) andnotes - EpubReader — host chapters
- OfficePreview — host pages →
documents::DocumentViewer - PageThumbnailList
- TableOfContents →
navigation::TableOfContents;MarkdownRenderer::sectionsandoutlinefeed it - DocumentOutline →
navigation::TableOfContents - Footnote
- Glossary / TooltipTerm
- ReadingProgress
- FocusMode / ZenMode →
documents::ZenMode - PrintPreview — host pages
T21c Documents · Knowledge
- PageTree →
lists::Tree, a page's emoji leading its label - Backlinks
- GraphView →
charts::NetworkGraph - PageCover / PageIcon
- PageProperties →
data_display::PropertyGrid - DatabaseView — table, board, gallery, calendar, timeline → lands with Project (T31): its board is the KanbanBoard, its calendar the CalendarMonthView (T30)
- TemplatePicker
- TrashBin
- VersionHistory
- PageHistoryDiff
- Favorites / Pinned →
documents::Favorites
T22 Collaboration — src/collab
- PresenceAvatars
- RemoteCursor → over a
forms::TextInput, placed where its offset sits as the field paints - RemoteSelection → over a
forms::TextInput, fromTextInput::bounds_for_range - CommentThread
- CommentBubble / CommentMarker →
collab::CommentMarker, its thread in anoverlays::Popover - CommentSidebar
- Reply / ReactionPicker
- Reactions
- Annotation / Highlight →
collab::AnnotatedText; a plain mark istypography::Highlight - SuggestionMode → edits become suggestions through
collab::suggested - TrackChanges
- ShareDialog → with
collab::LinkAccessfor who the link lets in - PermissionSelect
- InviteInput → a
forms::TagInputthat checks each address - AccessList
- ActivityLog →
data_display::ActivityFeed - FollowMode
- LiveIndicator
T23a AI Chat · Messages — src/chat
- ChatContainer
- MessageList — virtualized, stick to bottom, new-message hint
- MessageBubble — user, assistant, system, error
- MessageAvatar
- MessageHeader
- MessageFooter
- StreamingText
- StreamingMarkdown
- StreamingCursor
- CodeBlock — language, copy, download, run, fold, apply
- MathBlock →
typography::Latex - TableBlock →
documents::MarkdownRenderer - MermaidRenderer → the host draws the SVG;
chat::ImageMessageshows it - ImageMessage / ImageGrid
- FileMessage
- AudioMessage
- VideoMessage — host frames
- LinkPreviewCard
- QuoteReply
- MessageActions
- MessageEditor
- BranchNavigator
- RegenerateButton →
chat::regenerate_button - StopGeneratingButton →
chat::stop_button - ContinueButton →
chat::continue_button - ErrorMessage / RetryMessage →
chat::ErrorMessage, overfeedback::Alert - RateLimitNotice
- FeedbackForm
- ScrollToBottomButton
- DateSeparator
- ThinkingBlock / ReasoningPanel →
chat::ThinkingBlock - ThinkingIndicator
- ThinkingDuration
T23b AI Chat · Citations
- CitationBadge / InlineCitation →
chat::CitationBadge, set after the words it cites - SourceCard
- SourceList / SourcesPanel →
chat::SourceList - SearchProgress
- WebResultCard
- DocumentChunkPreview
T23c AI Chat · Input
- PromptInput / Composer →
chat::PromptInput - AttachmentButton
- AttachmentChip / AttachmentPreview →
chat::AttachmentChip, a picture's thumbnail or a file's icon - PasteImagePreview → a pasted picture as an
AttachmentChip - DragDropOverlay
- VoiceInputButton
- VoiceWaveform / RecordingIndicator →
chat::VoiceWaveform, a red dot and the time with the bars - SlashCommandMenu →
/at the start ofchat::PromptInput, overforms::Suggestions - PromptTemplateMenu →
menus::DropdownMenuof saved prompts - ContextMentionMenu →
@inchat::PromptInput - ContextChips
- ModelSelector →
forms::Select, a note on each model - ModeSelector →
buttons::SegmentedControl - ToolToggleMenu →
menus::DropdownMenuwith check rows - TemperatureSlider / ParameterPanel →
chat::ParameterPanel - SystemPromptEditor
- TokenCounter
- ContextWindowMeter →
data_display::UsageBar - CostEstimator
- SendButton
- InputHint
T23d AI Chat · Conversations
- ConversationList
- ConversationItem
- ConversationSearch →
forms::SearchInputoverchat::ConversationList::query - NewChatButton →
chat::new_chat_button, abuttons::Button - FolderList / ProjectList →
chat::ProjectList - ProjectKnowledgePanel
- SharedConversationView
- ConversationExport
T23e AI Chat · Welcome
- WelcomeScreen / Greeting →
chat::WelcomeScreen, a greeting for the hour - SuggestionChips / StarterPrompts →
chat::SuggestionChips - PromptLibrary →
documents::TemplatePickerover saved prompts - FollowUpSuggestions
- CapabilityCards
T24a Agent · Tool calls — src/agent
- ToolCallCard
- ToolCallGroup
- ToolApprovalDialog
- PermissionPrompt
T24b Agent · Progress
- AgentStepList / TaskTimeline →
agent::AgentStepList, overdata_display::Timeline - AgentPlan / TodoList →
agent::AgentPlan, marks that pop in as items finish - AgentStatus
- AgentProgress
- SubAgentTree →
lists::Tree, a node per agent with its state as note and tone
T24c Agent · Changes
- FileChangeCard
- MultiFileDiff Review →
agent::MultiFileDiffReview, verdicts ascollab::Decision - CommandExecutionCard →
terminal::CommandBlock
T24d Agent · Previews
- BrowserPreview / ScreenshotStream — host frames →
agent::BrowserPreview, the frames so far along its foot - ComputerUseViewer — host frames
- ArtifactPanel
- ArtifactVersionSwitcher →
chat::BranchNavigator, inagent::ArtifactPanel - LivePreview — host content
T24e Agent · Environment
- SandboxStatus
- MCPServerList / ConnectorList →
agent::McpServerList - ToolRegistry Panel →
agent::ToolRegistry - MemoryPanel
- CheckpointList / Rewind →
agent::CheckpointList, Rewind on each point but the current
T24f Agent · Control and cost
- InterruptButton →
chat::stop_button - HumanInputRequest
- TokenUsageChart →
charts::BarChart(stacked) - CostBreakdown
- TraceViewer →
debug::TimelineProfiler(a track per depth) - EvalResultTable →
tables::DataTable(Tag and Progress cells)
T25a Generative · Prompt and settings — src/generative
- ImageGenerationPanel →
forms::Formof the fields below; Cmd-Enter generates - PromptEnhancer
- NegativePromptInput →
forms::TagInput - StylePresetPicker
- SeedInput
- AspectRatioPicker
T25b Generative · Queue and results
- GenerationQueue
- GenerationGrid
- VariationPicker
- ImageCompare →
data_display::BeforeAfter - ABCompareView
T25c Generative · Canvas
- InpaintCanvas
- MaskBrush
T25d Generative · Sound and motion
- AudioGenerationPlayer
- VideoGenerationTimeline
- TTSVoicePicker
T25e Generative · Models
- ModelCard
- ModelDownloadManager
- ModelStatus
- HardwareMonitor
- FineTuneJobCard
T25f Generative · Data and prompts
- DatasetViewer →
tables::DataTable, with row detail - EmbeddingVisualizer — 2D, 3D projection
- PromptPlayground
- PromptDiff / PromptVersionHistory
T26a Media · Images — src/media
- ImageViewer — zoom, pan, rotate, fit
- ImageThumbnail
- Lightbox / Gallery Viewer →
overlays::Lightbox
T26b Media · Crop and annotate
- ImageCropper — also T06e ImageUpload
- ImageAnnotator
T26c Media · Video
- VideoPlayer — host frames
- VideoTimeline / Scrubber
- VideoThumbnailStrip
- SubtitleEditor
T26d Media · Audio and controls
- AudioPlayer — host playback
- AudioWaveform
- AudioSpectrum / Visualizer
- VolumeControl
- PlaybackSpeedControl
- MediaControls
- Playlist
T26e Media · Capture and devices
- ScreenRecorderControls
- CameraPreview — host frames
- MicLevelMeter
- DeviceSelector
- 3DModelViewer — host frames, orbit input
T27a Files · Items — src/files
- FileIcon — one map from name to icon, in
primitives - FileItem
- FileList →
lists::DirectoryListing - FileGrid
T27b Files · Explorer
- FileExplorer — list, icons, columns
- FileBreadcrumb / PathBar →
navigation::Breadcrumb - FolderTree →
lists::FileTree - FileContextMenu →
menus::ContextMenu - RenameInline →
forms::InlineEdit - DragDropFiles →
forms::DropZone
T27c Files · Find and look
- FilePreview / QuickLook
- RecentFiles
- Favorites / Bookmarks →
documents::Favorites - FileSearch
- DuplicateFinder
- ArchiveViewer — host entries
- HexViewer →
debug::HexViewer
T27d Files · Transfers
- FileOperationProgress
- TransferQueue
- DownloadManager
- StorageUsage →
data_display::UsageBar
T28a Messaging · Channels — src/messaging
- ChannelList / ChatList
- ChannelItem
- DirectMessageItem
- ChannelHeader
- PinnedMessages
T28b Messaging · Messages
- ChatMessage
- MessageThread
- ThreadPanel
- UnreadDivider
- MessageReactions →
collab::Reactions - ReadReceipt
- TypingIndicator →
motion::TypingIndicator
T28c Messaging · People
- MemberList
- UserProfileCard
- OnlineStatus
- StatusSetter
T28d Messaging · Calls
- CallControls
- ParticipantTile
- VideoCallGrid — host frames
- ScreenShareView — host frames
- VoiceCallBar
- IncomingCallDialog
- HuddleIndicator
T28e Messaging · Stickers and GIFs
- StickerPicker
- GifPicker — host images
T29a Mail · Boxes and lists — src/mail
- MailboxList / FolderList
- MailList
- MailItem
- InboxZeroState →
feedback::EmptyState
T29b Mail · Reading
- MailReader
- MailThreadView
- QuotedText
T29c Mail · Writing
- MailComposer
- RecipientInput →
forms::TagInput, its suggestions and an address check - SignatureEditor
- ScheduleSend
T29d Mail · Sorting
- LabelPicker
- SnoozePicker
T30a Calendar · Months — src/calendar
- CalendarMonthView
- YearView
- MiniCalendar →
forms::Calendar - EventCard / EventChip
T30b Calendar · Time grid
- CalendarWeekView
- CalendarDayView
- TimeGrid — drag to create, resize
- AllDayRow
- CurrentTimeIndicator
- TimezoneOverlay
T30c Calendar · Agenda and people
- AgendaView
- EventPopover
- AttendeeList
T30d Calendar · Editing
- EventEditor
- RecurrenceEditor
- ReminderPicker
- AvailabilityPicker