luaniverse 4.2.4 → 4.2.6

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/styles.css CHANGED
@@ -1,6 +1,8 @@
1
- @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Onest:wght@400;500;600;700&display=swap') layer(base);
1
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Onest:wght@400;500;600;700&display=swap')
2
+ layer(base);
2
3
 
3
4
  @import 'react-day-picker/style.css';
5
+ @import './theme.css';
4
6
 
5
7
  @import 'tailwindcss' prefix(lua);
6
8
 
@@ -52,21 +54,13 @@
52
54
  --color-destructive-active: hsl(var(--destructive-active));
53
55
  --color-black: #000000;
54
56
  --color-black-hover: #333333;
55
- --color-neutral-50: #F9FAFB;
56
- --color-neutral-100: #F4F4F4;
57
- --color-neutral-200: #EBEBEB;
58
- --color-neutral-300: #E6E6E6;
59
- --color-neutral-400: #E0E0E0;
60
- --color-neutral-500: #D1D5DB;
61
- --color-neutral-600: #E5E7EB;
62
- --color-border: hsl(var(--border));
63
- --color-input: hsl(var(--input));
64
- --color-ring: hsl(var(--ring));
65
- --color-chart-1: hsl(var(--chart-1));
66
- --color-chart-2: hsl(var(--chart-2));
67
- --color-chart-3: hsl(var(--chart-3));
68
- --color-chart-4: hsl(var(--chart-4));
69
- --color-chart-5: hsl(var(--chart-5));
57
+ --color-neutral-50: #f9fafb;
58
+ --color-neutral-100: #f4f4f4;
59
+ --color-neutral-200: #ebebeb;
60
+ --color-neutral-300: #e6e6e6;
61
+ --color-neutral-400: #e0e0e0;
62
+ --color-neutral-500: #d1d5db;
63
+ --color-neutral-600: #e5e7eb;
70
64
  }
71
65
 
72
66
  /*
@@ -87,10 +81,6 @@
87
81
  }
88
82
  }
89
83
 
90
-
91
-
92
-
93
-
94
84
  @utility link-primary {
95
85
  /* Responsive breakpoints */
96
86
 
@@ -116,70 +106,16 @@
116
106
 
117
107
  @layer base {
118
108
  :root {
119
- --background: 0 0% 100%;
120
109
  --foreground: 240 10% 3.9%;
121
- --card: 0 0% 100%;
122
- --card-foreground: 240 10% 3.9%;
123
- --popover: 0 0% 100%;
124
- --popover-foreground: 240 10% 3.9%;
125
- --primary: 218 100% 59%;
126
- --primary-foreground: 0 0% 100%;
127
- --primary-hover: 218 91% 56%;
128
- --primary-active: 218 85% 52%;
129
- --secondary: 240 4.8% 95.9%;
130
- --secondary-foreground: 240 5.9% 10%;
131
- --secondary-hover: 240 4.8% 90%;
132
- --secondary-active: 240 4.8% 85%;
133
- --muted: 240 4.8% 95.9%;
134
- --muted-foreground: 240 3.8% 46.1%;
135
- --accent: 240 4.8% 95.9%;
136
- --accent-foreground: 240 5.9% 10%;
137
- --destructive: 351 100% 45%;
138
- --destructive-foreground: 0 0% 100%;
139
- --destructive-hover: 351 100% 40%;
140
- --destructive-active: 351 100% 37%;
141
- --border: 240 5.9% 90%;
142
- --input: 240 5.9% 90%;
143
- --ring: 240 5.9% 10%;
144
- --chart-1: 12 76% 61%;
145
- --chart-2: 173 58% 39%;
146
- --chart-3: 197 37% 24%;
147
- --chart-4: 43 74% 66%;
148
- --chart-5: 27 87% 67%;
149
- --radius: 0.5rem;
150
110
  }
151
111
 
112
+ @media (prefers-color-scheme: dark) {
113
+ :root {
114
+ --foreground: 240 10% 3.9%;
115
+ }
116
+ }
152
117
  .dark {
153
- --background: 240 10% 3.9%;
154
118
  --foreground: 0 0% 98%;
155
- --card: 240 10% 3.9%;
156
- --card-foreground: 0 0% 98%;
157
- --popover: 240 10% 3.9%;
158
- --popover-foreground: 0 0% 98%;
159
- --primary: 218 100% 59%;
160
- --primary-foreground: 0 0% 100%;
161
- --primary-hover: 218 91% 56%;
162
- --primary-active: 218 85% 52%;
163
- --secondary: 240 3.7% 15.9%;
164
- --secondary-foreground: 0 0% 98%;
165
- --secondary-hover: 240 3.7% 20%;
166
- --secondary-active: 240 3.7% 25%;
167
- --muted: 240 3.7% 15.9%;
168
- --muted-foreground: 240 5% 64.9%;
169
- --accent: 240 3.7% 15.9%;
170
- --accent-foreground: 0 0% 98%;
171
- --destructive: 351 100% 45%;
172
- --destructive-foreground: 0 0% 100%;
173
- --destructive-hover: 351 100% 40%;
174
- --destructive-active: 351 100% 37%;
175
- --border: 240 3.7% 15.9%;
176
- --input: 240 3.7% 15.9%;
177
- --ring: 240 4.9% 83.9%;
178
- --chart-1: 220 70% 50%;
179
- --chart-2: 160 60% 45%;
180
- --chart-3: 30 80% 55%;
181
- --chart-4: 280 65% 60%;
182
- --chart-5: 340 75% 55%;
183
119
  }
184
120
  }
