"LiveRegion / Announcer, AccessibleIcon, AriaLabel, ScreenReaderOnly: not yet shown: gpui builds an AccessKit tree from elements with an id and a role, and no screen reader here reads it.",
format!("LiveRegion / Announcer, AccessibleIcon, AriaLabel, ScreenReaderOnly: not yet shown: {UNREAD}."),
"A box resized from its edges or its grip; a picture turned by its knob, as gpui turns svgs alone; tiles taken by a band drawn on empty space; rows sorted by drag through motion::Reorder.",
"A long press is primitives::Pressable; a double press is gpui's click_count. The wheel pans and, with Command, zooms layout::Viewport; two fingers swipe lists::SwipeableListItem.",
cx,
)
.child(
section(
"LongPress · DoubleClick · Gesture · PanZoom",
"A long press is primitives::Pressable; a double press is gpui's click_count. The wheel pans and, with Command, zooms layout::Viewport; two fingers swipe lists::SwipeableListItem.",
"A browser page has no menu bar, and gpui on the web keeps no cx.set_menus: this bar draws the gallery's own list of the same menus.",
"A browser page has no menu bar, and gpui on the web keeps no cx.set_menus: this bar draws the gallery's own list of the same menus. About Ely would open a second window and Quit would end the app, neither of which a page can, so both only log.",
"Cells to edit like a spreadsheet's. Arrows walk, Shift stretches a range, typing or a double press edits, Delete clears, and Cmd-C and Cmd-V copy and paste.",
cx,
)
.children(web_note(
"A browser reads its clipboard only as it pastes into a text field, so Cmd-V pastes no cells here.",
"A browser starts no processes and has no pseudo-terminal, so no shell runs here, and alacritty's grid, which draws the build's output, does not build for the web. The blocks, colored output, logs and processes below draw without one.",
"A browser starts no processes and has no pseudo-terminal, so no shell runs here, and alacritty's grid, which draws the build's output, does not build for the web. The page's other stories, command blocks, colored output, logs and processes, draw without one.",
{"number":1,"slug":"primitives","title":"Primitives","summary":"The smallest parts. Most are gpui itself; Ely adds the rest.","stories":[{"title":"Box / View","slug":"box-view","components":["Box","View"]},{"title":"Text","slug":"text","components":["Text"]},{"title":"Icon","slug":"icon","components":["Icon"]},{"title":"IconSet / IconRegistry","slug":"iconset-iconregistry","components":["IconSet","IconRegistry"]},{"title":"Svg","slug":"svg","components":["Svg"]},{"title":"Image","slug":"image","components":["Image"]},{"title":"Canvas","slug":"canvas","components":["Canvas"]},{"title":"Divider / Separator","slug":"divider-separator","components":["Divider","Separator"]},{"title":"Spacer","slug":"spacer","components":["Spacer"]},{"title":"Portal","slug":"portal","components":["Portal"]},{"title":"Overlay / Backdrop","slug":"overlay-backdrop","components":["Overlay","Backdrop"]},{"title":"Slot","slug":"slot","components":["Slot"]},{"title":"Show / When","slug":"show-when","components":["Show","When"]},{"title":"For / Each","slug":"for-each","components":["For","Each"]},{"title":"Fragment","slug":"fragment","components":["Fragment"]},{"title":"VisuallyHidden","slug":"visuallyhidden","components":["VisuallyHidden"]},{"title":"FocusRing","slug":"focusring","components":["FocusRing"]},{"title":"FocusScope / FocusTrap","slug":"focusscope-focustrap","components":["FocusScope","FocusTrap"]},{"title":"ClickOutside","slug":"clickoutside","components":["ClickOutside"]},{"title":"HoverArea","slug":"hoverarea","components":["HoverArea"]},{"title":"Pressable","slug":"pressable","components":["Pressable"]},{"title":"KeyboardHandler","slug":"keyboardhandler","components":["KeyboardHandler"]},{"title":"Measure","slug":"measure","components":["Measure"]},{"title":"IntersectionObserver","slug":"intersectionobserver","components":["IntersectionObserver"]},{"title":"Clipboard","slug":"clipboard","components":["Clipboard"]},{"title":"Tooltip Trigger","slug":"tooltip-trigger","components":["Tooltip Trigger"]}]},
{"number":2,"slug":"typography","title":"Typography","summary":"Inter for words, tabular figures for numbers, one ink for everything.","stories":[{"title":"Heading (H1–H6)","slug":"heading-h1-h6","components":["Heading"]},{"title":"Title / Subtitle","slug":"title-subtitle","components":["Title","Subtitle"]},{"title":"Paragraph","slug":"paragraph","components":["Paragraph"]},{"title":"Label","slug":"label","components":["Label"]},{"title":"Caption","slug":"caption","components":["Caption"]},{"title":"Overline","slug":"overline","components":["Overline"]},{"title":"Code","slug":"code","components":["Code"]},{"title":"Kbd","slug":"kbd","components":["Kbd"]},{"title":"KbdCombo","slug":"kbdcombo","components":["KbdCombo"]},{"title":"Blockquote","slug":"blockquote","components":["Blockquote"]},{"title":"Highlight / Mark","slug":"highlight-mark","components":["Highlight","Mark"]},{"title":"Truncate / Ellipsis","slug":"truncate-ellipsis","components":["Truncate"]},{"title":"LineClamp","slug":"lineclamp","components":["LineClamp"]},{"title":"MiddleEllipsis","slug":"middleellipsis","components":["MiddleEllipsis"]},{"title":"EllipsisTooltip","slug":"ellipsistooltip","components":["EllipsisTooltip"]},{"title":"Link","slug":"link","components":["Link"]},{"title":"ExternalLink","slug":"externallink","components":["ExternalLink"]},{"title":"RelativeTime","slug":"relativetime","components":["RelativeTime"]},{"title":"DateTimeText","slug":"datetimetext","components":["DateTimeText"]},{"title":"NumberText","slug":"numbertext","components":["NumberText"]},{"title":"CurrencyText","slug":"currencytext","components":["CurrencyText"]},{"title":"PercentText","slug":"percenttext","components":["PercentText"]},{"title":"FileSizeText","slug":"filesizetext","components":["FileSizeText"]},{"title":"DurationText","slug":"durationtext","components":["DurationText"]},{"title":"PluralText","slug":"pluraltext","components":["PluralText"]},{"title":"CopyableText","slug":"copyabletext","components":["CopyableText"]},{"title":"SelectableText","slug":"selectabletext","components":["SelectableText"]},{"title":"Emoji","slug":"emoji","components":["Emoji"]},{"title":"Latex / MathInline","slug":"latex-mathinline","components":["Latex","MathInline"]},{"title":"AnimatedNumber","slug":"animatednumber","components":["AnimatedNumber"]},{"title":"Typewriter","slug":"typewriter","components":["Typewriter"]},{"title":"GradientText","slug":"gradienttext","components":["GradientText"]},{"title":"ShimmerText","slug":"shimmertext","components":["ShimmerText"]}]},
{"number":7,"slug":"navigation","title":"Navigation","summary":"Tabs, paths, places and palettes: where you are, and the ways out.","stories":[{"title":"Tabs","slug":"tabs","components":["Tabs"]},{"title":"EditorTabs / TabOverflowMenu","slug":"editortabs-taboverflowmenu","components":["EditorTabs","TabOverflowMenu"]},{"title":"Breadcrumb","slug":"breadcrumb","components":["Breadcrumb"]},{"title":"Pagination","slug":"pagination","components":["Pagination"]},{"title":"Steps / Wizard","slug":"steps-wizard","components":["Steps","Wizard"]},{"title":"Sidebar Navigation / NavItem / NavGroup","slug":"sidebar-navigation-navitem-navgroup","components":["Sidebar Navigation","NavItem","NavGroup"]},{"title":"NavigationMenu","slug":"navigationmenu","components":["NavigationMenu"]},{"title":"BackForwardNavigation / History","slug":"backforwardnavigation-history","components":["BackForwardNavigation"]},{"title":"Anchor / TableOfContents","slug":"anchor-tableofcontents","components":["Anchor","TableOfContents"]},{"title":"JumpTo / GoToLine","slug":"jumpto-gotoline","components":["JumpTo","GoToLine"]},{"title":"CommandPalette","slug":"commandpalette","components":["CommandPalette"]},{"title":"QuickOpen","slug":"quickopen","components":["QuickOpen"]},{"title":"QuickSwitcher","slug":"quickswitcher","components":["QuickSwitcher"]},{"title":"SearchPalette / SpotlightSearch / QuickLauncher","slug":"searchpalette-spotlightsearch-quicklauncher","components":["SearchPalette","SpotlightSearch","QuickLauncher"]}]},
{"number":8,"slug":"menus","title":"Menus","summary":"Rows of actions that open from a button, a right click or an arrow, and nest.","stories":[{"title":"Menu / MenuItem / MenuGroup / MenuSeparator / SubMenu / MenuItemShortcut / MenuItemIcon","slug":"menu-menuitem-menugroup-menuseparator-submenu-menuitemshortcut-menuitemicon","components":["Menu","MenuItem","MenuGroup","MenuSeparator","SubMenu","MenuItemShortcut","MenuItemIcon"]},{"title":"CheckboxMenuItem / RadioMenuItem","slug":"checkboxmenuitem-radiomenuitem","components":["CheckboxMenuItem","RadioMenuItem"]},{"title":"DropdownMenu / SplitButton / OverflowMenu","slug":"dropdownmenu-splitbutton-overflowmenu","components":["DropdownMenu","SplitButton","OverflowMenu"]},{"title":"ContextMenu","slug":"contextmenu","components":["ContextMenu"]},{"title":"MenuBar Menu","slug":"menubar-menu","components":["MenuBar Menu"]},{"title":"MegaMenu","slug":"megamenu","components":["MegaMenu"]},{"title":"SearchableMenu","slug":"searchablemenu","components":["SearchableMenu"]},{"title":"PieMenu / RadialMenu","slug":"piemenu-radialmenu","components":["PieMenu","RadialMenu"]}]},
{"number":9,"slug":"overlays","title":"Overlays","summary":"Panels over the page: anchored to a control, over a scrim, or over everything.","stories":[{"title":"Popover / DropdownPanel / InlinePopup","slug":"popover-dropdownpanel-inlinepopup","components":["Popover","DropdownPanel","InlinePopup"]},{"title":"HoverCard","slug":"hovercard","components":["HoverCard"]},{"title":"Dialog / Modal / AlertDialog / ConfirmDialog / PromptDialog / FullscreenDialog","slug":"dialog-modal-alertdialog-confirmdialog-promptdialog-fullscreendialog","components":["Dialog","Modal","AlertDialog","ConfirmDialog","PromptDialog","FullscreenDialog"]},{"title":"Lightbox","slug":"lightbox","components":["Lightbox"]},{"title":"Spotlight / Coachmark / Tour","slug":"spotlight-coachmark-tour","components":["Spotlight","Coachmark","Tour"]},{"title":"FloatingToolbar","slug":"floatingtoolbar","components":["FloatingToolbar"]},{"title":"Callout / Peek","slug":"callout-peek","components":["Callout","Peek"]},{"title":"Tooltip / Sheet / Drawer / DropdownPanel / InlinePopup / ToastViewport","slug":"tooltip-sheet-drawer-dropdownpanel-inlinepopup-toastviewport","components":["Tooltip","Sheet","Drawer","DropdownPanel","InlinePopup","ToastViewport"]}]},
{"number":17,"slug":"editor","title":"Editor","summary":"A code editor with the gutter, folds and cursors it needs, the help a language server gives, search, the panels around it and its status row.","stories":[{"title":"CodeEditor / EditorGutter / LineNumbers / FoldingControl / Minimap / Ruler / IndentGuide / BracketMatcher / RainbowBrackets / MultiCursor / SelectionHighlight / StickyScroll / Breadcrumb / InlayHints / CodeLens / InlineDecoration","slug":"codeeditor-editorgutter-linenumbers-foldingcontrol-minimap-ruler-indentguide-bracketmatcher-rainbowbrackets-multicursor-selectionhighlight-stickyscroll-breadcrumb-inlayhints-codelens-inlinedecoration","components":["CodeEditor","EditorGutter","LineNumbers","FoldingControl","MiniMap","Ruler","IndentGuide","BracketMatcher","RainbowBrackets","MultiCursor","SelectionHighlight","StickyScroll","Breadcrumb","InlayHints","CodeLens","InlineDecoration"]},{"title":"WhitespaceRenderer / CursorRenderer","slug":"whitespacerenderer-cursorrenderer","components":["WhitespaceRenderer","CursorRenderer"]},{"title":"InlineDiff / GhostText / InlineChat / ReadOnlyBanner / VimModeIndicator","slug":"inlinediff-ghosttext-inlinechat-readonlybanner-vimmodeindicator","components":["InlineDiff","GhostText","InlineChat","ReadOnlyBanner","VimModeIndicator"]},{"title":"CompletionMenu / SignatureHelp / HoverInfo","slug":"completionmenu-signaturehelp-hoverinfo","components":["CompletionMenu","SignatureHelp","HoverInfo"]},{"title":"CodeActionMenu / RenameInput / PeekView / ReferencesPanel / SymbolOutline / GoToSymbol / CallHierarchy / TypeHierarchy","slug":"codeactionmenu-renameinput-peekview-referencespanel-symboloutline-gotosymbol-callhierarchy-typehierarchy","components":["CodeActionMenu","RenameInput","PeekView","ReferencesPanel","SymbolOutline","GoToSymbol","CallHierarchy","TypeHierarchy"]},{"title":"FindWidget / ReplaceWidget","slug":"findwidget-replacewidget","components":["FindWidget","ReplaceWidget"]},{"title":"SearchPanel / SearchResultItem / SearchFilters","slug":"searchpanel-searchresultitem-searchfilters","components":["SearchPanel","SearchResultItem","SearchFilters"]},{"title":"ProblemsPanel / DiagnosticsList / OutputPanel","slug":"problemspanel-diagnosticslist-outputpanel","components":["ProblemsPanel","DiagnosticsList","OutputPanel"]},{"title":"DebugConsole / ExtensionsPanel / PluginList","slug":"debugconsole-extensionspanel-pluginlist","components":["DebugConsole","ExtensionsPanel","PluginList"]},{"title":"SettingsEditor / KeybindingsEditor","slug":"settingseditor-keybindingseditor","components":["SettingsEditor","KeybindingsEditor"]},{"title":"WelcomePage / RecentProjects / ProjectSwitcher / ThemePreview / TaskRunner / RunConfiguration","slug":"welcomepage-recentprojects-projectswitcher-themepreview-taskrunner-runconfiguration","components":["WelcomePage","RecentProjects","ProjectSwitcher","ThemePreview","TaskRunner","RunConfiguration"]},{"title":"CursorPosition / LanguageMode / Encoding / LineEnding / IndentSettings / BranchIndicator / LspStatus / NotificationBell","slug":"cursorposition-languagemode-encoding-lineending-indentsettings-branchindicator-lspstatus-notificationbell","components":["CursorPosition","LanguageMode","Encoding","LineEnding","IndentSettings","BranchIndicator","LspStatus","NotificationBell"]}]},
@@ -21,7 +21,7 @@
{"number":20,"slug":"debug","title":"Debug","summary":"A paused program: its breakpoints, stack, threads and values, memory and machine code; profiles and network.","stories":[{"title":"DebugToolbar","slug":"debugtoolbar","components":["DebugToolbar"]},{"title":"BreakpointList / BreakpointGutter / CallStack / ThreadList","slug":"breakpointlist-breakpointgutter-callstack-threadlist","components":["BreakpointList","BreakpointGutter","CallStack","ThreadList"]},{"title":"VariablesPanel / WatchPanel / ConsoleREPL","slug":"variablespanel-watchpanel-consolerepl","components":["VariablesPanel","WatchPanel","ConsoleREPL"]},{"title":"MemoryViewer / HexViewer / Disassembly","slug":"memoryviewer-hexviewer-disassembly","components":["MemoryViewer","HexViewer","Disassembly"]},{"title":"PerformanceProfiler / Flamegraph / TimelineProfiler","slug":"performanceprofiler-flamegraph-timelineprofiler","components":["PerformanceProfiler","Flamegraph","TimelineProfiler"]},{"title":"NetworkInspector","slug":"networkinspector","components":["NetworkInspector"]}]},
{"number":21,"slug":"documents","title":"Documents","summary":"Markdown written and read, blocks like a notebook's, and a knowledge base around them.","stories":[{"title":"RichTextEditor / FixedFormatToolbar / FloatingFormatToolbar / LinkEditor / MentionMenu / EmojiAutocomplete / WordCount / ReadingTime","slug":"richtexteditor-fixedformattoolbar-floatingformattoolbar-linkeditor-mentionmenu-emojiautocomplete-wordcount-readingtime","components":["RichTextEditor","FixedFormatToolbar","FloatingFormatToolbar","LinkEditor","MentionMenu","EmojiAutocomplete","WordCount","ReadingTime"]},{"title":"MarkdownEditor","slug":"markdowneditor","components":["MarkdownEditor"]},{"title":"BlockEditor / BlockHandle / SlashMenu / PlaceholderText","slug":"blockeditor-blockhandle-slashmenu-placeholdertext","components":["BlockEditor","BlockHandle","SlashMenu","PlaceholderText"]},{"title":"Block types / TableEditor / ImageEditorBlock / MathEditor / DiagramBlock / CodeBlockEditor","slug":"block-types-tableeditor-imageeditorblock-matheditor-diagramblock-codeblockeditor","components":["Block types","TableEditor","ImageEditorBlock","MathEditor","DiagramBlock","CodeBlockEditor"]},{"title":"TodoItem / Checklist","slug":"todoitem-checklist","components":["TodoItem","Checklist"]},{"title":"MarkdownRenderer / TableOfContents / DocumentOutline / ReadingProgress","slug":"markdownrenderer-tableofcontents-documentoutline-readingprogress","components":["MarkdownRenderer","TableOfContents","DocumentOutline","ReadingProgress"]},{"title":"DocumentViewer / PDFViewer / PageThumbnailList","slug":"documentviewer-pdfviewer-pagethumbnaillist","components":["DocumentViewer","PDFViewer","PageThumbnailList"]},{"title":"OfficePreview","slug":"officepreview","components":["OfficePreview"]},{"title":"EpubReader","slug":"epubreader","components":["EpubReader"]},{"title":"Footnote / Glossary / TooltipTerm","slug":"footnote-glossary-tooltipterm","components":["Footnote","Glossary","TooltipTerm"]},{"title":"FocusMode / ZenMode","slug":"focusmode-zenmode","components":["FocusMode","ZenMode"]},{"title":"PrintPreview","slug":"printpreview","components":["PrintPreview"]},{"title":"PageTree / Favorites / Pinned","slug":"pagetree-favorites-pinned","components":["PageTree","Favorites","Pinned"]},{"title":"PageCover / PageIcon / PageProperties","slug":"pagecover-pageicon-pageproperties","components":["PageCover","PageIcon","PageProperties"]},{"title":"Backlinks / GraphView","slug":"backlinks-graphview","components":["Backlinks","GraphView"]},{"title":"TemplatePicker","slug":"templatepicker","components":["TemplatePicker"]},{"title":"TrashBin","slug":"trashbin","components":["TrashBin"]},{"title":"VersionHistory / PageHistoryDiff","slug":"versionhistory-pagehistorydiff","components":["VersionHistory","PageHistoryDiff"]}]},
{"number":22,"slug":"collab","title":"Collaboration","summary":"People in the same document: who is here and where, comments and reactions, suggested changes, and sharing.","stories":[{"title":"PresenceAvatars / LiveIndicator / FollowMode / RemoteCursor / RemoteSelection","slug":"presenceavatars-liveindicator-followmode-remotecursor-remoteselection","components":["PresenceAvatars","LiveIndicator","FollowMode","RemoteCursor","RemoteSelection"]},{"title":"CommentThread / Reply / Reactions / ReactionPicker","slug":"commentthread-reply-reactions-reactionpicker","components":["CommentThread","Reply","Reactions","ReactionPicker"]},{"title":"CommentBubble / CommentMarker","slug":"commentbubble-commentmarker","components":["CommentBubble","CommentMarker"]},{"title":"CommentSidebar","slug":"commentsidebar","components":["CommentSidebar"]},{"title":"Annotation / Highlight","slug":"annotation-highlight","components":["Annotation","Highlight"]},{"title":"SuggestionMode / TrackChanges","slug":"suggestionmode-trackchanges","components":["SuggestionMode","TrackChanges"]},{"title":"ShareDialog / InviteInput / PermissionSelect / AccessList","slug":"sharedialog-inviteinput-permissionselect-accesslist","components":["ShareDialog","InviteInput","PermissionSelect","AccessList"]},{"title":"ActivityLog → data_display::ActivityFeed","slug":"activitylog-data-display-activityfeed","components":["ActivityLog"]}]},
{"number":24,"slug":"agent","title":"Agent","summary":"An assistant at work: the tools it calls, what it asks before it acts, how far it has come, what it would change, what it sees and what it makes.","stories":[{"title":"ToolCallCard / ToolCallGroup","slug":"toolcallcard-toolcallgroup","components":["ToolCallCard","ToolCallGroup"]},{"title":"ToolApprovalDialog / PermissionPrompt","slug":"toolapprovaldialog-permissionprompt","components":["ToolApprovalDialog","PermissionPrompt"]},{"title":"AgentStepList / TaskTimeline / AgentPlan / TodoList / AgentStatus / AgentProgress","slug":"agentsteplist-tasktimeline-agentplan-todolist-agentstatus-agentprogress","components":["AgentStepList","TaskTimeline","AgentPlan","TodoList","AgentStatus","AgentProgress"]},{"title":"SubAgentTree","slug":"subagenttree","components":["SubAgentTree"]},{"title":"FileChangeCard / MultiFileDiff Review / CommandExecutionCard","slug":"filechangecard-multifilediff-review-commandexecutioncard","components":["FileChangeCard","MultiFileDiff Review","CommandExecutionCard"]},{"title":"BrowserPreview / ScreenshotStream / ComputerUseViewer","slug":"browserpreview-screenshotstream-computeruseviewer","components":["BrowserPreview","ScreenshotStream","ComputerUseViewer"]},{"title":"ArtifactPanel / ArtifactVersionSwitcher / LivePreview","slug":"artifactpanel-artifactversionswitcher-livepreview","components":["ArtifactPanel","ArtifactVersionSwitcher","LivePreview"]},{"title":"SandboxStatus","slug":"sandboxstatus","components":["SandboxStatus"]},{"title":"MCPServerList / ConnectorList / ToolRegistry Panel","slug":"mcpserverlist-connectorlist-toolregistry-panel","components":["MCPServerList","ConnectorList","ToolRegistry Panel"]},{"title":"MemoryPanel / CheckpointList / Rewind","slug":"memorypanel-checkpointlist-rewind","components":["MemoryPanel","CheckpointList","Rewind"]},{"title":"InterruptButton / HumanInputRequest","slug":"interruptbutton-humaninputrequest","components":["InterruptButton","HumanInputRequest"]},{"title":"TokenUsageChart / CostBreakdown","slug":"tokenusagechart-costbreakdown","components":["TokenUsageChart","CostBreakdown"]},{"title":"TraceViewer / EvalResultTable","slug":"traceviewer-evalresulttable","components":["TraceViewer","EvalResultTable"]}]},
{"number":25,"slug":"generative","title":"Generative","summary":"Making pictures, sound and video with a model: the prompt and its settings, the queue and what comes back, the canvas, the models behind them, and the data and prompts they work from.","stories":[{"title":"ImageGenerationPanel / PromptEnhancer / NegativePromptInput / StylePresetPicker / AspectRatioPicker / SeedInput","slug":"imagegenerationpanel-promptenhancer-negativepromptinput-stylepresetpicker-aspectratiopicker-seedinput","components":["ImageGenerationPanel","PromptEnhancer","NegativePromptInput","StylePresetPicker","AspectRatioPicker","SeedInput"]},{"title":"GenerationQueue","slug":"generationqueue","components":["GenerationQueue"]},{"title":"GenerationGrid / ImageCompare","slug":"generationgrid-imagecompare","components":["GenerationGrid","ImageCompare"]},{"title":"VariationPicker / ABCompareView","slug":"variationpicker-abcompareview","components":["VariationPicker","ABCompareView"]},{"title":"InpaintCanvas / MaskBrush","slug":"inpaintcanvas-maskbrush","components":["InpaintCanvas","MaskBrush"]},{"title":"AudioGenerationPlayer","slug":"audiogenerationplayer","components":["AudioGenerationPlayer"]},{"title":"TTSVoicePicker","slug":"ttsvoicepicker","components":["TTSVoicePicker"]},{"title":"VideoGenerationTimeline","slug":"videogenerationtimeline","components":["VideoGenerationTimeline"]},{"title":"ModelCard","slug":"modelcard","components":["ModelCard"]},{"title":"ModelDownloadManager","slug":"modeldownloadmanager","components":["ModelDownloadManager"]},{"title":"ModelStatus / HardwareMonitor","slug":"modelstatus-hardwaremonitor","components":["ModelStatus","HardwareMonitor"]},{"title":"FineTuneJobCard","slug":"finetunejobcard","components":["FineTuneJobCard"]},{"title":"DatasetViewer → tables::DataTable","slug":"datasetviewer-tables-datatable","components":["DatasetViewer"]},{"title":"EmbeddingVisualizer","slug":"embeddingvisualizer","components":["EmbeddingVisualizer"]},{"title":"PromptPlayground","slug":"promptplayground","components":["PromptPlayground"]},{"title":"PromptDiff / PromptVersionHistory","slug":"promptdiff-promptversionhistory","components":["PromptDiff","PromptVersionHistory"]}]},
{"number":26,"slug":"media","title":"Media","summary":"Pictures, video and sound: looking closely, cropping and marking up, playing, and the controls and devices around them.","stories":[{"title":"ImageViewer","slug":"imageviewer","components":["ImageViewer"]},{"title":"ImageThumbnail / Lightbox → overlays::Lightbox","slug":"imagethumbnail-lightbox-overlays-lightbox","components":["ImageThumbnail","Lightbox"]},{"title":"ImageCropper","slug":"imagecropper","components":["ImageCropper"]},{"title":"ImageUpload","slug":"imageupload","components":["ImageUpload"]},{"title":"ImageAnnotator","slug":"imageannotator","components":["ImageAnnotator"]},{"title":"VideoPlayer","slug":"videoplayer","components":["VideoPlayer"]},{"title":"VideoTimeline / Scrubber","slug":"videotimeline-scrubber","components":["VideoTimeline","Scrubber"]},{"title":"VideoThumbnailStrip","slug":"videothumbnailstrip","components":["VideoThumbnailStrip"]},{"title":"SubtitleEditor","slug":"subtitleeditor","components":["SubtitleEditor"]},{"title":"AudioPlayer","slug":"audioplayer","components":["AudioPlayer"]},{"title":"AudioWaveform","slug":"audiowaveform","components":["AudioWaveform"]},{"title":"AudioSpectrum / Visualizer","slug":"audiospectrum-visualizer","components":["AudioSpectrum","Visualizer"]},{"title":"VolumeControl","slug":"volumecontrol","components":["VolumeControl"]},{"title":"PlaybackSpeedControl","slug":"playbackspeedcontrol","components":["PlaybackSpeedControl"]},{"title":"MediaControls","slug":"mediacontrols","components":["MediaControls"]},{"title":"Playlist","slug":"playlist","components":["Playlist"]},{"title":"ScreenRecorderControls","slug":"screenrecordercontrols","components":["ScreenRecorderControls"]},{"title":"CameraPreview","slug":"camerapreview","components":["CameraPreview"]},{"title":"MicLevelMeter","slug":"miclevelmeter","components":["MicLevelMeter"]},{"title":"DeviceSelector","slug":"deviceselector","components":["DeviceSelector"]},{"title":"3DModelViewer","slug":"3dmodelviewer","components":["3DModelViewer"]}]},
@@ -33,11 +33,11 @@
{"number":32,"slug":"canvas","title":"Canvas & Design","summary":"An endless plane to lay work on, the tools and panels around it, and graphs of nodes.","stories":[{"title":"InfiniteCanvas · CanvasGrid / Guides · Ruler · ArtboardFrame · ZoomControls / ZoomIndicator · MiniMap","slug":"infinitecanvas-canvasgrid-guides-ruler-artboardframe-zoomcontrols-zoomindicator-minimap","components":["InfiniteCanvas","CanvasGrid","Guides","Ruler","ArtboardFrame","ZoomControls","ZoomIndicator","MiniMap"]},{"title":"ToolPalette · SelectionBox · TransformHandles · SnapIndicator · ShapeTools · PenTool / PathEditor · TextTool · BrushTool / BrushSettings · HistoryPanel","slug":"toolpalette-selectionbox-transformhandles-snapindicator-shapetools-pentool-patheditor-texttool-brushtool-brushsettings-historypanel","components":["ToolPalette","SelectionBox","TransformHandles","SnapIndicator","ShapeTools","PenTool","PathEditor","TextTool","BrushTool","BrushSettings","HistoryPanel"]},{"title":"LayerPanel · InspectorPanel · AlignmentToolbar · AssetPanel","slug":"layerpanel-inspectorpanel-alignmenttoolbar-assetpanel","components":["LayerPanel","InspectorPanel","AlignmentToolbar","AssetPanel"]},{"title":"ColorPanel · GradientPanel · ShadowEditor · BorderEditor · TypographyPanel","slug":"colorpanel-gradientpanel-shadoweditor-bordereditor-typographypanel","components":["ColorPanel","GradientPanel","ShadowEditor","BorderEditor","TypographyPanel"]},{"title":"ConstraintsEditor · AutoLayoutControls · ExportPanel","slug":"constraintseditor-autolayoutcontrols-exportpanel","components":["ConstraintsEditor","AutoLayoutControls","ExportPanel"]},{"title":"NodeEditor / NodeGraph · Node / Port / Edge / Connection","slug":"nodeeditor-nodegraph-node-port-edge-connection","components":["NodeEditor","NodeGraph","Node","Port","Edge","Connection"]},{"title":"FlowChart / DiagramEditor · Connector Line","slug":"flowchart-diagrameditor-connector-line","components":["FlowChart","DiagramEditor","Connector Line"]},{"title":"MindMap","slug":"mindmap","components":["MindMap"]},{"title":"Whiteboard · StickyNote","slug":"whiteboard-stickynote","components":["Whiteboard","StickyNote"]}]},
{"number":33,"slug":"devtools","title":"DB & Dev Tools","summary":"Connections, schemas and queries, data to read, requests to send, and the machines that run them.","stories":[{"title":"ConnectionManager · ConnectionForm","slug":"connectionmanager-connectionform","components":["ConnectionManager","ConnectionForm"]},{"title":"SchemaTree · ERDiagram","slug":"schematree-erdiagram","components":["SchemaTree","ERDiagram"]},{"title":"QueryEditor → editor::CodeEditor · QueryResultGrid → tables::DataGrid · QueryHistory · QueryPlanViewer","slug":"queryeditor-editor-codeeditor-queryresultgrid-tables-datagrid-queryhistory-queryplanviewer","components":["QueryEditor","QueryResultGrid","QueryHistory","QueryPlanViewer"]},{"title":"TableStructureEditor · IndexManager","slug":"tablestructureeditor-indexmanager","components":["TableStructureEditor","IndexManager"]},{"title":"RedisKeyBrowser","slug":"rediskeybrowser","components":["RedisKeyBrowser"]},{"title":"DocumentViewer (MongoDB / JSON) → devtools::JsonViewer · JsonViewer / JsonTree · JsonEditor · YamlViewer · XmlViewer","slug":"documentviewer-mongodb-json-devtools-jsonviewer-jsonviewer-jsontree-jsoneditor-yamlviewer-xmlviewer","components":["DocumentViewer","JsonViewer","JsonTree","JsonEditor","YamlViewer","XmlViewer"]},{"title":"ApiRequestBuilder · ResponseViewer · HeadersTable · QueryParamsEditor → forms::KeyValueInput · EnvironmentSelector · CollectionTree","slug":"apirequestbuilder-responseviewer-headerstable-queryparamseditor-forms-keyvalueinput-environmentselector-collectiontree","components":["ApiRequestBuilder","ResponseViewer","HeadersTable","QueryParamsEditor","EnvironmentSelector","CollectionTree"]},{"title":"WebSocketConsole","slug":"websocketconsole","components":["WebSocketConsole"]},{"title":"GraphQLExplorer","slug":"graphqlexplorer","components":["GraphQLExplorer"]},{"title":"RegexTester · Base64 / Encoder · ColorContrastChecker","slug":"regextester-base64-encoder-colorcontrastchecker","components":["RegexTester","Base64","Encoder","ColorContrastChecker"]},{"title":"ContainerList · PodList · ResourceMonitor","slug":"containerlist-podlist-resourcemonitor","components":["ContainerList","PodList","ResourceMonitor"]}]},
{"number":34,"slug":"dashboard","title":"Dashboard & Monitoring","summary":"Widgets on a grid you arrange, what is firing and what is up, and the stream of what happens.","stories":[{"title":"Dashboard Grid · Widget / DashboardCard · RefreshIntervalSelector · DashboardFilterBar · StatCard → data_display::Statistic · MetricsChart → charts::LineChart · ResourceGauge → data_display::Gauge","slug":"dashboard-grid-widget-dashboardcard-refreshintervalselector-dashboardfilterbar-statcard-data-display-statistic-metricschart-charts-linechart-resourcegauge-data-display-gauge","components":["Dashboard Grid","Widget","DashboardCard","RefreshIntervalSelector","DashboardFilterBar","StatCard","MetricsChart","ResourceGauge"]},{"title":"UptimeBar · ServiceStatus · HealthCheck Indicator","slug":"uptimebar-servicestatus-healthcheck-indicator","components":["UptimeBar","ServiceStatus","HealthCheck Indicator"]},{"title":"AlertList · IncidentCard","slug":"alertlist-incidentcard","components":["AlertList","IncidentCard"]},{"title":"EventStream · LogStream → terminal::LogViewer · TraceWaterfall → debug::TimelineProfiler · SystemMonitor → devtools::ResourceMonitor · ProcessTable → terminal::ProcessList · NetworkGraph (throughput) → charts::RealtimeChart · MapView / GeoHeatmap → maps::MapView, maps::GeoHeatmap · WorldMap → maps::WorldMap","slug":"eventstream-logstream-terminal-logviewer-tracewaterfall-debug-timelineprofiler-systemmonitor-devtools-resourcemonitor-processtable-terminal-processlist-networkgraph-throughput-charts-realtimechart-mapview-geoheatmap-maps-mapview-maps-geoheatmap-worldmap-maps-worldmap","components":["EventStream","LogStream","TraceWaterfall","SystemMonitor","ProcessTable","NetworkGraph","MapView","GeoHeatmap","WorldMap"]}]},
{"number":35,"slug":"settings","title":"Settings","summary":"A settings window: its sections, a search over them, and the controls each one holds.","stories":[{"title":"SettingsLayout · SettingsSection · SettingsRow · SettingsSearch","slug":"settingslayout-settingssection-settingsrow-settingssearch","components":["SettingsLayout","SettingsSection","SettingsRow","SettingsSearch"]}]},
{"number":35,"slug":"settings","title":"Settings","summary":"A settings window: its sections, a search over them, and the controls each one holds.","stories":[{"title":"SettingsLayout · SettingsSection · SettingsRow · SettingsSearch","slug":"settingslayout-settingssection-settingsrow-settingssearch","components":["SettingsLayout","ThemeSelector","AccentColorPicker","FontSizeControl","DensitySelector","KeyboardShortcutsList","ProxySettings","PrivacySettings","NotificationSettings","StartupSettings","StorageSettings","ResetToDefault","ImportExportSettings","AdvancedSettings","DeveloperMode Toggle","SettingsSection","SettingsRow","SettingsSearch"]}]},
{"number":36,"slug":"account","title":"Account","summary":"Signing in and up, a link by email, a second factor, and the account once inside.","stories":[{"title":"LoginForm · OAuthButtons","slug":"loginform-oauthbuttons","components":["LoginForm","OAuthButtons"]},{"title":"SignupForm","slug":"signupform","components":["SignupForm"]},{"title":"MagicLinkForm · ForgotPassword","slug":"magiclinkform-forgotpassword","components":["MagicLinkForm","ForgotPassword"]},{"title":"TwoFactorInput","slug":"twofactorinput","components":["TwoFactorInput"]},{"title":"AccountSwitcher · WorkspaceSwitcher / OrgSwitcher · UserMenu","slug":"accountswitcher-workspaceswitcher-orgswitcher-usermenu","components":["AccountSwitcher","WorkspaceSwitcher","OrgSwitcher","UserMenu"]},{"title":"ProfileCard · ProfileEditor","slug":"profilecard-profileeditor","components":["ProfileCard","ProfileEditor"]},{"title":"SessionList · ApiKeyManager","slug":"sessionlist-apikeymanager","components":["SessionList","ApiKeyManager"]},{"title":"SubscriptionCard / PlanBadge · UsageQuota · PaymentMethodForm","slug":"subscriptioncard-planbadge-usagequota-paymentmethodform","components":["SubscriptionCard","PlanBadge","UsageQuota","PaymentMethodForm"]},{"title":"BillingHistory · UpgradePrompt / Paywall","slug":"billinghistory-upgradeprompt-paywall","components":["BillingHistory","UpgradePrompt","Paywall"]},{"title":"TeamMemberTable · RoleSelector · InvitationList","slug":"teammembertable-roleselector-invitationlist","components":["TeamMemberTable","RoleSelector","InvitationList"]}]},
{"number":37,"slug":"onboarding","title":"Onboarding & Help","summary":"A first run in steps, what is new called out, first things to do, and help where it is needed.","stories":[{"title":"OnboardingWizard · WelcomeTour","slug":"onboardingwizard-welcometour","components":["OnboardingWizard","WelcomeTour"]},{"title":"Coachmark / Hotspot · FeatureHighlight / NewBadge","slug":"coachmark-hotspot-featurehighlight-newbadge","components":["Coachmark","Hotspot","FeatureHighlight","NewBadge"]},{"title":"Checklist (first-run tasks)","slug":"checklist-first-run-tasks","components":["Checklist"]},{"title":"HelpTooltip · InlineHelp · EmptyStateWithAction","slug":"helptooltip-inlinehelp-emptystatewithaction","components":["HelpTooltip","InlineHelp","EmptyStateWithAction"]},{"title":"HelpPanel / DocsSidebar","slug":"helppanel-docssidebar","components":["HelpPanel","DocsSidebar"]},{"title":"KeyboardShortcutCheatsheet · WhatsNewDialog","slug":"keyboardshortcutcheatsheet-whatsnewdialog","components":["KeyboardShortcutCheatsheet","WhatsNewDialog"]},{"title":"FeedbackWidget · ContactSupport","slug":"feedbackwidget-contactsupport","components":["FeedbackWidget","ContactSupport"]}]},
{"number":39,"slug":"theme","title":"Theme","summary":"Tokens every component reads. Light and dark share one grammar.","stories":[{"title":"Surfaces","slug":"surfaces","components":[]},{"title":"Ink","slug":"ink","components":[]},{"title":"Signals","slug":"signals","components":[]},{"title":"Series","slug":"series","components":[]},{"title":"Syntax","slug":"syntax","components":[]},{"title":"Type","slug":"type","components":[]},{"title":"Shape","slug":"shape","components":[]},{"title":"Motion","slug":"motion","components":["Motion"]},{"title":"ThemeEditor · DensityProvider · RadiusProvider · FontProvider · HighContrastMode · ReducedMotionProvider","slug":"themeeditor-densityprovider-radiusprovider-fontprovider-highcontrastmode-reducedmotionprovider","components":["ThemeEditor","DensityProvider","RadiusProvider","FontProvider","HighContrastMode","ReducedMotionProvider"]},{"title":"ThemeImporter · SyntaxThemes","slug":"themeimporter-syntaxthemes","components":["ThemeImporter","SyntaxThemes"]},{"title":"Platform Style · IconThemeProvider · VibrancyBackground","slug":"platform-style-iconthemeprovider-vibrancybackground","components":["Platform Style","IconThemeProvider","VibrancyBackground"]}]},
{"number":39,"slug":"theme","title":"Theme","summary":"Tokens every component reads. Light and dark share one grammar.","stories":[{"title":"Surfaces","slug":"surfaces","components":["ColorTokens"]},{"title":"Ink","slug":"ink","components":["ColorTokens"]},{"title":"Signals","slug":"signals","components":["ColorTokens"]},{"title":"Series","slug":"series","components":["ColorTokens"]},{"title":"Syntax","slug":"syntax","components":["ColorTokens"]},{"title":"Type","slug":"type","components":[]},{"title":"Shape","slug":"shape","components":["Elevation"]},{"title":"Motion","slug":"motion","components":["Motion","Spring"]},{"title":"ThemeEditor · DensityProvider · RadiusProvider · FontProvider · HighContrastMode · ReducedMotionProvider","slug":"themeeditor-densityprovider-radiusprovider-fontprovider-highcontrastmode-reducedmotionprovider","components":["ThemeEditor","ThemeProvider","DensityProvider","RadiusProvider","FontProvider","HighContrastMode","ReducedMotionProvider"]},{"title":"ThemeImporter · SyntaxThemes","slug":"themeimporter-syntaxthemes","components":["ThemeImporter","SyntaxThemes"]},{"title":"Platform Style · IconThemeProvider · VibrancyBackground","slug":"platform-style-iconthemeprovider-vibrancybackground","components":["Platform Style","IconThemeProvider","VibrancyBackground"]}]},
{"number":40,"slug":"i18n","title":"i18n & a11y","summary":"Messages, numbers and dates in the reader's locale. A right-to-left locale mirrors its stacks.","stories":[{"title":"I18nProvider · Trans / LocalizedText","slug":"i18nprovider-trans-localizedtext","components":["I18nProvider","Trans","LocalizedText"]},{"title":"LocaleNumber / LocaleDate","slug":"localenumber-localedate","components":["LocaleNumber","LocaleDate"]},{"title":"RTL layout","slug":"rtl-layout","components":["RTL layout"]},{"title":"SkipLink · KeyboardNavigationHelper","slug":"skiplink-keyboardnavigationhelper","components":["SkipLink","KeyboardNavigationHelper"]},{"title":"ColorBlindSafe Palette","slug":"colorblindsafe-palette","components":["ColorBlindSafe Palette"]}]},
{"number":41,"slug":"maps","title":"Maps","summary":"Tiles the host supplies, pins with a popup, a picker's crosshair, routes, GeoJSON, heat, clusters and choropleths. The land is Natural Earth's.","stories":[{"title":"MapView · MapMarker · MapPopup","slug":"mapview-mapmarker-mappopup","components":["MapView","MapMarker","MapPopup"]},{"title":"CoordinateDisplay","slug":"coordinatedisplay","components":["CoordinateDisplay"]},{"title":"LocationPicker","slug":"locationpicker","components":["LocationPicker"]},{"title":"RouteLine · GeoJSON Layer","slug":"routeline-geojson-layer","components":["RouteLine","GeoJSON Layer"]},{"title":"GeoHeatmap","slug":"geoheatmap","components":["GeoHeatmap"]},{"title":"MapCluster","slug":"mapcluster","components":["MapCluster"]},{"title":"ChoroplethMap · WorldMap","slug":"choroplethmap-worldmap","components":["ChoroplethMap","WorldMap"]}]},
{"number":42,"slug":"misc","title":"Misc","summary":"Small tools that stand alone: clocks, a stopwatch, a calculator, a unit converter, a QR code scanner, a captcha, a poll, a survey, a quiz, flashcards, licenses, terms, a cookie banner, data out and in, and web views.","stories":[{"title":"Clock / WorldClock","slug":"clock-worldclock","components":["Clock","WorldClock"]},{"title":"Stopwatch","slug":"stopwatch","components":["Stopwatch"]},{"title":"Calculator","slug":"calculator","components":["Calculator"]},{"title":"UnitConverter","slug":"unitconverter","components":["UnitConverter"]},{"title":"QRCodeScanner","slug":"qrcodescanner","components":["QRCodeScanner"]},{"title":"Captcha","slug":"captcha","components":["Captcha"]},{"title":"BarcodeDisplay · Signature · Rating Widget","slug":"barcodedisplay-signature-rating-widget","components":["BarcodeDisplay","Signature","Rating Widget"]},{"title":"Poll / Survey","slug":"poll-survey","components":["Poll","Survey"]},{"title":"Quiz / Flashcard","slug":"quiz-flashcard","components":["Quiz","Flashcard"]},{"title":"ChangeLog Viewer","slug":"changelog-viewer","components":["ChangeLog Viewer"]},{"title":"LicenseViewer","slug":"licenseviewer","components":["LicenseViewer"]},{"title":"Terms / Consent Dialog / CookieBanner","slug":"terms-consent-dialog-cookiebanner","components":["Terms","Consent Dialog","CookieBanner"]},{"title":"ExportDialog / ImportDialog / CSVImporter","slug":"exportdialog-importdialog-csvimporter","components":["ExportDialog","ImportDialog","CSVImporter"]},{"title":"WebView / HTMLPreview","slug":"webview-htmlpreview","components":["WebView","HTMLPreview"]},{"title":"IframeEmbed / EmbedCard","slug":"iframeembed-embedcard","components":["IframeEmbed","EmbedCard"]},{"title":"PrintButton · ShareSheet","slug":"printbutton-sharesheet","components":["PrintButton","ShareSheet"]}]},
log::info!("gallery: theme {theme} waits for the window");
EARLY.set(Some(choice));
}
});
Ok(())
}
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.