lynx-console 0.0.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.
Files changed (60) hide show
  1. package/dist/assets/src/components/BottomSheet.css.ts.vanilla-D-1A77Ik.css +83 -0
  2. package/dist/assets/src/components/ConsolePanel.css.ts.vanilla-B3avfSlI.css +246 -0
  3. package/dist/assets/src/components/FloatingButton.css.ts.vanilla-rPj35oLW.css +55 -0
  4. package/dist/assets/src/components/NetworkPanel.css.ts.vanilla-DFMduT0T.css +247 -0
  5. package/dist/assets/src/components/PerformancePanel.css.ts.vanilla-D35LuXlW.css +216 -0
  6. package/dist/assets/src/components/Tabs.css.ts.vanilla-DD7L2oXt.css +50 -0
  7. package/dist/index.cjs +1058 -0
  8. package/dist/index.css +466 -0
  9. package/dist/index.css.map +1 -0
  10. package/dist/index.d.cts +17 -0
  11. package/dist/index.d.cts.map +1 -0
  12. package/dist/index.d.mts +17 -0
  13. package/dist/index.d.mts.map +1 -0
  14. package/dist/index.mjs +1059 -0
  15. package/dist/index.mjs.map +1 -0
  16. package/dist/setup.cjs +377 -0
  17. package/dist/setup.d.cts +15 -0
  18. package/dist/setup.d.cts.map +1 -0
  19. package/dist/setup.d.mts +15 -0
  20. package/dist/setup.d.mts.map +1 -0
  21. package/dist/setup.mjs +374 -0
  22. package/dist/setup.mjs.map +1 -0
  23. package/package.json +51 -0
  24. package/src/components/BottomSheet.css.ts +93 -0
  25. package/src/components/BottomSheet.tsx +142 -0
  26. package/src/components/ConsolePanel.css.ts +261 -0
  27. package/src/components/ConsolePanel.tsx +41 -0
  28. package/src/components/FloatingButton.css.ts +62 -0
  29. package/src/components/FloatingButton.tsx +37 -0
  30. package/src/components/LogPanel.tsx +241 -0
  31. package/src/components/NetworkDetailSection.tsx +42 -0
  32. package/src/components/NetworkPanel.css.ts +280 -0
  33. package/src/components/NetworkPanel.tsx +222 -0
  34. package/src/components/PerformancePanel.css.ts +224 -0
  35. package/src/components/PerformancePanel.tsx +209 -0
  36. package/src/components/Tabs.css.ts +66 -0
  37. package/src/components/Tabs.tsx +81 -0
  38. package/src/globals.d.ts +9 -0
  39. package/src/hooks/index.ts +3 -0
  40. package/src/hooks/useConsole.ts +35 -0
  41. package/src/hooks/useNetwork.ts +36 -0
  42. package/src/hooks/usePerformance.ts +39 -0
  43. package/src/index.tsx +110 -0
  44. package/src/setup/_setupMainThreadConsole.ts +80 -0
  45. package/src/setup/index.ts +4 -0
  46. package/src/setup/setupLogMonitor.ts +78 -0
  47. package/src/setup/setupMainThreadConsole.ts +34 -0
  48. package/src/setup/setupNetworkMonitor.ts +247 -0
  49. package/src/setup/setupPerformanceMonitor.ts +70 -0
  50. package/src/shared/ensureConsoleStructure.ts +20 -0
  51. package/src/styles/getDimensionValue.ts +7 -0
  52. package/src/styles/global.css.ts +10 -0
  53. package/src/styles/tokens.json +80 -0
  54. package/src/styles/typography.ts +25 -0
  55. package/src/styles/vars/color.ts +228 -0
  56. package/src/styles/vars/dimension.ts +79 -0
  57. package/src/styles/vars/index.css +463 -0
  58. package/src/styles/vars/index.ts +22 -0
  59. package/src/styles/vars/radius.ts +12 -0
  60. package/src/types.ts +96 -0
