@tutti-os/workbench-surface 0.0.14 → 0.0.16

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.
@@ -98,6 +98,31 @@
98
98
  height 0.22s cubic-bezier(0.4, 0, 0.2, 1);
99
99
  }
100
100
 
101
+ /* 应用打开时从底部进入并展开的动画。仅命中带 onboarding-auto 标记的节点,
102
+ 使用独立的 translate/scale 属性(不占用 transform,避免与 mission-control
103
+ 的 matrix 变换冲突)。 */
104
+ @keyframes workbench-shell-enter {
105
+ from {
106
+ opacity: 0;
107
+ translate: 0 56px;
108
+ scale: 0.9;
109
+ }
110
+ to {
111
+ opacity: 1;
112
+ translate: 0 0;
113
+ scale: 1;
114
+ }
115
+ }
116
+ .workbench-window-shell[data-launch-source="onboarding-auto"][data-presentation-mode="default"][data-genie-state="visible"] {
117
+ transform-origin: bottom center;
118
+ animation: workbench-shell-enter 0.46s cubic-bezier(0.22, 1, 0.36, 1) both;
119
+ }
120
+ @media (prefers-reduced-motion: reduce) {
121
+ .workbench-window-shell[data-launch-source="onboarding-auto"] {
122
+ animation: none;
123
+ }
124
+ }
125
+
101
126
  .workbench-window-shell[data-presentation-mode="mission-control"] {
102
127
  pointer-events: auto;
103
128
  will-change: transform;
@@ -214,7 +239,15 @@
214
239
  .workbench-window[data-display-mode="fullscreen"]:has(
215
240
  .workbench-window__header-reveal-zone:hover
216
241
  )
217
- .workbench-window__header,
242
+ .workbench-window__header {
243
+ opacity: 1;
244
+ transform: translateY(0);
245
+ pointer-events: auto;
246
+ transition:
247
+ opacity 0.16s ease 0.5s,
248
+ transform 0.2s cubic-bezier(0.4, 0, 0.2, 1) 0.5s;
249
+ }
250
+
218
251
  .workbench-window[data-display-mode="fullscreen"]:has(
219
252
  .workbench-window__header:hover
220
253
  )
@@ -235,7 +268,7 @@
235
268
  right: 0;
236
269
  left: 0;
237
270
  z-index: 2;
238
- height: 22px;
271
+ height: 8px;
239
272
  pointer-events: auto;
240
273
  }
241
274
 
@@ -1297,6 +1330,9 @@
1297
1330
  }
1298
1331
 
1299
1332
  .desktop-dock__icon-shell {
1333
+ --desktop-dock-loading-badge-offset: -3.6px;
1334
+ --desktop-dock-loading-badge-size: 16.2px;
1335
+ --desktop-dock-loading-spinner-size: 9px;
1300
1336
  position: relative;
1301
1337
  box-sizing: border-box;
1302
1338
  display: inline-flex;
@@ -1322,11 +1358,11 @@
1322
1358
  .desktop-dock__icon-shell[data-entry-state="loading"]::before,
1323
1359
  .desktop-dock__count-badge {
1324
1360
  position: absolute;
1325
- right: -3.6px;
1326
- bottom: -3.6px;
1361
+ right: var(--desktop-dock-loading-badge-offset);
1362
+ bottom: var(--desktop-dock-loading-badge-offset);
1327
1363
  display: inline-flex;
1328
- min-width: 16.2px;
1329
- height: 16.2px;
1364
+ min-width: var(--desktop-dock-loading-badge-size);
1365
+ height: var(--desktop-dock-loading-badge-size);
1330
1366
  align-items: center;
1331
1367
  justify-content: center;
1332
1368
  padding: 0 4.5px;
@@ -1338,7 +1374,7 @@
1338
1374
 
1339
1375
  .desktop-dock__icon-shell[data-entry-state="loading"]::before {
1340
1376
  box-sizing: border-box;
1341
- width: 16.2px;
1377
+ width: var(--desktop-dock-loading-badge-size);
1342
1378
  min-width: 0;
1343
1379
  padding: 0;
1344
1380
  content: "";
@@ -1381,11 +1417,25 @@
1381
1417
 
1382
1418
  .desktop-dock__icon-shell[data-entry-state="loading"]::after {
1383
1419
  position: absolute;
1384
- right: 0;
1385
- bottom: 0;
1420
+ right: calc(
1421
+ var(--desktop-dock-loading-badge-offset) +
1422
+ (
1423
+ var(--desktop-dock-loading-badge-size) -
1424
+ var(--desktop-dock-loading-spinner-size)
1425
+ ) /
1426
+ 2
1427
+ );
1428
+ bottom: calc(
1429
+ var(--desktop-dock-loading-badge-offset) +
1430
+ (
1431
+ var(--desktop-dock-loading-badge-size) -
1432
+ var(--desktop-dock-loading-spinner-size)
1433
+ ) /
1434
+ 2
1435
+ );
1386
1436
  box-sizing: border-box;
1387
- width: 9px;
1388
- height: 9px;
1437
+ width: var(--desktop-dock-loading-spinner-size);
1438
+ height: var(--desktop-dock-loading-spinner-size);
1389
1439
  border: 1.8px solid color-mix(in srgb, var(--text-inverted) 36%, transparent);
1390
1440
  border-top-color: var(--text-inverted);
1391
1441
  border-radius: 999px;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tutti-os/workbench-surface",
3
- "version": "0.0.14",
3
+ "version": "0.0.16",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "types": "./dist/index.d.ts",
@@ -34,10 +34,10 @@
34
34
  "@tutti-os/config-tsconfig": "0.0.0"
35
35
  },
36
36
  "dependencies": {
37
- "@tutti-os/ui-i18n-runtime": "0.0.14",
38
- "@tutti-os/ui-react-hooks": "0.0.14",
39
- "@tutti-os/workbench-snapshot": "0.0.14",
40
- "@tutti-os/ui-system": "0.0.14"
37
+ "@tutti-os/ui-i18n-runtime": "0.0.16",
38
+ "@tutti-os/ui-react-hooks": "0.0.16",
39
+ "@tutti-os/workbench-snapshot": "0.0.16",
40
+ "@tutti-os/ui-system": "0.0.16"
41
41
  },
42
42
  "peerDependencies": {
43
43
  "react": "^19.1.0",
@@ -49,6 +49,6 @@
49
49
  "scripts": {
50
50
  "build": "tsup --config tsup.config.ts && node ../../../tools/scripts/copy-package-assets.mjs src/styles dist/styles",
51
51
  "test": "node --test --experimental-strip-types ./src/**/*.test.ts",
52
- "typecheck": "tsc --noEmit -p tsconfig.json"
52
+ "typecheck": "node ../../../tools/scripts/run-tsgo-typecheck.mjs"
53
53
  }
54
54
  }