@filekit-studio/sketch 0.0.0-stage → 1.1.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.
@@ -0,0 +1,429 @@
1
+ @font-face {
2
+ font-family: 'Fuzzy Bubbles';
3
+ src: url('/fonts/FuzzyBubbles-Regular.ttf') format('truetype');
4
+ font-weight: 100 900;
5
+ font-style: normal;
6
+ font-display: swap;
7
+ }
8
+
9
+ @font-face {
10
+ font-family: 'Comic Neue';
11
+ src: url('/fonts/ComicNeue-Regular.ttf') format('truetype');
12
+ font-weight: 100 900;
13
+ font-style: normal;
14
+ font-display: swap;
15
+ }
16
+
17
+ @font-face {
18
+ font-family: 'Patrick Hand SC';
19
+ src: url('/fonts/PatrickHandSC-Regular.ttf') format('truetype');
20
+ font-weight: 100 900;
21
+ font-style: normal;
22
+ font-display: swap;
23
+ }
24
+
25
+ @font-face {
26
+ font-family: 'Inter';
27
+ src: url('/fonts/Inter-Regular.ttf') format('truetype');
28
+ font-weight: 100 500;
29
+ font-style: normal;
30
+ font-display: swap;
31
+ }
32
+
33
+ @font-face {
34
+ font-family: 'Inter';
35
+ src: url('/fonts/Inter-Bold.ttf') format('truetype');
36
+ font-weight: 600 900;
37
+ font-style: normal;
38
+ font-display: swap;
39
+ }
40
+
41
+ @font-face {
42
+ font-family: 'JetBrains Mono';
43
+ src: url('/fonts/JetBrainsMono-Regular.ttf') format('truetype');
44
+ font-weight: 100 500;
45
+ font-style: normal;
46
+ font-display: swap;
47
+ }
48
+
49
+ @font-face {
50
+ font-family: 'JetBrains Mono';
51
+ src: url('/fonts/JetBrainsMono-Bold.ttf') format('truetype');
52
+ font-weight: 600 900;
53
+ font-style: normal;
54
+ font-display: swap;
55
+ }
56
+
57
+
58
+
59
+
60
+ /* ==========================================================================
61
+ @filekit-studio/sketch Scoped Design Tokens & Variables
62
+ These variables can be overridden on .fk-sketch-root by host applications.
63
+ ========================================================================== */
64
+ .fk-sketch-root {
65
+ --fk-bg: #f8fafc;
66
+ --fk-surface: #ffffff;
67
+ --fk-border: rgba(0, 0, 0, 0.08);
68
+ --fk-text: #111827;
69
+ --fk-muted: #6b7280;
70
+ --fk-primary: #4f46e5;
71
+ --fk-primary-rgb: 79, 70, 229;
72
+ --fk-selection: rgba(79, 70, 229, 0.15);
73
+ --fk-canvas-bg: #fcfcfd;
74
+ --fk-grid-color: rgba(0, 0, 0, 0.06);
75
+
76
+ position: relative;
77
+ width: 100%;
78
+ height: 100%;
79
+ overflow: hidden;
80
+ user-select: none;
81
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
82
+ color: var(--fk-text);
83
+ background-color: var(--fk-bg);
84
+ }
85
+
86
+ /* Dark mode token overrides */
87
+ .fk-sketch-root.dark,
88
+ .fk-sketch-root[data-theme='dark'],
89
+ [data-theme='dark'] .fk-sketch-root,
90
+ .dark .fk-sketch-root {
91
+ --fk-bg: #121214;
92
+ --fk-surface: #18181b;
93
+ --fk-border: rgba(255, 255, 255, 0.08);
94
+ --fk-text: #f3f4f6;
95
+ --fk-muted: #9ca3af;
96
+ --fk-primary: #6366f1;
97
+ --fk-primary-rgb: 99, 102, 241;
98
+ --fk-selection: rgba(99, 102, 241, 0.25);
99
+ --fk-canvas-bg: #0f0f11;
100
+ --fk-grid-color: rgba(255, 255, 255, 0.06);
101
+ }
102
+
103
+ /* Ensure positioning containers (like toolbox <aside>) never get borders or backgrounds */
104
+ .fk-sketch-root aside:not(.fk-card) {
105
+ border: none !important;
106
+ background: transparent !important;
107
+ box-shadow: none !important;
108
+ }
109
+
110
+ /* ==========================================================================
111
+ 1. CLASSIC PANEL & CONTROLS STYLING (panelVariant="classic")
112
+ Depth comes from smooth layered shadows with ultra-subtle or no borders.
113
+ ========================================================================== */
114
+
115
+ /* Neutralize all neumorphic dual-shadows and inset bevels completely */
116
+ .fk-sketch-root.fk-panel-classic [class*="shadow-[-"],
117
+ .fk-sketch-root[data-panel="classic"] [class*="shadow-[-"],
118
+ .fk-sketch-root.fk-panel-classic [class*="shadow-[inset"],
119
+ .fk-sketch-root[data-panel="classic"] [class*="shadow-[inset"] {
120
+ box-shadow: none !important;
121
+ }
122
+
123
+ /* Classic Panels, Cards & Toolbars (Light Mode) */
124
+ .fk-sketch-root.fk-panel-classic:not(.dark) .fk-card,
125
+ .fk-sketch-root[data-panel="classic"]:not(.dark) .fk-card,
126
+ :not(.dark) .fk-sketch-root[data-panel="classic"] .fk-card {
127
+ background-color: rgba(255, 255, 255, 0.96) !important;
128
+ border: 1px solid rgba(0, 0, 0, 0.04) !important;
129
+ box-shadow: 0 10px 30px -4px rgba(0, 0, 0, 0.08), 0 4px 12px -2px rgba(0, 0, 0, 0.03) !important;
130
+ color: #111827 !important;
131
+ }
132
+
133
+ /* Classic Panels, Cards & Toolbars (Dark Mode) */
134
+ .fk-sketch-root.dark.fk-panel-classic .fk-card,
135
+ .dark .fk-sketch-root.fk-panel-classic .fk-card,
136
+ .fk-sketch-root.dark[data-panel="classic"] .fk-card,
137
+ .dark .fk-sketch-root[data-panel="classic"] .fk-card,
138
+ .fk-sketch-root[data-theme="dark"][data-panel="classic"] .fk-card {
139
+ background-color: rgba(22, 23, 27, 0.96) !important;
140
+ border: 1px solid rgba(255, 255, 255, 0.05) !important;
141
+ box-shadow: 0 14px 34px -4px rgba(0, 0, 0, 0.65), 0 4px 14px -2px rgba(0, 0, 0, 0.45) !important;
142
+ color: #f3f4f6 !important;
143
+ }
144
+
145
+ /* Classic Standalone Buttons (Light Mode) */
146
+ .fk-sketch-root.fk-panel-classic:not(.dark) .fk-btn,
147
+ .fk-sketch-root[data-panel="classic"]:not(.dark) .fk-btn,
148
+ :not(.dark) .fk-sketch-root[data-panel="classic"] .fk-btn {
149
+ background-color: #ffffff !important;
150
+ border: 1px solid rgba(0, 0, 0, 0.05) !important;
151
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.07) !important;
152
+ color: #334155 !important;
153
+ }
154
+
155
+ .fk-sketch-root.fk-panel-classic:not(.dark) .fk-btn:hover,
156
+ .fk-sketch-root[data-panel="classic"]:not(.dark) .fk-btn:hover,
157
+ :not(.dark) .fk-sketch-root[data-panel="classic"] .fk-btn:hover {
158
+ background-color: #f8fafc !important;
159
+ color: #0f172a !important;
160
+ }
161
+
162
+ /* Classic Standalone Buttons (Dark Mode) */
163
+ .fk-sketch-root.dark.fk-panel-classic .fk-btn,
164
+ .dark .fk-sketch-root.fk-panel-classic .fk-btn,
165
+ .fk-sketch-root.dark[data-panel="classic"] .fk-btn,
166
+ .dark .fk-sketch-root[data-panel="classic"] .fk-btn,
167
+ .fk-sketch-root[data-theme="dark"][data-panel="classic"] .fk-btn {
168
+ background-color: #1e2026 !important;
169
+ border: 1px solid rgba(255, 255, 255, 0.06) !important;
170
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.4) !important;
171
+ color: #e2e8f0 !important;
172
+ }
173
+
174
+ .fk-sketch-root.dark.fk-panel-classic .fk-btn:hover,
175
+ .dark .fk-sketch-root.fk-panel-classic .fk-btn:hover,
176
+ .fk-sketch-root.dark[data-panel="classic"] .fk-btn:hover,
177
+ .dark .fk-sketch-root[data-panel="classic"] .fk-btn:hover,
178
+ .fk-sketch-root[data-theme="dark"][data-panel="classic"] .fk-btn:hover {
179
+ background-color: #272a34 !important;
180
+ color: #ffffff !important;
181
+ }
182
+
183
+ /* Classic Segmented Control Option Tracks (No hard borders, depth from soft inset shadow) */
184
+ .fk-sketch-root.fk-panel-classic:not(.dark) [class*="bg-[#e4e8ef]"],
185
+ .fk-sketch-root[data-panel="classic"]:not(.dark) [class*="bg-[#e4e8ef]"],
186
+ :not(.dark) .fk-sketch-root[data-panel="classic"] [class*="bg-[#e4e8ef]"],
187
+ .fk-sketch-root.fk-panel-classic:not(.dark) [class*="bg-[#eef1f6]"]:not(.fk-card):not(.fk-template-card),
188
+ .fk-sketch-root[data-panel="classic"]:not(.dark) [class*="bg-[#eef1f6]"]:not(.fk-card):not(.fk-template-card),
189
+ :not(.dark) .fk-sketch-root[data-panel="classic"] [class*="bg-[#eef1f6]"]:not(.fk-card):not(.fk-template-card) {
190
+ background-color: #f1f5f9 !important;
191
+ border: none !important;
192
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.04) !important;
193
+ }
194
+
195
+ .fk-sketch-root.dark.fk-panel-classic [class*="bg-[#e4e8ef]"],
196
+ .dark .fk-sketch-root[data-panel="classic"] [class*="bg-[#e4e8ef]"],
197
+ .fk-sketch-root.dark.fk-panel-classic [class*="dark:bg-[#121316]"],
198
+ .dark .fk-sketch-root[data-panel="classic"] [class*="dark:bg-[#121316]"],
199
+ .fk-sketch-root.dark.fk-panel-classic [class*="dark:bg-[#16171b]"]:not(.fk-card),
200
+ .dark .fk-sketch-root[data-panel="classic"] [class*="dark:bg-[#16171b]"]:not(.fk-card),
201
+ .fk-sketch-root.dark.fk-panel-classic [class*="dark:bg-[#1a1c22]"]:not(.fk-template-card),
202
+ .dark .fk-sketch-root[data-panel="classic"] [class*="dark:bg-[#1a1c22]"]:not(.fk-template-card) {
203
+ background-color: #131418 !important;
204
+ border: none !important;
205
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.35) !important;
206
+ }
207
+
208
+ /* Template Cards & Modal List Cards in Dark Mode */
209
+ .fk-sketch-root.dark .fk-template-card,
210
+ .dark .fk-sketch-root .fk-template-card,
211
+ .fk-sketch-root.dark [class*="dark:bg-[#1a1c22]"],
212
+ .dark .fk-sketch-root [class*="dark:bg-[#1a1c22]"] {
213
+ background-color: #1a1c22 !important;
214
+ border: 1px solid rgba(255, 255, 255, 0.06) !important;
215
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4) !important;
216
+ color: #f3f4f6 !important;
217
+ }
218
+
219
+ .fk-sketch-root.dark .fk-template-card h4,
220
+ .dark .fk-sketch-root .fk-template-card h4 {
221
+ color: #f3f4f6 !important;
222
+ }
223
+
224
+ .fk-sketch-root.dark .fk-template-card p,
225
+ .dark .fk-sketch-root .fk-template-card p {
226
+ color: #9ca3af !important;
227
+ }
228
+
229
+ /* Classic Segmented Control Active / Selected Option Pills (Properties Panel) */
230
+ .fk-sketch-root.fk-panel-classic:not(.dark) [class*="bg-[#f0f3f8]"]:not(.fk-tool-btn),
231
+ .fk-sketch-root[data-panel="classic"]:not(.dark) [class*="bg-[#f0f3f8]"]:not(.fk-tool-btn),
232
+ :not(.dark) .fk-sketch-root[data-panel="classic"] [class*="bg-[#f0f3f8]"]:not(.fk-tool-btn) {
233
+ background-color: #ffffff !important;
234
+ border: 1px solid rgba(0, 0, 0, 0.05) !important;
235
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.06) !important;
236
+ color: #4f46e5 !important;
237
+ font-weight: 600 !important;
238
+ }
239
+
240
+ .fk-sketch-root.dark.fk-panel-classic [class*="bg-[#f0f3f8]"]:not(.fk-tool-btn),
241
+ .dark .fk-sketch-root[data-panel="classic"] [class*="bg-[#f0f3f8]"]:not(.fk-tool-btn),
242
+ .fk-sketch-root.dark.fk-panel-classic [class*="dark:bg-[#22242b]"]:not(.fk-tool-btn),
243
+ .dark .fk-sketch-root[data-panel="classic"] [class*="dark:bg-[#22242b]"]:not(.fk-tool-btn),
244
+ .fk-sketch-root.dark.fk-panel-classic [class*="dark:bg-[#1f2128]"]:not(.fk-tool-btn),
245
+ .dark .fk-sketch-root[data-panel="classic"] [class*="dark:bg-[#1f2128]"]:not(.fk-tool-btn),
246
+ .fk-sketch-root.dark.fk-panel-classic [class*="dark:bg-[#1b1c22]"]:not(.fk-tool-btn),
247
+ .dark .fk-sketch-root[data-panel="classic"] [class*="dark:bg-[#1b1c22]"]:not(.fk-tool-btn),
248
+ .fk-sketch-root.dark.fk-panel-classic [class*="dark:bg-[#20222a]"]:not(.fk-tool-btn),
249
+ .dark .fk-sketch-root[data-panel="classic"] [class*="dark:bg-[#20222a]"]:not(.fk-tool-btn) {
250
+ background-color: #272a33 !important;
251
+ border: 1px solid rgba(255, 255, 255, 0.08) !important;
252
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.45), 0 1px 2px -1px rgba(0, 0, 0, 0.3) !important;
253
+ color: #a5b4fc !important;
254
+ font-weight: 600 !important;
255
+ }
256
+
257
+ /* Classic Appearance Trigger Pills (Stroke / Fill inputs in properties panel) */
258
+ .fk-sketch-root.fk-panel-classic button[class*="rounded-[10px]"],
259
+ .fk-sketch-root[data-panel="classic"] button[class*="rounded-[10px]"] {
260
+ background-color: #f8fafc !important;
261
+ border: 1px solid rgba(0, 0, 0, 0.04) !important;
262
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.05) !important;
263
+ }
264
+
265
+ .fk-sketch-root.dark.fk-panel-classic button[class*="rounded-[10px]"],
266
+ .dark .fk-sketch-root[data-panel="classic"] button[class*="rounded-[10px]"] {
267
+ background-color: #1a1c22 !important;
268
+ border: 1px solid rgba(255, 255, 255, 0.05) !important;
269
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.35) !important;
270
+ }
271
+
272
+ /* Classic Unselected Tool Buttons (on left toolbar) */
273
+ .fk-sketch-root.fk-panel-classic .fk-card .fk-tool-btn:not(.fk-tool-active),
274
+ .fk-sketch-root[data-panel="classic"] .fk-card .fk-tool-btn:not(.fk-tool-active) {
275
+ border: none !important;
276
+ background-color: transparent !important;
277
+ box-shadow: none !important;
278
+ color: #64748b !important;
279
+ }
280
+
281
+ .fk-sketch-root.fk-panel-classic .fk-card .fk-tool-btn:not(.fk-tool-active):hover,
282
+ .fk-sketch-root[data-panel="classic"] .fk-card .fk-tool-btn:not(.fk-tool-active):hover {
283
+ background-color: rgba(0, 0, 0, 0.05) !important;
284
+ color: #0f172a !important;
285
+ }
286
+
287
+ .fk-sketch-root.dark.fk-panel-classic .fk-card .fk-tool-btn:not(.fk-tool-active),
288
+ .dark .fk-sketch-root[data-panel="classic"] .fk-card .fk-tool-btn:not(.fk-tool-active) {
289
+ border: none !important;
290
+ background-color: transparent !important;
291
+ box-shadow: none !important;
292
+ color: #94a3b8 !important;
293
+ }
294
+
295
+ .fk-sketch-root.dark.fk-panel-classic .fk-card .fk-tool-btn:not(.fk-tool-active):hover,
296
+ .dark .fk-sketch-root[data-panel="classic"] .fk-card .fk-tool-btn:not(.fk-tool-active):hover {
297
+ background-color: rgba(255, 255, 255, 0.08) !important;
298
+ color: #ffffff !important;
299
+ }
300
+
301
+ /* Classic Active / Selected Tool Button in Toolbar */
302
+ .fk-sketch-root.fk-panel-classic .fk-tool-active,
303
+ .fk-sketch-root[data-panel="classic"] .fk-tool-active,
304
+ .fk-sketch-root.fk-panel-classic .fk-tool-btn[data-active="true"],
305
+ .fk-sketch-root[data-panel="classic"] .fk-tool-btn[data-active="true"] {
306
+ background-color: rgba(79, 70, 229, 0.12) !important;
307
+ color: #4f46e5 !important;
308
+ border: 1px solid rgba(79, 70, 229, 0.28) !important;
309
+ box-shadow: 0 1px 3px rgba(79, 70, 229, 0.15) !important;
310
+ }
311
+
312
+ .fk-sketch-root.dark.fk-panel-classic .fk-tool-active,
313
+ .dark .fk-sketch-root[data-panel="classic"] .fk-tool-active,
314
+ .fk-sketch-root.dark[data-panel="classic"] .fk-tool-btn[data-active="true"],
315
+ .dark .fk-sketch-root[data-panel="classic"] .fk-tool-btn[data-active="true"] {
316
+ background-color: rgba(99, 102, 241, 0.24) !important;
317
+ color: #a5b4fc !important;
318
+ border: 1px solid rgba(99, 102, 241, 0.4) !important;
319
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5) !important;
320
+ }
321
+
322
+ /* ==========================================================================
323
+ 2. NEUMORPHIC MODE DARK STYLING (panelVariant="neumorphic")
324
+ Ensures that in dark mode, neumorphic panels and buttons are dark (#16171b)
325
+ with soft dark dual-shadows instead of bright white glowing halos.
326
+ ========================================================================== */
327
+
328
+ /* Dark Neumorphic Panels & Cards */
329
+ .fk-sketch-root.dark.fk-panel-neumorphic .fk-card,
330
+ .dark .fk-sketch-root.fk-panel-neumorphic .fk-card,
331
+ .fk-sketch-root.dark[data-panel="neumorphic"] .fk-card,
332
+ .dark .fk-sketch-root[data-panel="neumorphic"] .fk-card {
333
+ background-color: rgba(22, 23, 27, 0.96) !important;
334
+ border: 1px solid rgba(255, 255, 255, 0.07) !important;
335
+ box-shadow: -2px -2px 6px rgba(255, 255, 255, 0.02), 4px 4px 14px rgba(0, 0, 0, 0.8) !important;
336
+ color: #f3f4f6 !important;
337
+ }
338
+
339
+ /* Dark Neumorphic Standalone Buttons */
340
+ .fk-sketch-root.dark.fk-panel-neumorphic .fk-btn,
341
+ .dark .fk-sketch-root.fk-panel-neumorphic .fk-btn,
342
+ .fk-sketch-root.dark[data-panel="neumorphic"] .fk-btn,
343
+ .dark .fk-sketch-root[data-panel="neumorphic"] .fk-btn {
344
+ background-color: rgba(26, 28, 34, 0.95) !important;
345
+ border: 1px solid rgba(255, 255, 255, 0.07) !important;
346
+ box-shadow: -2px -2px 5px rgba(255, 255, 255, 0.02), 3px 3px 8px rgba(0, 0, 0, 0.8) !important;
347
+ color: #e4e4e7 !important;
348
+ }
349
+
350
+ .fk-sketch-root.dark.fk-panel-neumorphic .fk-btn:hover,
351
+ .dark .fk-sketch-root.fk-panel-neumorphic .fk-btn:hover,
352
+ .fk-sketch-root.dark[data-panel="neumorphic"] .fk-btn:hover,
353
+ .dark .fk-sketch-root[data-panel="neumorphic"] .fk-btn:hover {
354
+ background-color: #20222a !important;
355
+ box-shadow: -2px -2px 6px rgba(255, 255, 255, 0.03), 3px 3px 10px rgba(0, 0, 0, 0.9) !important;
356
+ color: #ffffff !important;
357
+ }
358
+
359
+ /* Dark Neumorphic Segmented Control Tracks */
360
+ .fk-sketch-root.dark.fk-panel-neumorphic [class*="bg-[#e4e8ef]"],
361
+ .dark .fk-sketch-root[data-panel="neumorphic"] [class*="bg-[#e4e8ef]"],
362
+ .fk-sketch-root.dark.fk-panel-neumorphic [class*="dark:bg-[#121316]"],
363
+ .dark .fk-sketch-root[data-panel="neumorphic"] [class*="dark:bg-[#121316]"] {
364
+ background-color: #111215 !important;
365
+ border: 1px solid rgba(255, 255, 255, 0.04) !important;
366
+ box-shadow: inset 2px 2px 4px rgba(0, 0, 0, 0.7), inset -1px -1px 2px rgba(255, 255, 255, 0.03) !important;
367
+ }
368
+
369
+ /* Dark Neumorphic Active Buttons in Tracks */
370
+ .fk-sketch-root.dark.fk-panel-neumorphic [class*="dark:bg-[#22242b]"],
371
+ .dark .fk-sketch-root[data-panel="neumorphic"] [class*="dark:bg-[#22242b]"],
372
+ .fk-sketch-root.dark.fk-panel-neumorphic [class*="dark:bg-[#1f2128]"],
373
+ .dark .fk-sketch-root[data-panel="neumorphic"] [class*="dark:bg-[#1f2128]"] {
374
+ background-color: #22242b !important;
375
+ border: 1px solid rgba(255, 255, 255, 0.08) !important;
376
+ box-shadow: -2px -2px 4px rgba(255, 255, 255, 0.06), 2px 2px 5px rgba(0, 0, 0, 0.8) !important;
377
+ color: #ffffff !important;
378
+ }
379
+
380
+ /* ==========================================================================
381
+ 3. UNIVERSAL DARK MODE HARMONIZATION
382
+ Guarantees that all typography, inputs, borders, and SVGs inside .fk-sketch-root
383
+ have strong contrast and readable colors when in dark mode.
384
+ ========================================================================== */
385
+ .fk-sketch-root.dark,
386
+ .fk-sketch-root[data-theme='dark'],
387
+ [data-theme='dark'] .fk-sketch-root,
388
+ .dark .fk-sketch-root {
389
+ color-scheme: dark;
390
+ }
391
+
392
+ .fk-sketch-root.dark [class*="text-neutral-900"],
393
+ .dark .fk-sketch-root [class*="text-neutral-900"],
394
+ .fk-sketch-root.dark [class*="text-neutral-800"],
395
+ .dark .fk-sketch-root [class*="text-neutral-800"],
396
+ .fk-sketch-root.dark [class*="text-neutral-700"],
397
+ .dark .fk-sketch-root [class*="text-neutral-700"] {
398
+ color: #f1f5f9 !important;
399
+ }
400
+
401
+ .fk-sketch-root.dark [class*="text-neutral-600"],
402
+ .dark .fk-sketch-root [class*="text-neutral-600"],
403
+ .fk-sketch-root.dark [class*="text-neutral-500"],
404
+ .dark .fk-sketch-root [class*="text-neutral-500"] {
405
+ color: #94a3b8 !important;
406
+ }
407
+
408
+ .fk-sketch-root.dark [class*="text-neutral-400"],
409
+ .dark .fk-sketch-root [class*="text-neutral-400"] {
410
+ color: #64748b !important;
411
+ }
412
+
413
+ .fk-sketch-root.dark [class*="border-black/[0.04]"],
414
+ .dark .fk-sketch-root [class*="border-black/[0.04]"],
415
+ .fk-sketch-root.dark [class*="border-black/[0.05]"],
416
+ .dark .fk-sketch-root [class*="border-black/[0.05]"],
417
+ .fk-sketch-root.dark [class*="border-neutral-200"],
418
+ .dark .fk-sketch-root [class*="border-neutral-200"],
419
+ .fk-sketch-root.dark [class*="border-neutral-300"],
420
+ .dark .fk-sketch-root [class*="border-neutral-300"] {
421
+ border-color: rgba(255, 255, 255, 0.05) !important;
422
+ }
423
+
424
+ /* Base Canvas Isolation */
425
+ .fk-sketch-canvas {
426
+ touch-action: none;
427
+ cursor: default;
428
+ outline: none;
429
+ }
package/package.json CHANGED
@@ -1,6 +1,72 @@
1
1
  {
2
2
  "name": "@filekit-studio/sketch",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "1.1.0",
4
+ "description": "Local-first, embeddable whiteboard & diagramming SDK for React and Next.js",
5
+ "homepage": "https://tools.kanaddev.me/sketch",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.mjs",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.mjs",
13
+ "require": "./dist/index.js"
14
+ },
15
+ "./export": {
16
+ "types": "./dist/export.d.ts",
17
+ "import": "./dist/export.mjs",
18
+ "require": "./dist/export.js"
19
+ },
20
+ "./styles.css": "./dist/styles.css"
21
+ },
22
+ "files": [
23
+ "dist",
24
+ "README.md",
25
+ "LICENSE"
26
+ ],
27
+ "publishConfig": {
28
+ "access": "public"
29
+ },
30
+ "keywords": [
31
+ "whiteboard",
32
+ "canvas",
33
+ "diagramming",
34
+ "architecture-diagrams",
35
+ "flowchart",
36
+ "react",
37
+ "nextjs",
38
+ "local-first",
39
+ "stencils",
40
+ "pdf-export",
41
+ "svg-export"
42
+ ],
43
+ "sideEffects": [
44
+ "*.css"
45
+ ],
46
+ "scripts": {
47
+ "build": "tsup",
48
+ "dev": "tsup --watch",
49
+ "lint": "eslint src/",
50
+ "typecheck": "tsc --noEmit",
51
+ "clean": "rm -rf dist"
52
+ },
53
+ "peerDependencies": {
54
+ "react": ">=18.0.0",
55
+ "react-dom": ">=18.0.0"
56
+ },
57
+ "dependencies": {
58
+ "@tabler/icons-react": "^3.46.0",
59
+ "clsx": "^2.1.1",
60
+ "lucide-react": "^1.34.0",
61
+ "pdf-lib": "^1.17.1",
62
+ "tailwind-merge": "^3.6.0"
63
+ },
64
+ "devDependencies": {
65
+ "@types/react": "^19.0.0",
66
+ "@types/react-dom": "^19.0.0",
67
+ "tsup": "^8.3.5",
68
+ "typescript": "^5.7.0"
69
+ },
70
+ "author": "FileKit Studio <https://tools.kanaddev.me>",
71
+ "license": "MIT"
72
+ }