Files
Ely-GPUI-Components/tasks/ch11-20.md
T

368 lines
9.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`