@splenddev/kreativ-core 0.1.1 → 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.
- package/dist/chunk-5CYSF7C3.js +24 -0
- package/dist/chunk-5CYSF7C3.js.map +1 -0
- package/dist/chunk-OJSXALOI.js +352 -0
- package/dist/chunk-OJSXALOI.js.map +1 -0
- package/dist/chunk-RV5MKKBP.js +3 -0
- package/dist/chunk-RV5MKKBP.js.map +1 -0
- package/dist/hooks/index.d.ts +2 -12
- package/dist/hooks/index.js +3 -81
- package/dist/hooks/index.js.map +1 -1
- package/dist/index.d.ts +3 -5
- package/dist/index.js +4 -158
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +556 -4
- package/dist/types/index.js +1 -1
- package/dist/utils/index.d.ts +7 -2
- package/dist/utils/index.js +1 -150
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/common-1QyKLdTc.d.cts +0 -557
- package/dist/common-1QyKLdTc.d.ts +0 -557
- package/dist/hooks/index.cjs +0 -442
- package/dist/hooks/index.cjs.map +0 -1
- package/dist/hooks/index.d.cts +0 -127
- package/dist/index.cjs +0 -348
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -365
- package/dist/types/index.cjs +0 -4
- package/dist/types/index.cjs.map +0 -1
- package/dist/types/index.d.cts +0 -94
- package/dist/utils/index.cjs +0 -184
- package/dist/utils/index.cjs.map +0 -1
- package/dist/utils/index.d.cts +0 -59
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { createContext, useContext } from 'react';
|
|
2
|
+
|
|
3
|
+
// src/provider/ThemeContext.tsx
|
|
4
|
+
var ThemeContext = createContext(null);
|
|
5
|
+
|
|
6
|
+
// src/utils/assertProviderContext.ts
|
|
7
|
+
function assertProviderContext(ctx, hookName, providerName, packageName = "kreativ-core") {
|
|
8
|
+
if (ctx == null) {
|
|
9
|
+
throw new Error(
|
|
10
|
+
`[${packageName}] ${hookName}() must be used within a <${providerName}>. Did you forget to wrap your app with <${providerName}>? import { ${providerName} } from '${packageName}';`
|
|
11
|
+
);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// src/provider/useTheme.ts
|
|
16
|
+
function useTheme() {
|
|
17
|
+
const ctx = useContext(ThemeContext);
|
|
18
|
+
assertProviderContext(ctx, "useTheme", "ThemeProvider");
|
|
19
|
+
return ctx;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export { ThemeContext, useTheme };
|
|
23
|
+
//# sourceMappingURL=chunk-5CYSF7C3.js.map
|
|
24
|
+
//# sourceMappingURL=chunk-5CYSF7C3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/provider/ThemeContext.tsx","../src/utils/assertProviderContext.ts","../src/provider/useTheme.ts"],"names":[],"mappings":";;;AAcO,IAAM,YAAA,GAAe,cAAwC,IAAI;;;ACRjE,SAAS,qBAAA,CACd,GAAA,EACA,QAAA,EACA,YAAA,EACA,cAAc,cAAA,EACI;AAClB,EAAA,IAAI,OAAO,IAAA,EAAM;AACf,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,CAAA,CAAA,EAAI,WAAW,CAAA,EAAA,EAAK,QAAQ,CAAA,0BAAA,EAA6B,YAAY,CAAA,yCAAA,EAC1B,YAAY,CAAA,YAAA,EACzC,YAAY,CAAA,SAAA,EAAY,WAAW,CAAA,EAAA;AAAA,KACnD;AAAA,EACF;AACF;;;ACbO,SAAS,QAAA,GAAW;AACzB,EAAA,MAAM,GAAA,GAAM,WAAW,YAAY,CAAA;AACnC,EAAA,qBAAA,CAAsB,GAAA,EAAK,YAAY,eAAe,CAAA;AACtD,EAAA,OAAO,GAAA;AACT","file":"chunk-5CYSF7C3.js","sourcesContent":["\"use client\";\r\n\r\nimport { createContext } from \"react\";\r\nimport type { ColorMode, Theme, ResolvedTokens } from \"@/types/theme\";\r\n\r\nexport interface ThemeContextValue {\r\n theme: Theme;\r\n mode: ColorMode;\r\n resolvedMode: \"light\" | \"dark\";\r\n setMode: (mode: ColorMode) => void;\r\n fallbackSize: string;\r\n tokens: ResolvedTokens;\r\n}\r\n\r\nexport const ThemeContext = createContext<ThemeContextValue | null>(null);\r\n","\"use client\";\r\n\r\n/**\r\n * Throws a standardized \"used outside provider\" error.\r\n * Shared across all kreativ-core hooks so the message stays consistent.\r\n */\r\nexport function assertProviderContext<T>(\r\n ctx: T | null | undefined,\r\n hookName: string,\r\n providerName: string,\r\n packageName = \"kreativ-core\",\r\n): asserts ctx is T {\r\n if (ctx == null) {\r\n throw new Error(\r\n `[${packageName}] ${hookName}() must be used within a <${providerName}>. ` +\r\n `Did you forget to wrap your app with <${providerName}>? ` +\r\n `import { ${providerName} } from '${packageName}';`,\r\n );\r\n }\r\n}\r\n","\"use client\";\n\nimport { useContext } from \"react\";\nimport { ThemeContext } from \"@/provider/ThemeContext\";\nimport { assertProviderContext } from \"@/utils/assertProviderContext\";\n\nexport function useTheme() {\n const ctx = useContext(ThemeContext);\n assertProviderContext(ctx, \"useTheme\", \"ThemeProvider\");\n return ctx;\n}\n"]}
|
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
// src/utils/createComponent.tsx
|
|
4
|
+
function createComponent(config) {
|
|
5
|
+
const C = React.forwardRef(
|
|
6
|
+
config.render
|
|
7
|
+
);
|
|
8
|
+
if (config.displayName) C.displayName = config.displayName;
|
|
9
|
+
C.__kui = config.__kui;
|
|
10
|
+
return C;
|
|
11
|
+
}
|
|
12
|
+
function hasKuiMeta(value) {
|
|
13
|
+
return (typeof value === "function" || typeof value === "object" && value !== null) && "__kui" in value && typeof value.__kui === "object" && value.__kui !== null;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// src/utils/composeRefs.ts
|
|
17
|
+
function composeRefs(...refs) {
|
|
18
|
+
return (node) => {
|
|
19
|
+
for (const ref of refs) {
|
|
20
|
+
if (typeof ref === "function") ref(node);
|
|
21
|
+
else if (ref) ref.current = node;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// src/utils/createFromProps.ts
|
|
27
|
+
function createFromProps(input) {
|
|
28
|
+
return {
|
|
29
|
+
...input.providerDefaults,
|
|
30
|
+
...input.defaultProps,
|
|
31
|
+
...input.generatedProps,
|
|
32
|
+
...input.consumerProps
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// src/utils/responsive.ts
|
|
37
|
+
function isResponsiveValue(value) {
|
|
38
|
+
return typeof value === "object" && value !== null;
|
|
39
|
+
}
|
|
40
|
+
function resolveResponsiveValue(value) {
|
|
41
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
42
|
+
return {
|
|
43
|
+
base: value,
|
|
44
|
+
responsive: {}
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
const responsiveValue = value;
|
|
48
|
+
const { base, ...responsive } = responsiveValue;
|
|
49
|
+
return {
|
|
50
|
+
base,
|
|
51
|
+
responsive: Object.fromEntries(
|
|
52
|
+
Object.entries(responsive).filter(([, value2]) => value2 !== void 0)
|
|
53
|
+
)
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function toResponsiveClasses(value, resolve) {
|
|
57
|
+
const classes = [];
|
|
58
|
+
if (value.base !== void 0) {
|
|
59
|
+
classes.push(resolve(value.base));
|
|
60
|
+
}
|
|
61
|
+
for (const [breakpoint, item] of Object.entries(value.responsive)) {
|
|
62
|
+
classes.push(
|
|
63
|
+
item ? item.toString().split(" ").map((className) => `${breakpoint}:${className}`).join(" ") : ""
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
return classes.filter(Boolean).join(" ");
|
|
67
|
+
}
|
|
68
|
+
function mergeResponsiveValue(defaults, value) {
|
|
69
|
+
const defaultValue = resolveResponsiveValue(defaults);
|
|
70
|
+
if (value === void 0) {
|
|
71
|
+
return defaultValue;
|
|
72
|
+
}
|
|
73
|
+
const overrideValue = resolveResponsiveValue(value);
|
|
74
|
+
return {
|
|
75
|
+
base: overrideValue.base ?? defaultValue.base,
|
|
76
|
+
responsive: {
|
|
77
|
+
...defaultValue.responsive,
|
|
78
|
+
...overrideValue.responsive
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// src/utils/deepMerge.ts
|
|
84
|
+
function isPlainObject(value) {
|
|
85
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
86
|
+
}
|
|
87
|
+
function deepMerge(base, override) {
|
|
88
|
+
if (override === void 0) {
|
|
89
|
+
return base;
|
|
90
|
+
}
|
|
91
|
+
if (!isPlainObject(base) || !isPlainObject(override)) {
|
|
92
|
+
return override;
|
|
93
|
+
}
|
|
94
|
+
const result = {
|
|
95
|
+
...base
|
|
96
|
+
};
|
|
97
|
+
for (const [key, value] of Object.entries(override)) {
|
|
98
|
+
const existing = result[key];
|
|
99
|
+
if (isPlainObject(existing) && isPlainObject(value)) {
|
|
100
|
+
result[key] = deepMerge(existing, value);
|
|
101
|
+
} else {
|
|
102
|
+
result[key] = value;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return result;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// src/utils/resolveTokenReference.ts
|
|
109
|
+
function resolveTokenReference(value, tokens) {
|
|
110
|
+
if (typeof value !== "string") {
|
|
111
|
+
return typeof value === "number" ? value : "";
|
|
112
|
+
}
|
|
113
|
+
const match = value.match(/^\{(.+)\}$/);
|
|
114
|
+
if (!match || match[1] === void 0) {
|
|
115
|
+
return value;
|
|
116
|
+
}
|
|
117
|
+
const path = match[1].split(".");
|
|
118
|
+
let current = tokens;
|
|
119
|
+
for (const key of path) {
|
|
120
|
+
if (typeof current !== "object" || current === null || !(key in current)) {
|
|
121
|
+
return "";
|
|
122
|
+
}
|
|
123
|
+
current = current[key];
|
|
124
|
+
}
|
|
125
|
+
if (typeof current === "object" && current !== null && "value" in current) {
|
|
126
|
+
const tokenValue = current.value;
|
|
127
|
+
if (typeof tokenValue === "string" || typeof tokenValue === "number") {
|
|
128
|
+
return tokenValue;
|
|
129
|
+
}
|
|
130
|
+
return "";
|
|
131
|
+
}
|
|
132
|
+
return typeof current === "string" || typeof current === "number" ? current : "";
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// src/utils/resolveTypography.ts
|
|
136
|
+
function resolveTypography(typography, tokens) {
|
|
137
|
+
if (!typography) return {};
|
|
138
|
+
return {
|
|
139
|
+
fontFamily: resolveTokenReference(typography.fontFamily, tokens),
|
|
140
|
+
fontSize: resolveTokenReference(typography.fontSize, tokens),
|
|
141
|
+
fontWeight: resolveTokenReference(typography.fontWeight, tokens),
|
|
142
|
+
lineHeight: resolveTokenReference(typography.lineHeight, tokens),
|
|
143
|
+
letterSpacing: resolveTokenReference(
|
|
144
|
+
typography.letterSpacing,
|
|
145
|
+
tokens
|
|
146
|
+
)
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// src/utils/cssVariables.ts
|
|
151
|
+
function toKebabCase(str) {
|
|
152
|
+
return str.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
|
|
153
|
+
}
|
|
154
|
+
function colorToRgbChannels(value) {
|
|
155
|
+
const trimmed = value.trim();
|
|
156
|
+
const rgbMatch = trimmed.match(
|
|
157
|
+
/^rgba?\(\s*(\d+(?:\.\d+)?)\s*[,\s]\s*(\d+(?:\.\d+)?)\s*[,\s]\s*(\d+(?:\.\d+)?)(?:\s*[/,]\s*[\d.]+%?)?\s*\)$/i
|
|
158
|
+
);
|
|
159
|
+
if (rgbMatch) {
|
|
160
|
+
return `${rgbMatch[1]} ${rgbMatch[2]} ${rgbMatch[3]}`;
|
|
161
|
+
}
|
|
162
|
+
if (trimmed.startsWith("#")) {
|
|
163
|
+
const hex = trimmed.slice(1);
|
|
164
|
+
if (hex.length === 3) {
|
|
165
|
+
const r = parseInt(hex.slice(0, 1).repeat(2), 16);
|
|
166
|
+
const g = parseInt(hex.slice(1, 2).repeat(2), 16);
|
|
167
|
+
const b = parseInt(hex.slice(2, 3).repeat(2), 16);
|
|
168
|
+
return `${r} ${g} ${b}`;
|
|
169
|
+
}
|
|
170
|
+
if (hex.length === 6) {
|
|
171
|
+
const r = parseInt(hex.slice(0, 2), 16);
|
|
172
|
+
const g = parseInt(hex.slice(2, 4), 16);
|
|
173
|
+
const b = parseInt(hex.slice(4, 6), 16);
|
|
174
|
+
return `${r} ${g} ${b}`;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
if (/^\d+(?:\.\d+)?\s+\d+(?:\.\d+)?\s+\d+(?:\.\d+)?$/.test(trimmed)) {
|
|
178
|
+
return trimmed;
|
|
179
|
+
}
|
|
180
|
+
return value;
|
|
181
|
+
}
|
|
182
|
+
function getTokenValue(reference, tokens) {
|
|
183
|
+
const path = reference.replace(/^\{/, "").replace(/\}$/, "").split(".");
|
|
184
|
+
let current = tokens;
|
|
185
|
+
for (const segment of path) {
|
|
186
|
+
if (typeof current !== "object" || current === null || !(segment in current)) {
|
|
187
|
+
return void 0;
|
|
188
|
+
}
|
|
189
|
+
current = current[segment];
|
|
190
|
+
}
|
|
191
|
+
if (typeof current === "object" && current !== null && "value" in current) {
|
|
192
|
+
const value = current.value;
|
|
193
|
+
if (typeof value === "string" || typeof value === "number") {
|
|
194
|
+
return value;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return void 0;
|
|
198
|
+
}
|
|
199
|
+
function resolveReference(reference, tokens, seen = /* @__PURE__ */ new Set()) {
|
|
200
|
+
if (seen.has(reference)) {
|
|
201
|
+
console.error(
|
|
202
|
+
`[kreativ-core] Circular token reference detected: ${reference}`
|
|
203
|
+
);
|
|
204
|
+
return void 0;
|
|
205
|
+
}
|
|
206
|
+
const nextSeen = new Set(seen);
|
|
207
|
+
nextSeen.add(reference);
|
|
208
|
+
const value = getTokenValue(reference, tokens);
|
|
209
|
+
if (value === void 0) {
|
|
210
|
+
console.warn(
|
|
211
|
+
`[kreativ-core] Unable to resolve token reference: ${reference}`
|
|
212
|
+
);
|
|
213
|
+
return void 0;
|
|
214
|
+
}
|
|
215
|
+
if (typeof value === "number") {
|
|
216
|
+
return String(value);
|
|
217
|
+
}
|
|
218
|
+
if (value.startsWith("{") && value.endsWith("}")) {
|
|
219
|
+
return resolveReference(value, tokens, nextSeen);
|
|
220
|
+
}
|
|
221
|
+
return value;
|
|
222
|
+
}
|
|
223
|
+
function resolveValue(value, tokens) {
|
|
224
|
+
if (typeof value === "number") {
|
|
225
|
+
return String(value);
|
|
226
|
+
}
|
|
227
|
+
if (typeof value !== "string") {
|
|
228
|
+
return void 0;
|
|
229
|
+
}
|
|
230
|
+
if (value.startsWith("{") && value.endsWith("}")) {
|
|
231
|
+
return resolveReference(value, tokens);
|
|
232
|
+
}
|
|
233
|
+
return value;
|
|
234
|
+
}
|
|
235
|
+
function flattenTokens(value, path, result, tokens) {
|
|
236
|
+
if (typeof value !== "object" || value === null) {
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
if ("value" in value) {
|
|
240
|
+
const tokenValue = value.value;
|
|
241
|
+
const resolved = resolveValue(tokenValue, tokens);
|
|
242
|
+
if (resolved !== void 0) {
|
|
243
|
+
result[path.join(".")] = resolved;
|
|
244
|
+
}
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
for (const [key, child] of Object.entries(value)) {
|
|
248
|
+
flattenTokens(child, [...path, key], result, tokens);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
function resolveSemanticValue(value, mode, tokens) {
|
|
252
|
+
if (typeof value === "object" && value !== null && "light" in value && "dark" in value) {
|
|
253
|
+
const modeValue = value[mode];
|
|
254
|
+
return resolveValue(modeValue, tokens);
|
|
255
|
+
}
|
|
256
|
+
return resolveValue(value, tokens);
|
|
257
|
+
}
|
|
258
|
+
function resolveSemanticTokens(semanticTokens, tokens, mode) {
|
|
259
|
+
const result = {};
|
|
260
|
+
function walk(value, path) {
|
|
261
|
+
if (typeof value !== "object" || value === null) {
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
if ("value" in value) {
|
|
265
|
+
const semanticValue = value.value;
|
|
266
|
+
const resolved = resolveSemanticValue(semanticValue, mode, tokens);
|
|
267
|
+
if (resolved !== void 0) {
|
|
268
|
+
result[path.join(".")] = resolved;
|
|
269
|
+
}
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
for (const [key, child] of Object.entries(
|
|
273
|
+
value
|
|
274
|
+
)) {
|
|
275
|
+
walk(child, [...path, key]);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
walk(semanticTokens, []);
|
|
279
|
+
return result;
|
|
280
|
+
}
|
|
281
|
+
function resolveTokens(tokens, semanticTokens, mode) {
|
|
282
|
+
const primitiveTokens = {};
|
|
283
|
+
flattenTokens(tokens, [], primitiveTokens, tokens);
|
|
284
|
+
const resolvedSemanticTokens = resolveSemanticTokens(
|
|
285
|
+
semanticTokens,
|
|
286
|
+
tokens,
|
|
287
|
+
mode
|
|
288
|
+
);
|
|
289
|
+
return {
|
|
290
|
+
...primitiveTokens,
|
|
291
|
+
...resolvedSemanticTokens
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
function resolveSemanticTokenReferences(tokens, semanticTokens) {
|
|
295
|
+
function resolveValue2(value, seen = /* @__PURE__ */ new Set()) {
|
|
296
|
+
if (typeof value === "string") {
|
|
297
|
+
if (!value.startsWith("{") || !value.endsWith("}")) {
|
|
298
|
+
return value;
|
|
299
|
+
}
|
|
300
|
+
if (seen.has(value)) {
|
|
301
|
+
console.error(
|
|
302
|
+
`[kreativ-core] Circular token reference detected: ${value}`
|
|
303
|
+
);
|
|
304
|
+
return value;
|
|
305
|
+
}
|
|
306
|
+
const resolved = getTokenValue(value, tokens);
|
|
307
|
+
if (resolved === void 0) {
|
|
308
|
+
console.warn(
|
|
309
|
+
`[kreativ-core] Unable to resolve token reference: ${value}`
|
|
310
|
+
);
|
|
311
|
+
return value;
|
|
312
|
+
}
|
|
313
|
+
const nextSeen = new Set(seen);
|
|
314
|
+
nextSeen.add(value);
|
|
315
|
+
return resolveValue2(resolved, nextSeen);
|
|
316
|
+
}
|
|
317
|
+
if (Array.isArray(value)) {
|
|
318
|
+
return value.map((item) => resolveValue2(item, seen));
|
|
319
|
+
}
|
|
320
|
+
if (typeof value === "object" && value !== null) {
|
|
321
|
+
return Object.fromEntries(
|
|
322
|
+
Object.entries(value).map(([key, child]) => [
|
|
323
|
+
key,
|
|
324
|
+
resolveValue2(child, seen)
|
|
325
|
+
])
|
|
326
|
+
);
|
|
327
|
+
}
|
|
328
|
+
return value;
|
|
329
|
+
}
|
|
330
|
+
return resolveValue2(semanticTokens);
|
|
331
|
+
}
|
|
332
|
+
function tokensToCssVars(tokens, mode, intensity, prefix = "kui") {
|
|
333
|
+
const cssVars = {};
|
|
334
|
+
for (const [path, value] of Object.entries(tokens)) {
|
|
335
|
+
const parts = path.split(".");
|
|
336
|
+
const [_first = "", second = ""] = parts;
|
|
337
|
+
const isSemanticColor = parts.length === 2 && parts[0] === "colors";
|
|
338
|
+
const isPrimitiveColor = parts.length >= 3 && parts[0] === "colors";
|
|
339
|
+
const varName = isSemanticColor ? `--${prefix}-${toKebabCase(second)}` : `--${prefix}-${parts.map(toKebabCase).join("-")}`;
|
|
340
|
+
const outputValue = isSemanticColor || isPrimitiveColor ? colorToRgbChannels(value) : value;
|
|
341
|
+
cssVars[varName] = outputValue;
|
|
342
|
+
}
|
|
343
|
+
return {
|
|
344
|
+
...cssVars,
|
|
345
|
+
[`--${prefix}-mode`]: mode,
|
|
346
|
+
[`--${prefix}-intensity`]: String(intensity)
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
export { composeRefs, createComponent, createFromProps, deepMerge, hasKuiMeta, isResponsiveValue, mergeResponsiveValue, resolveResponsiveValue, resolveSemanticTokenReferences, resolveTokenReference, resolveTokens, resolveTypography, toKebabCase, toResponsiveClasses, tokensToCssVars };
|
|
351
|
+
//# sourceMappingURL=chunk-OJSXALOI.js.map
|
|
352
|
+
//# sourceMappingURL=chunk-OJSXALOI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/createComponent.tsx","../src/utils/composeRefs.ts","../src/utils/createFromProps.ts","../src/utils/responsive.ts","../src/utils/deepMerge.ts","../src/utils/resolveTokenReference.ts","../src/utils/resolveTypography.ts","../src/utils/cssVariables.ts"],"names":["value","resolveValue"],"mappings":"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","file":"chunk-OJSXALOI.js","sourcesContent":["import * as React from \"react\";\n\nexport interface KuiSupports {\n disabled?: boolean;\n invalid?: boolean;\n required?: boolean;\n [key: string]: boolean | undefined;\n}\nexport type KuiSkeletonHint =\n | \"text\"\n | \"rect\"\n | \"circle\"\n | \"input-shaped\"\n | \"preserve\"\n | (string & {});\nexport type KuiRole =\n | \"action\"\n | \"formControl\"\n | \"overlay\"\n | \"layout\"\n | \"display\"\n | \"disclosure\"\n | \"navigation\"\n | (string & {});\n\nexport interface KuiMeta {\n formControl?: \"single\" | \"compound\";\n supports?: KuiSupports;\n skeleton?: KuiSkeletonHint;\n role?: KuiRole;\n groupSlot?: string;\n}\n\nexport type KuiComponent<P, E> = React.ForwardRefExoticComponent<\n React.PropsWithoutRef<P> & React.RefAttributes<E>\n> & { __kui: KuiMeta };\n\nexport interface CreateComponentConfig<P, E> {\n __kui: KuiMeta;\n render: (props: P, ref: React.ForwardedRef<E>) => React.ReactElement | null;\n displayName?: string;\n}\n\nexport function createComponent<P extends object, E = unknown>(\n config: CreateComponentConfig<P, E>,\n): KuiComponent<P, E> {\n const C = React.forwardRef(\n config.render as unknown as React.ForwardRefRenderFunction<E, any>,\n ) as unknown as KuiComponent<P, E>;\n if (config.displayName) C.displayName = config.displayName;\n C.__kui = config.__kui;\n return C;\n}\n\nexport function hasKuiMeta(value: unknown): value is { __kui: KuiMeta } {\n return (\n (typeof value === \"function\" ||\n (typeof value === \"object\" && value !== null)) &&\n \"__kui\" in (value as object) &&\n typeof (value as { __kui: unknown }).__kui === \"object\" &&\n (value as { __kui: unknown }).__kui !== null\n );\n}\n","import type * as React from \"react\";\ntype PossibleRef<T> = React.Ref<T> | undefined;\n\nexport function composeRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\n return (node) => {\n for (const ref of refs) {\n if (typeof ref === \"function\") ref(node);\n else if (ref) (ref as React.MutableRefObject<T | null>).current = node;\n }\n };\n}\n","export interface CreateFromPropsInput<T extends object> {\n providerDefaults?: Partial<T>;\n defaultProps?: Partial<T>;\n generatedProps?: Partial<T>;\n consumerProps?: Partial<T>;\n}\nexport function createFromProps<T extends object>(input: CreateFromPropsInput<T>): T {\n return {\n ...input.providerDefaults,\n ...input.defaultProps,\n ...input.generatedProps,\n ...input.consumerProps,\n } as T;\n}\n","import type { BaseBreakpoint, ResponsiveValue } from \"@/types\";\n\nexport function isResponsiveValue<T>(\n value: ResponsiveValue<T>,\n): value is Partial<Record<\"base\" | BaseBreakpoint, T>> {\n return typeof value === \"object\" && value !== null;\n}\n\nexport interface ResolvedResponsiveValue<T> {\n base?: T;\n responsive: Record<string, T>;\n}\n\nexport function resolveResponsiveValue<T, B extends string = string>(\n value: ResponsiveValue<T, B>,\n): ResolvedResponsiveValue<T> {\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) {\n return {\n base: value,\n responsive: {},\n };\n }\n\n const responsiveValue = value as Partial<Record<\"base\" | B, T>>;\n\n const { base, ...responsive } = responsiveValue;\n\n return {\n base,\n responsive: Object.fromEntries(\n Object.entries(responsive).filter(([, value]) => value !== undefined),\n ) as Record<string, T>,\n };\n}\n\nexport function toResponsiveClasses<T>(\n value: ResolvedResponsiveValue<T>,\n resolve: (value: T) => string,\n): string {\n const classes: string[] = [];\n\n if (value.base !== undefined) {\n classes.push(resolve(value.base));\n }\n\n for (const [breakpoint, item] of Object.entries(value.responsive)) {\n classes.push(\n item\n ? item\n .toString()\n .split(\" \")\n .map((className) => `${breakpoint}:${className}`)\n .join(\" \")\n : \"\",\n );\n }\n\n return classes.filter(Boolean).join(\" \");\n}\n\nexport function mergeResponsiveValue<T, B extends string = string>(\n defaults: ResponsiveValue<T, B>,\n value?: ResponsiveValue<T, B>,\n): ResolvedResponsiveValue<T> {\n const defaultValue = resolveResponsiveValue(defaults);\n\n if (value === undefined) {\n return defaultValue;\n }\n\n const overrideValue = resolveResponsiveValue(value);\n\n return {\n base: overrideValue.base ?? defaultValue.base,\n responsive: {\n ...defaultValue.responsive,\n ...overrideValue.responsive,\n },\n };\n}\n","function isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nexport function deepMerge<T>(base: T, override?: unknown): T {\n if (override === undefined) {\n return base;\n }\n\n if (!isPlainObject(base) || !isPlainObject(override)) {\n return override as T;\n }\n\n const result: Record<string, unknown> = {\n ...base,\n };\n\n for (const [key, value] of Object.entries(override)) {\n const existing = result[key];\n\n if (isPlainObject(existing) && isPlainObject(value)) {\n result[key] = deepMerge(existing, value);\n } else {\n result[key] = value;\n }\n }\n\n return result as T;\n}\n","import type { DesignTokens } from \"@/types\";\r\n\r\nexport function resolveTokenReference(\r\n value: unknown,\r\n tokens: DesignTokens,\r\n): string | number {\r\n if (typeof value !== \"string\") {\r\n return typeof value === \"number\" ? value : \"\";\r\n }\r\n\r\n const match = value.match(/^\\{(.+)\\}$/);\r\n\r\n if (!match || match[1] === undefined) {\r\n return value;\r\n }\r\n\r\n const path = match[1].split(\".\");\r\n\r\n let current: unknown = tokens;\r\n\r\n for (const key of path) {\r\n if (typeof current !== \"object\" || current === null || !(key in current)) {\r\n return \"\";\r\n }\r\n\r\n current = (current as Record<string, unknown>)[key];\r\n }\r\n\r\n if (typeof current === \"object\" && current !== null && \"value\" in current) {\r\n const tokenValue = (current as { value: unknown }).value;\r\n\r\n if (typeof tokenValue === \"string\" || typeof tokenValue === \"number\") {\r\n return tokenValue;\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n return typeof current === \"string\" || typeof current === \"number\"\r\n ? current\r\n : \"\";\r\n}\r\n","import type { CSSProperties } from \"react\";\r\nimport type { DesignTokens, TypographyStyle } from \"@/types\";\r\nimport { resolveTokenReference } from \"./resolveTokenReference\";\r\n\r\nexport function resolveTypography(\r\n typography: TypographyStyle | undefined,\r\n tokens: DesignTokens,\r\n): CSSProperties {\r\n if (!typography) return {};\r\n\r\n return {\r\n fontFamily: resolveTokenReference(typography.fontFamily, tokens) as string,\r\n fontSize: resolveTokenReference(typography.fontSize, tokens) as string,\r\n fontWeight: resolveTokenReference(typography.fontWeight, tokens),\r\n lineHeight: resolveTokenReference(typography.lineHeight, tokens),\r\n letterSpacing: resolveTokenReference(\r\n typography.letterSpacing,\r\n tokens,\r\n ) as string,\r\n };\r\n}\r\n","import type {\r\n DesignTokens,\r\n ResolvedTokens,\r\n SemanticTokens,\r\n TokenDefinition,\r\n} from \"@/types\";\r\n\r\nexport function toKebabCase(str: string): string {\r\n return str.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\r\n}\r\nfunction colorToRgbChannels(value: string): string {\r\n const trimmed = value.trim();\r\n\r\n const rgbMatch = trimmed.match(\r\n /^rgba?\\(\\s*(\\d+(?:\\.\\d+)?)\\s*[,\\s]\\s*(\\d+(?:\\.\\d+)?)\\s*[,\\s]\\s*(\\d+(?:\\.\\d+)?)(?:\\s*[/,]\\s*[\\d.]+%?)?\\s*\\)$/i,\r\n );\r\n\r\n if (rgbMatch) {\r\n return `${rgbMatch[1]} ${rgbMatch[2]} ${rgbMatch[3]}`;\r\n }\r\n\r\n if (trimmed.startsWith(\"#\")) {\r\n const hex = trimmed.slice(1);\r\n\r\n if (hex.length === 3) {\r\n const r = parseInt(hex.slice(0, 1).repeat(2), 16);\r\n const g = parseInt(hex.slice(1, 2).repeat(2), 16);\r\n const b = parseInt(hex.slice(2, 3).repeat(2), 16);\r\n\r\n return `${r} ${g} ${b}`;\r\n }\r\n\r\n if (hex.length === 6) {\r\n const r = parseInt(hex.slice(0, 2), 16);\r\n const g = parseInt(hex.slice(2, 4), 16);\r\n const b = parseInt(hex.slice(4, 6), 16);\r\n\r\n return `${r} ${g} ${b}`;\r\n }\r\n }\r\n\r\n if (/^\\d+(?:\\.\\d+)?\\s+\\d+(?:\\.\\d+)?\\s+\\d+(?:\\.\\d+)?$/.test(trimmed)) {\r\n return trimmed;\r\n }\r\n\r\n return value;\r\n}\r\n\r\nfunction getTokenValue(\r\n reference: string,\r\n tokens: DesignTokens,\r\n): string | number | undefined {\r\n const path = reference.replace(/^\\{/, \"\").replace(/\\}$/, \"\").split(\".\");\r\n\r\n let current: unknown = tokens;\r\n\r\n for (const segment of path) {\r\n if (\r\n typeof current !== \"object\" ||\r\n current === null ||\r\n !(segment in current)\r\n ) {\r\n return undefined;\r\n }\r\n\r\n current = (current as Record<string, unknown>)[segment];\r\n }\r\n\r\n if (typeof current === \"object\" && current !== null && \"value\" in current) {\r\n const value = (current as TokenDefinition).value;\r\n\r\n if (typeof value === \"string\" || typeof value === \"number\") {\r\n return value;\r\n }\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\nfunction resolveReference(\r\n reference: string,\r\n tokens: DesignTokens,\r\n seen = new Set<string>(),\r\n): string | undefined {\r\n if (seen.has(reference)) {\r\n console.error(\r\n `[kreativ-core] Circular token reference detected: ${reference}`,\r\n );\r\n\r\n return undefined;\r\n }\r\n\r\n const nextSeen = new Set(seen);\r\n nextSeen.add(reference);\r\n\r\n const value = getTokenValue(reference, tokens);\r\n\r\n if (value === undefined) {\r\n console.warn(\r\n `[kreativ-core] Unable to resolve token reference: ${reference}`,\r\n );\r\n\r\n return undefined;\r\n }\r\n\r\n if (typeof value === \"number\") {\r\n return String(value);\r\n }\r\n\r\n if (value.startsWith(\"{\") && value.endsWith(\"}\")) {\r\n return resolveReference(value, tokens, nextSeen);\r\n }\r\n\r\n return value;\r\n}\r\n\r\nfunction resolveValue(\r\n value: unknown,\r\n tokens: DesignTokens,\r\n): string | undefined {\r\n if (typeof value === \"number\") {\r\n return String(value);\r\n }\r\n\r\n if (typeof value !== \"string\") {\r\n return undefined;\r\n }\r\n\r\n if (value.startsWith(\"{\") && value.endsWith(\"}\")) {\r\n return resolveReference(value, tokens);\r\n }\r\n\r\n return value;\r\n}\r\n\r\nfunction flattenTokens(\r\n value: unknown,\r\n path: string[],\r\n result: ResolvedTokens,\r\n tokens: DesignTokens,\r\n): void {\r\n if (typeof value !== \"object\" || value === null) {\r\n return;\r\n }\r\n\r\n if (\"value\" in value) {\r\n const tokenValue = (value as TokenDefinition).value;\r\n\r\n const resolved = resolveValue(tokenValue, tokens);\r\n\r\n if (resolved !== undefined) {\r\n result[path.join(\".\")] = resolved;\r\n }\r\n\r\n return;\r\n }\r\n\r\n for (const [key, child] of Object.entries(value as Record<string, unknown>)) {\r\n flattenTokens(child, [...path, key], result, tokens);\r\n }\r\n}\r\n\r\nfunction resolveSemanticValue(\r\n value: unknown,\r\n mode: \"light\" | \"dark\",\r\n tokens: DesignTokens,\r\n): string | undefined {\r\n if (\r\n typeof value === \"object\" &&\r\n value !== null &&\r\n \"light\" in value &&\r\n \"dark\" in value\r\n ) {\r\n const modeValue = (\r\n value as {\r\n light: unknown;\r\n dark: unknown;\r\n }\r\n )[mode];\r\n\r\n return resolveValue(modeValue, tokens);\r\n }\r\n\r\n return resolveValue(value, tokens);\r\n}\r\n\r\nfunction resolveSemanticTokens(\r\n semanticTokens: SemanticTokens,\r\n tokens: DesignTokens,\r\n mode: \"light\" | \"dark\",\r\n): ResolvedTokens {\r\n const result: ResolvedTokens = {};\r\n\r\n function walk(value: unknown, path: string[]): void {\r\n if (typeof value !== \"object\" || value === null) {\r\n return;\r\n }\r\n\r\n if (\"value\" in value) {\r\n const semanticValue = (value as TokenDefinition).value;\r\n\r\n const resolved = resolveSemanticValue(semanticValue, mode, tokens);\r\n\r\n if (resolved !== undefined) {\r\n result[path.join(\".\")] = resolved;\r\n }\r\n\r\n return;\r\n }\r\n\r\n for (const [key, child] of Object.entries(\r\n value as Record<string, unknown>,\r\n )) {\r\n walk(child, [...path, key]);\r\n }\r\n }\r\n\r\n walk(semanticTokens, []);\r\n\r\n return result;\r\n}\r\n\r\nexport function resolveTokens(\r\n tokens: DesignTokens,\r\n semanticTokens: SemanticTokens,\r\n mode: \"light\" | \"dark\",\r\n): ResolvedTokens {\r\n const primitiveTokens: ResolvedTokens = {};\r\n\r\n flattenTokens(tokens, [], primitiveTokens, tokens);\r\n\r\n const resolvedSemanticTokens = resolveSemanticTokens(\r\n semanticTokens,\r\n tokens,\r\n mode,\r\n );\r\n\r\n return {\r\n ...primitiveTokens,\r\n ...resolvedSemanticTokens,\r\n };\r\n}\r\n\r\nexport function resolveSemanticTokenReferences(\r\n tokens: DesignTokens,\r\n semanticTokens: SemanticTokens,\r\n): SemanticTokens {\r\n function resolveValue(value: unknown, seen = new Set<string>()): unknown {\r\n if (typeof value === \"string\") {\r\n if (!value.startsWith(\"{\") || !value.endsWith(\"}\")) {\r\n return value;\r\n }\r\n\r\n if (seen.has(value)) {\r\n console.error(\r\n `[kreativ-core] Circular token reference detected: ${value}`,\r\n );\r\n\r\n return value;\r\n }\r\n\r\n const resolved = getTokenValue(value, tokens);\r\n\r\n if (resolved === undefined) {\r\n console.warn(\r\n `[kreativ-core] Unable to resolve token reference: ${value}`,\r\n );\r\n\r\n return value;\r\n }\r\n\r\n const nextSeen = new Set(seen);\r\n nextSeen.add(value);\r\n\r\n return resolveValue(resolved, nextSeen);\r\n }\r\n\r\n if (Array.isArray(value)) {\r\n return value.map((item) => resolveValue(item, seen));\r\n }\r\n\r\n if (typeof value === \"object\" && value !== null) {\r\n return Object.fromEntries(\r\n Object.entries(value).map(([key, child]) => [\r\n key,\r\n resolveValue(child, seen),\r\n ]),\r\n );\r\n }\r\n\r\n return value;\r\n }\r\n\r\n return resolveValue(semanticTokens) as SemanticTokens;\r\n}\r\n\r\nexport function tokensToCssVars(\r\n tokens: ResolvedTokens,\r\n mode: \"light\" | \"dark\",\r\n intensity: number,\r\n prefix = \"kui\",\r\n): Record<string, string> {\r\n const cssVars: Record<string, string> = {};\r\n\r\n for (const [path, value] of Object.entries(tokens)) {\r\n const parts = path.split(\".\");\r\n const [_first = \"\", second = \"\"] = parts;\r\n\r\n const isSemanticColor = parts.length === 2 && parts[0] === \"colors\";\r\n\r\n const isPrimitiveColor = parts.length >= 3 && parts[0] === \"colors\";\r\n\r\n const varName = isSemanticColor\r\n ? `--${prefix}-${toKebabCase(second)}`\r\n : `--${prefix}-${parts.map(toKebabCase).join(\"-\")}`;\r\n\r\n const outputValue =\r\n isSemanticColor || isPrimitiveColor ? colorToRgbChannels(value) : value;\r\n\r\n cssVars[varName] = outputValue;\r\n }\r\n\r\n return {\r\n ...cssVars,\r\n\r\n [`--${prefix}-mode`]: mode,\r\n [`--${prefix}-intensity`]: String(intensity),\r\n };\r\n}\r\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-RV5MKKBP.js"}
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1,18 +1,8 @@
|
|
|
1
|
-
import { ColorMode, SizeToken, Theme } from '../types/index.js';
|
|
1
|
+
import { BaseBreakpoint, ColorMode, ResponsiveValue, ResponsiveStyles, SizeToken, Theme, Size } from '../types/index.js';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { CSSProperties } from 'react';
|
|
4
|
-
import { R as ResponsiveValue, a as ResponsiveStyles, S as Size } from '../common-1QyKLdTc.js';
|
|
5
4
|
|
|
6
|
-
declare
|
|
7
|
-
readonly sm: 640;
|
|
8
|
-
readonly md: 768;
|
|
9
|
-
readonly lg: 1024;
|
|
10
|
-
readonly xl: 1280;
|
|
11
|
-
readonly "2xl": 1536;
|
|
12
|
-
};
|
|
13
|
-
type Breakpoint = keyof typeof BREAKPOINTS;
|
|
14
|
-
/** Returns whether the viewport is at or above the given breakpoint. */
|
|
15
|
-
declare function useBreakpoint(breakpoint: Breakpoint): boolean;
|
|
5
|
+
declare function useBreakpoint(breakpoint: BaseBreakpoint): boolean;
|
|
16
6
|
|
|
17
7
|
interface UseColorModeReturn {
|
|
18
8
|
mode: ColorMode;
|
package/dist/hooks/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { ThemeContext, useTheme } from '../chunk-5CYSF7C3.js';
|
|
2
|
+
import { isResponsiveValue, resolveTypography, resolveResponsiveValue } from '../chunk-OJSXALOI.js';
|
|
1
3
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
4
|
+
import { useState, useEffect, useContext, useMemo, useId, useRef, useCallback } from 'react';
|
|
3
5
|
|
|
4
|
-
// src/hooks/useBreakpoint.ts
|
|
5
6
|
var BREAKPOINTS = {
|
|
6
7
|
sm: 640,
|
|
7
8
|
md: 768,
|
|
@@ -23,9 +24,6 @@ function useBreakpoint(breakpoint) {
|
|
|
23
24
|
}, [query]);
|
|
24
25
|
return matches;
|
|
25
26
|
}
|
|
26
|
-
var ThemeContext = createContext(null);
|
|
27
|
-
|
|
28
|
-
// src/hooks/useColorMode.ts
|
|
29
27
|
function useColorMode() {
|
|
30
28
|
const ctx = useContext(ThemeContext);
|
|
31
29
|
if (!ctx) {
|
|
@@ -61,29 +59,6 @@ function useControllableState({
|
|
|
61
59
|
);
|
|
62
60
|
return [current, set];
|
|
63
61
|
}
|
|
64
|
-
|
|
65
|
-
// src/utils/responsive.ts
|
|
66
|
-
function isResponsiveValue(value) {
|
|
67
|
-
return typeof value === "object" && value !== null;
|
|
68
|
-
}
|
|
69
|
-
function resolveResponsiveValue(value) {
|
|
70
|
-
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
71
|
-
return {
|
|
72
|
-
base: value,
|
|
73
|
-
responsive: {}
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
const responsiveValue = value;
|
|
77
|
-
const { base, ...responsive } = responsiveValue;
|
|
78
|
-
return {
|
|
79
|
-
base,
|
|
80
|
-
responsive: Object.fromEntries(
|
|
81
|
-
Object.entries(responsive).filter(([, value2]) => value2 !== void 0)
|
|
82
|
-
)
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// src/hooks/useMergedResponsiveStyles.ts
|
|
87
62
|
function mergeResponsiveProps(entries) {
|
|
88
63
|
const result = {};
|
|
89
64
|
for (const [value, toCss] of entries) {
|
|
@@ -104,17 +79,6 @@ function useMergedResponsiveStyles(entries) {
|
|
|
104
79
|
entries.map(([value]) => value)
|
|
105
80
|
);
|
|
106
81
|
}
|
|
107
|
-
function useTheme() {
|
|
108
|
-
const ctx = useContext(ThemeContext);
|
|
109
|
-
if (!ctx) {
|
|
110
|
-
throw new Error(
|
|
111
|
-
"useTheme() was called outside <UIProvider>. Wrap your app in <UIProvider> from 'kreativ-ui'."
|
|
112
|
-
);
|
|
113
|
-
}
|
|
114
|
-
return ctx;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
// src/hooks/useResponsiveStyles.ts
|
|
118
82
|
var cssPropertyToKebab = (property) => property.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`);
|
|
119
83
|
var cssValue = (value) => {
|
|
120
84
|
if (typeof value === "number") {
|
|
@@ -297,48 +261,6 @@ function useSizes() {
|
|
|
297
261
|
return getSizes(theme);
|
|
298
262
|
}
|
|
299
263
|
|
|
300
|
-
// src/utils/resolveTokenReference.ts
|
|
301
|
-
function resolveTokenReference(value, tokens) {
|
|
302
|
-
if (typeof value !== "string") {
|
|
303
|
-
return typeof value === "number" ? value : "";
|
|
304
|
-
}
|
|
305
|
-
const match = value.match(/^\{(.+)\}$/);
|
|
306
|
-
if (!match || match[1] === void 0) {
|
|
307
|
-
return value;
|
|
308
|
-
}
|
|
309
|
-
const path = match[1].split(".");
|
|
310
|
-
let current = tokens;
|
|
311
|
-
for (const key of path) {
|
|
312
|
-
if (typeof current !== "object" || current === null || !(key in current)) {
|
|
313
|
-
return "";
|
|
314
|
-
}
|
|
315
|
-
current = current[key];
|
|
316
|
-
}
|
|
317
|
-
if (typeof current === "object" && current !== null && "value" in current) {
|
|
318
|
-
const tokenValue = current.value;
|
|
319
|
-
if (typeof tokenValue === "string" || typeof tokenValue === "number") {
|
|
320
|
-
return tokenValue;
|
|
321
|
-
}
|
|
322
|
-
return "";
|
|
323
|
-
}
|
|
324
|
-
return typeof current === "string" || typeof current === "number" ? current : "";
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
// src/utils/resolveTypography.ts
|
|
328
|
-
function resolveTypography(typography, tokens) {
|
|
329
|
-
if (!typography) return {};
|
|
330
|
-
return {
|
|
331
|
-
fontFamily: resolveTokenReference(typography.fontFamily, tokens),
|
|
332
|
-
fontSize: resolveTokenReference(typography.fontSize, tokens),
|
|
333
|
-
fontWeight: resolveTokenReference(typography.fontWeight, tokens),
|
|
334
|
-
lineHeight: resolveTokenReference(typography.lineHeight, tokens),
|
|
335
|
-
letterSpacing: resolveTokenReference(
|
|
336
|
-
typography.letterSpacing,
|
|
337
|
-
tokens
|
|
338
|
-
)
|
|
339
|
-
};
|
|
340
|
-
}
|
|
341
|
-
|
|
342
264
|
// src/hooks/useTypography.ts
|
|
343
265
|
function useTypography(name) {
|
|
344
266
|
const { theme } = useTheme();
|