@lukeashford/aurelius 2.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -3
- package/dist/index.d.mts +497 -2
- package/dist/index.d.ts +497 -2
- package/dist/index.js +2426 -361
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2342 -325
- package/dist/index.mjs.map +1 -1
- package/dist/styles/theme.css +152 -30
- package/llms.md +30 -3
- package/package.json +12 -8
package/dist/styles/theme.css
CHANGED
|
@@ -13,13 +13,18 @@
|
|
|
13
13
|
--color-slate: #2a2a2a;
|
|
14
14
|
--color-ash: #3d3d3d;
|
|
15
15
|
|
|
16
|
-
/*
|
|
16
|
+
/* Core RGB helpers (reduce repeated rgba() literals) */
|
|
17
|
+
--ink-rgb: 0 0 0;
|
|
18
|
+
--gold-rgb: 201 162 39;
|
|
19
|
+
--glass-rgb: 20 20 20;
|
|
20
|
+
|
|
21
|
+
/* Gold spectrum (derived from one base where possible) */
|
|
17
22
|
--color-gold: #c9a227;
|
|
18
|
-
--color-gold-light:
|
|
19
|
-
--color-gold-bright:
|
|
20
|
-
--color-gold-muted: #
|
|
21
|
-
--color-gold-pale:
|
|
22
|
-
--color-gold-glow:
|
|
23
|
+
--color-gold-light: color-mix(in oklab, var(--color-gold) 75%, white);
|
|
24
|
+
--color-gold-bright: color-mix(in oklab, var(--color-gold) 60%, white);
|
|
25
|
+
--color-gold-muted: color-mix(in oklab, var(--color-gold) 55%, #6b5a44);
|
|
26
|
+
--color-gold-pale: color-mix(in oklab, var(--color-gold) 25%, white);
|
|
27
|
+
--color-gold-glow: rgb(var(--gold-rgb) / 0.15);
|
|
23
28
|
|
|
24
29
|
/* Neutrals */
|
|
25
30
|
--color-white: #ffffff;
|
|
@@ -126,19 +131,31 @@
|
|
|
126
131
|
--radius-full: 9999px;
|
|
127
132
|
|
|
128
133
|
/* ===== SHADOWS ===== */
|
|
129
|
-
--shadow-sm: 0 1px 2px 0
|
|
130
|
-
--shadow-md: 0 4px 6px -1px
|
|
131
|
-
|
|
132
|
-
--shadow-
|
|
133
|
-
|
|
134
|
-
--shadow-
|
|
135
|
-
|
|
136
|
-
--shadow-
|
|
137
|
-
|
|
138
|
-
--shadow-
|
|
134
|
+
--shadow-sm: 0 1px 2px 0 rgb(var(--ink-rgb) / 0.4);
|
|
135
|
+
--shadow-md: 0 4px 6px -1px rgb(var(--ink-rgb) / 0.4),
|
|
136
|
+
0 2px 4px -2px rgb(var(--ink-rgb) / 0.3);
|
|
137
|
+
--shadow-lg: 0 10px 15px -3px rgb(var(--ink-rgb) / 0.4),
|
|
138
|
+
0 4px 6px -4px rgb(var(--ink-rgb) / 0.3);
|
|
139
|
+
--shadow-xl: 0 20px 25px -5px rgb(var(--ink-rgb) / 0.4),
|
|
140
|
+
0 8px 10px -6px rgb(var(--ink-rgb) / 0.3);
|
|
141
|
+
--shadow-2xl: 0 25px 50px -12px rgb(var(--ink-rgb) / 0.5);
|
|
142
|
+
|
|
143
|
+
--shadow-glow: 0 0 20px rgb(var(--gold-rgb) / 0.3);
|
|
144
|
+
--shadow-glow-sm: 0 0 10px rgb(var(--gold-rgb) / 0.2);
|
|
145
|
+
--shadow-glow-md: 0 0 15px rgb(var(--gold-rgb) / 0.3);
|
|
146
|
+
--shadow-glow-lg: 0 0 40px rgb(var(--gold-rgb) / 0.4);
|
|
147
|
+
|
|
148
|
+
--shadow-inner: inset 0 2px 4px 0 rgb(var(--ink-rgb) / 0.3);
|
|
139
149
|
|
|
140
150
|
/* ===== TRANSITIONS ===== */
|
|
141
|
-
/* Durations */
|
|
151
|
+
/* Durations - use --transition-duration-* for Tailwind v4 duration-* utilities */
|
|
152
|
+
--transition-duration-instant: 75ms;
|
|
153
|
+
--transition-duration-fast: 150ms;
|
|
154
|
+
--transition-duration-normal: 200ms;
|
|
155
|
+
--transition-duration-slow: 300ms;
|
|
156
|
+
--transition-duration-slower: 500ms;
|
|
157
|
+
|
|
158
|
+
/* Legacy duration aliases for CSS usage */
|
|
142
159
|
--duration-instant: 75ms;
|
|
143
160
|
--duration-fast: 150ms;
|
|
144
161
|
--duration-normal: 200ms;
|
|
@@ -149,6 +166,9 @@
|
|
|
149
166
|
--ease-smooth: cubic-bezier(0.16, 1, 0.3, 1);
|
|
150
167
|
--ease-snap: cubic-bezier(0.5, 0, 0.1, 1);
|
|
151
168
|
|
|
169
|
+
/* ===== ASPECT RATIOS ===== */
|
|
170
|
+
--aspect-ratio-wide: 21 / 9;
|
|
171
|
+
|
|
152
172
|
/* ===== ANIMATIONS ===== */
|
|
153
173
|
--animate-fade-in: fade-in 200ms ease-out;
|
|
154
174
|
--animate-fade-out: fade-out 150ms ease-in;
|
|
@@ -156,6 +176,13 @@
|
|
|
156
176
|
--animate-slide-out-right: slide-out-right 200ms ease-in;
|
|
157
177
|
--animate-pulse-glow: pulse-glow 2s ease-in-out infinite;
|
|
158
178
|
--animate-cursor-blink: cursor-blink 1s steps(1) infinite;
|
|
179
|
+
|
|
180
|
+
/* ===== LAYOUT TOKENS ===== */
|
|
181
|
+
--container-sm: 640px;
|
|
182
|
+
--container-md: 768px;
|
|
183
|
+
--container-lg: 1024px;
|
|
184
|
+
--container-xl: 1280px;
|
|
185
|
+
--container-2xl: 1536px;
|
|
159
186
|
}
|
|
160
187
|
|
|
161
188
|
@keyframes fade-in {
|
|
@@ -199,19 +226,22 @@
|
|
|
199
226
|
}
|
|
200
227
|
|
|
201
228
|
@keyframes pulse-glow {
|
|
202
|
-
0%,
|
|
203
|
-
|
|
229
|
+
0%,
|
|
230
|
+
100% {
|
|
231
|
+
box-shadow: 0 0 20px rgb(var(--gold-rgb) / 0.3);
|
|
204
232
|
}
|
|
205
233
|
50% {
|
|
206
|
-
box-shadow: 0 0 30px
|
|
234
|
+
box-shadow: 0 0 30px rgb(var(--gold-rgb) / 0.5);
|
|
207
235
|
}
|
|
208
236
|
}
|
|
209
237
|
|
|
210
238
|
@keyframes cursor-blink {
|
|
211
|
-
0%,
|
|
239
|
+
0%,
|
|
240
|
+
50% {
|
|
212
241
|
opacity: 1;
|
|
213
242
|
}
|
|
214
|
-
51%,
|
|
243
|
+
51%,
|
|
244
|
+
100% {
|
|
215
245
|
opacity: 0;
|
|
216
246
|
}
|
|
217
247
|
}
|
|
@@ -237,11 +267,14 @@
|
|
|
237
267
|
width: 100%;
|
|
238
268
|
}
|
|
239
269
|
|
|
240
|
-
table,
|
|
270
|
+
table,
|
|
271
|
+
th,
|
|
272
|
+
td {
|
|
241
273
|
border: 1px solid var(--color-gold-muted);
|
|
242
274
|
}
|
|
243
275
|
|
|
244
|
-
th,
|
|
276
|
+
th,
|
|
277
|
+
td {
|
|
245
278
|
padding: 0.5rem 0.75rem;
|
|
246
279
|
}
|
|
247
280
|
|
|
@@ -273,14 +306,20 @@
|
|
|
273
306
|
}
|
|
274
307
|
|
|
275
308
|
/* Headings */
|
|
276
|
-
h1,
|
|
309
|
+
h1,
|
|
310
|
+
h2,
|
|
311
|
+
h3,
|
|
312
|
+
h4,
|
|
313
|
+
h5,
|
|
314
|
+
h6 {
|
|
277
315
|
font-family: var(--font-heading);
|
|
278
316
|
font-weight: 600;
|
|
279
317
|
letter-spacing: -0.025em;
|
|
280
318
|
color: var(--color-white);
|
|
281
319
|
}
|
|
282
320
|
|
|
283
|
-
h1,
|
|
321
|
+
h1,
|
|
322
|
+
h2 {
|
|
284
323
|
color: var(--color-gold);
|
|
285
324
|
}
|
|
286
325
|
|
|
@@ -315,7 +354,10 @@
|
|
|
315
354
|
}
|
|
316
355
|
|
|
317
356
|
/* Code */
|
|
318
|
-
code,
|
|
357
|
+
code,
|
|
358
|
+
pre,
|
|
359
|
+
kbd,
|
|
360
|
+
samp {
|
|
319
361
|
font-family: var(--font-mono);
|
|
320
362
|
font-size: 0.875em;
|
|
321
363
|
}
|
|
@@ -365,7 +407,12 @@
|
|
|
365
407
|
|
|
366
408
|
/* ===== UTILITY CLASSES ===== */
|
|
367
409
|
@utility text-gradient-gold {
|
|
368
|
-
background: linear-gradient(
|
|
410
|
+
background: linear-gradient(
|
|
411
|
+
to right,
|
|
412
|
+
var(--color-gold),
|
|
413
|
+
var(--color-gold-light),
|
|
414
|
+
var(--color-gold)
|
|
415
|
+
);
|
|
369
416
|
-webkit-background-clip: text;
|
|
370
417
|
background-clip: text;
|
|
371
418
|
color: transparent;
|
|
@@ -402,12 +449,12 @@
|
|
|
402
449
|
|
|
403
450
|
@utility backdrop-glass {
|
|
404
451
|
backdrop-filter: blur(12px);
|
|
405
|
-
background-color:
|
|
452
|
+
background-color: rgb(var(--glass-rgb) / 0.8);
|
|
406
453
|
}
|
|
407
454
|
|
|
408
455
|
@utility focus-ring {
|
|
409
456
|
&:focus-visible {
|
|
410
|
-
outline: 2px solid
|
|
457
|
+
outline: 2px solid var(--color-gold);
|
|
411
458
|
outline-offset: 2px;
|
|
412
459
|
}
|
|
413
460
|
}
|
|
@@ -432,3 +479,78 @@
|
|
|
432
479
|
left: 50%;
|
|
433
480
|
transform: translate(-50%, -50%);
|
|
434
481
|
}
|
|
482
|
+
|
|
483
|
+
@utility aspect-wide {
|
|
484
|
+
aspect-ratio: var(--aspect-ratio-wide);
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
/* ===== LAYOUT COMPONENTS ===== */
|
|
488
|
+
/* Container - Responsive max-width wrapper with horizontal padding */
|
|
489
|
+
@utility container {
|
|
490
|
+
width: 100%;
|
|
491
|
+
margin-inline: auto;
|
|
492
|
+
padding-inline: var(--spacing-4);
|
|
493
|
+
|
|
494
|
+
@media (min-width: 640px) {
|
|
495
|
+
max-width: var(--container-sm);
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
@media (min-width: 768px) {
|
|
499
|
+
max-width: var(--container-md);
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
@media (min-width: 1024px) {
|
|
503
|
+
max-width: var(--container-lg);
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
@media (min-width: 1280px) {
|
|
507
|
+
max-width: var(--container-xl);
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
@media (min-width: 1536px) {
|
|
511
|
+
max-width: var(--container-2xl);
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
/* Container size variants */
|
|
516
|
+
@utility container-sm {
|
|
517
|
+
width: 100%;
|
|
518
|
+
max-width: var(--container-sm);
|
|
519
|
+
margin-inline: auto;
|
|
520
|
+
padding-inline: var(--spacing-4);
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
@utility container-md {
|
|
524
|
+
width: 100%;
|
|
525
|
+
max-width: var(--container-md);
|
|
526
|
+
margin-inline: auto;
|
|
527
|
+
padding-inline: var(--spacing-4);
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
@utility container-lg {
|
|
531
|
+
width: 100%;
|
|
532
|
+
max-width: var(--container-lg);
|
|
533
|
+
margin-inline: auto;
|
|
534
|
+
padding-inline: var(--spacing-4);
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
@utility container-xl {
|
|
538
|
+
width: 100%;
|
|
539
|
+
max-width: var(--container-xl);
|
|
540
|
+
margin-inline: auto;
|
|
541
|
+
padding-inline: var(--spacing-4);
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
@utility container-fluid {
|
|
545
|
+
width: 100%;
|
|
546
|
+
padding-inline: var(--spacing-4);
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
/* Row - CSS Grid-based 12-column layout
|
|
550
|
+
* Uses CSS Grid instead of flexbox for cleaner, modern layout.
|
|
551
|
+
* Children use Tailwind's col-span-* utilities (e.g., col-span-6, md:col-span-4).
|
|
552
|
+
*/
|
|
553
|
+
@utility row {
|
|
554
|
+
display: grid;
|
|
555
|
+
grid-template-columns: repeat(12, minmax(0, 1fr));
|
|
556
|
+
}
|
package/llms.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
npm install @lukeashford/aurelius
|
|
9
|
-
npm install -D eslint @typescript-eslint/parser eslint-plugin-better-tailwindcss @poupe/eslint-plugin-tailwindcss @eslint/css tailwind-csstree
|
|
9
|
+
npm install -D tailwindcss postcss @tailwindcss/postcss eslint @typescript-eslint/parser eslint-plugin-better-tailwindcss @poupe/eslint-plugin-tailwindcss @eslint/css tailwind-csstree
|
|
10
10
|
```
|
|
11
11
|
|
|
12
12
|
### 2. Import the design system
|
|
@@ -57,31 +57,51 @@ Import from `@lukeashford/aurelius`:
|
|
|
57
57
|
|
|
58
58
|
| Component | Props |
|
|
59
59
|
|-----------|-------|
|
|
60
|
+
| Accordion | defaultValue, value |
|
|
60
61
|
| Alert | variant (info, success, warning, error), title |
|
|
61
62
|
| Avatar | src, alt, name, size (xs, sm, md, lg, xl, 2xl), status (online, offline, busy) |
|
|
62
63
|
| Badge | variant (default, gold, success, error, warning, info) |
|
|
63
64
|
| BrandIcon | size (sm, md, lg), variant (solid, outline) |
|
|
65
|
+
| Breadcrumb | separator |
|
|
64
66
|
| Button | variant (primary, important, elevated, outlined, featured, ghost, danger), size (sm, md, lg, xl), loading |
|
|
65
|
-
| Card | variant (default, elevated, outlined, ghost, featured), interactive, selected |
|
|
67
|
+
| Card | variant (default, elevated, outlined, ghost, featured), interactive, selected, noPadding |
|
|
66
68
|
| ChatHistory | messages |
|
|
67
69
|
| Checkbox | label |
|
|
70
|
+
| Col | children |
|
|
68
71
|
| ColorSwatch | color, label |
|
|
72
|
+
| Container | size (sm, md, lg, xl, fluid, responsive) |
|
|
73
|
+
| Dialog | description, confirmText, cancelText, isLoading |
|
|
74
|
+
| Divider | orientation (horizontal, vertical), variant (solid, dashed, dotted), label |
|
|
75
|
+
| Drawer | isOpen, position (left, right, top, bottom), title, children, className |
|
|
69
76
|
| HelperText | error |
|
|
70
77
|
| ImageCard | src, alt, title, subtitle, aspectRatio (${number}/${number}), overlay, mediaClassName, contentClassName |
|
|
71
78
|
| Input | error, leadingIcon, trailingIcon |
|
|
79
|
+
| InputGroup | children |
|
|
72
80
|
| Label | required |
|
|
81
|
+
| List | ordered |
|
|
73
82
|
| MarkdownContent | content, sanitizeConfig |
|
|
83
|
+
| Menu | children, open |
|
|
74
84
|
| Message | variant (user, assistant), content, isStreaming |
|
|
75
85
|
| Modal | isOpen, title, children, className |
|
|
86
|
+
| Navbar | fixed, bordered |
|
|
87
|
+
| Pagination | page, totalPages, siblingCount, showEdges |
|
|
88
|
+
| Popover | children, trigger, position (top, bottom, left, right), align (start, center, end), open, closeOnClickOutside |
|
|
89
|
+
| Progress | value, max, size (sm, md, lg), variant (default, success, warning, error), showValue, indeterminate |
|
|
76
90
|
| Radio | label |
|
|
91
|
+
| Row | gutter, gutterX, gutterY, justify (start, center, end, between, around, evenly), align (start, center, end, stretch, baseline) |
|
|
77
92
|
| SectionHeading | level (h2, h3) |
|
|
78
93
|
| Select | error, options |
|
|
79
94
|
| Skeleton | children |
|
|
95
|
+
| Slider | value, defaultValue, min, max, step, disabled, showTooltip |
|
|
80
96
|
| Spinner | size (sm, md, lg) |
|
|
97
|
+
| Stack | direction (horizontal, vertical), align (start, center, end, stretch, baseline), justify (start, center, end, between, around, evenly), gap, wrap |
|
|
81
98
|
| Stepper | steps, currentStep, status (complete, error) |
|
|
82
99
|
| StreamingCursor | children |
|
|
83
100
|
| Switch | checked, defaultChecked, label |
|
|
101
|
+
| Table | responsive |
|
|
102
|
+
| Tabs | defaultValue, value |
|
|
84
103
|
| Textarea | error |
|
|
104
|
+
| Toast | children, position (top-right, top-left, bottom-right, bottom-left, top-center, bottom-center), defaultDuration |
|
|
85
105
|
| Tooltip | content, children, open, side (top, right, bottom, left) |
|
|
86
106
|
|
|
87
107
|
### Component usage example
|
|
@@ -118,8 +138,15 @@ border-void, border-obsidian, border-charcoal, border-graphite, border-slate, bo
|
|
|
118
138
|
|
|
119
139
|
Standard Tailwind classes for size (`text-sm`, `text-lg`, etc.), weight (`font-medium`, `font-bold`), and spacing are available.
|
|
120
140
|
|
|
141
|
+
### Layout Classes
|
|
142
|
+
**Containers:** `container`, `container-sm`, `container-md`, `container-lg`, `container-xl`, `container-fluid`
|
|
143
|
+
|
|
144
|
+
**Grid:** `row` (creates 12-column CSS Grid)
|
|
145
|
+
|
|
146
|
+
**Columns (Tailwind built-in):** `col-span-{1-12}`, `col-span-full`, `col-auto`, `sm:col-span-*`, `md:col-span-*`, `lg:col-span-*`, `xl:col-span-*`
|
|
147
|
+
|
|
121
148
|
### Custom Utilities
|
|
122
|
-
text-gradient-gold, glow, glow-sm, glow-md, glow-lg, scroll-smooth, scrollbar-hide, backdrop-glass, focus-ring, line-clamp-2, line-clamp-3, center-absolute
|
|
149
|
+
text-gradient-gold, glow, glow-sm, glow-md, glow-lg, scroll-smooth, scrollbar-hide, backdrop-glass, focus-ring, line-clamp-2, line-clamp-3, center-absolute, aspect-wide, container, container-sm, container-md, container-lg, container-xl, container-fluid, row
|
|
123
150
|
|
|
124
151
|
### Opacity modifiers
|
|
125
152
|
Append `/10`, `/20`, `/30`, etc. to colors: `bg-gold/20`, `border-ash/50`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lukeashford/aurelius",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "Design system for Aurelius applications — A cohesive visual language for creative technologists",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -24,6 +24,9 @@
|
|
|
24
24
|
"publishConfig": {
|
|
25
25
|
"access": "public"
|
|
26
26
|
},
|
|
27
|
+
"engines": {
|
|
28
|
+
"node": ">=22.14.0"
|
|
29
|
+
},
|
|
27
30
|
"scripts": {
|
|
28
31
|
"build": "npm run typecheck && npm run lint && tsup && node scripts/generate-manifest.js",
|
|
29
32
|
"dev": "tsup --watch",
|
|
@@ -31,7 +34,8 @@
|
|
|
31
34
|
"lint": "eslint src --max-warnings 0",
|
|
32
35
|
"prepublishOnly": "npm run build",
|
|
33
36
|
"dev:demo": "npm --prefix demo run dev",
|
|
34
|
-
"dev:all": "concurrently -k \"npm run dev\" \"npm run dev:demo\""
|
|
37
|
+
"dev:all": "concurrently -k \"npm run dev\" \"npm run dev:demo\"",
|
|
38
|
+
"test": "npm run build && npm --prefix demo run test && npm --prefix demo run test:e2e"
|
|
35
39
|
},
|
|
36
40
|
"peerDependencies": {
|
|
37
41
|
"@eslint/css": ">=0.9.0",
|
|
@@ -68,8 +72,13 @@
|
|
|
68
72
|
}
|
|
69
73
|
},
|
|
70
74
|
"devDependencies": {
|
|
75
|
+
"@commitlint/cli": "*",
|
|
76
|
+
"@commitlint/config-conventional": "*",
|
|
71
77
|
"@eslint/css": "^0.9.0",
|
|
72
78
|
"@poupe/eslint-plugin-tailwindcss": "^0.2.4",
|
|
79
|
+
"@semantic-release/changelog": "*",
|
|
80
|
+
"@semantic-release/git": "*",
|
|
81
|
+
"@semantic-release/github": "*",
|
|
73
82
|
"@testing-library/jest-dom": "^6.6.3",
|
|
74
83
|
"@testing-library/react": "^16.1.0",
|
|
75
84
|
"@testing-library/user-event": "^14.5.2",
|
|
@@ -81,20 +90,15 @@
|
|
|
81
90
|
"@typescript-eslint/eslint-plugin": "^8.49.0",
|
|
82
91
|
"@typescript-eslint/parser": "^8.49.0",
|
|
83
92
|
"@vitejs/plugin-react": "^4.3.4",
|
|
84
|
-
"@commitlint/cli": "*",
|
|
85
|
-
"@commitlint/config-conventional": "*",
|
|
86
|
-
"@semantic-release/changelog": "*",
|
|
87
|
-
"@semantic-release/github": "*",
|
|
88
|
-
"@semantic-release/git": "*",
|
|
89
93
|
"concurrently": "^8.2.2",
|
|
90
94
|
"conventional-changelog-conventionalcommits": "*",
|
|
91
95
|
"eslint": "^9.0.0",
|
|
92
96
|
"eslint-plugin-better-tailwindcss": "^4.0.0-beta",
|
|
93
97
|
"jest": "^29.7.0",
|
|
94
98
|
"jest-environment-jsdom": "^29.7.0",
|
|
95
|
-
"semantic-release": "*",
|
|
96
99
|
"react": "^19.2.1",
|
|
97
100
|
"react-dom": "^19.2.1",
|
|
101
|
+
"semantic-release": "*",
|
|
98
102
|
"tailwindcss": "^4.1.17",
|
|
99
103
|
"ts-jest": "^29.2.5",
|
|
100
104
|
"ts-node": "^10.9.2",
|