@lynn123411/dsh-maple-theme 0.0.0-stage → 0.2.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/lib/index.js ADDED
@@ -0,0 +1,38 @@
1
+ // src/index.ts
2
+ import z from "@deepseek-ai/schemastery";
3
+ var name = "dsh-maple-theme";
4
+ var inject = ["settings"];
5
+ var HEADING_MODES = ["colorful", "accent", "text"];
6
+ var SETTINGS_NAMESPACE = name;
7
+ var Config = z.object({
8
+ /** 浅色基础色相(度):整套浅色从它推导。 */
9
+ hueLight: z.number().step(1).min(0).max(360).default(35).volatile(),
10
+ /** 深色基础色相(度)。 */
11
+ hueDark: z.number().step(1).min(0).max(360).default(207).volatile(),
12
+ /** 正文行高倍数(Maple 的出厂值是 1.8,对话正文取 1.75)。 */
13
+ lineHeight: z.number().step(0.05).min(1.4).max(2).default(1.75).volatile(),
14
+ /** 段落间距(px;Maple 的出厂值是 8,对话正文取 10)。 */
15
+ paragraphGap: z.number().step(1).min(4).max(24).default(10).volatile(),
16
+ /** 标题配色方式。 */
17
+ headingColor: z.union([...HEADING_MODES]).default("colorful").volatile(),
18
+ /** 悬停时在标题左侧显示 H1…H6 等级标记。 */
19
+ headingIndicator: z.boolean().default(true).volatile(),
20
+ /** 代码块使用 Maple 的语法配色。 */
21
+ codePalette: z.boolean().default(true).volatile(),
22
+ /** 外壳装饰:侧栏与标签条的圆角、输入卡填充、去掉会话头部那条分隔线。 */
23
+ shellSkin: z.boolean().default(true).volatile(),
24
+ /** 内嵌 Maple 的字体:正文与界面换成 maplemono。 */
25
+ mapleFont: z.boolean().default(true).volatile()
26
+ });
27
+ function apply(ctx) {
28
+ ctx.settings.configure({ auto: false }, ctx.fiber);
29
+ }
30
+ export {
31
+ Config,
32
+ HEADING_MODES,
33
+ SETTINGS_NAMESPACE,
34
+ apply,
35
+ inject,
36
+ name
37
+ };
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts"],
4
+ "sourcesContent": ["import z from '@deepseek-ai/schemastery';\n\n/**\n * `@lynn123411/dsh-maple-theme` \u2014\u2014 \u628A Maple \u7684\u914D\u8272\u4E0E\u804A\u5929\u6B63\u6587\u6392\u7248\u5E26\u8FDB DSH\u3002\n *\n * \u5BBF\u4E3B\u534A\u8FB9\u53EA\u58F0\u660E\u8FD9\u4EFD\u914D\u7F6E\u7684\u5F62\u72B6\uFF1A\u754C\u9762\u5168\u90E8\u7531\u6D4F\u89C8\u5668\u534A\u8FB9\u753B\uFF08\u6CE8\u5165\u6837\u5F0F\u8868 + \u63D2\u4EF6\u9875\u4E0A\u7684\u914D\u7F6E\u5361\u7247\uFF09\uFF0C\n * \u8FD9\u91CC\u4E0D\u78B0\u4EFB\u4F55\u754C\u9762\uFF0C\u4E5F\u4E0D\u6CE8\u518C\u5DE5\u5177\u3002\u914D\u7F6E\u9879\u843D\u8FDB\u672C\u63D2\u4EF6\u90A3\u4E00\u884C\u7684 config\uFF0C\u6D4F\u89C8\u5668\u534A\u8FB9\u7ECF\n * `ctx.configForms.get('dsh-maple-theme')` \u8BFB\u5199\u540C\u4E00\u4EFD\u503C\u3002\n *\n * \u6BCF\u4E2A\u5B57\u6BB5\u90FD\u6807 `volatile()`\uFF1A\u6539\u4E00\u4E2A\u5F00\u5173\u4E0D\u8BE5\u91CD\u6302\u6574\u6761 loader entry\uFF0C\u6D4F\u89C8\u5668\u534A\u8FB9\u6536\u5230\u901A\u77E5\u540E\n * \u81EA\u5DF1\u6539 <html> \u4E0A\u7684\u5C5E\u6027\u4E0E\u53D8\u91CF\uFF0C\u6837\u5F0F\u8868\u4E0D\u91CD\u5EFA\u3002\n */\nexport const name = 'dsh-maple-theme';\n\n/** \u53EA\u9700\u8981 settings \u670D\u52A1\uFF1A\u5B83\u627F\u8F7D\u8FD9\u4E00\u884C\u7684\u914D\u7F6E\uFF0C\u4E5F\u662F\u300C\u4E0D\u81EA\u52A8\u751F\u6210\u8BBE\u7F6E\u9875\u300D\u90A3\u6761\u7B56\u7565\u7684\u5165\u53E3\u3002 */\nexport const inject = ['settings'];\n\n/** \u6807\u9898\u914D\u8272\u7684\u4E09\u79CD\u53D6\u6750\u65B9\u5F0F\u3002 */\nexport const HEADING_MODES = ['colorful', 'accent', 'text'] as const;\n\n/** \u6807\u9898\u914D\u8272\uFF1A\u516D\u8272\u4F9D\u6B21\u6362 / \u5168\u7528\u5F3A\u8C03\u8272 / \u5168\u7528\u6B63\u6587\u8272\u3002 */\nexport type HeadingMode = typeof HEADING_MODES[number];\n\n/** \u672C\u63D2\u4EF6\u5728 profile \u91CC\u7684 loader \u884C id\uFF0C\u540C\u65F6\u662F\u8BBE\u7F6E\u7684\u547D\u540D\u7A7A\u95F4\u3002 */\nexport const SETTINGS_NAMESPACE = name;\n\n/**\n * \u914D\u7F6E\u7684\u5F62\u72B6\u4E0E\u9ED8\u8BA4\u503C\u3002\u8272\u76F8\u53D6 Maple \u81EA\u5DF1\u7684\u51FA\u5382\u503C\uFF08\u6D45\u8272 35\u3001\u6DF1\u8272 207\uFF09\u3002\n * \u884C\u9AD8\u4E0E\u6BB5\u843D\u95F4\u8DDD\u6BD4 Maple \u7684 1.8 / 8px \u677E\u4E00\u6863\uFF1A\u5BF9\u8BDD\u6B63\u6587\u7684\u884C\u5BBD\u6BD4\u7B14\u8BB0\u7A84\uFF0C\n * \u6309\u7B14\u8BB0\u7684\u884C\u8DDD\u6392\u4F1A\u663E\u5F97\u7A00\uFF0C\u6240\u4EE5\u8FD9\u91CC\u6536\u7D27\u884C\u8DDD\u3001\u653E\u5927\u6BB5\u8DDD\u3002\n */\nexport const Config = z.object({\n /** \u6D45\u8272\u57FA\u7840\u8272\u76F8\uFF08\u5EA6\uFF09\uFF1A\u6574\u5957\u6D45\u8272\u4ECE\u5B83\u63A8\u5BFC\u3002 */\n hueLight: z.number().step(1).min(0).max(360).default(35).volatile(),\n /** \u6DF1\u8272\u57FA\u7840\u8272\u76F8\uFF08\u5EA6\uFF09\u3002 */\n hueDark: z.number().step(1).min(0).max(360).default(207).volatile(),\n /** \u6B63\u6587\u884C\u9AD8\u500D\u6570\uFF08Maple \u7684\u51FA\u5382\u503C\u662F 1.8\uFF0C\u5BF9\u8BDD\u6B63\u6587\u53D6 1.75\uFF09\u3002 */\n lineHeight: z.number().step(0.05).min(1.4).max(2).default(1.75).volatile(),\n /** \u6BB5\u843D\u95F4\u8DDD\uFF08px\uFF1BMaple \u7684\u51FA\u5382\u503C\u662F 8\uFF0C\u5BF9\u8BDD\u6B63\u6587\u53D6 10\uFF09\u3002 */\n paragraphGap: z.number().step(1).min(4).max(24).default(10).volatile(),\n /** \u6807\u9898\u914D\u8272\u65B9\u5F0F\u3002 */\n headingColor: z.union([...HEADING_MODES]).default('colorful').volatile(),\n /** \u60AC\u505C\u65F6\u5728\u6807\u9898\u5DE6\u4FA7\u663E\u793A H1\u2026H6 \u7B49\u7EA7\u6807\u8BB0\u3002 */\n headingIndicator: z.boolean().default(true).volatile(),\n /** \u4EE3\u7801\u5757\u4F7F\u7528 Maple \u7684\u8BED\u6CD5\u914D\u8272\u3002 */\n codePalette: z.boolean().default(true).volatile(),\n /** \u5916\u58F3\u88C5\u9970\uFF1A\u4FA7\u680F\u4E0E\u6807\u7B7E\u6761\u7684\u5706\u89D2\u3001\u8F93\u5165\u5361\u586B\u5145\u3001\u53BB\u6389\u4F1A\u8BDD\u5934\u90E8\u90A3\u6761\u5206\u9694\u7EBF\u3002 */\n shellSkin: z.boolean().default(true).volatile(),\n /** \u5185\u5D4C Maple \u7684\u5B57\u4F53\uFF1A\u6B63\u6587\u4E0E\u754C\u9762\u6362\u6210 maplemono\u3002 */\n mapleFont: z.boolean().default(true).volatile(),\n});\n\n/** \u5BBF\u4E3B\u4E0A\u4E0B\u6587\u91CC\u672C\u63D2\u4EF6\u7528\u5230\u7684\u90A3\u4E24\u4E2A\u6210\u5458\u3002 */\ninterface HostContext {\n fiber: unknown;\n settings: {\n /** \u767B\u8BB0\u8FD9\u4E00\u884C\u5728\u8BBE\u7F6E\u9875\u4E0A\u7684\u81EA\u52A8\u751F\u6210\u7B56\u7565\uFF1B`auto: false` \u8868\u793A\u4E0D\u751F\u6210\u3002 */\n configure(presentation: { auto?: boolean }, owner?: unknown): () => void;\n };\n}\n\n/**\n * \u63D2\u4EF6\u672C\u4F53\uFF1A\u58F0\u660E\u672C\u884C\u7684\u8BBE\u7F6E\u9875\u7B56\u7565\u3002\n *\n * \u914D\u7F6E\u754C\u9762\u5728\u5BBF\u4E3B\u300C\u63D2\u4EF6\u300D\u9875\u4E0A\uFF08\u6D4F\u89C8\u5668\u534A\u8FB9\u6CE8\u518C `plugins.bundle.config`\uFF09\uFF0C\n * \u6240\u4EE5\u8FD9\u91CC\u8981\u663E\u5F0F\u5173\u6389\u5185\u6838\u6309 Config schema \u81EA\u52A8\u751F\u6210\u7684\u8BBE\u7F6E\u9875\uFF0C\u5426\u5219\u540C\u4E00\u6279\u5B57\u6BB5\u4F1A\u51FA\u73B0\u4E24\u6B21\u3002\n * @param ctx - \u5BBF\u4E3B\u63D2\u4EF6\u4E0A\u4E0B\u6587\u3002\n */\nexport function apply(ctx: HostContext): void {\n ctx.settings.configure({ auto: false }, ctx.fiber);\n}\n"],
5
+ "mappings": ";AAAA,OAAO,OAAO;AAYP,IAAM,OAAO;AAGb,IAAM,SAAS,CAAC,UAAU;AAG1B,IAAM,gBAAgB,CAAC,YAAY,UAAU,MAAM;AAMnD,IAAM,qBAAqB;AAO3B,IAAM,SAAS,EAAE,OAAO;AAAA;AAAA,EAE7B,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,QAAQ,EAAE,EAAE,SAAS;AAAA;AAAA,EAElE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,QAAQ,GAAG,EAAE,SAAS;AAAA;AAAA,EAElE,YAAY,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,IAAI,GAAG,EAAE,IAAI,CAAC,EAAE,QAAQ,IAAI,EAAE,SAAS;AAAA;AAAA,EAEzE,cAAc,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,SAAS;AAAA;AAAA,EAErE,cAAc,EAAE,MAAM,CAAC,GAAG,aAAa,CAAC,EAAE,QAAQ,UAAU,EAAE,SAAS;AAAA;AAAA,EAEvE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS;AAAA;AAAA,EAErD,aAAa,EAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS;AAAA;AAAA,EAEhD,WAAW,EAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS;AAAA;AAAA,EAE9C,WAAW,EAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS;AAChD,CAAC;AAkBM,SAAS,MAAM,KAAwB;AAC5C,MAAI,SAAS,UAAU,EAAE,MAAM,MAAM,GAAG,IAAI,KAAK;AACnD;",
6
+ "names": []
7
+ }
package/locale/en.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "meta": {
3
+ "title": "Maple theme",
4
+ "description": "Brings the Maple Obsidian theme into DSH: a warm-white and a cool-grey palette, the bundled Maple Mono font, conversation typography, code blocks and shell surfaces."
5
+ }
6
+ }
package/locale/zh.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "meta": {
3
+ "title": "Maple 主题",
4
+ "description": "把 Obsidian 的 Maple 主题搬进 DSH:暖白 / 冷灰两套配色、内嵌字体、对话正文的排版、代码块与侧栏观感。"
5
+ }
6
+ }
package/package.json CHANGED
@@ -1,6 +1,95 @@
1
1
  {
2
2
  "name": "@lynn123411/dsh-maple-theme",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.2.0",
4
+ "description": "把 Obsidian 的 Maple 主题搬进 DSH:暖白 / 冷灰两套配色、内嵌字体、对话正文的排版、代码块与侧栏观感。",
5
+ "type": "module",
6
+ "main": "lib/index.js",
7
+ "exports": {
8
+ ".": "./lib/index.js",
9
+ "./client": "./lib/client.js",
10
+ "./cordis.patch.yml": "./cordis.patch.yml",
11
+ "./locale/en.json": "./locale/en.json",
12
+ "./locale/zh.json": "./locale/zh.json",
13
+ "./package.json": "./package.json",
14
+ "./src/*": "./src/*"
15
+ },
16
+ "files": [
17
+ "lib",
18
+ "cordis.patch.yml",
19
+ "README.md",
20
+ "DETAILS.md",
21
+ "locale",
22
+ "assets"
23
+ ],
24
+ "license": "MIT",
25
+ "keywords": [
26
+ "deepseek-harness",
27
+ "dsh",
28
+ "dsh-plugin",
29
+ "cordis"
30
+ ],
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "git+https://github.com/tttnny/my-dsh.git",
34
+ "directory": "plugins/dsh-maple-theme"
35
+ },
36
+ "scripts": {
37
+ "build": "node build.mjs",
38
+ "prepack": "pnpm run build",
39
+ "typecheck": "tsc -p tsconfig.json --noEmit",
40
+ "test": "node build.mjs && node scripts/smoke-host.mjs && node scripts/test-projection.mjs && node scripts/smoke-client.mjs && node scripts/test-tokens.mjs && node scripts/test-anchors.mjs",
41
+ "assert:lib-untracked": "node scripts/assert-lib-untracked.mjs",
42
+ "check": "pnpm typecheck && pnpm test && pnpm assert:lib-untracked"
43
+ },
44
+ "dsh": {
45
+ "bundle": {
46
+ "patch": "./cordis.patch.yml"
47
+ },
48
+ "client": {
49
+ "platform": "web",
50
+ "inject": [
51
+ "@deepseek-ai/dsh-client-locale",
52
+ "@deepseek-ai/dsh-client-ui-plugin-manager",
53
+ "@deepseek-ai/dsh-client-ui-settings",
54
+ "@deepseek-ai/dsh-client-ui-renderer",
55
+ "@deepseek-ai/dsh-client-ui-primitives"
56
+ ],
57
+ "immediately": true
58
+ }
59
+ },
60
+ "peerDependencies": {
61
+ "@deepseek-ai/cordis": "^4.0.5",
62
+ "@deepseek-ai/dsh-client-ui-primitives": ">=0.2.1-rc.2",
63
+ "@deepseek-ai/dsh-client-ui-slots": ">=0.2.1-rc.2",
64
+ "react": "^18.2.0"
65
+ },
66
+ "devDependencies": {
67
+ "@deepseek-ai/cordis": "^4.0.5",
68
+ "@deepseek-ai/dsh-client-locale": ">=0.2.1-rc.2",
69
+ "@deepseek-ai/dsh-client-ui-plugin-manager": ">=0.2.1-rc.2",
70
+ "@deepseek-ai/dsh-client-ui-primitives": ">=0.2.1-rc.2",
71
+ "@deepseek-ai/dsh-client-ui-renderer": ">=0.2.1-rc.2",
72
+ "@deepseek-ai/dsh-client-ui-settings": ">=0.2.1-rc.2",
73
+ "@deepseek-ai/dsh-client-ui-slots": ">=0.2.1-rc.2",
74
+ "@deepseek-ai/dsh-system-prompt": ">=0.2.1-rc.2",
75
+ "@deepseek-ai/dsh-tools": ">=0.2.1-rc.2",
76
+ "@deepseek-ai/schemastery": "^3.18.5",
77
+ "@types/node": "^22.20.0",
78
+ "@types/react": "^19.2.18",
79
+ "@types/react-dom": "^19.3.0",
80
+ "esbuild": "^0.25.0",
81
+ "jsdom": "^26.1.0",
82
+ "react": "^18.3.1",
83
+ "react-dom": "^18.3.1",
84
+ "typescript": "^6.0.0"
85
+ },
86
+ "engines": {
87
+ "dsh": ">=0.2.1-rc.2",
88
+ "node": "^22.19 || >=24"
89
+ },
90
+ "packageManager": "pnpm@11.7.0",
91
+ "publishConfig": {
92
+ "access": "public"
93
+ },
94
+ "icon": "./assets/icon.svg"
95
+ }