@@ -0,0 +1,247 @@
1
+ import { stringify } from "javascript-stringify";
2
+ import { ensureConsoleStructure } from "../shared/ensureConsoleStructure";
3
+ import type { NetworkEntry } from "../types";
4
+
5
+ const generateNetworkId = (): string => {
6
+ return `network-${Date.now()}-${Math.random()}`;
7
+ };
8
+
9
+ const extractUrl = (input: RequestInfo | URL): string => {
10
+ if (typeof input === "string") return input;
11
+ if (input instanceof URL) return input.href;
12
+ return (input as Request).url;
13
+ };
14
+
15
+ const extractMethod = (
16
+ input: RequestInfo | URL,
17
+ init?: RequestInit,
18
+ ): string | undefined => {
19
+ if (init?.method) return init.method;
20
+ if (typeof input === "object" && "method" in input) {
21
+ return (input as Request).method;
22
+ }
23
+ return "GET";
24
+ };
25
+
26
+ const extractHeaders = (
27
+ headers: HeadersInit | undefined,
28
+ ): Record<string, string> => {
29
+ const result: Record<string, string> = {};
30
+ if (!headers) return result;
31
+
32
+ try {
33
+ if (headers instanceof Headers) {
34
+ headers.forEach((value, key) => {
35
+ result[key] = value;
36
+ });
37
+ } else if (Array.isArray(headers)) {
38
+ headers.forEach(([key, value]) => {
39
+ result[key] = value;
40
+ });
41
+ } else {
42
+ Object.entries(headers).forEach(([key, value]) => {
43
+ result[key] = value;
44
+ });
45
+ }
46
+ } catch (error) {
47
+ console.error("[LynxConsole] Failed to extract headers:", error);
48
+ }
49
+
50
+ return result;
51
+ };
52
+
53
+ const mergeRequestHeaders = (
54
+ input: RequestInfo | URL,
55
+ init?: RequestInit,
56
+ ): Record<string, string> => {
57
+ const merged: Record<string, string> = {};
58
+
59
+ // Request 객체나 URL 객체에서 헤더 추출
60
+ if (typeof input === "object" && "headers" in input) {
61
+ Object.assign(merged, extractHeaders(input.headers as HeadersInit));
62
+ }
63
+
64
+ // RequestInit에서 헤더 추출 (나중 값이 우선)
65
+ if (init?.headers) {
66
+ Object.assign(merged, extractHeaders(init.headers));
67
+ }
68
+
69
+ return merged;
70
+ };
71
+
72
+ const addNetworkEntry = (entry: NetworkEntry): void => {
73
+ const state = globalThis.__LYNX_CONSOLE__?.state;
74
+ if (!state?.networks || !state?.networksMap || !state?.networkListeners) {
75
+ console.error(
76
+ "[LynxConsole] Cannot add network entry: Network monitor not initialized. Call initNetworkMonitor() first.",
77
+ );
78
+ return;
79
+ }
80
+
81
+ state.networks.push(entry);
82
+ state.networksMap.set(entry.id, entry);
83
+
84
+ state.networkListeners.forEach((listener) => {
85
+ listener(entry);
86
+ });
87
+ };
88
+
89
+ const updateNetworkEntry = (
90
+ id: string,
91
+ updates: Partial<NetworkEntry>,
92
+ ): void => {
93
+ const state = globalThis.__LYNX_CONSOLE__?.state;
94
+ if (!state?.networks || !state?.networksMap || !state?.networkListeners) {
95
+ console.error(
96
+ "[LynxConsole] Cannot update network entry: Network monitor not initialized. Call initNetworkMonitor() first.",
97
+ );
98
+ return;
99
+ }
100
+
101
+ const existingEntry = state.networksMap.get(id);
102
+ if (!existingEntry) {
103
+ console.error(
104
+ `[LynxConsole] Cannot update network entry: Entry with id '${id}' not found.`,
105
+ );
106
+ return;
107
+ }
108
+
109
+ const updatedEntry = { ...existingEntry, ...updates };
110
+
111
+ const index = state.networks.findIndex((entry) => entry.id === id);
112
+ if (index !== -1) {
113
+ state.networks[index] = updatedEntry;
114
+ }
115
+
116
+ state.networksMap.set(id, updatedEntry);
117
+
118
+ state.networkListeners.forEach((listener) => {
119
+ listener(updatedEntry);
120
+ });
121
+ };
122
+
123
+ export const initNetworkMonitor = () => {
124
+ if (!lynx.fetch) {
125
+ console.warn(
126
+ "[LynxConsole] lynx.fetch not available, skipping network monitor",
127
+ );
128
+ return;
129
+ }
130
+
131
+ const { state } = ensureConsoleStructure();
132
+
133
+ if (state.networks !== undefined) {
134
+ console.warn("[LynxConsole] Network monitor already initialized");
135
+ return;
136
+ }
137
+
138
+ type NetworkListener = (entry: NetworkEntry) => void;
139
+ state.networks = [];
140
+ state.networksMap = new Map();
141
+ state.networkListeners = new Set();
142
+ state.subscribeNetwork = (listener: NetworkListener) => {
143
+ state.networkListeners?.add(listener);
144
+ return () => {
145
+ state.networkListeners?.delete(listener);
146
+ };
147
+ };
148
+
149
+ const originalFetch = fetch.bind(lynx);
150
+
151
+ const monitoredFetch = async (
152
+ input: RequestInfo | URL,
153
+ init?: RequestInit,
154
+ ): Promise<Response> => {
155
+ const id = generateNetworkId();
156
+ const startTime = Date.now();
157
+ const url = extractUrl(input);
158
+ const method = extractMethod(input, init);
159
+
160
+ const requestHeaders = mergeRequestHeaders(input, init);
161
+
162
+ // Request body 처리
163
+ let requestBody: string | undefined;
164
+ if (init?.body) {
165
+ if (typeof init.body === "string") {
166
+ requestBody = init.body;
167
+ } else if (init.body instanceof URLSearchParams) {
168
+ requestBody = init.body.toString();
169
+ } else {
170
+ // Lynx가 지원하지 않는 타입이거나 알 수 없는 타입
171
+ requestBody = String(init.body);
172
+ }
173
+ }
174
+
175
+ addNetworkEntry({
176
+ id,
177
+ url,
178
+ method: method || "default",
179
+ status: "pending",
180
+ startTime,
181
+ requestHeaders,
182
+ requestBody: requestBody ?? "",
183
+ });
184
+
185
+ try {
186
+ const response = await originalFetch(input, init);
187
+ const endTime = Date.now();
188
+
189
+ const responseHeaders: Record<string, string> = {};
190
+ response.headers.forEach((value, key) => {
191
+ responseHeaders[key] = value;
192
+ });
193
+
194
+ const clonedResponse = response.clone();
195
+ let responseBody: string | undefined;
196
+
197
+ try {
198
+ const headerMap: Record<string, string> = {};
199
+ response.headers.forEach((value, key) => {
200
+ headerMap[key.toLowerCase()] = value;
201
+ });
202
+
203
+ const contentType = headerMap["content-type"];
204
+ if (contentType?.includes("application/json")) {
205
+ const json = await clonedResponse.json();
206
+ responseBody = stringify(json, null, 2, { references: true }) ?? "";
207
+ } else if (contentType?.includes("text")) {
208
+ responseBody = await clonedResponse.text();
209
+ }
210
+ } catch (error) {
211
+ responseBody = `[Unable to read response body] ${error}`;
212
+ console.error("[LynxConsole] Error reading response body:", error);
213
+ }
214
+
215
+ updateNetworkEntry(id, {
216
+ status: "success",
217
+ statusCode: response.status,
218
+ statusText: response.statusText,
219
+ endTime,
220
+ duration: endTime - startTime,
221
+ responseHeaders,
222
+ responseBody: responseBody ?? "",
223
+ });
224
+
225
+ return response;
226
+ } catch (error) {
227
+ const endTime = Date.now();
228
+ updateNetworkEntry(id, {
229
+ status: "error",
230
+ endTime,
231
+ duration: endTime - startTime,
232
+ error: error instanceof Error ? error.message : String(error),
233
+ });
234
+ throw error;
235
+ }
236
+ };
237
+
238
+ // biome-ignore lint/suspicious/noTsIgnore: to assign fetch to global functionfetch
239
+ // @ts-ignore
240
+ // biome-ignore lint/suspicious/noGlobalAssign: to assign fetch to global functionfetch fetch
241
+ fetch = monitoredFetch as typeof fetch;
242
+
243
+ //fetch 대신 lynx.fetch를 사용하는 경우에도 모니터링 되도록 설정
244
+ lynx.fetch = monitoredFetch as typeof lynx.fetch;
245
+
246
+ console.log("[LynxConsole] ✅ Network monitoring initialized");
247
+ };
@@ -0,0 +1,70 @@
1
+ import { ensureConsoleStructure } from "../shared/ensureConsoleStructure";
2
+ import type { PerformanceEntryData, PerformanceEntryType } from "../types";
3
+
4
+ type PerformanceListener = (entry: PerformanceEntryData) => void;
5
+
6
+ const generatePerformanceId = (): string => {
7
+ return `performance-${Date.now()}-${Math.random()}`;
8
+ };
9
+
10
+ const addPerformanceEntry = (entry: PerformanceEntryData): void => {
11
+ const state = globalThis.__LYNX_CONSOLE__?.state;
12
+ if (!state?.performances || !state?.performanceListeners) {
13
+ console.error(
14
+ "[LynxConsole] Cannot add performance entry: Performance monitor not initialized. Call initPerformanceMonitor() first.",
15
+ );
16
+ return;
17
+ }
18
+
19
+ state.performances.push(entry);
20
+ state.performanceListeners.forEach((listener) => {
21
+ listener(entry);
22
+ });
23
+ };
24
+
25
+ export const initPerformanceMonitor = () => {
26
+ "background only";
27
+
28
+ if (!lynx.performance) {
29
+ console.warn(
30
+ "[LynxConsole] lynx.performance not available, skipping performance monitor",
31
+ );
32
+ return;
33
+ }
34
+
35
+ const { state } = ensureConsoleStructure();
36
+
37
+ if (state.performances !== undefined) {
38
+ console.warn("[LynxConsole] Performance monitor already initialized");
39
+ return;
40
+ }
41
+
42
+ state.performances = [];
43
+ state.performanceListeners = new Set();
44
+ state.subscribePerformance = (listener: PerformanceListener) => {
45
+ state.performanceListeners?.add(listener);
46
+ return () => {
47
+ state.performanceListeners?.delete(listener);
48
+ };
49
+ };
50
+
51
+ const observer = lynx.performance.createObserver((entry) => {
52
+ const performanceEntry: PerformanceEntryData = {
53
+ id: generatePerformanceId(),
54
+ entryType: entry.entryType as PerformanceEntryType,
55
+ name: entry.name,
56
+ timestamp: Date.now(),
57
+ rawEntry: entry,
58
+ };
59
+
60
+ addPerformanceEntry(performanceEntry);
61
+ });
62
+
63
+ observer.observe([
64
+ "pipeline", // LoadBundleEntry
65
+ "init", // InitLynxviewEntry
66
+ "metric", // MetricEntry
67
+ ]);
68
+
69
+ console.log("[LynxConsole] ✅ Performance monitoring initialized");
70
+ };
@@ -0,0 +1,20 @@
1
+ type LynxConsole = NonNullable<typeof globalThis.__LYNX_CONSOLE__>;
2
+ type ConsoleState = NonNullable<LynxConsole["state"]>;
3
+
4
+ export const ensureConsoleStructure = (): {
5
+ lynxConsole: LynxConsole;
6
+ state: ConsoleState;
7
+ } => {
8
+ if (!globalThis.__LYNX_CONSOLE__) {
9
+ globalThis.__LYNX_CONSOLE__ = {};
10
+ }
11
+
12
+ if (!globalThis.__LYNX_CONSOLE__.state) {
13
+ globalThis.__LYNX_CONSOLE__.state = {};
14
+ }
15
+
16
+ return {
17
+ lynxConsole: globalThis.__LYNX_CONSOLE__,
18
+ state: globalThis.__LYNX_CONSOLE__.state,
19
+ };
20
+ };
@@ -0,0 +1,7 @@
1
+ import { dimensions } from "./tokens.json";
2
+
3
+ export type DimensionTokenId = keyof typeof dimensions;
4
+
5
+ export function getDimensionValue(tokenId: DimensionTokenId) {
6
+ return dimensions[tokenId];
7
+ }
@@ -0,0 +1,10 @@
1
+ import { globalStyle } from "@vanilla-extract/css";
2
+ import { vars } from "./vars";
3
+
4
+ globalStyle("page", {
5
+ backgroundColor: vars.$color.bg.layerDefault,
6
+ fontSize: "16px",
7
+ });
8
+ globalStyle("text", {
9
+ color: vars.$color.fg.neutral,
10
+ });
@@ -0,0 +1,80 @@
1
+ {
2
+ "dimensions": {
3
+ "$dimension.x0_5": "2px",
4
+ "$dimension.x1": "4px",
5
+ "$dimension.x1_5": "6px",
6
+ "$dimension.x2": "8px",
7
+ "$dimension.x2_5": "10px",
8
+ "$dimension.x3": "12px",
9
+ "$dimension.x3_5": "14px",
10
+ "$dimension.x4": "16px",
11
+ "$dimension.x4_5": "18px",
12
+ "$dimension.x5": "20px",
13
+ "$dimension.x6": "24px",
14
+ "$dimension.x7": "28px",
15
+ "$dimension.x8": "32px",
16
+ "$dimension.x9": "36px",
17
+ "$dimension.x10": "40px",
18
+ "$dimension.x12": "48px",
19
+ "$dimension.x13": "52px",
20
+ "$dimension.x14": "56px",
21
+ "$dimension.x16": "64px",
22
+ "$dimension.spacing-x.between-chips": "8px",
23
+ "$dimension.spacing-x.global-gutter": "16px",
24
+ "$dimension.spacing-y.component-default": "12px",
25
+ "$dimension.spacing-y.nav-to-title": "20px",
26
+ "$dimension.spacing-y.screen-bottom": "56px",
27
+ "$dimension.spacing-y.between-text": "6px",
28
+ "$font-size.t1": "0.6875rem",
29
+ "$font-size.t2": "0.75rem",
30
+ "$font-size.t3": "0.8125rem",
31
+ "$font-size.t4": "0.875rem",
32
+ "$font-size.t5": "1rem",
33
+ "$font-size.t6": "1.125rem",
34
+ "$font-size.t7": "1.25rem",
35
+ "$font-size.t8": "1.375rem",
36
+ "$font-size.t9": "1.5rem",
37
+ "$font-size.t10": "1.625rem",
38
+ "$font-size.t1-static": "11px",
39
+ "$font-size.t2-static": "12px",
40
+ "$font-size.t3-static": "13px",
41
+ "$font-size.t4-static": "14px",
42
+ "$font-size.t5-static": "16px",
43
+ "$font-size.t6-static": "18px",
44
+ "$font-size.t7-static": "20px",
45
+ "$font-size.t8-static": "22px",
46
+ "$font-size.t9-static": "24px",
47
+ "$font-size.t10-static": "26px",
48
+ "$line-height.t1": "0.9375rem",
49
+ "$line-height.t2": "1rem",
50
+ "$line-height.t3": "1.125rem",
51
+ "$line-height.t4": "1.1875rem",
52
+ "$line-height.t5": "1.375rem",
53
+ "$line-height.t6": "1.5rem",
54
+ "$line-height.t7": "1.6875rem",
55
+ "$line-height.t8": "1.875rem",
56
+ "$line-height.t9": "2rem",
57
+ "$line-height.t10": "2.1875rem",
58
+ "$line-height.t1-static": "15px",
59
+ "$line-height.t2-static": "16px",
60
+ "$line-height.t3-static": "18px",
61
+ "$line-height.t4-static": "19px",
62
+ "$line-height.t5-static": "22px",
63
+ "$line-height.t6-static": "24px",
64
+ "$line-height.t7-static": "27px",
65
+ "$line-height.t8-static": "30px",
66
+ "$line-height.t9-static": "32px",
67
+ "$line-height.t10-static": "35px",
68
+ "$radius.r0_5": "2px",
69
+ "$radius.r1": "4px",
70
+ "$radius.r1_5": "6px",
71
+ "$radius.r2": "8px",
72
+ "$radius.r2_5": "10px",
73
+ "$radius.r3": "12px",
74
+ "$radius.r3_5": "14px",
75
+ "$radius.r4": "16px",
76
+ "$radius.r5": "20px",
77
+ "$radius.r6": "24px",
78
+ "$radius.full": "9999px"
79
+ }
80
+ }
@@ -0,0 +1,25 @@
1
+ import { type DimensionTokenId, getDimensionValue } from "./getDimensionValue";
2
+ import { vars } from "./vars";
3
+
4
+ type TypographyTokenId =
5
+ Extract<
6
+ DimensionTokenId,
7
+ `$font-size.${string}`
8
+ > extends `$font-size.${infer U}`
9
+ ? U
10
+ : never;
11
+
12
+ export function typography(
13
+ tokenId: TypographyTokenId,
14
+ weight: "regular" | "medium" | "bold",
15
+ ) {
16
+ const fontSize = getDimensionValue(`$font-size.${tokenId}`);
17
+ const lineHeight = getDimensionValue(`$line-height.${tokenId}`);
18
+ const fontWeight = vars.$fontWeight[weight];
19
+
20
+ return {
21
+ fontSize,
22
+ lineHeight,
23
+ fontWeight,
24
+ };
25
+ }
@@ -0,0 +1,228 @@
1
+ // Color Palette
2
+ export const palette = {
3
+ blue100: "var(--seed-color-palette-blue-100)",
4
+ blue200: "var(--seed-color-palette-blue-200)",
5
+ blue300: "var(--seed-color-palette-blue-300)",
6
+ blue400: "var(--seed-color-palette-blue-400)",
7
+ blue500: "var(--seed-color-palette-blue-500)",
8
+ blue600: "var(--seed-color-palette-blue-600)",
9
+ blue700: "var(--seed-color-palette-blue-700)",
10
+ blue800: "var(--seed-color-palette-blue-800)",
11
+ blue900: "var(--seed-color-palette-blue-900)",
12
+ blue1000: "var(--seed-color-palette-blue-1000)",
13
+
14
+ carrot100: "var(--seed-color-palette-carrot-100)",
15
+ carrot200: "var(--seed-color-palette-carrot-200)",
16
+ carrot300: "var(--seed-color-palette-carrot-300)",
17
+ carrot400: "var(--seed-color-palette-carrot-400)",
18
+ carrot500: "var(--seed-color-palette-carrot-500)",
19
+ carrot600: "var(--seed-color-palette-carrot-600)",
20
+ carrot700: "var(--seed-color-palette-carrot-700)",
21
+ carrot800: "var(--seed-color-palette-carrot-800)",
22
+ carrot900: "var(--seed-color-palette-carrot-900)",
23
+ carrot1000: "var(--seed-color-palette-carrot-1000)",
24
+
25
+ gray00: "var(--seed-color-palette-gray-00)",
26
+ gray100: "var(--seed-color-palette-gray-100)",
27
+ gray200: "var(--seed-color-palette-gray-200)",
28
+ gray300: "var(--seed-color-palette-gray-300)",
29
+ gray400: "var(--seed-color-palette-gray-400)",
30
+ gray500: "var(--seed-color-palette-gray-500)",
31
+ gray600: "var(--seed-color-palette-gray-600)",
32
+ gray700: "var(--seed-color-palette-gray-700)",
33
+ gray800: "var(--seed-color-palette-gray-800)",
34
+ gray900: "var(--seed-color-palette-gray-900)",
35
+ gray1000: "var(--seed-color-palette-gray-1000)",
36
+
37
+ green100: "var(--seed-color-palette-green-100)",
38
+ green200: "var(--seed-color-palette-green-200)",
39
+ green300: "var(--seed-color-palette-green-300)",
40
+ green400: "var(--seed-color-palette-green-400)",
41
+ green500: "var(--seed-color-palette-green-500)",
42
+ green600: "var(--seed-color-palette-green-600)",
43
+ green700: "var(--seed-color-palette-green-700)",
44
+ green800: "var(--seed-color-palette-green-800)",
45
+ green900: "var(--seed-color-palette-green-900)",
46
+ green1000: "var(--seed-color-palette-green-1000)",
47
+
48
+ purple100: "var(--seed-color-palette-purple-100)",
49
+ purple200: "var(--seed-color-palette-purple-200)",
50
+ purple300: "var(--seed-color-palette-purple-300)",
51
+ purple400: "var(--seed-color-palette-purple-400)",
52
+ purple500: "var(--seed-color-palette-purple-500)",
53
+ purple600: "var(--seed-color-palette-purple-600)",
54
+ purple700: "var(--seed-color-palette-purple-700)",
55
+ purple800: "var(--seed-color-palette-purple-800)",
56
+ purple900: "var(--seed-color-palette-purple-900)",
57
+ purple1000: "var(--seed-color-palette-purple-1000)",
58
+
59
+ red100: "var(--seed-color-palette-red-100)",
60
+ red200: "var(--seed-color-palette-red-200)",
61
+ red300: "var(--seed-color-palette-red-300)",
62
+ red400: "var(--seed-color-palette-red-400)",
63
+ red500: "var(--seed-color-palette-red-500)",
64
+ red600: "var(--seed-color-palette-red-600)",
65
+ red700: "var(--seed-color-palette-red-700)",
66
+ red800: "var(--seed-color-palette-red-800)",
67
+ red900: "var(--seed-color-palette-red-900)",
68
+ red1000: "var(--seed-color-palette-red-1000)",
69
+
70
+ staticBlack: "var(--seed-color-palette-static-black)",
71
+ staticWhite: "var(--seed-color-palette-static-white)",
72
+ staticBlackAlpha100: "var(--seed-color-palette-static-black-alpha-100)",
73
+ staticBlackAlpha200: "var(--seed-color-palette-static-black-alpha-200)",
74
+ staticBlackAlpha300: "var(--seed-color-palette-static-black-alpha-300)",
75
+ staticBlackAlpha400: "var(--seed-color-palette-static-black-alpha-400)",
76
+ staticBlackAlpha500: "var(--seed-color-palette-static-black-alpha-500)",
77
+ staticBlackAlpha600: "var(--seed-color-palette-static-black-alpha-600)",
78
+ staticBlackAlpha700: "var(--seed-color-palette-static-black-alpha-700)",
79
+ staticBlackAlpha800: "var(--seed-color-palette-static-black-alpha-800)",
80
+ staticBlackAlpha900: "var(--seed-color-palette-static-black-alpha-900)",
81
+ staticBlackAlpha1000: "var(--seed-color-palette-static-black-alpha-1000)",
82
+ staticWhiteAlpha50: "var(--seed-color-palette-static-white-alpha-50)",
83
+ staticWhiteAlpha100: "var(--seed-color-palette-static-white-alpha-100)",
84
+ staticWhiteAlpha200: "var(--seed-color-palette-static-white-alpha-200)",
85
+ staticWhiteAlpha300: "var(--seed-color-palette-static-white-alpha-300)",
86
+ staticWhiteAlpha400: "var(--seed-color-palette-static-white-alpha-400)",
87
+ staticWhiteAlpha500: "var(--seed-color-palette-static-white-alpha-500)",
88
+ staticWhiteAlpha600: "var(--seed-color-palette-static-white-alpha-600)",
89
+ staticWhiteAlpha700: "var(--seed-color-palette-static-white-alpha-700)",
90
+ staticWhiteAlpha800: "var(--seed-color-palette-static-white-alpha-800)",
91
+ staticWhiteAlpha900: "var(--seed-color-palette-static-white-alpha-900)",
92
+ staticWhiteAlpha1000: "var(--seed-color-palette-static-white-alpha-1000)",
93
+
94
+ yellow100: "var(--seed-color-palette-yellow-100)",
95
+ yellow200: "var(--seed-color-palette-yellow-200)",
96
+ yellow300: "var(--seed-color-palette-yellow-300)",
97
+ yellow400: "var(--seed-color-palette-yellow-400)",
98
+ yellow500: "var(--seed-color-palette-yellow-500)",
99
+ yellow600: "var(--seed-color-palette-yellow-600)",
100
+ yellow700: "var(--seed-color-palette-yellow-700)",
101
+ yellow800: "var(--seed-color-palette-yellow-800)",
102
+ yellow900: "var(--seed-color-palette-yellow-900)",
103
+ yellow1000: "var(--seed-color-palette-yellow-1000)",
104
+ };
105
+
106
+ // Foreground Colors
107
+ export const fg = {
108
+ neutral: "var(--seed-color-fg-neutral)",
109
+ placeholder: "var(--seed-color-fg-placeholder)",
110
+ disabled: "var(--seed-color-fg-disabled)",
111
+ brand: "var(--seed-color-fg-brand)",
112
+ informative: "var(--seed-color-fg-informative)",
113
+ critical: "var(--seed-color-fg-critical)",
114
+ positive: "var(--seed-color-fg-positive)",
115
+ warning: "var(--seed-color-fg-warning)",
116
+ brandContrast: "var(--seed-color-fg-brand-contrast)",
117
+ criticalContrast: "var(--seed-color-fg-critical-contrast)",
118
+ informativeContrast: "var(--seed-color-fg-informative-contrast)",
119
+ neutralMuted: "var(--seed-color-fg-neutral-muted)",
120
+ neutralSubtle: "var(--seed-color-fg-neutral-subtle)",
121
+ neutralInverted: "var(--seed-color-fg-neutral-inverted)",
122
+ positiveContrast: "var(--seed-color-fg-positive-contrast)",
123
+ warningContrast: "var(--seed-color-fg-warning-contrast)",
124
+ };
125
+
126
+ // Background Colors
127
+ export const bg = {
128
+ overlay: "var(--seed-color-bg-overlay)",
129
+ disabled: "var(--seed-color-bg-disabled)",
130
+ brandWeak: "var(--seed-color-bg-brand-weak)",
131
+ brandSolid: "var(--seed-color-bg-brand-solid)",
132
+ brandSolidPressed: "var(--seed-color-bg-brand-solid-pressed)",
133
+ brandWeakPressed: "var(--seed-color-bg-brand-weak-pressed)",
134
+ criticalWeak: "var(--seed-color-bg-critical-weak)",
135
+ criticalSolid: "var(--seed-color-bg-critical-solid)",
136
+ criticalSolidPressed: "var(--seed-color-bg-critical-solid-pressed)",
137
+ criticalWeakPressed: "var(--seed-color-bg-critical-weak-pressed)",
138
+ informativeWeak: "var(--seed-color-bg-informative-weak)",
139
+ informativeSolid: "var(--seed-color-bg-informative-solid)",
140
+ informativeSolidPressed: "var(--seed-color-bg-informative-solid-pressed)",
141
+ informativeWeakPressed: "var(--seed-color-bg-informative-weak-pressed)",
142
+ layerBasement: "var(--seed-color-bg-layer-basement)",
143
+ layerDefault: "var(--seed-color-bg-layer-default)",
144
+ layerFill: "var(--seed-color-bg-layer-fill)",
145
+ layerFloating: "var(--seed-color-bg-layer-floating)",
146
+ layerDefaultPressed: "var(--seed-color-bg-layer-default-pressed)",
147
+ layerFloatingPressed: "var(--seed-color-bg-layer-floating-pressed)",
148
+ magicWeak: "var(--seed-color-bg-magic-weak)",
149
+ neutralWeak: "var(--seed-color-bg-neutral-weak)",
150
+ neutralInverted: "var(--seed-color-bg-neutral-inverted)",
151
+ neutralSolid: "var(--seed-color-bg-neutral-solid)",
152
+ neutralInvertedPressed: "var(--seed-color-bg-neutral-inverted-pressed)",
153
+ neutralSolidMuted: "var(--seed-color-bg-neutral-solid-muted)",
154
+ neutralSolidMutedPressed: "var(--seed-color-bg-neutral-solid-muted-pressed)",
155
+ neutralWeakPressed: "var(--seed-color-bg-neutral-weak-pressed)",
156
+ overlayMuted: "var(--seed-color-bg-overlay-muted)",
157
+ positiveWeak: "var(--seed-color-bg-positive-weak)",
158
+ positiveSolid: "var(--seed-color-bg-positive-solid)",
159
+ positiveSolidPressed: "var(--seed-color-bg-positive-solid-pressed)",
160
+ positiveWeakPressed: "var(--seed-color-bg-positive-weak-pressed)",
161
+ warningWeak: "var(--seed-color-bg-warning-weak)",
162
+ warningSolid: "var(--seed-color-bg-warning-solid)",
163
+ warningSolidPressed: "var(--seed-color-bg-warning-solid-pressed)",
164
+ warningWeakPressed: "var(--seed-color-bg-warning-weak-pressed)",
165
+ };
166
+
167
+ // Stroke Colors
168
+ export const stroke = {
169
+ brandWeak: "var(--seed-color-stroke-brand-weak)",
170
+ brandSolid: "var(--seed-color-stroke-brand-solid)",
171
+ criticalWeak: "var(--seed-color-stroke-critical-weak)",
172
+ criticalSolid: "var(--seed-color-stroke-critical-solid)",
173
+ informativeWeak: "var(--seed-color-stroke-informative-weak)",
174
+ informativeSolid: "var(--seed-color-stroke-informative-solid)",
175
+ neutralContrast: "var(--seed-color-stroke-neutral-contrast)",
176
+ neutralSolid: "var(--seed-color-stroke-neutral-solid)",
177
+ neutralWeak: "var(--seed-color-stroke-neutral-weak)",
178
+ neutralMuted: "var(--seed-color-stroke-neutral-muted)",
179
+ neutralSubtle: "var(--seed-color-stroke-neutral-subtle)",
180
+ positiveWeak: "var(--seed-color-stroke-positive-weak)",
181
+ positiveSolid: "var(--seed-color-stroke-positive-solid)",
182
+ warningWeak: "var(--seed-color-stroke-warning-weak)",
183
+ warningSolid: "var(--seed-color-stroke-warning-solid)",
184
+ };
185
+
186
+ // Manner Temp Colors
187
+ export const mannerTemp = {
188
+ l1: {
189
+ text: "var(--seed-color-manner-temp-l1-text)",
190
+ bg: "var(--seed-color-manner-temp-l1-bg)",
191
+ },
192
+ l2: {
193
+ text: "var(--seed-color-manner-temp-l2-text)",
194
+ bg: "var(--seed-color-manner-temp-l2-bg)",
195
+ },
196
+ l3: {
197
+ text: "var(--seed-color-manner-temp-l3-text)",
198
+ bg: "var(--seed-color-manner-temp-l3-bg)",
199
+ },
200
+ l4: {
201
+ text: "var(--seed-color-manner-temp-l4-text)",
202
+ bg: "var(--seed-color-manner-temp-l4-bg)",
203
+ },
204
+ l5: {
205
+ text: "var(--seed-color-manner-temp-l5-text)",
206
+ bg: "var(--seed-color-manner-temp-l5-bg)",
207
+ },
208
+ l6: {
209
+ text: "var(--seed-color-manner-temp-l6-text)",
210
+ bg: "var(--seed-color-manner-temp-l6-bg)",
211
+ },
212
+ l7: {
213
+ text: "var(--seed-color-manner-temp-l7-text)",
214
+ bg: "var(--seed-color-manner-temp-l7-bg)",
215
+ },
216
+ l8: {
217
+ text: "var(--seed-color-manner-temp-l8-text)",
218
+ bg: "var(--seed-color-manner-temp-l8-bg)",
219
+ },
220
+ l9: {
221
+ text: "var(--seed-color-manner-temp-l9-text)",
222
+ bg: "var(--seed-color-manner-temp-l9-bg)",
223
+ },
224
+ l10: {
225
+ text: "var(--seed-color-manner-temp-l10-text)",
226
+ bg: "var(--seed-color-manner-temp-l10-bg)",
227
+ },
228
+ };