185
121
 
@@ -190,16 +126,21 @@
190
126
  body {
191
127
  @apply lua:bg-background lua:text-foreground lua:font-sans;
192
128
  }
193
-
129
+
194
130
  /* Typography base styles */
195
- h1, h2, h3, h4, h5, h6 {
131
+ h1,
132
+ h2,
133
+ h3,
134
+ h4,
135
+ h5,
136
+ h6 {
196
137
  @apply lua:font-heading lua:text-foreground;
197
138
  }
198
-
139
+
199
140
  p {
200
141
  @apply lua:text-sm lua:leading-relaxed lua:font-sans lua:text-foreground;
201
142
  }
202
-
143
+
203
144
  /* Link base styles */
204
145
  a {
205
146
  @apply lua:text-primary lua:underline-offset-4 lua:hover:underline lua:focus-visible:outline-2 lua:focus-visible:outline-ring lua:focus-visible:outline-offset-2 lua:focus-visible:rounded-sm;
@@ -207,55 +148,96 @@
207
148
  }
208
149
  }
209
150
 
151
+
210
152
  /* Sheet Animation Keyframes */
211
153
  @keyframes slide-in-from-top {
212
- 0% { transform: translateY(-100%); }
213
- 100% { transform: translateY(0); }
154
+ 0% {
155
+ transform: translateY(-100%);
156
+ }
157
+ 100% {
158
+ transform: translateY(0);
159
+ }
214
160
  }
215
161
 
216
162
  @keyframes slide-in-from-bottom {
217
- 0% { transform: translateY(100%); }
218
- 100% { transform: translateY(0); }
163
+ 0% {
164
+ transform: translateY(100%);
165
+ }
166
+ 100% {
167
+ transform: translateY(0);
168
+ }
219
169
  }
220
170
 
221
171
  @keyframes slide-in-from-left {
222
- 0% { transform: translateX(-100%); }
223
- 100% { transform: translateX(0); }
172
+ 0% {
173
+ transform: translateX(-100%);
174
+ }
175
+ 100% {
176
+ transform: translateX(0);
177
+ }
224
178
  }
225
179
 
226
180
  @keyframes slide-in-from-right {
227
- 0% { transform: translateX(100%); }
228
- 100% { transform: translateX(0); }
181
+ 0% {
182
+ transform: translateX(100%);
183
+ }
184
+ 100% {
185
+ transform: translateX(0);
186
+ }
229
187
  }
230
188
 
231
189
  @keyframes slide-out-to-top {
232
- 0% { transform: translateY(0); }
233
- 100% { transform: translateY(-100%); }
190
+ 0% {
191
+ transform: translateY(0);
192
+ }
193
+ 100% {
194
+ transform: translateY(-100%);
195
+ }
234
196
  }
235
197
 
236
198
  @keyframes slide-out-to-bottom {
237
- 0% { transform: translateY(0); }
238
- 100% { transform: translateY(100%); }
199
+ 0% {
200
+ transform: translateY(0);
201
+ }
202
+ 100% {
203
+ transform: translateY(100%);
204
+ }
239
205
  }
240
206
 
241
207
  @keyframes slide-out-to-left {
242
- 0% { transform: translateX(0); }
243
- 100% { transform: translateX(-100%); }
208
+ 0% {
209
+ transform: translateX(0);
210
+ }
211
+ 100% {
212
+ transform: translateX(-100%);
213
+ }
244
214
  }
245
215
 
246
216
  @keyframes slide-out-to-right {
247
- 0% { transform: translateX(0); }
248
- 100% { transform: translateX(100%); }
217
+ 0% {
218
+ transform: translateX(0);
219
+ }
220
+ 100% {
221
+ transform: translateX(100%);
222
+ }
249
223
  }
250
224
 
251
225
  @keyframes fade-in {
252
- 0% { opacity: 0; }
253
- 100% { opacity: 1; }
226
+ 0% {
227
+ opacity: 0;
228
+ }
229
+ 100% {
230
+ opacity: 1;
231
+ }
254
232
  }
255
233
 
256
234
  @keyframes fade-out {
257
- 0% { opacity: 1; }
258
- 100% { opacity: 0; }
235
+ 0% {
236
+ opacity: 1;
237
+ }
238
+ 100% {
239
+ opacity: 0;
240
+ }
259
241
  }
260
242
 
261
243
  /* Sheet Animation Classes */
@@ -308,58 +290,58 @@
308
290
  }
309
291
 
310
292
  /* Data attribute variants for Sheet animations */
