dsh-sidebar-recent 1.0.1 → 1.0.2

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.
Files changed (2) hide show
  1. package/client.js +17 -7
  2. package/package.json +1 -1
package/client.js CHANGED
@@ -1200,7 +1200,12 @@ window.__ModuleLoader__.load({
1200
1200
  let frame = 0;
1201
1201
  function measure() {
1202
1202
  frame = 0;
1203
- const next = Math.round(el.getBoundingClientRect().height * 100) / 100;
1203
+ const root = el.parentElement;
1204
+ if (!root) return;
1205
+ const headEl = el.previousElementSibling;
1206
+ const headH = headEl ? headEl.offsetHeight : 0;
1207
+ const raw = root.clientHeight - headH - 6;
1208
+ const next = raw > 0 ? Math.round(raw * 100) / 100 : 0;
1204
1209
  setBodyH(function (prev) { return Math.abs(prev - next) < 0.5 ? prev : next; });
1205
1210
  }
1206
1211
  function schedule() {
@@ -1210,7 +1215,7 @@ window.__ModuleLoader__.load({
1210
1215
  measure();
1211
1216
  if (typeof ResizeObserver === 'function') {
1212
1217
  const ro = new ResizeObserver(schedule);
1213
- ro.observe(el);
1218
+ ro.observe(el.parentElement || el);
1214
1219
  return function () {
1215
1220
  if (frame) window.cancelAnimationFrame(frame);
1216
1221
  ro.disconnect();
@@ -2123,8 +2128,8 @@ window.__ModuleLoader__.load({
2123
2128
  const wsRatio = resizeLive && typeof resizeLive.ws === 'number'
2124
2129
  ? resizeLive.ws
2125
2130
  : (typeof view.wsRatio === 'number' ? view.wsRatio : null);
2126
- const availH = bodyH > 0
2127
- ? Math.max(120, bodyH - BODY_PAD - (HANDLE_H + BODY_GAP))
2131
+ const availH = bodyH >= 80
2132
+ ? bodyH - BODY_PAD - (HANDLE_H + BODY_GAP)
2128
2133
  : 0;
2129
2134
  let wsH = WS_HEAD_H;
2130
2135
  let recentH = WS_HEAD_H;
@@ -2134,7 +2139,8 @@ window.__ModuleLoader__.load({
2134
2139
  wsH = WS_HEAD_H;
2135
2140
  recentH = WS_HEAD_H;
2136
2141
  } else if (view.recentCollapsed) {
2137
- wsH = Math.max(WS_HEAD_H, pair - WS_HEAD_H);
2142
+ const fitH = wsContentH > 0 ? wsContentH + WS_HEAD_H : (pair - WS_HEAD_H);
2143
+ wsH = Math.max(WS_HEAD_H, Math.min(fitH, pair - WS_HEAD_H));
2138
2144
  recentH = WS_HEAD_H;
2139
2145
  } else if (view.wsCollapsed) {
2140
2146
  wsH = WS_HEAD_H;
@@ -2413,6 +2419,7 @@ window.__ModuleLoader__.load({
2413
2419
  key: 'body',
2414
2420
  ref: bodyRef,
2415
2421
  className: 'sr-body'
2422
+ + (availH > 0 ? ' is-sized' : '')
2416
2423
  + (view.wsCollapsed ? ' is-ws-collapsed' : '')
2417
2424
  + (view.recentCollapsed ? ' is-recent-collapsed' : '')
2418
2425
  }, query.trim() ? renderSearchResults() : [
@@ -2489,7 +2496,9 @@ window.__ModuleLoader__.load({
2489
2496
  '.sr-body{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:4px;padding-top:2px}',
2490
2497
  '.sr-section{display:flex;flex-direction:column;min-height:0;border-radius:10px;overflow:hidden;transition:height .3s cubic-bezier(.4,0,.2,1),flex-grow .3s cubic-bezier(.4,0,.2,1),flex-basis .3s cubic-bezier(.4,0,.2,1),min-height .3s cubic-bezier(.4,0,.2,1);background:rgba(127,127,127,.055);background:color-mix(in srgb,var(--dsw-alias-bg-layer-2,#f4f4f5) 46%,transparent);border:1px solid color-mix(in srgb,var(--dsw-alias-border-l1,rgba(0,0,0,.08)) 66%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.06);backdrop-filter:blur(10px) saturate(140%);-webkit-backdrop-filter:blur(10px) saturate(140%)}',
2491
2498
  '.sr-section-ws{flex:0 0 auto;min-height:0;overflow:hidden}',
2499
+ '.sr-body:not(.is-sized) .sr-section-ws{flex:0 0 auto;max-height:62%}',
2492
2500
  '.sr-section-recent{flex:0 0 auto;min-height:34px;overflow:hidden}',
2501
+ '.sr-body:not(.is-sized) .sr-section-recent{flex:1 1 0;min-height:34px}',
2493
2502
 
2494
2503
  '.sr-section-body{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;overflow:hidden}',
2495
2504
  '.sr-section-inner{flex:1 1 auto;min-height:0;overflow:hidden;display:flex;flex-direction:column}',
@@ -2514,11 +2523,11 @@ window.__ModuleLoader__.load({
2514
2523
  '.sr-collapse:hover{background:var(--dsw-alias-interactive-bg-hover,rgba(127,127,127,.14))}',
2515
2524
  '.sr-collapse svg{transform:rotate(90deg);transition:transform .16s ease}',
2516
2525
  '.sr-collapse.is-collapsed svg{transform:rotate(0deg)}',
2517
- '.sr-scroll{flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden;padding:12px 1px 11px;scrollbar-gutter:stable;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 12px,#000 calc(100% - 12px),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 12px,#000 calc(100% - 12px),transparent 100%)}',
2526
+ '.sr-scroll{flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden;padding:12px 1px 10px;scrollbar-gutter:stable;-webkit-mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.30) 4px,rgba(0,0,0,.78) 7px,#000 10px,#000 calc(100% - 10px),rgba(0,0,0,.78) calc(100% - 7px),rgba(0,0,0,.30) calc(100% - 4px),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.30) 4px,rgba(0,0,0,.78) 7px,#000 10px,#000 calc(100% - 10px),rgba(0,0,0,.78) calc(100% - 7px),rgba(0,0,0,.30) calc(100% - 4px),transparent 100%)}',
2518
2527
  '.sr-section-ws .sr-scroll{flex:0 1 auto}',
2519
- '.sr-section-ws .sr-scroll{padding-bottom:3px;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 12px,#000 calc(100% - 4px),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 12px,#000 calc(100% - 4px),transparent 100%)}',
2520
2528
  '.sr-section-inner .sr-scroll{flex:1 1 auto;min-height:0}',
2521
2529
  '.sr-section-recent .sr-scroll{display:flex;flex-direction:column;gap:5px}',
2530
+ '.sr-section-recent .sr-scroll{padding-top:6px}',
2522
2531
  '.sr-scroll::-webkit-scrollbar{width:5px}',
2523
2532
  '.sr-scroll::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--dsw-alias-label-tertiary,rgba(0,0,0,.3)) 42%,transparent);border-radius:3px}',
2524
2533
  '.sr-scroll::-webkit-scrollbar-track{background:transparent}',
@@ -2582,6 +2591,7 @@ window.__ModuleLoader__.load({
2582
2591
  '.sr-results-label{padding:8px 6px 3px;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--dsw-alias-label-primary,#111)}',
2583
2592
  '.sr-results-note{padding:6px;font-size:11px;color:var(--dsw-alias-label-primary,#111)}',
2584
2593
  '.sr-menu{position:fixed;z-index:1200;min-width:170px;max-width:212px;max-height:min(86vh,900px);overflow-y:auto;overscroll-behavior:contain;padding:4px;border-radius:var(--dsw-radius-lg,10px);background:#FCFDFD;background:color-mix(in srgb,#FCFDFD 88%,transparent);-webkit-backdrop-filter:blur(26px) saturate(180%);backdrop-filter:blur(26px) saturate(180%);border:.5px solid var(--dsw-alias-border-l2,rgba(0,0,0,.1));box-shadow:var(--dsw-elevation-prominent,0 12px 28px rgba(0,0,0,.16),0 2px 6px rgba(0,0,0,.08));animation:sr-fade .12s ease}',
2594
+ 'body[data-ds-dark-theme] .sr-menu{background:#29292D;background:color-mix(in srgb,#29292D 90%,transparent);border-color:rgba(255,255,255,.10);box-shadow:var(--dsw-elevation-prominent,0 12px 28px rgba(0,0,0,.52),0 2px 6px rgba(0,0,0,.34))}',
2585
2595
  '.sr-menu::-webkit-scrollbar{width:5px}',
2586
2596
  '.sr-menu::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--dsw-alias-label-tertiary,rgba(0,0,0,.3)) 42%,transparent);border-radius:3px}',
2587
2597
  '.sr-menu-chips{display:flex;align-items:center;gap:6px;padding:2px 8px 6px}',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-sidebar-recent",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Sidebar Recent: a project-grouped session browser with a chronological Recent list for DeepSeek Harness.",