@tutti-os/workbench-surface 0.0.16 → 0.0.18
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 +13 -4
- package/dist/index.js +916 -66
- package/dist/index.js.map +1 -1
- package/dist/styles/workbench.css +89 -9
- package/dist/styles/workbenchStyle.test.ts +38 -2
- package/package.json +5 -5
|
@@ -244,8 +244,8 @@
|
|
|
244
244
|
transform: translateY(0);
|
|
245
245
|
pointer-events: auto;
|
|
246
246
|
transition:
|
|
247
|
-
opacity 0.16s ease
|
|
248
|
-
transform 0.2s cubic-bezier(0.4, 0, 0.2, 1)
|
|
247
|
+
opacity 0.16s ease,
|
|
248
|
+
transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
|
|
249
249
|
}
|
|
250
250
|
|
|
251
251
|
.workbench-window[data-display-mode="fullscreen"]:has(
|
|
@@ -268,7 +268,7 @@
|
|
|
268
268
|
right: 0;
|
|
269
269
|
left: 0;
|
|
270
270
|
z-index: 2;
|
|
271
|
-
height:
|
|
271
|
+
height: 16px;
|
|
272
272
|
pointer-events: auto;
|
|
273
273
|
}
|
|
274
274
|
|
|
@@ -739,6 +739,7 @@
|
|
|
739
739
|
--desktop-dock-scroll-button-z-index: 120;
|
|
740
740
|
--desktop-dock-scroll-fade-size: 48px;
|
|
741
741
|
--desktop-dock-tooltip-gap: 32px;
|
|
742
|
+
--desktop-dock-hover-panel-gap: 12px;
|
|
742
743
|
position: relative;
|
|
743
744
|
z-index: 1;
|
|
744
745
|
display: block;
|
|
@@ -1562,6 +1563,40 @@
|
|
|
1562
1563
|
background: color-mix(in srgb, var(--background-panel) 70%, black 4%);
|
|
1563
1564
|
}
|
|
1564
1565
|
|
|
1566
|
+
.desktop-dock__minimized-preview--component {
|
|
1567
|
+
align-items: stretch;
|
|
1568
|
+
justify-content: stretch;
|
|
1569
|
+
gap: 0;
|
|
1570
|
+
padding: 0;
|
|
1571
|
+
background: var(--background-panel);
|
|
1572
|
+
}
|
|
1573
|
+
|
|
1574
|
+
.desktop-dock__minimized-preview--component > * {
|
|
1575
|
+
width: 100%;
|
|
1576
|
+
height: 100%;
|
|
1577
|
+
min-width: 0;
|
|
1578
|
+
min-height: 0;
|
|
1579
|
+
}
|
|
1580
|
+
|
|
1581
|
+
.desktop-dock__minimized-preview-freeze-source {
|
|
1582
|
+
position: absolute;
|
|
1583
|
+
inset: 0;
|
|
1584
|
+
visibility: hidden;
|
|
1585
|
+
pointer-events: none;
|
|
1586
|
+
}
|
|
1587
|
+
|
|
1588
|
+
.desktop-dock__minimized-preview-frozen-content {
|
|
1589
|
+
display: block;
|
|
1590
|
+
overflow: hidden;
|
|
1591
|
+
}
|
|
1592
|
+
|
|
1593
|
+
.desktop-dock__minimized-preview-frozen-content > * {
|
|
1594
|
+
width: 100%;
|
|
1595
|
+
height: 100%;
|
|
1596
|
+
min-width: 0;
|
|
1597
|
+
min-height: 0;
|
|
1598
|
+
}
|
|
1599
|
+
|
|
1565
1600
|
.desktop-dock__minimized-preview-line {
|
|
1566
1601
|
display: block;
|
|
1567
1602
|
width: 74%;
|
|
@@ -1729,11 +1764,56 @@
|
|
|
1729
1764
|
color: var(--text-primary);
|
|
1730
1765
|
opacity: 1;
|
|
1731
1766
|
pointer-events: auto;
|
|
1767
|
+
transform: translateX(-50%)
|
|
1768
|
+
translateY(calc(-100% - var(--desktop-dock-hover-panel-gap, 12px)));
|
|
1769
|
+
transition:
|
|
1770
|
+
opacity 0.12s ease,
|
|
1771
|
+
transform 0.12s ease;
|
|
1772
|
+
}
|
|
1773
|
+
|
|
1774
|
+
.desktop-dock__label-tooltip {
|
|
1775
|
+
position: absolute;
|
|
1776
|
+
top: var(--desktop-dock-label-tooltip-anchor-top);
|
|
1777
|
+
left: calc(
|
|
1778
|
+
var(--desktop-dock-label-tooltip-anchor-left) +
|
|
1779
|
+
var(--desktop-dock-label-tooltip-anchor-width) / 2
|
|
1780
|
+
);
|
|
1781
|
+
z-index: var(--workbench-z-dock-tooltip);
|
|
1782
|
+
box-sizing: border-box;
|
|
1783
|
+
width: max-content;
|
|
1784
|
+
max-width: min(220px, calc(100vw - 32px));
|
|
1785
|
+
overflow: hidden;
|
|
1786
|
+
padding: 7px 10px;
|
|
1787
|
+
border: 1px solid var(--border-1);
|
|
1788
|
+
border-radius: 8px;
|
|
1789
|
+
background: var(--background-fronted);
|
|
1790
|
+
box-shadow: 0 12px 30px var(--shadow-elevated);
|
|
1791
|
+
color: var(--text-primary);
|
|
1792
|
+
font-size: 13px;
|
|
1793
|
+
font-weight: 700;
|
|
1794
|
+
line-height: 1.3;
|
|
1795
|
+
opacity: 1;
|
|
1796
|
+
pointer-events: none;
|
|
1797
|
+
text-overflow: ellipsis;
|
|
1732
1798
|
transform: translateX(-50%)
|
|
1733
1799
|
translateY(calc(-100% - var(--desktop-dock-tooltip-gap, 32px)));
|
|
1734
1800
|
transition:
|
|
1735
1801
|
opacity 0.12s ease,
|
|
1736
1802
|
transform 0.12s ease;
|
|
1803
|
+
white-space: nowrap;
|
|
1804
|
+
}
|
|
1805
|
+
|
|
1806
|
+
.desktop-dock__label-tooltip[data-dock-placement="left"] {
|
|
1807
|
+
top: calc(
|
|
1808
|
+
var(--desktop-dock-label-tooltip-anchor-top) +
|
|
1809
|
+
var(--desktop-dock-label-tooltip-anchor-height) / 2
|
|
1810
|
+
);
|
|
1811
|
+
left: calc(
|
|
1812
|
+
var(--desktop-dock-label-tooltip-anchor-left) +
|
|
1813
|
+
var(--desktop-dock-label-tooltip-anchor-width) +
|
|
1814
|
+
var(--desktop-dock-tooltip-gap, 32px)
|
|
1815
|
+
);
|
|
1816
|
+
transform: translateY(-50%);
|
|
1737
1817
|
}
|
|
1738
1818
|
|
|
1739
1819
|
.desktop-dock__hover-panel[data-dock-placement="left"] {
|
|
@@ -1744,7 +1824,7 @@
|
|
|
1744
1824
|
left: calc(
|
|
1745
1825
|
var(--desktop-dock-hover-panel-anchor-left) +
|
|
1746
1826
|
var(--desktop-dock-hover-panel-anchor-width) +
|
|
1747
|
-
var(--desktop-dock-
|
|
1827
|
+
var(--desktop-dock-hover-panel-gap, 12px)
|
|
1748
1828
|
);
|
|
1749
1829
|
transform: translateY(-50%);
|
|
1750
1830
|
}
|
|
@@ -1752,9 +1832,9 @@
|
|
|
1752
1832
|
.desktop-dock__hover-panel::before {
|
|
1753
1833
|
position: absolute;
|
|
1754
1834
|
right: 0;
|
|
1755
|
-
bottom: calc(-1 * var(--desktop-dock-
|
|
1835
|
+
bottom: calc(-1 * var(--desktop-dock-hover-panel-gap, 12px));
|
|
1756
1836
|
left: 0;
|
|
1757
|
-
height: var(--desktop-dock-
|
|
1837
|
+
height: var(--desktop-dock-hover-panel-gap, 12px);
|
|
1758
1838
|
content: "";
|
|
1759
1839
|
}
|
|
1760
1840
|
|
|
@@ -1762,8 +1842,8 @@
|
|
|
1762
1842
|
top: 0;
|
|
1763
1843
|
right: auto;
|
|
1764
1844
|
bottom: 0;
|
|
1765
|
-
left: calc(-1 * var(--desktop-dock-
|
|
1766
|
-
width: var(--desktop-dock-
|
|
1845
|
+
left: calc(-1 * var(--desktop-dock-hover-panel-gap, 12px));
|
|
1846
|
+
width: var(--desktop-dock-hover-panel-gap, 12px);
|
|
1767
1847
|
height: auto;
|
|
1768
1848
|
}
|
|
1769
1849
|
|
|
@@ -2714,7 +2794,7 @@ body[data-desktop-dock-minimized-stack-open="true"] .desktop-dock {
|
|
|
2714
2794
|
|
|
2715
2795
|
animation: workspace-launchpad-hover-panel-enter 160ms
|
|
2716
2796
|
cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
2717
|
-
bottom: calc(100% + var(--desktop-dock-tooltip-gap,
|
|
2797
|
+
bottom: calc(100% + var(--desktop-dock-tooltip-gap, 12px));
|
|
2718
2798
|
left: 50%;
|
|
2719
2799
|
right: auto;
|
|
2720
2800
|
top: auto;
|
|
@@ -29,7 +29,7 @@ test("left dock placement owns vertical frame and popup placement styles", () =>
|
|
|
29
29
|
);
|
|
30
30
|
assert.match(
|
|
31
31
|
css,
|
|
32
|
-
/\.desktop-dock__hover-panel\[data-dock-placement="left"\]\s*{[^}]*left:\s*calc\(\s*var\(--desktop-dock-hover-panel-anchor-left\)\s*\+\s*var\(--desktop-dock-hover-panel-anchor-width\)\s*\+\s*var\(--desktop-dock-
|
|
32
|
+
/\.desktop-dock__hover-panel\[data-dock-placement="left"\]\s*{[^}]*left:\s*calc\(\s*var\(--desktop-dock-hover-panel-anchor-left\)\s*\+\s*var\(--desktop-dock-hover-panel-anchor-width\)\s*\+\s*var\(--desktop-dock-hover-panel-gap, 12px\)\s*\);/s
|
|
33
33
|
);
|
|
34
34
|
assert.match(
|
|
35
35
|
css,
|
|
@@ -111,7 +111,27 @@ test("dock overflow keeps scroll controls viewport-bound", () => {
|
|
|
111
111
|
);
|
|
112
112
|
assert.match(
|
|
113
113
|
css,
|
|
114
|
-
/\.desktop-
|
|
114
|
+
/\.desktop-dock\s*{[^}]*--desktop-dock-tooltip-gap:\s*32px;/s
|
|
115
|
+
);
|
|
116
|
+
assert.match(
|
|
117
|
+
css,
|
|
118
|
+
/\.desktop-dock\s*{[^}]*--desktop-dock-hover-panel-gap:\s*12px;/s
|
|
119
|
+
);
|
|
120
|
+
assert.match(
|
|
121
|
+
css,
|
|
122
|
+
/\.desktop-dock__hover-panel\s*{[^}]*top:\s*var\(--desktop-dock-hover-panel-anchor-top\);[^}]*pointer-events:\s*auto;[^}]*var\(--desktop-dock-hover-panel-gap, 12px\)/s
|
|
123
|
+
);
|
|
124
|
+
assert.match(
|
|
125
|
+
css,
|
|
126
|
+
/\.desktop-dock__label-tooltip\s*{[^}]*top:\s*var\(--desktop-dock-label-tooltip-anchor-top\);[^}]*pointer-events:\s*none;[^}]*var\(--desktop-dock-tooltip-gap, 32px\)/s
|
|
127
|
+
);
|
|
128
|
+
assert.match(
|
|
129
|
+
css,
|
|
130
|
+
/\.desktop-dock__label-tooltip\s*{[^}]*width:\s*max-content;[^}]*overflow:\s*hidden;[^}]*text-overflow:\s*ellipsis;[^}]*white-space:\s*nowrap;/s
|
|
131
|
+
);
|
|
132
|
+
assert.match(
|
|
133
|
+
css,
|
|
134
|
+
/\.desktop-dock__label-tooltip\[data-dock-placement="left"\]\s*{[^}]*left:\s*calc\(\s*var\(--desktop-dock-label-tooltip-anchor-left\)\s*\+\s*var\(--desktop-dock-label-tooltip-anchor-width\)\s*\+\s*var\(--desktop-dock-tooltip-gap, 32px\)\s*\);/s
|
|
115
135
|
);
|
|
116
136
|
assert.match(
|
|
117
137
|
css,
|
|
@@ -161,6 +181,22 @@ test("dock overflow keeps scroll controls viewport-bound", () => {
|
|
|
161
181
|
css,
|
|
162
182
|
/\.desktop-dock\[data-dock-placement="left"\]\s+\.desktop-dock__minimized-preview\s*{[^}]*transform-origin:\s*left center;/s
|
|
163
183
|
);
|
|
184
|
+
assert.match(
|
|
185
|
+
css,
|
|
186
|
+
/\.desktop-dock__minimized-preview--component\s*{[^}]*padding:\s*0;[^}]*background:\s*var\(--background-panel\);/s
|
|
187
|
+
);
|
|
188
|
+
assert.match(
|
|
189
|
+
css,
|
|
190
|
+
/\.desktop-dock__minimized-preview--component > \*\s*{[^}]*width:\s*100%;[^}]*height:\s*100%;/s
|
|
191
|
+
);
|
|
192
|
+
assert.match(
|
|
193
|
+
css,
|
|
194
|
+
/\.desktop-dock__minimized-preview-freeze-source\s*{[^}]*visibility:\s*hidden;[^}]*pointer-events:\s*none;/s
|
|
195
|
+
);
|
|
196
|
+
assert.match(
|
|
197
|
+
css,
|
|
198
|
+
/\.desktop-dock__minimized-preview-frozen-content\s*{[^}]*display:\s*block;[^}]*overflow:\s*hidden;/s
|
|
199
|
+
);
|
|
164
200
|
assert.match(css, /\.desktop-dock__slot\s*{[^}]*flex:\s*0 0 auto;/s);
|
|
165
201
|
assert.match(
|
|
166
202
|
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.18",
|
|
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.18",
|
|
38
|
+
"@tutti-os/ui-react-hooks": "0.0.18",
|
|
39
|
+
"@tutti-os/workbench-snapshot": "0.0.18",
|
|
40
|
+
"@tutti-os/ui-system": "0.0.18"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
43
|
"react": "^19.1.0",
|