@tutti-os/workbench-surface 0.0.17 → 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.
@@ -244,8 +244,8 @@
244
244
  transform: translateY(0);
245
245
  pointer-events: auto;
246
246
  transition:
247
- opacity 0.16s ease 0.5s,
248
- transform 0.2s cubic-bezier(0.4, 0, 0.2, 1) 0.5s;
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: 8px;
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%;
@@ -1730,7 +1765,7 @@
1730
1765
  opacity: 1;
1731
1766
  pointer-events: auto;
1732
1767
  transform: translateX(-50%)
1733
- translateY(calc(-100% - var(--desktop-dock-tooltip-gap, 32px)));
1768
+ translateY(calc(-100% - var(--desktop-dock-hover-panel-gap, 12px)));
1734
1769
  transition:
1735
1770
  opacity 0.12s ease,
1736
1771
  transform 0.12s ease;
@@ -1744,7 +1779,10 @@
1744
1779
  var(--desktop-dock-label-tooltip-anchor-width) / 2
1745
1780
  );
1746
1781
  z-index: var(--workbench-z-dock-tooltip);
1747
- max-width: 220px;
1782
+ box-sizing: border-box;
1783
+ width: max-content;
1784
+ max-width: min(220px, calc(100vw - 32px));
1785
+ overflow: hidden;
1748
1786
  padding: 7px 10px;
1749
1787
  border: 1px solid var(--border-1);
1750
1788
  border-radius: 8px;
@@ -1755,13 +1793,14 @@
1755
1793
  font-weight: 700;
1756
1794
  line-height: 1.3;
1757
1795
  opacity: 1;
1758
- overflow-wrap: anywhere;
1759
1796
  pointer-events: none;
1797
+ text-overflow: ellipsis;
1760
1798
  transform: translateX(-50%)
1761
1799
  translateY(calc(-100% - var(--desktop-dock-tooltip-gap, 32px)));
1762
1800
  transition:
1763
1801
  opacity 0.12s ease,
1764
1802
  transform 0.12s ease;
1803
+ white-space: nowrap;
1765
1804
  }
1766
1805
 
1767
1806
  .desktop-dock__label-tooltip[data-dock-placement="left"] {
@@ -1785,7 +1824,7 @@
1785
1824
  left: calc(
1786
1825
  var(--desktop-dock-hover-panel-anchor-left) +
1787
1826
  var(--desktop-dock-hover-panel-anchor-width) +
1788
- var(--desktop-dock-tooltip-gap, 32px)
1827
+ var(--desktop-dock-hover-panel-gap, 12px)
1789
1828
  );
1790
1829
  transform: translateY(-50%);
1791
1830
  }
@@ -1793,9 +1832,9 @@
1793
1832
  .desktop-dock__hover-panel::before {
1794
1833
  position: absolute;
1795
1834
  right: 0;
1796
- bottom: calc(-1 * var(--desktop-dock-tooltip-gap, 32px));
1835
+ bottom: calc(-1 * var(--desktop-dock-hover-panel-gap, 12px));
1797
1836
  left: 0;
1798
- height: var(--desktop-dock-tooltip-gap, 32px);
1837
+ height: var(--desktop-dock-hover-panel-gap, 12px);
1799
1838
  content: "";
1800
1839
  }
1801
1840
 
@@ -1803,8 +1842,8 @@
1803
1842
  top: 0;
1804
1843
  right: auto;
1805
1844
  bottom: 0;
1806
- left: calc(-1 * var(--desktop-dock-tooltip-gap, 32px));
1807
- width: var(--desktop-dock-tooltip-gap, 32px);
1845
+ left: calc(-1 * var(--desktop-dock-hover-panel-gap, 12px));
1846
+ width: var(--desktop-dock-hover-panel-gap, 12px);
1808
1847
  height: auto;
1809
1848
  }
1810
1849
 
@@ -2755,7 +2794,7 @@ body[data-desktop-dock-minimized-stack-open="true"] .desktop-dock {
2755
2794
 
2756
2795
  animation: workspace-launchpad-hover-panel-enter 160ms
2757
2796
  cubic-bezier(0.16, 1, 0.3, 1) both;
2758
- bottom: calc(100% + var(--desktop-dock-tooltip-gap, 32px));
2797
+ bottom: calc(100% + var(--desktop-dock-tooltip-gap, 12px));
2759
2798
  left: 50%;
2760
2799
  right: auto;
2761
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-tooltip-gap, 32px\)\s*\);/s
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,
@@ -115,12 +115,20 @@ test("dock overflow keeps scroll controls viewport-bound", () => {
115
115
  );
116
116
  assert.match(
117
117
  css,
118
- /\.desktop-dock__hover-panel\s*{[^}]*top:\s*var\(--desktop-dock-hover-panel-anchor-top\);[^}]*pointer-events:\s*auto;[^}]*var\(--desktop-dock-tooltip-gap, 32px\)/s
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
119
123
  );
120
124
  assert.match(
121
125
  css,
122
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
123
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
+ );
124
132
  assert.match(
125
133
  css,
126
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
@@ -173,6 +181,22 @@ test("dock overflow keeps scroll controls viewport-bound", () => {
173
181
  css,
174
182
  /\.desktop-dock\[data-dock-placement="left"\]\s+\.desktop-dock__minimized-preview\s*{[^}]*transform-origin:\s*left center;/s
175
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
+ );
176
200
  assert.match(css, /\.desktop-dock__slot\s*{[^}]*flex:\s*0 0 auto;/s);
177
201
  assert.match(
178
202
  css,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tutti-os/workbench-surface",
3
- "version": "0.0.17",
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.17",
38
- "@tutti-os/ui-react-hooks": "0.0.17",
39
- "@tutti-os/workbench-snapshot": "0.0.17",
40
- "@tutti-os/ui-system": "0.0.17"
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",