@portel/photon-core 2.2.0 → 2.3.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/dist/base.d.ts +1 -1
- package/dist/base.d.ts.map +1 -1
- package/dist/base.js +12 -6
- package/dist/base.js.map +1 -1
- package/dist/config.d.ts +63 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +117 -0
- package/dist/config.js.map +1 -0
- package/dist/design-system/tokens.d.ts +66 -0
- package/dist/design-system/tokens.d.ts.map +1 -1
- package/dist/design-system/tokens.js +324 -44
- package/dist/design-system/tokens.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-apps.d.ts +130 -0
- package/dist/mcp-apps.d.ts.map +1 -0
- package/dist/mcp-apps.js +87 -0
- package/dist/mcp-apps.js.map +1 -0
- package/dist/schema-extractor.d.ts +18 -1
- package/dist/schema-extractor.d.ts.map +1 -1
- package/dist/schema-extractor.js +78 -11
- package/dist/schema-extractor.js.map +1 -1
- package/dist/types.d.ts +73 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +11 -1
- package/src/base.ts +12 -5
- package/src/config.ts +134 -0
- package/src/design-system/tokens.ts +381 -57
- package/src/index.ts +26 -0
- package/src/mcp-apps.ts +204 -0
- package/src/schema-extractor.ts +91 -12
- package/src/types.ts +80 -0
package/dist/base.d.ts
CHANGED
|
@@ -86,7 +86,7 @@ export declare class PhotonMCP {
|
|
|
86
86
|
static getMCPName(): string;
|
|
87
87
|
/**
|
|
88
88
|
* Get all tool methods from this class
|
|
89
|
-
* Returns all public async methods except lifecycle hooks
|
|
89
|
+
* Returns all public async methods except lifecycle hooks and configuration methods
|
|
90
90
|
*/
|
|
91
91
|
static getToolMethods(): string[];
|
|
92
92
|
/**
|
package/dist/base.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAkB,MAAM,aAAa,CAAC;AAK1E;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IA0B/B;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAEzC;;;OAGG;IACH,OAAO,CAAC,WAAW,CAAsF;IAEzG;;;OAGG;IACH,MAAM,CAAC,UAAU,IAAI,MAAM;IAQ3B;;;OAGG;IACH,MAAM,CAAC,cAAc,IAAI,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAkB,MAAM,aAAa,CAAC;AAK1E;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IA0B/B;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAEzC;;;OAGG;IACH,OAAO,CAAC,WAAW,CAAsF;IAEzG;;;OAGG;IACH,MAAM,CAAC,UAAU,IAAI,MAAM;IAQ3B;;;OAGG;IACH,MAAM,CAAC,cAAc,IAAI,MAAM,EAAE;IAiCjC;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAkBrH;;OAEG;IACG,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;IAC9B,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;IAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAoBhF;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAM9C;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAOzC;;;;;;;;;;;;;;;;;;;;;OAqBG;cACa,QAAQ,CAAC,CAAC,EACxB,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,CAAC,CAAC;CAGd"}
|
package/dist/base.js
CHANGED
|
@@ -118,20 +118,26 @@ export class PhotonMCP {
|
|
|
118
118
|
}
|
|
119
119
|
/**
|
|
120
120
|
* Get all tool methods from this class
|
|
121
|
-
* Returns all public async methods except lifecycle hooks
|
|
121
|
+
* Returns all public async methods except lifecycle hooks and configuration methods
|
|
122
122
|
*/
|
|
123
123
|
static getToolMethods() {
|
|
124
124
|
const prototype = this.prototype;
|
|
125
125
|
const methods = [];
|
|
126
|
+
// Methods that are conventions, not tools
|
|
127
|
+
const conventionMethods = new Set([
|
|
128
|
+
'constructor',
|
|
129
|
+
'onInitialize', // Lifecycle hook
|
|
130
|
+
'onShutdown', // Lifecycle hook
|
|
131
|
+
'configure', // Configuration convention
|
|
132
|
+
'getConfig', // Configuration convention
|
|
133
|
+
]);
|
|
126
134
|
// Get all property names from prototype chain
|
|
127
135
|
let current = prototype;
|
|
128
136
|
while (current && current !== PhotonMCP.prototype) {
|
|
129
137
|
Object.getOwnPropertyNames(current).forEach((name) => {
|
|
130
|
-
// Skip
|
|
131
|
-
if (name
|
|
132
|
-
!
|
|
133
|
-
name !== 'onInitialize' &&
|
|
134
|
-
name !== 'onShutdown' &&
|
|
138
|
+
// Skip private methods (starting with _) and convention methods
|
|
139
|
+
if (!name.startsWith('_') &&
|
|
140
|
+
!conventionMethods.has(name) &&
|
|
135
141
|
typeof prototype[name] === 'function' &&
|
|
136
142
|
!methods.includes(name)) {
|
|
137
143
|
methods.push(name);
|
package/dist/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAA+B,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,OAAO,SAAS;IACpB;;;;;;;;;;;;;;;;;;;;OAoBG;IACO,IAAI,CAAC,IAAS;QACtB,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QAE1C,gDAAgD;QAChD,IAAI,KAAK,EAAE,aAAa,EAAE,CAAC;YACzB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,iFAAiF;QACjF,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,MAAM,CAAC,OAAO,CAAC;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;gBAC9B,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;gBAChD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;aAC9B,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACf,2CAA2C;gBAC3C,yBAAyB;gBACzB,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;oBAC7B,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD;;;OAGG;IACO,WAAW,CAAoB;IAEzC;;;OAGG;IACK,WAAW,GAA4E,IAAI,GAAG,EAAE,CAAC;IAEzG;;;OAGG;IACH,MAAM,CAAC,UAAU;QACf,OAAO,IAAI,CAAC,IAAI;aACb,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,iCAAiC;aACrD,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;aAC1B,WAAW,EAAE;aACb,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,sBAAsB;IAC9C,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,cAAc;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,8CAA8C;QAC9C,IAAI,OAAO,GAAG,SAAS,CAAC;QACxB,OAAO,OAAO,IAAI,OAAO,KAAK,SAAS,CAAC,SAAS,EAAE,CAAC;YAClD,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACnD,
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Photon Configuration Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides standard config storage for photons that implement the configure() convention.
|
|
5
|
+
* Config is stored at ~/.photon/{photonName}/config.json
|
|
6
|
+
*
|
|
7
|
+
* Usage in a Photon:
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { loadPhotonConfig, savePhotonConfig, getPhotonConfigPath } from '@portel/photon-core';
|
|
10
|
+
*
|
|
11
|
+
* export default class MyPhoton extends PhotonMCP {
|
|
12
|
+
* async configure(params: { apiKey: string }) {
|
|
13
|
+
* savePhotonConfig('my-photon', params);
|
|
14
|
+
* return { success: true, config: params };
|
|
15
|
+
* }
|
|
16
|
+
*
|
|
17
|
+
* async getConfig() {
|
|
18
|
+
* return loadPhotonConfig('my-photon');
|
|
19
|
+
* }
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Get the config directory for photons
|
|
25
|
+
* Default: ~/.photon/
|
|
26
|
+
*/
|
|
27
|
+
export declare function getPhotonConfigDir(): string;
|
|
28
|
+
/**
|
|
29
|
+
* Get the config file path for a specific photon
|
|
30
|
+
* @param photonName The photon name (kebab-case)
|
|
31
|
+
* @returns Path to config.json for this photon
|
|
32
|
+
*/
|
|
33
|
+
export declare function getPhotonConfigPath(photonName: string): string;
|
|
34
|
+
/**
|
|
35
|
+
* Load configuration for a photon
|
|
36
|
+
* @param photonName The photon name (kebab-case)
|
|
37
|
+
* @param defaults Default values if config doesn't exist
|
|
38
|
+
* @returns The config object or defaults
|
|
39
|
+
*/
|
|
40
|
+
export declare function loadPhotonConfig<T extends Record<string, any>>(photonName: string, defaults?: T): T;
|
|
41
|
+
/**
|
|
42
|
+
* Save configuration for a photon
|
|
43
|
+
* @param photonName The photon name (kebab-case)
|
|
44
|
+
* @param config The configuration object to save
|
|
45
|
+
*/
|
|
46
|
+
export declare function savePhotonConfig<T extends Record<string, any>>(photonName: string, config: T): void;
|
|
47
|
+
/**
|
|
48
|
+
* Check if a photon has been configured
|
|
49
|
+
* @param photonName The photon name (kebab-case)
|
|
50
|
+
* @returns true if config file exists
|
|
51
|
+
*/
|
|
52
|
+
export declare function hasPhotonConfig(photonName: string): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Delete configuration for a photon
|
|
55
|
+
* @param photonName The photon name (kebab-case)
|
|
56
|
+
*/
|
|
57
|
+
export declare function deletePhotonConfig(photonName: string): void;
|
|
58
|
+
/**
|
|
59
|
+
* List all configured photons
|
|
60
|
+
* @returns Array of photon names that have config
|
|
61
|
+
*/
|
|
62
|
+
export declare function listConfiguredPhotons(): string[];
|
|
63
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAMH;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAG9D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5D,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,CAAC,GACX,CAAC,CAkBH;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5D,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,CAAC,GACR,IAAI,CAUN;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAK3D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAehD"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Photon Configuration Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides standard config storage for photons that implement the configure() convention.
|
|
5
|
+
* Config is stored at ~/.photon/{photonName}/config.json
|
|
6
|
+
*
|
|
7
|
+
* Usage in a Photon:
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { loadPhotonConfig, savePhotonConfig, getPhotonConfigPath } from '@portel/photon-core';
|
|
10
|
+
*
|
|
11
|
+
* export default class MyPhoton extends PhotonMCP {
|
|
12
|
+
* async configure(params: { apiKey: string }) {
|
|
13
|
+
* savePhotonConfig('my-photon', params);
|
|
14
|
+
* return { success: true, config: params };
|
|
15
|
+
* }
|
|
16
|
+
*
|
|
17
|
+
* async getConfig() {
|
|
18
|
+
* return loadPhotonConfig('my-photon');
|
|
19
|
+
* }
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
import * as fs from 'fs';
|
|
24
|
+
import * as path from 'path';
|
|
25
|
+
import * as os from 'os';
|
|
26
|
+
/**
|
|
27
|
+
* Get the config directory for photons
|
|
28
|
+
* Default: ~/.photon/
|
|
29
|
+
*/
|
|
30
|
+
export function getPhotonConfigDir() {
|
|
31
|
+
return process.env.PHOTON_CONFIG_DIR || path.join(os.homedir(), '.photon');
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get the config file path for a specific photon
|
|
35
|
+
* @param photonName The photon name (kebab-case)
|
|
36
|
+
* @returns Path to config.json for this photon
|
|
37
|
+
*/
|
|
38
|
+
export function getPhotonConfigPath(photonName) {
|
|
39
|
+
const safeName = photonName.replace(/[^a-zA-Z0-9_-]/g, '_');
|
|
40
|
+
return path.join(getPhotonConfigDir(), safeName, 'config.json');
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Load configuration for a photon
|
|
44
|
+
* @param photonName The photon name (kebab-case)
|
|
45
|
+
* @param defaults Default values if config doesn't exist
|
|
46
|
+
* @returns The config object or defaults
|
|
47
|
+
*/
|
|
48
|
+
export function loadPhotonConfig(photonName, defaults) {
|
|
49
|
+
const configPath = getPhotonConfigPath(photonName);
|
|
50
|
+
try {
|
|
51
|
+
if (fs.existsSync(configPath)) {
|
|
52
|
+
const content = fs.readFileSync(configPath, 'utf-8');
|
|
53
|
+
const config = JSON.parse(content);
|
|
54
|
+
// Merge with defaults
|
|
55
|
+
return defaults ? { ...defaults, ...config } : config;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
// Log but don't throw - return defaults
|
|
60
|
+
if (process.env.PHOTON_DEBUG) {
|
|
61
|
+
console.error(`Failed to load config for ${photonName}:`, error);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return defaults || {};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Save configuration for a photon
|
|
68
|
+
* @param photonName The photon name (kebab-case)
|
|
69
|
+
* @param config The configuration object to save
|
|
70
|
+
*/
|
|
71
|
+
export function savePhotonConfig(photonName, config) {
|
|
72
|
+
const configPath = getPhotonConfigPath(photonName);
|
|
73
|
+
const configDir = path.dirname(configPath);
|
|
74
|
+
// Ensure directory exists
|
|
75
|
+
if (!fs.existsSync(configDir)) {
|
|
76
|
+
fs.mkdirSync(configDir, { recursive: true });
|
|
77
|
+
}
|
|
78
|
+
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Check if a photon has been configured
|
|
82
|
+
* @param photonName The photon name (kebab-case)
|
|
83
|
+
* @returns true if config file exists
|
|
84
|
+
*/
|
|
85
|
+
export function hasPhotonConfig(photonName) {
|
|
86
|
+
return fs.existsSync(getPhotonConfigPath(photonName));
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Delete configuration for a photon
|
|
90
|
+
* @param photonName The photon name (kebab-case)
|
|
91
|
+
*/
|
|
92
|
+
export function deletePhotonConfig(photonName) {
|
|
93
|
+
const configPath = getPhotonConfigPath(photonName);
|
|
94
|
+
if (fs.existsSync(configPath)) {
|
|
95
|
+
fs.unlinkSync(configPath);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* List all configured photons
|
|
100
|
+
* @returns Array of photon names that have config
|
|
101
|
+
*/
|
|
102
|
+
export function listConfiguredPhotons() {
|
|
103
|
+
const configDir = getPhotonConfigDir();
|
|
104
|
+
if (!fs.existsSync(configDir)) {
|
|
105
|
+
return [];
|
|
106
|
+
}
|
|
107
|
+
try {
|
|
108
|
+
return fs.readdirSync(configDir, { withFileTypes: true })
|
|
109
|
+
.filter(entry => entry.isDirectory())
|
|
110
|
+
.filter(entry => fs.existsSync(path.join(configDir, entry.name, 'config.json')))
|
|
111
|
+
.map(entry => entry.name);
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
return [];
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,6 +72,64 @@ export declare const fontWeight: {
|
|
|
72
72
|
readonly semibold: "600";
|
|
73
73
|
readonly bold: "700";
|
|
74
74
|
};
|
|
75
|
+
export declare const colorsDark: {
|
|
76
|
+
readonly surface: "#0d0d0d";
|
|
77
|
+
readonly surfaceContainer: "#1a1a1a";
|
|
78
|
+
readonly surfaceContainerHigh: "#262626";
|
|
79
|
+
readonly surfaceContainerHighest: "#333333";
|
|
80
|
+
readonly surfaceBright: "#f2f2f2";
|
|
81
|
+
readonly onSurface: "#e6e6e6";
|
|
82
|
+
readonly onSurfaceVariant: "#b3b3b3";
|
|
83
|
+
readonly onSurfaceMuted: "#808080";
|
|
84
|
+
readonly primary: "#79aef0";
|
|
85
|
+
readonly primaryContainer: "#00497d";
|
|
86
|
+
readonly onPrimary: "#001d36";
|
|
87
|
+
readonly onPrimaryContainer: "#d1e4ff";
|
|
88
|
+
readonly success: "#4cc760";
|
|
89
|
+
readonly successContainer: "#003910";
|
|
90
|
+
readonly onSuccess: "#002106";
|
|
91
|
+
readonly onSuccessContainer: "#98ffa0";
|
|
92
|
+
readonly warning: "#d89e00";
|
|
93
|
+
readonly warningContainer: "#402d00";
|
|
94
|
+
readonly onWarning: "#261900";
|
|
95
|
+
readonly onWarningContainer: "#ffdf9e";
|
|
96
|
+
readonly error: "#ff897d";
|
|
97
|
+
readonly errorContainer: "#690005";
|
|
98
|
+
readonly onError: "#410002";
|
|
99
|
+
readonly onErrorContainer: "#ffdad6";
|
|
100
|
+
readonly outline: "#4d4d4d";
|
|
101
|
+
readonly outlineVariant: "#333333";
|
|
102
|
+
readonly scrim: "rgba(0, 0, 0, 0.5)";
|
|
103
|
+
};
|
|
104
|
+
export declare const colorsLight: {
|
|
105
|
+
surface: "#ffffff";
|
|
106
|
+
surfaceContainer: "#f2f2f2";
|
|
107
|
+
surfaceContainerHigh: "#e6e6e6";
|
|
108
|
+
surfaceContainerHighest: "#cccccc";
|
|
109
|
+
surfaceBright: "#ffffff";
|
|
110
|
+
onSurface: "#1a1a1a";
|
|
111
|
+
onSurfaceVariant: "#4d4d4d";
|
|
112
|
+
onSurfaceMuted: "#808080";
|
|
113
|
+
primary: "#0061a4";
|
|
114
|
+
primaryContainer: "#d1e4ff";
|
|
115
|
+
onPrimary: "#ffffff";
|
|
116
|
+
onPrimaryContainer: "#001d36";
|
|
117
|
+
success: "#006e25";
|
|
118
|
+
successContainer: "#98ffa0";
|
|
119
|
+
onSuccess: "#ffffff";
|
|
120
|
+
onSuccessContainer: "#002106";
|
|
121
|
+
warning: "#7a5900";
|
|
122
|
+
warningContainer: "#ffdf9e";
|
|
123
|
+
onWarning: "#ffffff";
|
|
124
|
+
onWarningContainer: "#261900";
|
|
125
|
+
error: "#ba1a1a";
|
|
126
|
+
errorContainer: "#ffdad6";
|
|
127
|
+
onError: "#ffffff";
|
|
128
|
+
onErrorContainer: "#410002";
|
|
129
|
+
outline: "#808080";
|
|
130
|
+
outlineVariant: "#cccccc";
|
|
131
|
+
scrim: "rgba(0, 0, 0, 0.3)";
|
|
132
|
+
};
|
|
75
133
|
export declare const colors: {
|
|
76
134
|
readonly surface: "#0d0d0d";
|
|
77
135
|
readonly surfaceContainer: "#1a1a1a";
|
|
@@ -101,6 +159,9 @@ export declare const colors: {
|
|
|
101
159
|
readonly outlineVariant: "#333333";
|
|
102
160
|
readonly scrim: "rgba(0, 0, 0, 0.5)";
|
|
103
161
|
};
|
|
162
|
+
export type ThemeMode = 'light' | 'dark' | 'system';
|
|
163
|
+
export type ThemeColors = typeof colorsDark | typeof colorsLight;
|
|
164
|
+
export declare function getThemeColors(theme: 'light' | 'dark'): ThemeColors;
|
|
104
165
|
export declare const elevation: {
|
|
105
166
|
readonly '0': "none";
|
|
106
167
|
readonly '1': "0px 1px 2px 0px rgba(0, 0, 0, 0.30), 0px 1px 3px 1px rgba(0, 0, 0, 0.15)";
|
|
@@ -146,4 +207,9 @@ export declare const zIndex: {
|
|
|
146
207
|
readonly toast: "500";
|
|
147
208
|
};
|
|
148
209
|
export declare function generateTokensCSS(): string;
|
|
210
|
+
/**
|
|
211
|
+
* Get theme tokens as a flat object for MCP Apps ui/initialize
|
|
212
|
+
* Compatible with OpenAI Apps SDK and MCP Apps Extension (SEP-1865)
|
|
213
|
+
*/
|
|
214
|
+
export declare function getThemeTokens(theme: 'light' | 'dark'): Record<string, string>;
|
|
149
215
|
//# sourceMappingURL=tokens.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/design-system/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,eAAO,MAAM,OAAO;;;;;;;;;;;CAYV,CAAC;AAGX,eAAO,MAAM,cAAc;;;;;;;;CAQjB,CAAC;AAMX,eAAO,MAAM,UAAU;;;CAGb,CAAC;AAEX,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;CAyBX,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;CAgBb,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAoFX,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/design-system/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,eAAO,MAAM,OAAO;;;;;;;;;;;CAYV,CAAC;AAGX,eAAO,MAAM,cAAc;;;;;;;;CAQjB,CAAC;AAMX,eAAO,MAAM,UAAU;;;CAGb,CAAC;AAEX,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;CAyBX,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;CAgBb,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAoFX,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Cb,CAAC;AAGX,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CvB,CAAC;AAGF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAa,CAAC;AAGjC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAGpD,MAAM,MAAM,WAAW,GAAG,OAAO,UAAU,GAAG,OAAO,WAAW,CAAC;AAGjE,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,WAAW,CAEnE;AAMD,eAAO,MAAM,SAAS;;;;;;;CAOZ,CAAC;AAMX,eAAO,MAAM,MAAM;;;;;;;CAOT,CAAC;AAMX,eAAO,MAAM,QAAQ;;;;;;CAMX,CAAC;AAEX,eAAO,MAAM,MAAM;;;;;;;CAOT,CAAC;AAMX,eAAO,MAAM,WAAW;;;;CAId,CAAC;AAMX,eAAO,MAAM,MAAM;;;;;;;CAOT,CAAC;AAuDX,wBAAgB,iBAAiB,IAAI,MAAM,CA2H1C;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAuO9E"}
|