@tutti-os/workbench-surface 0.0.2 → 0.0.3
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.d.ts +6 -1
- package/dist/index.js +417 -132
- package/dist/index.js.map +1 -1
- package/dist/styles/workbench.css +141 -10
- package/dist/styles/workbenchStyle.test.ts +23 -3
- package/package.json +5 -5
|
@@ -660,7 +660,7 @@
|
|
|
660
660
|
2
|
|
661
661
|
);
|
|
662
662
|
--desktop-dock-indicator-offset: -5.4px;
|
|
663
|
-
--desktop-dock-left-viewport-size:
|
|
663
|
+
--desktop-dock-left-viewport-size: 124px;
|
|
664
664
|
--desktop-dock-safe-inline: 64px;
|
|
665
665
|
--desktop-dock-viewport-size: 88px;
|
|
666
666
|
position: relative;
|
|
@@ -1074,16 +1074,53 @@
|
|
|
1074
1074
|
|
|
1075
1075
|
.desktop-dock__slot[data-presence="entering"],
|
|
1076
1076
|
.desktop-dock__separator[data-presence="entering"] {
|
|
1077
|
-
animation: desktop-dock-presence-enter
|
|
1077
|
+
animation: desktop-dock-presence-enter 600ms cubic-bezier(0.16, 1, 0.3, 1)
|
|
1078
1078
|
both;
|
|
1079
1079
|
}
|
|
1080
1080
|
|
|
1081
1081
|
.desktop-dock__slot--minimized[data-presence="entering"] {
|
|
1082
1082
|
min-width: 0;
|
|
1083
|
-
animation: desktop-dock-minimized-slot-expand
|
|
1083
|
+
animation: desktop-dock-minimized-slot-expand 720ms
|
|
1084
1084
|
cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
1085
1085
|
}
|
|
1086
1086
|
|
|
1087
|
+
.desktop-dock__slot--minimized[data-promoted-from-stack="true"][data-presence="entering"] {
|
|
1088
|
+
animation: none;
|
|
1089
|
+
}
|
|
1090
|
+
|
|
1091
|
+
.desktop-dock__slot--minimized[data-promoted-from-stack="true"][data-presence="entering"]
|
|
1092
|
+
.desktop-dock__minimized-preview {
|
|
1093
|
+
animation: none;
|
|
1094
|
+
}
|
|
1095
|
+
|
|
1096
|
+
.desktop-dock[data-dock-placement="left"]
|
|
1097
|
+
.desktop-dock__slot--minimized[data-promoted-from-stack="true"][data-presence="entering"] {
|
|
1098
|
+
animation: none;
|
|
1099
|
+
}
|
|
1100
|
+
|
|
1101
|
+
.desktop-dock[data-dock-placement="left"]
|
|
1102
|
+
.desktop-dock__slot--minimized[data-promoted-from-stack="true"][data-presence="entering"]
|
|
1103
|
+
.desktop-dock__minimized-preview {
|
|
1104
|
+
animation: none;
|
|
1105
|
+
}
|
|
1106
|
+
|
|
1107
|
+
.desktop-dock__slot--minimized[data-stack-dispatching="true"]
|
|
1108
|
+
.desktop-dock__minimized-stack-icon
|
|
1109
|
+
.desktop-dock__minimized-stack-layer--0:not(
|
|
1110
|
+
.desktop-dock__minimized-stack-layer-back
|
|
1111
|
+
) {
|
|
1112
|
+
animation: none;
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1115
|
+
.desktop-dock[data-dock-placement="left"]
|
|
1116
|
+
.desktop-dock__slot--minimized[data-stack-dispatching="true"]
|
|
1117
|
+
.desktop-dock__minimized-stack-icon
|
|
1118
|
+
.desktop-dock__minimized-stack-layer--0:not(
|
|
1119
|
+
.desktop-dock__minimized-stack-layer-back
|
|
1120
|
+
) {
|
|
1121
|
+
animation: none;
|
|
1122
|
+
}
|
|
1123
|
+
|
|
1087
1124
|
.desktop-dock[data-dock-placement="left"]
|
|
1088
1125
|
.desktop-dock__slot--minimized[data-presence="entering"] {
|
|
1089
1126
|
min-height: 0;
|
|
@@ -1094,7 +1131,7 @@
|
|
|
1094
1131
|
.desktop-dock__minimized-preview,
|
|
1095
1132
|
.desktop-dock__slot--minimized[data-presence="entering"]
|
|
1096
1133
|
.desktop-dock__minimized-stack-icon {
|
|
1097
|
-
animation: desktop-dock-minimized-icon-appear
|
|
1134
|
+
animation: desktop-dock-minimized-icon-appear 640ms
|
|
1098
1135
|
cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
1099
1136
|
}
|
|
1100
1137
|
|
|
@@ -1109,14 +1146,14 @@
|
|
|
1109
1146
|
|
|
1110
1147
|
.desktop-dock__slot[data-presence="exiting"],
|
|
1111
1148
|
.desktop-dock__separator[data-presence="exiting"] {
|
|
1112
|
-
animation: desktop-dock-presence-exit
|
|
1149
|
+
animation: desktop-dock-presence-exit 600ms cubic-bezier(0.7, 0, 0.84, 0) both;
|
|
1113
1150
|
pointer-events: none;
|
|
1114
1151
|
}
|
|
1115
1152
|
|
|
1116
1153
|
.desktop-dock__slot--minimized[data-collapsing="true"],
|
|
1117
1154
|
.desktop-dock__slot--minimized[data-presence="exiting"] {
|
|
1118
1155
|
min-width: 0;
|
|
1119
|
-
animation: desktop-dock-minimized-slot-collapse
|
|
1156
|
+
animation: desktop-dock-minimized-slot-collapse 720ms
|
|
1120
1157
|
cubic-bezier(0.4, 0, 0.2, 1) both;
|
|
1121
1158
|
pointer-events: none;
|
|
1122
1159
|
}
|
|
@@ -1142,7 +1179,7 @@
|
|
|
1142
1179
|
.desktop-dock__minimized-preview,
|
|
1143
1180
|
.desktop-dock__slot--minimized[data-presence="exiting"]
|
|
1144
1181
|
.desktop-dock__minimized-stack-icon {
|
|
1145
|
-
animation: desktop-dock-minimized-icon-disappear
|
|
1182
|
+
animation: desktop-dock-minimized-icon-disappear 640ms
|
|
1146
1183
|
cubic-bezier(0.4, 0, 0.2, 1) both;
|
|
1147
1184
|
}
|
|
1148
1185
|
|
|
@@ -1402,19 +1439,22 @@
|
|
|
1402
1439
|
background: var(--workbench-foreground);
|
|
1403
1440
|
}
|
|
1404
1441
|
|
|
1405
|
-
.desktop-dock__slot[data-attention-active="true"] .desktop-dock__icon-
|
|
1442
|
+
.desktop-dock__slot[data-attention-active="true"] .desktop-dock__icon-content {
|
|
1406
1443
|
animation: desktop-dock-bounce-translate 0.6s ease;
|
|
1407
1444
|
}
|
|
1408
1445
|
|
|
1409
|
-
.desktop-dock__slot[data-bouncing="true"] .desktop-dock__icon-
|
|
1446
|
+
.desktop-dock__slot[data-bouncing="true"] .desktop-dock__icon-content,
|
|
1410
1447
|
.desktop-dock__slot[data-bouncing="true"] .desktop-dock__minimized-preview,
|
|
1411
1448
|
.desktop-dock__slot[data-bouncing="true"] .desktop-dock__minimized-stack-icon {
|
|
1412
1449
|
animation: desktop-dock-bounce-translate 0.6s ease;
|
|
1413
1450
|
}
|
|
1414
1451
|
|
|
1452
|
+
.desktop-dock[data-dock-placement="left"]
|
|
1453
|
+
.desktop-dock__slot[data-attention-active="true"]
|
|
1454
|
+
.desktop-dock__icon-content,
|
|
1415
1455
|
.desktop-dock[data-dock-placement="left"]
|
|
1416
1456
|
.desktop-dock__slot[data-bouncing="true"]
|
|
1417
|
-
.desktop-dock__icon-
|
|
1457
|
+
.desktop-dock__icon-content,
|
|
1418
1458
|
.desktop-dock[data-dock-placement="left"]
|
|
1419
1459
|
.desktop-dock__slot[data-bouncing="true"]
|
|
1420
1460
|
.desktop-dock__minimized-preview,
|
|
@@ -1515,6 +1555,13 @@
|
|
|
1515
1555
|
z-index: var(--desktop-dock-stack-layer-z, 1);
|
|
1516
1556
|
}
|
|
1517
1557
|
|
|
1558
|
+
.desktop-dock:not([data-dock-pointer-active="true"])
|
|
1559
|
+
.desktop-dock__minimized-stack-layer {
|
|
1560
|
+
transition:
|
|
1561
|
+
transform 520ms cubic-bezier(0.16, 1, 0.3, 1),
|
|
1562
|
+
opacity 320ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
1563
|
+
}
|
|
1564
|
+
|
|
1518
1565
|
.desktop-dock[data-dock-placement="left"] .desktop-dock__minimized-stack-layer {
|
|
1519
1566
|
transform: translate(
|
|
1520
1567
|
var(--desktop-dock-stack-layer-x, 0),
|
|
@@ -2084,6 +2131,90 @@ body[data-desktop-dock-minimized-stack-open="true"] .desktop-dock {
|
|
|
2084
2131
|
}
|
|
2085
2132
|
}
|
|
2086
2133
|
|
|
2134
|
+
@keyframes desktop-dock-minimized-slot-promote {
|
|
2135
|
+
from {
|
|
2136
|
+
width: 0;
|
|
2137
|
+
height: var(--desktop-dock-size);
|
|
2138
|
+
margin-inline: calc(var(--desktop-dock-gap) / -2);
|
|
2139
|
+
opacity: 0;
|
|
2140
|
+
}
|
|
2141
|
+
|
|
2142
|
+
to {
|
|
2143
|
+
width: var(--desktop-dock-size);
|
|
2144
|
+
height: var(--desktop-dock-size);
|
|
2145
|
+
margin-inline: 0;
|
|
2146
|
+
opacity: 1;
|
|
2147
|
+
}
|
|
2148
|
+
}
|
|
2149
|
+
|
|
2150
|
+
@keyframes desktop-dock-minimized-slot-promote-left {
|
|
2151
|
+
from {
|
|
2152
|
+
width: var(--desktop-dock-size);
|
|
2153
|
+
height: 0;
|
|
2154
|
+
margin-block: calc(var(--desktop-dock-gap) / -2);
|
|
2155
|
+
opacity: 0;
|
|
2156
|
+
}
|
|
2157
|
+
|
|
2158
|
+
to {
|
|
2159
|
+
width: var(--desktop-dock-size);
|
|
2160
|
+
height: var(--desktop-dock-size);
|
|
2161
|
+
margin-block: 0;
|
|
2162
|
+
opacity: 1;
|
|
2163
|
+
}
|
|
2164
|
+
}
|
|
2165
|
+
|
|
2166
|
+
@keyframes desktop-dock-minimized-preview-promote {
|
|
2167
|
+
from {
|
|
2168
|
+
opacity: 0;
|
|
2169
|
+
translate: 28px 10px;
|
|
2170
|
+
scale: 0.88;
|
|
2171
|
+
}
|
|
2172
|
+
|
|
2173
|
+
to {
|
|
2174
|
+
opacity: 1;
|
|
2175
|
+
translate: 0 0;
|
|
2176
|
+
scale: 1;
|
|
2177
|
+
}
|
|
2178
|
+
}
|
|
2179
|
+
|
|
2180
|
+
@keyframes desktop-dock-minimized-preview-promote-left {
|
|
2181
|
+
from {
|
|
2182
|
+
opacity: 0;
|
|
2183
|
+
translate: 8px 28px;
|
|
2184
|
+
scale: 0.88;
|
|
2185
|
+
}
|
|
2186
|
+
|
|
2187
|
+
to {
|
|
2188
|
+
opacity: 1;
|
|
2189
|
+
translate: 0 0;
|
|
2190
|
+
scale: 1;
|
|
2191
|
+
}
|
|
2192
|
+
}
|
|
2193
|
+
|
|
2194
|
+
@keyframes desktop-dock-stack-layer-reveal {
|
|
2195
|
+
from {
|
|
2196
|
+
transform: translate(18px, 10px) scale(0.9);
|
|
2197
|
+
opacity: 0;
|
|
2198
|
+
}
|
|
2199
|
+
|
|
2200
|
+
to {
|
|
2201
|
+
transform: translate(0, 0) scale(1);
|
|
2202
|
+
opacity: 1;
|
|
2203
|
+
}
|
|
2204
|
+
}
|
|
2205
|
+
|
|
2206
|
+
@keyframes desktop-dock-stack-layer-reveal-left {
|
|
2207
|
+
from {
|
|
2208
|
+
transform: translate(8px, 18px) scale(0.9);
|
|
2209
|
+
opacity: 0;
|
|
2210
|
+
}
|
|
2211
|
+
|
|
2212
|
+
to {
|
|
2213
|
+
transform: translate(0, 0) scale(1);
|
|
2214
|
+
opacity: 1;
|
|
2215
|
+
}
|
|
2216
|
+
}
|
|
2217
|
+
|
|
2087
2218
|
@keyframes desktop-dock-minimized-icon-appear {
|
|
2088
2219
|
from {
|
|
2089
2220
|
opacity: 0;
|
|
@@ -87,7 +87,7 @@ test("dock overflow keeps scroll controls viewport-bound", () => {
|
|
|
87
87
|
);
|
|
88
88
|
assert.match(
|
|
89
89
|
css,
|
|
90
|
-
/\.desktop-dock-plate\s*{[^}]*--desktop-dock-left-viewport-size:\s*
|
|
90
|
+
/\.desktop-dock-plate\s*{[^}]*--desktop-dock-left-viewport-size:\s*124px;/s
|
|
91
91
|
);
|
|
92
92
|
assert.match(
|
|
93
93
|
css,
|
|
@@ -191,6 +191,14 @@ test("dock overflow keeps scroll controls viewport-bound", () => {
|
|
|
191
191
|
/\.desktop-dock\[data-dock-hover-panel-open="true"\]\s+\.desktop-dock__items\s*{[^}]*mask-image:\s*none;/s
|
|
192
192
|
);
|
|
193
193
|
assert.match(css, /@keyframes desktop-dock-bounce-translate/s);
|
|
194
|
+
assert.match(
|
|
195
|
+
css,
|
|
196
|
+
/\.desktop-dock__slot\[data-bouncing="true"\]\s+\.desktop-dock__icon-content,/s
|
|
197
|
+
);
|
|
198
|
+
assert.doesNotMatch(
|
|
199
|
+
css,
|
|
200
|
+
/\.desktop-dock__slot\[data-bouncing="true"\]\s+\.desktop-dock__icon-shell,/s
|
|
201
|
+
);
|
|
194
202
|
assert.match(
|
|
195
203
|
css,
|
|
196
204
|
/\.desktop-dock:not\(\[data-dock-pointer-active="true"\]\)\s+\.desktop-dock__btn\[data-interactive="true"\]:active\s*{[^}]*transform:\s*translateY\(-1px\) scale\(0\.99\);/s
|
|
@@ -205,7 +213,19 @@ test("dock overflow keeps scroll controls viewport-bound", () => {
|
|
|
205
213
|
);
|
|
206
214
|
assert.match(
|
|
207
215
|
css,
|
|
208
|
-
/\.desktop-dock__slot--minimized\[data-presence="entering"\]\s*{[^}]*animation:\s*desktop-dock-minimized-slot-expand
|
|
216
|
+
/\.desktop-dock__slot--minimized\[data-presence="entering"\]\s*{[^}]*animation:\s*desktop-dock-minimized-slot-expand 720ms/s
|
|
217
|
+
);
|
|
218
|
+
assert.match(
|
|
219
|
+
css,
|
|
220
|
+
/\.desktop-dock__slot--minimized\[data-promoted-from-stack="true"\]\[data-presence="entering"\]\s*{[^}]*animation:\s*none;/s
|
|
221
|
+
);
|
|
222
|
+
assert.match(
|
|
223
|
+
css,
|
|
224
|
+
/@keyframes desktop-dock-minimized-preview-promote\s*{[\s\S]*?translate:\s*28px 10px;/s
|
|
225
|
+
);
|
|
226
|
+
assert.match(
|
|
227
|
+
css,
|
|
228
|
+
/\.desktop-dock:not\(\[data-dock-pointer-active="true"\]\)\s+\.desktop-dock__minimized-stack-layer\s*{[^}]*transition:[^}]*transform 520ms/s
|
|
209
229
|
);
|
|
210
230
|
assert.match(
|
|
211
231
|
css,
|
|
@@ -217,7 +237,7 @@ test("dock overflow keeps scroll controls viewport-bound", () => {
|
|
|
217
237
|
);
|
|
218
238
|
assert.match(
|
|
219
239
|
css,
|
|
220
|
-
/\.desktop-dock__slot--minimized\[data-collapsing="true"\],[\s\S]*?\.desktop-dock__slot--minimized\[data-presence="exiting"\]\s*{[^}]*animation:\s*desktop-dock-minimized-slot-collapse
|
|
240
|
+
/\.desktop-dock__slot--minimized\[data-collapsing="true"\],[\s\S]*?\.desktop-dock__slot--minimized\[data-presence="exiting"\]\s*{[^}]*animation:\s*desktop-dock-minimized-slot-collapse 720ms[^}]*pointer-events:\s*none;/s
|
|
221
241
|
);
|
|
222
242
|
assert.match(
|
|
223
243
|
css,
|
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.3",
|
|
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.3",
|
|
38
|
+
"@tutti-os/ui-react-hooks": "0.0.3",
|
|
39
|
+
"@tutti-os/workbench-snapshot": "0.0.3",
|
|
40
|
+
"@tutti-os/ui-system": "0.0.3"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
43
|
"react": "^19.1.0",
|