drawui-react 0.2.1 → 0.2.2

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.
Files changed (2) hide show
  1. package/dist/styles.css +669 -0
  2. package/package.json +7 -8
@@ -0,0 +1,669 @@
1
+ :root {
2
+ --dw-primary: #3b82f6;
3
+ --dw-primary-hover: #2563eb;
4
+ --dw-primary-weak: #eff6ff;
5
+ --dw-primary-contrast: #ffffff;
6
+ --dw-canvas-bg: #fafafa;
7
+ --dw-panel-bg: rgba(255, 255, 255, 0.97);
8
+ --dw-panel-bg-solid: #ffffff;
9
+ --dw-panel-bg-deep: rgba(255, 255, 255, 0.99);
10
+ --dw-panel-border: rgba(0, 0, 0, 0.06);
11
+ --dw-hover-bg: rgba(0, 0, 0, 0.04);
12
+ --dw-border-strong: #e5e7eb;
13
+ --dw-dash: #d1d5db;
14
+ --dw-inset-border: rgba(0, 0, 0, 0.04);
15
+ --dw-text: #4b5563;
16
+ --dw-text-strong: #1f2937;
17
+ --dw-text-ink: #374151;
18
+ --dw-text-muted: #6b7280;
19
+ --dw-text-faint: #9ca3af;
20
+ --dw-success: #10b981;
21
+ --dw-success-strong: #22c55e;
22
+ --dw-danger: #ef4444;
23
+ --dw-swatch-border: rgba(0, 0, 0, 0.1);
24
+ --dw-swatch-border-hover: rgba(0, 0, 0, 0.25);
25
+ --dw-tooltip-bg: rgba(31, 41, 55, 0.95);
26
+ --dw-tooltip-text: #f9fafb;
27
+ --dw-shadow-sm: 0 4px 16px rgba(0, 0, 0, 0.06);
28
+ --dw-shadow-md: 0 6px 24px rgba(0, 0, 0, 0.08), 0 2px 6px rgba(0, 0, 0, 0.04);
29
+ --dw-shadow-lg: 0 10px 40px rgba(0, 0, 0, 0.12), 0 4px 12px rgba(0, 0, 0, 0.06);
30
+ --dw-shadow-xl: 0 6px 24px rgba(0, 0, 0, 0.1), 0 2px 8px rgba(0, 0, 0, 0.05);
31
+ --dw-shadow-tooltip: 0 4px 16px rgba(0, 0, 0, 0.15);
32
+ --dw-shadow-primary: 0 2px 8px rgba(59, 130, 246, 0.3);
33
+ --dw-shadow-toggle: 0 4px 16px rgba(0, 0, 0, 0.08), 0 1px 4px rgba(0, 0, 0, 0.04);
34
+ --dw-shadow-toast: 0 4px 20px rgba(0, 0, 0, 0.08), 0 1px 4px rgba(0, 0, 0, 0.04);
35
+ }
36
+ [data-theme='dark'] {
37
+ --dw-primary: #60a5fa;
38
+ --dw-primary-hover: #93c5fd;
39
+ --dw-primary-weak: rgba(96, 165, 250, 0.16);
40
+ --dw-primary-contrast: #0f172a;
41
+ --dw-canvas-bg: #0f172a;
42
+ --dw-panel-bg: rgba(30, 41, 59, 0.92);
43
+ --dw-panel-bg-solid: #1e293b;
44
+ --dw-panel-bg-deep: rgba(30, 41, 59, 0.98);
45
+ --dw-panel-border: rgba(255, 255, 255, 0.08);
46
+ --dw-hover-bg: rgba(255, 255, 255, 0.06);
47
+ --dw-border-strong: #334155;
48
+ --dw-dash: #475569;
49
+ --dw-inset-border: rgba(255, 255, 255, 0.08);
50
+ --dw-text: #cbd5e1;
51
+ --dw-text-strong: #f1f5f9;
52
+ --dw-text-ink: #e2e8f0;
53
+ --dw-text-muted: #94a3b8;
54
+ --dw-text-faint: #64748b;
55
+ --dw-success: #34d399;
56
+ --dw-success-strong: #4ade80;
57
+ --dw-danger: #f87171;
58
+ --dw-swatch-border: rgba(255, 255, 255, 0.18);
59
+ --dw-swatch-border-hover: rgba(255, 255, 255, 0.4);
60
+ --dw-tooltip-bg: rgba(226, 232, 240, 0.95);
61
+ --dw-tooltip-text: #0f172a;
62
+ --dw-shadow-sm: 0 4px 16px rgba(0, 0, 0, 0.4);
63
+ --dw-shadow-md: 0 6px 24px rgba(0, 0, 0, 0.42), 0 2px 6px rgba(0, 0, 0, 0.24);
64
+ --dw-shadow-lg: 0 10px 40px rgba(0, 0, 0, 0.5), 0 4px 12px rgba(0, 0, 0, 0.3);
65
+ --dw-shadow-xl: 0 6px 24px rgba(0, 0, 0, 0.45), 0 2px 8px rgba(0, 0, 0, 0.25);
66
+ --dw-shadow-tooltip: 0 4px 16px rgba(0, 0, 0, 0.5);
67
+ --dw-shadow-primary: 0 2px 8px rgba(96, 165, 250, 0.35);
68
+ --dw-shadow-toggle: 0 4px 16px rgba(0, 0, 0, 0.4), 0 1px 4px rgba(0, 0, 0, 0.24);
69
+ --dw-shadow-toast: 0 4px 20px rgba(0, 0, 0, 0.4), 0 1px 4px rgba(0, 0, 0, 0.24);
70
+ }
71
+ .drawui-canvas-board {
72
+ position: fixed;
73
+ inset: 0;
74
+ overflow: hidden;
75
+ background-color: var(--dw-canvas-bg);
76
+ }
77
+ .drawui-canvas {
78
+ display: block;
79
+ width: 100%;
80
+ height: 100%;
81
+ cursor: default;
82
+ }
83
+ .drawui-toolbar {
84
+ position: fixed;
85
+ top: 20px;
86
+ left: 50%;
87
+ transform: translateX(-50%);
88
+ display: flex;
89
+ align-items: center;
90
+ gap: 4px;
91
+ padding: 6px;
92
+ background: var(--dw-panel-bg);
93
+ backdrop-filter: blur(16px);
94
+ -webkit-backdrop-filter: blur(16px);
95
+ border-radius: 14px;
96
+ box-shadow: var(--dw-shadow-md);
97
+ border: 1px solid var(--dw-panel-border);
98
+ z-index: 100;
99
+ }
100
+ .drawui-toolbar-button {
101
+ display: flex;
102
+ align-items: center;
103
+ justify-content: center;
104
+ width: 38px;
105
+ height: 38px;
106
+ border: none;
107
+ background: transparent;
108
+ border-radius: 10px;
109
+ color: var(--dw-text);
110
+ cursor: pointer;
111
+ transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
112
+ }
113
+ .drawui-toolbar-button:hover {
114
+ background: var(--dw-hover-bg);
115
+ color: var(--dw-text-strong);
116
+ }
117
+ .drawui-toolbar-button.active {
118
+ background: var(--dw-primary);
119
+ color: var(--dw-primary-contrast);
120
+ box-shadow: var(--dw-shadow-primary);
121
+ }
122
+ .drawui-toolbar-button.active:hover {
123
+ background: var(--dw-primary-hover);
124
+ }
125
+ .drawui-toolbar-button svg {
126
+ width: 19px;
127
+ height: 19px;
128
+ }
129
+ .drawui-toolbar-button path {
130
+ transition: stroke-dashoffset 0.2s ease;
131
+ }
132
+ .drawui-toolbar-divider {
133
+ width: 1px;
134
+ height: 22px;
135
+ background: var(--dw-border-strong);
136
+ margin: 0 4px;
137
+ }
138
+ .drawui-toolbar-container {
139
+ position: fixed;
140
+ top: 20px;
141
+ left: 50%;
142
+ transform: translateX(-50%);
143
+ z-index: 100;
144
+ }
145
+ .drawui-toolbar-dropdown {
146
+ position: relative;
147
+ }
148
+ .drawui-toolbar-shape-grid {
149
+ position: absolute;
150
+ top: calc(100% + 8px);
151
+ left: 50%;
152
+ transform: translateX(-50%);
153
+ display: grid;
154
+ grid-template-columns: repeat(4, 1fr);
155
+ gap: 2px;
156
+ padding: 6px;
157
+ background: var(--dw-panel-bg);
158
+ backdrop-filter: blur(16px);
159
+ -webkit-backdrop-filter: blur(16px);
160
+ border-radius: 14px;
161
+ box-shadow: var(--dw-shadow-lg);
162
+ border: 1px solid var(--dw-panel-border);
163
+ background: var(--dw-panel-bg-deep);
164
+ animation: dropdownFadeIn 0.15s cubic-bezier(0.4, 0, 0.2, 1);
165
+ }
166
+ @keyframes dropdownFadeIn {
167
+ from {
168
+ opacity: 0;
169
+ transform: translateX(-50%) translateY(-4px);
170
+ }
171
+ to {
172
+ opacity: 1;
173
+ transform: translateX(-50%) translateY(0);
174
+ }
175
+ }
176
+ .drawui-toolbar-shape-item {
177
+ display: flex;
178
+ align-items: center;
179
+ justify-content: center;
180
+ width: 36px;
181
+ height: 36px;
182
+ border: none;
183
+ background: transparent;
184
+ border-radius: 8px;
185
+ color: var(--dw-text);
186
+ cursor: pointer;
187
+ transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
188
+ }
189
+ .drawui-toolbar-shape-item:hover {
190
+ background: var(--dw-hover-bg);
191
+ color: var(--dw-text-strong);
192
+ }
193
+ .drawui-toolbar-shape-item.active {
194
+ background: var(--dw-primary-weak);
195
+ color: var(--dw-primary);
196
+ }
197
+ .drawui-toolbar-shape-item svg {
198
+ width: 20px;
199
+ height: 20px;
200
+ }
201
+ .drawui-toolbar-export-grid {
202
+ grid-template-columns: 1fr;
203
+ min-width: 132px;
204
+ }
205
+ .drawui-toolbar-export-item {
206
+ width: 100%;
207
+ height: 32px;
208
+ padding: 0 12px;
209
+ font-size: 13px;
210
+ white-space: nowrap;
211
+ justify-content: flex-start;
212
+ }
213
+ .drawui-zoom-control {
214
+ position: fixed;
215
+ top: 20px;
216
+ right: 20px;
217
+ display: flex;
218
+ flex-direction: column;
219
+ align-items: center;
220
+ gap: 4px;
221
+ padding: 6px;
222
+ background: var(--dw-panel-bg);
223
+ backdrop-filter: blur(16px);
224
+ -webkit-backdrop-filter: blur(16px);
225
+ border-radius: 14px;
226
+ box-shadow: var(--dw-shadow-md);
227
+ border: 1px solid var(--dw-panel-border);
228
+ z-index: 100;
229
+ }
230
+ .drawui-zoom-button {
231
+ display: flex;
232
+ align-items: center;
233
+ justify-content: center;
234
+ width: 34px;
235
+ height: 34px;
236
+ border: none;
237
+ background: transparent;
238
+ border-radius: 10px;
239
+ color: var(--dw-text);
240
+ cursor: pointer;
241
+ transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
242
+ }
243
+ .drawui-zoom-button:hover {
244
+ background: var(--dw-hover-bg);
245
+ color: var(--dw-text-strong);
246
+ }
247
+ .drawui-zoom-button svg {
248
+ width: 17px;
249
+ height: 17px;
250
+ }
251
+ .drawui-zoom-level {
252
+ font-size: 12px;
253
+ color: var(--dw-text-muted);
254
+ padding: 4px 8px;
255
+ }
256
+ .drawui-status-bar {
257
+ position: fixed;
258
+ bottom: 20px;
259
+ left: 50%;
260
+ transform: translateX(-50%);
261
+ display: flex;
262
+ align-items: center;
263
+ gap: 16px;
264
+ padding: 8px 16px;
265
+ background: var(--dw-panel-bg);
266
+ backdrop-filter: blur(16px);
267
+ -webkit-backdrop-filter: blur(16px);
268
+ border-radius: 10px;
269
+ box-shadow: var(--dw-shadow-sm);
270
+ border: 1px solid var(--dw-panel-border);
271
+ font-size: 12px;
272
+ color: var(--dw-text-muted);
273
+ z-index: 100;
274
+ }
275
+ .drawui-status-item {
276
+ display: flex;
277
+ align-items: center;
278
+ gap: 6px;
279
+ }
280
+ .drawui-status-item::before {
281
+ content: '';
282
+ width: 6px;
283
+ height: 6px;
284
+ border-radius: 50%;
285
+ background: var(--dw-success);
286
+ }
287
+ .drawui-tooltip {
288
+ position: absolute;
289
+ max-width: 280px;
290
+ padding: 8px 12px;
291
+ background: var(--dw-tooltip-bg);
292
+ backdrop-filter: blur(8px);
293
+ -webkit-backdrop-filter: blur(8px);
294
+ color: var(--dw-tooltip-text);
295
+ font-size: 13px;
296
+ line-height: 1.4;
297
+ border-radius: 8px;
298
+ box-shadow: var(--dw-shadow-tooltip);
299
+ z-index: 2000;
300
+ pointer-events: none;
301
+ white-space: pre-wrap;
302
+ word-break: break-word;
303
+ animation: tooltipFadeIn 0.12s cubic-bezier(0.4, 0, 0.2, 1);
304
+ }
305
+ @keyframes tooltipFadeIn {
306
+ from {
307
+ opacity: 0;
308
+ transform: translateY(-4px);
309
+ }
310
+ to {
311
+ opacity: 1;
312
+ transform: translateY(0);
313
+ }
314
+ }
315
+ .drawui-toast {
316
+ position: absolute;
317
+ top: 20px;
318
+ left: 50%;
319
+ transform: translateX(-50%);
320
+ display: flex;
321
+ align-items: center;
322
+ gap: 7px;
323
+ padding: 8px 18px;
324
+ background: var(--dw-panel-bg);
325
+ backdrop-filter: blur(16px);
326
+ -webkit-backdrop-filter: blur(16px);
327
+ border-radius: 20px;
328
+ box-shadow: var(--dw-shadow-toast);
329
+ border: 1px solid var(--dw-panel-border);
330
+ background: var(--dw-panel-bg-deep);
331
+ color: var(--dw-text-strong);
332
+ font-size: 13px;
333
+ font-weight: 500;
334
+ z-index: 2000;
335
+ pointer-events: none;
336
+ animation: drawui-toast-in 0.2s cubic-bezier(0.4, 0, 0.2, 1);
337
+ }
338
+ .drawui-toast-icon {
339
+ color: var(--dw-success-strong);
340
+ flex-shrink: 0;
341
+ }
342
+ @keyframes drawui-toast-in {
343
+ from {
344
+ opacity: 0;
345
+ transform: translateX(-50%) translateY(-6px) scale(0.96);
346
+ }
347
+ to {
348
+ opacity: 1;
349
+ transform: translateX(-50%) translateY(0) scale(1);
350
+ }
351
+ }
352
+ .drawui-style-panel {
353
+ position: fixed;
354
+ bottom: 60px;
355
+ left: 50%;
356
+ transform: translateX(-50%);
357
+ display: flex;
358
+ align-items: stretch;
359
+ gap: 0;
360
+ padding: 10px 16px;
361
+ background: var(--dw-panel-bg);
362
+ backdrop-filter: blur(16px);
363
+ -webkit-backdrop-filter: blur(16px);
364
+ border-radius: 12px;
365
+ box-shadow: var(--dw-shadow-xl);
366
+ border: 1px solid var(--dw-panel-border);
367
+ z-index: 100;
368
+ animation: drawui-style-panel-in 0.2s cubic-bezier(0.4, 0, 0.2, 1);
369
+ }
370
+ @keyframes drawui-style-panel-in {
371
+ from {
372
+ opacity: 0;
373
+ transform: translateX(-50%) translateY(8px) scale(0.97);
374
+ }
375
+ to {
376
+ opacity: 1;
377
+ transform: translateX(-50%) translateY(0) scale(1);
378
+ }
379
+ }
380
+ .drawui-style-col {
381
+ display: flex;
382
+ flex-direction: column;
383
+ gap: 8px;
384
+ padding: 0 12px;
385
+ }
386
+ .drawui-style-col:first-child {
387
+ padding-left: 0;
388
+ }
389
+ .drawui-style-col:last-child {
390
+ padding-right: 0;
391
+ }
392
+ .drawui-style-divider {
393
+ width: 1px;
394
+ align-self: stretch;
395
+ background-image: repeating-linear-gradient(to bottom, var(--dw-dash) 0, var(--dw-dash) 4px, transparent 4px, transparent 8px);
396
+ }
397
+ .drawui-style-group {
398
+ display: flex;
399
+ flex-direction: column;
400
+ gap: 4px;
401
+ }
402
+ .drawui-style-group-label {
403
+ font-size: 11px;
404
+ font-weight: 500;
405
+ color: var(--dw-text-muted);
406
+ line-height: 1;
407
+ }
408
+ .drawui-color-row {
409
+ display: flex;
410
+ align-items: center;
411
+ gap: 3px;
412
+ }
413
+ .drawui-color-swatch {
414
+ width: 18px;
415
+ height: 18px;
416
+ border-radius: 50%;
417
+ border: 1.5px solid var(--dw-swatch-border);
418
+ cursor: pointer;
419
+ padding: 0;
420
+ transition: all 0.12s cubic-bezier(0.4, 0, 0.2, 1);
421
+ }
422
+ .drawui-color-swatch:hover {
423
+ transform: scale(1.18);
424
+ border-color: var(--dw-swatch-border-hover);
425
+ }
426
+ .drawui-color-swatch-transparent {
427
+ position: relative;
428
+ background: #fff linear-gradient(45deg, #ccc 25%, transparent 25%, transparent 75%, #ccc 75%) 0 0 / 6px 6px;
429
+ }
430
+ .drawui-color-swatch-transparent::after {
431
+ content: '';
432
+ position: absolute;
433
+ top: 50%;
434
+ left: 2px;
435
+ right: 2px;
436
+ height: 1.5px;
437
+ background: var(--dw-danger);
438
+ transform: rotate(-45deg);
439
+ }
440
+ .drawui-connection-row {
441
+ display: flex;
442
+ align-items: center;
443
+ gap: 4px;
444
+ }
445
+ .drawui-connection-btn {
446
+ display: flex;
447
+ flex-direction: column;
448
+ align-items: center;
449
+ justify-content: center;
450
+ gap: 1px;
451
+ padding: 3px 6px;
452
+ border: 1px solid var(--dw-border-strong);
453
+ background: var(--dw-panel-bg-solid);
454
+ border-radius: 6px;
455
+ cursor: pointer;
456
+ transition: all 0.12s cubic-bezier(0.4, 0, 0.2, 1);
457
+ min-width: 32px;
458
+ }
459
+ .drawui-connection-btn:hover {
460
+ border-color: var(--dw-primary);
461
+ background: var(--dw-primary-weak);
462
+ }
463
+ .drawui-connection-btn.active {
464
+ border-color: var(--dw-primary);
465
+ background: var(--dw-primary);
466
+ color: var(--dw-primary-contrast);
467
+ }
468
+ .drawui-connection-btn.active .drawui-connection-icon,
469
+ .drawui-connection-btn.active .drawui-connection-label {
470
+ color: var(--dw-primary-contrast);
471
+ }
472
+ .drawui-connection-icon {
473
+ font-size: 14px;
474
+ line-height: 1;
475
+ color: var(--dw-text-ink);
476
+ }
477
+ .drawui-connection-label {
478
+ font-size: 9px;
479
+ font-weight: 500;
480
+ color: var(--dw-text-muted);
481
+ line-height: 1;
482
+ }
483
+ .drawui-minimap {
484
+ position: fixed;
485
+ bottom: 20px;
486
+ left: 20px;
487
+ display: flex;
488
+ align-items: stretch;
489
+ gap: 6px;
490
+ z-index: 100;
491
+ user-select: none;
492
+ animation: drawui-minimap-in 0.25s cubic-bezier(0.4, 0, 0.2, 1);
493
+ }
494
+ @keyframes drawui-minimap-in {
495
+ from {
496
+ opacity: 0;
497
+ transform: translateY(8px);
498
+ }
499
+ to {
500
+ opacity: 1;
501
+ transform: translateY(0);
502
+ }
503
+ }
504
+ .drawui-minimap-toggle {
505
+ display: flex;
506
+ align-items: center;
507
+ justify-content: center;
508
+ width: 32px;
509
+ height: 32px;
510
+ border: none;
511
+ background: var(--dw-panel-bg);
512
+ backdrop-filter: blur(16px);
513
+ -webkit-backdrop-filter: blur(16px);
514
+ border-radius: 10px;
515
+ box-shadow: var(--dw-shadow-toggle);
516
+ border: 1px solid var(--dw-panel-border);
517
+ color: var(--dw-text-muted);
518
+ cursor: pointer;
519
+ transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
520
+ flex-shrink: 0;
521
+ align-self: flex-end;
522
+ }
523
+ .drawui-minimap-toggle:hover {
524
+ background: var(--dw-panel-bg-solid);
525
+ color: var(--dw-text-strong);
526
+ }
527
+ .drawui-minimap-toggle svg {
528
+ width: 16px;
529
+ height: 16px;
530
+ }
531
+ .drawui-minimap-panel {
532
+ display: flex;
533
+ flex-direction: column;
534
+ background: var(--dw-panel-bg);
535
+ backdrop-filter: blur(16px);
536
+ -webkit-backdrop-filter: blur(16px);
537
+ border-radius: 12px;
538
+ box-shadow: var(--dw-shadow-md);
539
+ border: 1px solid var(--dw-panel-border);
540
+ padding: 8px;
541
+ gap: 6px;
542
+ overflow: hidden;
543
+ }
544
+ .drawui-minimap-header {
545
+ display: flex;
546
+ align-items: center;
547
+ justify-content: space-between;
548
+ padding: 0 4px;
549
+ }
550
+ .drawui-minimap-title {
551
+ font-size: 11px;
552
+ font-weight: 500;
553
+ color: var(--dw-text-muted);
554
+ letter-spacing: 0.04em;
555
+ }
556
+ .drawui-minimap-zoom {
557
+ font-size: 10px;
558
+ font-variant-numeric: tabular-nums;
559
+ color: var(--dw-text-faint);
560
+ letter-spacing: 0.04em;
561
+ }
562
+ .drawui-minimap-canvas-wrap {
563
+ position: relative;
564
+ border-radius: 8px;
565
+ overflow: hidden;
566
+ width: 220px;
567
+ height: 140px;
568
+ background: var(--dw-canvas-bg);
569
+ box-shadow: inset 0 0 0 1px var(--dw-inset-border);
570
+ }
571
+ .drawui-minimap-canvas {
572
+ display: block;
573
+ width: 220px;
574
+ height: 140px;
575
+ touch-action: none;
576
+ }
577
+ .drawui-uml-add-row:hover {
578
+ background: var(--dw-primary-weak);
579
+ color: var(--dw-primary);
580
+ border-color: var(--dw-primary);
581
+ }
582
+ .drawui-uml-toolbar-btn:hover {
583
+ background: var(--dw-hover-bg);
584
+ }
585
+ .drawui-gen-menu {
586
+ position: absolute;
587
+ display: flex;
588
+ flex-direction: column;
589
+ gap: 6px;
590
+ padding: 8px;
591
+ background: var(--dw-panel-bg);
592
+ backdrop-filter: blur(16px);
593
+ -webkit-backdrop-filter: blur(16px);
594
+ border-radius: 12px;
595
+ box-shadow: var(--dw-shadow-xl);
596
+ border: 1px solid var(--dw-panel-border);
597
+ z-index: 500;
598
+ user-select: none;
599
+ animation: drawui-gen-menu-in 0.18s cubic-bezier(0.4, 0, 0.2, 1);
600
+ transform: translate(8px, 8px);
601
+ min-width: 140px;
602
+ }
603
+ @keyframes drawui-gen-menu-in {
604
+ from {
605
+ opacity: 0;
606
+ transform: translate(8px, 8px) scale(0.94);
607
+ }
608
+ to {
609
+ opacity: 1;
610
+ transform: translate(8px, 8px) scale(1);
611
+ }
612
+ }
613
+ .drawui-gen-menu-label {
614
+ font-size: 11px;
615
+ font-weight: 500;
616
+ color: var(--dw-text-muted);
617
+ padding: 0 2px;
618
+ }
619
+ .drawui-gen-shape-grid {
620
+ display: grid;
621
+ grid-template-columns: repeat(5, auto);
622
+ gap: 4px;
623
+ }
624
+ .drawui-gen-shape-btn {
625
+ display: flex;
626
+ flex-direction: column;
627
+ align-items: center;
628
+ justify-content: center;
629
+ gap: 2px;
630
+ width: 44px;
631
+ padding: 5px 2px 4px;
632
+ border: 1px solid var(--dw-border-strong);
633
+ background: var(--dw-panel-bg-solid);
634
+ border-radius: 8px;
635
+ cursor: pointer;
636
+ transition: all 0.12s cubic-bezier(0.4, 0, 0.2, 1);
637
+ color: var(--dw-text-ink);
638
+ }
639
+ .drawui-gen-shape-btn:hover {
640
+ border-color: var(--dw-primary);
641
+ background: var(--dw-primary-weak);
642
+ color: var(--dw-primary-hover);
643
+ }
644
+ .drawui-gen-shape-btn:active {
645
+ transform: scale(0.96);
646
+ }
647
+ .drawui-gen-shape-btn.drawui-gen-shape-active {
648
+ border-color: var(--dw-primary);
649
+ background: var(--dw-primary-weak);
650
+ color: var(--dw-primary-hover);
651
+ }
652
+ .drawui-gen-shape-glyph {
653
+ display: block;
654
+ }
655
+ .drawui-gen-shape-label {
656
+ font-size: 10px;
657
+ line-height: 1;
658
+ color: var(--dw-text-muted);
659
+ white-space: nowrap;
660
+ }
661
+ .drawui-gen-shape-btn:hover .drawui-gen-shape-label,
662
+ .drawui-gen-shape-btn.drawui-gen-shape-active .drawui-gen-shape-label {
663
+ color: var(--dw-primary-hover);
664
+ }
665
+ .drawui-gen-menu-hint {
666
+ font-size: 10px;
667
+ color: var(--dw-text-faint);
668
+ padding: 0 2px;
669
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drawui-react",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "type": "module",
5
5
  "description": "React wrapper for drawui-core canvas drawing (PNG / SVG / PDF export, UML, mind map)",
6
6
  "license": "MIT",
@@ -26,17 +26,11 @@
26
26
  },
27
27
  "./styles.css": "./dist/styles.css"
28
28
  },
29
- "scripts": {
30
- "build": "tsup && lessc src/styles.less dist/styles.css",
31
- "prepublishOnly": "pnpm build",
32
- "typecheck": "tsc --noEmit",
33
- "dev": "tsup --watch"
34
- },
35
29
  "publishConfig": {
36
30
  "access": "public"
37
31
  },
38
32
  "dependencies": {
39
- "drawui-core": "workspace:*"
33
+ "drawui-core": "0.2.2"
40
34
  },
41
35
  "peerDependencies": {
42
36
  "react": "^18.3.1"
@@ -47,5 +41,10 @@
47
41
  "react": "^18.3.1",
48
42
  "tsup": "^8.4.0",
49
43
  "typescript": "^5.6.3"
44
+ },
45
+ "scripts": {
46
+ "build": "tsup && lessc src/styles.less dist/styles.css",
47
+ "typecheck": "tsc --noEmit",
48
+ "dev": "tsup --watch"
50
49
  }
51
50
  }