@orbit-work/ui 0.1.2 → 0.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.
Files changed (37) hide show
  1. package/dist/appearance.cjs +4 -2
  2. package/dist/appearance.cjs.map +1 -1
  3. package/dist/appearance.d.cts +7 -1
  4. package/dist/appearance.d.ts +7 -1
  5. package/dist/appearance.js +5 -3
  6. package/dist/brand-preview.cjs +14 -0
  7. package/dist/brand-preview.cjs.map +1 -0
  8. package/dist/brand-preview.d.cts +13 -0
  9. package/dist/brand-preview.d.ts +13 -0
  10. package/dist/brand-preview.js +14 -0
  11. package/dist/brand-preview.js.map +1 -0
  12. package/dist/{chunk-KRP43SUA.cjs → chunk-JC7BHKS4.cjs} +2 -398
  13. package/dist/chunk-JC7BHKS4.cjs.map +1 -0
  14. package/dist/chunk-K7ONUTLA.cjs +240 -0
  15. package/dist/chunk-K7ONUTLA.cjs.map +1 -0
  16. package/dist/chunk-KTNWR3H5.js +399 -0
  17. package/dist/chunk-KTNWR3H5.js.map +1 -0
  18. package/dist/{chunk-S3R5QFO4.js → chunk-LSGO6AQR.js} +2 -398
  19. package/dist/chunk-LSGO6AQR.js.map +1 -0
  20. package/dist/chunk-Q7B4M5GC.cjs +399 -0
  21. package/dist/chunk-Q7B4M5GC.cjs.map +1 -0
  22. package/dist/chunk-ZXMHCL6D.js +240 -0
  23. package/dist/chunk-ZXMHCL6D.js.map +1 -0
  24. package/dist/core.css +12 -3
  25. package/dist/core.scoped.css +7888 -0
  26. package/dist/index.cjs +212 -377
  27. package/dist/index.cjs.map +1 -1
  28. package/dist/index.d.cts +37 -4
  29. package/dist/index.d.ts +37 -4
  30. package/dist/index.js +191 -356
  31. package/dist/index.js.map +1 -1
  32. package/dist/{appearance-D7uh_ZTy.d.cts → unifiedTheme-DQ-sETKO.d.cts} +13 -4
  33. package/dist/{appearance-D7uh_ZTy.d.ts → unifiedTheme-DQ-sETKO.d.ts} +13 -4
  34. package/dist/workbench.css +12 -3
  35. package/package.json +16 -2
  36. package/dist/chunk-KRP43SUA.cjs.map +0 -1
  37. package/dist/chunk-S3R5QFO4.js.map +0 -1
