# Chapters 11–20 ## T11a Loading · Spinners & skeletons — `src/motion` - [x] Spinner — ring, dots, bars, pulse, orbit, wave; also the Button loading state (T05 LoadingButton) and T07a LoadMore → `motion::Spinner`, `buttons::Button::loading`, `navigation::LoadMore` - [x] DotsLoader → `motion::Spinner` - [x] BarsLoader → `motion::Spinner` - [x] PulseLoader → `motion::Spinner` - [x] RingLoader → `motion::Spinner` - [x] OrbitLoader → `motion::Spinner` - [x] WaveLoader → `motion::Spinner` - [x] Skeleton / SkeletonText / SkeletonAvatar / SkeletonCard / SkeletonTable → `motion::Skeleton` and kin - [x] Shimmer → `motion::Shimmer` ## T11b Loading · Progress & states - [x] ProgressBar — determinate, indeterminate, segmented, buffered — also T06e UploadList → `motion::ProgressBar`, `forms::UploadList` - [x] ProgressCircle / ProgressRing → `motion::ProgressRing` - [x] StepProgress → `navigation::Steps` - [x] LoadingOverlay → `motion::LoadingOverlay` - [x] LoadingScreen → `shell::SplashScreen`, which renders in place too - [x] InlineLoader → `motion::Spinner` - [x] LazyLoad → `motion::LazyLoad` - [x] Suspense / AsyncView → `feedback::Suspense`, `feedback::AsyncView`; a failure shows the error view, so they live with it - [x] RefreshIndicator → `motion::RefreshIndicator` - [x] TypingIndicator → `motion::TypingIndicator` ## T11c Motion · Presence & order — `src/motion` - [x] Transition — fade, slide, scale, collapse → `motion::Transition` fades, rises and slides; collapse is `layout::Collapsible`; scale is blocked: gpui 0.2.2 transforms only icons - [x] AnimatePresence → `motion::AnimatePresence` - [x] Motion → gpui's `with_animation`, timed by `motion::duration` and eased by the curves in `motion` - [x] Spring → `motion::spring` - [x] Stagger → `motion::Stagger` - [x] Reorder → `motion::Reorder` - [x] Flip → `motion::Flip` - [x] CountUp → `typography::AnimatedNumber`, counting up ## T11d Motion · Effects - [x] Marquee → `motion::Marquee` - [x] Ripple → `motion::Ripple` - [x] Confetti → `motion::Confetti` - [x] Glow / Pulse → `motion::Glow`, `motion::Pulse` - [x] Blink / Flash → `motion::Blink`, `motion::Flash` - [x] Shake → `motion::Shake` - [x] ParticleBackground → `motion::ParticleBackground` - [x] AnimatedGradient — slow tonal drift → `motion::AnimatedGradient` - [x] Lottie Player — blocked: gpui 0.2.2 paints paths without the clip masks, mattes, blend modes and radial gradients Lottie files lean on, so frames would come out wrong ## T12 Data Display — `src/data_display` - [ ] Badge / CountBadge / DotBadge - [ ] Tag / Chip - [ ] Avatar — image, initials, icon, presence — also T06e AvatarUpload - [ ] 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 — also T06b TreeSelect - [ ] 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`