ywana-core8 0.2.6 → 0.2.9
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 +726 -92
- package/dist/index.js +481 -202
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +481 -202
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +481 -202
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/desktop/AppManager.js +179 -115
- package/src/desktop/ApplicationMenu.css +425 -87
- package/src/desktop/ApplicationMenu.js +122 -76
- package/src/desktop/Desktop.stories.jsx +148 -509
- package/src/desktop/WindowContext.js +3 -0
- package/src/desktop/WindowManager.js +32 -10
- package/src/desktop/desktop-linux.css +55 -0
- package/src/desktop/desktop-macos.css +57 -0
- package/src/desktop/desktop-windows.css +54 -3
- package/src/desktop/desktop.css +30 -0
- package/src/desktop/desktop.js +135 -81
- package/src/desktop/window.css +98 -0
- package/src/desktop/window.js +163 -2
- package/src/html/button.css +5 -0
- package/src/html/button.js +2 -1
- package/src/desktop.backup/desktop.css +0 -6
- package/src/desktop.backup/desktop.js +0 -13
- package/src/desktop.backup/window.css +0 -58
- package/src/desktop.backup/window.js +0 -27
package/dist/index.css
CHANGED
@@ -5449,6 +5449,11 @@ td.actions {
|
|
5449
5449
|
white-space: nowrap;
|
5450
5450
|
}
|
5451
5451
|
|
5452
|
+
/* Ensure icons inside buttons don't block clicks */
|
5453
|
+
.btn .icon {
|
5454
|
+
pointer-events: none;
|
5455
|
+
}
|
5456
|
+
|
5452
5457
|
.btn.outlined {
|
5453
5458
|
color: var(--primary-color);
|
5454
5459
|
border: solid 1px var(--primary-color);
|
@@ -15822,6 +15827,7 @@ li.selected,
|
|
15822
15827
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
15823
15828
|
overflow: hidden;
|
15824
15829
|
user-select: none;
|
15830
|
+
pointer-events: auto; /* Ensure windows are clickable */
|
15825
15831
|
}
|
15826
15832
|
|
15827
15833
|
.window:focus-within {
|
@@ -16061,21 +16067,120 @@ li.selected,
|
|
16061
16067
|
.window--dragging * {
|
16062
16068
|
user-select: none !important;
|
16063
16069
|
}
|
16064
|
-
|
16070
|
+
|
16071
|
+
/* Window Resize Handles */
|
16072
|
+
.window__resize-handle {
|
16073
|
+
position: absolute;
|
16074
|
+
background: transparent;
|
16075
|
+
z-index: 10;
|
16076
|
+
}
|
16077
|
+
|
16078
|
+
/* Edge handles */
|
16079
|
+
.window__resize-handle--n {
|
16080
|
+
top: -3px;
|
16081
|
+
left: 8px;
|
16082
|
+
right: 8px;
|
16083
|
+
height: 6px;
|
16084
|
+
cursor: n-resize;
|
16085
|
+
}
|
16086
|
+
|
16087
|
+
.window__resize-handle--s {
|
16088
|
+
bottom: -3px;
|
16089
|
+
left: 8px;
|
16090
|
+
right: 8px;
|
16091
|
+
height: 6px;
|
16092
|
+
cursor: s-resize;
|
16093
|
+
}
|
16094
|
+
|
16095
|
+
.window__resize-handle--e {
|
16096
|
+
top: 8px;
|
16097
|
+
bottom: 8px;
|
16098
|
+
right: -3px;
|
16099
|
+
width: 6px;
|
16100
|
+
cursor: e-resize;
|
16101
|
+
}
|
16102
|
+
|
16103
|
+
.window__resize-handle--w {
|
16104
|
+
top: 8px;
|
16105
|
+
bottom: 8px;
|
16106
|
+
left: -3px;
|
16107
|
+
width: 6px;
|
16108
|
+
cursor: w-resize;
|
16109
|
+
}
|
16110
|
+
|
16111
|
+
/* Corner handles */
|
16112
|
+
.window__resize-handle--ne {
|
16113
|
+
top: -3px;
|
16114
|
+
right: -3px;
|
16115
|
+
width: 12px;
|
16116
|
+
height: 12px;
|
16117
|
+
cursor: ne-resize;
|
16118
|
+
}
|
16119
|
+
|
16120
|
+
.window__resize-handle--nw {
|
16121
|
+
top: -3px;
|
16122
|
+
left: -3px;
|
16123
|
+
width: 12px;
|
16124
|
+
height: 12px;
|
16125
|
+
cursor: nw-resize;
|
16126
|
+
}
|
16127
|
+
|
16128
|
+
.window__resize-handle--se {
|
16129
|
+
bottom: -3px;
|
16130
|
+
right: -3px;
|
16131
|
+
width: 12px;
|
16132
|
+
height: 12px;
|
16133
|
+
cursor: se-resize;
|
16134
|
+
}
|
16135
|
+
|
16136
|
+
.window__resize-handle--sw {
|
16137
|
+
bottom: -3px;
|
16138
|
+
left: -3px;
|
16139
|
+
width: 12px;
|
16140
|
+
height: 12px;
|
16141
|
+
cursor: sw-resize;
|
16142
|
+
}
|
16143
|
+
|
16144
|
+
/* Resize handle hover effects */
|
16145
|
+
.window__resize-handle:hover {
|
16146
|
+
background: rgba(25, 118, 210, 0.2);
|
16147
|
+
}
|
16148
|
+
|
16149
|
+
/* Window resizing state */
|
16150
|
+
.window--resizing {
|
16151
|
+
pointer-events: none;
|
16152
|
+
}
|
16153
|
+
|
16154
|
+
.window--resizing * {
|
16155
|
+
pointer-events: none !important;
|
16156
|
+
}
|
16157
|
+
|
16158
|
+
/* Allow resize handles to work during resize */
|
16159
|
+
.window--resizing .window__resize-handle {
|
16160
|
+
pointer-events: auto !important;
|
16161
|
+
}
|
16162
|
+
|
16163
|
+
/* Disable text selection during resize */
|
16164
|
+
.window--resizing * {
|
16165
|
+
user-select: none !important;
|
16166
|
+
}
|
16167
|
+
/* ApplicationMenu - Positioned over workspace only */
|
16065
16168
|
|
16066
16169
|
.application-menu-overlay {
|
16067
|
-
position:
|
16170
|
+
position: absolute;
|
16068
16171
|
top: 0;
|
16069
16172
|
left: 0;
|
16070
16173
|
right: 0;
|
16071
|
-
bottom: 0;
|
16174
|
+
bottom: 0; /* Covers entire workspace container */
|
16072
16175
|
background: rgba(0, 0, 0, 0.8);
|
16073
16176
|
backdrop-filter: blur(8px);
|
16074
|
-
z-index: 10000;
|
16177
|
+
z-index: 10000; /* Always above all windows */
|
16075
16178
|
display: flex;
|
16076
|
-
align-items:
|
16077
|
-
justify-content:
|
16179
|
+
align-items: flex-end;
|
16180
|
+
justify-content: flex-start;
|
16078
16181
|
animation: fadeIn 0.2s ease-out;
|
16182
|
+
pointer-events: auto; /* Ensure menu is clickable */
|
16183
|
+
padding: 0 0 0px 15px; /* Espacio para el taskbar y margen izquierdo */
|
16079
16184
|
}
|
16080
16185
|
|
16081
16186
|
@keyframes fadeIn {
|
@@ -16089,37 +16194,49 @@ li.selected,
|
|
16089
16194
|
|
16090
16195
|
.application-menu {
|
16091
16196
|
background: #ffffff;
|
16092
|
-
border-radius: 12px;
|
16093
|
-
box-shadow: 0
|
16094
|
-
width:
|
16095
|
-
max-width:
|
16096
|
-
height:
|
16097
|
-
max-height:
|
16098
|
-
display:
|
16099
|
-
|
16197
|
+
border-radius: 12px 12px 0 0;
|
16198
|
+
box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.3);
|
16199
|
+
width: 30rem;
|
16200
|
+
max-width: 1000px;
|
16201
|
+
height: 80vh; /* Altura fija relativa al viewport */
|
16202
|
+
max-height: calc(100% - 80px); /* Espacio para taskbar */
|
16203
|
+
display: grid;
|
16204
|
+
grid-template-rows: auto auto 1fr;
|
16205
|
+
grid-template-areas:
|
16206
|
+
"header"
|
16207
|
+
"search"
|
16208
|
+
"main";
|
16100
16209
|
overflow: hidden;
|
16101
16210
|
animation: slideIn 0.3s ease-out;
|
16102
16211
|
}
|
16103
16212
|
|
16104
16213
|
@keyframes slideIn {
|
16105
16214
|
from {
|
16106
|
-
transform:
|
16215
|
+
transform: translateY(20px);
|
16107
16216
|
opacity: 0;
|
16108
16217
|
}
|
16109
16218
|
to {
|
16110
|
-
transform:
|
16219
|
+
transform: translateY(0);
|
16111
16220
|
opacity: 1;
|
16112
16221
|
}
|
16113
16222
|
}
|
16114
16223
|
|
16115
16224
|
/* Header */
|
16116
16225
|
.application-menu__header {
|
16226
|
+
grid-area: header;
|
16117
16227
|
display: flex;
|
16118
16228
|
align-items: center;
|
16119
|
-
justify-content:
|
16120
|
-
padding:
|
16229
|
+
justify-content: flex-end;
|
16230
|
+
padding: 8px 16px;
|
16121
16231
|
border-bottom: 1px solid #e0e0e0;
|
16122
16232
|
background: #f8f9fa;
|
16233
|
+
min-height: 40px;
|
16234
|
+
}
|
16235
|
+
|
16236
|
+
.application-menu__header-controls {
|
16237
|
+
display: flex;
|
16238
|
+
align-items: center;
|
16239
|
+
gap: 6px;
|
16123
16240
|
}
|
16124
16241
|
|
16125
16242
|
.application-menu__header h2 {
|
@@ -16129,15 +16246,48 @@ li.selected,
|
|
16129
16246
|
font-weight: 600;
|
16130
16247
|
}
|
16131
16248
|
|
16249
|
+
.application-menu__view-toggle {
|
16250
|
+
background: none;
|
16251
|
+
border: 1px solid #ddd;
|
16252
|
+
font-size: 14px;
|
16253
|
+
cursor: pointer;
|
16254
|
+
color: #666;
|
16255
|
+
padding: 6px 10px;
|
16256
|
+
border-radius: 4px;
|
16257
|
+
transition: all 0.2s ease;
|
16258
|
+
min-width: 32px;
|
16259
|
+
height: 32px;
|
16260
|
+
display: flex;
|
16261
|
+
align-items: center;
|
16262
|
+
justify-content: center;
|
16263
|
+
}
|
16264
|
+
|
16265
|
+
.application-menu__view-toggle:hover {
|
16266
|
+
background: #e9ecef;
|
16267
|
+
color: #333;
|
16268
|
+
border-color: #ccc;
|
16269
|
+
}
|
16270
|
+
|
16271
|
+
.application-menu__view-toggle.active {
|
16272
|
+
background: #1976d2;
|
16273
|
+
color: white;
|
16274
|
+
border-color: #1976d2;
|
16275
|
+
}
|
16276
|
+
|
16132
16277
|
.application-menu__close {
|
16133
16278
|
background: none;
|
16134
16279
|
border: none;
|
16135
|
-
font-size:
|
16280
|
+
font-size: 20px;
|
16136
16281
|
color: #666;
|
16137
16282
|
cursor: pointer;
|
16138
|
-
padding:
|
16283
|
+
padding: 6px 8px;
|
16139
16284
|
border-radius: 4px;
|
16140
16285
|
transition: all 0.2s ease;
|
16286
|
+
min-width: 32px;
|
16287
|
+
height: 32px;
|
16288
|
+
display: flex;
|
16289
|
+
align-items: center;
|
16290
|
+
justify-content: center;
|
16141
16291
|
}
|
16142
16292
|
|
16143
16293
|
.application-menu__close:hover {
|
@@ -16147,76 +16297,231 @@ li.selected,
|
|
16147
16297
|
|
16148
16298
|
/* Search */
|
16149
16299
|
.application-menu__search {
|
16150
|
-
|
16300
|
+
grid-area: search;
|
16301
|
+
padding: 12px 20px;
|
16151
16302
|
border-bottom: 1px solid #e0e0e0;
|
16152
16303
|
}
|
16153
16304
|
|
16154
16305
|
.application-menu__search-input {
|
16155
16306
|
width: 100%;
|
16156
|
-
padding:
|
16157
|
-
border:
|
16158
|
-
border-radius:
|
16159
|
-
font-size:
|
16307
|
+
padding: 10px 14px;
|
16308
|
+
border: 1px solid #ddd;
|
16309
|
+
border-radius: 6px;
|
16310
|
+
font-size: 14px;
|
16160
16311
|
outline: none;
|
16161
16312
|
transition: border-color 0.2s ease;
|
16162
16313
|
}
|
16163
16314
|
|
16164
16315
|
.application-menu__search-input:focus {
|
16165
16316
|
border-color: #1976d2;
|
16317
|
+
box-shadow: 0 0 0 2px rgba(25, 118, 210, 0.1);
|
16166
16318
|
}
|
16167
16319
|
|
16168
|
-
/*
|
16169
|
-
.application-
|
16170
|
-
|
16320
|
+
/* Condensed Mode */
|
16321
|
+
.application-menu--condensed .application-menu__header {
|
16322
|
+
padding: 6px 12px;
|
16323
|
+
min-height: 32px;
|
16324
|
+
}
|
16325
|
+
|
16326
|
+
.application-menu--condensed .application-menu__search {
|
16327
|
+
padding: 8px 16px;
|
16328
|
+
}
|
16329
|
+
|
16330
|
+
.application-menu--condensed .application-menu__search-input {
|
16331
|
+
padding: 8px 12px;
|
16332
|
+
font-size: 13px;
|
16333
|
+
}
|
16334
|
+
|
16335
|
+
.application-menu--condensed .application-menu__content {
|
16336
|
+
padding: 12px 16px;
|
16337
|
+
}
|
16338
|
+
|
16339
|
+
.application-menu--condensed .application-menu__categories {
|
16340
|
+
padding: 4px;
|
16341
|
+
}
|
16342
|
+
|
16343
|
+
.application-menu--condensed .application-menu__category {
|
16344
|
+
width: 36px;
|
16345
|
+
height: 36px;
|
16346
|
+
padding: 6px;
|
16347
|
+
margin: 1px;
|
16348
|
+
}
|
16349
|
+
|
16350
|
+
.application-menu--condensed .category-icon {
|
16351
|
+
font-size: 16px;
|
16352
|
+
}
|
16353
|
+
|
16354
|
+
.application-menu--condensed .application-menu__category-section {
|
16355
|
+
margin-bottom: 20px;
|
16356
|
+
}
|
16357
|
+
|
16358
|
+
.application-menu--condensed .category-title {
|
16359
|
+
font-size: 14px;
|
16360
|
+
margin-bottom: 8px;
|
16361
|
+
}
|
16362
|
+
|
16363
|
+
.application-menu--condensed .application-menu__apps-grid {
|
16171
16364
|
gap: 8px;
|
16172
|
-
|
16173
|
-
|
16365
|
+
grid-template-columns: repeat(auto-fill, minmax(75px, 1fr));
|
16366
|
+
}
|
16367
|
+
|
16368
|
+
.application-menu--condensed .application-menu__app--grid {
|
16369
|
+
padding: 8px 6px;
|
16370
|
+
}
|
16371
|
+
|
16372
|
+
.application-menu--condensed .application-menu__app--grid .app-icon {
|
16373
|
+
font-size: 28px;
|
16374
|
+
margin-bottom: 4px;
|
16375
|
+
}
|
16376
|
+
|
16377
|
+
.application-menu--condensed .application-menu__app--grid .app-name {
|
16378
|
+
font-size: 11px;
|
16379
|
+
}
|
16380
|
+
|
16381
|
+
.application-menu--condensed .application-menu__apps-list {
|
16382
|
+
gap: 1px;
|
16383
|
+
}
|
16384
|
+
|
16385
|
+
.application-menu--condensed .application-menu__app--list {
|
16386
|
+
padding: 6px 12px;
|
16387
|
+
gap: 10px;
|
16388
|
+
}
|
16389
|
+
|
16390
|
+
.application-menu--condensed .application-menu__app--list .app-icon {
|
16391
|
+
font-size: 22px;
|
16392
|
+
min-width: 22px;
|
16393
|
+
}
|
16394
|
+
|
16395
|
+
.application-menu--condensed .application-menu__app--list .app-name {
|
16396
|
+
font-size: 12px;
|
16397
|
+
margin-bottom: 1px;
|
16398
|
+
}
|
16399
|
+
|
16400
|
+
.application-menu--condensed .application-menu__app--list .app-description {
|
16401
|
+
font-size: 10px;
|
16402
|
+
}
|
16403
|
+
|
16404
|
+
/* Main Grid Layout */
|
16405
|
+
.application-menu__main {
|
16406
|
+
grid-area: main;
|
16407
|
+
display: grid;
|
16408
|
+
grid-template-columns: 60px 1fr;
|
16409
|
+
grid-template-areas: "sidebar content";
|
16410
|
+
height: 100%;
|
16411
|
+
overflow: hidden;
|
16412
|
+
}
|
16413
|
+
|
16414
|
+
.application-menu--condensed .application-menu__main {
|
16415
|
+
grid-template-columns: 48px 1fr;
|
16416
|
+
}
|
16417
|
+
|
16418
|
+
/* Sidebar */
|
16419
|
+
.application-menu__sidebar {
|
16420
|
+
grid-area: sidebar;
|
16174
16421
|
background: #f8f9fa;
|
16175
|
-
|
16422
|
+
border-right: 1px solid #e0e0e0;
|
16423
|
+
overflow: hidden;
|
16424
|
+
display: flex;
|
16425
|
+
flex-direction: column;
|
16426
|
+
}
|
16427
|
+
|
16428
|
+
/* Categories */
|
16429
|
+
.application-menu__categories {
|
16430
|
+
flex: 1;
|
16431
|
+
padding: 8px;
|
16432
|
+
overflow-y: auto;
|
16433
|
+
scrollbar-width: thin;
|
16434
|
+
scrollbar-color: #ccc transparent;
|
16435
|
+
}
|
16436
|
+
|
16437
|
+
.application-menu__categories::-webkit-scrollbar {
|
16438
|
+
width: 6px;
|
16439
|
+
}
|
16440
|
+
|
16441
|
+
.application-menu__categories::-webkit-scrollbar-track {
|
16442
|
+
background: transparent;
|
16443
|
+
}
|
16444
|
+
|
16445
|
+
.application-menu__categories::-webkit-scrollbar-thumb {
|
16446
|
+
background: #ccc;
|
16447
|
+
border-radius: 3px;
|
16448
|
+
}
|
16449
|
+
|
16450
|
+
.application-menu__categories::-webkit-scrollbar-thumb:hover {
|
16451
|
+
background: #999;
|
16176
16452
|
}
|
16177
16453
|
|
16178
16454
|
.application-menu__category {
|
16179
16455
|
display: flex;
|
16180
16456
|
align-items: center;
|
16181
|
-
|
16182
|
-
padding: 8px
|
16183
|
-
|
16184
|
-
|
16185
|
-
border
|
16457
|
+
justify-content: center;
|
16458
|
+
padding: 8px;
|
16459
|
+
margin: 2px;
|
16460
|
+
background: transparent;
|
16461
|
+
border: none;
|
16462
|
+
border-radius: 6px;
|
16186
16463
|
cursor: pointer;
|
16187
|
-
font-size:
|
16188
|
-
|
16189
|
-
transition: all 0.
|
16190
|
-
color: #
|
16464
|
+
font-size: 13px;
|
16465
|
+
text-align: center;
|
16466
|
+
transition: all 0.15s ease;
|
16467
|
+
color: #555;
|
16468
|
+
width: 44px;
|
16469
|
+
height: 44px;
|
16470
|
+
position: relative;
|
16191
16471
|
}
|
16192
16472
|
|
16193
16473
|
.application-menu__category:hover {
|
16194
|
-
background: #
|
16195
|
-
|
16474
|
+
background: #e9ecef;
|
16475
|
+
color: #333;
|
16196
16476
|
}
|
16197
16477
|
|
16198
16478
|
.application-menu__category.active {
|
16199
|
-
background: #
|
16200
|
-
|
16201
|
-
|
16479
|
+
background: #e3f2fd;
|
16480
|
+
color: #1976d2;
|
16481
|
+
font-weight: 500;
|
16202
16482
|
}
|
16203
16483
|
|
16204
16484
|
.category-icon {
|
16205
|
-
font-size:
|
16485
|
+
font-size: 20px;
|
16486
|
+
min-width: 20px;
|
16487
|
+
}
|
16488
|
+
|
16489
|
+
.category-name {
|
16490
|
+
display: none;
|
16206
16491
|
}
|
16207
16492
|
|
16208
16493
|
/* Content */
|
16209
16494
|
.application-menu__content {
|
16210
|
-
|
16495
|
+
grid-area: content;
|
16211
16496
|
overflow-y: auto;
|
16212
|
-
padding: 24px;
|
16497
|
+
padding: 20px 24px;
|
16498
|
+
scrollbar-width: thin;
|
16499
|
+
scrollbar-color: #ccc transparent;
|
16500
|
+
}
|
16501
|
+
|
16502
|
+
.application-menu__content::-webkit-scrollbar {
|
16503
|
+
width: 8px;
|
16504
|
+
}
|
16505
|
+
|
16506
|
+
.application-menu__content::-webkit-scrollbar-track {
|
16507
|
+
background: #f1f1f1;
|
16508
|
+
border-radius: 4px;
|
16509
|
+
}
|
16510
|
+
|
16511
|
+
.application-menu__content::-webkit-scrollbar-thumb {
|
16512
|
+
background: #ccc;
|
16513
|
+
border-radius: 4px;
|
16514
|
+
}
|
16515
|
+
|
16516
|
+
.application-menu__content::-webkit-scrollbar-thumb:hover {
|
16517
|
+
background: #999;
|
16213
16518
|
}
|
16214
16519
|
|
16215
16520
|
.application-menu__search-results h3,
|
16216
16521
|
.category-title {
|
16217
|
-
margin: 0 0
|
16522
|
+
margin: 0 0 12px 0;
|
16218
16523
|
color: #333;
|
16219
|
-
font-size:
|
16524
|
+
font-size: 15px;
|
16220
16525
|
font-weight: 600;
|
16221
16526
|
}
|
16222
16527
|
|
@@ -16231,42 +16536,151 @@ li.selected,
|
|
16231
16536
|
/* Apps Grid */
|
16232
16537
|
.application-menu__apps-grid {
|
16233
16538
|
display: grid;
|
16234
|
-
grid-template-columns: repeat(auto-fill, minmax(
|
16235
|
-
gap:
|
16539
|
+
grid-template-columns: repeat(auto-fill, minmax(90px, 1fr));
|
16540
|
+
gap: 12px;
|
16541
|
+
max-width: 100%;
|
16236
16542
|
}
|
16237
16543
|
|
16238
|
-
.application-menu__app {
|
16544
|
+
.application-menu__app--grid {
|
16239
16545
|
display: flex;
|
16240
16546
|
flex-direction: column;
|
16241
16547
|
align-items: center;
|
16242
|
-
padding:
|
16243
|
-
border-radius:
|
16548
|
+
padding: 12px 8px;
|
16549
|
+
border-radius: 8px;
|
16244
16550
|
cursor: pointer;
|
16245
|
-
transition: all 0.
|
16551
|
+
transition: all 0.15s ease;
|
16246
16552
|
text-align: center;
|
16247
16553
|
background: #ffffff;
|
16248
16554
|
border: 1px solid transparent;
|
16249
16555
|
}
|
16250
16556
|
|
16251
|
-
.application-menu__app:hover {
|
16557
|
+
.application-menu__app--grid:hover {
|
16252
16558
|
background: #f8f9fa;
|
16253
16559
|
border-color: #e0e0e0;
|
16254
|
-
transform: translateY(-
|
16255
|
-
box-shadow: 0
|
16560
|
+
transform: translateY(-1px);
|
16561
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
16562
|
+
}
|
16563
|
+
|
16564
|
+
.application-menu__app--grid .app-icon {
|
16565
|
+
font-size: 36px;
|
16566
|
+
margin-bottom: 6px;
|
16567
|
+
line-height: 1;
|
16568
|
+
}
|
16569
|
+
|
16570
|
+
.application-menu__app--grid .app-name {
|
16571
|
+
font-size: 12px;
|
16572
|
+
font-weight: 500;
|
16573
|
+
color: #333;
|
16574
|
+
line-height: 1.2;
|
16575
|
+
word-break: break-word;
|
16576
|
+
max-width: 100%;
|
16577
|
+
}
|
16578
|
+
|
16579
|
+
/* Apps List */
|
16580
|
+
.application-menu__apps-list {
|
16581
|
+
display: flex;
|
16582
|
+
flex-direction: column;
|
16583
|
+
gap: 2px;
|
16584
|
+
max-width: 100%;
|
16585
|
+
}
|
16586
|
+
|
16587
|
+
.application-menu__app--list {
|
16588
|
+
display: flex;
|
16589
|
+
align-items: center;
|
16590
|
+
padding: 10px 16px;
|
16591
|
+
border-radius: 6px;
|
16592
|
+
cursor: pointer;
|
16593
|
+
transition: all 0.15s ease;
|
16594
|
+
background: transparent;
|
16595
|
+
border: none;
|
16596
|
+
gap: 14px;
|
16597
|
+
margin-bottom: 2px;
|
16598
|
+
}
|
16599
|
+
|
16600
|
+
.application-menu__app--list:hover {
|
16601
|
+
background: #f0f7ff;
|
16602
|
+
color: #1976d2;
|
16603
|
+
}
|
16604
|
+
|
16605
|
+
.application-menu__app--list .app-icon {
|
16606
|
+
font-size: 28px;
|
16607
|
+
min-width: 28px;
|
16608
|
+
line-height: 1;
|
16609
|
+
display: flex;
|
16610
|
+
align-items: center;
|
16611
|
+
justify-content: center;
|
16612
|
+
}
|
16613
|
+
|
16614
|
+
.application-menu__app--list .app-info {
|
16615
|
+
flex: 1;
|
16616
|
+
text-align: left;
|
16617
|
+
min-width: 0;
|
16618
|
+
}
|
16619
|
+
|
16620
|
+
.application-menu__app--list .app-name {
|
16621
|
+
font-size: 14px;
|
16622
|
+
font-weight: 500;
|
16623
|
+
color: #333;
|
16624
|
+
line-height: 1.4;
|
16625
|
+
margin-bottom: 3px;
|
16626
|
+
white-space: nowrap;
|
16627
|
+
overflow: hidden;
|
16628
|
+
text-overflow: ellipsis;
|
16629
|
+
}
|
16630
|
+
|
16631
|
+
.application-menu__app--list .app-description {
|
16632
|
+
font-size: 12px;
|
16633
|
+
color: #666;
|
16634
|
+
line-height: 1.3;
|
16635
|
+
opacity: 0.9;
|
16636
|
+
white-space: nowrap;
|
16637
|
+
overflow: hidden;
|
16638
|
+
text-overflow: ellipsis;
|
16639
|
+
}
|
16640
|
+
|
16641
|
+
.application-menu__app--list:hover .app-name {
|
16642
|
+
color: #1976d2;
|
16643
|
+
}
|
16644
|
+
|
16645
|
+
.application-menu__app--list:hover .app-description {
|
16646
|
+
color: #1565c0;
|
16647
|
+
opacity: 1;
|
16648
|
+
}
|
16649
|
+
|
16650
|
+
/* Legacy support for old class names */
|
16651
|
+
.application-menu__app {
|
16652
|
+
display: flex;
|
16653
|
+
flex-direction: column;
|
16654
|
+
align-items: center;
|
16655
|
+
padding: 12px 8px;
|
16656
|
+
border-radius: 8px;
|
16657
|
+
cursor: pointer;
|
16658
|
+
transition: all 0.15s ease;
|
16659
|
+
text-align: center;
|
16660
|
+
background: #ffffff;
|
16661
|
+
border: 1px solid transparent;
|
16662
|
+
}
|
16663
|
+
|
16664
|
+
.application-menu__app:hover {
|
16665
|
+
background: #f8f9fa;
|
16666
|
+
border-color: #e0e0e0;
|
16667
|
+
transform: translateY(-1px);
|
16668
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
16256
16669
|
}
|
16257
16670
|
|
16258
16671
|
.app-icon {
|
16259
|
-
font-size:
|
16260
|
-
margin-bottom:
|
16672
|
+
font-size: 36px;
|
16673
|
+
margin-bottom: 6px;
|
16261
16674
|
line-height: 1;
|
16262
16675
|
}
|
16263
16676
|
|
16264
16677
|
.app-name {
|
16265
|
-
font-size:
|
16678
|
+
font-size: 12px;
|
16266
16679
|
font-weight: 500;
|
16267
16680
|
color: #333;
|
16268
16681
|
line-height: 1.2;
|
16269
16682
|
word-break: break-word;
|
16683
|
+
max-width: 100%;
|
16270
16684
|
}
|
16271
16685
|
|
16272
16686
|
/* No Results */
|
@@ -16291,55 +16705,82 @@ li.selected,
|
|
16291
16705
|
@media (max-width: 768px) {
|
16292
16706
|
.application-menu {
|
16293
16707
|
width: 95%;
|
16294
|
-
height:
|
16295
|
-
|
16708
|
+
height: 95%;
|
16709
|
+
max-height: 100%; /* Constrained by workspace container */
|
16710
|
+
margin: 5px;
|
16296
16711
|
}
|
16297
|
-
|
16712
|
+
|
16713
|
+
.application-menu__main {
|
16714
|
+
grid-template-columns: 50px 1fr;
|
16715
|
+
}
|
16716
|
+
|
16717
|
+
.application-menu__category {
|
16718
|
+
padding: 8px;
|
16719
|
+
font-size: 13px;
|
16720
|
+
height: 40px;
|
16721
|
+
}
|
16722
|
+
|
16723
|
+
.category-icon {
|
16724
|
+
font-size: 18px;
|
16725
|
+
}
|
16726
|
+
|
16298
16727
|
.application-menu__apps-grid {
|
16299
|
-
grid-template-columns: repeat(auto-fill, minmax(
|
16728
|
+
grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
|
16300
16729
|
gap: 12px;
|
16301
16730
|
}
|
16302
|
-
|
16731
|
+
|
16303
16732
|
.application-menu__app {
|
16304
16733
|
padding: 12px 8px;
|
16305
16734
|
}
|
16306
|
-
|
16735
|
+
|
16307
16736
|
.app-icon {
|
16308
|
-
font-size:
|
16737
|
+
font-size: 36px;
|
16309
16738
|
}
|
16310
|
-
|
16739
|
+
|
16311
16740
|
.app-name {
|
16312
16741
|
font-size: 12px;
|
16313
16742
|
}
|
16314
|
-
|
16315
|
-
.application-menu__categories {
|
16316
|
-
padding: 12px 16px;
|
16317
|
-
}
|
16318
|
-
|
16743
|
+
|
16319
16744
|
.application-menu__search,
|
16320
16745
|
.application-menu__content {
|
16321
16746
|
padding: 16px;
|
16322
16747
|
}
|
16323
16748
|
}
|
16324
16749
|
|
16325
|
-
|
16326
|
-
|
16327
|
-
width: 8px;
|
16328
|
-
}
|
16750
|
+
@media (max-width: 480px) {
|
16751
|
+
/* ApplicationMenu overlay covers entire workspace on mobile */
|
16329
16752
|
|
16330
|
-
.application-
|
16331
|
-
|
16332
|
-
|
16333
|
-
|
16753
|
+
.application-menu__main {
|
16754
|
+
grid-template-columns: 1fr;
|
16755
|
+
grid-template-rows: auto 1fr;
|
16756
|
+
grid-template-areas:
|
16757
|
+
"sidebar"
|
16758
|
+
"content";
|
16759
|
+
}
|
16334
16760
|
|
16335
|
-
.application-
|
16336
|
-
|
16337
|
-
|
16338
|
-
}
|
16761
|
+
.application-menu__sidebar {
|
16762
|
+
border-right: none;
|
16763
|
+
border-bottom: 1px solid #e0e0e0;
|
16764
|
+
}
|
16339
16765
|
|
16340
|
-
.application-
|
16341
|
-
|
16766
|
+
.application-menu__categories {
|
16767
|
+
display: flex;
|
16768
|
+
flex-direction: row;
|
16769
|
+
overflow-x: auto;
|
16770
|
+
overflow-y: hidden;
|
16771
|
+
padding: 12px 16px;
|
16772
|
+
gap: 8px;
|
16773
|
+
}
|
16774
|
+
|
16775
|
+
.application-menu__category {
|
16776
|
+
flex-shrink: 0;
|
16777
|
+
white-space: nowrap;
|
16778
|
+
margin: 0;
|
16779
|
+
width: auto;
|
16780
|
+
}
|
16342
16781
|
}
|
16782
|
+
|
16783
|
+
|
16343
16784
|
/* Desktop Component Styles */
|
16344
16785
|
|
16345
16786
|
.desktop {
|
@@ -16366,8 +16807,38 @@ li.selected,
|
|
16366
16807
|
width: 100%;
|
16367
16808
|
height: 100%;
|
16368
16809
|
z-index: 1;
|
16810
|
+
display: flex;
|
16811
|
+
flex-direction: column;
|
16369
16812
|
}
|
16370
16813
|
|
16814
|
+
/* Workspace container - takes available space above taskbar */
|
16815
|
+
.desktop__workspace-container {
|
16816
|
+
position: relative;
|
16817
|
+
flex: 1;
|
16818
|
+
overflow: hidden;
|
16819
|
+
z-index: 1;
|
16820
|
+
}
|
16821
|
+
|
16822
|
+
/* Workspace - container for windows with boundaries */
|
16823
|
+
.workspace {
|
16824
|
+
position: relative;
|
16825
|
+
width: 100%;
|
16826
|
+
height: 100%;
|
16827
|
+
overflow: hidden;
|
16828
|
+
}
|
16829
|
+
|
16830
|
+
.desktop-taskbar {
|
16831
|
+
|
16832
|
+
& .icon {
|
16833
|
+
color: white;
|
16834
|
+
& :hover {
|
16835
|
+
color: #fff;
|
16836
|
+
background-color: rgba(255, 255, 255, 0.1);
|
16837
|
+
}
|
16838
|
+
}
|
16839
|
+
}
|
16840
|
+
|
16841
|
+
|
16371
16842
|
/* Desktop variants */
|
16372
16843
|
.desktop--dark {
|
16373
16844
|
color: white;
|
@@ -16503,6 +16974,60 @@ li.selected,
|
|
16503
16974
|
border-color: rgba(255, 255, 255, 0.4);
|
16504
16975
|
}
|
16505
16976
|
|
16977
|
+
/* Windows Start Button Styling */
|
16978
|
+
.desktop--windows .toggle-button {
|
16979
|
+
/* Reset selector styles and apply Windows button styling */
|
16980
|
+
position: relative;
|
16981
|
+
padding: 8px 16px;
|
16982
|
+
display: flex;
|
16983
|
+
align-items: center;
|
16984
|
+
justify-content: center;
|
16985
|
+
gap: 8px;
|
16986
|
+
overflow: hidden;
|
16987
|
+
border: 1px solid rgba(255, 255, 255, 0.2);
|
16988
|
+
outline: none;
|
16989
|
+
transition: all 0.2s ease;
|
16990
|
+
color: white;
|
16991
|
+
background: linear-gradient(180deg, #0078d4 0%, #106ebe 100%);
|
16992
|
+
min-height: 40px;
|
16993
|
+
border-radius: 4px;
|
16994
|
+
cursor: pointer;
|
16995
|
+
font-family: 'Segoe UI', sans-serif;
|
16996
|
+
font-weight: 500;
|
16997
|
+
text-decoration: none;
|
16998
|
+
white-space: nowrap;
|
16999
|
+
list-style: none;
|
17000
|
+
margin: 0;
|
17001
|
+
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
17002
|
+
}
|
17003
|
+
|
17004
|
+
.desktop--windows .toggle-button:hover:not(.toggle-button--disabled) {
|
17005
|
+
background: linear-gradient(180deg, #106ebe 0%, #005a9e 100%);
|
17006
|
+
border-color: rgba(255, 255, 255, 0.3);
|
17007
|
+
transform: none;
|
17008
|
+
}
|
17009
|
+
|
17010
|
+
.desktop--windows .toggle-button.selected {
|
17011
|
+
background: linear-gradient(180deg, #005a9e 0%, #004578 100%);
|
17012
|
+
color: white;
|
17013
|
+
border-color: rgba(255, 255, 255, 0.4);
|
17014
|
+
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.3);
|
17015
|
+
}
|
17016
|
+
|
17017
|
+
.desktop--windows .toggle-button:focus {
|
17018
|
+
outline: 2px solid rgba(255, 255, 255, 0.5);
|
17019
|
+
outline-offset: 2px;
|
17020
|
+
}
|
17021
|
+
|
17022
|
+
.desktop--windows .toggle-button--disabled {
|
17023
|
+
background: rgba(200, 200, 200, 0.3) !important;
|
17024
|
+
color: rgba(100, 100, 100, 0.5) !important;
|
17025
|
+
border-color: rgba(255, 255, 255, 0.1) !important;
|
17026
|
+
cursor: not-allowed;
|
17027
|
+
opacity: 1;
|
17028
|
+
box-shadow: none;
|
17029
|
+
}
|
17030
|
+
|
16506
17031
|
/* Windows Application Menu */
|
16507
17032
|
.desktop--windows .application-menu {
|
16508
17033
|
background: rgba(248, 248, 248, 0.95);
|
@@ -16530,15 +17055,12 @@ li.selected,
|
|
16530
17055
|
|
16531
17056
|
.desktop--windows .application-menu__category {
|
16532
17057
|
background: #ffffff;
|
16533
|
-
border: 1px solid #e0e0e0;
|
16534
|
-
border-radius: 16px;
|
16535
17058
|
font-family: 'Segoe UI', sans-serif;
|
16536
17059
|
font-size: 13px;
|
16537
17060
|
}
|
16538
17061
|
|
16539
17062
|
.desktop--windows .application-menu__category:hover {
|
16540
17063
|
background: #f5f5f5;
|
16541
|
-
border-color: #d0d0d0;
|
16542
17064
|
}
|
16543
17065
|
|
16544
17066
|
.desktop--windows .application-menu__category.active {
|
@@ -16703,6 +17225,61 @@ li.selected,
|
|
16703
17225
|
border-color: rgba(53, 132, 228, 0.5);
|
16704
17226
|
}
|
16705
17227
|
|
17228
|
+
/* Linux Start Button Styling (GNOME Activities) */
|
17229
|
+
.desktop--linux .toggle-button {
|
17230
|
+
/* Reset selector styles and apply Linux button styling */
|
17231
|
+
position: relative;
|
17232
|
+
padding: 8px 16px;
|
17233
|
+
display: flex;
|
17234
|
+
align-items: center;
|
17235
|
+
justify-content: center;
|
17236
|
+
gap: 8px;
|
17237
|
+
overflow: hidden;
|
17238
|
+
border: 1px solid rgba(255, 255, 255, 0.15);
|
17239
|
+
outline: none;
|
17240
|
+
transition: all 0.3s ease;
|
17241
|
+
color: #ffffff;
|
17242
|
+
background: linear-gradient(180deg, rgba(53, 132, 228, 0.9) 0%, rgba(26, 95, 180, 0.9) 100%);
|
17243
|
+
min-height: 40px;
|
17244
|
+
border-radius: 8px;
|
17245
|
+
cursor: pointer;
|
17246
|
+
font-family: 'Ubuntu', 'Cantarell', sans-serif;
|
17247
|
+
font-weight: 500;
|
17248
|
+
text-decoration: none;
|
17249
|
+
white-space: nowrap;
|
17250
|
+
list-style: none;
|
17251
|
+
margin: 0;
|
17252
|
+
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
17253
|
+
}
|
17254
|
+
|
17255
|
+
.desktop--linux .toggle-button:hover:not(.toggle-button--disabled) {
|
17256
|
+
background: linear-gradient(180deg, rgba(53, 132, 228, 1) 0%, rgba(26, 95, 180, 1) 100%);
|
17257
|
+
border-color: rgba(255, 255, 255, 0.25);
|
17258
|
+
transform: translateY(-1px);
|
17259
|
+
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.25);
|
17260
|
+
}
|
17261
|
+
|
17262
|
+
.desktop--linux .toggle-button.selected {
|
17263
|
+
background: linear-gradient(180deg, rgba(26, 95, 180, 0.9) 0%, rgba(15, 70, 140, 0.9) 100%);
|
17264
|
+
color: #ffffff;
|
17265
|
+
border-color: rgba(255, 255, 255, 0.3);
|
17266
|
+
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.3), 0 2px 4px rgba(53, 132, 228, 0.4);
|
17267
|
+
}
|
17268
|
+
|
17269
|
+
.desktop--linux .toggle-button:focus {
|
17270
|
+
outline: 2px solid rgba(53, 132, 228, 0.6);
|
17271
|
+
outline-offset: 2px;
|
17272
|
+
}
|
17273
|
+
|
17274
|
+
.desktop--linux .toggle-button--disabled {
|
17275
|
+
background: rgba(255, 255, 255, 0.1) !important;
|
17276
|
+
color: rgba(255, 255, 255, 0.4) !important;
|
17277
|
+
border-color: rgba(255, 255, 255, 0.05) !important;
|
17278
|
+
cursor: not-allowed;
|
17279
|
+
opacity: 1;
|
17280
|
+
box-shadow: none;
|
17281
|
+
}
|
17282
|
+
|
16706
17283
|
/* Linux Application Menu (Activities Overview) */
|
16707
17284
|
.desktop--linux .application-menu {
|
16708
17285
|
background: rgba(36, 31, 49, 0.95);
|
@@ -16958,6 +17535,63 @@ li.selected,
|
|
16958
17535
|
color: #007aff;
|
16959
17536
|
}
|
16960
17537
|
|
17538
|
+
/* macOS Start Button Styling (Dock-inspired) */
|
17539
|
+
.desktop--macos .toggle-button {
|
17540
|
+
/* Reset selector styles and apply macOS button styling */
|
17541
|
+
position: relative;
|
17542
|
+
padding: 8px 16px;
|
17543
|
+
display: flex;
|
17544
|
+
align-items: center;
|
17545
|
+
justify-content: center;
|
17546
|
+
gap: 8px;
|
17547
|
+
overflow: hidden;
|
17548
|
+
border: 1px solid rgba(0, 0, 0, 0.1);
|
17549
|
+
outline: none;
|
17550
|
+
transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
|
17551
|
+
color: #1d1d1f;
|
17552
|
+
background: linear-gradient(180deg, rgba(255, 255, 255, 0.9) 0%, rgba(248, 248, 248, 0.9) 100%);
|
17553
|
+
min-height: 40px;
|
17554
|
+
border-radius: 12px;
|
17555
|
+
cursor: pointer;
|
17556
|
+
font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', sans-serif;
|
17557
|
+
font-weight: 500;
|
17558
|
+
text-decoration: none;
|
17559
|
+
white-space: nowrap;
|
17560
|
+
list-style: none;
|
17561
|
+
margin: 0;
|
17562
|
+
backdrop-filter: blur(20px);
|
17563
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
17564
|
+
}
|
17565
|
+
|
17566
|
+
.desktop--macos .toggle-button:hover:not(.toggle-button--disabled) {
|
17567
|
+
background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(245, 245, 245, 0.95) 100%);
|
17568
|
+
border-color: rgba(0, 0, 0, 0.15);
|
17569
|
+
transform: translateY(-1px);
|
17570
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
17571
|
+
}
|
17572
|
+
|
17573
|
+
.desktop--macos .toggle-button.selected {
|
17574
|
+
background: linear-gradient(180deg, rgba(0, 122, 255, 0.9) 0%, rgba(0, 100, 210, 0.9) 100%);
|
17575
|
+
color: white;
|
17576
|
+
border-color: rgba(0, 122, 255, 0.3);
|
17577
|
+
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2), 0 2px 8px rgba(0, 122, 255, 0.3);
|
17578
|
+
}
|
17579
|
+
|
17580
|
+
.desktop--macos .toggle-button:focus {
|
17581
|
+
outline: 2px solid rgba(0, 122, 255, 0.5);
|
17582
|
+
outline-offset: 2px;
|
17583
|
+
}
|
17584
|
+
|
17585
|
+
.desktop--macos .toggle-button--disabled {
|
17586
|
+
background: rgba(248, 248, 248, 0.5) !important;
|
17587
|
+
color: rgba(60, 60, 67, 0.3) !important;
|
17588
|
+
border-color: rgba(0, 0, 0, 0.05) !important;
|
17589
|
+
cursor: not-allowed;
|
17590
|
+
opacity: 1;
|
17591
|
+
box-shadow: none;
|
17592
|
+
backdrop-filter: none;
|
17593
|
+
}
|
17594
|
+
|
16961
17595
|
/* macOS Application Menu (Launchpad-inspired) */
|
16962
17596
|
.desktop--macos .application-menu {
|
16963
17597
|
background: rgba(255, 255, 255, 0.9);
|