@web-my-money/tokens 1.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.
package/dist/index.js ADDED
@@ -0,0 +1,464 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var index_exports = {};
22
+ __export(index_exports, {
23
+ DEFAULT_FONT_SIZE: () => DEFAULT_FONT_SIZE,
24
+ DEFAULT_THEME: () => DEFAULT_THEME,
25
+ FONT_SIZES: () => FONT_SIZES,
26
+ FONT_SIZE_STORAGE_KEY: () => FONT_SIZE_STORAGE_KEY,
27
+ THEMES: () => THEMES,
28
+ THEME_STORAGE_KEY: () => THEME_STORAGE_KEY,
29
+ animation: () => animation,
30
+ applyFontSize: () => applyFontSize,
31
+ applyTheme: () => applyTheme,
32
+ backgroundImage: () => backgroundImage,
33
+ boxShadow: () => boxShadow,
34
+ colors: () => colors,
35
+ colorsDark: () => colorsDark,
36
+ container: () => container,
37
+ darkBody: () => darkBody,
38
+ easing: () => easing,
39
+ fontFamily: () => fontFamily,
40
+ fontSize: () => fontSize,
41
+ fontSizeBootScript: () => fontSizeBootScript,
42
+ getStoredFontSize: () => getStoredFontSize,
43
+ getStoredTheme: () => getStoredTheme,
44
+ glassPanel: () => glassPanel,
45
+ isFontSizeName: () => isFontSizeName,
46
+ isThemeName: () => isThemeName,
47
+ keyframes: () => keyframes,
48
+ letterSpacing: () => letterSpacing,
49
+ radius: () => radius,
50
+ radiusBase: () => radiusBase,
51
+ spotlight: () => spotlight,
52
+ themeBootScript: () => themeBootScript,
53
+ wmmPreset: () => wmmPreset
54
+ });
55
+ module.exports = __toCommonJS(index_exports);
56
+
57
+ // src/colors.ts
58
+ var colors = {
59
+ /* ── Semantic (light mode defaults) ──────────────────────────── */
60
+ background: "oklch(1 0 0)",
61
+ foreground: "oklch(0.145 0 0)",
62
+ card: "oklch(1 0 0)",
63
+ cardForeground: "oklch(0.145 0 0)",
64
+ popover: "oklch(1 0 0)",
65
+ popoverForeground: "oklch(0.145 0 0)",
66
+ primary: "oklch(0.205 0 0)",
67
+ primaryForeground: "oklch(0.985 0 0)",
68
+ secondary: "oklch(0.97 0 0)",
69
+ secondaryForeground: "oklch(0.205 0 0)",
70
+ muted: "oklch(0.97 0 0)",
71
+ mutedForeground: "oklch(0.556 0 0)",
72
+ accent: "oklch(0.97 0 0)",
73
+ accentForeground: "oklch(0.205 0 0)",
74
+ destructive: "oklch(0.577 0.245 27.325)",
75
+ border: "oklch(0.922 0 0)",
76
+ input: "oklch(0.922 0 0)",
77
+ ring: "oklch(0.708 0 0)",
78
+ /* ── Chart palette ──────────────────────────────────────────── */
79
+ chart1: "oklch(0.87 0 0)",
80
+ chart2: "oklch(0.556 0 0)",
81
+ chart3: "oklch(0.439 0 0)",
82
+ chart4: "oklch(0.371 0 0)",
83
+ chart5: "oklch(0.269 0 0)",
84
+ /* ── Sidebar (OS / dashboard apps) ──────────────────────────── */
85
+ sidebar: "oklch(0.985 0 0)",
86
+ sidebarForeground: "oklch(0.145 0 0)",
87
+ sidebarPrimary: "oklch(0.205 0 0)",
88
+ sidebarPrimaryForeground: "oklch(0.985 0 0)",
89
+ sidebarAccent: "oklch(0.97 0 0)",
90
+ sidebarAccentForeground: "oklch(0.205 0 0)",
91
+ sidebarBorder: "oklch(0.922 0 0)",
92
+ sidebarRing: "oklch(0.708 0 0)"
93
+ };
94
+ var colorsDark = {
95
+ background: "oklch(0.145 0 0)",
96
+ foreground: "oklch(0.985 0 0)",
97
+ card: "oklch(0.205 0 0)",
98
+ cardForeground: "oklch(0.985 0 0)",
99
+ popover: "oklch(0.205 0 0)",
100
+ popoverForeground: "oklch(0.985 0 0)",
101
+ primary: "oklch(0.922 0 0)",
102
+ primaryForeground: "oklch(0.205 0 0)",
103
+ secondary: "oklch(0.269 0 0)",
104
+ secondaryForeground: "oklch(0.985 0 0)",
105
+ muted: "oklch(0.269 0 0)",
106
+ mutedForeground: "oklch(0.708 0 0)",
107
+ accent: "oklch(0.269 0 0)",
108
+ accentForeground: "oklch(0.985 0 0)",
109
+ destructive: "oklch(0.704 0.191 22.216)",
110
+ border: "oklch(1 0 0 / 10%)",
111
+ input: "oklch(1 0 0 / 15%)",
112
+ ring: "oklch(0.556 0 0)",
113
+ chart1: "oklch(0.87 0 0)",
114
+ chart2: "oklch(0.556 0 0)",
115
+ chart3: "oklch(0.439 0 0)",
116
+ chart4: "oklch(0.371 0 0)",
117
+ chart5: "oklch(0.269 0 0)",
118
+ sidebar: "oklch(0.205 0 0)",
119
+ sidebarForeground: "oklch(0.985 0 0)",
120
+ sidebarPrimary: "oklch(0.488 0.243 264.376)",
121
+ sidebarPrimaryForeground: "oklch(0.985 0 0)",
122
+ sidebarAccent: "oklch(0.269 0 0)",
123
+ sidebarAccentForeground: "oklch(0.985 0 0)",
124
+ sidebarBorder: "oklch(1 0 0 / 10%)",
125
+ sidebarRing: "oklch(0.556 0 0)"
126
+ };
127
+
128
+ // src/typography.ts
129
+ var fontFamily = {
130
+ /** Body text — Inter or system sans */
131
+ sans: [
132
+ "var(--font-inter)",
133
+ "ui-sans-serif",
134
+ "system-ui",
135
+ "-apple-system",
136
+ "BlinkMacSystemFont",
137
+ "Segoe UI",
138
+ "Roboto",
139
+ "Helvetica Neue",
140
+ "Arial",
141
+ "sans-serif"
142
+ ],
143
+ /** Display / hero headings — Satoshi */
144
+ display: [
145
+ "Satoshi",
146
+ "ui-sans-serif",
147
+ "system-ui",
148
+ "-apple-system",
149
+ "sans-serif"
150
+ ],
151
+ /** Labels, badges, section headers — Space Grotesk */
152
+ label: [
153
+ "var(--font-space-grotesk)",
154
+ "ui-sans-serif",
155
+ "system-ui",
156
+ "sans-serif"
157
+ ],
158
+ /** Code blocks */
159
+ mono: [
160
+ "var(--font-geist-mono)",
161
+ "ui-monospace",
162
+ "SFMono-Regular",
163
+ "Menlo",
164
+ "Monaco",
165
+ "Consolas",
166
+ "monospace"
167
+ ]
168
+ };
169
+ var fontSize = {
170
+ xs: ["0.75rem", { lineHeight: "1rem" }],
171
+ sm: ["0.875rem", { lineHeight: "1.25rem" }],
172
+ base: ["1rem", { lineHeight: "1.5rem" }],
173
+ lg: ["1.125rem", { lineHeight: "1.75rem" }],
174
+ xl: ["1.25rem", { lineHeight: "1.75rem" }],
175
+ "2xl": ["1.5rem", { lineHeight: "2rem" }],
176
+ "3xl": ["1.875rem", { lineHeight: "2.25rem" }],
177
+ "4xl": ["2.25rem", { lineHeight: "2.5rem" }],
178
+ "5xl": ["3rem", { lineHeight: "1.15" }],
179
+ "6xl": ["3.75rem", { lineHeight: "1.1" }]
180
+ };
181
+ var letterSpacing = {
182
+ tighter: "-0.05em",
183
+ tight: "-0.025em",
184
+ normal: "0em",
185
+ wide: "0.025em",
186
+ wider: "0.05em",
187
+ label: "0.15em"
188
+ };
189
+
190
+ // src/spacing.ts
191
+ var radius = {
192
+ sm: "calc(var(--radius) * 0.6)",
193
+ md: "calc(var(--radius) * 0.8)",
194
+ lg: "var(--radius)",
195
+ xl: "calc(var(--radius) * 1.4)",
196
+ "2xl": "calc(var(--radius) * 1.8)",
197
+ "3xl": "calc(var(--radius) * 2.2)",
198
+ "4xl": "calc(var(--radius) * 2.6)",
199
+ full: "9999px"
200
+ };
201
+ var radiusBase = "0.625rem";
202
+ var container = {
203
+ center: true,
204
+ padding: {
205
+ DEFAULT: "1.25rem",
206
+ sm: "1.5rem",
207
+ lg: "2rem",
208
+ xl: "2.5rem",
209
+ "2xl": "3rem"
210
+ },
211
+ screens: {
212
+ "2xl": "1320px"
213
+ }
214
+ };
215
+
216
+ // src/shadows.ts
217
+ var boxShadow = {
218
+ /** Subtle teal glow for CTAs */
219
+ glow: "0 0 30px rgba(0, 196, 180, 0.15)",
220
+ /** Strong teal glow on hover */
221
+ glowStrong: "0 0 40px rgba(0, 196, 180, 0.4)",
222
+ /** Deep panel shadow with inset highlight (glassmorphism) */
223
+ panel: "0 24px 80px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255,255,255,0.08)",
224
+ /** Glass panel shadow */
225
+ glass: "0 28px 90px rgba(0, 0, 0, 0.38), 0 0 36px rgba(0, 196, 180, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.06)"
226
+ };
227
+
228
+ // src/animations.ts
229
+ var keyframes = {
230
+ marquee: {
231
+ "0%": { transform: "translate3d(0, 0, 0)" },
232
+ "100%": { transform: "translate3d(-50%, 0, 0)" }
233
+ },
234
+ "marquee-reverse": {
235
+ "0%": { transform: "translate3d(-50%, 0, 0)" },
236
+ "100%": { transform: "translate3d(0, 0, 0)" }
237
+ },
238
+ shimmer: {
239
+ "0%": { transform: "translate3d(-150%, 0, 0)" },
240
+ "100%": { transform: "translate3d(150%, 0, 0)" }
241
+ },
242
+ float: {
243
+ "0%, 100%": { transform: "translate3d(0, 0, 0)" },
244
+ "50%": { transform: "translate3d(0, -12px, 0)" }
245
+ },
246
+ pulseGlow: {
247
+ "0%, 100%": { boxShadow: "0 0 0 rgba(0, 196, 180, 0.0)" },
248
+ "50%": { boxShadow: "0 0 36px rgba(0, 196, 180, 0.18)" }
249
+ }
250
+ };
251
+ var animation = {
252
+ marquee: "marquee 28s linear infinite",
253
+ "marquee-slow": "marquee 42s linear infinite",
254
+ "marquee-reverse": "marquee-reverse 32s linear infinite",
255
+ shimmer: "shimmer 4.2s linear infinite",
256
+ float: "float 8s ease-in-out infinite",
257
+ "pulse-glow": "pulseGlow 5s ease-in-out infinite"
258
+ };
259
+ var easing = {
260
+ spring: [0.22, 1, 0.36, 1],
261
+ smooth: [0.4, 0, 0.2, 1],
262
+ snappy: [0.2, 0, 0, 1]
263
+ };
264
+
265
+ // src/gradients.ts
266
+ var backgroundImage = {
267
+ /** CTA gradient: navy → aqua (production brand) */
268
+ "cta-gradient": "linear-gradient(135deg, #1f2d56, #8fccb6)",
269
+ /** Grid pattern overlay for hero backgrounds */
270
+ "hero-grid": "linear-gradient(to right, rgba(255,255,255,0.04) 1px, transparent 1px), linear-gradient(to bottom, rgba(255,255,255,0.04) 1px, transparent 1px)"
271
+ };
272
+ var glassPanel = {
273
+ background: `radial-gradient(circle at top, rgba(255, 255, 255, 0.06), transparent 42%),
274
+ linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03)),
275
+ rgba(15, 23, 42, 0.84)`,
276
+ border: "1px solid rgba(255, 255, 255, 0.08)",
277
+ backdropFilter: "blur(20px)"
278
+ };
279
+ var spotlight = {
280
+ background: `radial-gradient(circle at 50% 0%, rgba(0, 196, 180, 0.18), transparent 28%),
281
+ radial-gradient(circle at 100% 0%, rgba(124, 58, 237, 0.2), transparent 25%)`
282
+ };
283
+ var darkBody = {
284
+ background: `radial-gradient(circle at top, rgba(14, 165, 233, 0.12), transparent 32%),
285
+ radial-gradient(circle at 80% 10%, rgba(124, 58, 237, 0.14), transparent 28%),
286
+ linear-gradient(180deg, #070b14 0%, #080b14 45%, #09111f 100%)`
287
+ };
288
+
289
+ // src/tailwind-preset.ts
290
+ var wmmPreset = {
291
+ darkMode: ["class"],
292
+ theme: {
293
+ container,
294
+ extend: {
295
+ colors: {
296
+ background: "var(--background)",
297
+ foreground: "var(--foreground)",
298
+ card: {
299
+ DEFAULT: "var(--card)",
300
+ foreground: "var(--card-foreground)"
301
+ },
302
+ popover: {
303
+ DEFAULT: "var(--popover)",
304
+ foreground: "var(--popover-foreground)"
305
+ },
306
+ primary: {
307
+ DEFAULT: "var(--primary)",
308
+ foreground: "var(--primary-foreground)"
309
+ },
310
+ secondary: {
311
+ DEFAULT: "var(--secondary)",
312
+ foreground: "var(--secondary-foreground)"
313
+ },
314
+ muted: {
315
+ DEFAULT: "var(--muted)",
316
+ foreground: "var(--muted-foreground)"
317
+ },
318
+ accent: {
319
+ DEFAULT: "var(--accent)",
320
+ foreground: "var(--accent-foreground)"
321
+ },
322
+ destructive: "var(--destructive)",
323
+ border: "var(--border)",
324
+ input: "var(--input)",
325
+ ring: "var(--ring)",
326
+ // Brand accents (from theme CSS — available when WMM theme is loaded)
327
+ teal: "var(--teal, #8fccb6)",
328
+ violet: "var(--violet, #869ce2)",
329
+ // Sidebar
330
+ sidebar: {
331
+ DEFAULT: "var(--sidebar)",
332
+ foreground: "var(--sidebar-foreground)",
333
+ primary: "var(--sidebar-primary)",
334
+ "primary-foreground": "var(--sidebar-primary-foreground)",
335
+ accent: "var(--sidebar-accent)",
336
+ "accent-foreground": "var(--sidebar-accent-foreground)",
337
+ border: "var(--sidebar-border)",
338
+ ring: "var(--sidebar-ring)"
339
+ },
340
+ // Charts
341
+ chart: {
342
+ 1: "var(--chart-1)",
343
+ 2: "var(--chart-2)",
344
+ 3: "var(--chart-3)",
345
+ 4: "var(--chart-4)",
346
+ 5: "var(--chart-5)"
347
+ }
348
+ },
349
+ fontFamily: {
350
+ // spread the `as const` token tuples → mutable string[] (Tailwind's Config type)
351
+ sans: [...fontFamily.sans],
352
+ display: [...fontFamily.display],
353
+ label: [...fontFamily.label],
354
+ mono: [...fontFamily.mono]
355
+ },
356
+ backgroundImage,
357
+ boxShadow,
358
+ keyframes,
359
+ animation,
360
+ borderRadius: {
361
+ sm: "calc(var(--radius) * 0.6)",
362
+ md: "calc(var(--radius) * 0.8)",
363
+ lg: "var(--radius)",
364
+ xl: "calc(var(--radius) * 1.4)",
365
+ "2xl": "calc(var(--radius) * 1.8)",
366
+ "3xl": "calc(var(--radius) * 2.2)",
367
+ "4xl": "calc(var(--radius) * 2.6)"
368
+ },
369
+ backdropBlur: {
370
+ xs: "4px"
371
+ }
372
+ }
373
+ }
374
+ };
375
+
376
+ // src/theme-runtime.ts
377
+ var THEMES = ["light", "dark", "wmm"];
378
+ var DEFAULT_THEME = "dark";
379
+ var THEME_STORAGE_KEY = "wmm-theme";
380
+ function isThemeName(v) {
381
+ return typeof v === "string" && THEMES.includes(v);
382
+ }
383
+ var themeBootScript = `(function(){try{var t=localStorage.getItem('${THEME_STORAGE_KEY}');if(t==='light'||t==='dark'||t==='wmm'){document.documentElement.setAttribute('data-theme',t);}}catch(e){}})();`;
384
+ function getStoredTheme() {
385
+ if (typeof window === "undefined") return null;
386
+ try {
387
+ const t = window.localStorage.getItem(THEME_STORAGE_KEY);
388
+ return isThemeName(t) ? t : null;
389
+ } catch {
390
+ return null;
391
+ }
392
+ }
393
+ function applyTheme(name) {
394
+ if (typeof document !== "undefined") {
395
+ document.documentElement.setAttribute("data-theme", name);
396
+ }
397
+ try {
398
+ window.localStorage.setItem(THEME_STORAGE_KEY, name);
399
+ } catch {
400
+ }
401
+ }
402
+
403
+ // src/font-size-runtime.ts
404
+ var FONT_SIZES = ["md", "lg", "xl"];
405
+ var DEFAULT_FONT_SIZE = "md";
406
+ var FONT_SIZE_STORAGE_KEY = "wmm-font-size";
407
+ function isFontSizeName(v) {
408
+ return typeof v === "string" && FONT_SIZES.includes(v);
409
+ }
410
+ var fontSizeBootScript = `(function(){try{var f=localStorage.getItem('${FONT_SIZE_STORAGE_KEY}');if(f==='md'||f==='lg'||f==='xl'){document.documentElement.classList.add('font-'+f);}}catch(e){}})();`;
411
+ function getStoredFontSize() {
412
+ if (typeof window === "undefined") return null;
413
+ try {
414
+ const f = window.localStorage.getItem(FONT_SIZE_STORAGE_KEY);
415
+ return isFontSizeName(f) ? f : null;
416
+ } catch {
417
+ return null;
418
+ }
419
+ }
420
+ function applyFontSize(name) {
421
+ if (typeof document !== "undefined") {
422
+ const d = document.documentElement;
423
+ for (const s of FONT_SIZES) d.classList.remove(`font-${s}`);
424
+ d.classList.add(`font-${name}`);
425
+ }
426
+ try {
427
+ window.localStorage.setItem(FONT_SIZE_STORAGE_KEY, name);
428
+ } catch {
429
+ }
430
+ }
431
+ // Annotate the CommonJS export names for ESM import in node:
432
+ 0 && (module.exports = {
433
+ DEFAULT_FONT_SIZE,
434
+ DEFAULT_THEME,
435
+ FONT_SIZES,
436
+ FONT_SIZE_STORAGE_KEY,
437
+ THEMES,
438
+ THEME_STORAGE_KEY,
439
+ animation,
440
+ applyFontSize,
441
+ applyTheme,
442
+ backgroundImage,
443
+ boxShadow,
444
+ colors,
445
+ colorsDark,
446
+ container,
447
+ darkBody,
448
+ easing,
449
+ fontFamily,
450
+ fontSize,
451
+ fontSizeBootScript,
452
+ getStoredFontSize,
453
+ getStoredTheme,
454
+ glassPanel,
455
+ isFontSizeName,
456
+ isThemeName,
457
+ keyframes,
458
+ letterSpacing,
459
+ radius,
460
+ radiusBase,
461
+ spotlight,
462
+ themeBootScript,
463
+ wmmPreset
464
+ });
package/dist/index.mjs ADDED
@@ -0,0 +1,137 @@
1
+ import {
2
+ DEFAULT_FONT_SIZE,
3
+ DEFAULT_THEME,
4
+ FONT_SIZES,
5
+ FONT_SIZE_STORAGE_KEY,
6
+ THEMES,
7
+ THEME_STORAGE_KEY,
8
+ applyFontSize,
9
+ applyTheme,
10
+ fontSizeBootScript,
11
+ getStoredFontSize,
12
+ getStoredTheme,
13
+ isFontSizeName,
14
+ isThemeName,
15
+ themeBootScript
16
+ } from "./chunk-2IXFKPNU.mjs";
17
+ import {
18
+ animation,
19
+ backgroundImage,
20
+ boxShadow,
21
+ container,
22
+ darkBody,
23
+ easing,
24
+ fontFamily,
25
+ fontSize,
26
+ glassPanel,
27
+ keyframes,
28
+ letterSpacing,
29
+ radius,
30
+ radiusBase,
31
+ spotlight,
32
+ wmmPreset
33
+ } from "./chunk-4FF2FHY6.mjs";
34
+
35
+ // src/colors.ts
36
+ var colors = {
37
+ /* ── Semantic (light mode defaults) ──────────────────────────── */
38
+ background: "oklch(1 0 0)",
39
+ foreground: "oklch(0.145 0 0)",
40
+ card: "oklch(1 0 0)",
41
+ cardForeground: "oklch(0.145 0 0)",
42
+ popover: "oklch(1 0 0)",
43
+ popoverForeground: "oklch(0.145 0 0)",
44
+ primary: "oklch(0.205 0 0)",
45
+ primaryForeground: "oklch(0.985 0 0)",
46
+ secondary: "oklch(0.97 0 0)",
47
+ secondaryForeground: "oklch(0.205 0 0)",
48
+ muted: "oklch(0.97 0 0)",
49
+ mutedForeground: "oklch(0.556 0 0)",
50
+ accent: "oklch(0.97 0 0)",
51
+ accentForeground: "oklch(0.205 0 0)",
52
+ destructive: "oklch(0.577 0.245 27.325)",
53
+ border: "oklch(0.922 0 0)",
54
+ input: "oklch(0.922 0 0)",
55
+ ring: "oklch(0.708 0 0)",
56
+ /* ── Chart palette ──────────────────────────────────────────── */
57
+ chart1: "oklch(0.87 0 0)",
58
+ chart2: "oklch(0.556 0 0)",
59
+ chart3: "oklch(0.439 0 0)",
60
+ chart4: "oklch(0.371 0 0)",
61
+ chart5: "oklch(0.269 0 0)",
62
+ /* ── Sidebar (OS / dashboard apps) ──────────────────────────── */
63
+ sidebar: "oklch(0.985 0 0)",
64
+ sidebarForeground: "oklch(0.145 0 0)",
65
+ sidebarPrimary: "oklch(0.205 0 0)",
66
+ sidebarPrimaryForeground: "oklch(0.985 0 0)",
67
+ sidebarAccent: "oklch(0.97 0 0)",
68
+ sidebarAccentForeground: "oklch(0.205 0 0)",
69
+ sidebarBorder: "oklch(0.922 0 0)",
70
+ sidebarRing: "oklch(0.708 0 0)"
71
+ };
72
+ var colorsDark = {
73
+ background: "oklch(0.145 0 0)",
74
+ foreground: "oklch(0.985 0 0)",
75
+ card: "oklch(0.205 0 0)",
76
+ cardForeground: "oklch(0.985 0 0)",
77
+ popover: "oklch(0.205 0 0)",
78
+ popoverForeground: "oklch(0.985 0 0)",
79
+ primary: "oklch(0.922 0 0)",
80
+ primaryForeground: "oklch(0.205 0 0)",
81
+ secondary: "oklch(0.269 0 0)",
82
+ secondaryForeground: "oklch(0.985 0 0)",
83
+ muted: "oklch(0.269 0 0)",
84
+ mutedForeground: "oklch(0.708 0 0)",
85
+ accent: "oklch(0.269 0 0)",
86
+ accentForeground: "oklch(0.985 0 0)",
87
+ destructive: "oklch(0.704 0.191 22.216)",
88
+ border: "oklch(1 0 0 / 10%)",
89
+ input: "oklch(1 0 0 / 15%)",
90
+ ring: "oklch(0.556 0 0)",
91
+ chart1: "oklch(0.87 0 0)",
92
+ chart2: "oklch(0.556 0 0)",
93
+ chart3: "oklch(0.439 0 0)",
94
+ chart4: "oklch(0.371 0 0)",
95
+ chart5: "oklch(0.269 0 0)",
96
+ sidebar: "oklch(0.205 0 0)",
97
+ sidebarForeground: "oklch(0.985 0 0)",
98
+ sidebarPrimary: "oklch(0.488 0.243 264.376)",
99
+ sidebarPrimaryForeground: "oklch(0.985 0 0)",
100
+ sidebarAccent: "oklch(0.269 0 0)",
101
+ sidebarAccentForeground: "oklch(0.985 0 0)",
102
+ sidebarBorder: "oklch(1 0 0 / 10%)",
103
+ sidebarRing: "oklch(0.556 0 0)"
104
+ };
105
+ export {
106
+ DEFAULT_FONT_SIZE,
107
+ DEFAULT_THEME,
108
+ FONT_SIZES,
109
+ FONT_SIZE_STORAGE_KEY,
110
+ THEMES,
111
+ THEME_STORAGE_KEY,
112
+ animation,
113
+ applyFontSize,
114
+ applyTheme,
115
+ backgroundImage,
116
+ boxShadow,
117
+ colors,
118
+ colorsDark,
119
+ container,
120
+ darkBody,
121
+ easing,
122
+ fontFamily,
123
+ fontSize,
124
+ fontSizeBootScript,
125
+ getStoredFontSize,
126
+ getStoredTheme,
127
+ glassPanel,
128
+ isFontSizeName,
129
+ isThemeName,
130
+ keyframes,
131
+ letterSpacing,
132
+ radius,
133
+ radiusBase,
134
+ spotlight,
135
+ themeBootScript,
136
+ wmmPreset
137
+ };
@@ -0,0 +1,61 @@
1
+ import * as React from 'react';
2
+ import { c as FontSizeName, e as ThemeName } from './font-size-runtime-DlvZXy2n.mjs';
3
+
4
+ /**
5
+ * @web-my-money/tokens/react — versioned React theme helpers.
6
+ * Wraps the framework-agnostic runtime (theme-runtime.ts) so every app shares one
7
+ * theme vocabulary: light / dark / wmm (default dark, persisted as `wmm-theme`).
8
+ *
9
+ * import { ThemeProvider, ThemeToggle, useTheme } from "@web-my-money/tokens/react";
10
+ *
11
+ * React is an OPTIONAL peer — the core tokens package stays framework-agnostic;
12
+ * React is only pulled in if you import this subpath.
13
+ */
14
+
15
+ interface ThemeCtx {
16
+ theme: ThemeName;
17
+ setTheme: (t: ThemeName) => void;
18
+ themes: readonly ThemeName[];
19
+ }
20
+ declare function ThemeProvider({ children }: {
21
+ children: React.ReactNode;
22
+ }): React.JSX.Element;
23
+ declare function useTheme(): ThemeCtx;
24
+ /** Minimal segmented theme switcher styled from token CSS vars. */
25
+ declare function ThemeToggle({ className }: {
26
+ className?: string;
27
+ }): React.JSX.Element;
28
+ /** Persisted 3-step text-size preference, synced with whatever `fontSizeBootScript` already applied. */
29
+ declare function useFontSizePreference(): [FontSizeName, (size: FontSizeName) => void];
30
+ /**
31
+ * Three "A" buttons that scale the whole UI via `html.font-*` classes. Modeled
32
+ * directly on wmm-finance-hr's real FontSizeToggle. Uses inline `style` with
33
+ * token CSS vars (not Tailwind utility classes) — same reasoning as
34
+ * `ThemeToggle` above: `tokens` ships no rendered-JSX Tailwind classes, so
35
+ * consuming apps never need a `@source` directive for this package.
36
+ */
37
+ declare function FontSizeToggle({ className }: {
38
+ className?: string;
39
+ }): React.JSX.Element;
40
+ declare const BREAKPOINTS: {
41
+ readonly sm: 640;
42
+ readonly md: 768;
43
+ readonly lg: 1024;
44
+ readonly xl: 1280;
45
+ readonly "2xl": 1536;
46
+ };
47
+ type Breakpoint = keyof typeof BREAKPOINTS;
48
+ /**
49
+ * SSR-safe media query hook — `false` on the server and on first client render
50
+ * (avoids hydration mismatch), then updates after mount. Prefer CSS (`md:flex`)
51
+ * for pure styling; reach for this only when a component needs the boolean in
52
+ * JS (e.g. choosing AppShell's drawer vs. static sidebar, swapping a chart's
53
+ * orientation, rendering a Sheet on mobile vs. a Dialog on desktop).
54
+ *
55
+ * const isMobile = !useBreakpoint("md"); // true below 768px
56
+ */
57
+ declare function useMediaQuery(query: string): boolean;
58
+ /** True once the viewport is at or above the named breakpoint. SSR-safe (see useMediaQuery). */
59
+ declare function useBreakpoint(bp: Breakpoint): boolean;
60
+
61
+ export { type Breakpoint, FontSizeToggle, ThemeProvider, ThemeToggle, useBreakpoint, useFontSizePreference, useMediaQuery, useTheme };