@tutti-os/workbench-surface 0.0.18 → 0.0.20
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/{chunk-64XVF4I6.js → chunk-B5MSA47V.js} +19 -1
- package/dist/chunk-B5MSA47V.js.map +1 -0
- package/dist/i18n/index.d.ts +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/index.d.ts +18 -4
- package/dist/index.js +734 -135
- package/dist/index.js.map +1 -1
- package/dist/styles/workbench.css +112 -10
- package/dist/styles/workbenchStyle.test.ts +59 -1
- package/dist/{workbenchHostI18n-5xMPPBkf.d.ts → workbenchHostI18n-YFXDkIA1.d.ts} +1 -1
- package/package.json +5 -5
- package/dist/chunk-64XVF4I6.js.map +0 -1
|
@@ -129,6 +129,12 @@
|
|
|
129
129
|
backface-visibility: hidden;
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
+
.workbench-window-shell[data-presentation-visibility="hidden"] {
|
|
133
|
+
visibility: hidden;
|
|
134
|
+
opacity: 0;
|
|
135
|
+
pointer-events: none;
|
|
136
|
+
}
|
|
137
|
+
|
|
132
138
|
.workbench-window-shell[data-presentation-mode="mission-control"]
|
|
133
139
|
.workbench-window-shell__content {
|
|
134
140
|
pointer-events: none;
|
|
@@ -1173,12 +1179,33 @@
|
|
|
1173
1179
|
animation-name: desktop-dock-minimized-icon-appear-left;
|
|
1174
1180
|
}
|
|
1175
1181
|
|
|
1176
|
-
.desktop-dock__slot[data-presence="exiting"]
|
|
1182
|
+
.desktop-dock__slot[data-presence="exiting"] {
|
|
1183
|
+
min-width: 0;
|
|
1184
|
+
animation: desktop-dock-slot-collapse 600ms cubic-bezier(0.4, 0, 0.2, 1) both;
|
|
1185
|
+
pointer-events: none;
|
|
1186
|
+
}
|
|
1187
|
+
|
|
1188
|
+
.desktop-dock[data-dock-placement="left"]
|
|
1189
|
+
.desktop-dock__slot[data-presence="exiting"] {
|
|
1190
|
+
min-height: 0;
|
|
1191
|
+
animation-name: desktop-dock-slot-collapse-left;
|
|
1192
|
+
}
|
|
1193
|
+
|
|
1194
|
+
.desktop-dock__slot[data-presence="exiting"] .desktop-dock__icon-shell {
|
|
1195
|
+
animation: desktop-dock-presence-exit 420ms cubic-bezier(0.4, 0, 0.2, 1) both;
|
|
1196
|
+
}
|
|
1197
|
+
|
|
1177
1198
|
.desktop-dock__separator[data-presence="exiting"] {
|
|
1178
|
-
animation: desktop-dock-
|
|
1199
|
+
animation: desktop-dock-separator-collapse 600ms cubic-bezier(0.4, 0, 0.2, 1)
|
|
1200
|
+
both;
|
|
1179
1201
|
pointer-events: none;
|
|
1180
1202
|
}
|
|
1181
1203
|
|
|
1204
|
+
.desktop-dock[data-dock-placement="left"]
|
|
1205
|
+
.desktop-dock__separator[data-presence="exiting"] {
|
|
1206
|
+
animation-name: desktop-dock-separator-collapse-left;
|
|
1207
|
+
}
|
|
1208
|
+
|
|
1182
1209
|
.desktop-dock__slot--minimized[data-collapsing="true"],
|
|
1183
1210
|
.desktop-dock__slot--minimized[data-presence="exiting"] {
|
|
1184
1211
|
min-width: 0;
|
|
@@ -1195,6 +1222,11 @@
|
|
|
1195
1222
|
animation-name: desktop-dock-minimized-slot-collapse-left;
|
|
1196
1223
|
}
|
|
1197
1224
|
|
|
1225
|
+
.desktop-dock__slot--minimized[data-presence="exiting"]
|
|
1226
|
+
.desktop-dock__icon-shell {
|
|
1227
|
+
animation: none;
|
|
1228
|
+
}
|
|
1229
|
+
|
|
1198
1230
|
.desktop-dock__slot--minimized[data-collapsing="true"]::before,
|
|
1199
1231
|
.desktop-dock__slot--minimized[data-presence="exiting"]::before {
|
|
1200
1232
|
opacity: 0;
|
|
@@ -1255,17 +1287,31 @@
|
|
|
1255
1287
|
|
|
1256
1288
|
.desktop-dock__slot[data-node-state="open"]::before,
|
|
1257
1289
|
.desktop-dock__slot[data-node-state="minimized"]::before {
|
|
1290
|
+
--desktop-dock-indicator-color: var(--text-tertiary);
|
|
1258
1291
|
position: absolute;
|
|
1259
|
-
bottom: var(--desktop-dock-indicator-offset);
|
|
1292
|
+
bottom: calc(var(--desktop-dock-indicator-offset) - 2px);
|
|
1260
1293
|
left: 50%;
|
|
1261
|
-
width:
|
|
1262
|
-
height:
|
|
1294
|
+
width: 5px;
|
|
1295
|
+
height: 5px;
|
|
1263
1296
|
border-radius: 999px;
|
|
1264
|
-
background: var(--
|
|
1297
|
+
background: var(--desktop-dock-indicator-color);
|
|
1298
|
+
box-shadow: 0 0 0 0.5px rgb(0 0 0 / 12%);
|
|
1265
1299
|
content: "";
|
|
1266
1300
|
transform: translateX(-50%);
|
|
1267
1301
|
}
|
|
1268
1302
|
|
|
1303
|
+
.desktop-dock__slot[data-node-state="open"][data-wallpaper-tone="dark"]::before,
|
|
1304
|
+
.desktop-dock__slot[data-node-state="minimized"][data-wallpaper-tone="dark"]::before {
|
|
1305
|
+
--desktop-dock-indicator-color: rgb(255 255 255 / 78%);
|
|
1306
|
+
box-shadow: 0 0 0 0.5px rgb(0 0 0 / 42%);
|
|
1307
|
+
}
|
|
1308
|
+
|
|
1309
|
+
.desktop-dock__slot[data-node-state="open"][data-wallpaper-tone="light"]::before,
|
|
1310
|
+
.desktop-dock__slot[data-node-state="minimized"][data-wallpaper-tone="light"]::before {
|
|
1311
|
+
--desktop-dock-indicator-color: rgb(0 0 0 / 46%);
|
|
1312
|
+
box-shadow: 0 0 0 0.5px rgb(255 255 255 / 58%);
|
|
1313
|
+
}
|
|
1314
|
+
|
|
1269
1315
|
.desktop-dock[data-dock-placement="left"]
|
|
1270
1316
|
.desktop-dock__slot[data-node-state="open"]::before,
|
|
1271
1317
|
.desktop-dock[data-dock-placement="left"]
|
|
@@ -1273,12 +1319,12 @@
|
|
|
1273
1319
|
top: 50%;
|
|
1274
1320
|
right: auto;
|
|
1275
1321
|
bottom: auto;
|
|
1276
|
-
left: var(--desktop-dock-indicator-offset);
|
|
1322
|
+
left: calc(var(--desktop-dock-indicator-offset) - 2px);
|
|
1277
1323
|
transform: translateY(-50%);
|
|
1278
1324
|
}
|
|
1279
1325
|
|
|
1280
1326
|
.desktop-dock__slot[data-node-state="minimized"]::before {
|
|
1281
|
-
|
|
1327
|
+
opacity: 0.72;
|
|
1282
1328
|
}
|
|
1283
1329
|
|
|
1284
1330
|
.desktop-dock__btn {
|
|
@@ -2201,6 +2247,62 @@ body[data-desktop-dock-minimized-stack-open="true"] .desktop-dock {
|
|
|
2201
2247
|
}
|
|
2202
2248
|
}
|
|
2203
2249
|
|
|
2250
|
+
@keyframes desktop-dock-slot-collapse {
|
|
2251
|
+
from {
|
|
2252
|
+
width: var(--desktop-dock-size);
|
|
2253
|
+
height: var(--desktop-dock-size);
|
|
2254
|
+
margin-inline: 0;
|
|
2255
|
+
}
|
|
2256
|
+
|
|
2257
|
+
to {
|
|
2258
|
+
width: 0;
|
|
2259
|
+
height: var(--desktop-dock-size);
|
|
2260
|
+
margin-inline: calc(var(--desktop-dock-gap) / -2);
|
|
2261
|
+
}
|
|
2262
|
+
}
|
|
2263
|
+
|
|
2264
|
+
@keyframes desktop-dock-slot-collapse-left {
|
|
2265
|
+
from {
|
|
2266
|
+
width: var(--desktop-dock-size);
|
|
2267
|
+
height: var(--desktop-dock-size);
|
|
2268
|
+
margin-block: 0;
|
|
2269
|
+
}
|
|
2270
|
+
|
|
2271
|
+
to {
|
|
2272
|
+
width: var(--desktop-dock-size);
|
|
2273
|
+
height: 0;
|
|
2274
|
+
margin-block: calc(var(--desktop-dock-gap) / -2);
|
|
2275
|
+
}
|
|
2276
|
+
}
|
|
2277
|
+
|
|
2278
|
+
@keyframes desktop-dock-separator-collapse {
|
|
2279
|
+
from {
|
|
2280
|
+
width: 1px;
|
|
2281
|
+
margin-inline: 4px;
|
|
2282
|
+
opacity: 1;
|
|
2283
|
+
}
|
|
2284
|
+
|
|
2285
|
+
to {
|
|
2286
|
+
width: 0;
|
|
2287
|
+
margin-inline: calc(var(--desktop-dock-gap) / -2);
|
|
2288
|
+
opacity: 0;
|
|
2289
|
+
}
|
|
2290
|
+
}
|
|
2291
|
+
|
|
2292
|
+
@keyframes desktop-dock-separator-collapse-left {
|
|
2293
|
+
from {
|
|
2294
|
+
height: 1px;
|
|
2295
|
+
margin-block: 4px;
|
|
2296
|
+
opacity: 1;
|
|
2297
|
+
}
|
|
2298
|
+
|
|
2299
|
+
to {
|
|
2300
|
+
height: 0;
|
|
2301
|
+
margin-block: calc(var(--desktop-dock-gap) / -2);
|
|
2302
|
+
opacity: 0;
|
|
2303
|
+
}
|
|
2304
|
+
}
|
|
2305
|
+
|
|
2204
2306
|
@keyframes desktop-dock-minimized-slot-expand {
|
|
2205
2307
|
from {
|
|
2206
2308
|
width: 0;
|
|
@@ -2411,7 +2513,7 @@ body[data-desktop-dock-minimized-stack-open="true"] .desktop-dock {
|
|
|
2411
2513
|
translate: 0 0;
|
|
2412
2514
|
}
|
|
2413
2515
|
45% {
|
|
2414
|
-
translate: 0 -
|
|
2516
|
+
translate: 0 -14px;
|
|
2415
2517
|
}
|
|
2416
2518
|
}
|
|
2417
2519
|
|
|
@@ -2421,7 +2523,7 @@ body[data-desktop-dock-minimized-stack-open="true"] .desktop-dock {
|
|
|
2421
2523
|
translate: 0 0;
|
|
2422
2524
|
}
|
|
2423
2525
|
45% {
|
|
2424
|
-
translate:
|
|
2526
|
+
translate: 14px 0;
|
|
2425
2527
|
}
|
|
2426
2528
|
}
|
|
2427
2529
|
|
|
@@ -12,6 +12,44 @@ test("floating window bodies do not reserve a right-side content margin", () =>
|
|
|
12
12
|
);
|
|
13
13
|
});
|
|
14
14
|
|
|
15
|
+
test("mission control hidden presentation windows are invisible and inert", () => {
|
|
16
|
+
const css = readFileSync(resolve("src/styles/workbench.css"), "utf8");
|
|
17
|
+
|
|
18
|
+
assert.match(
|
|
19
|
+
css,
|
|
20
|
+
/\.workbench-window-shell\[data-presentation-visibility="hidden"\]\s*{[^}]*visibility:\s*hidden;[^}]*opacity:\s*0;[^}]*pointer-events:\s*none;/s
|
|
21
|
+
);
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
test("dock retained entry removal animates width and icon exit", () => {
|
|
25
|
+
const css = readFileSync(resolve("src/styles/workbench.css"), "utf8");
|
|
26
|
+
|
|
27
|
+
assert.match(
|
|
28
|
+
css,
|
|
29
|
+
/\.desktop-dock-plate\s*{[^}]*transition:\s*width 220ms cubic-bezier\(0\.22, 1, 0\.36, 1\);/s
|
|
30
|
+
);
|
|
31
|
+
assert.match(
|
|
32
|
+
css,
|
|
33
|
+
/\.desktop-dock\[data-dock-placement="left"\]\s*{[^}]*transition:\s*height 600ms cubic-bezier\(0\.16, 1, 0\.3, 1\);/s
|
|
34
|
+
);
|
|
35
|
+
assert.match(
|
|
36
|
+
css,
|
|
37
|
+
/\.desktop-dock__slot\[data-presence="exiting"\]\s*{[^}]*animation:\s*desktop-dock-slot-collapse 600ms cubic-bezier\(0\.4, 0, 0\.2, 1\)[^}]*both;/s
|
|
38
|
+
);
|
|
39
|
+
assert.match(
|
|
40
|
+
css,
|
|
41
|
+
/\.desktop-dock__slot\[data-presence="exiting"\]\s+\.desktop-dock__icon-shell\s*{[^}]*animation:\s*desktop-dock-presence-exit 420ms cubic-bezier\(0\.4, 0, 0\.2, 1\)[^}]*both;/s
|
|
42
|
+
);
|
|
43
|
+
assert.match(
|
|
44
|
+
css,
|
|
45
|
+
/\.desktop-dock__separator\[data-presence="exiting"\]\s*{[^}]*animation:\s*desktop-dock-separator-collapse 600ms/s
|
|
46
|
+
);
|
|
47
|
+
assert.match(css, /@keyframes desktop-dock-slot-collapse/);
|
|
48
|
+
assert.match(css, /@keyframes desktop-dock-slot-collapse-left/);
|
|
49
|
+
assert.match(css, /@keyframes desktop-dock-separator-collapse/);
|
|
50
|
+
assert.match(css, /@keyframes desktop-dock-separator-collapse-left/);
|
|
51
|
+
});
|
|
52
|
+
|
|
15
53
|
test("left dock placement owns vertical frame and popup placement styles", () => {
|
|
16
54
|
const css = readFileSync(resolve("src/styles/workbench.css"), "utf8");
|
|
17
55
|
|
|
@@ -62,7 +100,19 @@ test("left dock placement owns vertical frame and popup placement styles", () =>
|
|
|
62
100
|
assert.doesNotMatch(css, /desktop-dock-left-stack-card-fan-in/);
|
|
63
101
|
assert.match(
|
|
64
102
|
css,
|
|
65
|
-
/\.desktop-dock\[data-dock-placement="left"\]\s+\.desktop-dock__slot\[data-node-state="open"\]::before,[\s\S]*?\.desktop-dock\[data-dock-placement="left"\]\s+\.desktop-dock__slot\[data-node-state="minimized"\]::before\s*{[^}]*right:\s*auto;[^}]*left:\s*var\(--desktop-dock-indicator-offset\);/s
|
|
103
|
+
/\.desktop-dock\[data-dock-placement="left"\]\s+\.desktop-dock__slot\[data-node-state="open"\]::before,[\s\S]*?\.desktop-dock\[data-dock-placement="left"\]\s+\.desktop-dock__slot\[data-node-state="minimized"\]::before\s*{[^}]*right:\s*auto;[^}]*left:\s*calc\(var\(--desktop-dock-indicator-offset\) - 2px\);/s
|
|
104
|
+
);
|
|
105
|
+
assert.match(
|
|
106
|
+
css,
|
|
107
|
+
/\.desktop-dock__slot\[data-node-state="open"\]::before,[\s\S]*?\.desktop-dock__slot\[data-node-state="minimized"\]::before\s*{[^}]*--desktop-dock-indicator-color:\s*var\(--text-tertiary\);[^}]*bottom:\s*calc\(var\(--desktop-dock-indicator-offset\) - 2px\);[^}]*width:\s*5px;[^}]*height:\s*5px;[^}]*background:\s*var\(--desktop-dock-indicator-color\);[^}]*box-shadow:\s*0 0 0 0\.5px rgb\(0 0 0 \/ 12%\);/s
|
|
108
|
+
);
|
|
109
|
+
assert.match(
|
|
110
|
+
css,
|
|
111
|
+
/\.desktop-dock__slot\[data-node-state="open"\]\[data-wallpaper-tone="dark"\]::before,[\s\S]*?\.desktop-dock__slot\[data-node-state="minimized"\]\[data-wallpaper-tone="dark"\]::before\s*{[^}]*--desktop-dock-indicator-color:\s*rgb\(255 255 255 \/ 78%\);[^}]*box-shadow:\s*0 0 0 0\.5px rgb\(0 0 0 \/ 42%\);/s
|
|
112
|
+
);
|
|
113
|
+
assert.match(
|
|
114
|
+
css,
|
|
115
|
+
/\.desktop-dock__slot\[data-node-state="open"\]\[data-wallpaper-tone="light"\]::before,[\s\S]*?\.desktop-dock__slot\[data-node-state="minimized"\]\[data-wallpaper-tone="light"\]::before\s*{[^}]*--desktop-dock-indicator-color:\s*rgb\(0 0 0 \/ 46%\);[^}]*box-shadow:\s*0 0 0 0\.5px rgb\(255 255 255 \/ 58%\);/s
|
|
66
116
|
);
|
|
67
117
|
});
|
|
68
118
|
|
|
@@ -247,6 +297,14 @@ test("dock overflow keeps scroll controls viewport-bound", () => {
|
|
|
247
297
|
/\.desktop-dock\[data-dock-hover-panel-open="true"\]\s+\.desktop-dock__items\s*{[^}]*mask-image:\s*none;/s
|
|
248
298
|
);
|
|
249
299
|
assert.match(css, /@keyframes desktop-dock-bounce-translate/s);
|
|
300
|
+
assert.match(
|
|
301
|
+
css,
|
|
302
|
+
/@keyframes desktop-dock-bounce-translate\s*{[\s\S]*?45%\s*{[^}]*translate:\s*0 -14px;/s
|
|
303
|
+
);
|
|
304
|
+
assert.match(
|
|
305
|
+
css,
|
|
306
|
+
/@keyframes desktop-dock-bounce-translate-left\s*{[\s\S]*?45%\s*{[^}]*translate:\s*14px 0;/s
|
|
307
|
+
);
|
|
250
308
|
assert.match(
|
|
251
309
|
css,
|
|
252
310
|
/\.desktop-dock__slot\[data-bouncing="true"\]\s+\.desktop-dock__icon-content,/s
|
|
@@ -12,7 +12,7 @@ declare const workbenchWindowChromeI18nResources: Record<WorkbenchWindowChromeI1
|
|
|
12
12
|
declare function createWorkbenchWindowChromeI18nRuntime(runtime: I18nRuntime<string> | undefined): WorkbenchWindowChromeI18nRuntime;
|
|
13
13
|
|
|
14
14
|
declare const workbenchHostI18nNamespace = "workbenchHost";
|
|
15
|
-
type WorkbenchHostI18nKey = "actions.close" | "actions.minimize" | "closeWindow" | "dockLabel" | "launch" | "minimizedWindows" | "newWindow" | "scrollDockDown" | "scrollDockLeft" | "scrollDockRight" | "scrollDockUp" | "windowStatus.active" | "windowStatus.minimized" | "windowStatus.open";
|
|
15
|
+
type WorkbenchHostI18nKey = "actions.close" | "actions.minimize" | "closeWindow" | "dockContextMenu.fullscreen" | "dockContextMenu.hide" | "dockContextMenu.keepInDock" | "dockContextMenu.open" | "dockContextMenu.quit" | "dockContextMenu.removeFromDock" | "dockContextMenu.showAllWindows" | "dockLabel" | "launch" | "minimizedWindows" | "newWindow" | "scrollDockDown" | "scrollDockLeft" | "scrollDockRight" | "scrollDockUp" | "windowStatus.active" | "windowStatus.minimized" | "windowStatus.open";
|
|
16
16
|
type WorkbenchHostI18nRuntime = I18nRuntime<WorkbenchHostI18nKey>;
|
|
17
17
|
declare const workbenchHostI18nResources: {
|
|
18
18
|
readonly en: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tutti-os/workbench-surface",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.20",
|
|
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.
|
|
38
|
-
"@tutti-os/ui-react-hooks": "0.0.
|
|
39
|
-
"@tutti-os/workbench-snapshot": "0.0.
|
|
40
|
-
"@tutti-os/ui-system": "0.0.
|
|
37
|
+
"@tutti-os/ui-i18n-runtime": "0.0.20",
|
|
38
|
+
"@tutti-os/ui-react-hooks": "0.0.20",
|
|
39
|
+
"@tutti-os/workbench-snapshot": "0.0.20",
|
|
40
|
+
"@tutti-os/ui-system": "0.0.20"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
43
|
"react": "^19.1.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/react/workbenchWindowI18n.ts","../src/mission-control/workbenchMissionControlI18n.ts","../src/host/workbenchHostI18n.ts"],"sourcesContent":["import {\n createScopedLocaleObjectsI18nModuleManifest,\n createI18nRuntime,\n createScopedI18nRuntime,\n type I18nDictionary,\n type I18nRuntime\n} from \"@tutti-os/ui-i18n-runtime\";\n\ntype WorkbenchWindowChromeI18nLocale = \"en\" | \"zh-CN\";\nexport const workbenchWindowChromeI18nNamespace = \"workbenchWindowChrome\";\nexport const tuttiI18nModule = createScopedLocaleObjectsI18nModuleManifest({\n localeObjectByLocale: {\n en: \"workbenchWindowChromeEn\",\n \"zh-CN\": \"workbenchWindowChromeZhCN\"\n },\n name: \"workbench-window-chrome\",\n namespace: \"workbenchWindowChrome\",\n sourceRoot: \"packages/workbench/surface/src\"\n});\n\nconst workbenchWindowChromeEn = {\n enterFullscreen: \"Full Screen\",\n exitFullscreen: \"Exit Full Screen\"\n} as const satisfies I18nDictionary;\n\nconst workbenchWindowChromeZhCN = {\n enterFullscreen: \"全屏\",\n exitFullscreen: \"取消全屏\"\n} as const satisfies I18nDictionary;\n\nexport type WorkbenchWindowChromeI18nKey = keyof typeof workbenchWindowChromeEn;\n\nexport type WorkbenchWindowChromeI18nRuntime =\n I18nRuntime<WorkbenchWindowChromeI18nKey>;\n\nconst workbenchWindowChromeDefaults: Record<\n WorkbenchWindowChromeI18nLocale,\n I18nDictionary\n> = {\n en: workbenchWindowChromeEn,\n \"zh-CN\": workbenchWindowChromeZhCN\n};\n\nexport const workbenchWindowChromeI18nResources: Record<\n WorkbenchWindowChromeI18nLocale,\n I18nDictionary\n> = {\n en: {\n [workbenchWindowChromeI18nNamespace]: workbenchWindowChromeDefaults.en\n },\n \"zh-CN\": {\n [workbenchWindowChromeI18nNamespace]: workbenchWindowChromeDefaults[\"zh-CN\"]\n }\n};\n\nconst defaultWorkbenchWindowChromeI18n = createI18nRuntime({\n dictionaries: [workbenchWindowChromeI18nResources.en]\n});\n\nexport function createWorkbenchWindowChromeI18nRuntime(\n runtime: I18nRuntime<string> | undefined\n): WorkbenchWindowChromeI18nRuntime {\n return createScopedI18nRuntime<WorkbenchWindowChromeI18nKey>(\n runtime ?? defaultWorkbenchWindowChromeI18n,\n workbenchWindowChromeI18nNamespace\n );\n}\n","import {\n createScopedLocaleObjectsI18nModuleManifest,\n createI18nRuntime,\n createScopedI18nRuntime,\n type I18nDictionary,\n type I18nRuntime\n} from \"@tutti-os/ui-i18n-runtime\";\n\ntype WorkbenchMissionControlI18nLocale = \"en\" | \"zh-CN\";\n\nexport const workbenchMissionControlI18nNamespace = \"workbenchMissionControl\";\n\nexport const tuttiI18nModule = createScopedLocaleObjectsI18nModuleManifest({\n localeObjectByLocale: {\n en: \"workbenchMissionControlEn\",\n \"zh-CN\": \"workbenchMissionControlZhCN\"\n },\n name: \"workbench-mission-control\",\n namespace: \"workbenchMissionControl\",\n sourceRoot: \"packages/workbench/surface/src\"\n});\n\nconst workbenchMissionControlEn = {\n layoutSelectionHint: \"Select multiple windows to arrange\",\n noAvailableLayout: \"No layout fits the selected windows\",\n presets: {\n balanced: \"Balanced layout\",\n column: \"Vertical equal layout\",\n row: \"Horizontal equal layout\"\n }\n} as const satisfies I18nDictionary;\n\nconst workbenchMissionControlZhCN = {\n layoutSelectionHint: \"请选择多个你要整理布局的窗口\",\n noAvailableLayout: \"当前没有可用布局\",\n presets: {\n balanced: \"智能均衡布局\",\n column: \"垂直等分布局\",\n row: \"水平等分布局\"\n }\n} as const satisfies I18nDictionary;\n\nexport type WorkbenchMissionControlI18nKey =\n | \"layoutSelectionHint\"\n | \"noAvailableLayout\"\n | \"presets.balanced\"\n | \"presets.column\"\n | \"presets.row\";\n\nexport type WorkbenchMissionControlI18nRuntime =\n I18nRuntime<WorkbenchMissionControlI18nKey>;\n\nconst workbenchMissionControlDefaults: Record<\n WorkbenchMissionControlI18nLocale,\n I18nDictionary\n> = {\n en: workbenchMissionControlEn,\n \"zh-CN\": workbenchMissionControlZhCN\n};\n\nexport const workbenchMissionControlI18nResources: Record<\n WorkbenchMissionControlI18nLocale,\n I18nDictionary\n> = {\n en: {\n [workbenchMissionControlI18nNamespace]: workbenchMissionControlDefaults.en\n },\n \"zh-CN\": {\n [workbenchMissionControlI18nNamespace]:\n workbenchMissionControlDefaults[\"zh-CN\"]\n }\n};\n\nconst defaultWorkbenchMissionControlI18n = createI18nRuntime({\n dictionaries: [workbenchMissionControlI18nResources.en]\n});\n\nexport function createWorkbenchMissionControlI18nRuntime(\n runtime: I18nRuntime<string> | undefined\n): WorkbenchMissionControlI18nRuntime {\n return createScopedI18nRuntime<WorkbenchMissionControlI18nKey>(\n runtime ?? defaultWorkbenchMissionControlI18n,\n workbenchMissionControlI18nNamespace\n );\n}\n","import {\n createScopedLocaleObjectsI18nModuleManifest,\n createI18nRuntime,\n createScopedI18nRuntime,\n type I18nDictionary,\n type I18nRuntime\n} from \"@tutti-os/ui-i18n-runtime\";\n\ntype WorkbenchHostI18nLocale = \"en\" | \"zh-CN\";\nexport const workbenchHostI18nNamespace = \"workbenchHost\";\nexport const tuttiI18nModule = createScopedLocaleObjectsI18nModuleManifest({\n localeObjectByLocale: {\n en: \"workbenchHostEn\",\n \"zh-CN\": \"workbenchHostZhCN\"\n },\n name: \"workbench-host\",\n namespace: \"workbenchHost\",\n sourceRoot: \"packages/workbench/surface/src\"\n});\n\nconst workbenchHostEn = {\n actions: {\n close: \"Close\",\n minimize: \"Minimize\"\n },\n closeWindow: \"Close {{title}}\",\n dockLabel: \"Workbench dock\",\n launch: \"Open {{title}}\",\n minimizedWindows: \"Minimized windows\",\n newWindow: \"New window\",\n scrollDockDown: \"Scroll dock down\",\n scrollDockLeft: \"Scroll dock left\",\n scrollDockRight: \"Scroll dock right\",\n scrollDockUp: \"Scroll dock up\",\n windowStatus: {\n active: \"Active\",\n minimized: \"Minimized\",\n open: \"Open\"\n }\n} as const satisfies I18nDictionary;\n\nconst workbenchHostZhCN = {\n actions: {\n close: \"关闭\",\n minimize: \"最小化\"\n },\n closeWindow: \"关闭 {{title}}\",\n dockLabel: \"工作台程序坞\",\n launch: \"打开 {{title}}\",\n minimizedWindows: \"已最小化窗口\",\n newWindow: \"新建窗口\",\n scrollDockDown: \"向下滚动程序坞\",\n scrollDockLeft: \"向左滚动程序坞\",\n scrollDockRight: \"向右滚动程序坞\",\n scrollDockUp: \"向上滚动程序坞\",\n windowStatus: {\n active: \"当前窗口\",\n minimized: \"已最小化\",\n open: \"已打开\"\n }\n} as const satisfies I18nDictionary;\n\nexport type WorkbenchHostI18nKey =\n | \"actions.close\"\n | \"actions.minimize\"\n | \"closeWindow\"\n | \"dockLabel\"\n | \"launch\"\n | \"minimizedWindows\"\n | \"newWindow\"\n | \"scrollDockDown\"\n | \"scrollDockLeft\"\n | \"scrollDockRight\"\n | \"scrollDockUp\"\n | \"windowStatus.active\"\n | \"windowStatus.minimized\"\n | \"windowStatus.open\";\n\nexport type WorkbenchHostI18nRuntime = I18nRuntime<WorkbenchHostI18nKey>;\n\nconst workbenchHostDefaults: Record<WorkbenchHostI18nLocale, I18nDictionary> = {\n en: workbenchHostEn,\n \"zh-CN\": workbenchHostZhCN\n};\n\nexport const workbenchHostI18nResources = {\n en: {\n [workbenchHostI18nNamespace]: workbenchHostDefaults.en\n },\n \"zh-CN\": {\n [workbenchHostI18nNamespace]: workbenchHostDefaults[\"zh-CN\"]\n }\n} as const satisfies Record<WorkbenchHostI18nLocale, I18nDictionary>;\n\nconst defaultWorkbenchHostI18n = createI18nRuntime({\n dictionaries: [workbenchHostI18nResources.en]\n});\n\nexport function createWorkbenchHostI18nRuntime(\n runtime: I18nRuntime<string> | undefined\n): WorkbenchHostI18nRuntime {\n return createScopedI18nRuntime<WorkbenchHostI18nKey>(\n runtime ?? defaultWorkbenchHostI18n,\n workbenchHostI18nNamespace\n );\n}\n"],"mappings":"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","names":["createScopedLocaleObjectsI18nModuleManifest","createI18nRuntime","createScopedI18nRuntime","tuttiI18nModule","createScopedLocaleObjectsI18nModuleManifest","createI18nRuntime","createScopedI18nRuntime","tuttiI18nModule"]}
|