A document reads into one value, Datum: JSON through serde_json, its keys now kept in their written order, and YAML's block style through a small reader that says which line it could not read. JsonViewer and YamlViewer draw it as one tree: each key with its value, maps and lists with their counts; a search keeps what holds its words and opens the way; Enter on a value copies its JSONPath. XmlViewer reads elements, attributes and text and says where tags cross. JsonEditor writes JSON in the code editor with Format and Minify and says whether it reads. DocumentViewer is JsonViewer. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
321 lines
8.3 KiB
Markdown
321 lines
8.3 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
|
||
|
||
- [ ] 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 → `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
|