From 3b8d3ca6399a099863cf37f86e8681707eaa37ec Mon Sep 17 00:00:00 2001
From: Luke Parker <10430890+Hona@users.noreply.github.com>
Date: Wed, 19 Aug 2026 11:36:11 +1000
Subject: [PATCH] refactor(ui): promote current design system (#43200)
---
.../timeline/session-tab-switch-probe.ts | 2 +-
.../regression/session-request-docks.spec.ts | 4 +-
.../session-timeline-tool-projection.spec.ts | 9 +-
.../app/e2e/smoke/session-timeline.spec.ts | 2 +-
packages/app/src/components/debug-bar.tsx | 21 +-
.../components/dialog-command-palette-v2.tsx | 12 +-
.../dialog-connect-provider.stories.tsx | 4 +-
.../components/dialog-connect-provider.tsx | 25 +-
.../src/components/dialog-custom-provider.tsx | 38 ++-
.../src/components/dialog-edit-project-v2.tsx | 61 ++--
packages/app/src/components/dialog-fork.tsx | 41 ++-
.../src/components/dialog-manage-models.tsx | 171 +++++-----
.../src/components/dialog-release-notes.tsx | 4 +-
.../components/dialog-select-directory-v2.tsx | 32 +-
.../app/src/components/dialog-select-file.tsx | 187 -----------
.../app/src/components/dialog-select-mcp.tsx | 120 +++----
.../dialog-select-model-unpaid-v2.stories.tsx | 2 +-
.../dialog-select-model-unpaid-v2.tsx | 20 +-
.../components/dialog-select-model-unpaid.tsx | 201 ++++++------
.../src/components/dialog-select-model.tsx | 86 +++--
.../src/components/dialog-select-server.tsx | 51 ++-
.../src/components/dialog-usage-exceeded.tsx | 27 +-
packages/app/src/components/file-tree-v2.tsx | 4 +-
.../project-settings-extensions.tsx | 30 +-
.../app/src/components/prompt-input-v2.tsx | 22 +-
.../components/prompt-project-selector.tsx | 70 ++--
.../components/prompt-workspace-selector.tsx | 86 ++---
.../src/components/server/server-row-menu.tsx | 42 +--
.../app/src/components/server/server-row.tsx | 1 +
.../src/components/session-context-usage.tsx | 30 +-
.../src/components/session-workspace-menu.tsx | 62 ++--
.../src/components/session/open-in-app-v2.tsx | 59 ++--
.../src/components/session/session-header.tsx | 21 +-
.../session/session-sortable-tab-v2.tsx | 19 +-
.../session-sortable-terminal-tab-v2.tsx | 36 +-
.../app/src/components/settings-keybinds.tsx | 18 +-
.../src/components/settings-v2/appearance.tsx | 12 +-
.../settings-v2/dialog-server-v2.tsx | 26 +-
.../settings-v2/dialog-settings-v2.tsx | 92 +++---
.../src/components/settings-v2/extensions.tsx | 30 +-
.../src/components/settings-v2/general.tsx | 32 +-
.../app/src/components/settings-v2/models.tsx | 14 +-
.../components/settings-v2/notifications.tsx | 7 +-
.../settings-v2/parts/server-select.tsx | 5 +-
.../src/components/settings-v2/projects.tsx | 10 +-
.../src/components/settings-v2/providers.tsx | 22 +-
.../src/components/settings-v2/servers.tsx | 16 +-
.../components/settings-v2/settings-v2.css | 4 +-
.../src/components/settings-v2/workspaces.tsx | 81 +++--
.../src/components/status-popover-body.tsx | 4 +-
.../app/src/components/status-popover.tsx | 7 +-
.../app/src/components/titlebar-tab-nav.tsx | 14 +-
packages/app/src/components/titlebar.tsx | 28 +-
.../app/src/components/windows-app-menu.tsx | 59 ++--
packages/app/src/context/layout.tsx | 2 +-
packages/app/src/index.css | 31 +-
.../app/src/pages/home/home-projects-view.tsx | 82 ++---
.../app/src/pages/home/home-sessions-view.tsx | 30 +-
.../src/pages/layout/session-tab-avatar.tsx | 5 +-
.../pages/new-session/new-session-view.tsx | 13 +-
.../new-session/use-new-session-commands.tsx | 4 +-
packages/app/src/pages/session.tsx | 32 +-
.../composer/session-background-dock.tsx | 4 +-
.../composer/session-composer-pullout.tsx | 3 +-
.../composer/session-followup-dock.tsx | 5 +-
.../composer/session-permission-dock.tsx | 4 +-
.../composer/session-question-dock.tsx | 18 +-
.../session/composer/session-revert-dock.tsx | 16 +-
packages/app/src/pages/session/file-tabs.tsx | 30 +-
.../src/pages/session/session-side-panel.tsx | 41 +--
.../src/pages/session/terminal-panel-v2.tsx | 16 +-
.../src/pages/session/timeline/controller.tsx | 16 +-
.../session/timeline/message-timeline.tsx | 90 ++---
.../pages/session/usage-exceeded-dialogs.tsx | 3 +-
.../pages/session/use-session-commands.tsx | 4 +-
.../src/pages/session/v2/review-panel-v2.tsx | 2 +-
.../pages/session/v2/session-file-list-v2.tsx | 2 +-
packages/app/src/utils/toast.tsx | 23 +-
packages/app/src/wsl/dialog-add-server.tsx | 71 ++--
packages/app/src/wsl/settings.tsx | 82 +++--
packages/app/test-browser/toast-owner.test.ts | 38 +--
.../desktop/src/renderer/migration-status.tsx | 26 +-
packages/enterprise/src/app.css | 1 +
.../enterprise/src/routes/share/[shareID].tsx | 5 +-
.../session-ui/src/components/basic-tool.css | 2 +-
.../src/components/line-comment-styles.ts | 2 +-
.../src/components/line-comment.tsx | 2 +-
.../session-ui/src/components/markdown.tsx | 16 +-
.../session-ui/src/components/message-nav.css | 7 +
.../session-ui/src/components/message-nav.tsx | 49 ++-
.../src/components/message-part.css | 18 +-
.../src/components/message-part.tsx | 78 ++---
.../src/components/session-retry.tsx | 2 +-
.../src/components/session-review.css | 25 +-
.../src/components/session-review.tsx | 64 ++--
.../src/components/session-turn.tsx | 4 +-
.../src/components/tool-error-card.css | 2 +-
.../src/components/tool-error-card.tsx | 3 +-
.../src/v2/components/basic-tool-v2.tsx | 6 +-
.../src/v2/components/comment-card-v2.tsx | 6 +-
.../line-comment-annotations-v2.tsx | 13 +-
.../src/v2/components/prompt-input/index.tsx | 106 +++---
.../session-review-empty-changes-v2.tsx | 2 +-
.../session-review-empty-no-git-v2.tsx | 6 +-
.../session-review-file-preview-v2.tsx | 32 +-
.../src/v2/components/session-review-v2.tsx | 77 +++--
.../components/tool-error-card-v2.stories.tsx | 6 +-
packages/storybook/.storybook/preview.tsx | 2 +-
packages/ui/package.json | 40 ++-
packages/ui/script/build-oc2-v2-overrides.ts | 2 +-
.../button/button.css} | 0
.../button/button.stories.tsx} | 48 +--
.../button/button.tsx} | 16 +-
.../icon-button/icon-button.css} | 0
.../icon-button/icon-button.stories.tsx} | 38 +--
.../src/actions/icon-button/icon-button.tsx | 32 ++
.../split-button/split-button.css} | 7 +-
.../split-button/split-button.stories.tsx | 31 ++
.../split-button/split-button.tsx} | 8 +-
.../ui/src/components/accordion.stories.tsx | 149 ---------
packages/ui/src/components/avatar.css | 49 ---
packages/ui/src/components/avatar.stories.tsx | 76 -----
packages/ui/src/components/button.css | 194 -----------
packages/ui/src/components/button.stories.tsx | 108 ------
packages/ui/src/components/button.tsx | 33 --
packages/ui/src/components/card.css | 4 +-
packages/ui/src/components/card.stories.tsx | 4 +-
packages/ui/src/components/card.tsx | 2 +-
.../ui/src/components/checkbox.stories.tsx | 71 ----
packages/ui/src/components/collapsible.tsx | 2 +-
packages/ui/src/components/dialog.css | 181 ----------
packages/ui/src/components/dialog.stories.tsx | 173 ----------
packages/ui/src/components/dialog.tsx | 72 ----
.../src/components/diff-changes.stories.tsx | 81 -----
packages/ui/src/components/diff-changes.tsx | 115 -------
packages/ui/src/components/dropdown-menu.css | 135 --------
.../src/components/dropdown-menu.stories.tsx | 97 ------
packages/ui/src/components/dropdown-menu.tsx | 308 ------------------
packages/ui/src/components/icon-button.css | 181 ----------
.../ui/src/components/icon-button.stories.tsx | 74 -----
packages/ui/src/components/icon-button.tsx | 29 --
packages/ui/src/components/icon.css | 39 ---
packages/ui/src/components/icon.stories.tsx | 174 ----------
.../src/components/image-preview.stories.tsx | 4 +-
packages/ui/src/components/image-preview.tsx | 5 +-
.../src/components/inline-input.stories.tsx | 50 ---
packages/ui/src/components/keybind.css | 18 -
.../ui/src/components/keybind.stories.tsx | 43 ---
packages/ui/src/components/keybind.tsx | 20 --
packages/ui/src/components/list.css | 10 +-
packages/ui/src/components/list.tsx | 6 +-
packages/ui/src/components/popover.tsx | 5 +-
.../ui/src/components/progress-circle.css | 16 -
.../components/progress-circle.stories.tsx | 59 ----
.../ui/src/components/progress-circle.tsx | 64 ----
packages/ui/src/components/radio-group.css | 187 -----------
.../ui/src/components/radio-group.stories.tsx | 92 ------
packages/ui/src/components/radio-group.tsx | 83 -----
packages/ui/src/components/select.css | 201 ------------
packages/ui/src/components/select.stories.tsx | 113 -------
packages/ui/src/components/select.tsx | 174 ----------
.../sticky-accordion-header.stories.tsx | 2 +-
.../components/sticky-accordion-header.tsx | 2 +-
packages/ui/src/components/switch.css | 136 --------
packages/ui/src/components/switch.stories.tsx | 68 ----
packages/ui/src/components/switch.tsx | 29 --
packages/ui/src/components/tabs.stories.tsx | 179 ----------
packages/ui/src/components/tabs.tsx | 126 -------
packages/ui/src/components/tag.css | 37 ---
packages/ui/src/components/tag.stories.tsx | 58 ----
packages/ui/src/components/tag.tsx | 22 --
packages/ui/src/components/text-field.tsx | 16 +-
.../src/components/text-shimmer.stories.tsx | 92 ------
.../components/thinking-heading.stories.tsx | 2 +-
packages/ui/src/components/toast.css | 236 --------------
packages/ui/src/components/toast.stories.tsx | 138 --------
packages/ui/src/components/toast.tsx | 187 -----------
packages/ui/src/components/tooltip.css | 74 -----
.../ui/src/components/tooltip.stories.tsx | 64 ----
packages/ui/src/components/tooltip.tsx | 163 ---------
.../accordion}/accordion.css | 3 +-
.../accordion/accordion.stories.tsx | 105 ++++++
.../accordion}/accordion.tsx | 28 +-
.../avatar/avatar.css} | 0
.../avatar/avatar.stories.tsx} | 6 +-
.../avatar}/avatar.tsx | 8 +-
.../badge/badge.css} | 19 ++
.../badge/badge.stories.tsx} | 26 +-
.../badge/badge.tsx} | 10 +-
.../diff-changes}/diff-changes.css | 45 +--
.../diff-changes/diff-changes.stories.tsx} | 16 +-
.../diff-changes/diff-changes.tsx} | 9 +-
.../keybind/keybind.css} | 0
.../keybind/keybind.stories.tsx} | 36 +-
.../keybind/keybind.tsx} | 6 +-
.../line-comment/line-comment.css} | 0
.../line-comment/line-comment.stories.tsx} | 26 +-
.../line-comment/line-comment.tsx} | 30 +-
.../project-avatar/project-avatar.css} | 0
.../project-avatar.stories.tsx} | 6 +-
.../project-avatar/project-avatar.tsx} | 2 +-
.../loader/loader.css} | 0
.../loader/loader.stories.tsx} | 16 +-
.../loader/loader.tsx} | 4 +-
.../progress-circle/progress-circle.css | 28 ++
.../progress-circle.stories.tsx | 52 +++
.../progress-circle/progress-circle.tsx | 64 ++++
.../toast-v2.css => feedback/toast/toast.css} | 0
.../toast/toast.stories.tsx} | 42 +--
.../toast-v2.tsx => feedback/toast/toast.tsx} | 116 +++----
.../checkbox}/checkbox.css | 8 +-
.../src/forms/checkbox/checkbox.stories.tsx | 46 +++
.../checkbox}/checkbox.tsx | 26 +-
.../field-v2.css => forms/field/field.css} | 0
.../field/field.stories.tsx} | 28 +-
.../field-v2.tsx => forms/field/field.tsx} | 20 +-
.../inline-input}/inline-input.css | 0
.../inline-input/inline-input.stories.tsx | 27 ++
.../inline-input}/inline-input.tsx | 0
.../radio-v2.css => forms/radio/radio.css} | 0
packages/ui/src/forms/radio/radio.stories.tsx | 92 ++++++
.../radio-v2.tsx => forms/radio/radio.tsx} | 50 +--
.../select-v2.css => forms/select/select.css} | 10 +-
.../select/select.stories.tsx} | 64 +---
.../select-v2.tsx => forms/select/select.tsx} | 70 ++--
.../switch-v2.css => forms/switch/switch.css} | 110 +++++++
.../switch/switch.stories.tsx} | 23 +-
packages/ui/src/forms/switch/switch.tsx | 34 ++
.../text-input/text-input.css} | 0
.../text-input/text-input.stories.tsx} | 56 ++--
.../text-input/text-input.tsx} | 8 +-
.../textarea/textarea.css} | 0
.../textarea/textarea.stories.tsx} | 48 +--
.../textarea/textarea.tsx} | 6 +-
.../icon/additional-icons.ts} | 76 +----
packages/ui/src/icons/icon/icon.css | 3 +
packages/ui/src/icons/icon/icon.stories.tsx | 82 +++++
.../{v2/components => icons/icon}/icon.tsx | 38 ++-
.../divider/divider.css} | 0
.../divider/divider.stories.tsx} | 10 +-
.../divider/divider.tsx} | 6 +-
.../menu-v2.css => navigation/menu/menu.css} | 121 +++++++
.../ui/src/navigation/menu/menu.stories.tsx | 242 ++++++++++++++
.../menu-v2.tsx => navigation/menu/menu.tsx} | 128 ++++++--
.../segmented-control/segmented-control.css} | 0
.../segmented-control.stories.tsx | 107 ++++++
.../segmented-control/segmented-control.tsx} | 17 +-
.../tab-state-indicator.stories.tsx | 20 ++
.../tab-state-indicator.tsx | 0
.../tabs/tabs-current.css} | 17 +-
.../{components => navigation/tabs}/tabs.css | 234 ++-----------
.../tabs/tabs.stories.tsx} | 130 ++++----
packages/ui/src/navigation/tabs/tabs.tsx | 194 +++++++++++
.../dialog/dialog.css} | 0
.../dialog/dialog.stories.tsx} | 150 ++++-----
.../dialog/dialog.tsx} | 20 +-
.../tooltip/tooltip.css} | 26 ++
.../tooltip/tooltip.stories.tsx} | 44 ++-
.../tooltip/tooltip.tsx} | 27 +-
.../file-tree-v2.css => styles/file-tree.css} | 0
packages/ui/src/styles/index.css | 24 +-
.../{v2/styles => styles/tokens}/colors.css | 0
.../tailwind.css => styles/tokens/index.css} | 0
.../{v2/styles => styles/tokens}/theme.css | 0
.../text-shimmer}/text-shimmer.css | 0
.../text-shimmer/text-shimmer.stories.tsx} | 20 +-
.../text-shimmer}/text-shimmer.tsx | 1 +
.../typography/wordmark/wordmark.stories.tsx | 16 +
.../wordmark/wordmark.tsx} | 2 +-
.../ui/src/v2/components/accordion-v2.css | 139 --------
.../v2/components/accordion-v2.stories.tsx | 177 ----------
.../ui/src/v2/components/accordion-v2.tsx | 86 -----
packages/ui/src/v2/components/avatar-v2.tsx | 59 ----
packages/ui/src/v2/components/checkbox-v2.css | 184 -----------
.../src/v2/components/checkbox-v2.stories.tsx | 92 ------
packages/ui/src/v2/components/checkbox-v2.tsx | 65 ----
.../ui/src/v2/components/diff-changes-v2.css | 26 --
.../ui/src/v2/components/icon-button-v2.tsx | 37 ---
.../ui/src/v2/components/inline-input-v2.css | 225 -------------
.../v2/components/inline-input-v2.stories.tsx | 141 --------
.../ui/src/v2/components/inline-input-v2.tsx | 107 ------
.../ui/src/v2/components/menu-v2.stories.tsx | 216 ------------
.../src/v2/components/progress-circle-v2.css | 13 -
.../src/v2/components/progress-circle-v2.tsx | 52 ---
.../ui/src/v2/components/radio-v2.stories.tsx | 92 ------
.../segmented-control-v2.stories.tsx | 107 ------
packages/ui/src/v2/components/switch-v2.tsx | 28 --
packages/ui/src/v2/components/tabs-v2.tsx | 149 ---------
.../ui/src/v2/components/text-shimmer-v2.css | 126 -------
.../ui/src/v2/components/text-shimmer-v2.tsx | 63 ----
290 files changed, 3941 insertions(+), 10093 deletions(-)
delete mode 100644 packages/app/src/components/dialog-select-file.tsx
rename packages/ui/src/{v2/components/button-v2.css => actions/button/button.css} (100%)
rename packages/ui/src/{v2/components/button-v2.stories.tsx => actions/button/button.stories.tsx} (76%)
rename packages/ui/src/{v2/components/button-v2.tsx => actions/button/button.tsx} (75%)
rename packages/ui/src/{v2/components/icon-button-v2.css => actions/icon-button/icon-button.css} (100%)
rename packages/ui/src/{v2/components/icon-button-v2.stories.tsx => actions/icon-button/icon-button.stories.tsx} (71%)
create mode 100644 packages/ui/src/actions/icon-button/icon-button.tsx
rename packages/ui/src/{v2/components/split-button-v2.css => actions/split-button/split-button.css} (91%)
create mode 100644 packages/ui/src/actions/split-button/split-button.stories.tsx
rename packages/ui/src/{v2/components/split-button-v2.tsx => actions/split-button/split-button.tsx} (79%)
delete mode 100644 packages/ui/src/components/accordion.stories.tsx
delete mode 100644 packages/ui/src/components/avatar.css
delete mode 100644 packages/ui/src/components/avatar.stories.tsx
delete mode 100644 packages/ui/src/components/button.css
delete mode 100644 packages/ui/src/components/button.stories.tsx
delete mode 100644 packages/ui/src/components/button.tsx
delete mode 100644 packages/ui/src/components/checkbox.stories.tsx
delete mode 100644 packages/ui/src/components/dialog.css
delete mode 100644 packages/ui/src/components/dialog.stories.tsx
delete mode 100644 packages/ui/src/components/dialog.tsx
delete mode 100644 packages/ui/src/components/diff-changes.stories.tsx
delete mode 100644 packages/ui/src/components/diff-changes.tsx
delete mode 100644 packages/ui/src/components/dropdown-menu.css
delete mode 100644 packages/ui/src/components/dropdown-menu.stories.tsx
delete mode 100644 packages/ui/src/components/dropdown-menu.tsx
delete mode 100644 packages/ui/src/components/icon-button.css
delete mode 100644 packages/ui/src/components/icon-button.stories.tsx
delete mode 100644 packages/ui/src/components/icon-button.tsx
delete mode 100644 packages/ui/src/components/icon.css
delete mode 100644 packages/ui/src/components/icon.stories.tsx
delete mode 100644 packages/ui/src/components/inline-input.stories.tsx
delete mode 100644 packages/ui/src/components/keybind.css
delete mode 100644 packages/ui/src/components/keybind.stories.tsx
delete mode 100644 packages/ui/src/components/keybind.tsx
delete mode 100644 packages/ui/src/components/progress-circle.css
delete mode 100644 packages/ui/src/components/progress-circle.stories.tsx
delete mode 100644 packages/ui/src/components/progress-circle.tsx
delete mode 100644 packages/ui/src/components/radio-group.css
delete mode 100644 packages/ui/src/components/radio-group.stories.tsx
delete mode 100644 packages/ui/src/components/radio-group.tsx
delete mode 100644 packages/ui/src/components/select.css
delete mode 100644 packages/ui/src/components/select.stories.tsx
delete mode 100644 packages/ui/src/components/select.tsx
delete mode 100644 packages/ui/src/components/switch.css
delete mode 100644 packages/ui/src/components/switch.stories.tsx
delete mode 100644 packages/ui/src/components/switch.tsx
delete mode 100644 packages/ui/src/components/tabs.stories.tsx
delete mode 100644 packages/ui/src/components/tabs.tsx
delete mode 100644 packages/ui/src/components/tag.css
delete mode 100644 packages/ui/src/components/tag.stories.tsx
delete mode 100644 packages/ui/src/components/tag.tsx
delete mode 100644 packages/ui/src/components/text-shimmer.stories.tsx
delete mode 100644 packages/ui/src/components/toast.css
delete mode 100644 packages/ui/src/components/toast.stories.tsx
delete mode 100644 packages/ui/src/components/toast.tsx
delete mode 100644 packages/ui/src/components/tooltip.css
delete mode 100644 packages/ui/src/components/tooltip.stories.tsx
delete mode 100644 packages/ui/src/components/tooltip.tsx
rename packages/ui/src/{components => data-display/accordion}/accordion.css (96%)
create mode 100644 packages/ui/src/data-display/accordion/accordion.stories.tsx
rename packages/ui/src/{components => data-display/accordion}/accordion.tsx (84%)
rename packages/ui/src/{v2/components/avatar-v2.css => data-display/avatar/avatar.css} (100%)
rename packages/ui/src/{v2/components/avatar-v2.stories.tsx => data-display/avatar/avatar.stories.tsx} (95%)
rename packages/ui/src/{components => data-display/avatar}/avatar.tsx (89%)
rename packages/ui/src/{v2/components/badge-v2.css => data-display/badge/badge.css} (56%)
rename packages/ui/src/{v2/components/badge-v2.stories.tsx => data-display/badge/badge.stories.tsx} (62%)
rename packages/ui/src/{v2/components/badge-v2.tsx => data-display/badge/badge.tsx} (62%)
rename packages/ui/src/{components => data-display/diff-changes}/diff-changes.css (58%)
rename packages/ui/src/{v2/components/diff-changes-v2.stories.tsx => data-display/diff-changes/diff-changes.stories.tsx} (71%)
rename packages/ui/src/{v2/components/diff-changes-v2.tsx => data-display/diff-changes/diff-changes.tsx} (79%)
rename packages/ui/src/{v2/components/keybind-v2.css => data-display/keybind/keybind.css} (100%)
rename packages/ui/src/{v2/components/keybind-v2.stories.tsx => data-display/keybind/keybind.stories.tsx} (63%)
rename packages/ui/src/{v2/components/keybind-v2.tsx => data-display/keybind/keybind.tsx} (81%)
rename packages/ui/src/{v2/components/line-comment-v2.css => data-display/line-comment/line-comment.css} (100%)
rename packages/ui/src/{v2/components/line-comment-v2.stories.tsx => data-display/line-comment/line-comment.stories.tsx} (68%)
rename packages/ui/src/{v2/components/line-comment-v2.tsx => data-display/line-comment/line-comment.tsx} (90%)
rename packages/ui/src/{v2/components/project-avatar-v2.css => data-display/project-avatar/project-avatar.css} (100%)
rename packages/ui/src/{v2/components/project-avatar-v2.stories.tsx => data-display/project-avatar/project-avatar.stories.tsx} (95%)
rename packages/ui/src/{v2/components/project-avatar-v2.tsx => data-display/project-avatar/project-avatar.tsx} (98%)
rename packages/ui/src/{v2/components/loader-v2.css => feedback/loader/loader.css} (100%)
rename packages/ui/src/{v2/components/loader-v2.stories.tsx => feedback/loader/loader.stories.tsx} (69%)
rename packages/ui/src/{v2/components/loader-v2.tsx => feedback/loader/loader.tsx} (90%)
create mode 100644 packages/ui/src/feedback/progress-circle/progress-circle.css
create mode 100644 packages/ui/src/feedback/progress-circle/progress-circle.stories.tsx
create mode 100644 packages/ui/src/feedback/progress-circle/progress-circle.tsx
rename packages/ui/src/{v2/components/toast-v2.css => feedback/toast/toast.css} (100%)
rename packages/ui/src/{v2/components/toast-v2.stories.tsx => feedback/toast/toast.stories.tsx} (88%)
rename packages/ui/src/{v2/components/toast-v2.tsx => feedback/toast/toast.tsx} (71%)
rename packages/ui/src/{components => forms/checkbox}/checkbox.css (94%)
create mode 100644 packages/ui/src/forms/checkbox/checkbox.stories.tsx
rename packages/ui/src/{components => forms/checkbox}/checkbox.tsx (58%)
rename packages/ui/src/{v2/components/field-v2.css => forms/field/field.css} (100%)
rename packages/ui/src/{v2/components/field-v2.stories.tsx => forms/field/field.stories.tsx} (80%)
rename packages/ui/src/{v2/components/field-v2.tsx => forms/field/field.tsx} (93%)
rename packages/ui/src/{components => forms/inline-input}/inline-input.css (100%)
create mode 100644 packages/ui/src/forms/inline-input/inline-input.stories.tsx
rename packages/ui/src/{components => forms/inline-input}/inline-input.tsx (100%)
rename packages/ui/src/{v2/components/radio-v2.css => forms/radio/radio.css} (100%)
create mode 100644 packages/ui/src/forms/radio/radio.stories.tsx
rename packages/ui/src/{v2/components/radio-v2.tsx => forms/radio/radio.tsx} (56%)
rename packages/ui/src/{v2/components/select-v2.css => forms/select/select.css} (97%)
rename packages/ui/src/{v2/components/select-v2.stories.tsx => forms/select/select.stories.tsx} (66%)
rename packages/ui/src/{v2/components/select-v2.tsx => forms/select/select.tsx} (78%)
rename packages/ui/src/{v2/components/switch-v2.css => forms/switch/switch.css} (58%)
rename packages/ui/src/{v2/components/switch-v2.stories.tsx => forms/switch/switch.stories.tsx} (68%)
create mode 100644 packages/ui/src/forms/switch/switch.tsx
rename packages/ui/src/{v2/components/text-input-v2.css => forms/text-input/text-input.css} (100%)
rename packages/ui/src/{v2/components/text-input-v2.stories.tsx => forms/text-input/text-input.stories.tsx} (63%)
rename packages/ui/src/{v2/components/text-input-v2.tsx => forms/text-input/text-input.tsx} (93%)
rename packages/ui/src/{v2/components/textarea-v2.css => forms/textarea/textarea.css} (100%)
rename packages/ui/src/{v2/components/textarea-v2.stories.tsx => forms/textarea/textarea.stories.tsx} (62%)
rename packages/ui/src/{v2/components/textarea-v2.tsx => forms/textarea/textarea.tsx} (83%)
rename packages/ui/src/{components/icon.tsx => icons/icon/additional-icons.ts} (95%)
create mode 100644 packages/ui/src/icons/icon/icon.css
create mode 100644 packages/ui/src/icons/icon/icon.stories.tsx
rename packages/ui/src/{v2/components => icons/icon}/icon.tsx (92%)
rename packages/ui/src/{v2/components/divider-v2.css => layout/divider/divider.css} (100%)
rename packages/ui/src/{v2/components/divider-v2.stories.tsx => layout/divider/divider.stories.tsx} (81%)
rename packages/ui/src/{v2/components/divider-v2.tsx => layout/divider/divider.tsx} (72%)
rename packages/ui/src/{v2/components/menu-v2.css => navigation/menu/menu.css} (60%)
create mode 100644 packages/ui/src/navigation/menu/menu.stories.tsx
rename packages/ui/src/{v2/components/menu-v2.tsx => navigation/menu/menu.tsx} (56%)
rename packages/ui/src/{v2/components/segmented-control-v2.css => navigation/segmented-control/segmented-control.css} (100%)
create mode 100644 packages/ui/src/navigation/segmented-control/segmented-control.stories.tsx
rename packages/ui/src/{v2/components/segmented-control-v2.tsx => navigation/segmented-control/segmented-control.tsx} (90%)
create mode 100644 packages/ui/src/navigation/tab-state-indicator.stories.tsx
rename packages/ui/src/{v2/components => navigation}/tab-state-indicator.tsx (100%)
rename packages/ui/src/{v2/components/tabs-v2.css => navigation/tabs/tabs-current.css} (94%)
rename packages/ui/src/{components => navigation/tabs}/tabs.css (76%)
rename packages/ui/src/{v2/components/tabs-v2.stories.tsx => navigation/tabs/tabs.stories.tsx} (65%)
create mode 100644 packages/ui/src/navigation/tabs/tabs.tsx
rename packages/ui/src/{v2/components/dialog-v2.css => overlays/dialog/dialog.css} (100%)
rename packages/ui/src/{v2/components/dialog-v2.stories.tsx => overlays/dialog/dialog.stories.tsx} (55%)
rename packages/ui/src/{v2/components/dialog-v2.tsx => overlays/dialog/dialog.tsx} (83%)
rename packages/ui/src/{v2/components/tooltip-v2.css => overlays/tooltip/tooltip.css} (63%)
rename packages/ui/src/{v2/components/tooltip-v2.stories.tsx => overlays/tooltip/tooltip.stories.tsx} (67%)
rename packages/ui/src/{v2/components/tooltip-v2.tsx => overlays/tooltip/tooltip.tsx} (88%)
rename packages/ui/src/{v2/components/file-tree-v2.css => styles/file-tree.css} (100%)
rename packages/ui/src/{v2/styles => styles/tokens}/colors.css (100%)
rename packages/ui/src/{v2/styles/tailwind.css => styles/tokens/index.css} (100%)
rename packages/ui/src/{v2/styles => styles/tokens}/theme.css (100%)
rename packages/ui/src/{components => typography/text-shimmer}/text-shimmer.css (100%)
rename packages/ui/src/{v2/components/text-shimmer-v2.stories.tsx => typography/text-shimmer/text-shimmer.stories.tsx} (68%)
rename packages/ui/src/{components => typography/text-shimmer}/text-shimmer.tsx (98%)
create mode 100644 packages/ui/src/typography/wordmark/wordmark.stories.tsx
rename packages/ui/src/{v2/components/wordmark-v2.tsx => typography/wordmark/wordmark.tsx} (97%)
delete mode 100644 packages/ui/src/v2/components/accordion-v2.css
delete mode 100644 packages/ui/src/v2/components/accordion-v2.stories.tsx
delete mode 100644 packages/ui/src/v2/components/accordion-v2.tsx
delete mode 100644 packages/ui/src/v2/components/avatar-v2.tsx
delete mode 100644 packages/ui/src/v2/components/checkbox-v2.css
delete mode 100644 packages/ui/src/v2/components/checkbox-v2.stories.tsx
delete mode 100644 packages/ui/src/v2/components/checkbox-v2.tsx
delete mode 100644 packages/ui/src/v2/components/diff-changes-v2.css
delete mode 100644 packages/ui/src/v2/components/icon-button-v2.tsx
delete mode 100644 packages/ui/src/v2/components/inline-input-v2.css
delete mode 100644 packages/ui/src/v2/components/inline-input-v2.stories.tsx
delete mode 100644 packages/ui/src/v2/components/inline-input-v2.tsx
delete mode 100644 packages/ui/src/v2/components/menu-v2.stories.tsx
delete mode 100644 packages/ui/src/v2/components/progress-circle-v2.css
delete mode 100644 packages/ui/src/v2/components/progress-circle-v2.tsx
delete mode 100644 packages/ui/src/v2/components/radio-v2.stories.tsx
delete mode 100644 packages/ui/src/v2/components/segmented-control-v2.stories.tsx
delete mode 100644 packages/ui/src/v2/components/switch-v2.tsx
delete mode 100644 packages/ui/src/v2/components/tabs-v2.tsx
delete mode 100644 packages/ui/src/v2/components/text-shimmer-v2.css
delete mode 100644 packages/ui/src/v2/components/text-shimmer-v2.tsx
diff --git a/packages/app/e2e/performance/timeline/session-tab-switch-probe.ts b/packages/app/e2e/performance/timeline/session-tab-switch-probe.ts
index 955da80367d..5dcfc3ac6b3 100644
--- a/packages/app/e2e/performance/timeline/session-tab-switch-probe.ts
+++ b/packages/app/e2e/performance/timeline/session-tab-switch-probe.ts
@@ -25,7 +25,7 @@ async function installSessionSwitchProbe(
let running = true
const reviewLevels: Record = {
panel: "#review-panel",
- tabs: '#review-panel [data-component="tabs"]',
+ tabs: '#review-panel [data-component="tabs"]',
body: '#review-panel [data-slot="session-review-v2-body"]',
review: '#review-panel [data-component="session-review-v2"]',
preview: '#review-panel [data-slot="session-review-v2-preview"]',
diff --git a/packages/app/e2e/regression/session-request-docks.spec.ts b/packages/app/e2e/regression/session-request-docks.spec.ts
index 356c0b7d466..b15dfb7a3e9 100644
--- a/packages/app/e2e/regression/session-request-docks.spec.ts
+++ b/packages/app/e2e/regression/session-request-docks.spec.ts
@@ -52,7 +52,7 @@ test("shows a pending question dock", async ({ page }) => {
rejectRequests.push(request.url())
})
- await question.locator('[data-component="icon-button"][data-icon="chevron-down"]').click()
+ await question.getByRole("button", { name: "Minimize question" }).click()
await expect(question).toBeVisible()
await expect(question.getByText("Which implementation should be used?")).toBeVisible()
await expect(question.getByText("Select one answer")).toBeHidden()
@@ -63,7 +63,7 @@ test("shows a pending question dock", async ({ page }) => {
await expect(page.locator('[data-component="question-minimized-dock"]')).toHaveCount(0)
expect(rejectRequests).toEqual([])
- await question.locator('[data-component="icon-button"][data-icon="chevron-down"]').click()
+ await question.getByRole("button", { name: "Restore question" }).click()
await expect(question).toBeVisible()
await expect(question.getByText("Which implementation should be used?")).toBeVisible()
await expect(question.getByRole("radio", { name: /Minimal/ })).toBeVisible()
diff --git a/packages/app/e2e/regression/session-timeline-tool-projection.spec.ts b/packages/app/e2e/regression/session-timeline-tool-projection.spec.ts
index 85485acbfeb..d7c44d96f17 100644
--- a/packages/app/e2e/regression/session-timeline-tool-projection.spec.ts
+++ b/packages/app/e2e/regression/session-timeline-tool-projection.spec.ts
@@ -131,15 +131,14 @@ test("labels V2 skill tools from IDs and result metadata", async ({ page }) => {
"aria-label",
"sample-skill",
)
- await expect(page.locator(`[data-timeline-part-id="${completed}"] [data-component="text-shimmer"]`)).toHaveAttribute(
- "aria-label",
- "OpenCode",
- )
+ await expect(
+ page.locator(`[data-timeline-part-id="${completed}"] [data-component="text-shimmer"]`),
+ ).toHaveAttribute("aria-label", "OpenCode")
for (const id of [pending, completed]) {
const skill = page.locator(`[data-timeline-part-id="${id}"]`)
await expect(skill.locator('[data-slot="skill-tool-label"]')).toHaveText("Skill")
await expect(skill.locator('[data-slot="skill-tool-separator"]')).toHaveText("·")
- await expect(skill.locator('use[href="#opencode-icon-post-skill"]')).toBeVisible()
+ await expect(skill.locator('use[href="#opencode-v2-icon-post-skill"]')).toBeVisible()
}
})
diff --git a/packages/app/e2e/smoke/session-timeline.spec.ts b/packages/app/e2e/smoke/session-timeline.spec.ts
index f4371a305da..d0fb0922f4f 100644
--- a/packages/app/e2e/smoke/session-timeline.spec.ts
+++ b/packages/app/e2e/smoke/session-timeline.spec.ts
@@ -477,7 +477,7 @@ async function configureSmokePage(page: Page, directory: string) {
}
let recordFrame: number | undefined
const record = () => {
- for (const toast of document.querySelectorAll('[data-component="toast"][data-variant="error"]')) {
+ for (const toast of document.querySelectorAll(".toast-v2--error")) {
const text = toast.textContent?.trim()
if (text && !smoke.__timelineSmokeErrorToasts!.includes(text)) smoke.__timelineSmokeErrorToasts!.push(text)
}
diff --git a/packages/app/src/components/debug-bar.tsx b/packages/app/src/components/debug-bar.tsx
index 67cd0da0e92..94447b14608 100644
--- a/packages/app/src/components/debug-bar.tsx
+++ b/packages/app/src/components/debug-bar.tsx
@@ -3,7 +3,6 @@ import { batch, createEffect, onCleanup, onMount, Show } from "solid-js"
import { createStore } from "solid-js/store"
import { makeEventListener } from "@solid-primitives/event-listener"
import { Tooltip } from "@opencode-ai/ui/tooltip"
-import { TooltipV2 } from "@opencode-ai/ui/v2/tooltip-v2"
import { useLanguage } from "@/context/language"
import { usePlatform } from "@/context/platform"
@@ -102,16 +101,8 @@ function Cell(props: {
)
- if (props.inline) {
- return (
-
- {content()}
-
- )
- }
-
return (
-
+
{content()}
)
@@ -151,16 +142,8 @@ function ToggleCell(props: {
)
- if (props.inline) {
- return (
-
- {content()}
-
- )
- }
-
return (
-
+
{content()}
)
diff --git a/packages/app/src/components/dialog-command-palette-v2.tsx b/packages/app/src/components/dialog-command-palette-v2.tsx
index 2756c2094dd..e2b11699f2f 100644
--- a/packages/app/src/components/dialog-command-palette-v2.tsx
+++ b/packages/app/src/components/dialog-command-palette-v2.tsx
@@ -1,10 +1,10 @@
import { getDirectory, getFilename } from "@opencode-ai/util/path"
import { FileIcon } from "@opencode-ai/ui/file-icon"
import { ScrollView } from "@opencode-ai/ui/scroll-view"
-import { Dialog, DialogBody } from "@opencode-ai/ui/v2/dialog-v2"
-import { Icon } from "@opencode-ai/ui/v2/icon"
-import { KeybindV2 } from "@opencode-ai/ui/v2/keybind-v2"
-import { TextInputV2 } from "@opencode-ai/ui/v2/text-input-v2"
+import { Dialog, DialogBody } from "@opencode-ai/ui/dialog"
+import { Icon } from "@opencode-ai/ui/icon"
+import { Keybind } from "@opencode-ai/ui/keybind"
+import { TextInput } from "@opencode-ai/ui/text-input"
import { useDialog } from "@opencode-ai/ui/context/dialog"
import { createEffect, createMemo, createResource, createSignal, For, Match, onCleanup, Show, Switch } from "solid-js"
import { commandPaletteOptions, formatKeybindParts, useCommand } from "@/context/command"
@@ -191,7 +191,7 @@ function CommandPaletteView(props: {
)
}
@@ -168,7 +167,7 @@ function ProviderPicker(props: { directory?: string; onSelect: (provider: string
return (
-
-
+
{language.t("common.continue")}
@@ -516,7 +515,7 @@ function ProviderConnection(props: {
)
@@ -585,7 +584,7 @@ function ProviderConnection(props: {
)
diff --git a/packages/app/src/components/dialog-custom-provider.tsx b/packages/app/src/components/dialog-custom-provider.tsx
index 4adc8d37f7b..e14995c0dd3 100644
--- a/packages/app/src/components/dialog-custom-provider.tsx
+++ b/packages/app/src/components/dialog-custom-provider.tsx
@@ -1,6 +1,7 @@
import { Button } from "@opencode-ai/ui/button"
import { useDialog } from "@opencode-ai/ui/context/dialog"
-import { Dialog } from "@opencode-ai/ui/dialog"
+import { Dialog, DialogBody, DialogHeader, DialogTitle } from "@opencode-ai/ui/dialog"
+import { Icon } from "@opencode-ai/ui/icon"
import { IconButton } from "@opencode-ai/ui/icon-button"
import { ProviderIcon } from "@opencode-ai/ui/provider-icon"
import { useMutation } from "@tanstack/solid-query"
@@ -21,20 +22,21 @@ export function DialogCustomProvider(props: Props) {
const language = useLanguage()
return (
-
- }
- transition
- >
-
+
)
}
@@ -238,7 +240,7 @@ export function CustomProviderForm(props: { autofocus?: boolean } = {}) {
}
variant="ghost"
class="mt-1.5"
onClick={() => removeModel(i())}
@@ -282,7 +284,7 @@ export function CustomProviderForm(props: { autofocus?: boolean } = {}) {
}
variant="ghost"
class="mt-1.5"
onClick={() => removeHeader(i())}
@@ -301,7 +303,7 @@ export function CustomProviderForm(props: { autofocus?: boolean } = {}) {
class="w-auto self-start"
type="submit"
size="large"
- variant="primary"
+ variant="contrast"
disabled={saveMutation.isPending}
>
{saveMutation.isPending ? language.t("common.saving") : language.t("common.submit")}
diff --git a/packages/app/src/components/dialog-edit-project-v2.tsx b/packages/app/src/components/dialog-edit-project-v2.tsx
index fc5d958c5f0..2bcb518d435 100644
--- a/packages/app/src/components/dialog-edit-project-v2.tsx
+++ b/packages/app/src/components/dialog-edit-project-v2.tsx
@@ -1,12 +1,11 @@
-import { ButtonV2 } from "@opencode-ai/ui/v2/button-v2"
-import { Dialog, DialogFooter } from "@opencode-ai/ui/v2/dialog-v2"
-import { Field } from "@opencode-ai/ui/v2/field-v2"
-import { Icon as IconV2 } from "@opencode-ai/ui/v2/icon"
+import { Button } from "@opencode-ai/ui/button"
+import { Dialog, DialogFooter } from "@opencode-ai/ui/dialog"
+import { Field } from "@opencode-ai/ui/field"
import { Icon } from "@opencode-ai/ui/icon"
-import { ProjectAvatar, PROJECT_AVATAR_VARIANTS } from "@opencode-ai/ui/v2/project-avatar-v2"
-import { TabsV2 } from "@opencode-ai/ui/v2/tabs-v2"
-import { TextareaV2 } from "@opencode-ai/ui/v2/textarea-v2"
-import { TextInputV2 } from "@opencode-ai/ui/v2/text-input-v2"
+import { ProjectAvatar, PROJECT_AVATAR_VARIANTS } from "@opencode-ai/ui/project-avatar"
+import { Tabs } from "@opencode-ai/ui/tabs"
+import { Textarea } from "@opencode-ai/ui/textarea"
+import { TextInput } from "@opencode-ai/ui/text-input"
import { For, Show, createSignal, startTransition } from "solid-js"
import { useLanguage } from "@/context/language"
import { getProjectAvatarVariant, type LocalProject } from "@/context/layout"
@@ -37,46 +36,46 @@ function ProjectSettingsDialog(props: { project: LocalProject; server: ServerCon
const Footer = () => (
-
+
{language.t("common.cancel")}
-
-
+
+
{model.save.isPending ? language.t("common.saving") : language.t("common.save")}
-
+
)
return (
)
@@ -394,7 +394,7 @@ function HomeProjectEmpty(
disabled={unreachable()}
onClick={() => props.onChooseProject(props.server)}
>
-
+
{props.language.t("home.project.add")}
0}>
@@ -423,7 +423,7 @@ function HomeRecentlyClosedRow(
return worktree
}
return (
-
+
{displayName(props.project)}
-
+
)
}
@@ -523,55 +523,55 @@ function HomeProjectRow(
`}
data-menu={props.contextMenuOpen(contextMenuID())}
>
- props.onSetContextMenuOpen(contextMenuID(), open)}
>
- }
+ icon={}
aria-label={props.language.t("common.moreOptions")}
/>
-
-
- props.onOpenProjectNewSession(props.server, props.project.worktree)}>
+
+
+ props.onOpenProjectNewSession(props.server, props.project.worktree)}>
{props.language.t("command.session.new")}
-
- props.onEditProject(props.server, props.project)}>
+
+ props.onEditProject(props.server, props.project)}>
{props.language.t("dialog.project.edit.title")}
-
+
- props.onRevealProject(props.server, props.project)}>
+ props.onRevealProject(props.server, props.project)}>
{props.language.t(
fileManagerApp(platform.platform === "desktop" ? (platform.os ?? "unknown") : "unknown")
.actionLabel,
)}
-
+
- props.onClearNotifications(props.server, props.project)}
>
{props.language.t("sidebar.project.clearNotifications")}
-
-
- props.onCloseProject(props.server, props.project.worktree)}>
+
+
+ props.onCloseProject(props.server, props.project.worktree)}>
{props.language.t("common.close")}
-
-
-
-
-
+
+
+
+ }
+ icon={}
aria-label={props.language.t("command.session.new")}
onClick={() => props.onOpenProjectNewSession(props.server, props.project.worktree)}
/>
diff --git a/packages/app/src/pages/home/home-sessions-view.tsx b/packages/app/src/pages/home/home-sessions-view.tsx
index 1d6133ba81a..1b3c64b15eb 100644
--- a/packages/app/src/pages/home/home-sessions-view.tsx
+++ b/packages/app/src/pages/home/home-sessions-view.tsx
@@ -2,10 +2,10 @@ import type { SessionInfo } from "@opencode-ai/client/promise"
import { createMemo, For, Show, Suspense } from "solid-js"
import { Spinner } from "@opencode-ai/ui/spinner"
import { ScrollView } from "@opencode-ai/ui/scroll-view"
-import { ButtonV2 } from "@opencode-ai/ui/v2/button-v2"
-import { Icon as IconV2 } from "@opencode-ai/ui/v2/icon"
-import { IconButtonV2 } from "@opencode-ai/ui/v2/icon-button-v2"
-import { TooltipV2 } from "@opencode-ai/ui/v2/tooltip-v2"
+import { Button } from "@opencode-ai/ui/button"
+import { Icon } from "@opencode-ai/ui/icon"
+import { IconButton } from "@opencode-ai/ui/icon-button"
+import { Tooltip } from "@opencode-ai/ui/tooltip"
import { useLanguage } from "@/context/language"
import { ServerConnection } from "@/context/servers"
import { SessionTabAvatarView } from "@/pages/layout/session-tab-avatar"
@@ -83,7 +83,7 @@ export function HomeSessionsView(props: HomeSessionsViewProps) {
0 && props.canCreateSession}>
-
{props.language.t("command.session.new")}
-
+
@@ -273,7 +273,7 @@ function HomeSessionSearch(props: HomeSessionsViewProps) {
duration-[120ms] ease-in-out hover:bg-v2-background-bg-layer-02 focus-within:bg-v2-background-bg-layer-02
`}
>
-
+
- }
+ icon={}
aria-label={props.searchPlaceholder}
onClick={() => {
props.onSearchClose()
@@ -458,12 +458,12 @@ function HomeSessionRow(props: HomeSessionsViewProps & { record: HomeSessionReco
group-hover/session:opacity-100 focus-within:opacity-100
`}
>
-
-
+ }
+ icon={}
aria-label={props.language.t("common.archive")}
onClick={(event) => {
event.preventDefault()
@@ -471,7 +471,7 @@ function HomeSessionRow(props: HomeSessionsViewProps & { record: HomeSessionReco
void props.onArchiveSession(props.record.session)
}}
/>
-
+
@@ -525,9 +525,9 @@ function HomeSessionsEmpty(props: { onNewSession?: () => void; language: ReturnT
{(onNewSession) => (
-
+
{props.language.t("command.session.new")}
-
+
)}
diff --git a/packages/app/src/pages/layout/session-tab-avatar.tsx b/packages/app/src/pages/layout/session-tab-avatar.tsx
index 8a8ef28a5a3..2e1b820bd4e 100644
--- a/packages/app/src/pages/layout/session-tab-avatar.tsx
+++ b/packages/app/src/pages/layout/session-tab-avatar.tsx
@@ -1,9 +1,8 @@
-import type { LocalProject } from "@/context/layout"
-import { getProjectAvatarVariant } from "@/context/layout"
+import { getProjectAvatarVariant, type LocalProject } from "@/context/layout"
import type { ServerConnection } from "@/context/servers"
import { displayName, getProjectAvatarSource } from "@/pages/layout/helpers"
import { useSessionTabAvatarState } from "@/pages/layout/project-avatar-state"
-import { ProjectAvatar } from "@opencode-ai/ui/v2/project-avatar-v2"
+import { ProjectAvatar } from "@opencode-ai/ui/project-avatar"
import { SessionProgressIndicatorV2 } from "@opencode-ai/session-ui/v2/session-progress-indicator-v2"
import { Show } from "solid-js"
diff --git a/packages/app/src/pages/new-session/new-session-view.tsx b/packages/app/src/pages/new-session/new-session-view.tsx
index 86f523642d8..6cd73f4ae1b 100644
--- a/packages/app/src/pages/new-session/new-session-view.tsx
+++ b/packages/app/src/pages/new-session/new-session-view.tsx
@@ -1,8 +1,7 @@
import { useDialog } from "@opencode-ai/ui/context/dialog"
import { Tooltip } from "@opencode-ai/ui/tooltip"
-import { Icon } from "@opencode-ai/ui/v2/icon"
-import { TooltipV2 } from "@opencode-ai/ui/v2/tooltip-v2"
-import { WordmarkV2 } from "@opencode-ai/ui/v2/wordmark-v2"
+import { Icon } from "@opencode-ai/ui/icon"
+import { Wordmark } from "@opencode-ai/ui/wordmark"
import { Show, createMemo, createSignal } from "solid-js"
import { createStore } from "solid-js/store"
import { Portal } from "solid-js/web"
@@ -47,7 +46,7 @@ export function NewSessionView(props: {
>
-
+
@@ -96,7 +95,7 @@ export function NewSessionStatus(props: { mount: HTMLElement | null; visible: bo
{(mount) => (
-
+
@@ -153,7 +152,7 @@ function ProviderTip() {
-
-
+
diff --git a/packages/app/src/pages/new-session/use-new-session-commands.tsx b/packages/app/src/pages/new-session/use-new-session-commands.tsx
index a0d835f97f5..342dc7a0856 100644
--- a/packages/app/src/pages/new-session/use-new-session-commands.tsx
+++ b/packages/app/src/pages/new-session/use-new-session-commands.tsx
@@ -21,8 +21,8 @@ export function useNewSessionCommands(input: {
title: language.t("command.palette"),
hidden: true,
onSelect: async () => {
- const { DialogSelectFile } = await import("@/components/dialog-select-file")
- void dialog.show(() =>
)
+ const { DialogCommandPaletteV2 } = await import("@/components/dialog-command-palette-v2")
+ void dialog.show(() =>
)
},
},
{
diff --git a/packages/app/src/pages/session.tsx b/packages/app/src/pages/session.tsx
index 0b3405996a7..1f7402427bf 100644
--- a/packages/app/src/pages/session.tsx
+++ b/packages/app/src/pages/session.tsx
@@ -30,10 +30,9 @@ import { createStore } from "solid-js/store"
import type { SessionReviewLineComment } from "@opencode-ai/session-ui/session-review"
import { ResizeHandle } from "@opencode-ai/ui/resize-handle"
import { Select } from "@opencode-ai/ui/select"
-import { SelectV2 } from "@opencode-ai/ui/v2/select-v2"
import { isScrollKeyTarget, scrollKey, scrollKeyOwner } from "@opencode-ai/ui/scroll-view"
import { Tabs } from "@opencode-ai/ui/tabs"
-import { ButtonV2 } from "@opencode-ai/ui/v2/button-v2"
+import { Button } from "@opencode-ai/ui/button"
import { createAutoScroll } from "@opencode-ai/ui/hooks"
import { previewSelectedLines } from "@opencode-ai/session-ui/pierre/selection-bridge"
import { showToast } from "@/utils/toast"
@@ -195,9 +194,9 @@ function SessionErrorFallback(props: { error: unknown; sessionID?: string; serve
)}
-
+
{language.t("session.error.notFound.closeTab")}
-
+
)
@@ -1039,25 +1038,6 @@ export default function Page() {
return (