luaniverse 4.2.24 → 4.2.26
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.cjs +229 -120
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -6
- package/dist/index.d.ts +7 -6
- package/dist/index.js +230 -121
- package/dist/index.js.map +1 -1
- package/dist/safelist.js +44 -2
- package/dist/safelist.txt +38 -2
- package/dist/theme.css +120 -15
- package/package.json +1 -1
package/dist/safelist.js
CHANGED
|
@@ -113,6 +113,10 @@ export const luaniverseSafelist = [
|
|
|
113
113
|
'lua:focus-visible:bg-warning-base',
|
|
114
114
|
|
|
115
115
|
// Semantic Color Tokens - Disabled State
|
|
116
|
+
'lua:bg-disabled',
|
|
117
|
+
'lua:text-disabled-foreground',
|
|
118
|
+
'lua:disabled:bg-disabled',
|
|
119
|
+
'lua:disabled:text-disabled-foreground',
|
|
116
120
|
'lua:bg-disabled-bg',
|
|
117
121
|
'lua:text-disabled-text',
|
|
118
122
|
'lua:border-disabled-border',
|
|
@@ -221,6 +225,7 @@ export const luaniverseSafelist = [
|
|
|
221
225
|
'lua:border-primary',
|
|
222
226
|
'lua:border-secondary',
|
|
223
227
|
'lua:border-destructive',
|
|
228
|
+
'lua:border-danger',
|
|
224
229
|
'lua:border-success',
|
|
225
230
|
'lua:border-warning',
|
|
226
231
|
'lua:border-info',
|
|
@@ -280,7 +285,14 @@ export const luaniverseSafelist = [
|
|
|
280
285
|
'lua:bg-accent',
|
|
281
286
|
'lua:text-accent-foreground',
|
|
282
287
|
|
|
283
|
-
// Semantic Color Tokens -
|
|
288
|
+
// Semantic Color Tokens - Danger (Error/Validation Indicators)
|
|
289
|
+
'lua:text-danger',
|
|
290
|
+
'lua:border-danger',
|
|
291
|
+
'lua:bg-danger',
|
|
292
|
+
'lua:text-danger-foreground',
|
|
293
|
+
'lua:hover:bg-danger-hover',
|
|
294
|
+
|
|
295
|
+
// Semantic Color Tokens - Destructive (Action - Dark Maroon)
|
|
284
296
|
'lua:bg-destructive',
|
|
285
297
|
'lua:text-destructive-foreground',
|
|
286
298
|
'lua:bg-destructive-hover',
|
|
@@ -464,6 +476,34 @@ export const luaniverseSafelist = [
|
|
|
464
476
|
'lua:before:min-w-[100px]',
|
|
465
477
|
'lua:md:before:content-none',
|
|
466
478
|
|
|
479
|
+
// Button loading state
|
|
480
|
+
'lua-btn-loading',
|
|
481
|
+
'lua-btn-loader-dot',
|
|
482
|
+
|
|
483
|
+
// Button
|
|
484
|
+
'lua:gap-1.5',
|
|
485
|
+
'lua:h-7',
|
|
486
|
+
'lua:h-9',
|
|
487
|
+
'lua:h-12',
|
|
488
|
+
'lua:leading-5',
|
|
489
|
+
'lua:leading-6',
|
|
490
|
+
'lua:size-4',
|
|
491
|
+
'lua:text-current',
|
|
492
|
+
'lua:pl-3',
|
|
493
|
+
'lua:pr-3',
|
|
494
|
+
'lua:disabled:bg-black/5',
|
|
495
|
+
'lua:disabled:text-black/15',
|
|
496
|
+
'lua:disabled:shadow-none',
|
|
497
|
+
'lua:disabled:border-transparent',
|
|
498
|
+
'lua:active:bg-primary-active',
|
|
499
|
+
'lua:active:text-primary-foreground',
|
|
500
|
+
'lua:active:bg-secondary-active',
|
|
501
|
+
'lua:active:bg-secondary-hover',
|
|
502
|
+
'lua:active:bg-secondary',
|
|
503
|
+
'lua:active:bg-default-active',
|
|
504
|
+
'lua:active:bg-destructive-active',
|
|
505
|
+
'lua:hover:bg-muted',
|
|
506
|
+
|
|
467
507
|
// IconButton
|
|
468
508
|
'lua:size-7',
|
|
469
509
|
'lua:size-10',
|
|
@@ -483,7 +523,7 @@ export const luaniverseSafelist = [
|
|
|
483
523
|
'lua:data-[state=checked]:bg-primary',
|
|
484
524
|
'lua:data-[state=checked]:text-primary-foreground',
|
|
485
525
|
'lua:data-[state=checked]:border-primary',
|
|
486
|
-
'lua:aria-[invalid=true]:border-
|
|
526
|
+
'lua:aria-[invalid=true]:border-danger',
|
|
487
527
|
'lua:disabled:opacity-50',
|
|
488
528
|
'lua:disabled:cursor-not-allowed',
|
|
489
529
|
'lua:focus-visible:ring-offset-2',
|
|
@@ -647,7 +687,9 @@ export const luaniverseSafelist = [
|
|
|
647
687
|
'lua:border-input',
|
|
648
688
|
'lua:focus-visible:ring-ring',
|
|
649
689
|
'lua:border-destructive',
|
|
690
|
+
'lua:border-danger',
|
|
650
691
|
'lua:focus-visible:ring-destructive',
|
|
692
|
+
'lua:focus-visible:ring-danger',
|
|
651
693
|
'lua:border-success',
|
|
652
694
|
'lua:focus-visible:ring-success',
|
|
653
695
|
'lua:opacity-50',
|
package/dist/safelist.txt
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
# Usage in your CSS:
|
|
6
6
|
# @source "./node_modules/@lua-ai-global/luaniverse/dist/safelist.txt";
|
|
7
7
|
#
|
|
8
|
-
# Total classes:
|
|
8
|
+
# Total classes: 690
|
|
9
9
|
|
|
10
10
|
lua:bg-emphasis-base
|
|
11
11
|
lua:bg-emphasis-hover
|
|
@@ -99,6 +99,10 @@ lua:active:bg-warning-base
|
|
|
99
99
|
lua:active:bg-warning-hover
|
|
100
100
|
lua:active:bg-warning-active
|
|
101
101
|
lua:focus-visible:bg-warning-base
|
|
102
|
+
lua:bg-disabled
|
|
103
|
+
lua:text-disabled-foreground
|
|
104
|
+
lua:disabled:bg-disabled
|
|
105
|
+
lua:disabled:text-disabled-foreground
|
|
102
106
|
lua:bg-disabled-bg
|
|
103
107
|
lua:text-disabled-text
|
|
104
108
|
lua:border-disabled-border
|
|
@@ -185,6 +189,7 @@ lua:border-border
|
|
|
185
189
|
lua:border-primary
|
|
186
190
|
lua:border-secondary
|
|
187
191
|
lua:border-destructive
|
|
192
|
+
lua:border-danger
|
|
188
193
|
lua:border-success
|
|
189
194
|
lua:border-warning
|
|
190
195
|
lua:border-info
|
|
@@ -229,6 +234,11 @@ lua:bg-muted
|
|
|
229
234
|
lua:text-muted-foreground
|
|
230
235
|
lua:bg-accent
|
|
231
236
|
lua:text-accent-foreground
|
|
237
|
+
lua:text-danger
|
|
238
|
+
lua:border-danger
|
|
239
|
+
lua:bg-danger
|
|
240
|
+
lua:text-danger-foreground
|
|
241
|
+
lua:hover:bg-danger-hover
|
|
232
242
|
lua:bg-destructive
|
|
233
243
|
lua:text-destructive-foreground
|
|
234
244
|
lua:bg-destructive-hover
|
|
@@ -393,6 +403,30 @@ lua:before:font-normal
|
|
|
393
403
|
lua:before:mr-4
|
|
394
404
|
lua:before:min-w-[100px]
|
|
395
405
|
lua:md:before:content-none
|
|
406
|
+
lua-btn-loading
|
|
407
|
+
lua-btn-loader-dot
|
|
408
|
+
lua:gap-1.5
|
|
409
|
+
lua:h-7
|
|
410
|
+
lua:h-9
|
|
411
|
+
lua:h-12
|
|
412
|
+
lua:leading-5
|
|
413
|
+
lua:leading-6
|
|
414
|
+
lua:size-4
|
|
415
|
+
lua:text-current
|
|
416
|
+
lua:pl-3
|
|
417
|
+
lua:pr-3
|
|
418
|
+
lua:disabled:bg-black/5
|
|
419
|
+
lua:disabled:text-black/15
|
|
420
|
+
lua:disabled:shadow-none
|
|
421
|
+
lua:disabled:border-transparent
|
|
422
|
+
lua:active:bg-primary-active
|
|
423
|
+
lua:active:text-primary-foreground
|
|
424
|
+
lua:active:bg-secondary-active
|
|
425
|
+
lua:active:bg-secondary-hover
|
|
426
|
+
lua:active:bg-secondary
|
|
427
|
+
lua:active:bg-default-active
|
|
428
|
+
lua:active:bg-destructive-active
|
|
429
|
+
lua:hover:bg-muted
|
|
396
430
|
lua:size-7
|
|
397
431
|
lua:size-10
|
|
398
432
|
lua:size-12
|
|
@@ -409,7 +443,7 @@ lua:outline-hidden
|
|
|
409
443
|
lua:data-[state=checked]:bg-primary
|
|
410
444
|
lua:data-[state=checked]:text-primary-foreground
|
|
411
445
|
lua:data-[state=checked]:border-primary
|
|
412
|
-
lua:aria-[invalid=true]:border-
|
|
446
|
+
lua:aria-[invalid=true]:border-danger
|
|
413
447
|
lua:disabled:opacity-50
|
|
414
448
|
lua:disabled:cursor-not-allowed
|
|
415
449
|
lua:focus-visible:ring-offset-2
|
|
@@ -555,7 +589,9 @@ lua:focus-visible:ring-offset-background
|
|
|
555
589
|
lua:border-input
|
|
556
590
|
lua:focus-visible:ring-ring
|
|
557
591
|
lua:border-destructive
|
|
592
|
+
lua:border-danger
|
|
558
593
|
lua:focus-visible:ring-destructive
|
|
594
|
+
lua:focus-visible:ring-danger
|
|
559
595
|
lua:border-success
|
|
560
596
|
lua:focus-visible:ring-success
|
|
561
597
|
lua:opacity-50
|
package/dist/theme.css
CHANGED
|
@@ -29,14 +29,14 @@
|
|
|
29
29
|
/* Default (Emphasis - Black/Bold) */
|
|
30
30
|
--default: 0 0% 0%;
|
|
31
31
|
--default-foreground: 0 0% 100%;
|
|
32
|
-
--default-hover: 0 0%
|
|
33
|
-
--default-active: 0 0%
|
|
32
|
+
--default-hover: 0 0% 20%;
|
|
33
|
+
--default-active: 0 0% 30%;
|
|
34
34
|
|
|
35
35
|
/* Primary (Brand - Blue) */
|
|
36
|
-
--primary:
|
|
36
|
+
--primary: 218 100% 59%;
|
|
37
37
|
--primary-foreground: 0 0% 100%;
|
|
38
|
-
--primary-hover:
|
|
39
|
-
--primary-active:
|
|
38
|
+
--primary-hover: 218 74% 53%;
|
|
39
|
+
--primary-active: 218 66% 48%;
|
|
40
40
|
|
|
41
41
|
/* Secondary (Neutral) */
|
|
42
42
|
--secondary: 220 13% 95%;
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
--muted-foreground: 215 16% 47%;
|
|
50
50
|
|
|
51
51
|
/* Accent */
|
|
52
|
-
--accent:
|
|
52
|
+
--accent: 218 100% 59%;
|
|
53
53
|
--accent-foreground: 0 0% 100%;
|
|
54
54
|
|
|
55
55
|
/* Accent Subtle (for tabs, pills) */
|
|
@@ -57,11 +57,16 @@
|
|
|
57
57
|
--accent-subtle-foreground: 213 97% 27%;
|
|
58
58
|
--accent-subtle-hover: 214 100% 92%;
|
|
59
59
|
|
|
60
|
-
/* Destructive (
|
|
61
|
-
--destructive: 0
|
|
60
|
+
/* Destructive (Action - Dark Maroon for button fills) */
|
|
61
|
+
--destructive: 0 63% 31%;
|
|
62
62
|
--destructive-foreground: 0 0% 100%;
|
|
63
|
-
--destructive-hover: 0
|
|
64
|
-
--destructive-active: 0
|
|
63
|
+
--destructive-hover: 0 63% 36%;
|
|
64
|
+
--destructive-active: 0 63% 26%;
|
|
65
|
+
|
|
66
|
+
/* Danger (Indicator - Bright red for errors, alerts, validation) */
|
|
67
|
+
--danger: 0 84% 60%;
|
|
68
|
+
--danger-foreground: 0 0% 100%;
|
|
69
|
+
--danger-hover: 0 72% 51%;
|
|
65
70
|
|
|
66
71
|
/* Success */
|
|
67
72
|
--success: 142 71% 45%;
|
|
@@ -81,12 +86,17 @@
|
|
|
81
86
|
/* Border & Input */
|
|
82
87
|
--border: 220 13% 87%;
|
|
83
88
|
--input: 220 13% 87%;
|
|
84
|
-
--ring:
|
|
89
|
+
--ring: 218 100% 59%;
|
|
90
|
+
|
|
91
|
+
/* Disabled State (buttons, inputs when disabled) */
|
|
92
|
+
--disabled: 220 13% 95%;
|
|
93
|
+
--disabled-foreground: 220 9% 46%;
|
|
85
94
|
|
|
86
95
|
/* Semantic Border Tokens */
|
|
87
|
-
--border-primary:
|
|
96
|
+
--border-primary: 218 100% 59%;
|
|
88
97
|
--border-secondary: 220 13% 87%;
|
|
89
|
-
--border-destructive: 0
|
|
98
|
+
--border-destructive: 0 63% 31%;
|
|
99
|
+
--border-danger: 0 84% 60%;
|
|
90
100
|
--border-success: 142 71% 45%;
|
|
91
101
|
--border-warning: 38 92% 50%;
|
|
92
102
|
--border-info: 217 91% 60%;
|
|
@@ -137,12 +147,17 @@
|
|
|
137
147
|
--color-accent-subtle-foreground: hsl(var(--accent-subtle-foreground));
|
|
138
148
|
--color-accent-subtle-hover: hsl(var(--accent-subtle-hover));
|
|
139
149
|
|
|
140
|
-
/* Destructive Tokens (
|
|
150
|
+
/* Destructive Tokens (Action - Dark Maroon) */
|
|
141
151
|
--color-destructive: hsl(var(--destructive));
|
|
142
152
|
--color-destructive-foreground: hsl(var(--destructive-foreground));
|
|
143
153
|
--color-destructive-hover: hsl(var(--destructive-hover));
|
|
144
154
|
--color-destructive-active: hsl(var(--destructive-active));
|
|
145
155
|
|
|
156
|
+
/* Danger Tokens (Indicator - Bright Red) */
|
|
157
|
+
--color-danger: hsl(var(--danger));
|
|
158
|
+
--color-danger-foreground: hsl(var(--danger-foreground));
|
|
159
|
+
--color-danger-hover: hsl(var(--danger-hover));
|
|
160
|
+
|
|
146
161
|
/* Success Tokens (Green) */
|
|
147
162
|
--color-success: hsl(var(--success));
|
|
148
163
|
--color-success-foreground: hsl(var(--success-foreground));
|
|
@@ -163,10 +178,15 @@
|
|
|
163
178
|
--color-input: hsl(var(--input));
|
|
164
179
|
--color-ring: hsl(var(--ring));
|
|
165
180
|
|
|
181
|
+
/* Disabled State Tokens */
|
|
182
|
+
--color-disabled: hsl(var(--disabled));
|
|
183
|
+
--color-disabled-foreground: hsl(var(--disabled-foreground));
|
|
184
|
+
|
|
166
185
|
/* Semantic Border Tokens */
|
|
167
186
|
--color-border-primary: hsl(var(--border-primary));
|
|
168
187
|
--color-border-secondary: hsl(var(--border-secondary));
|
|
169
188
|
--color-border-destructive: hsl(var(--border-destructive));
|
|
189
|
+
--color-border-danger: hsl(var(--border-danger));
|
|
170
190
|
--color-border-success: hsl(var(--border-success));
|
|
171
191
|
--color-border-warning: hsl(var(--border-warning));
|
|
172
192
|
--color-border-info: hsl(var(--border-info));
|
|
@@ -216,12 +236,17 @@
|
|
|
216
236
|
--accent-subtle-foreground: 213 94% 68%;
|
|
217
237
|
--accent-subtle-hover: 217 19% 35%;
|
|
218
238
|
|
|
219
|
-
/* Destructive (
|
|
239
|
+
/* Destructive (Action) - Inverted for dark mode */
|
|
220
240
|
--destructive: 0 84% 60%;
|
|
221
241
|
--destructive-foreground: 0 0% 98%;
|
|
222
242
|
--destructive-hover: 0 91% 71%;
|
|
223
243
|
--destructive-active: 0 72% 51%;
|
|
224
244
|
|
|
245
|
+
/* Danger (Indicator) - Bright red for errors on dark backgrounds */
|
|
246
|
+
--danger: 0 84% 60%;
|
|
247
|
+
--danger-foreground: 0 0% 98%;
|
|
248
|
+
--danger-hover: 0 91% 71%;
|
|
249
|
+
|
|
225
250
|
/* Success - Slightly lighter */
|
|
226
251
|
--success: 142 71% 45%;
|
|
227
252
|
--success-foreground: 0 0% 100%;
|
|
@@ -242,16 +267,96 @@
|
|
|
242
267
|
--input: 220 13% 24%;
|
|
243
268
|
--ring: 217 70% 60%;
|
|
244
269
|
|
|
270
|
+
/* Disabled State - visible on dark surfaces */
|
|
271
|
+
--disabled: 220 13% 20%;
|
|
272
|
+
--disabled-foreground: 220 9% 58%;
|
|
273
|
+
|
|
245
274
|
/* Semantic Border Tokens - Dark Mode */
|
|
246
275
|
--border-primary: 217 91% 60%;
|
|
247
276
|
--border-secondary: 220 13% 24%;
|
|
248
277
|
--border-destructive: 0 84% 60%;
|
|
278
|
+
--border-danger: 0 84% 60%;
|
|
249
279
|
--border-success: 142 71% 45%;
|
|
250
280
|
--border-warning: 38 92% 50%;
|
|
251
281
|
--border-info: 213 97% 70%;
|
|
252
282
|
}
|
|
253
283
|
}
|
|
254
284
|
|
|
285
|
+
/* Button gradient shine overlay - subtle white-to-transparent highlight from Figma */
|
|
286
|
+
.lua-btn-shine {
|
|
287
|
+
position: relative;
|
|
288
|
+
overflow: hidden;
|
|
289
|
+
}
|
|
290
|
+
.lua-btn-shine::before {
|
|
291
|
+
content: '';
|
|
292
|
+
position: absolute;
|
|
293
|
+
inset: 0;
|
|
294
|
+
border-radius: inherit;
|
|
295
|
+
pointer-events: none;
|
|
296
|
+
z-index: 1;
|
|
297
|
+
}
|
|
298
|
+
.lua-btn-shine-brand::before {
|
|
299
|
+
background: linear-gradient(180deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 100%);
|
|
300
|
+
}
|
|
301
|
+
.lua-btn-shine-destructive::before {
|
|
302
|
+
background: linear-gradient(180deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0) 100%);
|
|
303
|
+
}
|
|
304
|
+
.lua-btn-shine:disabled::before {
|
|
305
|
+
display: none;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
@keyframes button-loader-pulse {
|
|
309
|
+
0%, 100% { opacity: 0.35; transform: scale(0.95); }
|
|
310
|
+
50% { opacity: 1; transform: scale(1); }
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
.lua-btn-loader-dot {
|
|
314
|
+
animation: button-loader-pulse 1.4s ease-in-out infinite;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
.lua-btn-loader-dot:nth-child(2) {
|
|
318
|
+
animation-delay: 0.2s;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
.lua-btn-loader-dot:nth-child(3) {
|
|
322
|
+
animation-delay: 0.4s;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
.lua-btn-loading[data-loading='true'] {
|
|
326
|
+
--lua-loading-bg: hsl(220 13% 95%);
|
|
327
|
+
--lua-loading-text: hsl(220 9% 46%);
|
|
328
|
+
background-color: var(--lua-loading-bg) !important;
|
|
329
|
+
color: var(--lua-loading-text) !important;
|
|
330
|
+
border-color: transparent !important;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
.lua-btn-loading[data-loading='true'][data-variant='brand'] {
|
|
334
|
+
--lua-loading-bg: hsl(218 100% 59% / 0.15);
|
|
335
|
+
--lua-loading-text: hsl(218 100% 59%);
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
.lua-btn-loading[data-loading='true'][data-variant='destructive'] {
|
|
339
|
+
--lua-loading-bg: hsl(0 63% 31% / 0.12);
|
|
340
|
+
--lua-loading-text: hsl(0 63% 31%);
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
@media (prefers-color-scheme: dark) {
|
|
344
|
+
.lua-btn-loading[data-loading='true'] {
|
|
345
|
+
--lua-loading-bg: hsl(220 13% 16%);
|
|
346
|
+
--lua-loading-text: hsl(220 9% 65%);
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
.lua-btn-loading[data-loading='true'][data-variant='brand'] {
|
|
350
|
+
--lua-loading-bg: hsl(217 91% 60% / 0.2);
|
|
351
|
+
--lua-loading-text: hsl(213 97% 70%);
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
.lua-btn-loading[data-loading='true'][data-variant='destructive'] {
|
|
355
|
+
--lua-loading-bg: hsl(0 84% 60% / 0.15);
|
|
356
|
+
--lua-loading-text: hsl(0 91% 71%);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
|
|
255
360
|
.rdp-root {
|
|
256
361
|
/* Calendar background */
|
|
257
362
|
--rdp-background-color: hsl(var(--surface));
|