codexly-ui 0.1.21 → 0.1.22
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/assets/fonts/roboto-bold-italic.ttf +0 -0
- package/assets/fonts/roboto-bold.ttf +0 -0
- package/assets/fonts/roboto-italic.ttf +0 -0
- package/assets/fonts/roboto-light-italic.ttf +0 -0
- package/assets/fonts/roboto-light.ttf +0 -0
- package/assets/fonts/roboto-medium-italic.ttf +0 -0
- package/assets/fonts/roboto-medium.ttf +0 -0
- package/assets/fonts/roboto-regular.ttf +0 -0
- package/assets/fonts/roboto-semibold-italic.ttf +0 -0
- package/assets/fonts/roboto-semibold.ttf +0 -0
- package/assets/styles/_fonts.css +84 -3
- package/assets/styles/_globals.css +34 -43
- package/assets/styles/_safelist.css +22 -3
- package/assets/styles/_theme.css +86 -96
- package/fesm2022/codexly-ui.mjs +1292 -1655
- package/fesm2022/codexly-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/codexly-ui.d.ts +29 -66
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/assets/styles/_fonts.css
CHANGED
|
@@ -1,3 +1,84 @@
|
|
|
1
|
-
/*
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/* ── Roboto 300 Light ──────────────────────────────────────────────────────── */
|
|
2
|
+
@font-face {
|
|
3
|
+
font-family: 'Roboto';
|
|
4
|
+
font-style: normal;
|
|
5
|
+
font-weight: 300;
|
|
6
|
+
font-display: swap;
|
|
7
|
+
src: url('../fonts/roboto-light.ttf') format('truetype');
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
@font-face {
|
|
11
|
+
font-family: 'Roboto';
|
|
12
|
+
font-style: italic;
|
|
13
|
+
font-weight: 300;
|
|
14
|
+
font-display: swap;
|
|
15
|
+
src: url('../fonts/roboto-light-italic.ttf') format('truetype');
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/* ── Roboto 400 Regular ────────────────────────────────────────────────────── */
|
|
19
|
+
@font-face {
|
|
20
|
+
font-family: 'Roboto';
|
|
21
|
+
font-style: normal;
|
|
22
|
+
font-weight: 400;
|
|
23
|
+
font-display: swap;
|
|
24
|
+
src: url('../fonts/roboto-regular.ttf') format('truetype');
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@font-face {
|
|
28
|
+
font-family: 'Roboto';
|
|
29
|
+
font-style: italic;
|
|
30
|
+
font-weight: 400;
|
|
31
|
+
font-display: swap;
|
|
32
|
+
src: url('../fonts/roboto-italic.ttf') format('truetype');
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* ── Roboto 500 Medium ─────────────────────────────────────────────────────── */
|
|
36
|
+
@font-face {
|
|
37
|
+
font-family: 'Roboto';
|
|
38
|
+
font-style: normal;
|
|
39
|
+
font-weight: 500;
|
|
40
|
+
font-display: swap;
|
|
41
|
+
src: url('../fonts/roboto-medium.ttf') format('truetype');
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
@font-face {
|
|
45
|
+
font-family: 'Roboto';
|
|
46
|
+
font-style: italic;
|
|
47
|
+
font-weight: 500;
|
|
48
|
+
font-display: swap;
|
|
49
|
+
src: url('../fonts/roboto-medium-italic.ttf') format('truetype');
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* ── Roboto 600 SemiBold ───────────────────────────────────────────────────── */
|
|
53
|
+
@font-face {
|
|
54
|
+
font-family: 'Roboto';
|
|
55
|
+
font-style: normal;
|
|
56
|
+
font-weight: 600;
|
|
57
|
+
font-display: swap;
|
|
58
|
+
src: url('../fonts/roboto-semibold.ttf') format('truetype');
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
@font-face {
|
|
62
|
+
font-family: 'Roboto';
|
|
63
|
+
font-style: italic;
|
|
64
|
+
font-weight: 600;
|
|
65
|
+
font-display: swap;
|
|
66
|
+
src: url('../fonts/roboto-semibold-italic.ttf') format('truetype');
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* ── Roboto 700 Bold ───────────────────────────────────────────────────────── */
|
|
70
|
+
@font-face {
|
|
71
|
+
font-family: 'Roboto';
|
|
72
|
+
font-style: normal;
|
|
73
|
+
font-weight: 700;
|
|
74
|
+
font-display: swap;
|
|
75
|
+
src: url('../fonts/roboto-bold.ttf') format('truetype');
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
@font-face {
|
|
79
|
+
font-family: 'Roboto';
|
|
80
|
+
font-style: italic;
|
|
81
|
+
font-weight: 700;
|
|
82
|
+
font-display: swap;
|
|
83
|
+
src: url('../fonts/roboto-bold-italic.ttf') format('truetype');
|
|
84
|
+
}
|
|
@@ -1,43 +1,34 @@
|
|
|
1
|
-
/* ──
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/* ── Scrollbar ───────────────────────────────────────────────────────────── */
|
|
37
|
-
::-webkit-scrollbar { width: 0.5rem; height: 0.5rem; }
|
|
38
|
-
::-webkit-scrollbar-track { background-color: transparent; }
|
|
39
|
-
::-webkit-scrollbar-thumb {
|
|
40
|
-
background-color: var(--clx-primary);
|
|
41
|
-
border-radius: 0.5rem;
|
|
42
|
-
}
|
|
43
|
-
::-webkit-scrollbar-thumb:hover { background-color: var(--clx-primary); }
|
|
1
|
+
/* ── Backdrop base ───────────────────────────────────────────────────────── */
|
|
2
|
+
.clx-modal-backdrop,
|
|
3
|
+
.clx-alert-backdrop {
|
|
4
|
+
animation: clx-backdrop-in 220ms ease forwards;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
@keyframes clx-backdrop-in {
|
|
8
|
+
from { opacity: 0; }
|
|
9
|
+
to { opacity: 1; }
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/* ── Modal backdrop ─────────────────────────────────────────────────────── */
|
|
13
|
+
.clx-modal-backdrop {
|
|
14
|
+
background-color: rgba(15, 23, 42, 0.40);
|
|
15
|
+
backdrop-filter: blur(4px);
|
|
16
|
+
-webkit-backdrop-filter: blur(4px);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/* ── Alert backdrop ──────────────────────────────────────────────────────── */
|
|
20
|
+
.clx-alert-backdrop {
|
|
21
|
+
background-color: rgba(15, 23, 42, 0.45);
|
|
22
|
+
backdrop-filter: blur(6px);
|
|
23
|
+
-webkit-backdrop-filter: blur(6px);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
/* ── Scrollbar ───────────────────────────────────────────────────────────── */
|
|
28
|
+
::-webkit-scrollbar { width: 0.5rem; height: 0.5rem; }
|
|
29
|
+
::-webkit-scrollbar-track { background-color: transparent; }
|
|
30
|
+
::-webkit-scrollbar-thumb {
|
|
31
|
+
background-color: var(--clx-primary-light);
|
|
32
|
+
border-radius: 0.5rem;
|
|
33
|
+
}
|
|
34
|
+
::-webkit-scrollbar-thumb:hover { background-color: var(--clx-primary); }
|
|
@@ -1,7 +1,26 @@
|
|
|
1
|
-
/* ── Safelist:
|
|
1
|
+
/* ── Safelist: dynamic class binding for resolveColor()/parseColorInput() ──
|
|
2
|
+
These are the ONLY class shapes resolveColor() (lib/types/clx-color.types.ts)
|
|
3
|
+
ever emits. Keep this list in sync with that function — do not widen it
|
|
4
|
+
back to a full color x prefix x opacity cross product, that generated
|
|
5
|
+
~16,000 classes (4.5MB+ of compiled CSS) and made resize/reflow style
|
|
6
|
+
recalculation extremely expensive. ── */
|
|
2
7
|
@source inline("shadow-none shadow-sm shadow-md shadow-lg shadow-xl shadow-2xl");
|
|
3
|
-
|
|
8
|
+
|
|
9
|
+
/* plain (no opacity) tokens: bg, bgSubtle, text, textSubtle, border, borderLight,
|
|
10
|
+
hoverBg, hoverText*, hoverBorder*, focus:border, focus-within:border, focus-visible:ring */
|
|
11
|
+
@source inline("{bg,text,border,hover:bg,hover:text,hover:border,focus:border,focus-within:border,focus-visible:ring}-{red,orange,amber,yellow,lime,green,emerald,teal,cyan,sky,blue,indigo,violet,purple,fuchsia,pink,rose,slate,gray,zinc,neutral,stone}-{50,100,200,300,400,500,600,700,800,900,950}");
|
|
12
|
+
|
|
13
|
+
/* hoverBgMuted: hover:bg-{c}-{s}/10 */
|
|
14
|
+
@source inline("hover:bg-{red,orange,amber,yellow,lime,green,emerald,teal,cyan,sky,blue,indigo,violet,purple,fuchsia,pink,rose,slate,gray,zinc,neutral,stone}-{50,100,200,300,400,500,600,700,800,900,950}/10");
|
|
15
|
+
|
|
16
|
+
/* focus/focus-within ring: focus:ring-{c}-{s}/20, focus-within:ring-{c}-{s}/20 */
|
|
17
|
+
@source inline("{focus:ring,focus-within:ring}-{red,orange,amber,yellow,lime,green,emerald,teal,cyan,sky,blue,indigo,violet,purple,fuchsia,pink,rose,slate,gray,zinc,neutral,stone}-{50,100,200,300,400,500,600,700,800,900,950}/20");
|
|
18
|
+
|
|
19
|
+
/* ring (default): ring-{c}-{s}/30 */
|
|
20
|
+
@source inline("ring-{red,orange,amber,yellow,lime,green,emerald,teal,cyan,sky,blue,indigo,violet,purple,fuchsia,pink,rose,slate,gray,zinc,neutral,stone}-{50,100,200,300,400,500,600,700,800,900,950}/30");
|
|
21
|
+
|
|
22
|
+
/* 'white' special-case tokens (WHITE_TOKENS in clx-color.types.ts) */
|
|
4
23
|
@source inline("{bg,hover:bg,focus:ring,focus-within:ring,border,focus:border,focus-within:border,hover:border,border-t}-{white,black,transparent}");
|
|
5
|
-
@source inline("border-white/30 border-t-white");
|
|
24
|
+
@source inline("border-white/30 border-t-white bg-white/10 bg-white/30 bg-white/80 border-white/20 border-white/50 border-white/80 text-white/60 text-white/70 ring-white/30 ring-white/40 ring-white/20 hover:bg-gray-100 text-gray-900");
|
|
6
25
|
@source inline("text-{black,white}");
|
|
7
26
|
@source inline("focus:ring-2 focus-within:ring-2 ring-2");
|
package/assets/styles/_theme.css
CHANGED
|
@@ -1,96 +1,86 @@
|
|
|
1
|
-
/* ── Font registrations ───────────────────────────────────────────────────── */
|
|
2
|
-
@theme {
|
|
3
|
-
--font-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
/* ──
|
|
12
|
-
:
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
--clx-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
--clx-
|
|
21
|
-
--clx-
|
|
22
|
-
|
|
23
|
-
/*
|
|
24
|
-
--clx-text:
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
--clx-
|
|
28
|
-
--clx-
|
|
29
|
-
|
|
30
|
-
/* ──
|
|
31
|
-
--clx-
|
|
32
|
-
--clx-
|
|
33
|
-
|
|
34
|
-
/* ──
|
|
35
|
-
--clx-
|
|
36
|
-
--clx-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
--clx-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
/*
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
/* ──
|
|
52
|
-
--clx-
|
|
53
|
-
|
|
54
|
-
/*
|
|
55
|
-
--clx-
|
|
56
|
-
--clx-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
/*
|
|
60
|
-
--clx-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
--clx-
|
|
64
|
-
--clx-
|
|
65
|
-
|
|
66
|
-
/* ──
|
|
67
|
-
--clx-
|
|
68
|
-
--clx-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
--clx-
|
|
76
|
-
--clx-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
--color-clx-
|
|
82
|
-
--color-clx-
|
|
83
|
-
--color-clx-
|
|
84
|
-
--color-clx-
|
|
85
|
-
--color-clx-
|
|
86
|
-
|
|
87
|
-
--color-clx-text-muted: var(--clx-text-muted);
|
|
88
|
-
--color-clx-text-subtle: var(--clx-text-subtle);
|
|
89
|
-
--color-clx-text-faint: var(--clx-text-faint);
|
|
90
|
-
--color-clx-border: var(--clx-border);
|
|
91
|
-
--color-clx-border-soft: var(--clx-border-soft);
|
|
92
|
-
--color-clx-primary: var(--clx-primary);
|
|
93
|
-
--color-clx-primary-light: var(--clx-primary-light);
|
|
94
|
-
--color-clx-secondary: var(--clx-secondary);
|
|
95
|
-
--color-clx-secondary-light: var(--clx-secondary-light);
|
|
96
|
-
}
|
|
1
|
+
/* ── Font registrations ───────────────────────────────────────────────────── */
|
|
2
|
+
@theme {
|
|
3
|
+
--font-roboto: 'Roboto', ui-sans-serif, system-ui, sans-serif;
|
|
4
|
+
--font-material-symbols-outlined: 'Material Symbols Outlined';
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
/* ── Light theme (default) ────────────────────────────────────────────────── */
|
|
8
|
+
:root {
|
|
9
|
+
color-scheme: light;
|
|
10
|
+
|
|
11
|
+
/* ── App background ── */
|
|
12
|
+
--clx-bg: #f8fafc; /* slate-50 */
|
|
13
|
+
|
|
14
|
+
/* ── Surface (cards, modals, inputs, dropdowns) ── */
|
|
15
|
+
--clx-surface: #ffffff;
|
|
16
|
+
--clx-surface-2: #f8fafc; /* slate-50 — card/modal header+footer, disabled bg */
|
|
17
|
+
--clx-surface-3: #f1f5f9; /* slate-100 — hover rows, icon wraps */
|
|
18
|
+
|
|
19
|
+
/* ── Text ── */
|
|
20
|
+
--clx-text: #0f172a; /* slate-900 — body text */
|
|
21
|
+
--clx-text-label: #475569; /* slate-600 — field labels */
|
|
22
|
+
--clx-text-muted: #64748b; /* slate-500 — secondary text, body in alerts */
|
|
23
|
+
--clx-text-subtle: #94a3b8; /* slate-400 — hints, placeholders, idle nav */
|
|
24
|
+
--clx-text-faint: #cbd5e1; /* slate-300 — out-of-range calendar days */
|
|
25
|
+
|
|
26
|
+
/* ── Borders ── */
|
|
27
|
+
--clx-border: #e2e8f0; /* slate-200 — default input/card border */
|
|
28
|
+
--clx-border-soft: #f1f5f9; /* slate-100 — card/modal header-footer divider */
|
|
29
|
+
|
|
30
|
+
/* ── Backdrops ── */
|
|
31
|
+
--clx-backdrop-modal: rgba(15, 23, 42, 0.40);
|
|
32
|
+
--clx-backdrop-alert: rgba(15, 23, 42, 0.45);
|
|
33
|
+
|
|
34
|
+
/* ── Scrollbar ── */
|
|
35
|
+
--clx-scrollbar: #cbd5e1; /* slate-300 */
|
|
36
|
+
--clx-scrollbar-hover: #94a3b8; /* slate-400 */
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* ── Dark theme ───────────────────────────────────────────────────────────── */
|
|
40
|
+
[data-clx-theme="dark"] {
|
|
41
|
+
color-scheme: dark;
|
|
42
|
+
|
|
43
|
+
/* ── App background ── */
|
|
44
|
+
--clx-bg: #020617; /* slate-950 */
|
|
45
|
+
|
|
46
|
+
/* ── Surface ── */
|
|
47
|
+
--clx-surface: #0f172a; /* slate-900 */
|
|
48
|
+
--clx-surface-2: #1e293b; /* slate-800 — card/modal header+footer, disabled bg */
|
|
49
|
+
--clx-surface-3: #334155; /* slate-700 — hover rows, icon wraps */
|
|
50
|
+
|
|
51
|
+
/* ── Text ── */
|
|
52
|
+
--clx-text: #f1f5f9; /* slate-100 */
|
|
53
|
+
--clx-text-label: #cbd5e1; /* slate-300 */
|
|
54
|
+
--clx-text-muted: #94a3b8; /* slate-400 */
|
|
55
|
+
--clx-text-subtle: #64748b; /* slate-500 */
|
|
56
|
+
--clx-text-faint: #475569; /* slate-600 */
|
|
57
|
+
|
|
58
|
+
/* ── Borders ── */
|
|
59
|
+
--clx-border: #334155; /* slate-700 */
|
|
60
|
+
--clx-border-soft: #1e293b; /* slate-800 */
|
|
61
|
+
|
|
62
|
+
/* ── Backdrops ── */
|
|
63
|
+
--clx-backdrop-modal: rgba(2, 6, 23, 0.65);
|
|
64
|
+
--clx-backdrop-alert: rgba(2, 6, 23, 0.70);
|
|
65
|
+
|
|
66
|
+
/* ── Scrollbar ── */
|
|
67
|
+
--clx-scrollbar: #334155; /* slate-700 */
|
|
68
|
+
--clx-scrollbar-hover: #475569; /* slate-600 */
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/* ── Tailwind v4: registrar vars como colores utilitarios ─────────────────── */
|
|
72
|
+
@theme inline {
|
|
73
|
+
--color-clx-bg: var(--clx-bg);
|
|
74
|
+
--color-clx-surface: var(--clx-surface);
|
|
75
|
+
--color-clx-surface-2: var(--clx-surface-2);
|
|
76
|
+
--color-clx-surface-3: var(--clx-surface-3);
|
|
77
|
+
--color-clx-text: var(--clx-text);
|
|
78
|
+
--color-clx-text-label: var(--clx-text-label);
|
|
79
|
+
--color-clx-text-muted: var(--clx-text-muted);
|
|
80
|
+
--color-clx-text-subtle: var(--clx-text-subtle);
|
|
81
|
+
--color-clx-text-faint: var(--clx-text-faint);
|
|
82
|
+
--color-clx-border: var(--clx-border);
|
|
83
|
+
--color-clx-border-soft: var(--clx-border-soft);
|
|
84
|
+
--color-clx-primary: var(--clx-primary);
|
|
85
|
+
--color-clx-primary-light: var(--clx-primary-light);
|
|
86
|
+
}
|