Files
Ely-GPUI-Components/tasks/ch31-43.md
T
ZacharyZhang-NYandClaude Opus 5.5 f3822a8d98 Canvas · Graphs and boards: node graph, flow chart, mind map, whiteboard
NodeGraph joins Nodes by wires between typed Ports: a title drags a
node, a drag out of an output lands on an input of the same kind, an
input takes one wire, and a press on a wired input lifts its wire.
Links join shapes on the plane and follow them, straight or at right
angles, with an arrow and words; the Connector tool draws them and the
Note tool drops a sticky note. A double press with Select writes on a
shape. FlowChart draws Steps as ellipses, boxes and diamonds with their
words. MindMap lays topics out from a root, half to each side, and asks
the owner to add, remove and rename by key. Whiteboard keeps its own
tool, view and selection over a board it hands back after each change.
Painting moves to canvas::paint; a press on the tool layer goes through
canvas::press, and the layer focuses itself and asks to delete.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 08:22:54 -04:00

312 lines
8.1 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 31–43
## T31a Project · Tasks — `src/project`
- [x] PriorityIndicator
- [x] IssueIdBadge
- [x] StatusSelect
- [x] AssigneePicker
- [x] DueDatePicker → `forms::DatePicker`
- [x] TaskItem — check, priority, due date, assignee
- [x] TaskList
- [x] SubtaskList → `documents::Checklist`, which gains a field to add one
## T31b Project · Issues and boards
- [x] IssueCard
- [x] LabelManager
- [x] KanbanBoard / KanbanColumn / KanbanCard
- [x] Sprint Board → `project::KanbanBoard`
- [x] TaskDetailPanel
## T31c Project · Plans
- [x] GanttChart / TimelineView → `charts::GanttChart`
- [x] Roadmap
- [x] Burndown Chart → `charts::BurndownChart`, on the charts' scales and paint
- [x] MilestoneProgress
- [x] WorkloadView
## T31d Project · Time and databases
- [x] TimeTracker
- [x] Pomodoro Timer
- [x] DatabaseView (from T21c) — table, board, gallery, calendar, timeline
## T32a Canvas · Plane — `src/canvas`
- [x] InfiniteCanvas
- [x] CanvasGrid / Guides
- [x] Ruler
- [x] ZoomControls / ZoomIndicator
- [x] MiniMap
- [x] ArtboardFrame
## T32b Canvas · Tools
- [x] SelectionBox
- [x] TransformHandles
- [x] SnapIndicator
- [x] ToolPalette
- [x] ShapeTools — rect, ellipse, polygon, line, arrow
- [x] PenTool / PathEditor
- [x] TextTool
- [x] BrushTool / BrushSettings
- [x] HistoryPanel
## T32c Canvas · Panels
- [x] LayerPanel
- [x] AssetPanel
- [x] InspectorPanel
- [x] AlignmentToolbar
- [x] ColorPanel
- [x] GradientPanel → `forms::GradientEditor`
- [x] ShadowEditor
- [x] BorderEditor
- [x] TypographyPanel
- [x] ConstraintsEditor
- [x] AutoLayoutControls
- [x] ExportPanel
## T32d Canvas · Graphs and boards
- [x] NodeEditor / NodeGraph
- [x] Node / Port / Edge / Connection
- [x] FlowChart / DiagramEditor
- [x] MindMap
- [x] Whiteboard
- [x] StickyNote
- [x] Connector Line
## 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::Combobox::languages` (T06f)
- [ ] 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 → `overlays::Tour` (T09b)
- [ ] 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; scripted input since T01