@akhil-saxena/design-system 1.2.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/LICENSE +21 -0
- package/README.md +122 -0
- package/dist/Icon-XUp5t4PQ.d.ts +10 -0
- package/dist/chunk-FUXR6QZ3.js +108 -0
- package/dist/chunk-FUXR6QZ3.js.map +1 -0
- package/dist/chunk-TG25XACB.js +65 -0
- package/dist/chunk-TG25XACB.js.map +1 -0
- package/dist/hooks/index.d.ts +145 -0
- package/dist/hooks/index.js +177 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/icons/index.d.ts +39 -0
- package/dist/icons/index.js +3 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/index.d.ts +2091 -0
- package/dist/index.js +9200 -0
- package/dist/index.js.map +1 -0
- package/dist/primitives.css +4775 -0
- package/dist/tokens.css +180 -0
- package/dist/utilities.css +200 -0
- package/package.json +104 -0
package/dist/tokens.css
ADDED
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/* @akhil-saxena/design-system v0.1.0 - token layer.
|
|
2
|
+
Imported via:
|
|
3
|
+
import "@akhil-saxena/design-system/tokens.css";
|
|
4
|
+
Use BEFORE primitives.css and utilities.css (cascade order matters). */
|
|
5
|
+
|
|
6
|
+
/* @fontsource - replaces Google Fonts CDN @import. Versioned with the package. */
|
|
7
|
+
@import "@fontsource/inter/400.css";
|
|
8
|
+
@import "@fontsource/inter/500.css";
|
|
9
|
+
@import "@fontsource/inter/600.css";
|
|
10
|
+
@import "@fontsource/inter/700.css";
|
|
11
|
+
@import "@fontsource/archivo/500.css";
|
|
12
|
+
@import "@fontsource/archivo/600.css";
|
|
13
|
+
@import "@fontsource/archivo/700.css";
|
|
14
|
+
@import "@fontsource/archivo/800.css";
|
|
15
|
+
@import "@fontsource/archivo/900.css";
|
|
16
|
+
@import "@fontsource/jetbrains-mono/400.css";
|
|
17
|
+
@import "@fontsource/jetbrains-mono/500.css";
|
|
18
|
+
@import "@fontsource/jetbrains-mono/600.css";
|
|
19
|
+
@import "@fontsource/jetbrains-mono/700.css";
|
|
20
|
+
|
|
21
|
+
/* ─── Light mode tokens ─────────────────────────────────────────────── */
|
|
22
|
+
:root {
|
|
23
|
+
/* Type stacks */
|
|
24
|
+
--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", system-ui,
|
|
25
|
+
sans-serif;
|
|
26
|
+
--mono: "JetBrains Mono", "SF Mono", "Menlo", monospace;
|
|
27
|
+
--display: "Archivo", system-ui, sans-serif;
|
|
28
|
+
|
|
29
|
+
/* Ink ramp (text + dark surfaces) */
|
|
30
|
+
--ink: #292524;
|
|
31
|
+
--ink-2: #57534e;
|
|
32
|
+
--ink-3: #6b6560;
|
|
33
|
+
--ink-4: #8a8380;
|
|
34
|
+
--ink-5: #d6d3d1;
|
|
35
|
+
|
|
36
|
+
/* Cream ramp (warm background surfaces) */
|
|
37
|
+
--cream: #f5f3f0;
|
|
38
|
+
--cream-2: #ece8e3;
|
|
39
|
+
--cream-3: #e7e2dc;
|
|
40
|
+
|
|
41
|
+
/* Amber accent */
|
|
42
|
+
--amber: #f59e0b;
|
|
43
|
+
--amber-d: #b45309;
|
|
44
|
+
--amber-l: #fef3c7;
|
|
45
|
+
|
|
46
|
+
/* Status text-safe - handoff v1.0 AAA-on-cream values */
|
|
47
|
+
--blue: #1e3a8a;
|
|
48
|
+
--purple: #5b21b6;
|
|
49
|
+
--green: #14532d;
|
|
50
|
+
--red: #991b1b;
|
|
51
|
+
|
|
52
|
+
/* Hairline rule */
|
|
53
|
+
--rule: rgba(0, 0, 0, 0.08);
|
|
54
|
+
|
|
55
|
+
/* Vivids - decorative-only (dots, fills, borders), never text */
|
|
56
|
+
--amber-vivid: #f59e0b;
|
|
57
|
+
--blue-vivid: #3b82f6;
|
|
58
|
+
--purple-vivid: #8b5cf6;
|
|
59
|
+
--green-vivid: #22c55e;
|
|
60
|
+
--red-vivid: #ef4444;
|
|
61
|
+
|
|
62
|
+
/* Glass effect tokens (default variant; .glass-subtle and .glass-heavy
|
|
63
|
+
ship their own values per the README handoff table) */
|
|
64
|
+
--g-bg: rgba(255, 255, 255, 0.55);
|
|
65
|
+
--g-bd: rgba(255, 255, 255, 0.5);
|
|
66
|
+
--g-blur: 14px;
|
|
67
|
+
|
|
68
|
+
/* Border radii - handoff v1.0 token table */
|
|
69
|
+
--radius-sm: 4px;
|
|
70
|
+
--radius-md: 8px;
|
|
71
|
+
--radius-lg: 12px;
|
|
72
|
+
--radius-xl: 16px;
|
|
73
|
+
--radius-pill: 999px;
|
|
74
|
+
/* Backwards-compat aliases retained from in-tree refresh (13.5-02) */
|
|
75
|
+
--radius-2xl: 16px;
|
|
76
|
+
--radius-full: 999px;
|
|
77
|
+
|
|
78
|
+
/* Shadows - handoff v1.0 token table */
|
|
79
|
+
--shadow-1: 0 1px 2px rgba(0, 0, 0, 0.05);
|
|
80
|
+
--shadow-2: 0 4px 12px rgba(0, 0, 0, 0.08);
|
|
81
|
+
--shadow-3: 0 12px 32px rgba(0, 0, 0, 0.12);
|
|
82
|
+
/* Backwards-compat aliases retained from in-tree refresh (13.5-02) */
|
|
83
|
+
--shadow-subtle: var(--shadow-1);
|
|
84
|
+
--shadow-card: var(--shadow-2);
|
|
85
|
+
--shadow-elevated: var(--shadow-2);
|
|
86
|
+
--shadow-overlay: var(--shadow-3);
|
|
87
|
+
|
|
88
|
+
/* Spacing scale - handoff v1.0 (multiples of 4px, 16-step) */
|
|
89
|
+
--space-1: 4px;
|
|
90
|
+
--space-2: 8px;
|
|
91
|
+
--space-3: 12px;
|
|
92
|
+
--space-4: 16px;
|
|
93
|
+
--space-5: 20px;
|
|
94
|
+
--space-6: 24px;
|
|
95
|
+
--space-7: 28px;
|
|
96
|
+
--space-8: 32px;
|
|
97
|
+
--space-9: 36px;
|
|
98
|
+
--space-10: 40px;
|
|
99
|
+
--space-11: 44px;
|
|
100
|
+
--space-12: 48px;
|
|
101
|
+
--space-13: 52px;
|
|
102
|
+
--space-14: 56px;
|
|
103
|
+
--space-15: 60px;
|
|
104
|
+
--space-16: 64px;
|
|
105
|
+
|
|
106
|
+
/* Motion tokens - handoff v1.0 */
|
|
107
|
+
--ease-out: cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
108
|
+
--ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
|
|
109
|
+
--ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
110
|
+
--dur-1: 120ms;
|
|
111
|
+
--dur-2: 180ms;
|
|
112
|
+
--dur-3: 240ms;
|
|
113
|
+
--dur-4: 360ms;
|
|
114
|
+
|
|
115
|
+
/* Surface tokens - handoff v1.0 (translucent overlays, light) */
|
|
116
|
+
--surf-1: rgba(255, 255, 255, 0.4);
|
|
117
|
+
--surf-2: rgba(255, 255, 255, 0.55);
|
|
118
|
+
--surf-3: rgba(255, 255, 255, 0.7);
|
|
119
|
+
|
|
120
|
+
/* Focus tokens - handoff v1.0 */
|
|
121
|
+
--focus: var(--amber);
|
|
122
|
+
--focus-ring: 0 0 0 3px rgba(245, 158, 11, 0.45);
|
|
123
|
+
|
|
124
|
+
/* Illustration surface fills - use these instead of --cream in SVGs */
|
|
125
|
+
--ds-illust-bg: var(--cream-2);
|
|
126
|
+
--ds-illust-bg-2: var(--cream-3);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/* ─── Dark mode overrides ─────────────────────────────────────────────
|
|
130
|
+
Both :root.dark (full-page dark - Storybook canvas, consumer apps) and
|
|
131
|
+
.dark (scoped container dark - Storybook Docs inline story wrappers)
|
|
132
|
+
define the same values so var(--ink) etc resolve correctly on either. */
|
|
133
|
+
:root.dark,
|
|
134
|
+
.dark {
|
|
135
|
+
/* Ink ramp inverts: ink becomes cream-toned, cream becomes near-black */
|
|
136
|
+
--ink: #f5f3f0;
|
|
137
|
+
--ink-2: #d6d3d1;
|
|
138
|
+
--ink-3: #a8a29e;
|
|
139
|
+
--ink-4: #8a8380;
|
|
140
|
+
--ink-5: #44403c;
|
|
141
|
+
|
|
142
|
+
--cream: #1c1917;
|
|
143
|
+
--cream-2: #292524;
|
|
144
|
+
--cream-3: #44403c;
|
|
145
|
+
|
|
146
|
+
/* Hairline brightens for dark surfaces */
|
|
147
|
+
--rule: rgba(255, 255, 255, 0.08);
|
|
148
|
+
|
|
149
|
+
/* Glass tints to dark ink */
|
|
150
|
+
--g-bg: rgba(40, 37, 34, 0.7);
|
|
151
|
+
--g-bd: rgba(255, 255, 255, 0.08);
|
|
152
|
+
|
|
153
|
+
/* Status colors lift for dark contrast - handoff v1.0 dark table */
|
|
154
|
+
--amber-d: #fbbf24;
|
|
155
|
+
--blue: #7cb8fb;
|
|
156
|
+
--purple: #bfa3fb;
|
|
157
|
+
--green: #4ade80;
|
|
158
|
+
--red: #fb8888;
|
|
159
|
+
|
|
160
|
+
/* Vivids are decorative-only; restated explicitly even though values
|
|
161
|
+
are identical to light mode (handoff comment line 28: "vivids
|
|
162
|
+
unchanged in dark"). */
|
|
163
|
+
--amber-vivid: #f59e0b;
|
|
164
|
+
--blue-vivid: #3b82f6;
|
|
165
|
+
--purple-vivid: #8b5cf6;
|
|
166
|
+
--green-vivid: #22c55e;
|
|
167
|
+
--red-vivid: #ef4444;
|
|
168
|
+
|
|
169
|
+
/* Surface tokens - handoff v1.0 dark (white-low-alpha overlays) */
|
|
170
|
+
--surf-1: rgba(255, 255, 255, 0.04);
|
|
171
|
+
--surf-2: rgba(255, 255, 255, 0.06);
|
|
172
|
+
--surf-3: rgba(255, 255, 255, 0.1);
|
|
173
|
+
|
|
174
|
+
/* Focus ring - dark-mode amber-d glow */
|
|
175
|
+
--focus-ring: 0 0 0 3px rgba(251, 191, 36, 0.5);
|
|
176
|
+
|
|
177
|
+
/* Illustration surface fills lift to visible translucent white in dark mode */
|
|
178
|
+
--ds-illust-bg: rgba(255, 255, 255, 0.13);
|
|
179
|
+
--ds-illust-bg-2: rgba(255, 255, 255, 0.2);
|
|
180
|
+
}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/* @akhil-saxena/design-system v0.1.0 - cross-cutting utility classes.
|
|
2
|
+
Imported via:
|
|
3
|
+
import "@akhil-saxena/design-system/utilities.css";
|
|
4
|
+
Requires tokens.css to be imported first.
|
|
5
|
+
Includes: .glass / .glass-subtle / .glass-heavy (+ dark variants),
|
|
6
|
+
.ds-label, .ds-focus-ring, .ds-dot-grid, native date input theming,
|
|
7
|
+
.jd-markdown rendered-content styles. */
|
|
8
|
+
|
|
9
|
+
.glass {
|
|
10
|
+
background: var(--g-bg);
|
|
11
|
+
backdrop-filter: blur(var(--g-blur));
|
|
12
|
+
-webkit-backdrop-filter: blur(var(--g-blur));
|
|
13
|
+
border: 1px solid var(--g-bd);
|
|
14
|
+
border-radius: var(--radius-xl);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.glass-subtle {
|
|
18
|
+
background: rgba(255, 255, 255, 0.85);
|
|
19
|
+
backdrop-filter: blur(6px);
|
|
20
|
+
-webkit-backdrop-filter: blur(6px);
|
|
21
|
+
border: 1px solid rgba(0, 0, 0, 0.05);
|
|
22
|
+
border-radius: var(--radius-xl);
|
|
23
|
+
}
|
|
24
|
+
:root.dark .glass-subtle {
|
|
25
|
+
background: rgba(28, 25, 23, 0.85);
|
|
26
|
+
border-color: rgba(255, 255, 255, 0.06);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.glass-heavy {
|
|
30
|
+
background: rgba(255, 255, 255, 0.4);
|
|
31
|
+
backdrop-filter: blur(22px);
|
|
32
|
+
-webkit-backdrop-filter: blur(22px);
|
|
33
|
+
border: 1px solid rgba(255, 255, 255, 0.5);
|
|
34
|
+
border-radius: var(--radius-xl);
|
|
35
|
+
}
|
|
36
|
+
:root.dark .glass-heavy {
|
|
37
|
+
background: rgba(28, 25, 23, 0.6);
|
|
38
|
+
border-color: rgba(255, 255, 255, 0.08);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* ─── Mono uppercase label ──────────────────────────────────────────────
|
|
42
|
+
The signature "section meta" label everywhere a small all-caps mono
|
|
43
|
+
header is called for. 10px / 600 / 0.08em tracking per spec §4. */
|
|
44
|
+
.ds-label {
|
|
45
|
+
font-family: var(--mono);
|
|
46
|
+
font-size: 10px;
|
|
47
|
+
font-weight: 600;
|
|
48
|
+
letter-spacing: 0.08em;
|
|
49
|
+
text-transform: uppercase;
|
|
50
|
+
color: var(--ink-3);
|
|
51
|
+
}
|
|
52
|
+
:root.dark .ds-label {
|
|
53
|
+
color: var(--ink-4);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* ─── Amber focus-ring utility ──────────────────────────────────────────
|
|
57
|
+
Handoff input :focus state (line 85 of the source `<style>` block).
|
|
58
|
+
Apply to any interactive element - focus and focus-within both fire,
|
|
59
|
+
so it works on wrapping containers like .ds-input-wrap. */
|
|
60
|
+
.ds-focus-ring:focus,
|
|
61
|
+
.ds-focus-ring:focus-within {
|
|
62
|
+
outline: none;
|
|
63
|
+
border-color: var(--amber);
|
|
64
|
+
box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.12);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/* ─── Optional dot-grid background helper ───────────────────────────────
|
|
68
|
+
Lets specific surfaces opt into the same dot pattern the body uses
|
|
69
|
+
(e.g., empty states, hero cards). Light variant uses ink dots, dark
|
|
70
|
+
variant flips to white dots. */
|
|
71
|
+
.ds-dot-grid {
|
|
72
|
+
background-image: radial-gradient(circle, rgba(41, 37, 36, 0.08) 1px, transparent 1.2px);
|
|
73
|
+
background-size: 16px 16px;
|
|
74
|
+
}
|
|
75
|
+
:root.dark .ds-dot-grid {
|
|
76
|
+
background-image: radial-gradient(circle, rgba(255, 255, 255, 0.04) 1px, transparent 1.2px);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/* ─── Native date / time input theming ──────────────────────────────────
|
|
80
|
+
Preserved verbatim from the previous index.css. Without color-scheme,
|
|
81
|
+
browsers render the native popover chrome with the OS default scheme,
|
|
82
|
+
which looks broken inside a dark glass card. */
|
|
83
|
+
input[type="date"],
|
|
84
|
+
input[type="datetime-local"],
|
|
85
|
+
input[type="time"],
|
|
86
|
+
input[type="month"],
|
|
87
|
+
input[type="week"] {
|
|
88
|
+
color-scheme: light;
|
|
89
|
+
}
|
|
90
|
+
.dark input[type="date"],
|
|
91
|
+
.dark input[type="datetime-local"],
|
|
92
|
+
.dark input[type="time"],
|
|
93
|
+
.dark input[type="month"],
|
|
94
|
+
.dark input[type="week"] {
|
|
95
|
+
color-scheme: dark;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/* Nudge the native calendar indicator so it sits in the padding, not flush
|
|
99
|
+
against the border. Also subtly tint it to the accent on hover for
|
|
100
|
+
discoverability. Only applied on date-style inputs. */
|
|
101
|
+
input[type="date"]::-webkit-calendar-picker-indicator,
|
|
102
|
+
input[type="datetime-local"]::-webkit-calendar-picker-indicator,
|
|
103
|
+
input[type="time"]::-webkit-calendar-picker-indicator {
|
|
104
|
+
opacity: 0.55;
|
|
105
|
+
cursor: pointer;
|
|
106
|
+
transition: opacity 120ms ease;
|
|
107
|
+
}
|
|
108
|
+
input[type="date"]:hover::-webkit-calendar-picker-indicator,
|
|
109
|
+
input[type="datetime-local"]:hover::-webkit-calendar-picker-indicator,
|
|
110
|
+
input[type="time"]:hover::-webkit-calendar-picker-indicator {
|
|
111
|
+
opacity: 0.9;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/* ─── Markdown rendered content ─────────────────────────────────────────
|
|
115
|
+
Styles for arbitrary user-rendered markdown (notes, JD scrape output,
|
|
116
|
+
research). Applied via .jd-markdown class on the wrapping container. */
|
|
117
|
+
.jd-markdown h1 {
|
|
118
|
+
font-family: var(--display);
|
|
119
|
+
font-size: 1.25rem;
|
|
120
|
+
font-weight: 700;
|
|
121
|
+
margin-top: 1.25rem;
|
|
122
|
+
margin-bottom: 0.5rem;
|
|
123
|
+
}
|
|
124
|
+
.jd-markdown h2 {
|
|
125
|
+
font-family: var(--display);
|
|
126
|
+
font-size: 1.1rem;
|
|
127
|
+
font-weight: 700;
|
|
128
|
+
margin-top: 1rem;
|
|
129
|
+
margin-bottom: 0.4rem;
|
|
130
|
+
}
|
|
131
|
+
.jd-markdown h3 {
|
|
132
|
+
font-family: var(--display);
|
|
133
|
+
font-size: 1rem;
|
|
134
|
+
font-weight: 600;
|
|
135
|
+
margin-top: 0.75rem;
|
|
136
|
+
margin-bottom: 0.3rem;
|
|
137
|
+
}
|
|
138
|
+
.jd-markdown p {
|
|
139
|
+
margin-bottom: 0.6rem;
|
|
140
|
+
line-height: 1.65;
|
|
141
|
+
}
|
|
142
|
+
.jd-markdown ul,
|
|
143
|
+
.jd-markdown ol {
|
|
144
|
+
padding-left: 1.25rem;
|
|
145
|
+
margin-bottom: 0.6rem;
|
|
146
|
+
}
|
|
147
|
+
.jd-markdown ul {
|
|
148
|
+
list-style-type: disc;
|
|
149
|
+
}
|
|
150
|
+
.jd-markdown ol {
|
|
151
|
+
list-style-type: decimal;
|
|
152
|
+
}
|
|
153
|
+
.jd-markdown li {
|
|
154
|
+
margin-bottom: 0.25rem;
|
|
155
|
+
line-height: 1.55;
|
|
156
|
+
}
|
|
157
|
+
.jd-markdown code {
|
|
158
|
+
background: rgba(0, 0, 0, 0.04);
|
|
159
|
+
padding: 0.1rem 0.35rem;
|
|
160
|
+
border-radius: 4px;
|
|
161
|
+
font-size: 0.85em;
|
|
162
|
+
font-family: var(--mono);
|
|
163
|
+
}
|
|
164
|
+
.jd-markdown pre {
|
|
165
|
+
background: rgba(0, 0, 0, 0.04);
|
|
166
|
+
padding: 0.75rem 1rem;
|
|
167
|
+
border-radius: 8px;
|
|
168
|
+
overflow-x: auto;
|
|
169
|
+
margin-bottom: 0.6rem;
|
|
170
|
+
}
|
|
171
|
+
.jd-markdown pre code {
|
|
172
|
+
background: transparent;
|
|
173
|
+
padding: 0;
|
|
174
|
+
}
|
|
175
|
+
.jd-markdown strong {
|
|
176
|
+
font-weight: 700;
|
|
177
|
+
}
|
|
178
|
+
.jd-markdown em {
|
|
179
|
+
font-style: italic;
|
|
180
|
+
}
|
|
181
|
+
.jd-markdown a {
|
|
182
|
+
color: #d97706;
|
|
183
|
+
text-decoration: underline;
|
|
184
|
+
}
|
|
185
|
+
.jd-markdown blockquote {
|
|
186
|
+
border-left: 3px solid #f59e0b;
|
|
187
|
+
padding-left: 0.75rem;
|
|
188
|
+
margin: 0.5rem 0;
|
|
189
|
+
opacity: 0.85;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.dark .jd-markdown code {
|
|
193
|
+
background: rgba(255, 255, 255, 0.06);
|
|
194
|
+
}
|
|
195
|
+
.dark .jd-markdown pre {
|
|
196
|
+
background: rgba(255, 255, 255, 0.06);
|
|
197
|
+
}
|
|
198
|
+
.dark .jd-markdown a {
|
|
199
|
+
color: #fbbf24;
|
|
200
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@akhil-saxena/design-system",
|
|
3
|
+
"version": "1.2.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Accessible React primitives with semantic tokens",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"author": "Akhil Saxena <saxena.akhil42@gmail.com>",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/akhil-saxena/design-system.git"
|
|
11
|
+
},
|
|
12
|
+
"publishConfig": {
|
|
13
|
+
"registry": "https://registry.npmjs.org",
|
|
14
|
+
"access": "public"
|
|
15
|
+
},
|
|
16
|
+
"main": "./dist/index.js",
|
|
17
|
+
"module": "./dist/index.js",
|
|
18
|
+
"types": "./dist/index.d.ts",
|
|
19
|
+
"files": ["dist", "README.md", "LICENSE"],
|
|
20
|
+
"sideEffects": ["*.css"],
|
|
21
|
+
"exports": {
|
|
22
|
+
".": {
|
|
23
|
+
"types": "./dist/index.d.ts",
|
|
24
|
+
"import": "./dist/index.js"
|
|
25
|
+
},
|
|
26
|
+
"./hooks": {
|
|
27
|
+
"types": "./dist/hooks/index.d.ts",
|
|
28
|
+
"import": "./dist/hooks/index.js"
|
|
29
|
+
},
|
|
30
|
+
"./icons": {
|
|
31
|
+
"types": "./dist/icons/index.d.ts",
|
|
32
|
+
"import": "./dist/icons/index.js"
|
|
33
|
+
},
|
|
34
|
+
"./tokens.css": "./dist/tokens.css",
|
|
35
|
+
"./primitives.css": "./dist/primitives.css",
|
|
36
|
+
"./utilities.css": "./dist/utilities.css"
|
|
37
|
+
},
|
|
38
|
+
"scripts": {
|
|
39
|
+
"build": "tsup",
|
|
40
|
+
"dev": "tsup --watch",
|
|
41
|
+
"test": "vitest run",
|
|
42
|
+
"test:visual": "playwright test",
|
|
43
|
+
"test:visual:update": "playwright test --update-snapshots",
|
|
44
|
+
"storybook": "storybook dev -p 6006",
|
|
45
|
+
"build-storybook": "storybook build",
|
|
46
|
+
"check": "biome check .",
|
|
47
|
+
"format": "biome format --write .",
|
|
48
|
+
"typecheck": "tsc --noEmit",
|
|
49
|
+
"prepare": "is-ci || husky",
|
|
50
|
+
"prepublishOnly": "npm run build && npm test"
|
|
51
|
+
},
|
|
52
|
+
"peerDependencies": {
|
|
53
|
+
"react": "^19.0.0",
|
|
54
|
+
"react-dom": "^19.0.0"
|
|
55
|
+
},
|
|
56
|
+
"dependencies": {
|
|
57
|
+
"@dnd-kit/core": "^6.3.1",
|
|
58
|
+
"@dnd-kit/sortable": "^10.0.0",
|
|
59
|
+
"@dnd-kit/utilities": "^3.2.2",
|
|
60
|
+
"@fontsource/archivo": "^5.0.0",
|
|
61
|
+
"@fontsource/inter": "^5.0.0",
|
|
62
|
+
"@fontsource/jetbrains-mono": "^5.0.0",
|
|
63
|
+
"@tiptap/extension-code-block-lowlight": "^3.22.5",
|
|
64
|
+
"@tiptap/extension-link": "^3.22.5",
|
|
65
|
+
"@tiptap/extension-placeholder": "^3.22.5",
|
|
66
|
+
"@tiptap/extension-underline": "^3.22.5",
|
|
67
|
+
"@tiptap/pm": "^3.22.5",
|
|
68
|
+
"@tiptap/react": "^3.22.5",
|
|
69
|
+
"@tiptap/starter-kit": "^3.22.5",
|
|
70
|
+
"lowlight": "^3.3.0",
|
|
71
|
+
"lucide-react": "^1.14.0"
|
|
72
|
+
},
|
|
73
|
+
"devDependencies": {
|
|
74
|
+
"@biomejs/biome": "^1.9.4",
|
|
75
|
+
"@playwright/test": "^1.59.1",
|
|
76
|
+
"@storybook/addon-essentials": "^8.6.14",
|
|
77
|
+
"@storybook/preview-api": "^8.6.18",
|
|
78
|
+
"@storybook/react-vite": "^8.6.18",
|
|
79
|
+
"@storybook/test-runner": "^0.23.0",
|
|
80
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
81
|
+
"@testing-library/react": "^16.3.2",
|
|
82
|
+
"@types/react": "^19.2.14",
|
|
83
|
+
"@types/react-dom": "^19.2.3",
|
|
84
|
+
"@vitejs/plugin-react": "^4.3.4",
|
|
85
|
+
"@vitest/coverage-v8": "^4.1.4",
|
|
86
|
+
"husky": "^9.1.7",
|
|
87
|
+
"is-ci": "^4.1.0",
|
|
88
|
+
"jsdom": "^25.0.1",
|
|
89
|
+
"lint-staged": "^15.5.2",
|
|
90
|
+
"react": "^19.2.4",
|
|
91
|
+
"react-dom": "^19.2.4",
|
|
92
|
+
"start-server-and-test": "^2.1.5",
|
|
93
|
+
"storybook": "^8.6.18",
|
|
94
|
+
"tsup": "^8.4.0",
|
|
95
|
+
"typescript": "~6.0.2",
|
|
96
|
+
"vitest": "^4.1.4"
|
|
97
|
+
},
|
|
98
|
+
"lint-staged": {
|
|
99
|
+
"*.{ts,tsx,js,jsx,json,jsonc,css}": ["biome check --write --no-errors-on-unmatched"]
|
|
100
|
+
},
|
|
101
|
+
"engines": {
|
|
102
|
+
"node": ">=20"
|
|
103
|
+
}
|
|
104
|
+
}
|