@madebywild/wvk 0.0.1
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 +84 -0
- package/dist/icons.cjs +4899 -0
- package/dist/icons.cjs.map +1 -0
- package/dist/icons.d.cts +3 -0
- package/dist/icons.d.ts +3 -0
- package/dist/icons.js +4690 -0
- package/dist/icons.js.map +1 -0
- package/dist/index-CQDaCDUc.d.cts +562 -0
- package/dist/index-CQDaCDUc.d.ts +562 -0
- package/dist/index.cjs +7454 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +546 -0
- package/dist/index.d.ts +546 -0
- package/dist/index.js +7356 -0
- package/dist/index.js.map +1 -0
- package/dist/styles.css +392 -0
- package/package.json +66 -0
package/dist/styles.css
ADDED
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
/* Figma: https://www.figma.com/design/voJ4enD1r5pfsrURfQLzoM/wild-Wireframe-Kit
|
|
2
|
+
Variables align with collections — semantic: surface/*, foreground/*, border/*,
|
|
3
|
+
Transparency/*; primitives: Color swatches (Dark, Medium, …) + transparency ramps. */
|
|
4
|
+
|
|
5
|
+
/* ============================================
|
|
6
|
+
VIBEFRAME KIT — DESIGN TOKENS
|
|
7
|
+
============================================ */
|
|
8
|
+
|
|
9
|
+
@theme inline {
|
|
10
|
+
--font-sans: var(--font-inter), "Inter", system-ui, sans-serif;
|
|
11
|
+
|
|
12
|
+
--color-background: var(--background);
|
|
13
|
+
--color-foreground: var(--foreground);
|
|
14
|
+
--color-primary: var(--primary);
|
|
15
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
16
|
+
--color-secondary: var(--secondary);
|
|
17
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
18
|
+
--color-muted: var(--muted);
|
|
19
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
20
|
+
--color-accent: var(--accent);
|
|
21
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
22
|
+
--color-border: var(--border);
|
|
23
|
+
--color-input: var(--input);
|
|
24
|
+
--color-ring: var(--ring);
|
|
25
|
+
--color-destructive: var(--destructive);
|
|
26
|
+
|
|
27
|
+
/* Semantic surface (Figma: surface/bold, surface/muted, …) */
|
|
28
|
+
--color-wvk-bold: var(--wvk-surface-bold);
|
|
29
|
+
--color-wvk-muted: var(--wvk-surface-muted);
|
|
30
|
+
--color-wvk-quinary: var(--wvk-surface-quinary);
|
|
31
|
+
--color-wvk-quaternary: var(--wvk-surface-quaternary);
|
|
32
|
+
--color-wvk-tertiary: var(--wvk-surface-tertiary);
|
|
33
|
+
--color-wvk-secondary: var(--wvk-surface-secondary);
|
|
34
|
+
--color-wvk-surface-primary: var(--wvk-surface-primary);
|
|
35
|
+
|
|
36
|
+
/* Semantic foreground */
|
|
37
|
+
--color-wvk-foreground-primary: var(--wvk-foreground-primary);
|
|
38
|
+
--color-wvk-foreground-secondary: var(--wvk-foreground-secondary);
|
|
39
|
+
--color-wvk-foreground-tertiary: var(--wvk-foreground-tertiary);
|
|
40
|
+
--color-wvk-foreground-primary-inverse: var(--wvk-foreground-primary-inverse);
|
|
41
|
+
|
|
42
|
+
/* Semantic border */
|
|
43
|
+
--color-wvk-border-default: var(--wvk-border-default);
|
|
44
|
+
--color-wvk-border-bold: var(--wvk-border-bold);
|
|
45
|
+
|
|
46
|
+
/* Transparency (Figma: Transparency/Dark 80, …) — not "alpha" */
|
|
47
|
+
--color-wvk-transparency-dark-80: var(--wvk-transparency-dark-80);
|
|
48
|
+
--color-wvk-transparency-dark-40: var(--wvk-transparency-dark-40);
|
|
49
|
+
--color-wvk-transparency-dark-20: var(--wvk-transparency-dark-20);
|
|
50
|
+
--color-wvk-transparency-light-80: var(--wvk-transparency-light-80);
|
|
51
|
+
--color-wvk-transparency-light-40: var(--wvk-transparency-light-40);
|
|
52
|
+
--color-wvk-transparency-light-20: var(--wvk-transparency-light-20);
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
/* Primitives — opaque Color collection (Figma layer names: Dark, Medium, …) */
|
|
56
|
+
--color-wvk-primitive-dark: var(--wvk-primitive-dark);
|
|
57
|
+
--color-wvk-primitive-medium: var(--wvk-primitive-medium);
|
|
58
|
+
--color-wvk-primitive-medium-soft: var(--wvk-primitive-medium-soft);
|
|
59
|
+
--color-wvk-primitive-soft: var(--wvk-primitive-soft);
|
|
60
|
+
--color-wvk-primitive-softest: var(--wvk-primitive-softest);
|
|
61
|
+
--color-wvk-primitive-light: var(--wvk-primitive-light);
|
|
62
|
+
|
|
63
|
+
/* Radius */
|
|
64
|
+
--radius-sm: 4px;
|
|
65
|
+
--radius-md: 8px;
|
|
66
|
+
--radius-lg: 12px;
|
|
67
|
+
--radius-full: 999px;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/* ---- Light theme (default) ---- */
|
|
71
|
+
:root {
|
|
72
|
+
/* Primitives — opaque (backup / one-off; match Figma Colors frame) */
|
|
73
|
+
--wvk-primitive-dark: #0055ff;
|
|
74
|
+
--wvk-primitive-medium: #7ba4ff;
|
|
75
|
+
--wvk-primitive-medium-soft: #a7c2ff;
|
|
76
|
+
--wvk-primitive-soft: #d1defd;
|
|
77
|
+
--wvk-primitive-softest: #e8efff;
|
|
78
|
+
--wvk-primitive-light: #ffffff;
|
|
79
|
+
|
|
80
|
+
/* Primitives — transparency ramps (same hex math as theme semantic transparency in light) */
|
|
81
|
+
--wvk-primitive-dark-80: rgba(0, 85, 255, 0.8);
|
|
82
|
+
--wvk-primitive-dark-40: rgba(0, 85, 255, 0.4);
|
|
83
|
+
--wvk-primitive-dark-20: rgba(0, 85, 255, 0.2);
|
|
84
|
+
--wvk-primitive-light-80: rgba(255, 255, 255, 0.8);
|
|
85
|
+
--wvk-primitive-light-40: rgba(255, 255, 255, 0.4);
|
|
86
|
+
--wvk-primitive-light-20: rgba(255, 255, 255, 0.2);
|
|
87
|
+
|
|
88
|
+
/* Semantic — Surface (Figma: surface/bold … surface/primary) */
|
|
89
|
+
--wvk-surface-bold: var(--wvk-primitive-dark);
|
|
90
|
+
--wvk-surface-muted: var(--wvk-primitive-medium);
|
|
91
|
+
--wvk-surface-quinary: var(--wvk-primitive-medium-soft);
|
|
92
|
+
--wvk-surface-quaternary: var(--wvk-primitive-soft);
|
|
93
|
+
--wvk-surface-tertiary: var(--wvk-primitive-softest);
|
|
94
|
+
--wvk-surface-secondary: #f4f8ff;
|
|
95
|
+
--wvk-surface-primary: var(--wvk-primitive-light);
|
|
96
|
+
|
|
97
|
+
/* Semantic — Foreground (Figma: foreground/primary, foreground/primaryinverse on inverse surfaces) */
|
|
98
|
+
--wvk-foreground-primary: var(--wvk-primitive-dark);
|
|
99
|
+
--wvk-foreground-secondary: var(--wvk-primitive-medium);
|
|
100
|
+
--wvk-foreground-tertiary: var(--wvk-primitive-medium-soft);
|
|
101
|
+
--wvk-foreground-primary-inverse: var(--wvk-primitive-light);
|
|
102
|
+
|
|
103
|
+
/* Semantic — Border (Figma: border/default, border/bold) */
|
|
104
|
+
--wvk-border-default: var(--wvk-primitive-soft);
|
|
105
|
+
--wvk-border-bold: var(--wvk-primitive-dark);
|
|
106
|
+
|
|
107
|
+
/* Semantic — Transparency (canonical; maps to primitives in light theme) */
|
|
108
|
+
--wvk-transparency-dark-80: var(--wvk-primitive-dark-80);
|
|
109
|
+
--wvk-transparency-dark-40: var(--wvk-primitive-dark-40);
|
|
110
|
+
--wvk-transparency-dark-20: var(--wvk-primitive-dark-20);
|
|
111
|
+
--wvk-transparency-light-80: var(--wvk-primitive-light-80);
|
|
112
|
+
--wvk-transparency-light-40: var(--wvk-primitive-light-40);
|
|
113
|
+
--wvk-transparency-light-20: var(--wvk-primitive-light-20);
|
|
114
|
+
|
|
115
|
+
/* App semantic (shadcn compatibility) — driven by wvk semantic tokens */
|
|
116
|
+
--background: var(--wvk-surface-primary);
|
|
117
|
+
--foreground: var(--wvk-foreground-primary);
|
|
118
|
+
--primary: var(--wvk-foreground-primary);
|
|
119
|
+
--primary-foreground: var(--wvk-foreground-primary-inverse);
|
|
120
|
+
--secondary: var(--wvk-surface-quaternary);
|
|
121
|
+
--secondary-foreground: var(--wvk-foreground-primary);
|
|
122
|
+
--muted: var(--wvk-surface-tertiary);
|
|
123
|
+
--muted-foreground: var(--wvk-foreground-secondary);
|
|
124
|
+
--accent: var(--wvk-surface-secondary);
|
|
125
|
+
--accent-foreground: var(--wvk-foreground-primary);
|
|
126
|
+
--border: var(--wvk-border-default);
|
|
127
|
+
--input: var(--wvk-border-default);
|
|
128
|
+
--ring: var(--wvk-foreground-secondary);
|
|
129
|
+
--destructive: #ff3b30;
|
|
130
|
+
|
|
131
|
+
/*
|
|
132
|
+
* Field chrome (inputs, selects, textareas on blue canvas in dark mode):
|
|
133
|
+
* always solid light surface + blue ink — do not use --foreground / --primary here
|
|
134
|
+
* (those follow the page theme and break contrast inside white fields).
|
|
135
|
+
*/
|
|
136
|
+
--input-surface: #ffffff;
|
|
137
|
+
--input-text: var(--wvk-primitive-dark);
|
|
138
|
+
--input-placeholder: rgba(0, 85, 255, 0.4);
|
|
139
|
+
--input-focus: var(--wvk-primitive-dark);
|
|
140
|
+
--input-icon-muted: var(--wvk-primitive-medium);
|
|
141
|
+
--input-border-rest: var(--wvk-primitive-soft);
|
|
142
|
+
|
|
143
|
+
/* Size scale */
|
|
144
|
+
--wvk-size-sm: 32px;
|
|
145
|
+
--wvk-size-md: 40px;
|
|
146
|
+
--wvk-size-lg: 56px;
|
|
147
|
+
--wvk-px-sm: 12px;
|
|
148
|
+
--wvk-px-md: 16px;
|
|
149
|
+
--wvk-px-lg: 24px;
|
|
150
|
+
--wvk-px-xl: 32px;
|
|
151
|
+
--wvk-icon-sm: 14px;
|
|
152
|
+
--wvk-icon-md: 16px;
|
|
153
|
+
--wvk-icon-lg: 20px;
|
|
154
|
+
--wvk-gap-sm: 4px;
|
|
155
|
+
--wvk-gap-md: 6px;
|
|
156
|
+
--wvk-gap-lg: 8px;
|
|
157
|
+
|
|
158
|
+
/*
|
|
159
|
+
* Custom cursors — static SVGs from /public (HTTP-cached, no JS).
|
|
160
|
+
* Hotspot coords are top-left of the click point in the 32×32 artwork.
|
|
161
|
+
* Always end with a keyword fallback (accessibility + engines without SVG cursors).
|
|
162
|
+
*/
|
|
163
|
+
--wvk-cursor-default: url("/cursors/arrow.svg") 9 5, default;
|
|
164
|
+
--wvk-cursor-pointer: url("/cursors/pointer.svg") 12 8, pointer;
|
|
165
|
+
--wvk-cursor-move: url("/cursors/move.svg") 16 16, move;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/* ---- Dark theme ---- */
|
|
169
|
+
.dark {
|
|
170
|
+
--wvk-surface-bold: #ffffff;
|
|
171
|
+
--wvk-surface-muted: rgba(255, 255, 255, 0.8);
|
|
172
|
+
--wvk-surface-quinary: rgba(255, 255, 255, 0.6);
|
|
173
|
+
--wvk-surface-quaternary: rgba(255, 255, 255, 0.4);
|
|
174
|
+
--wvk-surface-tertiary: rgba(255, 255, 255, 0.2);
|
|
175
|
+
--wvk-surface-secondary: rgba(255, 255, 255, 0.1);
|
|
176
|
+
--wvk-surface-primary: #0055ff;
|
|
177
|
+
|
|
178
|
+
--wvk-foreground-primary: #ffffff;
|
|
179
|
+
--wvk-foreground-secondary: rgba(255, 255, 255, 0.8);
|
|
180
|
+
--wvk-foreground-tertiary: rgba(255, 255, 255, 0.6);
|
|
181
|
+
/* Ink on blue canvas (same role as light theme’s inverse: readable on surface/primary). Not for text on white chips — use --primary-foreground / --wvk-primitive-dark there. */
|
|
182
|
+
--wvk-foreground-primary-inverse: #ffffff;
|
|
183
|
+
|
|
184
|
+
--wvk-border-default: rgba(255, 255, 255, 0.4);
|
|
185
|
+
--wvk-border-bold: #ffffff;
|
|
186
|
+
|
|
187
|
+
/* On blue page bg, “dark” transparency reads as light overlays; “light” as blue-tinted */
|
|
188
|
+
--wvk-transparency-dark-80: rgba(255, 255, 255, 0.8);
|
|
189
|
+
--wvk-transparency-dark-40: rgba(255, 255, 255, 0.4);
|
|
190
|
+
--wvk-transparency-dark-20: rgba(255, 255, 255, 0.2);
|
|
191
|
+
--wvk-transparency-light-80: rgba(0, 85, 255, 0.8);
|
|
192
|
+
--wvk-transparency-light-40: rgba(0, 85, 255, 0.4);
|
|
193
|
+
--wvk-transparency-light-20: rgba(0, 85, 255, 0.2);
|
|
194
|
+
|
|
195
|
+
/* Primitives stay the fixed palette for one-off use */
|
|
196
|
+
/* (--wvk-primitive-* unchanged from :root) */
|
|
197
|
+
|
|
198
|
+
--background: var(--wvk-surface-primary);
|
|
199
|
+
--foreground: var(--wvk-foreground-primary);
|
|
200
|
+
--primary: #ffffff;
|
|
201
|
+
--primary-foreground: #0055ff;
|
|
202
|
+
/* Secondary: soft tint + blue label (Figma), not white on frosted glass */
|
|
203
|
+
--secondary: var(--wvk-primitive-soft);
|
|
204
|
+
--secondary-foreground: var(--wvk-primitive-dark);
|
|
205
|
+
--muted: rgba(255, 255, 255, 0.2);
|
|
206
|
+
--muted-foreground: rgba(255, 255, 255, 0.8);
|
|
207
|
+
--accent: rgba(255, 255, 255, 0.1);
|
|
208
|
+
--accent-foreground: #ffffff;
|
|
209
|
+
--border: var(--wvk-border-default);
|
|
210
|
+
--input: rgba(255, 255, 255, 0.4);
|
|
211
|
+
--ring: rgba(255, 255, 255, 0.8);
|
|
212
|
+
--destructive: #ff6961;
|
|
213
|
+
|
|
214
|
+
/*
|
|
215
|
+
* Field chrome on blue canvas: frosted surface + white value/placeholder text
|
|
216
|
+
* (same for input, textarea, native select — reads clearly on tinted fields).
|
|
217
|
+
*/
|
|
218
|
+
--input-surface: rgba(255, 255, 255, 0.12);
|
|
219
|
+
--input-text: #ffffff;
|
|
220
|
+
--input-placeholder: rgba(255, 255, 255, 0.55);
|
|
221
|
+
--input-focus: rgba(255, 255, 255, 0.95);
|
|
222
|
+
--input-icon-muted: rgba(255, 255, 255, 0.72);
|
|
223
|
+
--input-border-rest: rgba(255, 255, 255, 0.35);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
/* ---- Base layer ---- */
|
|
227
|
+
@layer base {
|
|
228
|
+
* {
|
|
229
|
+
border-color: var(--border);
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
body {
|
|
233
|
+
background-color: var(--background);
|
|
234
|
+
color: var(--foreground);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
html {
|
|
238
|
+
cursor: var(--wvk-cursor-default);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/* Text fields keep the I-beam; do not inherit the arrow cursor from html */
|
|
242
|
+
input:not([type]),
|
|
243
|
+
input[type="text"],
|
|
244
|
+
input[type="search"],
|
|
245
|
+
input[type="email"],
|
|
246
|
+
input[type="tel"],
|
|
247
|
+
input[type="url"],
|
|
248
|
+
input[type="password"],
|
|
249
|
+
input[type="number"],
|
|
250
|
+
textarea,
|
|
251
|
+
[contenteditable="true"] {
|
|
252
|
+
cursor: text;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/* Common interactive controls (class-based utilities still layered below) */
|
|
256
|
+
a[href],
|
|
257
|
+
button:not(:disabled),
|
|
258
|
+
[role="button"]:not([aria-disabled="true"]),
|
|
259
|
+
[role="link"],
|
|
260
|
+
[role="tab"],
|
|
261
|
+
[role="menuitem"],
|
|
262
|
+
label[for],
|
|
263
|
+
summary {
|
|
264
|
+
cursor: var(--wvk-cursor-pointer);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
input[type="checkbox"]:not(:disabled),
|
|
268
|
+
input[type="radio"]:not(:disabled),
|
|
269
|
+
select:not(:disabled) {
|
|
270
|
+
cursor: var(--wvk-cursor-pointer);
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
/*
|
|
274
|
+
* WebKit / UA often paints inputs white in dark mode even when the shell uses a token.
|
|
275
|
+
* Keep the field surface visible through the inner <input> (matches native <select>).
|
|
276
|
+
*/
|
|
277
|
+
.dark input[type="text"],
|
|
278
|
+
.dark input[type="search"],
|
|
279
|
+
.dark input[type="number"],
|
|
280
|
+
.dark input[type="email"],
|
|
281
|
+
.dark input[type="tel"],
|
|
282
|
+
.dark input[type="url"],
|
|
283
|
+
.dark input[type="password"] {
|
|
284
|
+
background-color: transparent;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
/*
|
|
288
|
+
* Native <select> color-scheme: light in default theme so UA uses light dropdown chrome.
|
|
289
|
+
* In dark mode, switch to dark so the popup matches the blue canvas.
|
|
290
|
+
* Text color is enforced below regardless (Blink/WebKit ignore utility `color` otherwise).
|
|
291
|
+
*/
|
|
292
|
+
[data-wvk-select] {
|
|
293
|
+
color-scheme: light;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
.dark [data-wvk-select] {
|
|
297
|
+
color-scheme: dark;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
.dark [data-wvk-select] select {
|
|
301
|
+
color: var(--input-text) !important;
|
|
302
|
+
-webkit-text-fill-color: var(--input-text);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
.dark [data-wvk-select] select:disabled {
|
|
306
|
+
opacity: 0.55;
|
|
307
|
+
-webkit-text-fill-color: color-mix(in srgb, var(--input-text) 45%, transparent);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
/* Tailwind cursor utilities → kit assets (same cascade cost as built-in keywords) */
|
|
312
|
+
@layer utilities {
|
|
313
|
+
.cursor-default {
|
|
314
|
+
cursor: var(--wvk-cursor-default);
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
.cursor-pointer {
|
|
318
|
+
cursor: var(--wvk-cursor-pointer);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
.cursor-move {
|
|
322
|
+
cursor: var(--wvk-cursor-move);
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
.cursor-grab {
|
|
326
|
+
cursor: var(--wvk-cursor-move);
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
.cursor-grabbing {
|
|
330
|
+
cursor: var(--wvk-cursor-move);
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
/* {@link LoadingSpinner} — clip-path ring + rotate (ring color = currentColor → --wvk-foreground-primary) */
|
|
334
|
+
@keyframes wvk-loader-rotate {
|
|
335
|
+
100% {
|
|
336
|
+
transform: rotate(360deg);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
@keyframes wvk-loader-clip {
|
|
341
|
+
0% {
|
|
342
|
+
clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0);
|
|
343
|
+
}
|
|
344
|
+
25% {
|
|
345
|
+
clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 0, 100% 0, 100% 0);
|
|
346
|
+
}
|
|
347
|
+
50% {
|
|
348
|
+
clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 100% 100%, 100% 100%);
|
|
349
|
+
}
|
|
350
|
+
75% {
|
|
351
|
+
clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%);
|
|
352
|
+
}
|
|
353
|
+
100% {
|
|
354
|
+
clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 0);
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
.wvk-loading-spinner {
|
|
360
|
+
width: var(--wvk-loading-spinner-size, 48px);
|
|
361
|
+
height: var(--wvk-loading-spinner-size, 48px);
|
|
362
|
+
border-radius: 50%;
|
|
363
|
+
position: relative;
|
|
364
|
+
color: var(--wvk-foreground-primary);
|
|
365
|
+
animation: wvk-loader-rotate 1s linear infinite;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
.wvk-loading-spinner::before {
|
|
369
|
+
content: "";
|
|
370
|
+
box-sizing: border-box;
|
|
371
|
+
position: absolute;
|
|
372
|
+
inset: 0;
|
|
373
|
+
border-radius: 50%;
|
|
374
|
+
border: var(--wvk-loading-spinner-border, 5px) solid currentColor;
|
|
375
|
+
animation: wvk-loader-clip 2s linear infinite;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
.wvk-loading-spinner--sm {
|
|
379
|
+
--wvk-loading-spinner-size: 28px;
|
|
380
|
+
--wvk-loading-spinner-border: 3px;
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
.wvk-loading-spinner--md {
|
|
384
|
+
--wvk-loading-spinner-size: 40px;
|
|
385
|
+
--wvk-loading-spinner-border: 4px;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
.wvk-loading-spinner--lg {
|
|
389
|
+
--wvk-loading-spinner-size: 48px;
|
|
390
|
+
--wvk-loading-spinner-border: 5px;
|
|
391
|
+
}
|
|
392
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@madebywild/wvk",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Wireframe kit — components, icons, and design tokens",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/madebywild/wild-vibeframe-kit",
|
|
9
|
+
"directory": "packages/wvk"
|
|
10
|
+
},
|
|
11
|
+
"private": false,
|
|
12
|
+
"type": "module",
|
|
13
|
+
"main": "./dist/index.cjs",
|
|
14
|
+
"module": "./dist/index.js",
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"exports": {
|
|
17
|
+
".": {
|
|
18
|
+
"types": "./dist/index.d.ts",
|
|
19
|
+
"import": "./dist/index.js",
|
|
20
|
+
"require": "./dist/index.cjs"
|
|
21
|
+
},
|
|
22
|
+
"./icons": {
|
|
23
|
+
"types": "./dist/icons.d.ts",
|
|
24
|
+
"import": "./dist/icons.js",
|
|
25
|
+
"require": "./dist/icons.cjs"
|
|
26
|
+
},
|
|
27
|
+
"./styles.css": "./dist/styles.css"
|
|
28
|
+
},
|
|
29
|
+
"sideEffects": [
|
|
30
|
+
"./dist/styles.css"
|
|
31
|
+
],
|
|
32
|
+
"files": [
|
|
33
|
+
"dist",
|
|
34
|
+
"README.md"
|
|
35
|
+
],
|
|
36
|
+
"peerDependencies": {
|
|
37
|
+
"react": "^19",
|
|
38
|
+
"react-dom": "^19"
|
|
39
|
+
},
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"@radix-ui/react-slot": "^1.2.4",
|
|
42
|
+
"class-variance-authority": "^0.7.1",
|
|
43
|
+
"clsx": "^2.1.1",
|
|
44
|
+
"tailwind-merge": "^3.5.0"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@svgr/core": "^8.1.0",
|
|
48
|
+
"@svgr/plugin-jsx": "^8.1.0",
|
|
49
|
+
"@svgr/plugin-prettier": "^8.1.0",
|
|
50
|
+
"@svgr/plugin-svgo": "^8.1.0",
|
|
51
|
+
"@types/react": "^19",
|
|
52
|
+
"@types/react-dom": "^19",
|
|
53
|
+
"tsup": "^8.3.5",
|
|
54
|
+
"typescript": "^5"
|
|
55
|
+
},
|
|
56
|
+
"publishConfig": {
|
|
57
|
+
"access": "public"
|
|
58
|
+
},
|
|
59
|
+
"scripts": {
|
|
60
|
+
"prebuild": "node src/scripts/build-icons.mjs",
|
|
61
|
+
"build": "tsup",
|
|
62
|
+
"clean": "rm -rf dist",
|
|
63
|
+
"dev": "node src/scripts/build-icons.mjs && tsup --watch",
|
|
64
|
+
"typecheck": "tsc --noEmit"
|
|
65
|
+
}
|
|
66
|
+
}
|