dsh-claude-desktop-theme 0.3.0 → 0.4.0
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 +9 -5
- package/lib/client.js +8433 -3692
- package/lib/types/client/compat/account-menu.d.ts +4 -4
- package/lib/types/client/compat/account-more.d.ts +3 -0
- package/lib/types/client/compat/account-theme.d.ts +3 -0
- package/lib/types/client/compat/browser-header.d.ts +57 -0
- package/lib/types/client/compat/browser-menu.d.ts +16 -0
- package/lib/types/client/compat/files-pane.d.ts +78 -0
- package/lib/types/client/compat/header-menu-actions.d.ts +14 -0
- package/lib/types/client/compat/header-menus.d.ts +4 -0
- package/lib/types/client/compat/host-dom.d.ts +116 -0
- package/lib/types/client/compat/pane-chrome.d.ts +29 -0
- package/lib/types/client/compat/pane-icons.d.ts +23 -0
- package/lib/types/client/compat/pane-tiles.d.ts +37 -0
- package/lib/types/client/compat/relative-file-path.d.ts +2 -0
- package/lib/types/client/compat/right-panes.d.ts +16 -0
- package/lib/types/client/compat/scroll-pill.d.ts +70 -0
- package/lib/types/client/compat/view-switch.d.ts +46 -5
- package/lib/types/client/contracts/ports.d.ts +29 -1
- package/lib/types/client/features/conversation/index.d.ts +5 -3
- package/lib/types/client/features/conversation/view-switch-icons.d.ts +13 -0
- package/lib/types/client/features/shell/index.d.ts +9 -3
- package/lib/types/client/features/sidebar/index.d.ts +1 -1
- package/lib/types/client/features/statistics/books.d.ts +1 -2
- package/lib/types/client/features/statistics/format.d.ts +4 -4
- package/lib/types/client/theme/mount.d.ts +2 -2
- package/lib/types/client/theme/palette.d.ts +1 -1
- package/package.json +1 -1
|
@@ -82,9 +82,16 @@ export interface SidebarRightPort {
|
|
|
82
82
|
}): void;
|
|
83
83
|
/** Focus a tab and the pane holding it; a missing tab is left alone. */
|
|
84
84
|
focus(tabId: string): void;
|
|
85
|
-
/**
|
|
85
|
+
/**
|
|
86
|
+
* Open tab metadata across adopted Sessions — and, in the shipped face, the
|
|
87
|
+
* snapshot store behind it: the plugin's pane layer re-reads the layout
|
|
88
|
+
* whenever that list changes, which covers every way a tab opens, closes or
|
|
89
|
+
* changes pane. A build whose source cannot be observed is read once per
|
|
90
|
+
* mutation instead.
|
|
91
|
+
*/
|
|
86
92
|
readonly openTabs: {
|
|
87
93
|
getSnapshot(): readonly SidebarTabRecord[];
|
|
94
|
+
subscribe?(listener: () => void): Disposer;
|
|
88
95
|
};
|
|
89
96
|
/**
|
|
90
97
|
* Collapse the column, or expand it and focus its active dock pane.
|
|
@@ -95,6 +102,27 @@ export interface SidebarRightPort {
|
|
|
95
102
|
* keeps that row out rather than offering one that cannot act.
|
|
96
103
|
*/
|
|
97
104
|
toggleExpanded?(): void;
|
|
105
|
+
/**
|
|
106
|
+
* Take one docked tab out into a floating pane, and put one back.
|
|
107
|
+
*
|
|
108
|
+
* The panel's own renderer draws at most one pane or two horizontal panes —
|
|
109
|
+
* its layout component throws on anything else — so a vertical split or a
|
|
110
|
+
* third pane cannot be asked of it. A floating pane has no such limit (the
|
|
111
|
+
* layout stores a rectangle per float and the package allows any number), so
|
|
112
|
+
* `compat/right-panes.ts` builds the panel's panes out of these two calls and
|
|
113
|
+
* draws their boxes itself. A missing `float` means a build that cannot host
|
|
114
|
+
* panes at all: the panel keeps its tabs, exactly as it does today.
|
|
115
|
+
* Source: packages/client/ui-sidebar-right/src/client/controller.ts
|
|
116
|
+
* (`float(tabId, rect)`, `dock(paneId)`).
|
|
117
|
+
*/
|
|
118
|
+
float?(tabId: string, rect?: {
|
|
119
|
+
x: number;
|
|
120
|
+
y: number;
|
|
121
|
+
width: number;
|
|
122
|
+
height: number;
|
|
123
|
+
}): void;
|
|
124
|
+
/** Return one floating pane's tab to the panel's docked column. */
|
|
125
|
+
dock?(paneId: string): void;
|
|
98
126
|
}
|
|
99
127
|
/**
|
|
100
128
|
* The tab-type registry that face publishes as `ctx.sidebarRightTabs`. A header
|
|
@@ -5,9 +5,11 @@ import type { ImplementedFeature } from '../../contracts/feature.ts';
|
|
|
5
5
|
* adapts the header chrome, the transcript column and the message surfaces.
|
|
6
6
|
*
|
|
7
7
|
* The header keeps DSH's own View switcher: the host still owns which View is
|
|
8
|
-
* selected and how it is rendered
|
|
9
|
-
*
|
|
10
|
-
* stylesheet can slide the thumb onto it
|
|
8
|
+
* selected and how it is rendered. This module swaps the two shipped Views'
|
|
9
|
+
* text labels for bundled artwork, publishes the selected segment's geometry so
|
|
10
|
+
* the stylesheet can slide the thumb onto it, and parks the tablist in the
|
|
11
|
+
* sidebar's window-control row while that column has a corner to hold it
|
|
12
|
+
* (`compat/view-switch.ts`).
|
|
11
13
|
*
|
|
12
14
|
* The transcript's own edge fade is published the same way: the host owns the
|
|
13
15
|
* scroll position, `compat/conversation-fade.ts` turns it into two attributes,
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The two View switcher glyphs, bundled as trusted static markup.
|
|
3
|
+
*
|
|
4
|
+
* Drawn to the reference's own segments (docs/issues/img/todo-sidebar-sessions-target.webp,
|
|
5
|
+
* @2x): a pair of speech bubbles for the chat View and the `</>` pair for the
|
|
6
|
+
* trajectory View, both on the CCD 16 grid — 1–1.2px stroke (each glyph's own
|
|
7
|
+
* weight read off the reference), round caps and joins, `currentColor` ink,
|
|
8
|
+
* ink box ≈ 12.5 × 11px inside the 16px artwork.
|
|
9
|
+
*/
|
|
10
|
+
export declare const VIEW_SWITCH_ICONS: Readonly<{
|
|
11
|
+
chat: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M10.4 8.3a2.6 2.6 0 0 1-2.6 2.6H5.7L3.3 12.5V5.9a2.6 2.6 0 0 1 2.6-2.6h1.9a2.6 2.6 0 0 1 2.6 2.6Z\"/>\n <path d=\"M10.3 5.9H12.1a2.1 2.1 0 0 1 2.1 2.1V10.4a2.1 2.1 0 0 1-2.1 2.1H10.25L9.1 13.1\"/>\n</svg>";
|
|
12
|
+
trajectory: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M5.3 5.8 3.05 8l2.25 2.2\"/>\n <path d=\"M9.1 3.8 6.9 12.2\"/>\n <path d=\"M10.7 5.8 12.95 8l-2.25 2.2\"/>\n</svg>";
|
|
13
|
+
}>;
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import type { ImplementedFeature } from '../../contracts/feature.ts';
|
|
2
2
|
/**
|
|
3
3
|
* Window frame and column geometry: flat surfaces, the sidebar column and its
|
|
4
|
-
* divider. The three tracks stay entirely
|
|
5
|
-
* sidebar with the handle moves the divider
|
|
6
|
-
* paints the columns.
|
|
4
|
+
* divider, and the right panel's floating card. The three tracks stay entirely
|
|
5
|
+
* `ui-layout`'s solve, so resizing the sidebar with the handle moves the divider
|
|
6
|
+
* the pointer is on; the plugin only paints the columns.
|
|
7
|
+
*
|
|
8
|
+
* The right panel is a column's occupant rather than a track, so its card is
|
|
9
|
+
* two sheets: `shell.css` insets the panel's box and paints the surface, and
|
|
10
|
+
* `right-panel.css` dresses what the panel draws inside it — the file tree's
|
|
11
|
+
* rows included, which belong to no feature of this plugin's own. Both mount
|
|
12
|
+
* with the frame, because neither has a switch of its own to lose.
|
|
7
13
|
*/
|
|
8
14
|
export declare const shellFeature: ImplementedFeature;
|
|
@@ -3,7 +3,7 @@ import type { ImplementedFeature } from '../../contracts/feature.ts';
|
|
|
3
3
|
* Sidebar presentation: compact navigation rows, flat project groups and a
|
|
4
4
|
* calmer foot. Every entry DSH registers — New Session, the global panel list,
|
|
5
5
|
* the workspace browser and Settings — stays exactly where the host put it; the
|
|
6
|
-
* account menu
|
|
6
|
+
* account menu gains a More submenu that forwards the host feedback action.
|
|
7
7
|
*
|
|
8
8
|
* The one list policy this module owns is the provisional New Session row: DSH
|
|
9
9
|
* creates the Session as soon as New Session is used, and the host marks that
|
|
@@ -13,8 +13,7 @@
|
|
|
13
13
|
* ```
|
|
14
14
|
*
|
|
15
15
|
* Only the sentence is copied; nothing is fetched and no book text is
|
|
16
|
-
* involved.
|
|
17
|
-
* including its typographic apostrophe and multiplication sign.
|
|
16
|
+
* involved. Titles and sentences are localized into Simplified Chinese.
|
|
18
17
|
*/
|
|
19
18
|
/** One comparable book: the title as printed, and the tokens it would take. */
|
|
20
19
|
export interface Book {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Number and date formatting for the statistics card.
|
|
3
3
|
*
|
|
4
|
-
* The card
|
|
5
|
-
*
|
|
4
|
+
* The card uses Simplified Chinese dates and a 24-hour clock. Compact token
|
|
5
|
+
* units stay unchanged so the metrics and chart labels fit the card.
|
|
6
6
|
* They live in their own module because both the data layer (`view.ts`) and the
|
|
7
7
|
* DOM layer (`card.ts`) need them, and neither should import the other.
|
|
8
8
|
*/
|
|
@@ -21,14 +21,14 @@ export declare function formatCount(value: number): string;
|
|
|
21
21
|
*/
|
|
22
22
|
export declare function formatTokens(value: number): string;
|
|
23
23
|
/**
|
|
24
|
-
* One hour of the day
|
|
24
|
+
* One hour of the day in the 24-hour clock (`11:00`).
|
|
25
25
|
*
|
|
26
26
|
* @param hour - local hour, 0-23.
|
|
27
27
|
* @returns the label.
|
|
28
28
|
*/
|
|
29
29
|
export declare function formatHour(hour: number): string;
|
|
30
30
|
/**
|
|
31
|
-
* One `YYYY-MM-DD` key as
|
|
31
|
+
* One `YYYY-MM-DD` key as a Chinese chart date (`9月30日`).
|
|
32
32
|
*
|
|
33
33
|
* @param date - local day key.
|
|
34
34
|
* @returns the short label.
|
|
@@ -3,8 +3,8 @@ import type { CleanupScope } from '../core/cleanup.ts';
|
|
|
3
3
|
/**
|
|
4
4
|
* Plugin-scoped presentation base: the root activation marker, the design
|
|
5
5
|
* variables, the shared Composer geometry two features depend on (siblings must
|
|
6
|
-
* not import each other), the host popup chrome (DESIGN.md §6.7)
|
|
7
|
-
* semantic token overrides.
|
|
6
|
+
* not import each other), the host popup chrome (DESIGN.md §6.7), the ink the
|
|
7
|
+
* window's scrollbars are painted in and the semantic token overrides.
|
|
8
8
|
*
|
|
9
9
|
* The override layer is recomputed on every mount, so a configuration change
|
|
10
10
|
* releases the previous layer through the same scope that owns the stylesheets
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-claude-desktop-theme",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Claude Code Desktop-style theme for DeepSeek Harness (DSH) Desktop on macOS and Windows, with light/dark themes, model/effort pickers and an interactive pixel whale",
|
|
6
6
|
"author": "zkforge",
|