misc::Calculator works a typed sum in forms::evaluate's precedence, from a pad or the keyboard; Enter is equals while the calculator itself has focus, and Escape clears or passes on. misc::UnitConverter reads an amount in another unit across seven kinds, with a swap. Both show numbers through format::significant, which rounds through Rust's exponent form.
13 KiB
13 KiB
Chapters 31–43
T31a Project · Tasks — src/project
- PriorityIndicator
- IssueIdBadge
- StatusSelect
- AssigneePicker
- DueDatePicker →
forms::DatePicker - TaskItem — check, priority, due date, assignee
- TaskList
- SubtaskList →
documents::Checklist, which gains a field to add one
T31b Project · Issues and boards
- IssueCard
- LabelManager
- KanbanBoard / KanbanColumn / KanbanCard
- Sprint Board →
project::KanbanBoard - TaskDetailPanel
T31c Project · Plans
- GanttChart / TimelineView →
charts::GanttChart - Roadmap
- Burndown Chart →
charts::BurndownChart, on the charts' scales and paint - MilestoneProgress
- WorkloadView
T31d Project · Time and databases
- TimeTracker
- Pomodoro Timer
- DatabaseView (from T21c) — table, board, gallery, calendar, timeline
T32a Canvas · Plane — src/canvas
- InfiniteCanvas
- CanvasGrid / Guides
- Ruler
- ZoomControls / ZoomIndicator
- MiniMap
- ArtboardFrame
T32b Canvas · Tools
- SelectionBox
- TransformHandles
- SnapIndicator
- ToolPalette
- ShapeTools — rect, ellipse, polygon, line, arrow
- PenTool / PathEditor
- TextTool
- BrushTool / BrushSettings
- HistoryPanel
T32c Canvas · Panels
- LayerPanel
- AssetPanel
- InspectorPanel
- AlignmentToolbar
- ColorPanel
- GradientPanel →
forms::GradientEditor - ShadowEditor
- BorderEditor
- TypographyPanel
- ConstraintsEditor
- AutoLayoutControls
- ExportPanel
T32d Canvas · Graphs and boards
- NodeEditor / NodeGraph
- Node / Port / Edge / Connection
- FlowChart / DiagramEditor
- MindMap
- Whiteboard
- StickyNote
- Connector Line
T33a DB & Dev Tools · Databases — src/devtools
- ConnectionManager
- ConnectionForm
- SchemaTree
- QueryEditor →
editor::CodeEditor - QueryResultGrid →
tables::DataGrid - QueryHistory
- QueryPlanViewer
- TableStructureEditor
- ERDiagram
- IndexManager
- RedisKeyBrowser
T33b DB & Dev Tools · Data formats
- DocumentViewer (MongoDB / JSON) →
devtools::JsonViewer - JsonViewer / JsonTree
- JsonEditor
- YamlViewer
- XmlViewer
T33c DB & Dev Tools · APIs
- ApiRequestBuilder
- ResponseViewer
- HeadersTable
- QueryParamsEditor →
forms::KeyValueInput - EnvironmentSelector
- CollectionTree
- WebSocketConsole
- GraphQLExplorer
T33d DB & Dev Tools · Tools and machines
- 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 →
debug::TimelineProfiler - EventStream
- ResourceGauge →
data_display::Gauge - SystemMonitor →
devtools::ResourceMonitor - ProcessTable →
terminal::ProcessList - NetworkGraph (throughput) →
charts::RealtimeChart - MapView / GeoHeatmap →
maps::MapView,maps::GeoHeatmap(T41a, T41b) - WorldMap →
maps::WorldMap(T41c) - RefreshIntervalSelector
- DashboardFilterBar
T35 Settings — src/settings
- SettingsLayout
- SettingsSection
- SettingsRow
- SettingsSearch
- ThemeSelector (T39's ThemeSwitcher points here)
- 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
T36a Account · Sign in — src/account
- LoginForm
- SignupForm
- OAuthButtons
- MagicLinkForm
- TwoFactorInput
- ForgotPassword
T36b Account · Profile and access
- ProfileCard
- ProfileEditor
- AccountSwitcher
- WorkspaceSwitcher / OrgSwitcher
- UserMenu
- SessionList
- ApiKeyManager
T36c Account · Billing and team
- SubscriptionCard / PlanBadge
- UsageQuota
- BillingHistory
- PaymentMethodForm
- UpgradePrompt / Paywall
- TeamMemberTable
- RoleSelector
- InvitationList
T37a Onboarding · Flows and highlights — src/onboarding
- OnboardingWizard — on
navigation::Wizardwithout its numbered steps - WelcomeTour →
overlays::Tour(T09b) - Coachmark / Hotspot — Coachmark →
overlays::Spotlight; Hotspot here - FeatureHighlight / NewBadge — NewBadge →
data_display::BadgewithTone::Accent, which FeatureHighlight wears - Checklist (first-run tasks) →
onboarding::SetupChecklist; a to-do list ticked by hand isdocuments::Checklist
T37b Onboarding · Help
- HelpTooltip →
primitives::HelpTooltip, the mark FormLabel's help shows - HelpPanel / DocsSidebar
- KeyboardShortcutCheatsheet —
settings::KeyboardShortcutsListin anoverlays::Dialog - WhatsNewDialog —
data_display::Changelogin anoverlays::Dialog - FeedbackWidget
- ContactSupport
- InlineHelp
- EmptyStateWithAction →
feedback::EmptyState, whoseactionadds its buttons
T38a Interaction · Pointer — src/interaction
- Draggable — native
on_drag - Droppable / DropTarget — native
on_drop,drag_over,can_drop - DragOverlay / DragPreview — native drag view
- DragGhost → DragPreview (native)
- Sortable / SortableContext →
motion::Reorder - Resizable
- Rotatable — an svg: gpui 0.2.2 turns no other element
- Selectable / SelectionArea
- RubberBandSelection →
interaction::SelectionArea - LongPress →
primitives::Pressable - DoubleClick — native
ClickEvent::click_count - Gesture — prove: wheel zoom through
layout::Viewport, two-finger swipe throughlists::SwipeableListItem; pinch blocked, gpui 0.2.2 forwards no magnify event - PanZoom →
layout::Viewport
T38b Interaction · Keys, scroll and focus
- Hotkeys / KeyBinding — native
actions!,bind_keys,key_context - KeyChord — native multi-keystroke bindings;
window.pending_input_keystrokes()shows the first stroke - Undo / Redo Manager →
forms::History, made public - InfiniteScroll Trigger →
lists::InfiniteList - VirtualScroller — native
list()/uniform_list() - ScrollSync
- Autofocus — native
window.focus() - RovingTabIndex →
interaction::RovingFocus - TypeAhead →
lists::SelectableList, whose letters move its cursor - FocusVisible →
primitives::FocusRing
T39a Theme · Editing — src/theme
- ThemeProvider (T00)
- ThemeSwitcher →
settings::ThemeSelector(T35) - ColorTokens / DesignTokens (T00)
- ThemeEditor →
settings::ThemeEditor;Theme::set_palettetakes the owner's colors per mode - DensityProvider (T00) —
Theme::density, laid open insettings::ThemeEditor - RadiusProvider (T00) —
Theme::radius_scale, laid open insettings::ThemeEditor - FontProvider (T00) —
Theme::font_scale, laid open insettings::ThemeEditor - HighContrastMode (T00) —
Theme::set_high_contrast, laid open insettings::ThemeEditor - ReducedMotionProvider (T00) —
Theme::reduced_motion, laid open insettings::ThemeEditor - Elevation / Shadow (T00)
T39b Theme · Importing
- ThemeImporter — VS Code theme JSON →
settings::ThemeImporteronsettings::read_vscode_theme - SyntaxThemes →
theme::syntax_themes, chosen throughsettings::SyntaxThemePicker
T39c Theme · Platform
- IconThemeProvider →
primitives::IconTheme, an owner's rules by name and extension overfile_icon - Platform Style →
theme::Platform, the theme'splatform: the window buttons Ely draws, the title bar, key caps - VibrancyBackground / Acrylic →
shell::Vibrancyin a window openedWindowBackgroundAppearance::Blurred - Mica — blocked: gpui 0.2.2's one blur,
Blurred, is acrylic on Windows
T40a i18n — src/i18n
- I18nProvider →
i18n::I18n, a gpui global: the shown locale and one catalog per locale - Trans / LocalizedText →
I18n::text, a message with its{name}arguments filled - LocaleNumber / LocaleDate →
Locale::numberandLocale::date, CLDR's separators, right-to-left sign and short dates - RTL layout — proven:
Direction::rowmirrors a stack andDirection::alignsets its text's side; a right-to-left line stays oneEllipsis, since gpui wraps glyphs in drawn order; Ely's other components stay left to right
T40b a11y — src/i18n
- LiveRegion / Announcer — blocked: gpui 0.2.2 has no accessibility tree; AppKit's announcement request needs none, but no process here is trusted to observe VoiceOver take it
- SkipLink →
i18n::SkipLink: a Tab stop in flow that shows only while focused, raised over the page, and hands focus to its target - AccessibleIcon — blocked: no accessibility tree
- AriaLabel helper — blocked: no accessibility tree
- KeyboardNavigationHelper →
interaction::RovingFocus - ScreenReaderOnly — blocked: no accessibility tree
- ColorBlindSafe Palette →
Theme::set_color_blind_safe: chart hues fitted to stay apart under Machado's simulated protanopia, deuteranopia and tritanopia, each 3:1 on its page
T41a Maps · View — src/maps
- MapView — host tiles →
maps::MapView: the host's tile for each zoom, column and row, the nearest cut scaled past its zooms; a drag, the wheel or the arrows pan, Command-wheel, + and - or its buttons zoom - MapMarker →
maps::MapMarker, a pin keyed by its place's name, a Tab stop and pressable while in view when the map hears it; a focused pin keeps focus as it leaves the view - MapPopup →
maps::MapPopup, over or under its point toward the larger half, held inside the map, its body scrolling past the room; it takes focus when it shows and hands it back when it goes - LocationPicker →
maps::LocationPicker, the place under a center crosshair - CoordinateDisplay →
maps::CoordinateDisplay, degrees or degrees, minutes and seconds, copyable
T41b Maps · Layers
- MapCluster →
MapView::cluster_markers: pins gathered by squares of the world, so a pan keeps each group; a cluster's press shows its members whole - RouteLine →
maps::RouteLine, a layer that crosses the date line the short way - GeoJSON Layer →
maps::read_geojsonreads RFC 7946 to features;maps::GeoJsonLayerwashes areas with their holes open, strokes lines, dots points - GeoHeatmap (from T34) →
maps::GeoHeatmap, weighted places as heat scaled to the densest spot in view
T41c Maps · World
- ChoroplethMap →
maps::ChoroplethMapon aChoroplethLayer: areas washed by value on one hue's scale, keyed by id or a property, with a legend; an area without a value reads as no data, a value without an area is logged once - WorldMap (from T34) →
maps::WorldMap, Natural Earth's 110m countries bundled and washed by ISO 3166 alpha-2 code; a key that is no code fails
T42a Misc · Time — src/misc
- Clock / WorldClock →
misc::Clock, a face over its digits ticking each second;misc::WorldClock, places in rows by day and offset against home - Stopwatch →
misc::Stopwatch, on the executor's clock: Start or Pause on one button, Lap on another that reads Reset once paused, laps newest first
T42b Misc · Numbers
- Calculator →
misc::Calculator: digits, the four operations in precedence throughforms::evaluate, sign, delete and clear, twelve significant digits; keys type too, and Enter gives the result while the calculator itself has focus - UnitConverter →
misc::UnitConverter: length, area, volume, mass, temperature, speed and data, each on a starting pair, with a swap; six significant digits
T42c Misc · Codes and checks
- QRCodeScanner — prove: host frames,
rqrrdecode - BarcodeDisplay →
data_display::Barcode - Captcha
- Signature →
forms::SignaturePad - Rating Widget →
forms::Rating
T42d Misc · Asking and learning
- Poll / Survey
- Quiz / Flashcard
T42e Misc · Terms and notices
- ChangeLog Viewer →
data_display::Changelog - LicenseViewer
- Terms / Consent Dialog
- CookieBanner
T42f Misc · Web
- WebView — prove:
wry - IframeEmbed / EmbedCard
- HTMLPreview →
misc::WebView - PrintButton — blocked: gpui 0.2.2 has no print API
- ShareSheet
T42g Misc · Export and import
- ExportDialog — PDF, PNG, CSV, JSON
- ImportDialog — field mapping
- CSVImporter
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