@ebtgames/theme 0.1.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.
@@ -0,0 +1,5 @@
1
+ import * as _chakra_ui_react from '@chakra-ui/react';
2
+
3
+ declare const system: _chakra_ui_react.SystemContext;
4
+
5
+ export { system };
package/dist/index.js ADDED
@@ -0,0 +1,700 @@
1
+ // src/index.ts
2
+ import { createSystem, defaultConfig } from "@chakra-ui/react";
3
+
4
+ // src/tokens/colors.ts
5
+ import { defineTokens } from "@chakra-ui/react";
6
+ var colors = defineTokens.colors({
7
+ // Surface Colors (deep purple monochrome)
8
+ surface: {
9
+ 0: { value: "#1B0F26" },
10
+ // Base background - darkest
11
+ 1: { value: "#24122F" },
12
+ // Elevated surfaces
13
+ 2: { value: "#2B173A" },
14
+ // Cards/panels
15
+ 3: { value: "#342046" }
16
+ // Raised/hover states
17
+ },
18
+ // Text Colors (WCAG AA verified)
19
+ text: {
20
+ primary: { value: "#F5F1FA" },
21
+ // 16.49:1 contrast
22
+ secondary: { value: "#D8D0E3" },
23
+ // 12.29:1 contrast
24
+ muted: { value: "#B9AEC9" },
25
+ // 8.72:1 contrast
26
+ disabled: { value: "#9E92B4" }
27
+ // 6.32:1 contrast
28
+ },
29
+ // Primary (Purple - interactive)
30
+ primary: {
31
+ DEFAULT: { value: "#7C5BD6" },
32
+ hover: { value: "#6F4FCB" }
33
+ },
34
+ // Utility (Teal - complementary)
35
+ utility: {
36
+ DEFAULT: { value: "#2AB9B0" },
37
+ hover: { value: "#52D6CC" }
38
+ },
39
+ // Emphasis (Rose - sparingly)
40
+ emphasis: {
41
+ DEFAULT: { value: "#D86B9A" }
42
+ },
43
+ // Border Colors (neutral gray)
44
+ border: {
45
+ subtle: { value: "#3A3341" },
46
+ strong: { value: "#4A4354" }
47
+ },
48
+ // Status Colors
49
+ status: {
50
+ success: { value: "#2AB9B0" },
51
+ // Use teal
52
+ warning: { value: "#D9A24F" },
53
+ // Amber
54
+ error: { value: "#D8524D" }
55
+ // Red
56
+ },
57
+ // Overlays (purple-based transparency)
58
+ overlay: {
59
+ subtle: { value: "rgba(124, 91, 214, 0.05)" },
60
+ // Purple hover tint
61
+ light: { value: "rgba(124, 91, 214, 0.1)" },
62
+ // Purple selected
63
+ medium: { value: "rgba(124, 91, 214, 0.15)" },
64
+ // Purple active
65
+ heavy: { value: "rgba(124, 91, 214, 0.25)" },
66
+ // Purple emphasis
67
+ error: { value: "rgba(216, 82, 77, 0.12)" },
68
+ // Error tint
69
+ backdrop: {
70
+ light: { value: "rgba(27, 15, 38, 0.8)" },
71
+ heavy: { value: "rgba(27, 15, 38, 0.95)" }
72
+ }
73
+ }
74
+ });
75
+
76
+ // src/tokens/typography.ts
77
+ import { defineTokens as defineTokens2 } from "@chakra-ui/react";
78
+ var fonts = defineTokens2.fonts({
79
+ display: { value: "'Courier New', 'Courier', monospace" },
80
+ heading: { value: "'Courier New', 'Courier', monospace" },
81
+ body: { value: "'Courier New', 'Courier', monospace" }
82
+ });
83
+ var fontSizes = defineTokens2.fontSizes({
84
+ xs: { value: "0.75rem" },
85
+ // 12px - helper text
86
+ sm: { value: "0.875rem" },
87
+ // 14px - secondary labels
88
+ base: { value: "1rem" },
89
+ // 16px - body text
90
+ md: { value: "1.125rem" },
91
+ // 18px - emphasized body
92
+ lg: { value: "1.25rem" },
93
+ // 20px - section headings
94
+ xl: { value: "1.5rem" },
95
+ // 24px - modal titles
96
+ "2xl": { value: "2rem" },
97
+ // 32px - page titles
98
+ "3xl": { value: "3rem" },
99
+ // 48px - hero text
100
+ "4xl": { value: "4rem" },
101
+ // 64px - display text
102
+ // Responsive sizes
103
+ cell: { value: "clamp(1rem, 3vw, 1.5rem)" },
104
+ hero: { value: "clamp(2.5rem, 8vw, 4rem)" },
105
+ subtitle: { value: "clamp(1rem, 3vw, 1.25rem)" }
106
+ });
107
+ var fontWeights = defineTokens2.fontWeights({
108
+ normal: { value: 400 },
109
+ medium: { value: 600 },
110
+ bold: { value: 700 }
111
+ });
112
+ var letterSpacings = defineTokens2.letterSpacings({
113
+ tight: { value: "0.05em" },
114
+ normal: { value: "0.1em" },
115
+ wide: { value: "0.2em" }
116
+ });
117
+
118
+ // src/tokens/spacing.ts
119
+ import { defineTokens as defineTokens3 } from "@chakra-ui/react";
120
+ var spacing = defineTokens3.spacing({
121
+ "2xs": { value: "0.125rem" },
122
+ // 2px - micro gaps
123
+ xs: { value: "0.25rem" },
124
+ // 4px
125
+ sm: { value: "0.5rem" },
126
+ // 8px
127
+ md: { value: "1rem" },
128
+ // 16px
129
+ lg: { value: "1.5rem" },
130
+ // 24px
131
+ xl: { value: "2rem" },
132
+ // 32px
133
+ "2xl": { value: "3rem" }
134
+ // 48px
135
+ });
136
+
137
+ // src/tokens/borders.ts
138
+ import { defineTokens as defineTokens4 } from "@chakra-ui/react";
139
+ var borderWidths = defineTokens4.borderWidths({
140
+ thin: { value: "1px" },
141
+ base: { value: "2px" },
142
+ thick: { value: "3px" }
143
+ });
144
+ var radii = defineTokens4.radii({
145
+ sm: { value: "2px" },
146
+ md: { value: "4px" },
147
+ lg: { value: "6px" }
148
+ });
149
+
150
+ // src/tokens/shadows.ts
151
+ import { defineTokens as defineTokens5 } from "@chakra-ui/react";
152
+ var shadows = defineTokens5.shadows({
153
+ // Depth shadows (layered)
154
+ xs: { value: "0 1px 2px rgba(0, 0, 0, 0.4)" },
155
+ sm: { value: "0 2px 8px rgba(0, 0, 0, 0.5), 0 1px 3px rgba(0, 0, 0, 0.3)" },
156
+ md: { value: "0 4px 16px rgba(0, 0, 0, 0.6), 0 2px 6px rgba(0, 0, 0, 0.4)" },
157
+ lg: { value: "0 8px 24px rgba(0, 0, 0, 0.7), 0 4px 12px rgba(0, 0, 0, 0.5)" },
158
+ xl: { value: "0 16px 48px rgba(0, 0, 0, 0.8), 0 8px 24px rgba(0, 0, 0, 0.6)" },
159
+ // Glow shadows (primary - purple)
160
+ glow: {
161
+ primary: { value: "0 0 10px rgba(124, 91, 214, 0.4)" },
162
+ "primary-lg": { value: "0 0 20px rgba(124, 91, 214, 0.5), 0 0 40px rgba(124, 91, 214, 0.3)" },
163
+ "primary-xl": { value: "0 0 30px rgba(124, 91, 214, 0.6), 0 0 60px rgba(124, 91, 214, 0.4)" },
164
+ // Utility (teal)
165
+ utility: { value: "0 0 10px rgba(42, 185, 176, 0.3)" },
166
+ "utility-lg": { value: "0 0 20px rgba(42, 185, 176, 0.4), 0 0 40px rgba(42, 185, 176, 0.2)" },
167
+ // Emphasis (rose)
168
+ emphasis: { value: "0 0 10px rgba(216, 107, 154, 0.3)" },
169
+ "emphasis-lg": { value: "0 0 20px rgba(216, 107, 154, 0.4), 0 0 40px rgba(216, 107, 154, 0.2)" },
170
+ // Error (red)
171
+ error: { value: "0 0 10px rgba(216, 82, 77, 0.4)" }
172
+ },
173
+ // Inset shadows
174
+ inset: {
175
+ primary: { value: "inset 0 0 10px rgba(124, 91, 214, 0.3)" },
176
+ subtle: { value: "inset 0 1px 3px rgba(0, 0, 0, 0.3)" },
177
+ deep: { value: "inset 0 2px 8px rgba(0, 0, 0, 0.5)" }
178
+ }
179
+ });
180
+
181
+ // src/tokens/zIndex.ts
182
+ import { defineTokens as defineTokens6 } from "@chakra-ui/react";
183
+ var zIndex = defineTokens6.zIndex({
184
+ base: { value: 1 },
185
+ dropdown: { value: 100 },
186
+ overlay: { value: 500 },
187
+ modal: { value: 1e3 },
188
+ toast: { value: 1500 },
189
+ fullscreen: { value: 2e3 }
190
+ });
191
+
192
+ // src/semanticTokens/colors.ts
193
+ import { defineSemanticTokens } from "@chakra-ui/react";
194
+ var semanticColors = defineSemanticTokens.colors({
195
+ // Background mappings
196
+ bg: {
197
+ base: { value: "{colors.surface.0}" },
198
+ elevated: { value: "{colors.surface.1}" },
199
+ card: { value: "{colors.surface.2}" },
200
+ raised: { value: "{colors.surface.3}" }
201
+ },
202
+ // Interactive states
203
+ interactive: {
204
+ base: { value: "{colors.primary.DEFAULT}" },
205
+ hover: { value: "{colors.primary.hover}" }
206
+ },
207
+ // Border (for buttons, inputs, cards)
208
+ border: {
209
+ subtle: { value: "{colors.border.subtle}" },
210
+ strong: { value: "{colors.border.strong}" }
211
+ }
212
+ });
213
+
214
+ // src/semanticTokens/shadows.ts
215
+ import { defineSemanticTokens as defineSemanticTokens2 } from "@chakra-ui/react";
216
+ var semanticShadows = defineSemanticTokens2.shadows({
217
+ // Button shadows
218
+ button: {
219
+ base: { value: "{shadows.sm}, {shadows.inset.subtle}" },
220
+ hover: { value: "{shadows.md}, {shadows.glow.primary-lg}" }
221
+ },
222
+ // Cell shadows (most complex - 4-layer stack for selected state)
223
+ cell: {
224
+ selected: {
225
+ value: "{shadows.inset.primary}, 0 0 0 {borderWidths.base} rgba(124, 91, 214, 0.55), {shadows.glow.primary}, 0 4px 12px rgba(124, 91, 214, 0.2)"
226
+ },
227
+ conflict: {
228
+ value: "{shadows.glow.error}, 0 2px 6px rgba(216, 82, 77, 0.3)"
229
+ }
230
+ }
231
+ });
232
+
233
+ // src/semanticTokens/index.ts
234
+ var semanticTokens = {
235
+ colors: semanticColors,
236
+ shadows: semanticShadows
237
+ };
238
+
239
+ // src/keyframes/animations.ts
240
+ import { defineKeyframes } from "@chakra-ui/react";
241
+ var keyframes = defineKeyframes({
242
+ fadeIn: {
243
+ from: { opacity: "0" },
244
+ to: { opacity: "1" }
245
+ },
246
+ fadeOut: {
247
+ from: { opacity: "1" },
248
+ to: { opacity: "0" }
249
+ },
250
+ pulse: {
251
+ "0%, 100%": {
252
+ transform: "scale(1)",
253
+ opacity: "1"
254
+ },
255
+ "50%": {
256
+ transform: "scale(1.03)",
257
+ opacity: "0.95"
258
+ }
259
+ },
260
+ glow: {
261
+ "0%, 100%": {
262
+ boxShadow: "0 0 10px rgba(124, 91, 214, 0.4)"
263
+ },
264
+ "50%": {
265
+ boxShadow: "0 0 20px rgba(124, 91, 214, 0.5), 0 0 40px rgba(124, 91, 214, 0.3)"
266
+ }
267
+ },
268
+ glowHighlight: {
269
+ "0%, 100%": {
270
+ boxShadow: "0 0 10px rgba(216, 107, 154, 0.3)"
271
+ },
272
+ "50%": {
273
+ boxShadow: "0 0 20px rgba(216, 107, 154, 0.4), 0 0 40px rgba(216, 107, 154, 0.2)"
274
+ }
275
+ },
276
+ blink: {
277
+ "0%, 100%": { opacity: "1" },
278
+ "50%": { opacity: "0.3" }
279
+ },
280
+ bounce: {
281
+ "0%, 80%, 100%": {
282
+ transform: "scale(0)",
283
+ opacity: "0.5"
284
+ },
285
+ "40%": {
286
+ transform: "scale(1)",
287
+ opacity: "1"
288
+ }
289
+ },
290
+ scaleIn: {
291
+ from: {
292
+ transform: "scale(0.8)",
293
+ opacity: "0"
294
+ },
295
+ to: {
296
+ transform: "scale(1)",
297
+ opacity: "1"
298
+ }
299
+ }
300
+ });
301
+
302
+ // src/globalStyles.ts
303
+ import { defineGlobalStyles } from "@chakra-ui/react";
304
+ var globalCss = defineGlobalStyles({
305
+ // Universal reset
306
+ "*, *::before, *::after": {
307
+ boxSizing: "border-box"
308
+ },
309
+ // Body pseudo-elements for background effects
310
+ "body::before": {
311
+ content: '""',
312
+ position: "fixed",
313
+ inset: 0,
314
+ backgroundImage: `
315
+ radial-gradient(circle at 20% 50%, rgba(124, 91, 214, 0.03) 0%, transparent 50%),
316
+ radial-gradient(circle at 80% 80%, rgba(42, 185, 176, 0.02) 0%, transparent 50%)
317
+ `,
318
+ pointerEvents: "none",
319
+ zIndex: 0
320
+ },
321
+ "body::after": {
322
+ content: '""',
323
+ position: "fixed",
324
+ inset: 0,
325
+ backgroundImage: `url('data:image/svg+xml,%3Csvg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"%3E%3Cfilter id="noise"%3E%3CfeTurbulence type="fractalNoise" baseFrequency="0.9" numOctaves="4" stitchTiles="stitch"/%3E%3C/filter%3E%3Crect width="100%25" height="100%25" filter="url(%23noise)" opacity="0.03"/%3E%3C/svg%3E')`,
326
+ opacity: 0.03,
327
+ pointerEvents: "none",
328
+ zIndex: 0
329
+ },
330
+ // Custom scrollbar (webkit)
331
+ "::-webkit-scrollbar": {
332
+ width: "8px",
333
+ height: "8px"
334
+ },
335
+ "::-webkit-scrollbar-track": {
336
+ background: "{colors.surface.1}"
337
+ },
338
+ "::-webkit-scrollbar-thumb": {
339
+ background: "{colors.utility.DEFAULT}",
340
+ borderRadius: "{radii.sm}"
341
+ },
342
+ "::-webkit-scrollbar-thumb:hover": {
343
+ background: "{colors.utility.hover}"
344
+ },
345
+ // Firefox scrollbar
346
+ "*": {
347
+ scrollbarWidth: "thin",
348
+ scrollbarColor: "{colors.utility.DEFAULT} {colors.surface.1}"
349
+ },
350
+ // Selection styling
351
+ "::selection": {
352
+ background: "{colors.primary.DEFAULT}",
353
+ color: "{colors.text.primary}"
354
+ },
355
+ // Focus visible outline
356
+ ":focus-visible": {
357
+ outline: "2px solid {colors.primary.DEFAULT}",
358
+ outlineOffset: "2px"
359
+ }
360
+ });
361
+
362
+ // src/breakpoints.ts
363
+ var breakpoints = {
364
+ mobile: "767px",
365
+ tablet: "768px",
366
+ desktop: "1024px"
367
+ };
368
+
369
+ // src/recipes/button.ts
370
+ import { defineRecipe } from "@chakra-ui/react";
371
+ var buttonRecipe = defineRecipe({
372
+ className: "button",
373
+ base: {
374
+ fontFamily: "body",
375
+ fontSize: "base",
376
+ px: "lg",
377
+ py: "sm",
378
+ borderWidth: "base",
379
+ borderStyle: "solid",
380
+ borderColor: "border.strong",
381
+ background: "linear-gradient(145deg, var(--chakra-colors-surface-1), var(--chakra-colors-surface-0))",
382
+ color: "text.primary",
383
+ cursor: "pointer",
384
+ pointerEvents: "auto",
385
+ userSelect: "none",
386
+ transition: "all 200ms ease",
387
+ textTransform: "uppercase",
388
+ letterSpacing: "tight",
389
+ fontWeight: "medium",
390
+ borderRadius: "md",
391
+ boxShadow: "var(--chakra-shadows-sm), inset 0 1px 0 rgba(255, 255, 255, 0.05)",
392
+ _disabled: {
393
+ opacity: 0.5,
394
+ cursor: "not-allowed"
395
+ },
396
+ _focusVisible: {
397
+ outline: "var(--chakra-border-widths-base) solid var(--chakra-colors-primary)",
398
+ outlineOffset: "var(--chakra-border-widths-base)"
399
+ }
400
+ },
401
+ variants: {
402
+ variant: {
403
+ primary: {
404
+ borderColor: "primary",
405
+ color: "primary",
406
+ _hover: {
407
+ background: "linear-gradient(145deg, var(--chakra-colors-primary-hover), var(--chakra-colors-primary))",
408
+ color: "surface.0",
409
+ boxShadow: "var(--chakra-shadows-md), var(--chakra-shadows-glow-primary-lg)",
410
+ transform: "translateY(-2px)"
411
+ },
412
+ _active: {
413
+ transform: "translateY(0)",
414
+ boxShadow: "var(--chakra-shadows-xs), var(--chakra-shadows-glow-primary)"
415
+ }
416
+ },
417
+ secondary: {
418
+ borderColor: "utility",
419
+ color: "utility",
420
+ _hover: {
421
+ background: "linear-gradient(145deg, var(--chakra-colors-utility), var(--chakra-colors-utility-hover))",
422
+ color: "surface.0",
423
+ boxShadow: "var(--chakra-shadows-md), var(--chakra-shadows-glow-utility-lg)",
424
+ transform: "translateY(-2px)"
425
+ },
426
+ _active: {
427
+ transform: "translateY(0)",
428
+ boxShadow: "var(--chakra-shadows-xs), var(--chakra-shadows-glow-utility)"
429
+ }
430
+ },
431
+ danger: {
432
+ borderColor: "status.error",
433
+ color: "status.error",
434
+ _hover: {
435
+ background: "linear-gradient(145deg, var(--chakra-colors-status-error), var(--chakra-colors-status-error))",
436
+ color: "surface.0",
437
+ boxShadow: "var(--chakra-shadows-md), var(--chakra-shadows-glow-error)",
438
+ transform: "translateY(-2px)"
439
+ },
440
+ _active: {
441
+ transform: "translateY(0)",
442
+ boxShadow: "var(--chakra-shadows-xs), var(--chakra-shadows-glow-error)"
443
+ }
444
+ }
445
+ }
446
+ },
447
+ defaultVariants: {
448
+ variant: "primary"
449
+ }
450
+ });
451
+
452
+ // src/recipes/cell.ts
453
+ import { defineRecipe as defineRecipe2 } from "@chakra-ui/react";
454
+ var cellRecipe = defineRecipe2({
455
+ className: "ninefold-cell",
456
+ base: {
457
+ aspectRatio: "1",
458
+ background: "linear-gradient(145deg, {colors.surface.1}, {colors.surface.0})",
459
+ borderWidth: "thin",
460
+ borderColor: "border.subtle",
461
+ borderStyle: "solid",
462
+ color: "text.primary",
463
+ fontFamily: "body",
464
+ fontSize: "cell",
465
+ cursor: "pointer",
466
+ transition: "all var(--transition-fast) var(--ease-default)",
467
+ p: 0,
468
+ position: "relative",
469
+ display: "flex",
470
+ alignItems: "center",
471
+ justifyContent: "center",
472
+ boxShadow: "{shadows.inset.subtle}, 0 1px 2px rgba(0, 0, 0, 0.2)",
473
+ _focusVisible: {
474
+ outline: "{borderWidths.base} solid {colors.primary.DEFAULT}",
475
+ outlineOffset: "-2px",
476
+ zIndex: "base"
477
+ }
478
+ },
479
+ variants: {
480
+ state: {
481
+ normal: {
482
+ _hover: {
483
+ background: "linear-gradient(145deg, {colors.surface.2}, {colors.surface.1})",
484
+ borderColor: "primary.hover",
485
+ boxShadow: "{shadows.inset.subtle}, 0 2px 4px rgba(0, 0, 0, 0.3), {shadows.glow.primary}",
486
+ transform: "translateY(-1px)"
487
+ }
488
+ },
489
+ given: {
490
+ fontWeight: "bold",
491
+ background: "linear-gradient(145deg, {colors.surface.2}, {colors.surface.1})",
492
+ borderColor: "border.strong",
493
+ cursor: "default",
494
+ boxShadow: "{shadows.inset.subtle}, 0 2px 4px rgba(0, 0, 0, 0.3)",
495
+ _hover: {
496
+ background: "linear-gradient(145deg, {colors.surface.2}, {colors.surface.1})",
497
+ borderColor: "border.strong",
498
+ boxShadow: "{shadows.inset.subtle}, 0 2px 4px rgba(0, 0, 0, 0.3)",
499
+ transform: "none"
500
+ }
501
+ },
502
+ selected: {
503
+ background: "linear-gradient(145deg, rgba(124, 91, 214, 0.2), rgba(124, 91, 214, 0.1))",
504
+ borderColor: "primary.DEFAULT",
505
+ boxShadow: "cell.selected",
506
+ transform: "translateY(-2px)"
507
+ },
508
+ conflict: {
509
+ background: "linear-gradient(145deg, rgba(216, 82, 77, 0.2), rgba(216, 82, 77, 0.1))",
510
+ borderColor: "status.error",
511
+ color: "status.error",
512
+ boxShadow: "cell.conflict"
513
+ },
514
+ selectedConflict: {
515
+ background: "linear-gradient(145deg, rgba(216, 82, 77, 0.2), rgba(216, 82, 77, 0.1))",
516
+ borderColor: "status.error",
517
+ color: "status.error",
518
+ boxShadow: "cell.conflict",
519
+ transform: "translateY(-2px)"
520
+ }
521
+ }
522
+ },
523
+ defaultVariants: {
524
+ state: "normal"
525
+ }
526
+ });
527
+
528
+ // src/recipes/timer.ts
529
+ import { defineRecipe as defineRecipe3 } from "@chakra-ui/react";
530
+ var timerRecipe = defineRecipe3({
531
+ base: {
532
+ display: "flex",
533
+ alignItems: "center",
534
+ gap: "sm",
535
+ fontFamily: "body",
536
+ fontSize: "lg",
537
+ color: "primary",
538
+ paddingY: "sm",
539
+ paddingX: "md",
540
+ borderWidth: "base",
541
+ borderStyle: "solid",
542
+ borderColor: "border.strong",
543
+ background: "surface.1",
544
+ justifyContent: "center"
545
+ }
546
+ });
547
+
548
+ // src/recipes/index.ts
549
+ var recipes = {
550
+ button: buttonRecipe,
551
+ cell: cellRecipe,
552
+ timer: timerRecipe
553
+ };
554
+
555
+ // src/slotRecipes/modal.ts
556
+ import { defineSlotRecipe } from "@chakra-ui/react";
557
+ var modalSlotRecipe = defineSlotRecipe({
558
+ className: "modal",
559
+ slots: ["backdrop", "modal", "header", "title", "content"],
560
+ base: {
561
+ backdrop: {
562
+ position: "fixed",
563
+ inset: 0,
564
+ background: "{colors.overlay.backdrop.heavy}",
565
+ backdropFilter: "blur(8px)",
566
+ display: "flex",
567
+ alignItems: "center",
568
+ justifyContent: "center",
569
+ zIndex: "modal",
570
+ padding: "md"
571
+ },
572
+ modal: {
573
+ background: "linear-gradient(145deg, {colors.surface.2}, {colors.surface.1})",
574
+ borderWidth: "base",
575
+ borderStyle: "solid",
576
+ borderColor: "primary.DEFAULT",
577
+ maxWidth: "500px",
578
+ width: "100%",
579
+ maxHeight: "90vh",
580
+ overflowY: "auto",
581
+ boxShadow: "{shadows.xl}, {shadows.glow.primary-xl}, inset 0 1px 0 rgba(255, 255, 255, 0.1)",
582
+ borderRadius: "md"
583
+ },
584
+ header: {
585
+ padding: "lg",
586
+ borderBottomWidth: "thin",
587
+ borderBottomStyle: "solid",
588
+ borderBottomColor: "border.subtle",
589
+ background: "linear-gradient(180deg, {colors.overlay.light}, transparent)"
590
+ },
591
+ title: {
592
+ margin: 0,
593
+ fontFamily: "display",
594
+ fontSize: "xl",
595
+ color: "text.primary",
596
+ textTransform: "uppercase",
597
+ letterSpacing: "tight",
598
+ textShadow: "0 2px 4px rgba(0, 0, 0, 0.5)"
599
+ },
600
+ content: {
601
+ padding: "lg"
602
+ }
603
+ }
604
+ });
605
+
606
+ // src/slotRecipes/victoryScreen.ts
607
+ import { defineSlotRecipe as defineSlotRecipe2 } from "@chakra-ui/react";
608
+ var victoryScreenSlotRecipe = defineSlotRecipe2({
609
+ slots: ["overlay", "content", "title", "stats", "badge", "actions"],
610
+ base: {
611
+ overlay: {
612
+ position: "fixed",
613
+ inset: 0,
614
+ background: "overlay.backdrop.heavy",
615
+ display: "flex",
616
+ alignItems: "center",
617
+ justifyContent: "center",
618
+ zIndex: "overlay",
619
+ padding: "md"
620
+ },
621
+ content: {
622
+ maxWidth: "400px",
623
+ width: "100%",
624
+ textAlign: "center",
625
+ display: "flex",
626
+ flexDirection: "column",
627
+ gap: "xl",
628
+ padding: "xl",
629
+ borderWidth: "thick",
630
+ borderStyle: "solid",
631
+ borderColor: "border.strong",
632
+ background: "surface.2",
633
+ boxShadow: "glow.primary-xl"
634
+ },
635
+ title: {
636
+ fontFamily: "display",
637
+ fontSize: "3xl",
638
+ color: "text.primary",
639
+ letterSpacing: "wide",
640
+ textShadow: "glow.emphasis-lg",
641
+ animation: "pulse 2s ease-in-out infinite"
642
+ },
643
+ stats: {
644
+ display: "flex",
645
+ flexDirection: "column",
646
+ gap: "md"
647
+ },
648
+ badge: {
649
+ display: "flex",
650
+ alignItems: "center",
651
+ justifyContent: "center",
652
+ gap: "sm",
653
+ padding: "md",
654
+ borderWidth: "base",
655
+ borderStyle: "solid",
656
+ borderColor: "emphasis",
657
+ background: "overlay.subtle",
658
+ animation: "glowHighlight 2s ease-in-out infinite"
659
+ },
660
+ actions: {
661
+ display: "flex",
662
+ flexDirection: "column",
663
+ gap: "md"
664
+ }
665
+ }
666
+ });
667
+
668
+ // src/slotRecipes/index.ts
669
+ var slotRecipes = {
670
+ modal: modalSlotRecipe,
671
+ victoryScreen: victoryScreenSlotRecipe
672
+ };
673
+
674
+ // src/index.ts
675
+ var system = createSystem(defaultConfig, {
676
+ theme: {
677
+ tokens: {
678
+ colors,
679
+ fonts,
680
+ fontSizes,
681
+ fontWeights,
682
+ letterSpacings,
683
+ spacing,
684
+ borderWidths,
685
+ radii,
686
+ shadows,
687
+ zIndex
688
+ },
689
+ semanticTokens,
690
+ keyframes,
691
+ breakpoints,
692
+ recipes,
693
+ slotRecipes
694
+ },
695
+ globalCss
696
+ });
697
+ export {
698
+ system
699
+ };
700
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/tokens/colors.ts","../src/tokens/typography.ts","../src/tokens/spacing.ts","../src/tokens/borders.ts","../src/tokens/shadows.ts","../src/tokens/zIndex.ts","../src/semanticTokens/colors.ts","../src/semanticTokens/shadows.ts","../src/semanticTokens/index.ts","../src/keyframes/animations.ts","../src/globalStyles.ts","../src/breakpoints.ts","../src/recipes/button.ts","../src/recipes/cell.ts","../src/recipes/timer.ts","../src/recipes/index.ts","../src/slotRecipes/modal.ts","../src/slotRecipes/victoryScreen.ts","../src/slotRecipes/index.ts"],"sourcesContent":["import { createSystem, defaultConfig } from '@chakra-ui/react'\nimport { colors } from './tokens/colors'\nimport { fonts, fontSizes, fontWeights, letterSpacings } from './tokens/typography'\nimport { spacing } from './tokens/spacing'\nimport { borderWidths, radii } from './tokens/borders'\nimport { shadows } from './tokens/shadows'\nimport { zIndex } from './tokens/zIndex'\nimport { semanticTokens } from './semanticTokens'\nimport { keyframes } from './keyframes/animations'\nimport { globalCss } from './globalStyles'\nimport { breakpoints } from './breakpoints'\nimport { recipes } from './recipes'\nimport { slotRecipes } from './slotRecipes'\n\nexport const system = createSystem(defaultConfig, {\n theme: {\n tokens: {\n colors,\n fonts,\n fontSizes,\n fontWeights,\n letterSpacings,\n spacing,\n borderWidths,\n radii,\n shadows,\n zIndex,\n },\n semanticTokens,\n keyframes,\n breakpoints,\n recipes,\n slotRecipes,\n },\n globalCss,\n})\n","import { defineTokens } from '@chakra-ui/react'\n\nexport const colors = defineTokens.colors({\n // Surface Colors (deep purple monochrome)\n surface: {\n 0: { value: '#1B0F26' }, // Base background - darkest\n 1: { value: '#24122F' }, // Elevated surfaces\n 2: { value: '#2B173A' }, // Cards/panels\n 3: { value: '#342046' }, // Raised/hover states\n },\n\n // Text Colors (WCAG AA verified)\n text: {\n primary: { value: '#F5F1FA' }, // 16.49:1 contrast\n secondary: { value: '#D8D0E3' }, // 12.29:1 contrast\n muted: { value: '#B9AEC9' }, // 8.72:1 contrast\n disabled: { value: '#9E92B4' }, // 6.32:1 contrast\n },\n\n // Primary (Purple - interactive)\n primary: {\n DEFAULT: { value: '#7C5BD6' },\n hover: { value: '#6F4FCB' },\n },\n\n // Utility (Teal - complementary)\n utility: {\n DEFAULT: { value: '#2AB9B0' },\n hover: { value: '#52D6CC' },\n },\n\n // Emphasis (Rose - sparingly)\n emphasis: {\n DEFAULT: { value: '#D86B9A' },\n },\n\n // Border Colors (neutral gray)\n border: {\n subtle: { value: '#3A3341' },\n strong: { value: '#4A4354' },\n },\n\n // Status Colors\n status: {\n success: { value: '#2AB9B0' }, // Use teal\n warning: { value: '#D9A24F' }, // Amber\n error: { value: '#D8524D' }, // Red\n },\n\n // Overlays (purple-based transparency)\n overlay: {\n subtle: { value: 'rgba(124, 91, 214, 0.05)' }, // Purple hover tint\n light: { value: 'rgba(124, 91, 214, 0.1)' }, // Purple selected\n medium: { value: 'rgba(124, 91, 214, 0.15)' }, // Purple active\n heavy: { value: 'rgba(124, 91, 214, 0.25)' }, // Purple emphasis\n error: { value: 'rgba(216, 82, 77, 0.12)' }, // Error tint\n backdrop: {\n light: { value: 'rgba(27, 15, 38, 0.8)' },\n heavy: { value: 'rgba(27, 15, 38, 0.95)' },\n },\n },\n})\n","import { defineTokens } from '@chakra-ui/react'\n\nexport const fonts = defineTokens.fonts({\n display: { value: \"'Courier New', 'Courier', monospace\" },\n heading: { value: \"'Courier New', 'Courier', monospace\" },\n body: { value: \"'Courier New', 'Courier', monospace\" },\n})\n\nexport const fontSizes = defineTokens.fontSizes({\n xs: { value: '0.75rem' }, // 12px - helper text\n sm: { value: '0.875rem' }, // 14px - secondary labels\n base: { value: '1rem' }, // 16px - body text\n md: { value: '1.125rem' }, // 18px - emphasized body\n lg: { value: '1.25rem' }, // 20px - section headings\n xl: { value: '1.5rem' }, // 24px - modal titles\n '2xl': { value: '2rem' }, // 32px - page titles\n '3xl': { value: '3rem' }, // 48px - hero text\n '4xl': { value: '4rem' }, // 64px - display text\n\n // Responsive sizes\n cell: { value: 'clamp(1rem, 3vw, 1.5rem)' },\n hero: { value: 'clamp(2.5rem, 8vw, 4rem)' },\n subtitle: { value: 'clamp(1rem, 3vw, 1.25rem)' },\n})\n\nexport const fontWeights = defineTokens.fontWeights({\n normal: { value: 400 },\n medium: { value: 600 },\n bold: { value: 700 },\n})\n\nexport const letterSpacings = defineTokens.letterSpacings({\n tight: { value: '0.05em' },\n normal: { value: '0.1em' },\n wide: { value: '0.2em' },\n})\n","import { defineTokens } from '@chakra-ui/react'\n\nexport const spacing = defineTokens.spacing({\n '2xs': { value: '0.125rem' }, // 2px - micro gaps\n xs: { value: '0.25rem' }, // 4px\n sm: { value: '0.5rem' }, // 8px\n md: { value: '1rem' }, // 16px\n lg: { value: '1.5rem' }, // 24px\n xl: { value: '2rem' }, // 32px\n '2xl': { value: '3rem' }, // 48px\n})\n","import { defineTokens } from '@chakra-ui/react'\n\nexport const borderWidths = defineTokens.borderWidths({\n thin: { value: '1px' },\n base: { value: '2px' },\n thick: { value: '3px' },\n})\n\nexport const radii = defineTokens.radii({\n sm: { value: '2px' },\n md: { value: '4px' },\n lg: { value: '6px' },\n})\n","import { defineTokens } from '@chakra-ui/react'\n\nexport const shadows = defineTokens.shadows({\n // Depth shadows (layered)\n xs: { value: '0 1px 2px rgba(0, 0, 0, 0.4)' },\n sm: { value: '0 2px 8px rgba(0, 0, 0, 0.5), 0 1px 3px rgba(0, 0, 0, 0.3)' },\n md: { value: '0 4px 16px rgba(0, 0, 0, 0.6), 0 2px 6px rgba(0, 0, 0, 0.4)' },\n lg: { value: '0 8px 24px rgba(0, 0, 0, 0.7), 0 4px 12px rgba(0, 0, 0, 0.5)' },\n xl: { value: '0 16px 48px rgba(0, 0, 0, 0.8), 0 8px 24px rgba(0, 0, 0, 0.6)' },\n\n // Glow shadows (primary - purple)\n glow: {\n primary: { value: '0 0 10px rgba(124, 91, 214, 0.4)' },\n 'primary-lg': { value: '0 0 20px rgba(124, 91, 214, 0.5), 0 0 40px rgba(124, 91, 214, 0.3)' },\n 'primary-xl': { value: '0 0 30px rgba(124, 91, 214, 0.6), 0 0 60px rgba(124, 91, 214, 0.4)' },\n\n // Utility (teal)\n utility: { value: '0 0 10px rgba(42, 185, 176, 0.3)' },\n 'utility-lg': { value: '0 0 20px rgba(42, 185, 176, 0.4), 0 0 40px rgba(42, 185, 176, 0.2)' },\n\n // Emphasis (rose)\n emphasis: { value: '0 0 10px rgba(216, 107, 154, 0.3)' },\n 'emphasis-lg': { value: '0 0 20px rgba(216, 107, 154, 0.4), 0 0 40px rgba(216, 107, 154, 0.2)' },\n\n // Error (red)\n error: { value: '0 0 10px rgba(216, 82, 77, 0.4)' },\n },\n\n // Inset shadows\n inset: {\n primary: { value: 'inset 0 0 10px rgba(124, 91, 214, 0.3)' },\n subtle: { value: 'inset 0 1px 3px rgba(0, 0, 0, 0.3)' },\n deep: { value: 'inset 0 2px 8px rgba(0, 0, 0, 0.5)' },\n },\n})\n","import { defineTokens } from '@chakra-ui/react'\n\nexport const zIndex = defineTokens.zIndex({\n base: { value: 1 },\n dropdown: { value: 100 },\n overlay: { value: 500 },\n modal: { value: 1000 },\n toast: { value: 1500 },\n fullscreen: { value: 2000 },\n})\n","import { defineSemanticTokens } from '@chakra-ui/react'\n\nexport const semanticColors = defineSemanticTokens.colors({\n // Background mappings\n bg: {\n base: { value: '{colors.surface.0}' },\n elevated: { value: '{colors.surface.1}' },\n card: { value: '{colors.surface.2}' },\n raised: { value: '{colors.surface.3}' },\n },\n\n // Interactive states\n interactive: {\n base: { value: '{colors.primary.DEFAULT}' },\n hover: { value: '{colors.primary.hover}' },\n },\n\n // Border (for buttons, inputs, cards)\n border: {\n subtle: { value: '{colors.border.subtle}' },\n strong: { value: '{colors.border.strong}' },\n },\n})\n","import { defineSemanticTokens } from '@chakra-ui/react'\n\nexport const semanticShadows = defineSemanticTokens.shadows({\n // Button shadows\n button: {\n base: { value: '{shadows.sm}, {shadows.inset.subtle}' },\n hover: { value: '{shadows.md}, {shadows.glow.primary-lg}' },\n },\n\n // Cell shadows (most complex - 4-layer stack for selected state)\n cell: {\n selected: {\n value:\n '{shadows.inset.primary}, 0 0 0 {borderWidths.base} rgba(124, 91, 214, 0.55), {shadows.glow.primary}, 0 4px 12px rgba(124, 91, 214, 0.2)',\n },\n conflict: {\n value: '{shadows.glow.error}, 0 2px 6px rgba(216, 82, 77, 0.3)',\n },\n },\n})\n","import { semanticColors } from './colors'\nimport { semanticShadows } from './shadows'\n\nexport const semanticTokens = {\n colors: semanticColors,\n shadows: semanticShadows,\n}\n","import { defineKeyframes } from '@chakra-ui/react'\n\nexport const keyframes = defineKeyframes({\n fadeIn: {\n from: { opacity: '0' },\n to: { opacity: '1' },\n },\n\n fadeOut: {\n from: { opacity: '1' },\n to: { opacity: '0' },\n },\n\n pulse: {\n '0%, 100%': {\n transform: 'scale(1)',\n opacity: '1',\n },\n '50%': {\n transform: 'scale(1.03)',\n opacity: '0.95',\n },\n },\n\n glow: {\n '0%, 100%': {\n boxShadow: '0 0 10px rgba(124, 91, 214, 0.4)',\n },\n '50%': {\n boxShadow: '0 0 20px rgba(124, 91, 214, 0.5), 0 0 40px rgba(124, 91, 214, 0.3)',\n },\n },\n\n glowHighlight: {\n '0%, 100%': {\n boxShadow: '0 0 10px rgba(216, 107, 154, 0.3)',\n },\n '50%': {\n boxShadow: '0 0 20px rgba(216, 107, 154, 0.4), 0 0 40px rgba(216, 107, 154, 0.2)',\n },\n },\n\n blink: {\n '0%, 100%': { opacity: '1' },\n '50%': { opacity: '0.3' },\n },\n\n bounce: {\n '0%, 80%, 100%': {\n transform: 'scale(0)',\n opacity: '0.5',\n },\n '40%': {\n transform: 'scale(1)',\n opacity: '1',\n },\n },\n\n scaleIn: {\n from: {\n transform: 'scale(0.8)',\n opacity: '0',\n },\n to: {\n transform: 'scale(1)',\n opacity: '1',\n },\n },\n})\n","import { defineGlobalStyles } from '@chakra-ui/react'\n\nexport const globalCss = defineGlobalStyles({\n // Universal reset\n '*, *::before, *::after': {\n boxSizing: 'border-box',\n },\n\n // Body pseudo-elements for background effects\n 'body::before': {\n content: '\"\"',\n position: 'fixed',\n inset: 0,\n backgroundImage: `\n radial-gradient(circle at 20% 50%, rgba(124, 91, 214, 0.03) 0%, transparent 50%),\n radial-gradient(circle at 80% 80%, rgba(42, 185, 176, 0.02) 0%, transparent 50%)\n `,\n pointerEvents: 'none',\n zIndex: 0,\n },\n\n 'body::after': {\n content: '\"\"',\n position: 'fixed',\n inset: 0,\n backgroundImage: `url('data:image/svg+xml,%3Csvg viewBox=\"0 0 200 200\" xmlns=\"http://www.w3.org/2000/svg\"%3E%3Cfilter id=\"noise\"%3E%3CfeTurbulence type=\"fractalNoise\" baseFrequency=\"0.9\" numOctaves=\"4\" stitchTiles=\"stitch\"/%3E%3C/filter%3E%3Crect width=\"100%25\" height=\"100%25\" filter=\"url(%23noise)\" opacity=\"0.03\"/%3E%3C/svg%3E')`,\n opacity: 0.03,\n pointerEvents: 'none',\n zIndex: 0,\n },\n\n // Custom scrollbar (webkit)\n '::-webkit-scrollbar': {\n width: '8px',\n height: '8px',\n },\n\n '::-webkit-scrollbar-track': {\n background: '{colors.surface.1}',\n },\n\n '::-webkit-scrollbar-thumb': {\n background: '{colors.utility.DEFAULT}',\n borderRadius: '{radii.sm}',\n },\n\n '::-webkit-scrollbar-thumb:hover': {\n background: '{colors.utility.hover}',\n },\n\n // Firefox scrollbar\n '*': {\n scrollbarWidth: 'thin',\n scrollbarColor: '{colors.utility.DEFAULT} {colors.surface.1}',\n },\n\n // Selection styling\n '::selection': {\n background: '{colors.primary.DEFAULT}',\n color: '{colors.text.primary}',\n },\n\n // Focus visible outline\n ':focus-visible': {\n outline: '2px solid {colors.primary.DEFAULT}',\n outlineOffset: '2px',\n },\n})\n","export const breakpoints = {\n mobile: '767px',\n tablet: '768px',\n desktop: '1024px',\n}\n","import { defineRecipe } from '@chakra-ui/react'\n\nexport const buttonRecipe = defineRecipe({\n className: 'button',\n base: {\n fontFamily: 'body',\n fontSize: 'base',\n px: 'lg',\n py: 'sm',\n borderWidth: 'base',\n borderStyle: 'solid',\n borderColor: 'border.strong',\n background: 'linear-gradient(145deg, var(--chakra-colors-surface-1), var(--chakra-colors-surface-0))',\n color: 'text.primary',\n cursor: 'pointer',\n pointerEvents: 'auto',\n userSelect: 'none',\n transition: 'all 200ms ease',\n textTransform: 'uppercase',\n letterSpacing: 'tight',\n fontWeight: 'medium',\n borderRadius: 'md',\n boxShadow: 'var(--chakra-shadows-sm), inset 0 1px 0 rgba(255, 255, 255, 0.05)',\n\n _disabled: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n\n _focusVisible: {\n outline: 'var(--chakra-border-widths-base) solid var(--chakra-colors-primary)',\n outlineOffset: 'var(--chakra-border-widths-base)',\n },\n },\n variants: {\n variant: {\n primary: {\n borderColor: 'primary',\n color: 'primary',\n\n _hover: {\n background: 'linear-gradient(145deg, var(--chakra-colors-primary-hover), var(--chakra-colors-primary))',\n color: 'surface.0',\n boxShadow: 'var(--chakra-shadows-md), var(--chakra-shadows-glow-primary-lg)',\n transform: 'translateY(-2px)',\n },\n\n _active: {\n transform: 'translateY(0)',\n boxShadow: 'var(--chakra-shadows-xs), var(--chakra-shadows-glow-primary)',\n },\n },\n secondary: {\n borderColor: 'utility',\n color: 'utility',\n\n _hover: {\n background: 'linear-gradient(145deg, var(--chakra-colors-utility), var(--chakra-colors-utility-hover))',\n color: 'surface.0',\n boxShadow: 'var(--chakra-shadows-md), var(--chakra-shadows-glow-utility-lg)',\n transform: 'translateY(-2px)',\n },\n\n _active: {\n transform: 'translateY(0)',\n boxShadow: 'var(--chakra-shadows-xs), var(--chakra-shadows-glow-utility)',\n },\n },\n danger: {\n borderColor: 'status.error',\n color: 'status.error',\n\n _hover: {\n background: 'linear-gradient(145deg, var(--chakra-colors-status-error), var(--chakra-colors-status-error))',\n color: 'surface.0',\n boxShadow: 'var(--chakra-shadows-md), var(--chakra-shadows-glow-error)',\n transform: 'translateY(-2px)',\n },\n\n _active: {\n transform: 'translateY(0)',\n boxShadow: 'var(--chakra-shadows-xs), var(--chakra-shadows-glow-error)',\n },\n },\n },\n },\n defaultVariants: {\n variant: 'primary',\n },\n})\n","import { defineRecipe } from '@chakra-ui/react'\n\nexport const cellRecipe = defineRecipe({\n className: 'ninefold-cell',\n base: {\n aspectRatio: '1',\n background: 'linear-gradient(145deg, {colors.surface.1}, {colors.surface.0})',\n borderWidth: 'thin',\n borderColor: 'border.subtle',\n borderStyle: 'solid',\n color: 'text.primary',\n fontFamily: 'body',\n fontSize: 'cell',\n cursor: 'pointer',\n transition: 'all var(--transition-fast) var(--ease-default)',\n p: 0,\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n boxShadow: '{shadows.inset.subtle}, 0 1px 2px rgba(0, 0, 0, 0.2)',\n _focusVisible: {\n outline: '{borderWidths.base} solid {colors.primary.DEFAULT}',\n outlineOffset: '-2px',\n zIndex: 'base',\n },\n },\n variants: {\n state: {\n normal: {\n _hover: {\n background: 'linear-gradient(145deg, {colors.surface.2}, {colors.surface.1})',\n borderColor: 'primary.hover',\n boxShadow:\n '{shadows.inset.subtle}, 0 2px 4px rgba(0, 0, 0, 0.3), {shadows.glow.primary}',\n transform: 'translateY(-1px)',\n },\n },\n given: {\n fontWeight: 'bold',\n background: 'linear-gradient(145deg, {colors.surface.2}, {colors.surface.1})',\n borderColor: 'border.strong',\n cursor: 'default',\n boxShadow: '{shadows.inset.subtle}, 0 2px 4px rgba(0, 0, 0, 0.3)',\n _hover: {\n background: 'linear-gradient(145deg, {colors.surface.2}, {colors.surface.1})',\n borderColor: 'border.strong',\n boxShadow: '{shadows.inset.subtle}, 0 2px 4px rgba(0, 0, 0, 0.3)',\n transform: 'none',\n },\n },\n selected: {\n background: 'linear-gradient(145deg, rgba(124, 91, 214, 0.2), rgba(124, 91, 214, 0.1))',\n borderColor: 'primary.DEFAULT',\n boxShadow: 'cell.selected',\n transform: 'translateY(-2px)',\n },\n conflict: {\n background: 'linear-gradient(145deg, rgba(216, 82, 77, 0.2), rgba(216, 82, 77, 0.1))',\n borderColor: 'status.error',\n color: 'status.error',\n boxShadow: 'cell.conflict',\n },\n selectedConflict: {\n background: 'linear-gradient(145deg, rgba(216, 82, 77, 0.2), rgba(216, 82, 77, 0.1))',\n borderColor: 'status.error',\n color: 'status.error',\n boxShadow: 'cell.conflict',\n transform: 'translateY(-2px)',\n },\n },\n },\n defaultVariants: {\n state: 'normal',\n },\n})\n","import { defineRecipe } from '@chakra-ui/react'\n\nexport const timerRecipe = defineRecipe({\n base: {\n display: 'flex',\n alignItems: 'center',\n gap: 'sm',\n fontFamily: 'body',\n fontSize: 'lg',\n color: 'primary',\n paddingY: 'sm',\n paddingX: 'md',\n borderWidth: 'base',\n borderStyle: 'solid',\n borderColor: 'border.strong',\n background: 'surface.1',\n justifyContent: 'center',\n },\n})\n","import { buttonRecipe } from './button'\nimport { cellRecipe } from './cell'\nimport { timerRecipe } from './timer'\n\nexport const recipes = {\n button: buttonRecipe,\n cell: cellRecipe,\n timer: timerRecipe,\n}\n","import { defineSlotRecipe } from '@chakra-ui/react'\n\nexport const modalSlotRecipe = defineSlotRecipe({\n className: 'modal',\n slots: ['backdrop', 'modal', 'header', 'title', 'content'],\n base: {\n backdrop: {\n position: 'fixed',\n inset: 0,\n background: '{colors.overlay.backdrop.heavy}',\n backdropFilter: 'blur(8px)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 'modal',\n padding: 'md',\n },\n modal: {\n background: 'linear-gradient(145deg, {colors.surface.2}, {colors.surface.1})',\n borderWidth: 'base',\n borderStyle: 'solid',\n borderColor: 'primary.DEFAULT',\n maxWidth: '500px',\n width: '100%',\n maxHeight: '90vh',\n overflowY: 'auto',\n boxShadow: '{shadows.xl}, {shadows.glow.primary-xl}, inset 0 1px 0 rgba(255, 255, 255, 0.1)',\n borderRadius: 'md',\n },\n header: {\n padding: 'lg',\n borderBottomWidth: 'thin',\n borderBottomStyle: 'solid',\n borderBottomColor: 'border.subtle',\n background: 'linear-gradient(180deg, {colors.overlay.light}, transparent)',\n },\n title: {\n margin: 0,\n fontFamily: 'display',\n fontSize: 'xl',\n color: 'text.primary',\n textTransform: 'uppercase',\n letterSpacing: 'tight',\n textShadow: '0 2px 4px rgba(0, 0, 0, 0.5)',\n },\n content: {\n padding: 'lg',\n },\n },\n})\n","import { defineSlotRecipe } from '@chakra-ui/react'\n\nexport const victoryScreenSlotRecipe = defineSlotRecipe({\n slots: ['overlay', 'content', 'title', 'stats', 'badge', 'actions'],\n base: {\n overlay: {\n position: 'fixed',\n inset: 0,\n background: 'overlay.backdrop.heavy',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 'overlay',\n padding: 'md',\n },\n content: {\n maxWidth: '400px',\n width: '100%',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n gap: 'xl',\n padding: 'xl',\n borderWidth: 'thick',\n borderStyle: 'solid',\n borderColor: 'border.strong',\n background: 'surface.2',\n boxShadow: 'glow.primary-xl',\n },\n title: {\n fontFamily: 'display',\n fontSize: '3xl',\n color: 'text.primary',\n letterSpacing: 'wide',\n textShadow: 'glow.emphasis-lg',\n animation: 'pulse 2s ease-in-out infinite',\n },\n stats: {\n display: 'flex',\n flexDirection: 'column',\n gap: 'md',\n },\n badge: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 'sm',\n padding: 'md',\n borderWidth: 'base',\n borderStyle: 'solid',\n borderColor: 'emphasis',\n background: 'overlay.subtle',\n animation: 'glowHighlight 2s ease-in-out infinite',\n },\n actions: {\n display: 'flex',\n flexDirection: 'column',\n gap: 'md',\n },\n },\n})\n","import { modalSlotRecipe } from './modal'\nimport { victoryScreenSlotRecipe } from './victoryScreen'\n\nexport const slotRecipes = {\n modal: modalSlotRecipe,\n victoryScreen: victoryScreenSlotRecipe,\n}\n"],"mappings":"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","names":["defineTokens","defineTokens","defineTokens","defineTokens","defineTokens","defineSemanticTokens","defineRecipe","defineRecipe","defineSlotRecipe"]}
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@ebtgames/theme",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js",
12
+ "default": "./dist/index.js"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "scripts": {
19
+ "build": "tsup",
20
+ "storybook": "storybook dev -p 6006",
21
+ "build-storybook": "storybook build"
22
+ },
23
+ "peerDependencies": {
24
+ "@chakra-ui/react": "^3.0.0",
25
+ "react": "^18.0.0 || ^19.0.0"
26
+ },
27
+ "devDependencies": {
28
+ "@chakra-ui/react": "^3.32.0",
29
+ "@storybook/react": "^8.4.7",
30
+ "@storybook/react-vite": "^8.4.7",
31
+ "react": "^19.2.0",
32
+ "react-dom": "^19.2.0",
33
+ "storybook": "^8.4.7",
34
+ "tsup": "^8.3.5",
35
+ "typescript": "~5.9.3"
36
+ }
37
+ }