zidane-ui 9.0.4 → 9.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/adapters/extension-modules.d.ts +147 -0
- package/dist/adapters/extension-modules.js +244 -0
- package/dist/adapters/index.d.ts +3 -1
- package/dist/adapters/index.js +3 -1
- package/dist/adapters/live.d.ts +6 -0
- package/dist/adapters/live.js +33 -3
- package/dist/adapters/server-composer-host.js +20 -37
- package/dist/adapters/server-extensions-host.d.ts +113 -0
- package/dist/adapters/server-extensions-host.js +829 -0
- package/dist/adapters/server-host.js +28 -6
- package/dist/adapters/server-machines-host.js +1 -1
- package/dist/adapters/server-settings-host.js +1 -1
- package/dist/adapters/server-settings-sections.js +36 -13
- package/dist/adapters/server-transcript-members.d.ts +1 -1
- package/dist/adapters/server-transcript-members.js +19 -1
- package/dist/app/AppHostProvider.d.ts +4 -1
- package/dist/app/AppHostProvider.js +11 -4
- package/dist/app/ModalProvider.d.ts +9 -3
- package/dist/app/ModalProvider.js +45 -25
- package/dist/app/headless/app-host.d.ts +3 -0
- package/dist/appearance/AppearanceProvider.d.ts +11 -4
- package/dist/appearance/AppearanceProvider.js +18 -6
- package/dist/appearance/headless/index.js +1 -1
- package/dist/appearance/headless/prefs.d.ts +2 -2
- package/dist/appearance/index.d.ts +1 -1
- package/dist/approvals/ApprovalBar.js +7 -1
- package/dist/approvals/FileEditApproval.js +7 -3
- package/dist/approvals/headless/index.js +2 -2
- package/dist/approvals/headless/labels.js +3 -3
- package/dist/chat/HostBadge.js +1 -1
- package/dist/chat/HostStatusDot.js +1 -1
- package/dist/chat/HostTranscript.d.ts +3 -1
- package/dist/chat/HostTranscript.js +5 -3
- package/dist/chat/RunEstimateChip.d.ts +53 -0
- package/dist/chat/RunEstimateChip.js +116 -0
- package/dist/chat/SessionFilterMenu.d.ts +77 -5
- package/dist/chat/SessionFilterMenu.js +86 -4
- package/dist/chat/SessionGroupHeader.d.ts +6 -2
- package/dist/chat/SessionGroupHeader.js +35 -3
- package/dist/chat/SessionHostHeader.js +1 -1
- package/dist/chat/SessionList.js +1 -1
- package/dist/chat/SessionListRow.d.ts +8 -1
- package/dist/chat/SessionListRow.js +5 -4
- package/dist/chat/Throbber.js +0 -3
- package/dist/chat/Transcript.d.ts +1 -1
- package/dist/chat/Transcript.js +112 -57
- package/dist/chat/composer/ComposerEditor.js +1 -1
- package/dist/chat/composer/ConversationBadges.js +18 -11
- package/dist/chat/composer/HostPicker.js +1 -1
- package/dist/chat/composer/ProjectMenu.d.ts +8 -1
- package/dist/chat/composer/ProjectMenu.js +11 -8
- package/dist/chat/composer/RetryPill.js +1 -1
- package/dist/chat/composer/SelectTurnHint.d.ts +19 -0
- package/dist/chat/composer/SelectTurnHint.js +28 -0
- package/dist/chat/composer/ServerScopeToggle.js +4 -1
- package/dist/chat/composer/composer-bus.d.ts +8 -1
- package/dist/chat/composer/composer-bus.js +10 -1
- package/dist/chat/composer/index.d.ts +4 -4
- package/dist/chat/composer/index.js +3 -3
- package/dist/chat/composer/use-composer-stores.js +1 -1
- package/dist/chat/composer/use-draft-target.d.ts +19 -1
- package/dist/chat/composer/use-draft-target.js +14 -1
- package/dist/chat/composer/use-run-meter.js +1 -1
- package/dist/chat/headless/block-runs.d.ts +57 -0
- package/dist/chat/headless/block-runs.js +123 -0
- package/dist/chat/headless/chip-labels.d.ts +1 -0
- package/dist/chat/headless/chip-labels.js +1 -0
- package/dist/chat/headless/composer/conversation-badges.d.ts +8 -6
- package/dist/chat/headless/composer/conversation-badges.js +26 -24
- package/dist/chat/headless/composer/host-chrome.d.ts +2 -27
- package/dist/chat/headless/composer/host.d.ts +1 -3
- package/dist/chat/headless/composer/index.d.ts +3 -4
- package/dist/chat/headless/composer/index.js +5 -6
- package/dist/chat/headless/composer/labels-chrome.d.ts +1 -1
- package/dist/chat/headless/composer/labels-chrome.js +1 -1
- package/dist/chat/headless/extension-sources.d.ts +17 -0
- package/dist/chat/headless/extension-sources.js +52 -0
- package/dist/chat/headless/fixture-transcript.d.ts +6 -1
- package/dist/chat/headless/fixture-transcript.js +49 -0
- package/dist/chat/headless/host.d.ts +8 -0
- package/dist/chat/headless/hosts.d.ts +2 -0
- package/dist/chat/headless/index.d.ts +10 -8
- package/dist/chat/headless/index.js +21 -18
- package/dist/chat/headless/labels.d.ts +79 -1
- package/dist/chat/headless/labels.js +80 -3
- package/dist/chat/headless/session-list.d.ts +65 -2
- package/dist/chat/headless/session-list.js +10 -2
- package/dist/chat/headless/sidebar/badges.d.ts +2 -0
- package/dist/chat/headless/sidebar/badges.js +20 -1
- package/dist/chat/headless/sidebar/directory.d.ts +46 -6
- package/dist/chat/headless/sidebar/directory.js +198 -22
- package/dist/chat/headless/sidebar/estimates.d.ts +55 -0
- package/dist/chat/headless/sidebar/estimates.js +91 -0
- package/dist/chat/headless/sidebar/index.d.ts +6 -4
- package/dist/chat/headless/sidebar/index.js +6 -3
- package/dist/chat/headless/sidebar/labels.d.ts +71 -1
- package/dist/chat/headless/sidebar/labels.js +17 -0
- package/dist/chat/headless/sidebar/query.d.ts +276 -0
- package/dist/chat/headless/sidebar/query.js +450 -0
- package/dist/chat/headless/sidebar/rows.d.ts +104 -13
- package/dist/chat/headless/sidebar/rows.js +189 -5
- package/dist/chat/headless/sidebar/types.d.ts +37 -4
- package/dist/chat/headless/sidebar/types.js +8 -0
- package/dist/chat/headless/sidebar/view.d.ts +25 -1
- package/dist/chat/headless/sidebar/view.js +56 -3
- package/dist/chat/headless/streams/live-events.js +2 -1
- package/dist/chat/headless/streams/session-streams.js +6 -0
- package/dist/chat/headless/transcript/batch.d.ts +21 -1
- package/dist/chat/headless/transcript/batch.js +55 -10
- package/dist/chat/headless/transcript/collapse.js +22 -3
- package/dist/chat/headless/transcript/fold-attachments.js +1 -1
- package/dist/chat/headless/transcript/fold.js +26 -10
- package/dist/chat/headless/transcript/rows.d.ts +15 -1
- package/dist/chat/headless/transcript-labels.d.ts +1 -0
- package/dist/chat/index.d.ts +14 -6
- package/dist/chat/index.js +40 -32
- package/dist/chat/rich-composer/RichComposer.js +32 -1
- package/dist/chat/rich-composer/badge-decorations.js +1 -1
- package/dist/chat/rich-composer/use-extension-composer.d.ts +32 -0
- package/dist/chat/rich-composer/use-extension-composer.js +46 -0
- package/dist/chat/sidebar/MainSessionRow.js +1 -1
- package/dist/chat/sidebar/ProjectIcon.d.ts +25 -6
- package/dist/chat/sidebar/ProjectIcon.js +79 -34
- package/dist/chat/sidebar/SessionSidebar.d.ts +34 -1
- package/dist/chat/sidebar/SessionSidebar.js +161 -25
- package/dist/chat/sidebar/SidebarDecoration.d.ts +38 -0
- package/dist/chat/sidebar/SidebarDecoration.js +61 -0
- package/dist/chat/sidebar/SidebarFilterMenu.d.ts +15 -2
- package/dist/chat/sidebar/SidebarFilterMenu.js +226 -8
- package/dist/chat/sidebar/SidebarFooter.d.ts +3 -1
- package/dist/chat/sidebar/SidebarFooter.js +17 -4
- package/dist/chat/sidebar/SidebarGroupHeader.d.ts +17 -4
- package/dist/chat/sidebar/SidebarGroupHeader.js +23 -4
- package/dist/chat/sidebar/SidebarRowView.d.ts +30 -0
- package/dist/chat/sidebar/SidebarRowView.js +117 -0
- package/dist/chat/sidebar/SidebarSessionRow.d.ts +4 -1
- package/dist/chat/sidebar/SidebarSessionRow.js +22 -4
- package/dist/chat/sidebar/SpaceSwitcher.d.ts +12 -5
- package/dist/chat/sidebar/SpaceSwitcher.js +142 -49
- package/dist/chat/sidebar/SpacesSection.js +4 -2
- package/dist/chat/sidebar/collapsed.d.ts +24 -0
- package/dist/chat/sidebar/collapsed.js +44 -0
- package/dist/chat/sidebar/index.d.ts +8 -4
- package/dist/chat/sidebar/index.js +6 -2
- package/dist/chat/sidebar/session-menu.d.ts +2 -0
- package/dist/chat/sidebar/session-menu.js +8 -2
- package/dist/chat/sidebar/sidebar-live.d.ts +12 -1
- package/dist/chat/sidebar/sidebar-live.js +57 -17
- package/dist/chat/sidebar/useAgentNames.d.ts +8 -0
- package/dist/chat/sidebar/useAgentNames.js +13 -0
- package/dist/chat/sidebar/useSaveViewAsSpace.d.ts +13 -0
- package/dist/chat/sidebar/useSaveViewAsSpace.js +44 -0
- package/dist/chat/sidebar/useSessionDirectoryView.d.ts +4 -1
- package/dist/chat/sidebar/useSessionDirectoryView.js +46 -12
- package/dist/chat/sidebar/useSidebarKeyboardNav.js +3 -1
- package/dist/chat/testing/composer.contract.d.ts +2 -6
- package/dist/chat/testing/composer.contract.js +2 -31
- package/dist/chat/testing/contract.d.ts +6 -1
- package/dist/chat/testing/contract.js +30 -3
- package/dist/chat/testing/fixture-composer-chrome.d.ts +2 -6
- package/dist/chat/testing/fixture-composer-chrome.js +1 -17
- package/dist/chat/transcript/AnsiText.d.ts +27 -0
- package/dist/chat/transcript/AnsiText.js +73 -0
- package/dist/chat/transcript/BadgeMenu.d.ts +2 -0
- package/dist/chat/transcript/BadgeMenu.js +22 -6
- package/dist/chat/transcript/CardMarkdown.js +17 -5
- package/dist/chat/transcript/ChipCard.js +6 -0
- package/dist/chat/transcript/ChipCards.js +2 -2
- package/dist/chat/transcript/CodemodeScript.d.ts +33 -0
- package/dist/chat/transcript/CodemodeScript.js +212 -0
- package/dist/chat/transcript/EditDiffBlock.js +4 -1
- package/dist/chat/transcript/FileChip.js +20 -7
- package/dist/chat/transcript/InlineChipText.js +1 -1
- package/dist/chat/transcript/InteractionToolBody.js +32 -13
- package/dist/chat/transcript/LiveOutput.d.ts +21 -0
- package/dist/chat/transcript/LiveOutput.js +42 -0
- package/dist/chat/transcript/MermaidDiagram.d.ts +22 -0
- package/dist/chat/transcript/MermaidDiagram.js +410 -0
- package/dist/chat/transcript/PromptEcho.js +5 -5
- package/dist/chat/transcript/ProseMarkdown.js +9 -6
- package/dist/chat/transcript/ReferenceText.js +7 -2
- package/dist/chat/transcript/SelectTurnHint.js +1 -1
- package/dist/chat/transcript/SubagentBlock.d.ts +4 -2
- package/dist/chat/transcript/SubagentBlock.js +5 -2
- package/dist/chat/transcript/TranscriptRow.js +28 -6
- package/dist/chat/transcript/TranscriptSearch.js +1 -1
- package/dist/chat/transcript/actions.d.ts +6 -0
- package/dist/chat/transcript/badges.js +5 -2
- package/dist/chat/transcript/extension-renderers.d.ts +36 -0
- package/dist/chat/transcript/extension-renderers.js +133 -0
- package/dist/chat/transcript/fold-worker.js +2 -2
- package/dist/chat/transcript/fold.js +6 -4
- package/dist/chat/transcript/index.d.ts +8 -2
- package/dist/chat/transcript/index.js +35 -29
- package/dist/chat/transcript/markdown-cache.js +16 -7
- package/dist/chat/transcript/markdown.d.ts +15 -1
- package/dist/chat/transcript/markdown.js +71 -6
- package/dist/chat/transcript/messages.js +3 -2
- package/dist/chat/transcript/notices.js +1 -1
- package/dist/chat/transcript/prompt.js +1 -1
- package/dist/chat/transcript/prose.js +1 -1
- package/dist/chat/transcript/recent-map.d.ts +20 -0
- package/dist/chat/transcript/recent-map.js +22 -0
- package/dist/chat/transcript/references.js +7 -3
- package/dist/chat/transcript/renderers.d.ts +11 -1
- package/dist/chat/transcript/renderers.js +14 -4
- package/dist/chat/transcript/script-input.d.ts +17 -0
- package/dist/chat/transcript/script-input.js +16 -0
- package/dist/chat/transcript/shell-block-scope.d.ts +29 -0
- package/dist/chat/transcript/shell-block-scope.js +18 -0
- package/dist/chat/transcript/shell-block.d.ts +27 -0
- package/dist/chat/transcript/shell-block.js +306 -0
- package/dist/chat/transcript/tool-batch.js +4 -9
- package/dist/chat/transcript/tool-details.js +7 -67
- package/dist/chat/transcript/tool-parts.d.ts +18 -6
- package/dist/chat/transcript/tool-parts.js +15 -5
- package/dist/chat/transcript/tool-payload.d.ts +21 -0
- package/dist/chat/transcript/tool-payload.js +80 -0
- package/dist/chat/transcript/tool-row.js +158 -96
- package/dist/chat/transcript/useTranscriptScroll.js +3 -2
- package/dist/chat/transcript/user-bash.js +3 -2
- package/dist/chat/transcript-options.d.ts +15 -0
- package/dist/chat/transcript-options.js +40 -0
- package/dist/code/CodeHighlightProvider.d.ts +3 -3
- package/dist/code/CodeHighlightProvider.js +4 -4
- package/dist/code/HighlightedCode.d.ts +7 -2
- package/dist/code/HighlightedCode.js +7 -71
- package/dist/code/code-themes.d.ts +13 -6
- package/dist/code/code-themes.js +385 -13
- package/dist/code/editor/CodeHover.d.ts +5 -4
- package/dist/code/editor/CodeHover.js +20 -16
- package/dist/code/editor/HighlightWorkers.js +2 -2
- package/dist/code/editor/edit-session.js +1 -0
- package/dist/code/editor/environment.d.ts +1 -1
- package/dist/code/editor/environment.js +1 -1
- package/dist/code/editor/index.d.ts +2 -2
- package/dist/code/editor/index.js +2 -2
- package/dist/code/editor/pierre-theme.d.ts +5 -5
- package/dist/code/editor/pierre-theme.js +6 -5
- package/dist/code/highlight-lines.d.ts +24 -0
- package/dist/code/highlight-lines.js +41 -0
- package/dist/code/highlight.worker.js +2 -14
- package/dist/code/highlighter.d.ts +24 -9
- package/dist/code/highlighter.js +1 -4
- package/dist/code/highlights.d.ts +12 -0
- package/dist/code/highlights.js +47 -0
- package/dist/code/mermaid-lexer.d.ts +26 -0
- package/dist/code/mermaid-lexer.js +303 -0
- package/dist/code/shiki-theme.d.ts +6 -6
- package/dist/code/shiki-theme.js +3 -3
- package/dist/code/use-highlighted-html.d.ts +5 -0
- package/dist/code/use-highlighted-html.js +75 -0
- package/dist/components/BrandMark.d.ts +6 -4
- package/dist/components/BrandMark.js +5 -2
- package/dist/components/CodeFrame.d.ts +5 -0
- package/dist/components/CodeFrame.js +27 -23
- package/dist/components/Form.js +1 -1
- package/dist/core.css +82 -11
- package/dist/dist/{index-Cx7GDZlz.d.ts → index-WlE93Q6d.d.ts} +255 -51
- package/dist/extensions/ExtensionComponent.d.ts +62 -0
- package/dist/extensions/ExtensionComponent.js +120 -0
- package/dist/extensions/ExtensionDialogHost.d.ts +31 -0
- package/dist/extensions/ExtensionDialogHost.js +439 -0
- package/dist/extensions/ExtensionRenderer.d.ts +30 -0
- package/dist/extensions/ExtensionRenderer.js +78 -0
- package/dist/extensions/ExtensionScreen.d.ts +24 -0
- package/dist/extensions/ExtensionScreen.js +120 -0
- package/dist/extensions/ExtensionSettingsPage.d.ts +19 -0
- package/dist/extensions/ExtensionSettingsPage.js +116 -0
- package/dist/extensions/ExtensionSettingsPages.d.ts +17 -0
- package/dist/extensions/ExtensionSettingsPages.js +33 -0
- package/dist/extensions/ExtensionSettingsSidebar.d.ts +63 -0
- package/dist/extensions/ExtensionSettingsSidebar.js +360 -0
- package/dist/extensions/ExtensionSlot.d.ts +44 -0
- package/dist/extensions/ExtensionSlot.js +161 -0
- package/dist/extensions/ExtensionWebview.d.ts +32 -0
- package/dist/extensions/ExtensionWebview.js +80 -0
- package/dist/extensions/ExtensionsProvider.d.ts +42 -0
- package/dist/extensions/ExtensionsProvider.js +104 -0
- package/dist/extensions/SettingsWireForm.d.ts +44 -0
- package/dist/extensions/SettingsWireForm.js +104 -0
- package/dist/extensions/headless/dialog-queue.d.ts +27 -0
- package/dist/extensions/headless/dialog-queue.js +68 -0
- package/dist/extensions/headless/effect-channel.d.ts +15 -0
- package/dist/extensions/headless/effect-channel.js +33 -0
- package/dist/extensions/headless/effect-router.d.ts +34 -0
- package/dist/extensions/headless/effect-router.js +50 -0
- package/dist/extensions/headless/fixture-host.d.ts +110 -0
- package/dist/extensions/headless/fixture-host.js +258 -0
- package/dist/extensions/headless/host.d.ts +433 -0
- package/dist/extensions/headless/host.js +27 -0
- package/dist/extensions/headless/index.d.ts +10 -0
- package/dist/extensions/headless/index.js +10 -0
- package/dist/extensions/headless/labels.d.ts +45 -0
- package/dist/extensions/headless/labels.js +49 -0
- package/dist/extensions/headless/links.d.ts +30 -0
- package/dist/extensions/headless/links.js +34 -0
- package/dist/extensions/headless/select.d.ts +120 -0
- package/dist/extensions/headless/select.js +191 -0
- package/dist/extensions/headless/webview-bridge.d.ts +71 -0
- package/dist/extensions/headless/webview-bridge.js +78 -0
- package/dist/extensions/headless/wire.d.ts +113 -0
- package/dist/extensions/headless/wire.js +38 -0
- package/dist/extensions/hooks.d.ts +88 -0
- package/dist/extensions/hooks.js +151 -0
- package/dist/extensions/index.d.ts +15 -0
- package/dist/extensions/index.js +15 -0
- package/dist/extensions/kit.d.ts +19 -0
- package/dist/extensions/kit.js +19 -0
- package/dist/extensions/links.d.ts +79 -0
- package/dist/extensions/links.js +94 -0
- package/dist/extensions/testing/contract.d.ts +80 -0
- package/dist/extensions/testing/contract.js +407 -0
- package/dist/extensions/testing/index.d.ts +2 -0
- package/dist/extensions/testing/index.js +1 -0
- package/dist/extensions/useExtensionsLabels.d.ts +6 -0
- package/dist/extensions/useExtensionsLabels.js +18 -0
- package/dist/files/DiffsTab.js +7 -19
- package/dist/files/EditorColumn.js +1 -1
- package/dist/files/EditorEnvironmentRoot.d.ts +15 -0
- package/dist/files/EditorEnvironmentRoot.js +55 -0
- package/dist/files/MediaDiff.js +1 -1
- package/dist/files/drafts-store.d.ts +10 -0
- package/dist/files/drafts-store.js +30 -1
- package/dist/files/headless/lsp-edits.d.ts +4 -1
- package/dist/files/headless/lsp-edits.js +14 -2
- package/dist/files/index.d.ts +2 -1
- package/dist/files/index.js +2 -1
- package/dist/files/session-patch.d.ts +11 -0
- package/dist/files/session-patch.js +44 -0
- package/dist/files/useEntryActions.js +1 -1
- package/dist/files/useLsp.js +5 -2
- package/dist/files/useOpenFiles.js +1 -1
- package/dist/git/BranchMenu.d.ts +1 -5
- package/dist/git/BranchMenu.js +23 -39
- package/dist/git/GitBar.d.ts +1 -1
- package/dist/git/GitBar.js +7 -1
- package/dist/git/ImportRepoDialog.d.ts +3 -1
- package/dist/git/ImportRepoDialog.js +8 -6
- package/dist/git/MoveSessionDialog.js +3 -1
- package/dist/git/headless/labels.d.ts +0 -2
- package/dist/git/headless/labels.js +0 -2
- package/dist/hooks/useDisplayPath.d.ts +40 -0
- package/dist/hooks/useDisplayPath.js +75 -0
- package/dist/index.d.ts +6 -4
- package/dist/index.js +4 -2
- package/dist/keybindings/KeyCommands.js +1 -1
- package/dist/keybindings/KeybindingsProvider.js +1 -1
- package/dist/keybindings/headless/index.js +2 -2
- package/dist/keybindings/headless/overrides.js +1 -1
- package/dist/keybindings/index.d.ts +2 -1
- package/dist/keybindings/index.js +2 -1
- package/dist/keybindings/press.d.ts +27 -0
- package/dist/keybindings/press.js +67 -0
- package/dist/machines/Banners.js +1 -1
- package/dist/machines/HostSyncPanel.js +1 -1
- package/dist/machines/HostsSection.js +1 -1
- package/dist/machines/SyncOutcomeBadge.js +1 -1
- package/dist/machines/headless/index.js +1 -1
- package/dist/machines/headless/labels.d.ts +1 -0
- package/dist/machines/headless/labels.js +1 -0
- package/dist/machines/headless/messages.d.ts +2 -1
- package/dist/machines/headless/messages.js +4 -3
- package/dist/machines/settings-section.d.ts +1 -1
- package/dist/onboarding/conversation.js +21 -3
- package/dist/onboarding/demos/features.d.ts +5 -1
- package/dist/onboarding/demos/features.js +80 -1
- package/dist/onboarding/headless/fixture-host.d.ts +2 -2
- package/dist/onboarding/headless/host.d.ts +2 -2
- package/dist/onboarding/headless/labels.d.ts +2 -0
- package/dist/onboarding/headless/labels.js +2 -0
- package/dist/onboarding/index.d.ts +4 -2
- package/dist/onboarding/index.js +3 -2
- package/dist/onboarding/marks.d.ts +29 -7
- package/dist/onboarding/marks.js +38 -12
- package/dist/onboarding/skills/SkillSourceBrowser.js +56 -247
- package/dist/onboarding/skills/parts.d.ts +31 -4
- package/dist/onboarding/skills/parts.js +8 -11
- package/dist/onboarding/sources/SourceBrowser.d.ts +87 -0
- package/dist/onboarding/sources/SourceBrowser.js +292 -0
- package/dist/onboarding/steps/ConnectStep.js +1 -1
- package/dist/onboarding/steps/ConnectorsStep.js +3 -3
- package/dist/onboarding/steps/ConversationStep.js +2 -1
- package/dist/onboarding/steps/ExtensionsStep.js +2 -2
- package/dist/onboarding/steps/ReadyStep.js +2 -2
- package/dist/onboarding/steps/connect/ProviderPanel.js +1 -1
- package/dist/palette/app-sources.js +1 -1
- package/dist/path.d.ts +24 -2
- package/dist/path.js +34 -2
- package/dist/session/ArtifactRowChips.js +11 -2
- package/dist/session/ArtifactsPanel.d.ts +2 -0
- package/dist/session/ArtifactsPanel.js +67 -27
- package/dist/session/ProjectHome.d.ts +82 -0
- package/dist/session/ProjectHome.js +518 -0
- package/dist/session/ProviderUsageProvider.d.ts +3 -1
- package/dist/session/ProviderUsageProvider.js +5 -2
- package/dist/session/QueueTab.js +1 -1
- package/dist/session/SessionCacheFacts.js +1 -1
- package/dist/session/SessionDetailsDialog.d.ts +1 -1
- package/dist/session/SessionDetailsDialog.js +5 -2
- package/dist/session/SessionHeader.d.ts +3 -1
- package/dist/session/SessionHeader.js +7 -1
- package/dist/session/SideChat.js +2 -2
- package/dist/session/TodosPanel.js +4 -1
- package/dist/session/UsagePanel.js +139 -17
- package/dist/session/WelcomeScreen.d.ts +1 -1
- package/dist/session/WelcomeScreen.js +46 -502
- package/dist/session/headless/fixture-host.js +43 -1
- package/dist/session/headless/home-layout.d.ts +137 -0
- package/dist/session/headless/home-layout.js +235 -0
- package/dist/session/headless/host.d.ts +3 -1
- package/dist/session/headless/index.d.ts +4 -3
- package/dist/session/headless/index.js +4 -3
- package/dist/session/headless/labels.d.ts +33 -36
- package/dist/session/headless/labels.js +48 -47
- package/dist/session/headless/usage-format.d.ts +2 -92
- package/dist/session/headless/usage-format.js +2 -181
- package/dist/session/headless/usage.d.ts +15 -2
- package/dist/session/headless/usage.js +15 -1
- package/dist/session/index.d.ts +3 -1
- package/dist/session/index.js +4 -2
- package/dist/session/modal-shell.d.ts +8 -0
- package/dist/session/modal-shell.js +18 -0
- package/dist/session/testing/contract.d.ts +1 -1
- package/dist/session/testing/contract.js +16 -0
- package/dist/session/testing/demo.js +28 -4
- package/dist/settings/SettingsNav.d.ts +3 -2
- package/dist/settings/SettingsNav.js +86 -13
- package/dist/settings/SettingsRowsPage.d.ts +2 -2
- package/dist/settings/SettingsShell.d.ts +3 -1
- package/dist/settings/SettingsShell.js +16 -9
- package/dist/settings/headless/catalog.js +20 -0
- package/dist/settings/headless/fixture-sections.d.ts +10 -1
- package/dist/settings/headless/fixture-sections.js +88 -3
- package/dist/settings/headless/host.d.ts +2 -0
- package/dist/settings/headless/index.d.ts +4 -4
- package/dist/settings/headless/index.js +1 -1
- package/dist/settings/headless/layout.d.ts +8 -4
- package/dist/settings/headless/layout.js +22 -16
- package/dist/settings/headless/registry.d.ts +14 -0
- package/dist/settings/headless/search.d.ts +1 -1
- package/dist/settings/headless/sections-host.d.ts +36 -3
- package/dist/settings/index.d.ts +5 -3
- package/dist/settings/index.js +8 -6
- package/dist/settings/sections/appearance/AppearanceSection.js +4 -4
- package/dist/settings/sections/claude-import/ClaudeImportDialog.js +1 -1
- package/dist/settings/sections/editor/EditorSection.js +1 -1
- package/dist/settings/sections/environments/EnvironmentsSection.js +1 -1
- package/dist/settings/sections/extensions/ChangeOriginDialog.d.ts +48 -0
- package/dist/settings/sections/extensions/ChangeOriginDialog.js +181 -0
- package/dist/settings/sections/extensions/CreateExtensionDialog.js +5 -2
- package/dist/settings/sections/extensions/ExtensionConfigRows.d.ts +76 -0
- package/dist/settings/sections/extensions/ExtensionConfigRows.js +349 -0
- package/dist/settings/sections/extensions/ExtensionOptionsSection.d.ts +1 -4
- package/dist/settings/sections/extensions/ExtensionOptionsSection.js +23 -286
- package/dist/settings/sections/extensions/ExtensionPicksBar.d.ts +46 -0
- package/dist/settings/sections/extensions/ExtensionPicksBar.js +102 -0
- package/dist/settings/sections/extensions/ExtensionSourceBrowser.d.ts +50 -0
- package/dist/settings/sections/extensions/ExtensionSourceBrowser.js +164 -0
- package/dist/settings/sections/extensions/ExtensionsSection.d.ts +6 -2
- package/dist/settings/sections/extensions/ExtensionsSection.js +233 -42
- package/dist/settings/sections/extensions/labels.d.ts +26 -5
- package/dist/settings/sections/extensions/labels.js +28 -3
- package/dist/settings/sections/extensions/options-labels.d.ts +2 -0
- package/dist/settings/sections/extensions/options-labels.js +2 -0
- package/dist/settings/sections/host-catalog/HostCatalogSection.js +104 -30
- package/dist/settings/sections/host-catalog/labels.js +4 -2
- package/dist/settings/sections/index.d.ts +5 -3
- package/dist/settings/sections/index.js +8 -6
- package/dist/settings/sections/instructions/InstructionsSection.js +7 -4
- package/dist/settings/sections/mcp/McpSection.js +1 -1
- package/dist/settings/sections/mcp/McpServerRow.js +3 -2
- package/dist/settings/sections/models/AgentDefaults.js +1 -1
- package/dist/settings/sections/models/ModelPickField.js +1 -1
- package/dist/settings/sections/models/ModelRows.js +3 -3
- package/dist/settings/sections/plugins/PluginsSection.js +3 -1
- package/dist/settings/sections/providers/ProvidersSection.js +3 -3
- package/dist/settings/sections/providers/ServerProvidersSection.js +2 -2
- package/dist/settings/sections/providers/ServerSignIn.js +3 -3
- package/dist/settings/sections/shared/catalog.d.ts +6 -1
- package/dist/settings/sections/shared/catalog.js +28 -22
- package/dist/settings/sections/skills/SkillList.js +2 -2
- package/dist/settings/sections/skills/SkillsSection.js +1 -1
- package/dist/styles.css +526 -21
- package/dist/terminal/HostTerminalSurface.js +18 -8
- package/dist/terminal/TerminalProvider.d.ts +3 -1
- package/dist/terminal/TerminalProvider.js +5 -1
- package/dist/terminal/headless/store.d.ts +17 -0
- package/dist/terminal/headless/store.js +31 -0
- package/dist/terminal/index.d.ts +2 -2
- package/dist/terminal/index.js +2 -2
- package/dist/theme/runtime-icons.d.ts +50 -0
- package/dist/theme/runtime-icons.js +95 -0
- package/dist/workspace/PanelContentView.d.ts +33 -4
- package/dist/workspace/PanelContentView.js +192 -58
- package/dist/workspace/PanelCorner.d.ts +35 -0
- package/dist/workspace/PanelCorner.js +68 -0
- package/dist/workspace/PanelGroups.d.ts +7 -2
- package/dist/workspace/PanelGroups.js +7 -3
- package/dist/workspace/PanelHome.d.ts +19 -0
- package/dist/workspace/PanelHome.js +74 -0
- package/dist/workspace/PanelItems.d.ts +28 -0
- package/dist/workspace/PanelItems.js +330 -0
- package/dist/workspace/PanelStrip.d.ts +5 -1
- package/dist/workspace/PanelStrip.js +6 -4
- package/dist/workspace/SidePanel.d.ts +9 -3
- package/dist/workspace/SidePanel.js +47 -10
- package/dist/workspace/TabParking.d.ts +2 -0
- package/dist/workspace/TabParking.js +8 -2
- package/dist/workspace/WorkspaceProvider.d.ts +1 -1
- package/dist/workspace/WorkspaceProvider.js +10 -6
- package/dist/workspace/extension-tabs.d.ts +36 -0
- package/dist/workspace/extension-tabs.js +175 -0
- package/dist/workspace/headless/host.d.ts +6 -2
- package/dist/workspace/headless/index.js +1 -1
- package/dist/workspace/headless/labels.d.ts +7 -0
- package/dist/workspace/headless/labels.js +14 -0
- package/dist/workspace/headless/view.d.ts +5 -0
- package/dist/workspace/index.d.ts +3 -2
- package/dist/workspace/index.js +3 -2
- package/package.json +37 -9
- package/src/styles/components.css +24 -8
- package/src/styles/motion.css +35 -0
- package/src/styles/primitives.css +5 -2
- package/src/styles/rich-composer.css +7 -2
- package/src/styles/sidebar.css +24 -0
- package/src/styles/transcript.css +329 -0
- package/src/styles/workspace.css +58 -0
- package/dist/chat/composer/use-hud.d.ts +0 -16
- package/dist/chat/composer/use-hud.js +0 -36
- package/dist/chat/headless/composer/hud.d.ts +0 -25
- package/dist/chat/headless/composer/hud.js +0 -66
- package/src/adapters/browser-appearance-host.ts +0 -51
- package/src/adapters/browser-keybindings-host.ts +0 -48
- package/src/adapters/browser-workspace-host.ts +0 -92
- package/src/adapters/closable-client.ts +0 -34
- package/src/adapters/index.ts +0 -32
- package/src/adapters/live-events.ts +0 -6
- package/src/adapters/live.ts +0 -230
- package/src/adapters/run-host.ts +0 -238
- package/src/adapters/server-approvals-host.ts +0 -102
- package/src/adapters/server-client.ts +0 -15
- package/src/adapters/server-composer-host.ts +0 -474
- package/src/adapters/server-files-host.ts +0 -287
- package/src/adapters/server-git-host.ts +0 -289
- package/src/adapters/server-host.ts +0 -459
- package/src/adapters/server-machines-host.ts +0 -283
- package/src/adapters/server-oauth-flow.ts +0 -133
- package/src/adapters/server-onboarding-host.ts +0 -363
- package/src/adapters/server-palette-host.ts +0 -134
- package/src/adapters/server-session-host.ts +0 -241
- package/src/adapters/server-settings-accounts.ts +0 -212
- package/src/adapters/server-settings-host.ts +0 -120
- package/src/adapters/server-settings-models.ts +0 -46
- package/src/adapters/server-settings-performance.ts +0 -58
- package/src/adapters/server-settings-sections.ts +0 -184
- package/src/adapters/server-sidebar-host.ts +0 -59
- package/src/adapters/server-terminal-host.ts +0 -124
- package/src/adapters/server-transcript-members.ts +0 -131
- package/src/adapters/sse-host.ts +0 -264
- package/src/adapters/sse-parser.ts +0 -82
- package/src/adapters/sse-protocol.ts +0 -118
- package/src/adapters/stream-pacer.ts +0 -122
- package/src/adapters/worker-host.ts +0 -192
- package/src/adapters/worker-protocol.ts +0 -97
- package/src/app/AppHostProvider.tsx +0 -122
- package/src/app/ModalProvider.tsx +0 -711
- package/src/app/headless/app-host.ts +0 -58
- package/src/app/headless/index.ts +0 -6
- package/src/app/headless/resource.ts +0 -444
- package/src/app/index.ts +0 -9
- package/src/app/testing/index.ts +0 -90
- package/src/app/useConfirm.tsx +0 -65
- package/src/app/useResource.ts +0 -30
- package/src/appearance/AppearanceProvider.tsx +0 -359
- package/src/appearance/apply.ts +0 -69
- package/src/appearance/headless/fixture-host.ts +0 -111
- package/src/appearance/headless/fonts.ts +0 -224
- package/src/appearance/headless/host.ts +0 -65
- package/src/appearance/headless/index.ts +0 -12
- package/src/appearance/headless/prefs.ts +0 -252
- package/src/appearance/headless/storage.ts +0 -127
- package/src/appearance/headless/zoom-commands.ts +0 -21
- package/src/appearance/index.ts +0 -11
- package/src/appearance/testing/contract.ts +0 -210
- package/src/appearance/testing/index.ts +0 -6
- package/src/approvals/ApprovalBar.tsx +0 -227
- package/src/approvals/ApprovalConcern.tsx +0 -33
- package/src/approvals/ApprovalShell.tsx +0 -69
- package/src/approvals/ApprovalsProvider.tsx +0 -110
- package/src/approvals/FileEditApproval.tsx +0 -305
- package/src/approvals/HunkPreviews.tsx +0 -225
- package/src/approvals/SafelistPanel.tsx +0 -149
- package/src/approvals/headless/fixture-host.ts +0 -73
- package/src/approvals/headless/fixtures.ts +0 -86
- package/src/approvals/headless/heads.ts +0 -81
- package/src/approvals/headless/host.ts +0 -80
- package/src/approvals/headless/index.ts +0 -12
- package/src/approvals/headless/labels.ts +0 -67
- package/src/approvals/headless/pending.ts +0 -91
- package/src/approvals/headless/preview.ts +0 -94
- package/src/approvals/headless/safelist.ts +0 -63
- package/src/approvals/index.ts +0 -13
- package/src/approvals/key-scope.ts +0 -33
- package/src/approvals/testing/contract.ts +0 -230
- package/src/approvals/testing/index.ts +0 -7
- package/src/brands/marks.ts +0 -298
- package/src/chat/ChatProvider.tsx +0 -60
- package/src/chat/DaemonOrb.tsx +0 -107
- package/src/chat/HostBadge.tsx +0 -71
- package/src/chat/HostStatusDot.tsx +0 -53
- package/src/chat/HostTranscript.tsx +0 -101
- package/src/chat/PdfPreview.tsx +0 -65
- package/src/chat/SessionFilterMenu.tsx +0 -237
- package/src/chat/SessionGroupHeader.tsx +0 -136
- package/src/chat/SessionHostHeader.tsx +0 -66
- package/src/chat/SessionList.tsx +0 -413
- package/src/chat/SessionListRow.tsx +0 -279
- package/src/chat/SessionStreamsProvider.tsx +0 -253
- package/src/chat/StatusDot.tsx +0 -128
- package/src/chat/TextPreview.tsx +0 -121
- package/src/chat/Throbber.tsx +0 -277
- package/src/chat/Transcript.tsx +0 -461
- package/src/chat/composer/AgentPicker.tsx +0 -155
- package/src/chat/composer/AgentPickerDialog.tsx +0 -99
- package/src/chat/composer/ApprovalDock.tsx +0 -64
- package/src/chat/composer/ArchivedBanner.tsx +0 -44
- package/src/chat/composer/AttachmentTiles.tsx +0 -211
- package/src/chat/composer/Composer.tsx +0 -500
- package/src/chat/composer/ComposerBadges.tsx +0 -339
- package/src/chat/composer/ComposerControls.tsx +0 -243
- package/src/chat/composer/ComposerEditor.tsx +0 -101
- package/src/chat/composer/ComposerHostProvider.tsx +0 -46
- package/src/chat/composer/ComposerShell.tsx +0 -129
- package/src/chat/composer/ContextBreakdown.tsx +0 -382
- package/src/chat/composer/ContextOrb.tsx +0 -176
- package/src/chat/composer/ConversationBadges.tsx +0 -159
- package/src/chat/composer/DockCard.tsx +0 -126
- package/src/chat/composer/EffortPickerDialog.tsx +0 -184
- package/src/chat/composer/HostComposer.tsx +0 -135
- package/src/chat/composer/HostContextOrb.tsx +0 -94
- package/src/chat/composer/HostModelChainList.tsx +0 -102
- package/src/chat/composer/HostPicker.tsx +0 -97
- package/src/chat/composer/HostPickers.tsx +0 -320
- package/src/chat/composer/ImageModelList.tsx +0 -151
- package/src/chat/composer/ModelChainList.tsx +0 -442
- package/src/chat/composer/ModelChainParts.tsx +0 -247
- package/src/chat/composer/ModelChainRow.tsx +0 -191
- package/src/chat/composer/ModelChainRows.tsx +0 -223
- package/src/chat/composer/ModelChainTooltip.tsx +0 -121
- package/src/chat/composer/ModelFacts.tsx +0 -204
- package/src/chat/composer/ModelOptionsPicker.tsx +0 -257
- package/src/chat/composer/ModelPicker.tsx +0 -513
- package/src/chat/composer/ModelPickerDialog.tsx +0 -99
- package/src/chat/composer/ModelProviderPills.tsx +0 -141
- package/src/chat/composer/PickerPill.tsx +0 -41
- package/src/chat/composer/ProjectMenu.tsx +0 -170
- package/src/chat/composer/PromptHistoryProvider.tsx +0 -214
- package/src/chat/composer/RetryPill.tsx +0 -47
- package/src/chat/composer/RunStatusChip.tsx +0 -150
- package/src/chat/composer/ScopeToggle.tsx +0 -94
- package/src/chat/composer/SendButton.tsx +0 -89
- package/src/chat/composer/ServerScopeToggle.tsx +0 -179
- package/src/chat/composer/attachment-ingest.ts +0 -413
- package/src/chat/composer/attachments.tsx +0 -176
- package/src/chat/composer/badge-order.ts +0 -65
- package/src/chat/composer/composer-bus.ts +0 -307
- package/src/chat/composer/index.ts +0 -63
- package/src/chat/composer/load-composer-editor.ts +0 -25
- package/src/chat/composer/model-catalog.ts +0 -424
- package/src/chat/composer/model-list-layout.ts +0 -118
- package/src/chat/composer/prompt-history-nav.ts +0 -60
- package/src/chat/composer/scope-side.ts +0 -7
- package/src/chat/composer/suggestion-extension.ts +0 -113
- package/src/chat/composer/suggestions.tsx +0 -115
- package/src/chat/composer/use-agent-profiles.ts +0 -97
- package/src/chat/composer/use-cache-hints.ts +0 -93
- package/src/chat/composer/use-composer-stores.ts +0 -140
- package/src/chat/composer/use-draft-target.ts +0 -284
- package/src/chat/composer/use-hud.ts +0 -38
- package/src/chat/composer/use-new-session-defaults.ts +0 -201
- package/src/chat/composer/use-provider-ready-poll.ts +0 -35
- package/src/chat/composer/use-run-meter.ts +0 -140
- package/src/chat/composer/use-send-prompt.ts +0 -188
- package/src/chat/composer/use-session-meters.ts +0 -109
- package/src/chat/composer/use-sustained-work.ts +0 -74
- package/src/chat/composer/useAttachmentIngest.ts +0 -116
- package/src/chat/composer/useModelListSpy.ts +0 -19
- package/src/chat/headless/badge-refs.ts +0 -76
- package/src/chat/headless/chip-labels.ts +0 -39
- package/src/chat/headless/chip-settle.ts +0 -53
- package/src/chat/headless/chip-views.ts +0 -215
- package/src/chat/headless/composer/attachment-dedupe.ts +0 -50
- package/src/chat/headless/composer/commands.ts +0 -16
- package/src/chat/headless/composer/composer-sources.ts +0 -150
- package/src/chat/headless/composer/conversation-badges.ts +0 -222
- package/src/chat/headless/composer/draft-sync.ts +0 -199
- package/src/chat/headless/composer/editor-markdown.ts +0 -137
- package/src/chat/headless/composer/ghost-autocomplete.ts +0 -381
- package/src/chat/headless/composer/host-chrome.ts +0 -227
- package/src/chat/headless/composer/host.ts +0 -253
- package/src/chat/headless/composer/hud.ts +0 -101
- package/src/chat/headless/composer/index.ts +0 -18
- package/src/chat/headless/composer/labels-chrome.ts +0 -83
- package/src/chat/headless/composer/labels-editor.ts +0 -44
- package/src/chat/headless/composer/labels.ts +0 -18
- package/src/chat/headless/composer/live-cost.ts +0 -67
- package/src/chat/headless/composer/model-knobs.ts +0 -179
- package/src/chat/headless/composer/model-names.ts +0 -145
- package/src/chat/headless/composer/model-picker-prefs.ts +0 -90
- package/src/chat/headless/composer/models.ts +0 -86
- package/src/chat/headless/composer/new-session-defaults.ts +0 -68
- package/src/chat/headless/composer/prompt-suggestions.ts +0 -72
- package/src/chat/headless/composer/remember-model-pick.ts +0 -132
- package/src/chat/headless/composer/run-meter.ts +0 -228
- package/src/chat/headless/composer-modes.ts +0 -170
- package/src/chat/headless/draft-scope.ts +0 -136
- package/src/chat/headless/draft-target.ts +0 -87
- package/src/chat/headless/file-chip.ts +0 -175
- package/src/chat/headless/fixture-host.ts +0 -294
- package/src/chat/headless/fixture-transcript.ts +0 -125
- package/src/chat/headless/fixtures/demo-transcript-all-kinds.ts +0 -233
- package/src/chat/headless/fixtures/demo-transcript.ts +0 -244
- package/src/chat/headless/host.ts +0 -259
- package/src/chat/headless/hosts.ts +0 -53
- package/src/chat/headless/index.ts +0 -31
- package/src/chat/headless/labels.ts +0 -331
- package/src/chat/headless/markdown-chunks.ts +0 -134
- package/src/chat/headless/path-resolver.ts +0 -178
- package/src/chat/headless/prompt-origin.ts +0 -90
- package/src/chat/headless/reference-store.ts +0 -285
- package/src/chat/headless/send-flow.ts +0 -347
- package/src/chat/headless/session-list.ts +0 -390
- package/src/chat/headless/sidebar/activity.ts +0 -179
- package/src/chat/headless/sidebar/badges.ts +0 -163
- package/src/chat/headless/sidebar/compaction.ts +0 -98
- package/src/chat/headless/sidebar/directory.ts +0 -819
- package/src/chat/headless/sidebar/dot-state.ts +0 -36
- package/src/chat/headless/sidebar/environment.ts +0 -70
- package/src/chat/headless/sidebar/host.ts +0 -41
- package/src/chat/headless/sidebar/index.ts +0 -16
- package/src/chat/headless/sidebar/labels.ts +0 -140
- package/src/chat/headless/sidebar/notifications.ts +0 -61
- package/src/chat/headless/sidebar/pinned-projects.ts +0 -51
- package/src/chat/headless/sidebar/pinned-sessions.ts +0 -27
- package/src/chat/headless/sidebar/project-icons.ts +0 -116
- package/src/chat/headless/sidebar/rows.ts +0 -229
- package/src/chat/headless/sidebar/types.ts +0 -61
- package/src/chat/headless/sidebar/view.ts +0 -296
- package/src/chat/headless/site-icons.ts +0 -51
- package/src/chat/headless/smooth-stream.ts +0 -76
- package/src/chat/headless/store.ts +0 -62
- package/src/chat/headless/streams/actions.ts +0 -85
- package/src/chat/headless/streams/index.ts +0 -25
- package/src/chat/headless/streams/live-events.ts +0 -124
- package/src/chat/headless/streams/merge.ts +0 -60
- package/src/chat/headless/streams/pacer.ts +0 -189
- package/src/chat/headless/streams/prompt-previews.ts +0 -64
- package/src/chat/headless/streams/scheduler.ts +0 -36
- package/src/chat/headless/streams/selectors.ts +0 -76
- package/src/chat/headless/streams/session-streams.ts +0 -394
- package/src/chat/headless/streams/store.ts +0 -1107
- package/src/chat/headless/streams/transcript.ts +0 -41
- package/src/chat/headless/streams/types.ts +0 -84
- package/src/chat/headless/transcript/batch.ts +0 -429
- package/src/chat/headless/transcript/collapse.ts +0 -780
- package/src/chat/headless/transcript/fold-actions.ts +0 -269
- package/src/chat/headless/transcript/fold-attachments.ts +0 -78
- package/src/chat/headless/transcript/fold.ts +0 -382
- package/src/chat/headless/transcript/index.ts +0 -41
- package/src/chat/headless/transcript/nesting.ts +0 -73
- package/src/chat/headless/transcript/pairing.ts +0 -124
- package/src/chat/headless/transcript/rows.ts +0 -367
- package/src/chat/headless/transcript/run-failures.ts +0 -72
- package/src/chat/headless/transcript/select-stops.ts +0 -151
- package/src/chat/headless/transcript/tool-media.ts +0 -42
- package/src/chat/headless/transcript-host.ts +0 -180
- package/src/chat/headless/transcript-labels.ts +0 -12
- package/src/chat/headless/turn-labels.ts +0 -28
- package/src/chat/headless/turn-prompt.ts +0 -32
- package/src/chat/index.ts +0 -29
- package/src/chat/interactions/HostInteractions.tsx +0 -76
- package/src/chat/interactions/InboxPanel.tsx +0 -226
- package/src/chat/interactions/InteractionCard.tsx +0 -111
- package/src/chat/interactions/PlanCard.tsx +0 -186
- package/src/chat/interactions/QuestionField.tsx +0 -336
- package/src/chat/interactions/QuestionForm.tsx +0 -283
- package/src/chat/interactions/card-ui.tsx +0 -86
- package/src/chat/interactions/hooks.ts +0 -49
- package/src/chat/interactions/index.ts +0 -8
- package/src/chat/provider-color.ts +0 -71
- package/src/chat/rich-composer/MentionList.tsx +0 -238
- package/src/chat/rich-composer/RichComposer.tsx +0 -1036
- package/src/chat/rich-composer/badge-decorations.ts +0 -157
- package/src/chat/rich-composer/composer-controls.tsx +0 -102
- package/src/chat/rich-composer/composer-extensions.ts +0 -388
- package/src/chat/rich-composer/composer-keys.ts +0 -416
- package/src/chat/rich-composer/ghost-plugin.ts +0 -89
- package/src/chat/rich-composer/index.ts +0 -3
- package/src/chat/rich-composer/mention-popover.ts +0 -336
- package/src/chat/rich-composer/slash-completion.ts +0 -143
- package/src/chat/rich-composer/use-composer-bus.ts +0 -57
- package/src/chat/rich-composer/use-composer-editor.ts +0 -216
- package/src/chat/rich-composer/use-composer-sources.ts +0 -90
- package/src/chat/rich-composer/use-draft-mirror.ts +0 -398
- package/src/chat/rich-composer/use-editor-handover.ts +0 -45
- package/src/chat/rich-composer/use-ghost-lifecycle.ts +0 -265
- package/src/chat/rich-composer/use-prompt-ghost.ts +0 -90
- package/src/chat/rich-composer/use-staged-attachments.ts +0 -65
- package/src/chat/sidebar/MainSessionRow.tsx +0 -102
- package/src/chat/sidebar/ProjectIcon.tsx +0 -336
- package/src/chat/sidebar/RowChips.tsx +0 -98
- package/src/chat/sidebar/SessionSidebar.tsx +0 -805
- package/src/chat/sidebar/SidebarFilterMenu.tsx +0 -41
- package/src/chat/sidebar/SidebarFooter.tsx +0 -234
- package/src/chat/sidebar/SidebarFrame.tsx +0 -154
- package/src/chat/sidebar/SidebarGroupHeader.tsx +0 -231
- package/src/chat/sidebar/SidebarHostProvider.tsx +0 -51
- package/src/chat/sidebar/SidebarSearchRow.tsx +0 -66
- package/src/chat/sidebar/SidebarSessionRow.tsx +0 -293
- package/src/chat/sidebar/SidebarToggleButton.tsx +0 -48
- package/src/chat/sidebar/SpaceSwitcher.tsx +0 -232
- package/src/chat/sidebar/SpacesSection.tsx +0 -256
- package/src/chat/sidebar/index.ts +0 -92
- package/src/chat/sidebar/session-menu.ts +0 -437
- package/src/chat/sidebar/sidebar-focus-hold.ts +0 -56
- package/src/chat/sidebar/sidebar-live.tsx +0 -605
- package/src/chat/sidebar/use-main-session.ts +0 -32
- package/src/chat/sidebar/useCompactionProgress.ts +0 -24
- package/src/chat/sidebar/usePinnedProjects.ts +0 -36
- package/src/chat/sidebar/useSessionActivity.ts +0 -24
- package/src/chat/sidebar/useSessionBadges.ts +0 -26
- package/src/chat/sidebar/useSessionDirectoryView.ts +0 -86
- package/src/chat/sidebar/useSessionSearch.ts +0 -94
- package/src/chat/sidebar/useSidebarKeyboardNav.ts +0 -165
- package/src/chat/sidebar/useSidebarLabels.ts +0 -10
- package/src/chat/testing/composer.contract.ts +0 -532
- package/src/chat/testing/contract.ts +0 -634
- package/src/chat/testing/fixture-composer-chrome.ts +0 -178
- package/src/chat/testing/fixture-composer-host.ts +0 -147
- package/src/chat/testing/fixture-sidebar-host.ts +0 -99
- package/src/chat/testing/index.ts +0 -12
- package/src/chat/testing/sidebar.contract.ts +0 -196
- package/src/chat/transcript/BadgeMenu.tsx +0 -223
- package/src/chat/transcript/CardMarkdown.tsx +0 -92
- package/src/chat/transcript/ChipCard.tsx +0 -176
- package/src/chat/transcript/ChipCards.tsx +0 -100
- package/src/chat/transcript/DiffLines.tsx +0 -122
- package/src/chat/transcript/EarlierHistory.tsx +0 -136
- package/src/chat/transcript/EditDiffBlock.tsx +0 -171
- package/src/chat/transcript/FileChip.tsx +0 -350
- package/src/chat/transcript/ImageGenerationBlock.tsx +0 -239
- package/src/chat/transcript/InlineChipText.tsx +0 -57
- package/src/chat/transcript/InteractionToolBody.tsx +0 -193
- package/src/chat/transcript/LazyRow.tsx +0 -311
- package/src/chat/transcript/PromptEcho.tsx +0 -171
- package/src/chat/transcript/PromptOriginLabel.tsx +0 -44
- package/src/chat/transcript/ProseMarkdown.tsx +0 -165
- package/src/chat/transcript/ReferenceText.tsx +0 -193
- package/src/chat/transcript/SelectCursor.tsx +0 -118
- package/src/chat/transcript/SelectTurnHint.tsx +0 -81
- package/src/chat/transcript/SelectTurnProvider.tsx +0 -150
- package/src/chat/transcript/SubagentBlock.tsx +0 -218
- package/src/chat/transcript/TranscriptRow.tsx +0 -356
- package/src/chat/transcript/TranscriptSearch.tsx +0 -171
- package/src/chat/transcript/TurnMenu.tsx +0 -217
- package/src/chat/transcript/actions.tsx +0 -77
- package/src/chat/transcript/badges.tsx +0 -152
- package/src/chat/transcript/chip-details.ts +0 -169
- package/src/chat/transcript/chip-resolve.ts +0 -56
- package/src/chat/transcript/fold-attachments.tsx +0 -221
- package/src/chat/transcript/fold-status.tsx +0 -112
- package/src/chat/transcript/fold-worker.tsx +0 -160
- package/src/chat/transcript/fold.tsx +0 -520
- package/src/chat/transcript/frame.tsx +0 -326
- package/src/chat/transcript/index.ts +0 -65
- package/src/chat/transcript/markdown-cache.ts +0 -70
- package/src/chat/transcript/markdown-context.ts +0 -52
- package/src/chat/transcript/markdown.tsx +0 -282
- package/src/chat/transcript/messages.tsx +0 -168
- package/src/chat/transcript/notices.tsx +0 -508
- package/src/chat/transcript/prompt-lines.tsx +0 -55
- package/src/chat/transcript/prompt.tsx +0 -258
- package/src/chat/transcript/prose.tsx +0 -171
- package/src/chat/transcript/references.ts +0 -104
- package/src/chat/transcript/remark-references.ts +0 -157
- package/src/chat/transcript/remark-refs.ts +0 -176
- package/src/chat/transcript/renderer-slots.tsx +0 -35
- package/src/chat/transcript/renderers.tsx +0 -241
- package/src/chat/transcript/row-estimate.ts +0 -158
- package/src/chat/transcript/run-rows.tsx +0 -291
- package/src/chat/transcript/site-icons.ts +0 -27
- package/src/chat/transcript/thumbnails.ts +0 -146
- package/src/chat/transcript/tool-batch.tsx +0 -111
- package/src/chat/transcript/tool-details.tsx +0 -77
- package/src/chat/transcript/tool-media.tsx +0 -132
- package/src/chat/transcript/tool-parts.tsx +0 -358
- package/src/chat/transcript/tool-row.tsx +0 -489
- package/src/chat/transcript/turn-commands.ts +0 -101
- package/src/chat/transcript/use-transcript-rows.ts +0 -195
- package/src/chat/transcript/useComposerSearch.ts +0 -106
- package/src/chat/transcript/useSelectTurnKeys.ts +0 -204
- package/src/chat/transcript/useSettledReveal.ts +0 -57
- package/src/chat/transcript/useStickToBottom.ts +0 -600
- package/src/chat/transcript/useTranscriptFind.ts +0 -70
- package/src/chat/transcript/useTranscriptFindKey.ts +0 -52
- package/src/chat/transcript/useTranscriptScroll.ts +0 -162
- package/src/chat/transcript/useTranscriptSearch.tsx +0 -382
- package/src/chat/transcript/useTranscriptSelectionCopy.ts +0 -63
- package/src/chat/transcript/useWheelHoverPause.ts +0 -79
- package/src/chat/transcript/user-bash.tsx +0 -134
- package/src/chat/useChatLabels.ts +0 -14
- package/src/code/CodeHighlightProvider.tsx +0 -87
- package/src/code/HighlightedCode.tsx +0 -150
- package/src/code/code-themes.ts +0 -34
- package/src/code/editor/CodeCompletion.tsx +0 -719
- package/src/code/editor/CodeEditor.tsx +0 -480
- package/src/code/editor/CodeHover.tsx +0 -428
- package/src/code/editor/DiagnosticAnnotation.tsx +0 -73
- package/src/code/editor/DiagnosticsChip.tsx +0 -85
- package/src/code/editor/DiffView.tsx +0 -197
- package/src/code/editor/EditorColumn.tsx +0 -256
- package/src/code/editor/FileIcon.tsx +0 -89
- package/src/code/editor/FileTabPill.tsx +0 -101
- package/src/code/editor/FileTree.tsx +0 -414
- package/src/code/editor/FileView.tsx +0 -462
- package/src/code/editor/HighlightWorkers.tsx +0 -84
- package/src/code/editor/LanguageEditor.tsx +0 -210
- package/src/code/editor/_vendor/tree-icon-colors.ts +0 -72
- package/src/code/editor/diagnostics.ts +0 -140
- package/src/code/editor/edit-session.ts +0 -28
- package/src/code/editor/environment.tsx +0 -88
- package/src/code/editor/find/FindBar.tsx +0 -126
- package/src/code/editor/find/find-highlight.ts +0 -138
- package/src/code/editor/find/find-model.ts +0 -123
- package/src/code/editor/find/settle-scroll.ts +0 -77
- package/src/code/editor/find/useFind.ts +0 -203
- package/src/code/editor/fs-adapter.ts +0 -37
- package/src/code/editor/index.ts +0 -36
- package/src/code/editor/language.ts +0 -31
- package/src/code/editor/patch-parse.ts +0 -176
- package/src/code/editor/patch-parse.worker.ts +0 -12
- package/src/code/editor/pierre-theme.ts +0 -154
- package/src/code/editor/prime-diff.ts +0 -37
- package/src/code/editor/reveal.ts +0 -58
- package/src/code/editor/scroll-reach.ts +0 -28
- package/src/code/editor/useCodeDocument.ts +0 -226
- package/src/code/editor/useDefinition.ts +0 -159
- package/src/code/editor/useDetachCleanup.ts +0 -36
- package/src/code/editor/useFileDocument.ts +0 -87
- package/src/code/editor/useRevealLine.ts +0 -92
- package/src/code/editor/word-at.ts +0 -145
- package/src/code/highlight.worker.ts +0 -19
- package/src/code/highlighter.ts +0 -185
- package/src/code/shiki-theme.ts +0 -47
- package/src/components/BrandMark.tsx +0 -107
- package/src/components/Breadcrumb.tsx +0 -105
- package/src/components/BrowserChrome.tsx +0 -189
- package/src/components/BrowserSignIn.tsx +0 -210
- package/src/components/ChoiceCards.tsx +0 -170
- package/src/components/CodeFrame.tsx +0 -209
- package/src/components/ConfirmDialog.tsx +0 -119
- package/src/components/CopyButton.tsx +0 -85
- package/src/components/EditableTitle.tsx +0 -199
- package/src/components/ErrorBoundary.tsx +0 -208
- package/src/components/Form.tsx +0 -589
- package/src/components/Highlighted.tsx +0 -68
- package/src/components/HowItWorks.tsx +0 -123
- package/src/components/IconButton.tsx +0 -101
- package/src/components/IconToggle.tsx +0 -71
- package/src/components/Keycap.tsx +0 -334
- package/src/components/Lightbox.tsx +0 -257
- package/src/components/LoadError.tsx +0 -45
- package/src/components/MediaNav.tsx +0 -85
- package/src/components/Menu.tsx +0 -435
- package/src/components/Overlay.tsx +0 -327
- package/src/components/PanelEmpty.tsx +0 -80
- package/src/components/PanelRows.tsx +0 -107
- package/src/components/PreviewWindow.tsx +0 -53
- package/src/components/ReorderTabs.tsx +0 -103
- package/src/components/RowActionsMenu.tsx +0 -383
- package/src/components/SegmentSpinner.tsx +0 -88
- package/src/components/Segmented.tsx +0 -126
- package/src/components/StepFrame.tsx +0 -151
- package/src/components/Stepper.tsx +0 -157
- package/src/components/Surface.tsx +0 -191
- package/src/components/SwatchPicker.tsx +0 -147
- package/src/components/SwitchGlyph.tsx +0 -56
- package/src/components/TabPill.tsx +0 -188
- package/src/components/ThemeThumb.tsx +0 -52
- package/src/components/ToggleCard.tsx +0 -120
- package/src/components/Tooltip.tsx +0 -288
- package/src/components/ZoomableImage.tsx +0 -322
- package/src/components/button.ts +0 -120
- package/src/components/floating/FloatingSurface.tsx +0 -158
- package/src/components/floating/HoverCard.tsx +0 -143
- package/src/components/floating/Popover.tsx +0 -166
- package/src/components/floating/useAnchoredPosition.ts +0 -186
- package/src/components/floating/usePopover.ts +0 -158
- package/src/components/image-clipboard.ts +0 -70
- package/src/components/keyboard-layout.ts +0 -115
- package/src/components/palette/PaletteList.tsx +0 -432
- package/src/components/palette/PalettePanel.tsx +0 -338
- package/src/components/palette/palette-layout.ts +0 -86
- package/src/components/report-error.ts +0 -142
- package/src/components/zoom.ts +0 -133
- package/src/files/CodeViewer.tsx +0 -289
- package/src/files/DiffFileViewer.tsx +0 -143
- package/src/files/DiffsTab.tsx +0 -590
- package/src/files/EditorColumn.tsx +0 -453
- package/src/files/FilesDiagnosticsChip.tsx +0 -32
- package/src/files/FilesProvider.tsx +0 -58
- package/src/files/FilesTab.tsx +0 -441
- package/src/files/MediaDiff.tsx +0 -61
- package/src/files/MediaView.tsx +0 -170
- package/src/files/ReviewDraft.tsx +0 -88
- package/src/files/ReviewableDiff.tsx +0 -72
- package/src/files/SearchPanel.tsx +0 -325
- package/src/files/TreeColumn.tsx +0 -229
- package/src/files/code-excerpt.ts +0 -265
- package/src/files/code-menu.ts +0 -53
- package/src/files/drafts-store.ts +0 -159
- package/src/files/file-actions.ts +0 -152
- package/src/files/headless/editor-prefs.ts +0 -230
- package/src/files/headless/entries.ts +0 -172
- package/src/files/headless/fixture-host.ts +0 -260
- package/src/files/headless/host.ts +0 -387
- package/src/files/headless/index.ts +0 -14
- package/src/files/headless/labels.ts +0 -123
- package/src/files/headless/lsp-edits.ts +0 -40
- package/src/files/headless/media.ts +0 -57
- package/src/files/headless/name-match.ts +0 -38
- package/src/files/headless/search.ts +0 -23
- package/src/files/headless/view.ts +0 -114
- package/src/files/headless/workspace-diff.ts +0 -82
- package/src/files/index.ts +0 -24
- package/src/files/lazy-tabs.tsx +0 -41
- package/src/files/tab-hooks.ts +0 -37
- package/src/files/testing/contract.ts +0 -279
- package/src/files/testing/demo.ts +0 -36
- package/src/files/testing/index.ts +0 -7
- package/src/files/useCodeReview.tsx +0 -177
- package/src/files/useDiagnostics.ts +0 -59
- package/src/files/useDiagnosticsRun.ts +0 -86
- package/src/files/useEntryActions.ts +0 -280
- package/src/files/useFilesDiagnostics.ts +0 -51
- package/src/files/useFilesLabels.ts +0 -14
- package/src/files/useFolderChanges.ts +0 -38
- package/src/files/useLsp.ts +0 -178
- package/src/files/useOpenFiles.ts +0 -402
- package/src/files/useWorkspace.ts +0 -148
- package/src/files/working-tree-diff.ts +0 -142
- package/src/git/BranchMenu.tsx +0 -981
- package/src/git/GitBar.tsx +0 -286
- package/src/git/GitProvider.tsx +0 -50
- package/src/git/ImportRepoDialog.tsx +0 -381
- package/src/git/MoveSessionDialog.tsx +0 -394
- package/src/git/RemoteFolderPicker.tsx +0 -475
- package/src/git/SyncChip.tsx +0 -275
- package/src/git/WherePicker.tsx +0 -358
- package/src/git/headless/environment.ts +0 -132
- package/src/git/headless/host.ts +0 -353
- package/src/git/headless/index.ts +0 -14
- package/src/git/headless/labels.ts +0 -230
- package/src/git/headless/move.ts +0 -101
- package/src/git/headless/remote-clone.ts +0 -44
- package/src/git/headless/status-reads.ts +0 -77
- package/src/git/headless/switcher.ts +0 -215
- package/src/git/headless/sync.ts +0 -71
- package/src/git/index.ts +0 -17
- package/src/git/testing/contract.ts +0 -551
- package/src/git/testing/index.ts +0 -537
- package/src/git/useEnvironmentChoices.ts +0 -50
- package/src/git/useGitBar.ts +0 -180
- package/src/hooks/keyed-store.ts +0 -65
- package/src/hooks/useHydrated.ts +0 -16
- package/src/hooks/useMinuteTick.ts +0 -49
- package/src/hooks/useNearViewport.ts +0 -111
- package/src/hooks/usePersistedState.ts +0 -98
- package/src/hooks/useResizeDrag.ts +0 -240
- package/src/hooks/useTabDrag.ts +0 -88
- package/src/index.ts +0 -118
- package/src/keybindings/KeyCommands.tsx +0 -123
- package/src/keybindings/KeyHint.tsx +0 -78
- package/src/keybindings/KeybindingsProvider.tsx +0 -231
- package/src/keybindings/headless/catalog.ts +0 -360
- package/src/keybindings/headless/commands.ts +0 -77
- package/src/keybindings/headless/fixture-host.ts +0 -51
- package/src/keybindings/headless/host.ts +0 -29
- package/src/keybindings/headless/index.ts +0 -13
- package/src/keybindings/headless/key-scope.ts +0 -91
- package/src/keybindings/headless/labels.ts +0 -14
- package/src/keybindings/headless/overrides.ts +0 -64
- package/src/keybindings/index.ts +0 -14
- package/src/keybindings/load-once.ts +0 -11
- package/src/keybindings/match.ts +0 -48
- package/src/keybindings/testing/contract.ts +0 -139
- package/src/keybindings/testing/index.ts +0 -6
- package/src/keybindings/useHelpKey.ts +0 -35
- package/src/keybindings/useKeybindingsLabels.ts +0 -14
- package/src/labels.tsx +0 -175
- package/src/machines/AddServerForm.tsx +0 -151
- package/src/machines/Banners.tsx +0 -172
- package/src/machines/DaemonMenu.tsx +0 -413
- package/src/machines/HostCapabilities.tsx +0 -245
- package/src/machines/HostSignIn.tsx +0 -63
- package/src/machines/HostSyncPanel.tsx +0 -275
- package/src/machines/HostsSection.tsx +0 -312
- package/src/machines/MachinesProvider.tsx +0 -164
- package/src/machines/ServerCard.tsx +0 -347
- package/src/machines/ServerMachinesPanel.tsx +0 -547
- package/src/machines/ServerUpdatePanel.tsx +0 -160
- package/src/machines/SyncAccounts.tsx +0 -148
- package/src/machines/SyncMarker.tsx +0 -87
- package/src/machines/SyncOutcomeBadge.tsx +0 -84
- package/src/machines/TokensPanel.tsx +0 -249
- package/src/machines/headless/fixture-host.ts +0 -519
- package/src/machines/headless/fixtures.ts +0 -164
- package/src/machines/headless/host.ts +0 -381
- package/src/machines/headless/index.ts +0 -13
- package/src/machines/headless/labels.ts +0 -356
- package/src/machines/headless/messages.ts +0 -197
- package/src/machines/headless/presence.ts +0 -110
- package/src/machines/headless/settings-focus.ts +0 -25
- package/src/machines/headless/stores.ts +0 -137
- package/src/machines/headless/sync.ts +0 -207
- package/src/machines/index.ts +0 -29
- package/src/machines/settings-section.tsx +0 -37
- package/src/machines/testing/contract.ts +0 -617
- package/src/machines/testing/index.ts +0 -7
- package/src/machines/testing/sync.contract.ts +0 -260
- package/src/motion/SwapIcon.tsx +0 -29
- package/src/motion/collapse.ts +0 -21
- package/src/motion/grow.tsx +0 -86
- package/src/motion/layout-animating.ts +0 -50
- package/src/motion/presence.ts +0 -191
- package/src/motion/provider.tsx +0 -63
- package/src/motion/reduced.ts +0 -36
- package/src/motion/roll.tsx +0 -131
- package/src/motion/shimmer.ts +0 -15
- package/src/motion/size.tsx +0 -192
- package/src/motion/springs.ts +0 -413
- package/src/motion/swap.tsx +0 -216
- package/src/motion/title-text.tsx +0 -74
- package/src/onboarding/ConnectProviderCard.tsx +0 -49
- package/src/onboarding/OnboardingFlow.tsx +0 -176
- package/src/onboarding/OnboardingProvider.tsx +0 -209
- package/src/onboarding/OnboardingStepFrame.tsx +0 -80
- package/src/onboarding/conversation.tsx +0 -179
- package/src/onboarding/demos/autonomy.tsx +0 -154
- package/src/onboarding/demos/extensions.tsx +0 -183
- package/src/onboarding/demos/features.tsx +0 -447
- package/src/onboarding/demos/how-it-works.tsx +0 -698
- package/src/onboarding/demos/index.ts +0 -11
- package/src/onboarding/demos/parts.tsx +0 -133
- package/src/onboarding/demos/tour.tsx +0 -217
- package/src/onboarding/headless/controller.ts +0 -110
- package/src/onboarding/headless/fixture-host.ts +0 -269
- package/src/onboarding/headless/fixtures.ts +0 -486
- package/src/onboarding/headless/host.ts +0 -176
- package/src/onboarding/headless/index.ts +0 -8
- package/src/onboarding/headless/labels.ts +0 -280
- package/src/onboarding/index.ts +0 -20
- package/src/onboarding/marks.tsx +0 -69
- package/src/onboarding/preview-attachments.ts +0 -39
- package/src/onboarding/skills/SkillSourceBrowser.tsx +0 -336
- package/src/onboarding/skills/parts.tsx +0 -440
- package/src/onboarding/steps/AutonomyStep.tsx +0 -128
- package/src/onboarding/steps/ConnectStep.tsx +0 -104
- package/src/onboarding/steps/ConnectorsStep.tsx +0 -226
- package/src/onboarding/steps/ConversationStep.tsx +0 -131
- package/src/onboarding/steps/ExtensionsStep.tsx +0 -113
- package/src/onboarding/steps/FeatureExample.tsx +0 -46
- package/src/onboarding/steps/FeaturesStep.tsx +0 -88
- package/src/onboarding/steps/ImportStep.tsx +0 -156
- package/src/onboarding/steps/LookStep.tsx +0 -276
- package/src/onboarding/steps/ReadyStep.tsx +0 -278
- package/src/onboarding/steps/SkillsStep.tsx +0 -45
- package/src/onboarding/steps/StepSection.tsx +0 -63
- package/src/onboarding/steps/Tradeoff.tsx +0 -45
- package/src/onboarding/steps/WelcomeStep.tsx +0 -147
- package/src/onboarding/steps/connect/KeyForm.tsx +0 -112
- package/src/onboarding/steps/connect/ProviderPanel.tsx +0 -149
- package/src/onboarding/steps/connect/ProviderReady.tsx +0 -171
- package/src/onboarding/steps/connect/ready-text.ts +0 -17
- package/src/onboarding/steps/index.ts +0 -12
- package/src/onboarding/steps/tasks.tsx +0 -84
- package/src/onboarding/testing/contract.ts +0 -472
- package/src/onboarding/testing/index.ts +0 -7
- package/src/onboarding/tutorials.tsx +0 -45
- package/src/onboarding/useSignIn.ts +0 -58
- package/src/palette/CommandPalette.tsx +0 -59
- package/src/palette/PaletteDialog.tsx +0 -186
- package/src/palette/PaletteProvider.tsx +0 -149
- package/src/palette/PaletteRows.tsx +0 -208
- package/src/palette/app-sources.ts +0 -62
- package/src/palette/headless/app-sources.ts +0 -515
- package/src/palette/headless/gather.ts +0 -50
- package/src/palette/headless/host.ts +0 -129
- package/src/palette/headless/index.ts +0 -15
- package/src/palette/headless/labels.ts +0 -124
- package/src/palette/headless/rank-protocol.ts +0 -23
- package/src/palette/headless/recents.ts +0 -35
- package/src/palette/headless/session-sources.ts +0 -218
- package/src/palette/headless/sources.ts +0 -313
- package/src/palette/headless/store.ts +0 -105
- package/src/palette/index.ts +0 -17
- package/src/palette/rank.worker.ts +0 -30
- package/src/palette/setup.ts +0 -19
- package/src/palette/testing/contract.ts +0 -250
- package/src/palette/testing/index.ts +0 -152
- package/src/palette/useConversationSearch.ts +0 -115
- package/src/palette/usePaletteController.ts +0 -229
- package/src/palette/useRankedItems.ts +0 -122
- package/src/path.ts +0 -165
- package/src/server/demo-tools.ts +0 -34
- package/src/server/environment.ts +0 -118
- package/src/server/index.ts +0 -7
- package/src/server/scripted-provider.ts +0 -174
- package/src/server/sse-handler.ts +0 -457
- package/src/server/testing/index.ts +0 -7
- package/src/session/ArtifactRowChips.tsx +0 -251
- package/src/session/ArtifactsPanel.tsx +0 -381
- package/src/session/DiffFileTree.tsx +0 -173
- package/src/session/PanelAttention.tsx +0 -131
- package/src/session/ProviderUsageProvider.tsx +0 -106
- package/src/session/QueueTab.tsx +0 -669
- package/src/session/RunningWorkDialog.tsx +0 -178
- package/src/session/SessionCacheFacts.tsx +0 -190
- package/src/session/SessionDetailsDialog.tsx +0 -621
- package/src/session/SessionHeader.tsx +0 -237
- package/src/session/SessionProvider.tsx +0 -98
- package/src/session/SessionShell.tsx +0 -77
- package/src/session/SideChat.tsx +0 -316
- package/src/session/TodoList.tsx +0 -123
- package/src/session/TodosPanel.tsx +0 -278
- package/src/session/TurnDetailsDialog.tsx +0 -299
- package/src/session/UsagePanel.tsx +0 -222
- package/src/session/WelcomeScreen.tsx +0 -578
- package/src/session/headless/artifacts.ts +0 -101
- package/src/session/headless/diff-tree.ts +0 -167
- package/src/session/headless/fixture-host.ts +0 -331
- package/src/session/headless/host.ts +0 -255
- package/src/session/headless/index.ts +0 -22
- package/src/session/headless/keyed.ts +0 -72
- package/src/session/headless/labels.ts +0 -321
- package/src/session/headless/queue-attachments.ts +0 -73
- package/src/session/headless/queue.ts +0 -122
- package/src/session/headless/running-work.ts +0 -85
- package/src/session/headless/session-actions.ts +0 -198
- package/src/session/headless/session-diffs.ts +0 -136
- package/src/session/headless/side.ts +0 -63
- package/src/session/headless/todos.ts +0 -62
- package/src/session/headless/usage-format.ts +0 -280
- package/src/session/headless/usage.ts +0 -380
- package/src/session/index.ts +0 -29
- package/src/session/testing/contract.ts +0 -579
- package/src/session/testing/demo.ts +0 -209
- package/src/session/testing/index.ts +0 -7
- package/src/session/useSessionLabels.ts +0 -14
- package/src/session/useUsageSummary.ts +0 -82
- package/src/settings/SettingsHeadingText.tsx +0 -54
- package/src/settings/SettingsHostSwitcher.tsx +0 -93
- package/src/settings/SettingsNav.tsx +0 -116
- package/src/settings/SettingsProvider.tsx +0 -127
- package/src/settings/SettingsRowsPage.tsx +0 -217
- package/src/settings/SettingsShell.tsx +0 -336
- package/src/settings/SettingsTutorial.tsx +0 -55
- package/src/settings/headless/catalog.ts +0 -553
- package/src/settings/headless/claude-import.ts +0 -61
- package/src/settings/headless/enabled.ts +0 -44
- package/src/settings/headless/fixture-accounts.ts +0 -260
- package/src/settings/headless/fixture-host.ts +0 -162
- package/src/settings/headless/fixture-models.ts +0 -51
- package/src/settings/headless/fixture-performance.ts +0 -350
- package/src/settings/headless/fixture-sections.ts +0 -323
- package/src/settings/headless/host.ts +0 -125
- package/src/settings/headless/index.ts +0 -22
- package/src/settings/headless/labels.ts +0 -63
- package/src/settings/headless/layout-sections.ts +0 -41
- package/src/settings/headless/layout.ts +0 -723
- package/src/settings/headless/mcp.ts +0 -319
- package/src/settings/headless/models.ts +0 -51
- package/src/settings/headless/page-counts.ts +0 -40
- package/src/settings/headless/performance.ts +0 -524
- package/src/settings/headless/providers.ts +0 -117
- package/src/settings/headless/registry.ts +0 -52
- package/src/settings/headless/resource.ts +0 -75
- package/src/settings/headless/search.ts +0 -142
- package/src/settings/headless/sections-host.ts +0 -307
- package/src/settings/index.ts +0 -32
- package/src/settings/rows.tsx +0 -152
- package/src/settings/section.tsx +0 -165
- package/src/settings/sections/appearance/AppearanceSection.tsx +0 -667
- package/src/settings/sections/appearance/labels.ts +0 -77
- package/src/settings/sections/claude-import/ClaudeImportDialog.tsx +0 -258
- package/src/settings/sections/claude-import/labels.ts +0 -42
- package/src/settings/sections/claude-import/use-claude-import-available.ts +0 -35
- package/src/settings/sections/descriptors.tsx +0 -261
- package/src/settings/sections/editor/EditorSection.tsx +0 -521
- package/src/settings/sections/editor/labels.ts +0 -84
- package/src/settings/sections/enabled-list/EnabledListSection.tsx +0 -112
- package/src/settings/sections/enabled-list/labels.ts +0 -37
- package/src/settings/sections/environments/EnvironmentsSection.tsx +0 -549
- package/src/settings/sections/environments/labels.ts +0 -31
- package/src/settings/sections/extensions/CreateExtensionDialog.tsx +0 -206
- package/src/settings/sections/extensions/ExtensionOptionsSection.tsx +0 -743
- package/src/settings/sections/extensions/ExtensionsSection.tsx +0 -480
- package/src/settings/sections/extensions/create-labels.ts +0 -31
- package/src/settings/sections/extensions/labels.ts +0 -38
- package/src/settings/sections/extensions/options-labels.ts +0 -31
- package/src/settings/sections/host-catalog/HostCatalogSection.tsx +0 -374
- package/src/settings/sections/host-catalog/labels.ts +0 -40
- package/src/settings/sections/index.ts +0 -58
- package/src/settings/sections/instructions/InstructionsSection.tsx +0 -381
- package/src/settings/sections/instructions/labels.ts +0 -33
- package/src/settings/sections/keybindings/KeybindingsSection.tsx +0 -124
- package/src/settings/sections/keybindings/labels.ts +0 -72
- package/src/settings/sections/keybindings/rows.ts +0 -103
- package/src/settings/sections/logs/LogsSection.tsx +0 -153
- package/src/settings/sections/logs/labels.ts +0 -20
- package/src/settings/sections/mcp/McpAddForm.tsx +0 -245
- package/src/settings/sections/mcp/McpSection.tsx +0 -358
- package/src/settings/sections/mcp/McpServerRow.tsx +0 -403
- package/src/settings/sections/mcp/labels.ts +0 -193
- package/src/settings/sections/models/AgentDefaults.tsx +0 -365
- package/src/settings/sections/models/ModelListPicker.tsx +0 -265
- package/src/settings/sections/models/ModelPickField.tsx +0 -220
- package/src/settings/sections/models/ModelRows.tsx +0 -381
- package/src/settings/sections/models/SpacesDefaultsSection.tsx +0 -102
- package/src/settings/sections/models/labels.ts +0 -119
- package/src/settings/sections/models/model-test.tsx +0 -125
- package/src/settings/sections/performance/PerfSparkline.tsx +0 -64
- package/src/settings/sections/performance/PerformanceHud.tsx +0 -110
- package/src/settings/sections/performance/PerformanceSection.tsx +0 -770
- package/src/settings/sections/performance/labels.ts +0 -114
- package/src/settings/sections/performance/use-perf-monitor.ts +0 -26
- package/src/settings/sections/plugins/PluginsSection.tsx +0 -148
- package/src/settings/sections/plugins/labels.ts +0 -23
- package/src/settings/sections/providers/CredentialSources.tsx +0 -237
- package/src/settings/sections/providers/ProvidersSection.tsx +0 -389
- package/src/settings/sections/providers/ServerProvidersSection.tsx +0 -244
- package/src/settings/sections/providers/ServerSignIn.tsx +0 -136
- package/src/settings/sections/providers/labels.ts +0 -160
- package/src/settings/sections/shared/catalog.tsx +0 -246
- package/src/settings/sections/shared/labels.ts +0 -31
- package/src/settings/sections/skills/SkillList.tsx +0 -494
- package/src/settings/sections/skills/SkillsSection.tsx +0 -249
- package/src/settings/sections/skills/labels.ts +0 -54
- package/src/settings/sections/use-section-labels.ts +0 -10
- package/src/settings/testing/accounts-demo.ts +0 -110
- package/src/settings/testing/accounts.contract.ts +0 -319
- package/src/settings/testing/claude-import.contract.ts +0 -93
- package/src/settings/testing/contract.ts +0 -192
- package/src/settings/testing/extension-options.contract.ts +0 -163
- package/src/settings/testing/index.ts +0 -11
- package/src/settings/testing/models.contract.ts +0 -135
- package/src/settings/testing/performance.contract.ts +0 -219
- package/src/settings/testing/sections.contract.ts +0 -306
- package/src/terminal/HostTerminalSurface.tsx +0 -911
- package/src/terminal/TerminalDrawer.tsx +0 -228
- package/src/terminal/TerminalPanel.tsx +0 -740
- package/src/terminal/TerminalProvider.tsx +0 -201
- package/src/terminal/TerminalSurface.tsx +0 -262
- package/src/terminal/box-glyphs.ts +0 -333
- package/src/terminal/ghostty.ts +0 -116
- package/src/terminal/grid-size.ts +0 -46
- package/src/terminal/headless/fixture-host.ts +0 -250
- package/src/terminal/headless/host.ts +0 -99
- package/src/terminal/headless/index.ts +0 -11
- package/src/terminal/headless/labels.ts +0 -69
- package/src/terminal/headless/layout.ts +0 -57
- package/src/terminal/headless/links.ts +0 -227
- package/src/terminal/headless/order.ts +0 -28
- package/src/terminal/headless/output-cursor.ts +0 -66
- package/src/terminal/headless/recent.ts +0 -20
- package/src/terminal/headless/replay.ts +0 -45
- package/src/terminal/headless/scope.ts +0 -60
- package/src/terminal/headless/store.ts +0 -621
- package/src/terminal/index.ts +0 -40
- package/src/terminal/keys.ts +0 -34
- package/src/terminal/testing/contract.ts +0 -274
- package/src/terminal/testing/demo.ts +0 -40
- package/src/terminal/testing/index.ts +0 -7
- package/src/terminal/theme.ts +0 -110
- package/src/terminal/useTerminalLabels.ts +0 -14
- package/src/theme/accents.ts +0 -46
- package/src/theme/color.ts +0 -450
- package/src/theme/css-vars.ts +0 -187
- package/src/theme/derive.ts +0 -700
- package/src/theme/from-theme.ts +0 -52
- package/src/theme/stylesheet.ts +0 -55
- package/src/theme/themes.ts +0 -767
- package/src/theme/without-transitions.ts +0 -18
- package/src/uno.ts +0 -167
- package/src/workspace/LayoutBudget.tsx +0 -143
- package/src/workspace/PanelContentView.tsx +0 -335
- package/src/workspace/PanelGroups.tsx +0 -249
- package/src/workspace/PanelStrip.tsx +0 -307
- package/src/workspace/SidePanel.tsx +0 -192
- package/src/workspace/TabParking.tsx +0 -111
- package/src/workspace/WorkspaceProvider.tsx +0 -554
- package/src/workspace/dnd/engine.ts +0 -371
- package/src/workspace/dnd/hooks.ts +0 -72
- package/src/workspace/dnd/index.ts +0 -57
- package/src/workspace/dnd/parking.tsx +0 -181
- package/src/workspace/frame-motion.ts +0 -160
- package/src/workspace/headless/contents.ts +0 -125
- package/src/workspace/headless/host.ts +0 -118
- package/src/workspace/headless/index.ts +0 -33
- package/src/workspace/headless/labels.ts +0 -34
- package/src/workspace/headless/layout-memory.ts +0 -649
- package/src/workspace/headless/layouts.ts +0 -224
- package/src/workspace/headless/open-target.ts +0 -125
- package/src/workspace/headless/ops.ts +0 -163
- package/src/workspace/headless/panel-focus.ts +0 -58
- package/src/workspace/headless/panel-tree.ts +0 -259
- package/src/workspace/headless/resolve.ts +0 -146
- package/src/workspace/headless/reveal-at.ts +0 -27
- package/src/workspace/headless/strip-drop.ts +0 -81
- package/src/workspace/headless/tree.ts +0 -480
- package/src/workspace/headless/view.ts +0 -159
- package/src/workspace/index.ts +0 -22
- package/src/workspace/panel-group-keys.ts +0 -36
- package/src/workspace/panel-visibility.ts +0 -28
- package/src/workspace/tab-scopes.ts +0 -245
- package/src/workspace/testing/contract.ts +0 -282
- package/src/workspace/testing/index.ts +0 -140
- package/src/workspace/use-split-drag.ts +0 -73
- package/src/workspace/useScopeLayout.ts +0 -26
- package/src/workspace/useViewport.ts +0 -22
- package/src/workspace/useWorkspaceLabels.ts +0 -14
- package/src/workspace/workspace-key-commands.ts +0 -108
- /package/dist/dist/{types-bDQagoiL.d.ts → types-2HrgolQz.d.ts} +0 -0
package/src/theme/derive.ts
DELETED
|
@@ -1,700 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Palette derivation: the one place a theme becomes a complete token set.
|
|
3
|
-
*
|
|
4
|
-
* Input is a `ThemeSeed`: the few colors a theme author actually chooses
|
|
5
|
-
* (canvas, accent, optionally text / status hues / diff / chips). Output is
|
|
6
|
-
* a `ResolvedPalette`: every role token the renderer paints with, all
|
|
7
|
-
* contrast-checked against the surfaces they sit on.
|
|
8
|
-
*
|
|
9
|
-
* Built-in themes and extension themes all pass through here, so "does this
|
|
10
|
-
* theme look right in light mode" or "is muted text readable" is answered
|
|
11
|
-
* once, by code, not per theme.
|
|
12
|
-
*
|
|
13
|
-
* Pure: no DOM, no React. `css-vars.ts` turns the result into CSS variables.
|
|
14
|
-
*/
|
|
15
|
-
import {
|
|
16
|
-
capChroma,
|
|
17
|
-
contrastRatio,
|
|
18
|
-
ensureContrast,
|
|
19
|
-
isDark,
|
|
20
|
-
mix,
|
|
21
|
-
oklch,
|
|
22
|
-
readableOn,
|
|
23
|
-
tintedNeutral,
|
|
24
|
-
toOklch,
|
|
25
|
-
withAlpha,
|
|
26
|
-
withLightness,
|
|
27
|
-
} from './color';
|
|
28
|
-
|
|
29
|
-
/** Whether a palette is built for a `light` or a `dark` canvas. */
|
|
30
|
-
export type Appearance = 'light' | 'dark';
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* The few colours a theme author chooses: `canvas` and `accent` are required, the rest are
|
|
34
|
-
* overrides that `derivePalette` derives when omitted.
|
|
35
|
-
*/
|
|
36
|
-
export interface ThemeSeed {
|
|
37
|
-
/** Window background. The only required color besides `accent`. */
|
|
38
|
-
canvas: string;
|
|
39
|
-
/** Brand / interactive hue: buttons, links, focus, selected states. */
|
|
40
|
-
accent: string;
|
|
41
|
-
/** Forced appearance; inferred from `canvas` luminance when omitted. */
|
|
42
|
-
appearance?: Appearance;
|
|
43
|
-
|
|
44
|
-
// ---- Optional overrides. Anything omitted is derived. ----
|
|
45
|
-
/** Body text. Derived from `canvas` with a faint tint when omitted. */
|
|
46
|
-
text?: string;
|
|
47
|
-
/** Secondary text. Pushed until it clears its contrast floor. */
|
|
48
|
-
textMuted?: string;
|
|
49
|
-
/** Tertiary text, such as hints. Pushed until it clears its contrast floor. */
|
|
50
|
-
textSubtle?: string;
|
|
51
|
-
/** Elevated surface: sidebar, composer card. Derived from `canvas` when omitted. */
|
|
52
|
-
surface1?: string;
|
|
53
|
-
/** Hover and pressed surface. Derived from `canvas` when omitted. */
|
|
54
|
-
surface2?: string;
|
|
55
|
-
/** Overlay surface: popovers, menus, modals. Derived from `canvas` when omitted. */
|
|
56
|
-
surface3?: string;
|
|
57
|
-
/** Default border and divider colour. */
|
|
58
|
-
border?: string;
|
|
59
|
-
/** Stronger border, for inputs and emphasis. */
|
|
60
|
-
borderStrong?: string;
|
|
61
|
-
/** Focus ring / active rim. Defaults to `accent`. */
|
|
62
|
-
ring?: string;
|
|
63
|
-
/** Secondary hue (the TUI's `accent`; success green in most themes). */
|
|
64
|
-
accentAlt?: string;
|
|
65
|
-
/** Model-identity tint. */
|
|
66
|
-
model?: string;
|
|
67
|
-
/** Success status colour. Pushed until it clears its contrast floor on `canvas` and the active row. */
|
|
68
|
-
success?: string;
|
|
69
|
-
/** Warning status colour. Pushed until it clears its contrast floor on `canvas` and the active row. */
|
|
70
|
-
warn?: string;
|
|
71
|
-
/** Danger and error status colour. Pushed until it clears its contrast floor on `canvas` and the active row. */
|
|
72
|
-
danger?: string;
|
|
73
|
-
/** Info status colour. Pushed until it clears its contrast floor on `canvas` and the active row. */
|
|
74
|
-
info?: string;
|
|
75
|
-
/** Text selection background. Defaults to a translucent `accent`. */
|
|
76
|
-
selection?: string;
|
|
77
|
-
/** Code block background. Defaults to a step off `canvas`. */
|
|
78
|
-
codeBg?: string;
|
|
79
|
-
/** Diff colours. Any left out are mixed from `canvas` and the status colours. */
|
|
80
|
-
diff?: Partial<DiffColors>;
|
|
81
|
-
/** Colours of the reference chips, by kind. Any left out come from `accent` and `model`. */
|
|
82
|
-
chips?: Partial<Record<ChipKind, ChipColors>>;
|
|
83
|
-
/** The two colours of the busy indicator. Defaults to `accent` and a muted `accentAlt`. */
|
|
84
|
-
throbber?: readonly [string, string];
|
|
85
|
-
/** Colour of cost figures. Defaults to the muted text colour. */
|
|
86
|
-
money?: string;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Colours of a diff: backgrounds for added and removed lines, a stronger background for the
|
|
91
|
-
* changed text inside them, and the text colours.
|
|
92
|
-
*/
|
|
93
|
-
export interface DiffColors {
|
|
94
|
-
/** Background of an added line. */
|
|
95
|
-
addBg: string;
|
|
96
|
-
/** Background of a removed line. */
|
|
97
|
-
removeBg: string;
|
|
98
|
-
/** Stronger background behind the changed text inside an added line. */
|
|
99
|
-
addContentBg: string;
|
|
100
|
-
/** Stronger background behind the changed text inside a removed line. */
|
|
101
|
-
removeContentBg: string;
|
|
102
|
-
/** Text colour of an added line. */
|
|
103
|
-
addFg: string;
|
|
104
|
-
/** Text colour of a removed line. */
|
|
105
|
-
removeFg: string;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/** The kind of a reference chip: `default`, `skills` or `files`. */
|
|
109
|
-
export type ChipKind = 'default' | 'skills' | 'files';
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* The surface ladder from canvas to tray to raised to overlay: its tones, edges, shadows and
|
|
113
|
-
* sphere shading. Each appearance derives it its own way.
|
|
114
|
-
*/
|
|
115
|
-
export interface SurfaceLadder {
|
|
116
|
-
/** The bed a surface sits in: a soft step toward depth (darker in both modes). */
|
|
117
|
-
tray: string;
|
|
118
|
-
/** A surface set into a tray, or a control lifted off it: the lightest step. */
|
|
119
|
-
raised: string;
|
|
120
|
-
/** A recessed track for grouped controls, set into a raised surface. */
|
|
121
|
-
track: string;
|
|
122
|
-
/** Floating surfaces (menus, popovers, palette, modals): above whatever they open from. */
|
|
123
|
-
overlay: string;
|
|
124
|
-
/** Row hover inside any surface: a wash, never a slab. */
|
|
125
|
-
rowHover: string;
|
|
126
|
-
/** Low-contrast edge, only where tone alone can't separate two layers. */
|
|
127
|
-
hairline: string;
|
|
128
|
-
/** The border of a raised surface: the hairline in dark, softer in light where the shadow draws the edge. */
|
|
129
|
-
raisedEdge: string;
|
|
130
|
-
/** The ring a raised card sits in (the composer): the tray in dark, a half step in light, so it frames without banding. */
|
|
131
|
-
trayRing: string;
|
|
132
|
-
/** Box-shadow for raised things: top light + a tight soft drop. */
|
|
133
|
-
shadowRaised: string;
|
|
134
|
-
/** The same, one step up, while a surface is live (a run streaming). */
|
|
135
|
-
shadowLive: string;
|
|
136
|
-
/** Box-shadow for trays and tracks: pressed in from the top. */
|
|
137
|
-
shadowInset: string;
|
|
138
|
-
/** Box-shadow for floating surfaces: top light + a deep, soft, layered drop. */
|
|
139
|
-
shadowFloat: string;
|
|
140
|
-
/**
|
|
141
|
-
* Input wells: a translucent shade, so the field is carved into whatever it
|
|
142
|
-
* sits on (canvas, tray or raised card) instead of carrying an absolute tone
|
|
143
|
-
* that only reads on one of them.
|
|
144
|
-
*/
|
|
145
|
-
well: string;
|
|
146
|
-
/** Box-shadow for wells: shade under the top edge, a lip of light on the bottom one. */
|
|
147
|
-
shadowWell: string;
|
|
148
|
-
/** Box-shadow for solid accent fills: top light, bottom edge, a drop tinted by the fill. */
|
|
149
|
-
shadowFill: string;
|
|
150
|
-
/** Background-image over a solid accent fill: light falling from above. */
|
|
151
|
-
fillSheen: string;
|
|
152
|
-
/** How a small lit sphere (the daemon orb) shades: see `SphereShading`. */
|
|
153
|
-
sphere: SphereShading;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* A lit sphere's shading, per appearance. Dark shades toward black, deep;
|
|
158
|
-
* light shades toward a cool slate, shallow, so a vivid fill stays vivid
|
|
159
|
-
* instead of turning to mud. `shade` / `rim` are how much of `tone` the
|
|
160
|
-
* body's far side and its bottom rim take; `glow` scales the halo.
|
|
161
|
-
*/
|
|
162
|
-
export interface SphereShading {
|
|
163
|
-
/** Base colour the sphere shades from. */
|
|
164
|
-
tone: string;
|
|
165
|
-
/** How much of `tone` the body's far side takes, as a CSS percentage. */
|
|
166
|
-
shade: string;
|
|
167
|
-
/** How much of `tone` the bottom rim takes, as a CSS percentage. */
|
|
168
|
-
rim: string;
|
|
169
|
-
/** Scale of the halo, as a number in a string. */
|
|
170
|
-
glow: string;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* Decorative fills: dots, the orb, window lights, badge pips. Colour that
|
|
175
|
-
* is a shape, not text, so it isn't held to the text floors the status
|
|
176
|
-
* tokens carry. Dark: the status colour itself (already bright). Light: the
|
|
177
|
-
* same hue lifted to a vivid, light-appropriate tone (see `dotFor`).
|
|
178
|
-
*/
|
|
179
|
-
export interface DotColors {
|
|
180
|
-
/** Dot colour for `accent`. */
|
|
181
|
-
accent: string;
|
|
182
|
-
/** Dot colour for `accentAlt`. */
|
|
183
|
-
accentAlt: string;
|
|
184
|
-
/** Dot colour for `success`. */
|
|
185
|
-
success: string;
|
|
186
|
-
/** Dot colour for `warn`. */
|
|
187
|
-
warn: string;
|
|
188
|
-
/** Dot colour for `danger`. */
|
|
189
|
-
danger: string;
|
|
190
|
-
/** Dot colour for `info`. */
|
|
191
|
-
info: string;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
/** Background and text colour of a reference chip. */
|
|
195
|
-
export interface ChipColors {
|
|
196
|
-
/** Chip background. */
|
|
197
|
-
bg: string;
|
|
198
|
-
/** Chip text colour. */
|
|
199
|
-
fg: string;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
/**
|
|
203
|
-
* Every colour role the renderer paints with, derived from a {@link ThemeSeed} and checked for
|
|
204
|
-
* contrast against the surfaces it sits on.
|
|
205
|
-
*/
|
|
206
|
-
export interface ResolvedPalette {
|
|
207
|
-
/** Whether the palette is light or dark. */
|
|
208
|
-
appearance: Appearance;
|
|
209
|
-
|
|
210
|
-
/** Window background (the canvas). */
|
|
211
|
-
bg: string;
|
|
212
|
-
/** Elevated surface: sidebar, composer card, code block chrome. */
|
|
213
|
-
surface1: string;
|
|
214
|
-
/** Hover / pressed surface. */
|
|
215
|
-
surface2: string;
|
|
216
|
-
/** Overlay surface: popovers, menus, modals. */
|
|
217
|
-
surface3: string;
|
|
218
|
-
/** Selected row (neutral, no accent tint). */
|
|
219
|
-
selected: string;
|
|
220
|
-
/** Alpha wash for hover on arbitrary surfaces. */
|
|
221
|
-
hoverWash: string;
|
|
222
|
-
|
|
223
|
-
/** Default border and divider colour. */
|
|
224
|
-
border: string;
|
|
225
|
-
/** Stronger border, for inputs and emphasis. */
|
|
226
|
-
borderStrong: string;
|
|
227
|
-
/** Focus ring and active rim colour. */
|
|
228
|
-
ring: string;
|
|
229
|
-
|
|
230
|
-
/** Body text. */
|
|
231
|
-
text: string;
|
|
232
|
-
/** Secondary text. */
|
|
233
|
-
textMuted: string;
|
|
234
|
-
/** Tertiary text, such as hints. */
|
|
235
|
-
textSubtle: string;
|
|
236
|
-
/** Text on top of `accent`-filled controls. */
|
|
237
|
-
accentFg: string;
|
|
238
|
-
/**
|
|
239
|
-
* Solid fill for buttons and markers: the accent, stepped darker along
|
|
240
|
-
* its own hue until white clears `CONTRAST.accentFg` on it, so glyphs on
|
|
241
|
-
* filled controls are white on every theme. Text-on-canvas keeps
|
|
242
|
-
* `accent` (contrast is checked against the background there).
|
|
243
|
-
*/
|
|
244
|
-
accentFill: string;
|
|
245
|
-
/** Hover state of `accentFill`, one step deeper. */
|
|
246
|
-
accentFillHover: string;
|
|
247
|
-
/** Text and glyph colour on `accentFill`. */
|
|
248
|
-
accentFillFg: string;
|
|
249
|
-
|
|
250
|
-
/** Brand and interactive colour, checked for contrast against `bg`. */
|
|
251
|
-
accent: string;
|
|
252
|
-
/** Hover state of `accent`: brighter in dark, deeper in light. */
|
|
253
|
-
accentHover: string;
|
|
254
|
-
/** Translucent `accent` for quiet backgrounds. */
|
|
255
|
-
accentSoft: string;
|
|
256
|
-
/** Stronger translucent `accent`, for hover on soft backgrounds. */
|
|
257
|
-
accentSoftStrong: string;
|
|
258
|
-
/** The sent prompt's bubble: the accent's wash, lighter in light where an alpha tint reads far stronger. */
|
|
259
|
-
accentWash: string;
|
|
260
|
-
/** Secondary hue, often a green. */
|
|
261
|
-
accentAlt: string;
|
|
262
|
-
/** Tint that identifies the model. */
|
|
263
|
-
model: string;
|
|
264
|
-
|
|
265
|
-
/** Success status colour. */
|
|
266
|
-
success: string;
|
|
267
|
-
/** Translucent `success` for backgrounds. */
|
|
268
|
-
successSoft: string;
|
|
269
|
-
/** Warning status colour. */
|
|
270
|
-
warn: string;
|
|
271
|
-
/** Translucent `warn` for backgrounds. */
|
|
272
|
-
warnSoft: string;
|
|
273
|
-
/** Danger and error status colour. */
|
|
274
|
-
danger: string;
|
|
275
|
-
/** Translucent `danger` for backgrounds. */
|
|
276
|
-
dangerSoft: string;
|
|
277
|
-
/** Solid fill for destructive commits: `danger` stepped darker like `accentFill`, so white clears `CONTRAST.accentFg` on it. */
|
|
278
|
-
dangerFill: string;
|
|
279
|
-
/** Hover state of `dangerFill`, one step deeper. */
|
|
280
|
-
dangerFillHover: string;
|
|
281
|
-
/** Text and glyph colour on `dangerFill`. */
|
|
282
|
-
dangerFillFg: string;
|
|
283
|
-
/** Info status colour. */
|
|
284
|
-
info: string;
|
|
285
|
-
/** Translucent `info` for backgrounds. */
|
|
286
|
-
infoSoft: string;
|
|
287
|
-
/** Decorative fills for dots, the orb and window lights. They are shapes, not text. */
|
|
288
|
-
dots: DotColors;
|
|
289
|
-
|
|
290
|
-
/**
|
|
291
|
-
* The surface ladder (canvas → tray → raised) and its edges. Separation
|
|
292
|
-
* comes from tone and light, not outlines; each appearance derives it its
|
|
293
|
-
* own way (see `SURFACE`). `.zg-tray` / `.zg-raised` / `.zg-segment` in
|
|
294
|
-
* styles/primitives.css are the only consumers components should need.
|
|
295
|
-
*/
|
|
296
|
-
surfaces: SurfaceLadder;
|
|
297
|
-
|
|
298
|
-
/** Code block background. */
|
|
299
|
-
codeBg: string;
|
|
300
|
-
/** Code block text, checked for contrast against `codeBg`. */
|
|
301
|
-
codeFg: string;
|
|
302
|
-
/** Text selection background. */
|
|
303
|
-
selection: string;
|
|
304
|
-
/** Backdrop colour behind modal layers. */
|
|
305
|
-
scrim: string;
|
|
306
|
-
/** Base shadow colour. */
|
|
307
|
-
shadow: string;
|
|
308
|
-
|
|
309
|
-
/** Diff colours. */
|
|
310
|
-
diff: DiffColors;
|
|
311
|
-
/** Reference chip colours, by kind. */
|
|
312
|
-
chips: Record<ChipKind, ChipColors>;
|
|
313
|
-
/** The two colours of the busy indicator. */
|
|
314
|
-
throbber: readonly [string, string];
|
|
315
|
-
/** Colour of cost figures. */
|
|
316
|
-
money: string;
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
/**
|
|
320
|
-
* Minimum contrast targets. Body text follows WCAG AA (4.5); muted/subtle
|
|
321
|
-
* relax on purpose. Text on accent-filled controls and chips uses the WCAG
|
|
322
|
-
* UI-component threshold (3.0): it keeps white labels on bright accents,
|
|
323
|
-
* which every platform button does, instead of flipping to dark text.
|
|
324
|
-
*/
|
|
325
|
-
export const CONTRAST = {
|
|
326
|
-
text: 4.5,
|
|
327
|
-
textMuted: 3.4,
|
|
328
|
-
textSubtle: 2.2,
|
|
329
|
-
status: 3,
|
|
330
|
-
accentFg: 3,
|
|
331
|
-
diffFg: 4,
|
|
332
|
-
/** Decorative fills (`DotColors`): a shape that must not vanish into the canvas, not a text floor. */
|
|
333
|
-
dot: 1.5,
|
|
334
|
-
} as const;
|
|
335
|
-
|
|
336
|
-
/** Default status hues per appearance; tuned so they pass `CONTRAST.status` on typical canvases. */
|
|
337
|
-
const STATUS_DEFAULTS: Record<Appearance, { success: string; warn: string; danger: string; info: string }> = {
|
|
338
|
-
dark: { success: '#4ade80', warn: '#fbbf24', danger: '#f87171', info: '#60a5fa' },
|
|
339
|
-
light: { success: '#1b9247', warn: '#b47500', danger: '#de3b3d', info: '#3177dc' },
|
|
340
|
-
};
|
|
341
|
-
|
|
342
|
-
/**
|
|
343
|
-
* Lightness offsets for the neutral ramp, relative to the canvas. Dark
|
|
344
|
-
* canvases step up, light canvases step down. Small on purpose: separation
|
|
345
|
-
* should come from borders and hover, not from stacked gray slabs.
|
|
346
|
-
*/
|
|
347
|
-
const RAMP: Record<
|
|
348
|
-
Appearance,
|
|
349
|
-
{ surface1: number; surface2: number; surface3: number; border: number; borderStrong: number }
|
|
350
|
-
> = {
|
|
351
|
-
dark: { surface1: 0.035, surface2: 0.07, surface3: 0.1, border: 0.11, borderStrong: 0.18 },
|
|
352
|
-
light: { surface1: -0.025, surface2: -0.055, surface3: 0.012, border: -0.12, borderStrong: -0.2 },
|
|
353
|
-
};
|
|
354
|
-
|
|
355
|
-
/**
|
|
356
|
-
* How each appearance builds depth. Dark lifts with LIGHT (a faint top
|
|
357
|
-
* highlight; shadows barely read on dark); light lifts with SHADOW (a soft,
|
|
358
|
-
* tight, cool-neutral drop) plus a white inner top edge that reads on the
|
|
359
|
-
* grey tray. Lightness offsets are relative to the canvas.
|
|
360
|
-
*/
|
|
361
|
-
const SURFACE: Record<
|
|
362
|
-
Appearance,
|
|
363
|
-
{
|
|
364
|
-
tray: number;
|
|
365
|
-
raised: number;
|
|
366
|
-
track: number;
|
|
367
|
-
overlay: number;
|
|
368
|
-
highlight: string;
|
|
369
|
-
drop: string;
|
|
370
|
-
dropLive: string;
|
|
371
|
-
inset: string;
|
|
372
|
-
float: string;
|
|
373
|
-
rowHover: string;
|
|
374
|
-
well: string;
|
|
375
|
-
wellInset: string;
|
|
376
|
-
fill: string;
|
|
377
|
-
sphere: SphereShading;
|
|
378
|
-
/** Tray-ring step, relative to the canvas (see `trayRing`). */
|
|
379
|
-
ring: number;
|
|
380
|
-
/** How far the raised edge moves from the border toward the raised tone (0 = border, 1 = invisible). */
|
|
381
|
-
edgeFade: number;
|
|
382
|
-
}
|
|
383
|
-
> = {
|
|
384
|
-
dark: {
|
|
385
|
-
tray: 0.016,
|
|
386
|
-
raised: 0.052,
|
|
387
|
-
track: 0.024,
|
|
388
|
-
highlight: 'inset 0 1px 0 rgba(255, 255, 255, 0.06)',
|
|
389
|
-
drop: '0 1px 2px rgba(0, 0, 0, 0.32), 0 6px 16px -8px rgba(0, 0, 0, 0.5)',
|
|
390
|
-
dropLive: '0 1px 2px rgba(0, 0, 0, 0.36), 0 10px 28px -10px rgba(0, 0, 0, 0.62)',
|
|
391
|
-
inset: 'inset 0 1px 2px rgba(0, 0, 0, 0.3)',
|
|
392
|
-
overlay: 0.064,
|
|
393
|
-
float:
|
|
394
|
-
'0 0 0 1px rgba(0, 0, 0, 0.35), 0 2px 4px rgba(0, 0, 0, 0.25), 0 12px 32px -8px rgba(0, 0, 0, 0.6), 0 32px 64px -24px rgba(0, 0, 0, 0.5)',
|
|
395
|
-
rowHover: 'rgba(255, 255, 255, 0.055)',
|
|
396
|
-
well: 'rgba(0, 0, 0, 0.22)',
|
|
397
|
-
wellInset: 'inset 0 1px 2px rgba(0, 0, 0, 0.32), inset 0 -1px 0 rgba(255, 255, 255, 0.04)',
|
|
398
|
-
// Lit like a raised chip, shadowed in neutral: an accent-tinted glow reads as decoration, not depth.
|
|
399
|
-
fill: 'inset 0 1px 0 rgba(255, 255, 255, 0.24), inset 0 -1px 0 rgba(0, 0, 0, 0.16), 0 1px 2px rgba(0, 0, 0, 0.4), 0 3px 8px -4px rgba(0, 0, 0, 0.45)',
|
|
400
|
-
sphere: { tone: '#000000', shade: '38%', rim: '60%', glow: '1' },
|
|
401
|
-
ring: 0.016,
|
|
402
|
-
edgeFade: 0.4,
|
|
403
|
-
},
|
|
404
|
-
light: {
|
|
405
|
-
// A touch deeper than dark's lift (equal steps read smaller near white),
|
|
406
|
-
// but only a touch: the white card's shadow does the separating, and a
|
|
407
|
-
// deep grey tray reads as a slab next to a white chat.
|
|
408
|
-
tray: -0.022,
|
|
409
|
-
raised: 0.02,
|
|
410
|
-
track: -0.032,
|
|
411
|
-
highlight: 'inset 0 1px 0 rgba(255, 255, 255, 0.85)',
|
|
412
|
-
// Light carries depth in the shadow (dark carries it in the tone step): a
|
|
413
|
-
// tight contact shadow, a short soft one, and a long falloff, so a white
|
|
414
|
-
// card on a near-white canvas still reads as lifted.
|
|
415
|
-
drop: '0 1px 2px rgba(20, 24, 40, 0.06), 0 2px 6px -2px rgba(20, 24, 40, 0.05), 0 10px 24px -12px rgba(20, 24, 40, 0.18)',
|
|
416
|
-
dropLive:
|
|
417
|
-
'0 1px 2px rgba(20, 24, 40, 0.07), 0 3px 8px -2px rgba(20, 24, 40, 0.06), 0 14px 32px -12px rgba(20, 24, 40, 0.24)',
|
|
418
|
-
// Pressed in: shade under the top edge, a lip of light on the bottom one.
|
|
419
|
-
inset: 'inset 0 1px 2px rgba(20, 24, 40, 0.07), inset 0 -1px 0 rgba(255, 255, 255, 0.75)',
|
|
420
|
-
overlay: 0.02,
|
|
421
|
-
float:
|
|
422
|
-
'0 0 0 1px rgba(20, 24, 40, 0.06), 0 2px 4px rgba(20, 24, 40, 0.05), 0 12px 28px -8px rgba(20, 24, 40, 0.16), 0 28px 56px -24px rgba(20, 24, 40, 0.14)',
|
|
423
|
-
rowHover: 'rgba(20, 24, 40, 0.045)',
|
|
424
|
-
well: 'rgba(20, 24, 40, 0.045)',
|
|
425
|
-
wellInset: 'inset 0 1px 2px rgba(20, 24, 40, 0.08), inset 0 -1px 0 rgba(255, 255, 255, 0.7)',
|
|
426
|
-
fill: 'inset 0 1px 0 rgba(255, 255, 255, 0.26), inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 2px rgba(20, 24, 40, 0.14), 0 3px 8px -4px rgba(20, 24, 40, 0.18)',
|
|
427
|
-
sphere: { tone: '#1b2333', shade: '16%', rim: '30%', glow: '0.6' },
|
|
428
|
-
ring: -0.012,
|
|
429
|
-
edgeFade: 0.62,
|
|
430
|
-
},
|
|
431
|
-
};
|
|
432
|
-
|
|
433
|
-
function deriveSurfaces(ctx: {
|
|
434
|
-
appearance: Appearance;
|
|
435
|
-
step: (delta: number) => string;
|
|
436
|
-
canvasL: number;
|
|
437
|
-
border: string;
|
|
438
|
-
}): SurfaceLadder {
|
|
439
|
-
const rule = SURFACE[ctx.appearance];
|
|
440
|
-
// Light canvases already sit near white: the raised step can't go past it.
|
|
441
|
-
const raisedDelta = Math.min(rule.raised, 0.995 - ctx.canvasL);
|
|
442
|
-
const raised = ctx.step(raisedDelta);
|
|
443
|
-
const overlay = ctx.step(Math.min(rule.overlay, 0.998 - ctx.canvasL));
|
|
444
|
-
return {
|
|
445
|
-
tray: ctx.step(rule.tray),
|
|
446
|
-
raised,
|
|
447
|
-
track: ctx.step(rule.track),
|
|
448
|
-
overlay,
|
|
449
|
-
rowHover: rule.rowHover,
|
|
450
|
-
hairline: mix(ctx.border, raised, 0.4),
|
|
451
|
-
raisedEdge: mix(ctx.border, raised, rule.edgeFade),
|
|
452
|
-
trayRing: ctx.step(rule.ring),
|
|
453
|
-
shadowRaised: `${rule.highlight}, ${rule.drop}`,
|
|
454
|
-
shadowLive: `${rule.highlight}, ${rule.dropLive}`,
|
|
455
|
-
shadowInset: rule.inset,
|
|
456
|
-
shadowFloat: `${rule.highlight}, ${rule.float}`,
|
|
457
|
-
well: rule.well,
|
|
458
|
-
shadowWell: rule.wellInset,
|
|
459
|
-
shadowFill: rule.fill,
|
|
460
|
-
fillSheen: 'linear-gradient(to bottom, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0) 70%)',
|
|
461
|
-
sphere: rule.sphere,
|
|
462
|
-
};
|
|
463
|
-
}
|
|
464
|
-
|
|
465
|
-
/**
|
|
466
|
-
* Picks the appearance that suits a canvas: `dark` when its luminance is low, else `light`.
|
|
467
|
-
*
|
|
468
|
-
* @param canvas - The window background colour.
|
|
469
|
-
* @returns The appearance.
|
|
470
|
-
*/
|
|
471
|
-
export function inferAppearance(canvas: string): Appearance {
|
|
472
|
-
return isDark(canvas) ? 'dark' : 'light';
|
|
473
|
-
}
|
|
474
|
-
|
|
475
|
-
/**
|
|
476
|
-
* Derives a complete, contrast-checked palette from a seed. Anything the seed leaves out is
|
|
477
|
-
* computed from `canvas` and `accent`. Pure, with no DOM.
|
|
478
|
-
*
|
|
479
|
-
* @param seed - The colours the theme author chose.
|
|
480
|
-
* @returns The resolved palette.
|
|
481
|
-
*/
|
|
482
|
-
export function derivePalette(seed: ThemeSeed): ResolvedPalette {
|
|
483
|
-
const appearance = seed.appearance ?? inferAppearance(seed.canvas);
|
|
484
|
-
const dark = appearance === 'dark';
|
|
485
|
-
const bg = seed.canvas;
|
|
486
|
-
const canvas = toOklch(bg) ?? { l: dark ? 0.15 : 0.98, c: 0, h: 0, a: 1 };
|
|
487
|
-
const ramp = RAMP[appearance];
|
|
488
|
-
|
|
489
|
-
// Neutral ramp: same hue family as the canvas, chroma kept faint. When the
|
|
490
|
-
// canvas is pure gray we borrow a whisper of the accent hue so the ramp
|
|
491
|
-
// doesn't read as dead gray next to a colorful accent.
|
|
492
|
-
const tintSource = canvas.c > 0.004 ? bg : seed.accent;
|
|
493
|
-
const tint = canvas.c > 0.004 ? Math.min(canvas.c, 0.03) : 0.006;
|
|
494
|
-
const step = (delta: number): string => tintedNeutral(canvas.l + delta, tintSource, tint);
|
|
495
|
-
|
|
496
|
-
const surface1 = seed.surface1 ?? step(ramp.surface1);
|
|
497
|
-
const surface2 = seed.surface2 ?? step(ramp.surface2);
|
|
498
|
-
const surface3 = seed.surface3 ?? step(ramp.surface3);
|
|
499
|
-
const border = seed.border ?? step(ramp.border);
|
|
500
|
-
// Strong border steps from the *resolved* border so a seeded border never
|
|
501
|
-
// ends up lighter than its own emphasis variant.
|
|
502
|
-
const borderStrong =
|
|
503
|
-
seed.borderStrong ?? withLightness(border, (toOklch(border)?.l ?? canvas.l) + (dark ? 0.07 : -0.08));
|
|
504
|
-
const selected = mix(surface2, border, 0.35);
|
|
505
|
-
const hoverWash = dark ? 'rgba(255, 255, 255, 0.05)' : 'rgba(0, 0, 0, 0.04)';
|
|
506
|
-
|
|
507
|
-
// Text: the seed's choice if readable, else pushed toward the extreme.
|
|
508
|
-
const textBase = seed.text ?? tintedNeutral(dark ? 0.93 : 0.24, tintSource, tint * 0.5);
|
|
509
|
-
const text = ensureContrast(textBase, surface2, CONTRAST.text);
|
|
510
|
-
const textMuted = ensureContrast(seed.textMuted ?? mix(text, bg, 0.42), surface2, CONTRAST.textMuted);
|
|
511
|
-
const textSubtle = ensureContrast(seed.textSubtle ?? mix(text, bg, 0.62), bg, CONTRAST.textSubtle);
|
|
512
|
-
|
|
513
|
-
// Accent family. Hover moves toward the text extreme so it reads as
|
|
514
|
-
// "brighter" in dark and "deeper" in light, matching platform conventions.
|
|
515
|
-
const accent = ensureContrast(seed.accent, bg, 3);
|
|
516
|
-
const accentL = toOklch(accent)?.l ?? 0.6;
|
|
517
|
-
const accentHover = withLightness(accent, accentL + (dark ? 0.07 : -0.07));
|
|
518
|
-
const accentSoft = withAlpha(accent, 0.12);
|
|
519
|
-
const accentSoftStrong = withAlpha(accent, 0.2);
|
|
520
|
-
const accentWash = dark ? accentSoftStrong : withAlpha(accent, 0.1);
|
|
521
|
-
const accentFg = onFillText(accent, bg);
|
|
522
|
-
const accentFill = fillForWhite(accent);
|
|
523
|
-
// Hover deepens in both appearances: lighter would drop white below the fill contrast on dark themes.
|
|
524
|
-
const accentFillHover = withLightness(accentFill, (toOklch(accentFill)?.l ?? 0.5) - 0.05);
|
|
525
|
-
const accentFillFg = onFillText(accentFill, bg);
|
|
526
|
-
const ring = seed.ring ?? accent;
|
|
527
|
-
const accentAlt = ensureContrast(seed.accentAlt ?? accent, bg, 3);
|
|
528
|
-
const model = ensureContrast(seed.model ?? accentHover, bg, 3);
|
|
529
|
-
|
|
530
|
-
const surfaces = deriveSurfaces({ appearance, step, canvasL: canvas.l, border });
|
|
531
|
-
// Status text sits in rows too: the active one (`--zg-row-active`, text at 9% over the tray) is
|
|
532
|
-
// the surface furthest from it, so the floor holds there and on the canvas alike.
|
|
533
|
-
const activeRow = mix(surfaces.tray, text, 0.09);
|
|
534
|
-
const statusDefaults = STATUS_DEFAULTS[appearance];
|
|
535
|
-
const status = (value: string | undefined, fallback: string): string =>
|
|
536
|
-
ensureContrast(ensureContrast(value ?? fallback, bg, CONTRAST.status), activeRow, CONTRAST.status);
|
|
537
|
-
const success = status(seed.success, statusDefaults.success);
|
|
538
|
-
const warn = status(seed.warn, statusDefaults.warn);
|
|
539
|
-
const danger = status(seed.danger, statusDefaults.danger);
|
|
540
|
-
const dangerFill = fillForWhite(danger);
|
|
541
|
-
const dangerFillHover = withLightness(dangerFill, (toOklch(dangerFill)?.l ?? 0.5) - 0.05);
|
|
542
|
-
const dangerFillFg = onFillText(dangerFill, bg);
|
|
543
|
-
const info = status(seed.info, statusDefaults.info);
|
|
544
|
-
|
|
545
|
-
// Light: a whisper under the canvas, as dark's panel is a whisper over it.
|
|
546
|
-
const codeBg = seed.codeBg ?? step(dark ? 0.02 : -0.018);
|
|
547
|
-
const codeFg = ensureContrast(text, codeBg, CONTRAST.text);
|
|
548
|
-
const selection = seed.selection ?? withAlpha(accent, dark ? 0.28 : 0.22);
|
|
549
|
-
const scrim = dark ? 'rgba(0, 0, 0, 0.6)' : 'rgba(0, 0, 0, 0.35)';
|
|
550
|
-
const shadow = dark ? 'rgba(0, 0, 0, 0.55)' : 'rgba(15, 15, 20, 0.16)';
|
|
551
|
-
|
|
552
|
-
const diff = deriveDiff(seed.diff, { bg, success, danger, dark });
|
|
553
|
-
const chips = deriveChips(seed.chips, { accent, model, bg });
|
|
554
|
-
|
|
555
|
-
const dot = (color: string): string => dotFor(color, appearance, bg);
|
|
556
|
-
const dots: DotColors = {
|
|
557
|
-
accent: dot(accent),
|
|
558
|
-
accentAlt: dot(accentAlt),
|
|
559
|
-
success: dot(success),
|
|
560
|
-
warn: dot(warn),
|
|
561
|
-
danger: dot(danger),
|
|
562
|
-
info: dot(info),
|
|
563
|
-
};
|
|
564
|
-
|
|
565
|
-
const throbber = seed.throbber ?? ([accent, capChroma(accentAlt, 0.2)] as const);
|
|
566
|
-
const money = seed.money ?? textMuted;
|
|
567
|
-
|
|
568
|
-
return {
|
|
569
|
-
appearance,
|
|
570
|
-
bg,
|
|
571
|
-
surface1,
|
|
572
|
-
surface2,
|
|
573
|
-
surface3,
|
|
574
|
-
selected,
|
|
575
|
-
hoverWash,
|
|
576
|
-
border,
|
|
577
|
-
borderStrong,
|
|
578
|
-
ring,
|
|
579
|
-
text,
|
|
580
|
-
textMuted,
|
|
581
|
-
textSubtle,
|
|
582
|
-
accentFg,
|
|
583
|
-
accentFill,
|
|
584
|
-
accentFillHover,
|
|
585
|
-
accentFillFg,
|
|
586
|
-
accent,
|
|
587
|
-
accentHover,
|
|
588
|
-
accentSoft,
|
|
589
|
-
accentSoftStrong,
|
|
590
|
-
accentWash,
|
|
591
|
-
accentAlt,
|
|
592
|
-
model,
|
|
593
|
-
success,
|
|
594
|
-
successSoft: withAlpha(success, 0.14),
|
|
595
|
-
warn,
|
|
596
|
-
warnSoft: withAlpha(warn, 0.14),
|
|
597
|
-
danger,
|
|
598
|
-
dangerSoft: withAlpha(danger, 0.14),
|
|
599
|
-
dangerFill,
|
|
600
|
-
dangerFillHover,
|
|
601
|
-
dangerFillFg,
|
|
602
|
-
info,
|
|
603
|
-
infoSoft: withAlpha(info, 0.14),
|
|
604
|
-
dots,
|
|
605
|
-
surfaces,
|
|
606
|
-
codeBg,
|
|
607
|
-
codeFg,
|
|
608
|
-
selection,
|
|
609
|
-
scrim,
|
|
610
|
-
shadow,
|
|
611
|
-
diff,
|
|
612
|
-
chips,
|
|
613
|
-
throbber,
|
|
614
|
-
money,
|
|
615
|
-
};
|
|
616
|
-
}
|
|
617
|
-
|
|
618
|
-
/**
|
|
619
|
-
* A status / accent colour as a decorative fill. Dark returns it as is. Light
|
|
620
|
-
* lifts it along its own hue to a vivid tone (yellows sit higher: they turn
|
|
621
|
-
* olive below ~0.8), with a chroma floor so a deep text tone doesn't come
|
|
622
|
-
* back pastel-grey; neutrals stay neutral. Never below `CONTRAST.dot`.
|
|
623
|
-
*/
|
|
624
|
-
function dotFor(color: string, appearance: Appearance, bg: string): string {
|
|
625
|
-
const o = toOklch(color);
|
|
626
|
-
if (appearance === 'dark' || !o) {
|
|
627
|
-
return color;
|
|
628
|
-
}
|
|
629
|
-
const yellow = o.h >= 60 && o.h <= 110;
|
|
630
|
-
const l = Math.max(o.l, yellow ? 0.82 : 0.7);
|
|
631
|
-
const c = o.c < 0.03 ? o.c : Math.max(o.c, 0.15);
|
|
632
|
-
return ensureContrast(oklch(l, c, o.h), bg, CONTRAST.dot);
|
|
633
|
-
}
|
|
634
|
-
|
|
635
|
-
/**
|
|
636
|
-
* Darken `color` along its hue until `#ffffff` reads on it, in small steps
|
|
637
|
-
* so the fill stays recognisably the theme's accent. Gives up after a
|
|
638
|
-
* bounded walk (a near-white accent on a dark theme): `onFillText` then
|
|
639
|
-
* picks a dark foreground.
|
|
640
|
-
*/
|
|
641
|
-
function fillForWhite(color: string): string {
|
|
642
|
-
let fill = color;
|
|
643
|
-
let l = toOklch(color)?.l ?? 0.6;
|
|
644
|
-
for (let i = 0; i < 12 && contrastRatio('#ffffff', fill) < CONTRAST.accentFg; i++) {
|
|
645
|
-
l -= 0.04;
|
|
646
|
-
fill = withLightness(color, l);
|
|
647
|
-
}
|
|
648
|
-
return fill;
|
|
649
|
-
}
|
|
650
|
-
|
|
651
|
-
/**
|
|
652
|
-
* Text on a filled control (accent, danger). White when it passes, else the canvas
|
|
653
|
-
* color (dark-on-bright reads as intentional and matches chips), else the
|
|
654
|
-
* nearest passing extreme.
|
|
655
|
-
*/
|
|
656
|
-
function onFillText(fill: string, canvas: string): string {
|
|
657
|
-
if (contrastRatio('#ffffff', fill) >= CONTRAST.accentFg) {
|
|
658
|
-
return '#ffffff';
|
|
659
|
-
}
|
|
660
|
-
if (contrastRatio(canvas, fill) >= CONTRAST.accentFg) {
|
|
661
|
-
return canvas;
|
|
662
|
-
}
|
|
663
|
-
return readableOn(fill, canvas, CONTRAST.accentFg);
|
|
664
|
-
}
|
|
665
|
-
|
|
666
|
-
function deriveDiff(
|
|
667
|
-
seed: Partial<DiffColors> | undefined,
|
|
668
|
-
ctx: { bg: string; success: string; danger: string; dark: boolean },
|
|
669
|
-
): DiffColors {
|
|
670
|
-
const addBg = seed?.addBg ?? mix(ctx.bg, ctx.success, ctx.dark ? 0.16 : 0.14);
|
|
671
|
-
const removeBg = seed?.removeBg ?? mix(ctx.bg, ctx.danger, ctx.dark ? 0.16 : 0.14);
|
|
672
|
-
const addContentBg = seed?.addContentBg ?? mix(ctx.bg, ctx.success, ctx.dark ? 0.3 : 0.26);
|
|
673
|
-
const removeContentBg = seed?.removeContentBg ?? mix(ctx.bg, ctx.danger, ctx.dark ? 0.3 : 0.26);
|
|
674
|
-
|
|
675
|
-
return {
|
|
676
|
-
addBg,
|
|
677
|
-
removeBg,
|
|
678
|
-
addContentBg,
|
|
679
|
-
removeContentBg,
|
|
680
|
-
addFg: ensureContrast(seed?.addFg ?? ctx.success, addContentBg, CONTRAST.diffFg),
|
|
681
|
-
removeFg: ensureContrast(seed?.removeFg ?? ctx.danger, removeContentBg, CONTRAST.diffFg),
|
|
682
|
-
};
|
|
683
|
-
}
|
|
684
|
-
|
|
685
|
-
function deriveChips(
|
|
686
|
-
seed: Partial<Record<ChipKind, ChipColors>> | undefined,
|
|
687
|
-
ctx: { accent: string; model: string; bg: string },
|
|
688
|
-
): Record<ChipKind, ChipColors> {
|
|
689
|
-
const make = (bg: string): ChipColors => ({ bg, fg: onFillText(bg, ctx.bg) });
|
|
690
|
-
const fix = (chip: ChipColors): ChipColors => ({
|
|
691
|
-
bg: chip.bg,
|
|
692
|
-
fg: contrastRatio(chip.fg, chip.bg) >= CONTRAST.accentFg ? chip.fg : readableOn(chip.bg, chip.fg),
|
|
693
|
-
});
|
|
694
|
-
|
|
695
|
-
return {
|
|
696
|
-
default: seed?.default ? fix(seed.default) : make(ctx.accent),
|
|
697
|
-
skills: seed?.skills ? fix(seed.skills) : make(ctx.accent),
|
|
698
|
-
files: seed?.files ? fix(seed.files) : make(ctx.model),
|
|
699
|
-
};
|
|
700
|
-
}
|