release: publish v2.0.20 selection and sidebar refinements

Complete zero-width sidebar collapse with synchronized bidirectional motion, add package-row selection and guarded double-click disclosure, render continuous selection edges across nested package boundaries, expand regression coverage, and update the public English changelog and package metadata for v2.0.20.
This commit is contained in:
Sucukdeluxe
2026-08-11 04:42:14 +02:00
parent 14090011e3
commit eda3a3f744
10 changed files with 274 additions and 25 deletions
+4 -2
View File
@@ -21,8 +21,10 @@ export function AppSidebar({
className={`md-shell-sidebar${collapsed ? " is-collapsed" : ""}${responsiveRail ? " is-responsive-rail" : ""}`}
data-ui-region="sidebar"
>
{children ? <div className="md-shell-sidebar-scroll">{children}</div> : null}
{status ? <div className="md-shell-sidebar-status" data-ui-region="sidebar-status">{status}</div> : null}
<div className="md-shell-sidebar-panel">
{children ? <div className="md-shell-sidebar-scroll">{children}</div> : null}
{status ? <div className="md-shell-sidebar-status" data-ui-region="sidebar-status">{status}</div> : null}
</div>
<button
aria-label={collapsed ? "Seitenleiste ausklappen" : "Seitenleiste einklappen"}
className="md-shell-sidebar-toggle"
+32 -10
View File
@@ -404,6 +404,7 @@
min-height: 0;
grid-template-columns: minmax(0, 1fr);
gap: 8px;
transition: grid-template-columns 520ms cubic-bezier(0.22, 0.76, 0.22, 1);
}
.md-shell.has-sidebar .md-shell-workspace {
@@ -411,10 +412,10 @@
}
.md-shell.has-collapsed-sidebar .md-shell-workspace {
grid-template-columns: 56px minmax(0, 1fr);
grid-template-columns: 0 minmax(0, 1fr);
}
.md-shell-sidebar,
.md-shell-sidebar-panel,
.md-shell-main {
position: relative;
min-width: 0;
@@ -425,8 +426,24 @@
}
.md-shell-sidebar {
position: relative;
z-index: 4;
min-width: 0;
min-height: 0;
}
.md-shell-sidebar-panel {
display: flex;
width: 270px;
height: 100%;
flex-direction: column;
opacity: 1;
transform: translate3d(0, 0, 0);
visibility: visible;
transition:
opacity 260ms ease,
transform 520ms cubic-bezier(0.22, 0.76, 0.22, 1),
visibility 0s linear 0s;
}
.md-shell-sidebar-scroll {
@@ -465,16 +482,12 @@
line-height: 16px;
}
.md-shell-sidebar.is-collapsed :where(.md-shell-sidebar-scroll, .md-shell-sidebar-status) {
overflow: hidden;
.md-shell-sidebar.is-collapsed .md-shell-sidebar-panel {
visibility: hidden;
opacity: 0;
transform: translateX(-8px);
}
.md-shell-sidebar-scroll,
.md-shell-sidebar-status {
transition: opacity 160ms ease, transform 160ms ease;
transform: translate3d(calc(-100% - 8px), 0, 0);
pointer-events: none;
transition-delay: 0s, 0s, 520ms;
}
.md-shell-sidebar-toggle {
@@ -507,6 +520,7 @@
}
.md-shell-sidebar:hover .md-shell-sidebar-toggle,
.md-shell-sidebar.is-collapsed .md-shell-sidebar-toggle,
.md-shell-sidebar-toggle:focus-visible {
opacity: 1;
}
@@ -907,6 +921,14 @@
transition-duration: 0.01ms !important;
}
.md-shell-workspace {
transition-duration: 520ms !important;
}
.md-shell-sidebar-panel {
transition-duration: 260ms, 520ms, 0s !important;
}
.md-shell-navigation::before {
transition-duration: 420ms, 420ms, 420ms, 120ms !important;
}