@@ -0,0 +1,399 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/theme/skins/index.ts
2
+ function completeMode(input) {
3
+ return {
4
+ ...input,
5
+ foregroundMuted: input.foregroundSecondary,
6
+ chatBackground: input.backgroundPrimary,
7
+ userBubbleBackground: input.backgroundTertiary,
8
+ userBubbleForeground: input.foregroundPrimary,
9
+ userBubbleBorder: input.borderStrong,
10
+ composerBackground: input.backgroundSecondary,
11
+ composerBorder: input.borderStrong,
12
+ sidebarBackground: input.backgroundSecondary,
13
+ sidebarSelectedBackground: input.backgroundTertiary
14
+ };
15
+ }
16
+ var codex = {
17
+ version: 1,
18
+ id: "codex",
19
+ name: "Normal",
20
+ description: "\u9AD8\u5BF9\u6BD4\u4E2D\u6027\u5DE5\u4F5C\u7A7A\u95F4",
21
+ modes: {
22
+ light: completeMode({
23
+ backgroundPrimary: "#ffffff",
24
+ backgroundSecondary: "#f5f5f5",
25
+ backgroundTertiary: "#ebebeb",
26
+ foregroundPrimary: "#000000",
27
+ foregroundSecondary: "#525252",
28
+ borderSubtle: "#dedede",
29
+ borderStrong: "#b8b8b8"
30
+ }),
31
+ dark: completeMode({
32
+ backgroundPrimary: "#1f1f24",
33
+ backgroundSecondary: "#29292e",
34
+ backgroundTertiary: "#333339",
35
+ foregroundPrimary: "#ffffff",
36
+ foregroundSecondary: "#b7b7c0",
37
+ borderSubtle: "#3f3f46",
38
+ borderStrong: "#676771"
39
+ })
40
+ }
41
+ };
42
+ var DEFAULT_ORBITWORK_SKIN_ID = "codex";
43
+ var warmBeige = {
44
+ version: 1,
45
+ id: "warm-beige",
46
+ name: "Warm Beige",
47
+ description: "Orbitwork \u539F\u59CB\u7684\u6D77\u519B\u84DD\u4E0E\u6696\u7070\u8BED\u4E49\u914D\u8272",
48
+ modes: {
49
+ light: completeMode({
50
+ backgroundPrimary: "#f7f6f1",
51
+ backgroundSecondary: "#fdfdfc",
52
+ backgroundTertiary: "#f1f0ea",
53
+ foregroundPrimary: "#333b50",
54
+ foregroundSecondary: "#646b7a",
55
+ borderSubtle: "#dcdcd7",
56
+ borderStrong: "#c2c3c1"
57
+ }),
58
+ dark: completeMode({
59
+ backgroundPrimary: "#16171b",
60
+ backgroundSecondary: "#1e2025",
61
+ backgroundTertiary: "#23252b",
62
+ foregroundPrimary: "#ecebe5",
63
+ foregroundSecondary: "#92969d",
64
+ borderSubtle: "#2a2c33",
65
+ borderStrong: "#3f434d"
66
+ })
67
+ }
68
+ };
69
+ var aurora = {
70
+ version: 1,
71
+ id: "aurora",
72
+ name: "Aurora",
73
+ description: "\u67D4\u548C\u7D2B\u8272\u5F3A\u8C03\u4E0E\u5FAE\u6696\u80CC\u666F",
74
+ modes: {
75
+ light: {
76
+ backgroundPrimary: "#fdfcff",
77
+ backgroundSecondary: "#f8f5ff",
78
+ backgroundTertiary: "#f1ecfb",
79
+ foregroundPrimary: "#1d1a26",
80
+ foregroundSecondary: "#4c4560",
81
+ foregroundMuted: "#4c4560",
82
+ borderSubtle: "#ded8ea",
83
+ borderStrong: "#c4b5fd",
84
+ buttonPrimaryBackground: "#7c3aed",
85
+ buttonPrimaryForeground: "#ffffff",
86
+ chatBackground: "#fdfcff",
87
+ userBubbleBackground: "#f1ecfb",
88
+ userBubbleForeground: "#1d1a26",
89
+ userBubbleBorder: "#c4b5fd",
90
+ composerBackground: "#f8f5ff",
91
+ composerBorder: "#c4b5fd",
92
+ sidebarBackground: "#f8f5ff",
93
+ sidebarSelectedBackground: "#f1ecfb"
94
+ },
95
+ dark: {
96
+ backgroundPrimary: "#17141d",
97
+ backgroundSecondary: "#201b29",
98
+ backgroundTertiary: "#2a2335",
99
+ foregroundPrimary: "#eae6f2",
100
+ foregroundSecondary: "#b3abc6",
101
+ foregroundMuted: "#b3abc6",
102
+ borderSubtle: "#393146",
103
+ borderStrong: "#6d4aa5",
104
+ buttonPrimaryBackground: "#a78bfa",
105
+ buttonPrimaryForeground: "#17141d",
106
+ chatBackground: "#17141d",
107
+ userBubbleBackground: "#2a2335",
108
+ userBubbleForeground: "#eae6f2",
109
+ userBubbleBorder: "#6d4aa5",
110
+ composerBackground: "#201b29",
111
+ composerBorder: "#6d4aa5",
112
+ sidebarBackground: "#201b29",
113
+ sidebarSelectedBackground: "#2a2335"
114
+ }
115
+ }
116
+ };
117
+ var forest = {
118
+ version: 1,
119
+ id: "forest",
120
+ name: "Forest",
121
+ description: "\u514B\u5236\u81EA\u7136\u7684\u7EFF\u8272\u5DE5\u4F5C\u7A7A\u95F4",
122
+ modes: {
123
+ light: {
124
+ backgroundPrimary: "#fbfdfb",
125
+ backgroundSecondary: "#f3f8f5",
126
+ backgroundTertiary: "#e9f1ec",
127
+ foregroundPrimary: "#16211b",
128
+ foregroundSecondary: "#3f5248",
129
+ foregroundMuted: "#3f5248",
130
+ borderSubtle: "#d6e1da",
131
+ borderStrong: "#98d8be",
132
+ buttonPrimaryBackground: "#16805b",
133
+ buttonPrimaryForeground: "#ffffff",
134
+ chatBackground: "#fbfdfb",
135
+ userBubbleBackground: "#e9f1ec",
136
+ userBubbleForeground: "#16211b",
137
+ userBubbleBorder: "#98d8be",
138
+ composerBackground: "#f3f8f5",
139
+ composerBorder: "#98d8be",
140
+ sidebarBackground: "#f3f8f5",
141
+ sidebarSelectedBackground: "#e9f1ec"
142
+ },
143
+ dark: {
144
+ backgroundPrimary: "#111916",
145
+ backgroundSecondary: "#17231e",
146
+ backgroundTertiary: "#1e2e27",
147
+ foregroundPrimary: "#e4efe8",
148
+ foregroundSecondary: "#a7bcb0",
149
+ foregroundMuted: "#a7bcb0",
150
+ borderSubtle: "#314139",
151
+ borderStrong: "#28664f",
152
+ buttonPrimaryBackground: "#55d6a0",
153
+ buttonPrimaryForeground: "#111916",
154
+ chatBackground: "#111916",
155
+ userBubbleBackground: "#1e2e27",
156
+ userBubbleForeground: "#e4efe8",
157
+ userBubbleBorder: "#28664f",
158
+ composerBackground: "#17231e",
159
+ composerBorder: "#28664f",
160
+ sidebarBackground: "#17231e",
161
+ sidebarSelectedBackground: "#1e2e27"
162
+ }
163
+ }
164
+ };
165
+ var catppuccin = {
166
+ version: 1,
167
+ id: "catppuccin",
168
+ name: "Catppuccin",
169
+ description: "\u67D4\u548C\u7684\u7C89\u5F69\u8272\u8C03\uFF0C\u9002\u5408\u957F\u65F6\u95F4\u9605\u8BFB",
170
+ modes: {
171
+ light: completeMode({
172
+ backgroundPrimary: "#eff1f5",
173
+ backgroundSecondary: "#e6e9ef",
174
+ backgroundTertiary: "#dce0e8",
175
+ foregroundPrimary: "#4c4f69",
176
+ foregroundSecondary: "#565a75",
177
+ borderSubtle: "#ccd0da",
178
+ borderStrong: "#9ca0b0",
179
+ buttonPrimaryBackground: "#8839ef",
180
+ buttonPrimaryForeground: "#ffffff"
181
+ }),
182
+ dark: completeMode({
183
+ backgroundPrimary: "#1e1e2e",
184
+ backgroundSecondary: "#181825",
185
+ backgroundTertiary: "#313244",
186
+ foregroundPrimary: "#cdd6f4",
187
+ foregroundSecondary: "#bac2de",
188
+ borderSubtle: "#45475a",
189
+ borderStrong: "#6c7086",
190
+ buttonPrimaryBackground: "#cba6f7",
191
+ buttonPrimaryForeground: "#1e1e2e"
192
+ })
193
+ }
194
+ };
195
+ var gruvbox = {
196
+ version: 1,
197
+ id: "gruvbox",
198
+ name: "Gruvbox",
199
+ description: "\u590D\u53E4\u800C\u6E29\u6696\u7684\u6CE5\u571F\u8272\u5DE5\u4F5C\u7A7A\u95F4",
200
+ modes: {
201
+ light: completeMode({
202
+ backgroundPrimary: "#fbf1c7",
203
+ backgroundSecondary: "#ebdbb2",
204
+ backgroundTertiary: "#d5c4a1",
205
+ foregroundPrimary: "#3c3836",
206
+ foregroundSecondary: "#504945",
207
+ borderSubtle: "#bdae93",
208
+ borderStrong: "#928374",
209
+ buttonPrimaryBackground: "#458588",
210
+ buttonPrimaryForeground: "#000000"
211
+ }),
212
+ dark: completeMode({
213
+ backgroundPrimary: "#282828",
214
+ backgroundSecondary: "#32302f",
215
+ backgroundTertiary: "#3c3836",
216
+ foregroundPrimary: "#ebdbb2",
217
+ foregroundSecondary: "#d5c4a1",
218
+ borderSubtle: "#504945",
219
+ borderStrong: "#665c54",
220
+ buttonPrimaryBackground: "#83a598",
221
+ buttonPrimaryForeground: "#282828"
222
+ })
223
+ }
224
+ };
225
+ var nord = {
226
+ version: 1,
227
+ id: "nord",
228
+ name: "Nord",
229
+ description: "\u51B7\u9759\u514B\u5236\u7684\u5317\u5883\u84DD\u7070\u8272\u8C03",
230
+ modes: {
231
+ light: completeMode({
232
+ backgroundPrimary: "#eceff4",
233
+ backgroundSecondary: "#e5e9f0",
234
+ backgroundTertiary: "#d8dee9",
235
+ foregroundPrimary: "#2e3440",
236
+ foregroundSecondary: "#3b4252",
237
+ borderSubtle: "#c2c9d4",
238
+ borderStrong: "#8f99a9",
239
+ buttonPrimaryBackground: "#5e81ac",
240
+ buttonPrimaryForeground: "#000000"
241
+ }),
242
+ dark: completeMode({
243
+ backgroundPrimary: "#2e3440",
244
+ backgroundSecondary: "#3b4252",
245
+ backgroundTertiary: "#434c5e",
246
+ foregroundPrimary: "#eceff4",
247
+ foregroundSecondary: "#d8dee9",
248
+ borderSubtle: "#4c566a",
249
+ borderStrong: "#60708a",
250
+ buttonPrimaryBackground: "#88c0d0",
251
+ buttonPrimaryForeground: "#2e3440"
252
+ })
253
+ }
254
+ };
255
+ var oneDarkPro = {
256
+ version: 1,
257
+ id: "one-dark-pro",
258
+ name: "One Dark Pro",
259
+ description: "\u5747\u8861\u6E05\u6670\u7684 Atom \u98CE\u683C\u914D\u8272",
260
+ modes: {
261
+ light: completeMode({
262
+ backgroundPrimary: "#fafafa",
263
+ backgroundSecondary: "#f0f0f0",
264
+ backgroundTertiary: "#e5e5e6",
265
+ foregroundPrimary: "#383a42",
266
+ foregroundSecondary: "#4f525d",
267
+ borderSubtle: "#d0d0d1",
268
+ borderStrong: "#a0a1a7",
269
+ buttonPrimaryBackground: "#4078f2",
270
+ buttonPrimaryForeground: "#000000"
271
+ }),
272
+ dark: completeMode({
273
+ backgroundPrimary: "#282c34",
274
+ backgroundSecondary: "#21252b",
275
+ backgroundTertiary: "#2f343f",
276
+ foregroundPrimary: "#abb2bf",
277
+ foregroundSecondary: "#c8ccd4",
278
+ borderSubtle: "#3e4451",
279
+ borderStrong: "#5c6370",
280
+ buttonPrimaryBackground: "#61afef",
281
+ buttonPrimaryForeground: "#20232a"
282
+ })
283
+ }
284
+ };
285
+ var rosePine = {
286
+ version: 1,
287
+ id: "rose-pine",
288
+ name: "Ros\xE9 Pine",
289
+ description: "\u6E29\u6696\u4F18\u96C5\u7684\u73AB\u7470\u7070\u7D2B\u8272\u8C03",
290
+ modes: {
291
+ light: completeMode({
292
+ backgroundPrimary: "#faf4ed",
293
+ backgroundSecondary: "#fffaf3",
294
+ backgroundTertiary: "#f2e9e1",
295
+ foregroundPrimary: "#575279",
296
+ foregroundSecondary: "#625d82",
297
+ borderSubtle: "#dfdad9",
298
+ borderStrong: "#9893a5",
299
+ buttonPrimaryBackground: "#907aa9",
300
+ buttonPrimaryForeground: "#191724"
301
+ }),
302
+ dark: completeMode({
303
+ backgroundPrimary: "#191724",
304
+ backgroundSecondary: "#1f1d2e",
305
+ backgroundTertiary: "#26233a",
306
+ foregroundPrimary: "#e0def4",
307
+ foregroundSecondary: "#c4a7e7",
308
+ borderSubtle: "#403d52",
309
+ borderStrong: "#6e6a86",
310
+ buttonPrimaryBackground: "#c4a7e7",
311
+ buttonPrimaryForeground: "#191724"
312
+ })
313
+ }
314
+ };
315
+ var solarized = {
316
+ version: 1,
317
+ id: "solarized",
318
+ name: "Solarized",
319
+ description: "\u4F4E\u75B2\u52B3\u3001\u7CBE\u786E\u5E73\u8861\u7684\u7ECF\u5178\u914D\u8272",
320
+ modes: {
321
+ light: completeMode({
322
+ backgroundPrimary: "#fdf6e3",
323
+ backgroundSecondary: "#eee8d5",
324
+ backgroundTertiary: "#e4ddc7",
325
+ foregroundPrimary: "#4b626a",
326
+ foregroundSecondary: "#455b62",
327
+ borderSubtle: "#d3cbb7",
328
+ borderStrong: "#93a1a1",
329
+ buttonPrimaryBackground: "#268bd2",
330
+ buttonPrimaryForeground: "#001f27"
331
+ }),
332
+ dark: completeMode({
333
+ backgroundPrimary: "#002b36",
334
+ backgroundSecondary: "#073642",
335
+ backgroundTertiary: "#0b4654",
336
+ foregroundPrimary: "#eee8d5",
337
+ foregroundSecondary: "#d5d1c4",
338
+ borderSubtle: "#23515d",
339
+ borderStrong: "#586e75",
340
+ buttonPrimaryBackground: "#268bd2",
341
+ buttonPrimaryForeground: "#001f27"
342
+ })
343
+ }
344
+ };
345
+ var BUILTIN_ORBITWORK_SKINS = [
346
+ codex,
347
+ warmBeige,
348
+ aurora,
349
+ forest,
350
+ catppuccin,
351
+ gruvbox,
352
+ nord,
353
+ oneDarkPro,
354
+ rosePine,
355
+ solarized
356
+ ];
357
+
358
+ // src/theme/core/types.ts
359
+ var TENANT_THEME_COLOR_KEYS = [
360
+ "bg",
361
+ "surface",
362
+ "surface2",
363
+ "text",
364
+ "text2",
365
+ "text3",
366
+ "border",
367
+ "borderStrong"
368
+ ];
369
+ var UNIFIED_NEUTRAL_TOKENS = [
370
+ "--ow-bg",
371
+ "--ow-surface",
372
+ "--ow-surface-2",
373
+ "--ow-text",
374
+ "--ow-text-2",
375
+ "--ow-text-3",
376
+ "--ow-border",
377
+ "--ow-border-strong"
378
+ ];
379
+ var BRAND_ACTION_TOKENS = [
380
+ "--ow-btn-primary-bg",
381
+ "--ow-btn-primary-hover",
382
+ "--ow-btn-primary-press",
383
+ "--ow-btn-primary-fg",
384
+ "--ow-beacon",
385
+ "--ow-beacon-idle",
386
+ "--ow-accent-dot",
387
+ "--ow-data-today"
388
+ ];
389
+ var UNIFIED_TYPOGRAPHY_TOKENS = ["--ow-font-sans", "--ow-font-mono"];
390
+
391
+
392
+
393
+
394
+
395
+
396
+
397
+
398
+ exports.DEFAULT_ORBITWORK_SKIN_ID = DEFAULT_ORBITWORK_SKIN_ID; exports.BUILTIN_ORBITWORK_SKINS = BUILTIN_ORBITWORK_SKINS; exports.TENANT_THEME_COLOR_KEYS = TENANT_THEME_COLOR_KEYS; exports.UNIFIED_NEUTRAL_TOKENS = UNIFIED_NEUTRAL_TOKENS; exports.BRAND_ACTION_TOKENS = BRAND_ACTION_TOKENS; exports.UNIFIED_TYPOGRAPHY_TOKENS = UNIFIED_TYPOGRAPHY_TOKENS;
399
+ //# sourceMappingURL=chunk-Q7B4M5GC.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/wowzin/projects/orbit/packages/ui/dist/chunk-Q7B4M5GC.cjs","../src/theme/skins/index.ts","../src/theme/core/types.ts"],"names":[],"mappings":"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","file":"/Users/wowzin/projects/orbit/packages/ui/dist/chunk-Q7B4M5GC.cjs","sourcesContent":[null,"import type { OrbitworkSkin, OrbitworkSkinTokens } from \"../core/skin.ts\"\n\ntype CompleteModeInput = {\n backgroundPrimary: string\n backgroundSecondary: string\n backgroundTertiary: string\n foregroundPrimary: string\n foregroundSecondary: string\n borderSubtle: string\n borderStrong: string\n buttonPrimaryBackground?: string\n buttonPrimaryForeground?: string\n}\n\n/** Give every built-in palette real component coverage instead of changing only the page canvas. */\nfunction completeMode(input: CompleteModeInput): OrbitworkSkinTokens {\n return {\n ...input,\n foregroundMuted: input.foregroundSecondary,\n chatBackground: input.backgroundPrimary,\n userBubbleBackground: input.backgroundTertiary,\n userBubbleForeground: input.foregroundPrimary,\n userBubbleBorder: input.borderStrong,\n composerBackground: input.backgroundSecondary,\n composerBorder: input.borderStrong,\n sidebarBackground: input.backgroundSecondary,\n sidebarSelectedBackground: input.backgroundTertiary,\n }\n}\n\n/**\n * Codex-inspired defaults mapped from the user-exported `codex-theme-v1` light/dark\n * configurations. `surface`, `ink`, and `contrast` own this neutral palette;\n * primary buttons inherit the same defaults as Warm Beige.\n * Codex-only font/window/functional-color fields stay outside the personal-skin contract.\n */\nexport const codex: OrbitworkSkin = {\n version: 1,\n id: \"codex\",\n name: \"Normal\",\n description: \"高对比中性工作空间\",\n modes: {\n light: completeMode({\n backgroundPrimary: \"#ffffff\",\n backgroundSecondary: \"#f5f5f5\",\n backgroundTertiary: \"#ebebeb\",\n foregroundPrimary: \"#000000\",\n foregroundSecondary: \"#525252\",\n borderSubtle: \"#dedede\",\n borderStrong: \"#b8b8b8\",\n }),\n dark: completeMode({\n backgroundPrimary: \"#1f1f24\",\n backgroundSecondary: \"#29292e\",\n backgroundTertiary: \"#333339\",\n foregroundPrimary: \"#ffffff\",\n foregroundSecondary: \"#b7b7c0\",\n borderSubtle: \"#3f3f46\",\n borderStrong: \"#676771\",\n }),\n },\n}\n\nexport const DEFAULT_ORBITWORK_SKIN_ID = \"codex\" as const\n\n/** The former unskinned DS2 palette, retained as the second built-in choice. */\nexport const warmBeige: OrbitworkSkin = {\n version: 1,\n id: \"warm-beige\",\n name: \"Warm Beige\",\n description: \"Orbitwork 原始的海军蓝与暖灰语义配色\",\n modes: {\n light: completeMode({\n backgroundPrimary: \"#f7f6f1\",\n backgroundSecondary: \"#fdfdfc\",\n backgroundTertiary: \"#f1f0ea\",\n foregroundPrimary: \"#333b50\",\n foregroundSecondary: \"#646b7a\",\n borderSubtle: \"#dcdcd7\",\n borderStrong: \"#c2c3c1\",\n }),\n dark: completeMode({\n backgroundPrimary: \"#16171b\",\n backgroundSecondary: \"#1e2025\",\n backgroundTertiary: \"#23252b\",\n foregroundPrimary: \"#ecebe5\",\n foregroundSecondary: \"#92969d\",\n borderSubtle: \"#2a2c33\",\n borderStrong: \"#3f434d\",\n }),\n },\n}\n\nexport const aurora: OrbitworkSkin = {\n version: 1,\n id: \"aurora\",\n name: \"Aurora\",\n description: \"柔和紫色强调与微暖背景\",\n modes: {\n light: {\n backgroundPrimary: \"#fdfcff\",\n backgroundSecondary: \"#f8f5ff\",\n backgroundTertiary: \"#f1ecfb\",\n foregroundPrimary: \"#1d1a26\",\n foregroundSecondary: \"#4c4560\",\n foregroundMuted: \"#4c4560\",\n borderSubtle: \"#ded8ea\",\n borderStrong: \"#c4b5fd\",\n buttonPrimaryBackground: \"#7c3aed\",\n buttonPrimaryForeground: \"#ffffff\",\n chatBackground: \"#fdfcff\",\n userBubbleBackground: \"#f1ecfb\",\n userBubbleForeground: \"#1d1a26\",\n userBubbleBorder: \"#c4b5fd\",\n composerBackground: \"#f8f5ff\",\n composerBorder: \"#c4b5fd\",\n sidebarBackground: \"#f8f5ff\",\n sidebarSelectedBackground: \"#f1ecfb\",\n },\n dark: {\n backgroundPrimary: \"#17141d\",\n backgroundSecondary: \"#201b29\",\n backgroundTertiary: \"#2a2335\",\n foregroundPrimary: \"#eae6f2\",\n foregroundSecondary: \"#b3abc6\",\n foregroundMuted: \"#b3abc6\",\n borderSubtle: \"#393146\",\n borderStrong: \"#6d4aa5\",\n buttonPrimaryBackground: \"#a78bfa\",\n buttonPrimaryForeground: \"#17141d\",\n chatBackground: \"#17141d\",\n userBubbleBackground: \"#2a2335\",\n userBubbleForeground: \"#eae6f2\",\n userBubbleBorder: \"#6d4aa5\",\n composerBackground: \"#201b29\",\n composerBorder: \"#6d4aa5\",\n sidebarBackground: \"#201b29\",\n sidebarSelectedBackground: \"#2a2335\",\n },\n },\n}\n\nexport const forest: OrbitworkSkin = {\n version: 1,\n id: \"forest\",\n name: \"Forest\",\n description: \"克制自然的绿色工作空间\",\n modes: {\n light: {\n backgroundPrimary: \"#fbfdfb\",\n backgroundSecondary: \"#f3f8f5\",\n backgroundTertiary: \"#e9f1ec\",\n foregroundPrimary: \"#16211b\",\n foregroundSecondary: \"#3f5248\",\n foregroundMuted: \"#3f5248\",\n borderSubtle: \"#d6e1da\",\n borderStrong: \"#98d8be\",\n buttonPrimaryBackground: \"#16805b\",\n buttonPrimaryForeground: \"#ffffff\",\n chatBackground: \"#fbfdfb\",\n userBubbleBackground: \"#e9f1ec\",\n userBubbleForeground: \"#16211b\",\n userBubbleBorder: \"#98d8be\",\n composerBackground: \"#f3f8f5\",\n composerBorder: \"#98d8be\",\n sidebarBackground: \"#f3f8f5\",\n sidebarSelectedBackground: \"#e9f1ec\",\n },\n dark: {\n backgroundPrimary: \"#111916\",\n backgroundSecondary: \"#17231e\",\n backgroundTertiary: \"#1e2e27\",\n foregroundPrimary: \"#e4efe8\",\n foregroundSecondary: \"#a7bcb0\",\n foregroundMuted: \"#a7bcb0\",\n borderSubtle: \"#314139\",\n borderStrong: \"#28664f\",\n buttonPrimaryBackground: \"#55d6a0\",\n buttonPrimaryForeground: \"#111916\",\n chatBackground: \"#111916\",\n userBubbleBackground: \"#1e2e27\",\n userBubbleForeground: \"#e4efe8\",\n userBubbleBorder: \"#28664f\",\n composerBackground: \"#17231e\",\n composerBorder: \"#28664f\",\n sidebarBackground: \"#17231e\",\n sidebarSelectedBackground: \"#1e2e27\",\n },\n },\n}\n\n/*\n * Adapted from Craft Agents OSS's MIT-licensed built-in themes. Source attribution stays beside\n * the palettes so future updates preserve provenance:\n * https://github.com/craft-ai-agents/craft-agents-oss/tree/main/apps/electron/resources/themes\n */\nexport const catppuccin: OrbitworkSkin = {\n version: 1,\n id: \"catppuccin\",\n name: \"Catppuccin\",\n description: \"柔和的粉彩色调,适合长时间阅读\",\n modes: {\n light: completeMode({\n backgroundPrimary: \"#eff1f5\",\n backgroundSecondary: \"#e6e9ef\",\n backgroundTertiary: \"#dce0e8\",\n foregroundPrimary: \"#4c4f69\",\n foregroundSecondary: \"#565a75\",\n borderSubtle: \"#ccd0da\",\n borderStrong: \"#9ca0b0\",\n buttonPrimaryBackground: \"#8839ef\",\n buttonPrimaryForeground: \"#ffffff\",\n }),\n dark: completeMode({\n backgroundPrimary: \"#1e1e2e\",\n backgroundSecondary: \"#181825\",\n backgroundTertiary: \"#313244\",\n foregroundPrimary: \"#cdd6f4\",\n foregroundSecondary: \"#bac2de\",\n borderSubtle: \"#45475a\",\n borderStrong: \"#6c7086\",\n buttonPrimaryBackground: \"#cba6f7\",\n buttonPrimaryForeground: \"#1e1e2e\",\n }),\n },\n}\n\nexport const gruvbox: OrbitworkSkin = {\n version: 1,\n id: \"gruvbox\",\n name: \"Gruvbox\",\n description: \"复古而温暖的泥土色工作空间\",\n modes: {\n light: completeMode({\n backgroundPrimary: \"#fbf1c7\",\n backgroundSecondary: \"#ebdbb2\",\n backgroundTertiary: \"#d5c4a1\",\n foregroundPrimary: \"#3c3836\",\n foregroundSecondary: \"#504945\",\n borderSubtle: \"#bdae93\",\n borderStrong: \"#928374\",\n buttonPrimaryBackground: \"#458588\",\n buttonPrimaryForeground: \"#000000\",\n }),\n dark: completeMode({\n backgroundPrimary: \"#282828\",\n backgroundSecondary: \"#32302f\",\n backgroundTertiary: \"#3c3836\",\n foregroundPrimary: \"#ebdbb2\",\n foregroundSecondary: \"#d5c4a1\",\n borderSubtle: \"#504945\",\n borderStrong: \"#665c54\",\n buttonPrimaryBackground: \"#83a598\",\n buttonPrimaryForeground: \"#282828\",\n }),\n },\n}\n\nexport const nord: OrbitworkSkin = {\n version: 1,\n id: \"nord\",\n name: \"Nord\",\n description: \"冷静克制的北境蓝灰色调\",\n modes: {\n light: completeMode({\n backgroundPrimary: \"#eceff4\",\n backgroundSecondary: \"#e5e9f0\",\n backgroundTertiary: \"#d8dee9\",\n foregroundPrimary: \"#2e3440\",\n foregroundSecondary: \"#3b4252\",\n borderSubtle: \"#c2c9d4\",\n borderStrong: \"#8f99a9\",\n buttonPrimaryBackground: \"#5e81ac\",\n buttonPrimaryForeground: \"#000000\",\n }),\n dark: completeMode({\n backgroundPrimary: \"#2e3440\",\n backgroundSecondary: \"#3b4252\",\n backgroundTertiary: \"#434c5e\",\n foregroundPrimary: \"#eceff4\",\n foregroundSecondary: \"#d8dee9\",\n borderSubtle: \"#4c566a\",\n borderStrong: \"#60708a\",\n buttonPrimaryBackground: \"#88c0d0\",\n buttonPrimaryForeground: \"#2e3440\",\n }),\n },\n}\n\nexport const oneDarkPro: OrbitworkSkin = {\n version: 1,\n id: \"one-dark-pro\",\n name: \"One Dark Pro\",\n description: \"均衡清晰的 Atom 风格配色\",\n modes: {\n light: completeMode({\n backgroundPrimary: \"#fafafa\",\n backgroundSecondary: \"#f0f0f0\",\n backgroundTertiary: \"#e5e5e6\",\n foregroundPrimary: \"#383a42\",\n foregroundSecondary: \"#4f525d\",\n borderSubtle: \"#d0d0d1\",\n borderStrong: \"#a0a1a7\",\n buttonPrimaryBackground: \"#4078f2\",\n buttonPrimaryForeground: \"#000000\",\n }),\n dark: completeMode({\n backgroundPrimary: \"#282c34\",\n backgroundSecondary: \"#21252b\",\n backgroundTertiary: \"#2f343f\",\n foregroundPrimary: \"#abb2bf\",\n foregroundSecondary: \"#c8ccd4\",\n borderSubtle: \"#3e4451\",\n borderStrong: \"#5c6370\",\n buttonPrimaryBackground: \"#61afef\",\n buttonPrimaryForeground: \"#20232a\",\n }),\n },\n}\n\nexport const rosePine: OrbitworkSkin = {\n version: 1,\n id: \"rose-pine\",\n name: \"Rosé Pine\",\n description: \"温暖优雅的玫瑰灰紫色调\",\n modes: {\n light: completeMode({\n backgroundPrimary: \"#faf4ed\",\n backgroundSecondary: \"#fffaf3\",\n backgroundTertiary: \"#f2e9e1\",\n foregroundPrimary: \"#575279\",\n foregroundSecondary: \"#625d82\",\n borderSubtle: \"#dfdad9\",\n borderStrong: \"#9893a5\",\n buttonPrimaryBackground: \"#907aa9\",\n buttonPrimaryForeground: \"#191724\",\n }),\n dark: completeMode({\n backgroundPrimary: \"#191724\",\n backgroundSecondary: \"#1f1d2e\",\n backgroundTertiary: \"#26233a\",\n foregroundPrimary: \"#e0def4\",\n foregroundSecondary: \"#c4a7e7\",\n borderSubtle: \"#403d52\",\n borderStrong: \"#6e6a86\",\n buttonPrimaryBackground: \"#c4a7e7\",\n buttonPrimaryForeground: \"#191724\",\n }),\n },\n}\n\nexport const solarized: OrbitworkSkin = {\n version: 1,\n id: \"solarized\",\n name: \"Solarized\",\n description: \"低疲劳、精确平衡的经典配色\",\n modes: {\n light: completeMode({\n backgroundPrimary: \"#fdf6e3\",\n backgroundSecondary: \"#eee8d5\",\n backgroundTertiary: \"#e4ddc7\",\n foregroundPrimary: \"#4b626a\",\n foregroundSecondary: \"#455b62\",\n borderSubtle: \"#d3cbb7\",\n borderStrong: \"#93a1a1\",\n buttonPrimaryBackground: \"#268bd2\",\n buttonPrimaryForeground: \"#001f27\",\n }),\n dark: completeMode({\n backgroundPrimary: \"#002b36\",\n backgroundSecondary: \"#073642\",\n backgroundTertiary: \"#0b4654\",\n foregroundPrimary: \"#eee8d5\",\n foregroundSecondary: \"#d5d1c4\",\n borderSubtle: \"#23515d\",\n borderStrong: \"#586e75\",\n buttonPrimaryBackground: \"#268bd2\",\n buttonPrimaryForeground: \"#001f27\",\n }),\n },\n}\n\nexport const BUILTIN_ORBITWORK_SKINS = [\n codex,\n warmBeige,\n aurora,\n forest,\n catppuccin,\n gruvbox,\n nord,\n oneDarkPro,\n rosePine,\n solarized,\n] as const\n","import type { OrbitworkFontScale } from \"./fontScale.ts\"\nimport type { ResolvedTheme } from \"./skin.ts\"\n\n/** Runtime layers may override only this complete neutral group. */\nexport const TENANT_THEME_COLOR_KEYS = [\n \"bg\",\n \"surface\",\n \"surface2\",\n \"text\",\n \"text2\",\n \"text3\",\n \"border\",\n \"borderStrong\",\n] as const\n\nexport type TenantThemeColors = Record<(typeof TENANT_THEME_COLOR_KEYS)[number], string>\n\n/** Localized brand copy. Assets stay outside locale buckets. */\nexport type TenantBranding = {\n productName: string\n companyName: string\n claim?: string\n claimNote?: string\n slogan?: string\n}\n\nexport type LocalizedBranding = Record<string, TenantBranding>\n\n/**\n * GET /api/v1/tenant/theme response.\n *\n * Every supplied mode is a complete neutral group. Keeping light and dark\n * separate prevents a runtime :root override from leaking one palette into\n * both DS2 modes.\n */\nexport type TenantTheme = {\n name: string\n /** Brand image. Empty string means fall through to the host/brand layer. */\n logo: string\n /** Optional login key-visual photo; empty/absent falls back to the stock KV. */\n loginKV?: string\n favicon?: string\n modes: Partial<Record<ResolvedTheme, TenantThemeColors>>\n typography: {\n fontSans: string\n fontMono: string\n }\n /** en-US is the required baseline; other locale buckets are optional. */\n branding: LocalizedBranding\n}\n\nexport const UNIFIED_NEUTRAL_TOKENS = [\n \"--ow-bg\",\n \"--ow-surface\",\n \"--ow-surface-2\",\n \"--ow-text\",\n \"--ow-text-2\",\n \"--ow-text-3\",\n \"--ow-border\",\n \"--ow-border-strong\",\n] as const\n\nexport const BRAND_ACTION_TOKENS = [\n \"--ow-btn-primary-bg\",\n \"--ow-btn-primary-hover\",\n \"--ow-btn-primary-press\",\n \"--ow-btn-primary-fg\",\n \"--ow-beacon\",\n \"--ow-beacon-idle\",\n \"--ow-accent-dot\",\n \"--ow-data-today\",\n] as const\n\nexport const UNIFIED_TYPOGRAPHY_TOKENS = [\"--ow-font-sans\", \"--ow-font-mono\"] as const\n\nexport type UnifiedNeutralToken = (typeof UNIFIED_NEUTRAL_TOKENS)[number]\nexport type BrandActionToken = (typeof BRAND_ACTION_TOKENS)[number]\nexport type BrandThemeToken = UnifiedNeutralToken | BrandActionToken\nexport type UnifiedTypographyToken = (typeof UNIFIED_TYPOGRAPHY_TOKENS)[number]\nexport type UnifiedThemeToken = BrandThemeToken | UnifiedTypographyToken\n\n/** Build-time validated OEM brand input consumed by the UI merge layer. */\nexport type BrandTheme = {\n id: string\n logo?: string\n /** Optional login key-visual photo (KV board background on the desktop login page). */\n loginKV?: string\n favicon?: string\n modes: Partial<Record<ResolvedTheme, Partial<Record<BrandThemeToken, string>>>>\n typography?: {\n fontSans: string\n fontMono: string\n }\n /** OEM text-size preset; the personal preference and user skins still win. */\n fontScale?: OrbitworkFontScale\n branding?: LocalizedBranding\n}\n"]}