T00 foundation: theme, motion, assets, icon, buttons, gallery

Theme tokens in light and dark with high contrast, a palette cross-fade,
motion curves and a damped spring, embedded Lucide icons with Inter and
JetBrains Mono, Icon, Button, IconButton, and a gallery that captures
its own window. Reviewed by codex gpt-6-astra (max): PASS in round 3.
This commit is contained in:
ZacharyZhang-NY committed 2026-09-24 23:59:55 -04:00
commit abf4cbcfc6
258 files changed
+16908

No files matched your search

+365
View File
@@ -0,0 +1,365 @@
# Chapters 1–10
## T01 Primitives — `src/primitives`
- [ ] Box / View — native `div()`
- [ ] Text — native: strings and `StyledText` are elements
- [x] Icon (T00)
- [x] IconSet / IconRegistry (T00)
- [ ] Svg — native `svg()`
- [ ] Image — loading, failed, placeholder over `img()`
- [ ] Canvas — native `canvas()`
- [ ] Divider / Separator
- [ ] Spacer — native `div().flex_1()`
- [ ] Portal — native `deferred(anchored())`
- [ ] Overlay / Backdrop
- [ ] Slot — native `impl IntoElement` params and `ParentElement`
- [ ] Show / When — native `.when()` / `.when_some()`
- [ ] For / Each — native `.children(iter)`
- [ ] Fragment — native: children take iterators
- [ ] VisuallyHidden — blocked: gpui 0.2.2 has no accessibility tree
- [ ] FocusRing
- [ ] FocusScope / FocusTrap
- [ ] ClickOutside — native `on_mouse_down_out`
- [ ] HoverArea — native `on_hover` / `.hover()`
- [ ] Pressable — press state, long press
- [ ] KeyboardHandler — native `on_key_down` / `on_action`
- [ ] Measure
- [ ] ResizeObserver → `primitives::Measure`
- [ ] IntersectionObserver
- [ ] Clipboard — native `write_to_clipboard` / `read_from_clipboard`
- [ ] Tooltip Trigger — owns `Tooltip`: delay, follow mouse, rich content
## T02 Typography — `src/typography`
- [ ] Heading (H1–H6)
- [ ] Title / Subtitle
- [ ] Paragraph
- [ ] Label
- [ ] Caption
- [ ] Overline
- [ ] Code
- [ ] Kbd — ⌘ / Ctrl by platform
- [ ] KbdCombo
- [ ] Blockquote
- [ ] Highlight / Mark
- [ ] Truncate — native `.truncate()`
- [ ] LineClamp — native `.line_clamp(n)`
- [ ] MiddleEllipsis
- [ ] EllipsisTooltip
- [ ] Link
- [ ] ExternalLink
- [ ] RelativeTime
- [ ] DateTimeText
- [ ] NumberText
- [ ] CurrencyText
- [ ] PercentText
- [ ] FileSizeText
- [ ] DurationText
- [ ] PluralText
- [ ] CopyableText
- [ ] SelectableText — prove: selection over `StyledText` layout
- [ ] Emoji — shortcodes
- [ ] Latex / MathInline — prove: TeX subset
- [ ] AnimatedNumber
- [ ] Typewriter
- [ ] GradientText — per-glyph tonal ramp
- [ ] ShimmerText
## T03 Layout — `src/layout`
- [ ] Stack / HStack / VStack
- [ ] Flex — native `.flex()`
- [ ] Grid / GridItem — native `.grid()`, `.col_span()`
- [ ] SimpleGrid
- [ ] Masonry
- [ ] Center — native `.flex().items_center().justify_center()`
- [ ] Container
- [ ] AspectRatio
- [ ] Inset / Padding — native `.p_*()`
- [ ] Wrap — native `.flex_wrap()`
- [ ] Absolute / Positioned — native `.absolute()`
- [ ] Layer / ZStack
- [ ] ScrollArea
- [ ] Scrollbar
- [ ] ScrollShadow
- [ ] ScrollToTop
- [ ] StickyHeader
- [ ] SplitPane — horizontal, vertical, nested
- [ ] ResizablePanel / ResizablePanelGroup → `layout::SplitPane`
- [ ] ResizeHandle
- [ ] Collapsible
- [ ] Accordion / AccordionItem
- [ ] Card / CardHeader / CardBody / CardFooter
- [ ] Panel / PanelHeader
- [ ] Section / SectionHeader
- [ ] Group / Fieldset
- [ ] Frame
- [ ] Well
- [ ] Sidebar
- [ ] Drawer
- [ ] Sheet
- [ ] Page / PageHeader / PageContent
- [ ] AppShell
- [ ] MasterDetail
- [ ] ThreeColumnLayout → `layout::SplitPane`
- [ ] Dock / DockPanel
- [ ] DockZone / DropIndicator
- [ ] FloatingPanel
- [ ] Pane / PaneGroup
- [ ] Workspace — versioned layout snapshot
- [ ] Viewport
## T04 Window & Shell — `src/shell`
- [ ] TitleBar
- [ ] WindowControls — macOS, Windows, Linux
- [ ] TrafficLights → `shell::WindowControls`
- [ ] WindowDragRegion — native `window_control_area`
- [ ] WindowResizeBorder — prove: client-side decorations
- [ ] MenuBar
- [ ] NativeMenu — native `cx.set_menus()`
- [ ] Toolbar / ToolbarGroup / ToolbarSeparator
- [ ] StatusBar / StatusBarItem
- [ ] ActivityBar
- [ ] NavigationRail → `shell::ActivityBar`
- [ ] TabBar
- [ ] SplashScreen
- [ ] AboutDialog
- [ ] TrayIcon / TrayMenu — prove
- [ ] DockBadge — prove
- [ ] JumpList — native `cx.set_dock_menu()`
- [ ] SystemNotification — prove
- [ ] MultiWindow Manager
- [ ] WindowSwitcher
- [ ] QuickLauncher
- [ ] MiniWindow / CompactMode
- [ ] AlwaysOnTop — native `WindowKind::PopUp`
- [ ] PictureInPicture — host content
- [ ] UpdateBanner / UpdateDialog
- [ ] CrashReporter
- [ ] OfflineIndicator
- [ ] ZoomControl
## T05 Buttons & Actions — `src/buttons`
- [x] Button (T00)
- [x] IconButton (T00)
- [ ] ButtonGroup
- [ ] SplitButton
- [ ] DropdownButton / MenuButton
- [ ] ToggleButton
- [ ] ToggleGroup
- [ ] SegmentedControl
- [ ] FloatingActionButton
- [ ] LoadingButton → `buttons::Button` loading state
- [ ] ConfirmButton — hold or click twice
- [ ] HoldToConfirm → `buttons::ConfirmButton`
- [ ] CopyButton
- [ ] ShareButton
- [ ] CloseButton
- [ ] BackButton
- [ ] MoreButton
- [ ] ActionBar
- [ ] BulkActionBar
- [ ] ActionSheet
- [ ] QuickActions
- [ ] ShortcutHint
## T06a Forms · Text — `src/forms`
- [ ] Input / TextField
- [ ] TextArea
- [ ] PasswordInput
- [ ] SearchInput
- [ ] NumberInput
- [ ] ScrubInput
- [ ] CurrencyInput
- [ ] PercentInput
- [ ] UnitInput
- [ ] EmailInput
- [ ] UrlInput
- [ ] PhoneInput
- [ ] MaskedInput
- [ ] PinInput / OTPInput
- [ ] InlineEdit / EditableText
- [ ] InputGroup / InputAddon
- [ ] ClearableInput → `forms::Input`
- [ ] AutoResizeInput → `forms::Input`
- [ ] MentionInput
- [ ] HashtagInput
- [ ] TagInput / TokenInput
- [ ] KeyValueInput
- [ ] ListInput
- [ ] PathInput — native dialog via `prompt_for_paths`
- [ ] RegexInput
- [ ] ExpressionInput
- [ ] HotkeyInput / ShortcutRecorder
## T06b Forms · Selection
- [ ] Checkbox
- [ ] CheckboxGroup
- [ ] CheckboxCard
- [ ] Radio / RadioGroup
- [ ] RadioCard
- [ ] Switch / Toggle
- [ ] Select
- [ ] NativeSelect — blocked: gpui 0.2.2 has no native popup menu
- [ ] Combobox
- [ ] Autocomplete
- [ ] MultiSelect
- [ ] CascadeSelect / Cascader
- [ ] TreeSelect
- [ ] TransferList
- [ ] ListBox
- [ ] ChoiceChips / FilterChips
- [ ] Rating
- [ ] Slider
- [ ] RangeSlider
- [ ] VerticalSlider → `forms::Slider`
- [ ] Knob / Dial
- [ ] Stepper
## T06c Forms · Date & Time
- [ ] Calendar
- [ ] DatePicker
- [ ] DateRangePicker
- [ ] TimePicker
- [ ] DateTimePicker
- [ ] MonthPicker / YearPicker / QuarterPicker
- [ ] WeekPicker
- [ ] RelativeDatePicker
- [ ] TimezoneSelect
- [ ] DurationPicker
- [ ] CronEditor
## T06d Forms · Color
- [ ] ColorPicker — HSV, RGB, HEX, alpha
- [ ] ColorSwatch
- [ ] ColorPalette
- [ ] EyeDropper — prove: `NSColorSampler`
- [ ] GradientEditor
## T06e Forms · Files
- [ ] FilePicker / FileInput
- [ ] FolderPicker
- [ ] DropZone
- [ ] UploadList
- [ ] ImageUpload — preview, crop
- [ ] AvatarUpload
## T06f Forms · Other
- [ ] SignaturePad
- [ ] CodeInput
- [ ] JsonInput
- [ ] FontPicker
- [ ] IconPicker
- [ ] EmojiPicker
- [ ] LanguageSelect
- [ ] CountrySelect
- [ ] CurrencySelect
## T06g Forms · Structure
- [ ] Form
- [ ] FormField
- [ ] FormLabel
- [ ] FormDescription / HelperText
- [ ] FormError / ValidationMessage
- [ ] FormSection
- [ ] FormActions
- [ ] FieldArray
- [ ] InlineForm
- [ ] WizardForm / MultiStepForm
- [ ] DirtyIndicator
## T07 Navigation — `src/navigation`
- [ ] Tabs — top, left, bottom
- [ ] EditorTabs
- [ ] TabOverflowMenu
- [ ] Breadcrumb
- [ ] Pagination
- [ ] LoadMore
- [ ] Stepper / Steps / Wizard — as `Steps`
- [ ] Sidebar Navigation / NavItem / NavGroup
- [ ] NavigationMenu
- [ ] ActivityBar Item → `shell::ActivityBar`
- [ ] BackForwardNavigation
- [ ] History Navigation → `navigation::BackForwardNavigation`
- [ ] Anchor / TableOfContents
- [ ] JumpTo / GoToLine
- [ ] CommandPalette
- [ ] QuickOpen
- [ ] QuickSwitcher
- [ ] SearchPalette
- [ ] SpotlightSearch → `navigation::SearchPalette`
- [ ] Tour / Onboarding
## T08 Menus — `src/menus`
- [ ] Menu / MenuItem / MenuGroup / MenuSeparator
- [ ] SubMenu
- [ ] CheckboxMenuItem
- [ ] RadioMenuItem
- [ ] MenuItemShortcut
- [ ] MenuItemIcon
- [ ] ContextMenu
- [ ] DropdownMenu
- [ ] MenuBar Menu → `shell::MenuBar`
- [ ] OverflowMenu
- [ ] MegaMenu
- [ ] SearchableMenu
- [ ] PieMenu / RadialMenu
## T09 Overlays — `src/overlays`
- [ ] Tooltip → `primitives::Tooltip`
- [ ] Popover
- [ ] HoverCard
- [ ] Dialog / Modal
- [ ] AlertDialog
- [ ] ConfirmDialog
- [ ] PromptDialog
- [ ] FullscreenDialog
- [ ] Sheet → `layout::Sheet`
- [ ] Drawer → `layout::Drawer`
- [ ] Lightbox
- [ ] Spotlight / Coachmark
- [ ] FloatingToolbar
- [ ] Callout / Peek
- [ ] DropdownPanel → `overlays::Popover`
- [ ] InlinePopup → `overlays::Popover`
- [ ] ToastViewport
## T10 Feedback — `src/feedback`
- [ ] Toast — success, error, warning, info, action, undo
- [ ] Notification
- [ ] NotificationCenter
- [ ] Alert
- [ ] Banner
- [ ] Callout / Admonition
- [ ] InlineMessage
- [ ] StatusMessage
- [ ] Snackbar → `feedback::Toast`
- [ ] UndoToast → `feedback::Toast`
- [ ] ErrorView
- [ ] ErrorBoundary — renders and logs a `Result` error; never catches panics
- [ ] NotFound / 404 → `feedback::ErrorView`
- [ ] NoPermission / 403 → `feedback::ErrorView`
- [ ] Maintenance → `feedback::ErrorView`
- [ ] Offline → `feedback::ErrorView`
- [ ] EmptyState
- [ ] Result
- [ ] ConfirmationCard
- [ ] SavingIndicator
- [ ] SyncStatus
- [ ] ConnectionStatus
- [ ] Countdown
- [ ] Timer
+361
View File
@@ -0,0 +1,361 @@
# Chapters 11–20
## T11a Loading — `src/motion`
- [ ] Spinner — ring, dots, bars, pulse, orbit, wave
- [ ] DotsLoader → `motion::Spinner`
- [ ] BarsLoader → `motion::Spinner`
- [ ] PulseLoader → `motion::Spinner`
- [ ] RingLoader → `motion::Spinner`
- [ ] OrbitLoader → `motion::Spinner`
- [ ] WaveLoader → `motion::Spinner`
- [ ] Skeleton / SkeletonText / SkeletonAvatar / SkeletonCard / SkeletonTable
- [ ] Shimmer
- [ ] ProgressBar — determinate, indeterminate, segmented, buffered
- [ ] ProgressCircle / ProgressRing
- [ ] StepProgress
- [ ] LoadingOverlay
- [ ] LoadingScreen
- [ ] InlineLoader → `motion::Spinner`
- [ ] LazyLoad
- [ ] Suspense / AsyncView
- [ ] RefreshIndicator
- [ ] TypingIndicator
## T11b Motion
- [ ] Transition — fade, slide, scale, collapse
- [ ] AnimatePresence
- [ ] Motion
- [ ] Spring
- [ ] Stagger
- [ ] Reorder
- [ ] Flip
- [ ] CountUp → `typography::AnimatedNumber`
- [ ] Marquee
- [ ] Ripple
- [ ] Confetti
- [ ] Glow / Pulse
- [ ] Blink / Flash
- [ ] Shake
- [ ] ParticleBackground
- [ ] AnimatedGradient — slow tonal drift
- [ ] Lottie Player — prove: `rlottie` frames
## T12 Data Display — `src/data_display`
- [ ] Badge / CountBadge / DotBadge
- [ ] Tag / Chip
- [ ] Avatar — image, initials, icon, presence
- [ ] AvatarGroup
- [ ] UserChip
- [ ] Statistic / KPI Card
- [ ] Metric
- [ ] TrendIndicator
- [ ] DescriptionList
- [ ] PropertyGrid
- [ ] KeyValueList → `data_display::DescriptionList`
- [ ] InfoRow → `data_display::DescriptionList`
- [ ] Timeline / TimelineItem
- [ ] ActivityFeed
- [ ] Changelog
- [ ] Carousel
- [ ] Gallery
- [ ] Accordion list → `layout::Accordion`
- [ ] Card Grid → `layout::SimpleGrid`
- [ ] QRCode
- [ ] Barcode
- [ ] ColorSwatch display → `forms::ColorSwatch`
- [ ] Meter
- [ ] Gauge
- [ ] UsageBar
- [ ] Rating display → `forms::Rating`
- [ ] Comparison
- [ ] BeforeAfter
- [ ] Watermark
## T13 Lists & Trees — `src/lists`
- [ ] List / ListItem
- [ ] VirtualList — native `list()` / `uniform_list()`, themed rows
- [ ] InfiniteList
- [ ] SortableList
- [ ] SelectableList — single, multi, shift range
- [ ] GroupedList — sticky group headers
- [ ] SectionList → `lists::GroupedList`
- [ ] ReorderableList → `lists::SortableList`
- [ ] SwipeableListItem — prove: horizontal trackpad scroll
- [ ] Tree / TreeView
- [ ] VirtualTree → `lists::Tree`
- [ ] FileTree
- [ ] CheckboxTree
- [ ] Outline
- [ ] NestedList → `lists::Outline`
- [ ] DirectoryListing
- [ ] Menu List → `menus::Menu`
- [ ] Transfer List → `forms::TransferList`
## T14 Tables — `src/tables`
- [ ] Table
- [ ] DataTable — sort, filter, page, select
- [ ] VirtualTable → `tables::DataTable`
- [ ] DataGrid
- [ ] Spreadsheet — formula subset, merge, freeze, fill handle
- [ ] TreeTable
- [ ] PivotTable
- [ ] ColumnResizer
- [ ] ColumnReorder
- [ ] ColumnVisibility
- [ ] ColumnPinning
- [ ] RowSelection
- [ ] RowExpansion
- [ ] RowGrouping
- [ ] InlineRowEdit
- [ ] CellRenderer
- [ ] TableToolbar
- [ ] FilterBuilder
- [ ] SortBuilder
- [ ] AggregationFooter
- [ ] TableDensity
- [ ] ConditionalFormatting
- [ ] HeatmapTable
- [ ] ComparisonTable
## T15 Charts — `src/charts`
- [ ] LineChart
- [ ] AreaChart / StackedArea
- [ ] BarChart
- [ ] PieChart / DonutChart
- [ ] ScatterChart
- [ ] BubbleChart
- [ ] RadarChart
- [ ] HeatmapChart
- [ ] CalendarHeatmap
- [ ] Treemap
- [ ] Sunburst
- [ ] SankeyChart
- [ ] FunnelChart
- [ ] WaterfallChart
- [ ] BoxPlot
- [ ] Histogram
- [ ] ViolinPlot
- [ ] GanttChart
- [ ] NetworkGraph / ForceGraph
- [ ] ChordDiagram
- [ ] ParallelCoordinates
- [ ] Sparkline / SparkBar / SparkArea
- [ ] Bullet Chart
- [ ] ProgressChart
- [ ] RealtimeChart
- [ ] ChartLegend
- [ ] ChartTooltip
- [ ] ChartCrosshair
- [ ] ChartAxis / ChartGrid
- [ ] ChartZoom / Brush
- [ ] ChartAnnotation
- [ ] ChartExport — SVG and CSV
## T16a Finance · Market charts — `src/finance`
- [ ] CandlestickChart
- [ ] OHLCChart → `finance::CandlestickChart`
- [ ] HeikinAshiChart → `finance::CandlestickChart`
- [ ] LineQuoteChart
- [ ] VolumeChart
- [ ] DepthChart
- [ ] MarketProfile / VolumeProfile
- [ ] RenkoChart / PointAndFigure
- [ ] MultiChartLayout
- [ ] ChartSync
- [ ] TimeRangeSelector
- [ ] IntervalSelector
- [ ] ChartTypeSwitcher
## T16b Finance · Technical analysis
- [ ] IndicatorOverlay — MA, EMA, BOLL, VWAP
- [ ] IndicatorPane — MACD, RSI, KDJ, OBV
- [ ] IndicatorSelector
- [ ] DrawingTools
- [ ] DrawingToolbar
- [ ] CompareSymbol
- [ ] PriceAlertLine
## T16c Finance · Quotes & book
- [ ] Ticker / TickerTape
- [ ] QuoteCard
- [ ] PriceText
- [ ] PriceChangeBadge
- [ ] OrderBook
- [ ] Level2 Quotes
- [ ] TimeAndSales / TradeTape
- [ ] MarketDepthLadder / DOM
- [ ] SpreadIndicator
- [ ] BidAskBar
## T16d Finance · Trading
- [ ] OrderEntry / TradePanel
- [ ] QuickTradeButtons
- [ ] PositionTable
- [ ] OrderTable
- [ ] TradeHistoryTable
- [ ] PnLDisplay
- [ ] LeverageSlider
- [ ] MarginIndicator
- [ ] RiskMeter
- [ ] OrderConfirmDialog
- [ ] OptionChain
- [ ] GreeksTable
- [ ] PayoffDiagram
## T16e Finance · Markets & assets
- [ ] Watchlist
- [ ] SymbolSearch
- [ ] SymbolBadge
- [ ] MarketHeatmap
- [ ] SectorTreemap → `charts::Treemap`
- [ ] Screener / FilterPanel
- [ ] MarketOverview
- [ ] IndexCard
- [ ] MarketStatus
- [ ] TradingSessionClock
- [ ] EconomicCalendar
- [ ] EarningsCalendar
- [ ] NewsFeed
- [ ] SentimentGauge → `data_display::Gauge`
- [ ] PortfolioSummary
- [ ] AssetAllocationChart → `charts::PieChart`
- [ ] PerformanceChart — equity curve, drawdown
- [ ] DividendTable
- [ ] FinancialStatementTable
- [ ] CurrencyConverter
- [ ] CryptoWalletCard
- [ ] TransactionList
- [ ] Candle Countdown
## T17a Editor · Core — `src/editor`
- [ ] CodeEditor — highlight, multi-cursor, selection, undo, redo
- [ ] EditorGutter
- [ ] LineNumbers — absolute, relative
- [ ] FoldingControl
- [ ] Minimap
- [ ] Ruler / IndentGuide
- [ ] BracketMatcher / RainbowBrackets
- [ ] WhitespaceRenderer
- [ ] CursorRenderer — block, line, underline, blink
- [ ] SelectionHighlight
- [ ] MultiCursor
- [ ] VimModeIndicator
- [ ] StickyScroll
- [ ] Breadcrumb → `navigation::Breadcrumb`
- [ ] InlayHints
- [ ] CodeLens
- [ ] InlineDecoration
- [ ] GhostText
- [ ] InlineChat
- [ ] InlineDiff
- [ ] ReadOnlyBanner
## T17b Editor · Intelligence
- [ ] CompletionMenu
- [ ] SignatureHelp
- [ ] HoverInfo
- [ ] QuickFix / CodeActionMenu
- [ ] RenameInput
- [ ] PeekView → `overlays::Peek`
- [ ] ReferencesPanel
- [ ] SymbolOutline
- [ ] GoToSymbol
- [ ] CallHierarchy / TypeHierarchy
## T17c Editor · Search
- [ ] FindWidget
- [ ] ReplaceWidget → `editor::FindWidget`
- [ ] SearchPanel
- [ ] SearchResultItem
- [ ] SearchFilters
## T17d Editor · Panels
- [ ] ProblemsPanel / DiagnosticsList
- [ ] OutputPanel
- [ ] DebugConsole
- [ ] ExtensionsPanel / PluginList
- [ ] SettingsEditor — UI and JSON
- [ ] KeybindingsEditor
- [ ] ThemePreview
- [ ] WelcomePage
- [ ] RecentProjects
- [ ] ProjectSwitcher
- [ ] TaskRunner / RunConfiguration
## T17e Editor · Status items
- [ ] CursorPosition
- [ ] LanguageMode
- [ ] Encoding
- [ ] LineEnding
- [ ] IndentSettings
- [ ] BranchIndicator
- [ ] LspStatus
- [ ] NotificationBell
## T18 Terminal — `src/terminal`
- [ ] Terminal — prove: `alacritty_terminal` grid and PTY
- [ ] TerminalTabs → `navigation::EditorTabs`
- [ ] TerminalSplit → `layout::PaneGroup`
- [ ] TerminalToolbar
- [ ] TerminalSearch → `editor::FindWidget`
- [ ] TerminalLink
- [ ] ShellSelector
- [ ] CommandBlock
- [ ] CommandHistory
- [ ] AnsiText
- [ ] LogViewer
- [ ] ProcessList
## T19 Git — `src/git`
- [ ] DiffViewer — split, unified
- [ ] InlineDiff → `editor::InlineDiff`
- [ ] ThreeWayMerge
- [ ] ConflictResolver
- [ ] ChangesList
- [ ] CommitInput
- [ ] CommitGraph
- [ ] CommitList / CommitItem
- [ ] BranchSelector
- [ ] BranchList
- [ ] TagList
- [ ] StashList
- [ ] BlameView / GitBlameAnnotation
- [ ] FileHistory
- [ ] PullRequestCard
- [ ] ReviewComment
- [ ] DiffStat
- [ ] GitStatusBadge
## T20 Debug — `src/debug`
- [ ] DebugToolbar
- [ ] BreakpointList
- [ ] BreakpointGutter → `editor::EditorGutter`
- [ ] CallStack
- [ ] VariablesPanel
- [ ] WatchPanel
- [ ] ThreadList
- [ ] MemoryViewer / HexViewer
- [ ] Disassembly
- [ ] PerformanceProfiler / Flamegraph
- [ ] TimelineProfiler
- [ ] NetworkInspector
- [ ] ConsoleREPL → `editor::DebugConsole`
+334
View File
@@ -0,0 +1,334 @@
# Chapters 21–30
## T21a Documents · Editing — `src/documents`
- [ ] RichTextEditor
- [ ] MarkdownEditor — WYSIWYG, source, split
- [ ] BlockEditor
- [ ] Block types — paragraph, heading, list, todo, quote, code, divider, table, image, video, embed, math, callout, toggle, columns, synced
- [ ] BlockHandle
- [ ] SlashMenu
- [ ] FloatingFormatToolbar → `overlays::FloatingToolbar`
- [ ] FixedFormatToolbar
- [ ] LinkEditor
- [ ] MentionMenu
- [ ] EmojiAutocomplete
- [ ] TableEditor
- [ ] ImageEditorBlock
- [ ] MathEditor / LatexBlock
- [ ] MermaidBlock / DiagramBlock — host renders the SVG
- [ ] CodeBlockEditor
- [ ] TodoItem / Checklist
- [ ] PlaceholderText
- [ ] WordCount / CharacterCount
- [ ] ReadingTime
## T21b Documents · Reading
- [ ] MarkdownRenderer
- [ ] DocumentViewer — host pages
- [ ] PDFViewer — host pages; thumbnails, search, zoom, notes
- [ ] EpubReader — host chapters
- [ ] OfficePreview — host pages
- [ ] PageThumbnailList
- [ ] TableOfContents → `navigation::TableOfContents`
- [ ] DocumentOutline → `navigation::TableOfContents`
- [ ] Footnote
- [ ] Glossary / TooltipTerm
- [ ] ReadingProgress
- [ ] FocusMode / ZenMode
- [ ] PrintPreview — host pages
## T21c Documents · Knowledge
- [ ] PageTree
- [ ] Backlinks
- [ ] GraphView → `charts::NetworkGraph`
- [ ] PageCover / PageIcon
- [ ] PageProperties
- [ ] DatabaseView — table, board, gallery, calendar, timeline
- [ ] TemplatePicker
- [ ] TrashBin
- [ ] VersionHistory
- [ ] PageHistoryDiff
- [ ] Favorites / Pinned
## T22 Collaboration — `src/collab`
- [ ] PresenceAvatars
- [ ] RemoteCursor
- [ ] RemoteSelection
- [ ] CommentThread
- [ ] CommentBubble / CommentMarker
- [ ] CommentSidebar
- [ ] Reply / ReactionPicker
- [ ] Reactions
- [ ] Annotation / Highlight
- [ ] SuggestionMode
- [ ] TrackChanges
- [ ] ShareDialog
- [ ] PermissionSelect
- [ ] InviteInput
- [ ] 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 → `documents::MermaidBlock`
- [ ] ImageMessage / ImageGrid
- [ ] FileMessage
- [ ] AudioMessage
- [ ] VideoMessage — host frames
- [ ] LinkPreviewCard
- [ ] QuoteReply
- [ ] MessageActions
- [ ] MessageEditor
- [ ] BranchNavigator
- [ ] RegenerateButton
- [ ] StopGeneratingButton
- [ ] ContinueButton
- [ ] ErrorMessage / RetryMessage
- [ ] RateLimitNotice
- [ ] FeedbackForm
- [ ] ScrollToBottomButton
- [ ] DateSeparator
- [ ] ThinkingBlock / ReasoningPanel
- [ ] ThinkingIndicator
- [ ] ThinkingDuration
## T23b AI Chat · Citations
- [ ] CitationBadge / InlineCitation
- [ ] SourceCard
- [ ] SourceList / SourcesPanel
- [ ] SearchProgress
- [ ] WebResultCard
- [ ] DocumentChunkPreview
## T23c AI Chat · Input
- [ ] PromptInput / Composer
- [ ] AttachmentButton
- [ ] AttachmentChip / AttachmentPreview
- [ ] PasteImagePreview
- [ ] DragDropOverlay
- [ ] VoiceInputButton
- [ ] VoiceWaveform / RecordingIndicator
- [ ] SlashCommandMenu → `documents::SlashMenu`
- [ ] PromptTemplateMenu
- [ ] ContextMentionMenu
- [ ] ContextChips
- [ ] ModelSelector
- [ ] ModeSelector
- [ ] ToolToggleMenu
- [ ] TemperatureSlider / ParameterPanel
- [ ] SystemPromptEditor
- [ ] TokenCounter
- [ ] ContextWindowMeter
- [ ] CostEstimator
- [ ] SendButton
- [ ] InputHint
## T23d AI Chat · Conversations
- [ ] ConversationList
- [ ] ConversationItem
- [ ] ConversationSearch
- [ ] NewChatButton
- [ ] FolderList / ProjectList
- [ ] ProjectKnowledgePanel
- [ ] SharedConversationView
- [ ] ConversationExport
## T23e AI Chat · Welcome
- [ ] WelcomeScreen / Greeting
- [ ] SuggestionChips / StarterPrompts
- [ ] PromptLibrary
- [ ] FollowUpSuggestions
- [ ] CapabilityCards
## T24 Agent — `src/agent`
- [ ] ToolCallCard
- [ ] ToolCallGroup
- [ ] ToolApprovalDialog
- [ ] PermissionPrompt
- [ ] AgentStepList / TaskTimeline
- [ ] AgentPlan / TodoList
- [ ] AgentStatus
- [ ] AgentProgress
- [ ] SubAgentTree
- [ ] FileChangeCard
- [ ] MultiFileDiff Review
- [ ] CommandExecutionCard
- [ ] BrowserPreview / ScreenshotStream — host frames
- [ ] ComputerUseViewer — host frames
- [ ] ArtifactPanel
- [ ] ArtifactVersionSwitcher
- [ ] LivePreview — host content
- [ ] SandboxStatus
- [ ] MCPServerList / ConnectorList
- [ ] ToolRegistry Panel
- [ ] MemoryPanel
- [ ] CheckpointList / Rewind
- [ ] InterruptButton
- [ ] HumanInputRequest
- [ ] TokenUsageChart
- [ ] CostBreakdown
- [ ] TraceViewer
- [ ] EvalResultTable
## T25 Generative — `src/generative`
- [ ] ImageGenerationPanel
- [ ] GenerationQueue
- [ ] GenerationGrid
- [ ] VariationPicker
- [ ] PromptEnhancer
- [ ] NegativePromptInput
- [ ] StylePresetPicker
- [ ] SeedInput
- [ ] AspectRatioPicker
- [ ] InpaintCanvas
- [ ] MaskBrush
- [ ] ImageCompare → `data_display::BeforeAfter`
- [ ] AudioGenerationPlayer
- [ ] VideoGenerationTimeline
- [ ] TTSVoicePicker
- [ ] ModelCard
- [ ] ModelDownloadManager
- [ ] ModelStatus
- [ ] HardwareMonitor
- [ ] FineTuneJobCard
- [ ] DatasetViewer
- [ ] EmbeddingVisualizer — 2D, 3D projection
- [ ] PromptPlayground
- [ ] PromptDiff / PromptVersionHistory
- [ ] ABCompareView
## T26 Media — `src/media`
- [ ] ImageViewer — zoom, pan, rotate, fit
- [ ] ImageCropper
- [ ] ImageAnnotator
- [ ] ImageThumbnail
- [ ] Lightbox / Gallery Viewer → `overlays::Lightbox`
- [ ] VideoPlayer — host frames
- [ ] VideoTimeline / Scrubber
- [ ] VideoThumbnailStrip
- [ ] AudioPlayer — host playback
- [ ] AudioWaveform
- [ ] AudioSpectrum / Visualizer
- [ ] VolumeControl
- [ ] PlaybackSpeedControl
- [ ] MediaControls
- [ ] Playlist
- [ ] SubtitleEditor
- [ ] ScreenRecorderControls
- [ ] CameraPreview — host frames
- [ ] MicLevelMeter
- [ ] DeviceSelector
- [ ] 3DModelViewer — host frames, orbit input
## T27 Files — `src/files`
- [ ] FileExplorer — list, icons, columns
- [ ] FileGrid
- [ ] FileList
- [ ] FileItem
- [ ] FileIcon
- [ ] FilePreview / QuickLook
- [ ] FileBreadcrumb / PathBar → `navigation::Breadcrumb`
- [ ] FolderTree → `lists::FileTree`
- [ ] FileContextMenu → `menus::ContextMenu`
- [ ] RenameInline → `forms::InlineEdit`
- [ ] DragDropFiles → `forms::DropZone`
- [ ] FileOperationProgress
- [ ] TransferQueue
- [ ] DownloadManager
- [ ] StorageUsage → `data_display::UsageBar`
- [ ] RecentFiles
- [ ] Favorites / Bookmarks → `documents::Favorites`
- [ ] FileSearch
- [ ] DuplicateFinder
- [ ] ArchiveViewer — host entries
- [ ] HexViewer → `debug::HexViewer`
## T28 Messaging — `src/messaging`
- [ ] ChannelList / ChatList
- [ ] ChannelItem
- [ ] DirectMessageItem
- [ ] MessageThread
- [ ] ThreadPanel
- [ ] ChatMessage
- [ ] UnreadDivider
- [ ] MessageReactions → `collab::Reactions`
- [ ] ReadReceipt
- [ ] TypingIndicator → `motion::TypingIndicator`
- [ ] MemberList
- [ ] UserProfileCard
- [ ] OnlineStatus
- [ ] StatusSetter
- [ ] VoiceCallBar
- [ ] VideoCallGrid — host frames
- [ ] ScreenShareView — host frames
- [ ] CallControls
- [ ] ParticipantTile
- [ ] IncomingCallDialog
- [ ] StickerPicker
- [ ] GifPicker — host images
- [ ] PinnedMessages
- [ ] ChannelHeader
- [ ] HuddleIndicator
## T29 Mail — `src/mail`
- [ ] MailboxList / FolderList
- [ ] MailList
- [ ] MailItem
- [ ] MailReader
- [ ] MailComposer
- [ ] RecipientInput
- [ ] MailThreadView
- [ ] QuotedText
- [ ] SignatureEditor
- [ ] LabelPicker
- [ ] SnoozePicker
- [ ] ScheduleSend
- [ ] InboxZeroState
## T30 Calendar — `src/calendar`
- [ ] CalendarMonthView
- [ ] CalendarWeekView
- [ ] CalendarDayView
- [ ] AgendaView
- [ ] YearView
- [ ] MiniCalendar → `forms::Calendar`
- [ ] EventCard / EventChip
- [ ] EventEditor
- [ ] EventPopover
- [ ] TimeGrid — drag to create, resize
- [ ] AllDayRow
- [ ] CurrentTimeIndicator
- [ ] RecurrenceEditor
- [ ] AvailabilityPicker
- [ ] TimezoneOverlay
- [ ] ReminderPicker
- [ ] AttendeeList
+292
View File
@@ -0,0 +1,292 @@
# Chapters 31–43
## T31 Project — `src/project`
- [ ] KanbanBoard / KanbanColumn / KanbanCard
- [ ] TaskList
- [ ] TaskItem — check, priority, due date, assignee
- [ ] TaskDetailPanel
- [ ] SubtaskList
- [ ] GanttChart / TimelineView → `charts::GanttChart`
- [ ] Roadmap
- [ ] Sprint Board → `project::KanbanBoard`
- [ ] Burndown Chart
- [ ] PriorityIndicator
- [ ] StatusSelect
- [ ] AssigneePicker
- [ ] DueDatePicker → `forms::DatePicker`
- [ ] LabelManager
- [ ] IssueCard
- [ ] IssueIdBadge
- [ ] MilestoneProgress
- [ ] WorkloadView
- [ ] TimeTracker
- [ ] Pomodoro Timer
## T32 Canvas & Design — `src/canvas`
- [ ] InfiniteCanvas
- [ ] CanvasGrid / Guides
- [ ] Ruler
- [ ] SelectionBox
- [ ] TransformHandles
- [ ] SnapIndicator
- [ ] LayerPanel
- [ ] AssetPanel
- [ ] InspectorPanel
- [ ] AlignmentToolbar
- [ ] ToolPalette
- [ ] ZoomControls / ZoomIndicator
- [ ] MiniMap
- [ ] ArtboardFrame
- [ ] ShapeTools — rect, ellipse, polygon, line, arrow
- [ ] PenTool / PathEditor
- [ ] TextTool
- [ ] BrushTool / BrushSettings
- [ ] ColorPanel
- [ ] GradientPanel → `forms::GradientEditor`
- [ ] ShadowEditor
- [ ] BorderEditor
- [ ] TypographyPanel
- [ ] ConstraintsEditor
- [ ] AutoLayoutControls
- [ ] ExportPanel
- [ ] NodeEditor / NodeGraph
- [ ] Node / Port / Edge / Connection
- [ ] FlowChart / DiagramEditor
- [ ] MindMap
- [ ] Whiteboard
- [ ] StickyNote
- [ ] Connector Line
- [ ] HistoryPanel
## T33 DB & Dev Tools — `src/devtools`
- [ ] ConnectionManager
- [ ] ConnectionForm
- [ ] SchemaTree
- [ ] QueryEditor → `editor::CodeEditor`
- [ ] QueryResultGrid → `tables::DataGrid`
- [ ] QueryHistory
- [ ] QueryPlanViewer
- [ ] TableStructureEditor
- [ ] ERDiagram
- [ ] IndexManager
- [ ] RedisKeyBrowser
- [ ] DocumentViewer (MongoDB / JSON) → `devtools::JsonViewer`
- [ ] JsonViewer / JsonTree
- [ ] JsonEditor
- [ ] YamlViewer
- [ ] XmlViewer
- [ ] ApiRequestBuilder
- [ ] ResponseViewer
- [ ] HeadersTable
- [ ] QueryParamsEditor → `forms::KeyValueInput`
- [ ] EnvironmentSelector
- [ ] CollectionTree
- [ ] WebSocketConsole
- [ ] GraphQLExplorer
- [ ] RegexTester
- [ ] Base64 / Encoder
- [ ] ColorContrastChecker
- [ ] ContainerList
- [ ] PodList
- [ ] ResourceMonitor
## T34 Dashboard — `src/dashboard`
- [ ] Dashboard Grid
- [ ] Widget / DashboardCard
- [ ] StatCard → `data_display::Statistic`
- [ ] MetricsChart → `charts::LineChart`
- [ ] AlertList
- [ ] IncidentCard
- [ ] UptimeBar
- [ ] ServiceStatus
- [ ] HealthCheck Indicator
- [ ] LogStream → `terminal::LogViewer`
- [ ] TraceWaterfall → `agent::TraceViewer`
- [ ] EventStream
- [ ] ResourceGauge → `data_display::Gauge`
- [ ] SystemMonitor
- [ ] ProcessTable → `terminal::ProcessList`
- [ ] NetworkGraph (throughput) → `charts::RealtimeChart`
- [ ] MapView / GeoHeatmap → `maps::MapView`, `maps::GeoHeatmap` (T41)
- [ ] WorldMap → `maps::WorldMap` (T41)
- [ ] RefreshIntervalSelector
- [ ] DashboardFilterBar
## T35 Settings — `src/settings`
- [ ] SettingsLayout
- [ ] SettingsSection
- [ ] SettingsRow
- [ ] SettingsSearch
- [ ] ThemeSelector → `theme::ThemeSwitcher`
- [ ] AccentColorPicker
- [ ] FontSizeControl
- [ ] FontFamilySelect → `forms::FontPicker`
- [ ] DensitySelector
- [ ] LanguageSelector → `forms::LanguageSelect`
- [ ] KeyboardShortcutsList
- [ ] ShortcutEditor → `editor::KeybindingsEditor`
- [ ] ProxySettings
- [ ] StorageSettings / CacheClear
- [ ] PrivacySettings
- [ ] NotificationSettings
- [ ] StartupSettings
- [ ] ImportExportSettings
- [ ] ResetToDefault
- [ ] AdvancedSettings / FeatureFlags
- [ ] DeveloperMode Toggle
## T36 Account — `src/account`
- [ ] LoginForm
- [ ] SignupForm
- [ ] OAuthButtons
- [ ] MagicLinkForm
- [ ] TwoFactorInput
- [ ] ForgotPassword
- [ ] ProfileCard
- [ ] ProfileEditor
- [ ] AccountSwitcher
- [ ] WorkspaceSwitcher / OrgSwitcher
- [ ] UserMenu
- [ ] SessionList
- [ ] ApiKeyManager
- [ ] SubscriptionCard / PlanBadge
- [ ] UsageQuota
- [ ] BillingHistory
- [ ] PaymentMethodForm
- [ ] UpgradePrompt / Paywall
- [ ] TeamMemberTable
- [ ] RoleSelector
- [ ] InvitationList
## T37 Onboarding & Help — `src/onboarding`
- [ ] OnboardingWizard
- [ ] WelcomeTour → `navigation::Tour`
- [ ] Coachmark / Hotspot — Coachmark → `overlays::Spotlight`; Hotspot here
- [ ] FeatureHighlight / NewBadge
- [ ] Checklist (first-run tasks)
- [ ] HelpTooltip
- [ ] HelpPanel / DocsSidebar
- [ ] KeyboardShortcutCheatsheet
- [ ] WhatsNewDialog
- [ ] FeedbackWidget
- [ ] ContactSupport
- [ ] InlineHelp
- [ ] EmptyStateWithAction → `feedback::EmptyState`
## T38 Interaction — `src/interaction`
- [ ] Draggable — native `on_drag`
- [ ] Droppable / DropTarget — native `on_drop`, `drag_over`
- [ ] DragOverlay / DragPreview — native drag view
- [ ] DragGhost → DragPreview (native)
- [ ] Sortable / SortableContext
- [ ] Resizable
- [ ] Rotatable
- [ ] Selectable / SelectionArea
- [ ] RubberBandSelection → `interaction::SelectionArea`
- [ ] LongPress → `primitives::Pressable`
- [ ] DoubleClick — native `ClickEvent::click_count`
- [ ] Gesture — prove: wheel zoom, pinch, two-finger swipe
- [ ] PanZoom → `layout::Viewport`
- [ ] Hotkeys / KeyBinding — native `actions!`, `bind_keys`, `key_context`
- [ ] KeyChord — native multi-keystroke bindings
- [ ] Undo / Redo Manager
- [ ] InfiniteScroll Trigger → `lists::InfiniteList`
- [ ] VirtualScroller — native `list()` / `uniform_list()`
- [ ] ScrollSync
- [ ] Autofocus — native `window.focus()`
- [ ] RovingTabIndex
- [ ] TypeAhead
- [ ] FocusVisible → `primitives::FocusRing`
## T39 Theme — `src/theme`
- [x] ThemeProvider (T00)
- [ ] ThemeSwitcher
- [x] ColorTokens / DesignTokens (T00)
- [ ] ThemeEditor
- [ ] ThemeImporter — VS Code theme JSON
- [ ] SyntaxThemes
- [ ] IconThemeProvider
- [ ] DensityProvider (T00)
- [ ] RadiusProvider (T00)
- [ ] FontProvider (T00)
- [ ] HighContrastMode (T00)
- [ ] ReducedMotionProvider (T00)
- [ ] Platform Style
- [ ] VibrancyBackground / Mica / Acrylic — native `WindowBackgroundAppearance::Blurred`
- [x] Elevation / Shadow (T00)
## T40 i18n & a11y — `src/i18n`
- [ ] I18nProvider
- [ ] Trans / LocalizedText
- [ ] LocaleNumber / LocaleDate
- [ ] RTL layout — prove: mirrored stacks
- [ ] LiveRegion / Announcer — blocked: gpui 0.2.2 has no accessibility tree
- [ ] SkipLink
- [ ] AccessibleIcon — blocked: no accessibility tree
- [ ] AriaLabel helper — blocked: no accessibility tree
- [ ] KeyboardNavigationHelper
- [ ] ScreenReaderOnly — blocked: no accessibility tree
- [ ] ColorBlindSafe Palette
## T41 Maps — `src/maps`
- [ ] MapView — host tiles
- [ ] MapMarker
- [ ] MapPopup
- [ ] MapCluster
- [ ] RouteLine
- [ ] GeoJSON Layer
- [ ] ChoroplethMap
- [ ] LocationPicker
- [ ] CoordinateDisplay
- [ ] WorldMap (from T34)
- [ ] GeoHeatmap (from T34)
## T42 Misc — `src/misc`
- [ ] Clock / WorldClock
- [ ] Stopwatch
- [ ] Calculator
- [ ] UnitConverter
- [ ] QRCodeScanner — prove: host frames, `rqrr` decode
- [ ] BarcodeDisplay → `data_display::Barcode`
- [ ] Captcha
- [ ] Signature → `forms::SignaturePad`
- [ ] Rating Widget → `forms::Rating`
- [ ] Poll / Survey
- [ ] Quiz / Flashcard
- [ ] ChangeLog Viewer → `data_display::Changelog`
- [ ] LicenseViewer
- [ ] Terms / Consent Dialog
- [ ] CookieBanner
- [ ] WebView — prove: `wry`
- [ ] IframeEmbed / EmbedCard
- [ ] HTMLPreview → `misc::WebView`
- [ ] PrintButton — blocked: gpui 0.2.2 has no print API
- [ ] ExportDialog — PDF, PNG, CSV, JSON
- [ ] ImportDialog — field mapping
- [ ] CSVImporter
- [ ] ShareSheet
## T43 Library Tooling — `src/tooling`
- [ ] ComponentGallery / Storybook
- [ ] PlaygroundPanel
- [ ] InspectorOverlay
- [ ] FPSMeter / PerfOverlay
- [ ] RenderCounter
- [ ] EventLogger
- [ ] DesignTokenViewer
- [ ] IconBrowser
- [ ] A11yChecker — contrast audit
- [ ] ScreenshotTest Harness — self-capture