ProfileCard shows someone at a glance; ProfileEditor edits a profile seeded by its owner and saves once it changed, has a name and an email that reads, with a way to put it back. AccountSwitcher and WorkspaceSwitcher show the one in use in a row that opens a menu of the others and a way to add one; UserMenu opens from an avatar with who is signed in, the owner's rows and Sign out, through the new menus::menu_under. SessionList puts this device first, signs others out one by one or all after a second press. ApiKeyManager lists keys by their ends, makes one by name and shows its secret once.
327 lines
8.4 KiB
Markdown
327 lines
8.4 KiB
Markdown
# 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
|
||
|
||
## T33a DB & Dev Tools · Databases — `src/devtools`
|
||
|
||
- [x] ConnectionManager
|
||
- [x] ConnectionForm
|
||
- [x] SchemaTree
|
||
- [x] QueryEditor → `editor::CodeEditor`
|
||
- [x] QueryResultGrid → `tables::DataGrid`
|
||
- [x] QueryHistory
|
||
- [x] QueryPlanViewer
|
||
- [x] TableStructureEditor
|
||
- [x] ERDiagram
|
||
- [x] IndexManager
|
||
- [x] RedisKeyBrowser
|
||
|
||
## T33b DB & Dev Tools · Data formats
|
||
|
||
- [x] DocumentViewer (MongoDB / JSON) → `devtools::JsonViewer`
|
||
- [x] JsonViewer / JsonTree
|
||
- [x] JsonEditor
|
||
- [x] YamlViewer
|
||
- [x] XmlViewer
|
||
|
||
## T33c DB & Dev Tools · APIs
|
||
|
||
- [x] ApiRequestBuilder
|
||
- [x] ResponseViewer
|
||
- [x] HeadersTable
|
||
- [x] QueryParamsEditor → `forms::KeyValueInput`
|
||
- [x] EnvironmentSelector
|
||
- [x] CollectionTree
|
||
- [x] WebSocketConsole
|
||
- [x] GraphQLExplorer
|
||
|
||
## T33d DB & Dev Tools · Tools and machines
|
||
|
||
- [x] RegexTester
|
||
- [x] Base64 / Encoder
|
||
- [x] ColorContrastChecker
|
||
- [x] ContainerList
|
||
- [x] PodList
|
||
- [x] ResourceMonitor
|
||
|
||
## T34 Dashboard — `src/dashboard`
|
||
|
||
- [x] Dashboard Grid
|
||
- [x] Widget / DashboardCard
|
||
- [x] StatCard → `data_display::Statistic`
|
||
- [x] MetricsChart → `charts::LineChart`
|
||
- [x] AlertList
|
||
- [x] IncidentCard
|
||
- [x] UptimeBar
|
||
- [x] ServiceStatus
|
||
- [x] HealthCheck Indicator
|
||
- [x] LogStream → `terminal::LogViewer`
|
||
- [x] TraceWaterfall → `debug::TimelineProfiler`
|
||
- [x] EventStream
|
||
- [x] ResourceGauge → `data_display::Gauge`
|
||
- [x] SystemMonitor → `devtools::ResourceMonitor`
|
||
- [x] ProcessTable → `terminal::ProcessList`
|
||
- [x] NetworkGraph (throughput) → `charts::RealtimeChart`
|
||
- [ ] MapView / GeoHeatmap → `maps::MapView`, `maps::GeoHeatmap` (T41)
|
||
- [ ] WorldMap → `maps::WorldMap` (T41)
|
||
- [x] RefreshIntervalSelector
|
||
- [x] DashboardFilterBar
|
||
|
||
## T35 Settings — `src/settings`
|
||
|
||
- [x] SettingsLayout
|
||
- [x] SettingsSection
|
||
- [x] SettingsRow
|
||
- [x] SettingsSearch
|
||
- [x] ThemeSelector (T39's ThemeSwitcher points here)
|
||
- [x] AccentColorPicker
|
||
- [x] FontSizeControl
|
||
- [x] FontFamilySelect → `forms::FontPicker`
|
||
- [x] DensitySelector
|
||
- [x] LanguageSelector → `forms::Combobox::languages` (T06f)
|
||
- [x] KeyboardShortcutsList
|
||
- [x] ShortcutEditor → `editor::KeybindingsEditor`
|
||
- [x] ProxySettings
|
||
- [x] StorageSettings / CacheClear
|
||
- [x] PrivacySettings
|
||
- [x] NotificationSettings
|
||
- [x] StartupSettings
|
||
- [x] ImportExportSettings
|
||
- [x] ResetToDefault
|
||
- [x] AdvancedSettings / FeatureFlags
|
||
- [x] DeveloperMode Toggle
|
||
|
||
## T36a Account · Sign in — `src/account`
|
||
|
||
- [x] LoginForm
|
||
- [x] SignupForm
|
||
- [x] OAuthButtons
|
||
- [x] MagicLinkForm
|
||
- [x] TwoFactorInput
|
||
- [x] ForgotPassword
|
||
|
||
## T36b Account · Profile and access
|
||
|
||
- [x] ProfileCard
|
||
- [x] ProfileEditor
|
||
- [x] AccountSwitcher
|
||
- [x] WorkspaceSwitcher / OrgSwitcher
|
||
- [x] UserMenu
|
||
- [x] SessionList
|
||
- [x] ApiKeyManager
|
||
|
||
## T36c Account · Billing and team
|
||
|
||
- [ ] 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 → `settings::ThemeSelector` (T35)
|
||
- [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
|