ywana-core8 0.2.19 → 0.2.21
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/dist/index.css +2833 -714
- package/dist/index.js +433 -111
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +433 -111
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +433 -111
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/desktop/Desktop.stories.jsx +424 -11
- package/src/desktop/{ApplicationMenu.css → LaunchPad.css} +82 -107
- package/src/desktop/{ApplicationMenu.js → LaunchPad.js} +30 -30
- package/src/desktop/WindowContext.js +2 -0
- package/src/desktop/WindowManager.js +54 -0
- package/src/desktop/{desktop-linux.css → desktop-gnome.css} +64 -46
- package/src/desktop/desktop-macintosh.css +330 -0
- package/src/desktop/desktop-macos.css +60 -18
- package/src/desktop/desktop-msx.css +337 -0
- package/src/desktop/desktop-nextstep.css +315 -0
- package/src/desktop/desktop-windows.css +39 -21
- package/src/desktop/desktop-windows98.css +284 -0
- package/src/desktop/desktop-windowsxp.css +294 -0
- package/src/desktop/desktop.css +428 -1
- package/src/desktop/desktop.js +393 -69
- package/src/desktop/index.js +2 -2
- package/src/html/Menu.stories.jsx +504 -0
- package/src/html/menu.css +85 -6
- package/src/html/menu.js +40 -16
@@ -1,32 +1,7 @@
|
|
1
|
-
/*
|
2
|
-
|
3
|
-
.application-menu-overlay {
|
4
|
-
position: absolute;
|
5
|
-
top: 0;
|
6
|
-
left: 0;
|
7
|
-
right: 0;
|
8
|
-
bottom: 0; /* Covers entire workspace container */
|
9
|
-
background: rgba(0, 0, 0, 0.16);
|
10
|
-
backdrop-filter: blur(1px);
|
11
|
-
z-index: 10000; /* Always above all windows */
|
12
|
-
display: flex;
|
13
|
-
align-items: flex-end;
|
14
|
-
justify-content: flex-start;
|
15
|
-
animation: fadeIn 0.2s ease-out;
|
16
|
-
pointer-events: auto; /* Ensure menu is clickable */
|
17
|
-
padding: 0 0 0px 15px; /* Espacio para el taskbar y margen izquierdo */
|
18
|
-
}
|
19
|
-
|
20
|
-
@keyframes fadeIn {
|
21
|
-
from {
|
22
|
-
opacity: 0;
|
23
|
-
}
|
24
|
-
to {
|
25
|
-
opacity: 1;
|
26
|
-
}
|
27
|
-
}
|
1
|
+
/* LaunchPad - Full-screen application launcher inspired by macOS */
|
2
|
+
/* Note: Overlay styles are now managed by desktop.css DesktopOverlayLayer */
|
28
3
|
|
29
|
-
.
|
4
|
+
.launchpad {
|
30
5
|
background: #ffffff;
|
31
6
|
border-radius: 12px 12px 0 0;
|
32
7
|
box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.3);
|
@@ -57,7 +32,7 @@
|
|
57
32
|
}
|
58
33
|
|
59
34
|
/* Header */
|
60
|
-
.
|
35
|
+
.launchpad__header {
|
61
36
|
grid-area: header;
|
62
37
|
display: flex;
|
63
38
|
align-items: center;
|
@@ -68,20 +43,20 @@
|
|
68
43
|
min-height: 40px;
|
69
44
|
}
|
70
45
|
|
71
|
-
.
|
46
|
+
.launchpad__header-controls {
|
72
47
|
display: flex;
|
73
48
|
align-items: center;
|
74
49
|
gap: 6px;
|
75
50
|
}
|
76
51
|
|
77
|
-
.
|
52
|
+
.launchpad__header h2 {
|
78
53
|
margin: 0;
|
79
54
|
color: #333;
|
80
55
|
font-size: 24px;
|
81
56
|
font-weight: 600;
|
82
57
|
}
|
83
58
|
|
84
|
-
.
|
59
|
+
.launchpad__view-toggle {
|
85
60
|
background: none;
|
86
61
|
border: 1px solid #ddd;
|
87
62
|
font-size: 14px;
|
@@ -97,19 +72,19 @@
|
|
97
72
|
justify-content: center;
|
98
73
|
}
|
99
74
|
|
100
|
-
.
|
75
|
+
.launchpad__view-toggle:hover {
|
101
76
|
background: #e9ecef;
|
102
77
|
color: #333;
|
103
78
|
border-color: #ccc;
|
104
79
|
}
|
105
80
|
|
106
|
-
.
|
81
|
+
.launchpad__view-toggle.active {
|
107
82
|
background: #1976d2;
|
108
83
|
color: white;
|
109
84
|
border-color: #1976d2;
|
110
85
|
}
|
111
86
|
|
112
|
-
.
|
87
|
+
.launchpad__close {
|
113
88
|
background: none;
|
114
89
|
border: none;
|
115
90
|
font-size: 20px;
|
@@ -125,19 +100,19 @@
|
|
125
100
|
justify-content: center;
|
126
101
|
}
|
127
102
|
|
128
|
-
.
|
103
|
+
.launchpad__close:hover {
|
129
104
|
background: #e0e0e0;
|
130
105
|
color: #333;
|
131
106
|
}
|
132
107
|
|
133
108
|
/* Search */
|
134
|
-
.
|
109
|
+
.launchpad__search {
|
135
110
|
grid-area: search;
|
136
111
|
padding: 12px 20px;
|
137
112
|
border-bottom: 1px solid #e0e0e0;
|
138
113
|
}
|
139
114
|
|
140
|
-
.
|
115
|
+
.launchpad__search-input {
|
141
116
|
width: 100%;
|
142
117
|
padding: 10px 14px;
|
143
118
|
border: 1px solid #ddd;
|
@@ -147,97 +122,97 @@
|
|
147
122
|
transition: border-color 0.2s ease;
|
148
123
|
}
|
149
124
|
|
150
|
-
.
|
125
|
+
.launchpad__search-input:focus {
|
151
126
|
border-color: #1976d2;
|
152
127
|
box-shadow: 0 0 0 2px rgba(25, 118, 210, 0.1);
|
153
128
|
}
|
154
129
|
|
155
130
|
/* Condensed Mode */
|
156
|
-
.
|
131
|
+
.launchpad--condensed .launchpad__header {
|
157
132
|
padding: 6px 12px;
|
158
133
|
min-height: 32px;
|
159
134
|
}
|
160
135
|
|
161
|
-
.
|
136
|
+
.launchpad--condensed .launchpad__search {
|
162
137
|
padding: 8px 16px;
|
163
138
|
}
|
164
139
|
|
165
|
-
.
|
140
|
+
.launchpad--condensed .launchpad__search-input {
|
166
141
|
padding: 8px 12px;
|
167
142
|
font-size: 13px;
|
168
143
|
}
|
169
144
|
|
170
|
-
.
|
145
|
+
.launchpad--condensed .launchpad__content {
|
171
146
|
padding: 12px 16px;
|
172
147
|
}
|
173
148
|
|
174
|
-
.
|
149
|
+
.launchpad--condensed .launchpad__categories {
|
175
150
|
padding: 4px;
|
176
151
|
}
|
177
152
|
|
178
|
-
.
|
153
|
+
.launchpad--condensed .launchpad__category {
|
179
154
|
width: 36px;
|
180
155
|
height: 36px;
|
181
156
|
padding: 6px;
|
182
157
|
margin: 1px;
|
183
158
|
}
|
184
159
|
|
185
|
-
.
|
160
|
+
.launchpad--condensed .category-icon {
|
186
161
|
font-size: 16px;
|
187
162
|
}
|
188
163
|
|
189
|
-
.
|
164
|
+
.launchpad--condensed .launchpad__category-section {
|
190
165
|
margin-bottom: 20px;
|
191
166
|
}
|
192
167
|
|
193
|
-
.
|
168
|
+
.launchpad--condensed .category-title {
|
194
169
|
font-size: 14px;
|
195
170
|
margin-bottom: 8px;
|
196
171
|
}
|
197
172
|
|
198
|
-
.
|
173
|
+
.launchpad--condensed .launchpad__apps-grid {
|
199
174
|
gap: 8px;
|
200
175
|
grid-template-columns: repeat(auto-fill, minmax(75px, 1fr));
|
201
176
|
}
|
202
177
|
|
203
|
-
.
|
178
|
+
.launchpad--condensed .launchpad__app--grid {
|
204
179
|
padding: 8px 6px;
|
205
180
|
}
|
206
181
|
|
207
|
-
.
|
182
|
+
.launchpad--condensed .launchpad__app--grid .app-icon {
|
208
183
|
font-size: 28px;
|
209
184
|
margin-bottom: 4px;
|
210
185
|
}
|
211
186
|
|
212
|
-
.
|
187
|
+
.launchpad--condensed .launchpad__app--grid .app-name {
|
213
188
|
font-size: 11px;
|
214
189
|
}
|
215
190
|
|
216
|
-
.
|
191
|
+
.launchpad--condensed .launchpad__apps-list {
|
217
192
|
gap: 1px;
|
218
193
|
}
|
219
194
|
|
220
|
-
.
|
195
|
+
.launchpad--condensed .launchpad__app--list {
|
221
196
|
padding: 6px 12px;
|
222
197
|
gap: 10px;
|
223
198
|
}
|
224
199
|
|
225
|
-
.
|
200
|
+
.launchpad--condensed .launchpad__app--list .app-icon {
|
226
201
|
font-size: 22px;
|
227
202
|
min-width: 22px;
|
228
203
|
}
|
229
204
|
|
230
|
-
.
|
205
|
+
.launchpad--condensed .launchpad__app--list .app-name {
|
231
206
|
font-size: 12px;
|
232
207
|
margin-bottom: 1px;
|
233
208
|
}
|
234
209
|
|
235
|
-
.
|
210
|
+
.launchpad--condensed .launchpad__app--list .app-description {
|
236
211
|
font-size: 10px;
|
237
212
|
}
|
238
213
|
|
239
214
|
/* Main Grid Layout */
|
240
|
-
.
|
215
|
+
.launchpad__main {
|
241
216
|
grid-area: main;
|
242
217
|
display: grid;
|
243
218
|
grid-template-columns: 60px 1fr;
|
@@ -246,12 +221,12 @@
|
|
246
221
|
overflow: hidden;
|
247
222
|
}
|
248
223
|
|
249
|
-
.
|
224
|
+
.launchpad--condensed .launchpad__main {
|
250
225
|
grid-template-columns: 48px 1fr;
|
251
226
|
}
|
252
227
|
|
253
228
|
/* Sidebar */
|
254
|
-
.
|
229
|
+
.launchpad__sidebar {
|
255
230
|
grid-area: sidebar;
|
256
231
|
background: #f8f9fa;
|
257
232
|
border-right: 1px solid #e0e0e0;
|
@@ -261,7 +236,7 @@
|
|
261
236
|
}
|
262
237
|
|
263
238
|
/* Categories */
|
264
|
-
.
|
239
|
+
.launchpad__categories {
|
265
240
|
flex: 1;
|
266
241
|
padding: 8px;
|
267
242
|
overflow-y: auto;
|
@@ -269,24 +244,24 @@
|
|
269
244
|
scrollbar-color: #ccc transparent;
|
270
245
|
}
|
271
246
|
|
272
|
-
.
|
247
|
+
.launchpad__categories::-webkit-scrollbar {
|
273
248
|
width: 6px;
|
274
249
|
}
|
275
250
|
|
276
|
-
.
|
251
|
+
.launchpad__categories::-webkit-scrollbar-track {
|
277
252
|
background: transparent;
|
278
253
|
}
|
279
254
|
|
280
|
-
.
|
255
|
+
.launchpad__categories::-webkit-scrollbar-thumb {
|
281
256
|
background: #ccc;
|
282
257
|
border-radius: 3px;
|
283
258
|
}
|
284
259
|
|
285
|
-
.
|
260
|
+
.launchpad__categories::-webkit-scrollbar-thumb:hover {
|
286
261
|
background: #999;
|
287
262
|
}
|
288
263
|
|
289
|
-
.
|
264
|
+
.launchpad__category {
|
290
265
|
display: flex;
|
291
266
|
align-items: center;
|
292
267
|
justify-content: center;
|
@@ -305,12 +280,12 @@
|
|
305
280
|
position: relative;
|
306
281
|
}
|
307
282
|
|
308
|
-
.
|
283
|
+
.launchpad__category:hover {
|
309
284
|
background: #e9ecef;
|
310
285
|
color: #333;
|
311
286
|
}
|
312
287
|
|
313
|
-
.
|
288
|
+
.launchpad__category.active {
|
314
289
|
background: #e3f2fd;
|
315
290
|
color: #1976d2;
|
316
291
|
font-weight: 500;
|
@@ -326,7 +301,7 @@
|
|
326
301
|
}
|
327
302
|
|
328
303
|
/* Content */
|
329
|
-
.
|
304
|
+
.launchpad__content {
|
330
305
|
grid-area: content;
|
331
306
|
overflow-y: auto;
|
332
307
|
padding: 20px 24px;
|
@@ -334,25 +309,25 @@
|
|
334
309
|
scrollbar-color: #ccc transparent;
|
335
310
|
}
|
336
311
|
|
337
|
-
.
|
312
|
+
.launchpad__content::-webkit-scrollbar {
|
338
313
|
width: 8px;
|
339
314
|
}
|
340
315
|
|
341
|
-
.
|
316
|
+
.launchpad__content::-webkit-scrollbar-track {
|
342
317
|
background: #f1f1f1;
|
343
318
|
border-radius: 4px;
|
344
319
|
}
|
345
320
|
|
346
|
-
.
|
321
|
+
.launchpad__content::-webkit-scrollbar-thumb {
|
347
322
|
background: #ccc;
|
348
323
|
border-radius: 4px;
|
349
324
|
}
|
350
325
|
|
351
|
-
.
|
326
|
+
.launchpad__content::-webkit-scrollbar-thumb:hover {
|
352
327
|
background: #999;
|
353
328
|
}
|
354
329
|
|
355
|
-
.
|
330
|
+
.launchpad__search-results h3,
|
356
331
|
.category-title {
|
357
332
|
margin: 0 0 12px 0;
|
358
333
|
color: #333;
|
@@ -360,23 +335,23 @@
|
|
360
335
|
font-weight: 600;
|
361
336
|
}
|
362
337
|
|
363
|
-
.
|
338
|
+
.launchpad__category-section {
|
364
339
|
margin-bottom: 32px;
|
365
340
|
}
|
366
341
|
|
367
|
-
.
|
342
|
+
.launchpad__category-section:last-child {
|
368
343
|
margin-bottom: 0;
|
369
344
|
}
|
370
345
|
|
371
346
|
/* Apps Grid */
|
372
|
-
.
|
347
|
+
.launchpad__apps-grid {
|
373
348
|
display: grid;
|
374
349
|
grid-template-columns: repeat(auto-fill, minmax(90px, 1fr));
|
375
350
|
gap: 12px;
|
376
351
|
max-width: 100%;
|
377
352
|
}
|
378
353
|
|
379
|
-
.
|
354
|
+
.launchpad__app--grid {
|
380
355
|
display: flex;
|
381
356
|
flex-direction: column;
|
382
357
|
align-items: center;
|
@@ -389,20 +364,20 @@
|
|
389
364
|
border: 1px solid transparent;
|
390
365
|
}
|
391
366
|
|
392
|
-
.
|
367
|
+
.launchpad__app--grid:hover {
|
393
368
|
background: #f8f9fa;
|
394
369
|
border-color: #e0e0e0;
|
395
370
|
transform: translateY(-1px);
|
396
371
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
397
372
|
}
|
398
373
|
|
399
|
-
.
|
374
|
+
.launchpad__app--grid .app-icon {
|
400
375
|
font-size: 36px;
|
401
376
|
margin-bottom: 6px;
|
402
377
|
line-height: 1;
|
403
378
|
}
|
404
379
|
|
405
|
-
.
|
380
|
+
.launchpad__app--grid .app-name {
|
406
381
|
font-size: 12px;
|
407
382
|
font-weight: 500;
|
408
383
|
color: #333;
|
@@ -412,14 +387,14 @@
|
|
412
387
|
}
|
413
388
|
|
414
389
|
/* Apps List */
|
415
|
-
.
|
390
|
+
.launchpad__apps-list {
|
416
391
|
display: flex;
|
417
392
|
flex-direction: column;
|
418
393
|
gap: 2px;
|
419
394
|
max-width: 100%;
|
420
395
|
}
|
421
396
|
|
422
|
-
.
|
397
|
+
.launchpad__app--list {
|
423
398
|
display: flex;
|
424
399
|
align-items: center;
|
425
400
|
padding: 10px 16px;
|
@@ -432,12 +407,12 @@
|
|
432
407
|
margin-bottom: 2px;
|
433
408
|
}
|
434
409
|
|
435
|
-
.
|
410
|
+
.launchpad__app--list:hover {
|
436
411
|
background: #f0f7ff;
|
437
412
|
color: #1976d2;
|
438
413
|
}
|
439
414
|
|
440
|
-
.
|
415
|
+
.launchpad__app--list .app-icon {
|
441
416
|
font-size: 28px;
|
442
417
|
min-width: 28px;
|
443
418
|
line-height: 1;
|
@@ -446,13 +421,13 @@
|
|
446
421
|
justify-content: center;
|
447
422
|
}
|
448
423
|
|
449
|
-
.
|
424
|
+
.launchpad__app--list .app-info {
|
450
425
|
flex: 1;
|
451
426
|
text-align: left;
|
452
427
|
min-width: 0;
|
453
428
|
}
|
454
429
|
|
455
|
-
.
|
430
|
+
.launchpad__app--list .app-name {
|
456
431
|
font-size: 14px;
|
457
432
|
font-weight: 500;
|
458
433
|
color: #333;
|
@@ -463,7 +438,7 @@
|
|
463
438
|
text-overflow: ellipsis;
|
464
439
|
}
|
465
440
|
|
466
|
-
.
|
441
|
+
.launchpad__app--list .app-description {
|
467
442
|
font-size: 12px;
|
468
443
|
color: #666;
|
469
444
|
line-height: 1.3;
|
@@ -473,17 +448,17 @@
|
|
473
448
|
text-overflow: ellipsis;
|
474
449
|
}
|
475
450
|
|
476
|
-
.
|
451
|
+
.launchpad__app--list:hover .app-name {
|
477
452
|
color: #1976d2;
|
478
453
|
}
|
479
454
|
|
480
|
-
.
|
455
|
+
.launchpad__app--list:hover .app-description {
|
481
456
|
color: #1565c0;
|
482
457
|
opacity: 1;
|
483
458
|
}
|
484
459
|
|
485
460
|
/* Legacy support for old class names */
|
486
|
-
.
|
461
|
+
.launchpad__app {
|
487
462
|
display: flex;
|
488
463
|
flex-direction: column;
|
489
464
|
align-items: center;
|
@@ -496,7 +471,7 @@
|
|
496
471
|
border: 1px solid transparent;
|
497
472
|
}
|
498
473
|
|
499
|
-
.
|
474
|
+
.launchpad__app:hover {
|
500
475
|
background: #f8f9fa;
|
501
476
|
border-color: #e0e0e0;
|
502
477
|
transform: translateY(-1px);
|
@@ -519,37 +494,37 @@
|
|
519
494
|
}
|
520
495
|
|
521
496
|
/* No Results */
|
522
|
-
.
|
497
|
+
.launchpad__no-results {
|
523
498
|
text-align: center;
|
524
499
|
padding: 60px 20px;
|
525
500
|
color: #666;
|
526
501
|
}
|
527
502
|
|
528
|
-
.
|
503
|
+
.launchpad__no-results h3 {
|
529
504
|
margin: 0 0 8px 0;
|
530
505
|
color: #333;
|
531
506
|
font-size: 20px;
|
532
507
|
}
|
533
508
|
|
534
|
-
.
|
509
|
+
.launchpad__no-results p {
|
535
510
|
margin: 0;
|
536
511
|
font-size: 16px;
|
537
512
|
}
|
538
513
|
|
539
514
|
/* Responsive */
|
540
515
|
@media (max-width: 768px) {
|
541
|
-
.
|
516
|
+
.launchpad {
|
542
517
|
width: 95%;
|
543
518
|
height: 95%;
|
544
519
|
max-height: 100%; /* Constrained by workspace container */
|
545
520
|
margin: 5px;
|
546
521
|
}
|
547
522
|
|
548
|
-
.
|
523
|
+
.launchpad__main {
|
549
524
|
grid-template-columns: 50px 1fr;
|
550
525
|
}
|
551
526
|
|
552
|
-
.
|
527
|
+
.launchpad__category {
|
553
528
|
padding: 8px;
|
554
529
|
font-size: 13px;
|
555
530
|
height: 40px;
|
@@ -559,12 +534,12 @@
|
|
559
534
|
font-size: 18px;
|
560
535
|
}
|
561
536
|
|
562
|
-
.
|
537
|
+
.launchpad__apps-grid {
|
563
538
|
grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
|
564
539
|
gap: 12px;
|
565
540
|
}
|
566
541
|
|
567
|
-
.
|
542
|
+
.launchpad__app {
|
568
543
|
padding: 12px 8px;
|
569
544
|
}
|
570
545
|
|
@@ -576,16 +551,16 @@
|
|
576
551
|
font-size: 12px;
|
577
552
|
}
|
578
553
|
|
579
|
-
.
|
580
|
-
.
|
554
|
+
.launchpad__search,
|
555
|
+
.launchpad__content {
|
581
556
|
padding: 16px;
|
582
557
|
}
|
583
558
|
}
|
584
559
|
|
585
560
|
@media (max-width: 480px) {
|
586
|
-
/*
|
561
|
+
/* LaunchPad overlay covers entire workspace on mobile */
|
587
562
|
|
588
|
-
.
|
563
|
+
.launchpad__main {
|
589
564
|
grid-template-columns: 1fr;
|
590
565
|
grid-template-rows: auto 1fr;
|
591
566
|
grid-template-areas:
|
@@ -593,12 +568,12 @@
|
|
593
568
|
"content";
|
594
569
|
}
|
595
570
|
|
596
|
-
.
|
571
|
+
.launchpad__sidebar {
|
597
572
|
border-right: none;
|
598
573
|
border-bottom: 1px solid #e0e0e0;
|
599
574
|
}
|
600
575
|
|
601
|
-
.
|
576
|
+
.launchpad__categories {
|
602
577
|
display: flex;
|
603
578
|
flex-direction: row;
|
604
579
|
overflow-x: auto;
|
@@ -607,7 +582,7 @@
|
|
607
582
|
gap: 8px;
|
608
583
|
}
|
609
584
|
|
610
|
-
.
|
585
|
+
.launchpad__category {
|
611
586
|
flex-shrink: 0;
|
612
587
|
white-space: nowrap;
|
613
588
|
margin: 0;
|