311
- .lua\:data-\[state\=open\]\:animate-in[data-state="open"] {
293
+ .lua\:data-\[state\=open\]\:animate-in[data-state='open'] {
312
294
  animation: fade-in 0.2s ease-out;
313
295
  }
314
296
 
315
- .lua\:data-\[state\=closed\]\:animate-out[data-state="closed"] {
297
+ .lua\:data-\[state\=closed\]\:animate-out[data-state='closed'] {
316
298
  animation: fade-out 0.2s ease-out;
317
299
  }
318
300
 
319
- .lua\:data-\[state\=open\]\:fade-in-0[data-state="open"] {
301
+ .lua\:data-\[state\=open\]\:fade-in-0[data-state='open'] {
320
302
  animation: fade-in 0.2s ease-out;
321
303
  }
322
304
 
323
- .lua\:data-\[state\=closed\]\:fade-out-0[data-state="closed"] {
305
+ .lua\:data-\[state\=closed\]\:fade-out-0[data-state='closed'] {
324
306
  animation: fade-out 0.2s ease-out;
325
307
  }
326
308
 
327
- .lua\:data-\[state\=open\]\:slide-in-from-top[data-state="open"] {
309
+ .lua\:data-\[state\=open\]\:slide-in-from-top[data-state='open'] {
328
310
  animation: slide-in-from-top 0.3s ease-out;
329
311
  }
330
312
 
331
- .lua\:data-\[state\=closed\]\:slide-out-to-top[data-state="closed"] {
313
+ .lua\:data-\[state\=closed\]\:slide-out-to-top[data-state='closed'] {
332
314
  animation: slide-out-to-top 0.3s ease-out;
333
315
  }
334
316
 
335
- .lua\:data-\[state\=open\]\:slide-in-from-bottom[data-state="open"] {
317
+ .lua\:data-\[state\=open\]\:slide-in-from-bottom[data-state='open'] {
336
318
  animation: slide-in-from-bottom 0.3s ease-out;
337
319
  }
338
320
 
339
- .lua\:data-\[state\=closed\]\:slide-out-to-bottom[data-state="closed"] {
321
+ .lua\:data-\[state\=closed\]\:slide-out-to-bottom[data-state='closed'] {
340
322
  animation: slide-out-to-bottom 0.3s ease-out;
341
323
  }
342
324
 
343
- .lua\:data-\[state\=open\]\:slide-in-from-left[data-state="open"] {
325
+ .lua\:data-\[state\=open\]\:slide-in-from-left[data-state='open'] {
344
326
  animation: slide-in-from-left 0.3s ease-out;
345
327
  }
346
328
 
347
- .lua\:data-\[state\=closed\]\:slide-out-to-left[data-state="closed"] {
329
+ .lua\:data-\[state\=closed\]\:slide-out-to-left[data-state='closed'] {
348
330
  animation: slide-out-to-left 0.3s ease-out;
349
331
  }
350
332
 
351
- .lua\:data-\[state\=open\]\:slide-in-from-right[data-state="open"] {
333
+ .lua\:data-\[state\=open\]\:slide-in-from-right[data-state='open'] {
352
334
  animation: slide-in-from-right 0.3s ease-out;
353
335
  }
354
336
 
355
- .lua\:data-\[state\=closed\]\:slide-out-to-right[data-state="closed"] {
337
+ .lua\:data-\[state\=closed\]\:slide-out-to-right[data-state='closed'] {
356
338
  animation: slide-out-to-right 0.3s ease-out;
357
339
  }
358
340
 
359
- .lua\:data-\[state\=open\]\:duration-500[data-state="open"] {
341
+ .lua\:data-\[state\=open\]\:duration-500[data-state='open'] {
360
342
  animation-duration: 500ms;
361
343
  }
362
344
 
363
- .lua\:data-\[state\=closed\]\:duration-300[data-state="closed"] {
345
+ .lua\:data-\[state\=closed\]\:duration-300[data-state='closed'] {
364
346
  animation-duration: 300ms;
365
- }
347
+ }
@@ -2,8 +2,8 @@ import { luaniverseSafelist } from './safelist.js';
2
2
 
3
3
  /** @type {import('tailwindcss').Config} */
4
4
  export const luaniversePreset = {
5
- // Dark mode disabled globally
6
- darkMode: false,
5
+ // Dark mode enabled using class strategy
6
+ darkMode: 'class',
7
7
  // Safelist story-specific arbitrary values that are hard to standardize
8
8
  safelist: luaniverseSafelist,
9
9
  theme: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "luaniverse",
3
- "version": "4.2.4",
3
+ "version": "4.2.6",
4
4
  "description": "Lua Design System - A React component library for Lua applications",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -114,6 +114,7 @@
114
114
  "react-dom": "^18.3.1",
115
115
  "semantic-release": "^24.2.0",
116
116
  "storybook": "^8.3.6",
117
+ "storybook-dark-mode": "^4.0.2",
117
118
  "tailwindcss": "^4.1.11",
118
119
  "tailwindcss-animate": "^1.0.7",
119
120
  "tsup": "^8.3.5",