@syntrologie/adapt-nav 2.15.0 → 2.16.0

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.
@@ -36,7 +36,7 @@ export interface PanelShellControllerOptions {
36
36
  snapThreshold?: number;
37
37
  /** Size of the FAB in pixels. Default 56. */
38
38
  fabSize?: number;
39
- /** Inset of the FAB from the panel's top-left corner. Default 12. */
39
+ /** Inset of the FAB from the panel's bottom-left corner. Default 12. */
40
40
  fabInset?: number;
41
41
  /** Default geometry on first load when nothing is in storage. */
42
42
  defaultGeometry?: Partial<PanelGeometry>;
@@ -1 +1 @@
1
- {"version":3,"file":"PanelShellController.d.ts","sourceRoot":"","sources":["../../src/controllers/PanelShellController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PanelShellController.d.ts","sourceRoot":"","sources":["../../src/controllers/PanelShellController.ts"],"names":[],"mappings":"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"}
@@ -341,7 +341,7 @@ export class PanelShellController {
341
341
  return {
342
342
  position: 'fixed',
343
343
  left: `${rect.left + this.opts.fabInset}px`,
344
- top: `${rect.top + this.opts.fabInset}px`,
344
+ top: `${rect.top + rect.height - this.opts.fabSize - this.opts.fabInset}px`,
345
345
  pointerEvents: 'auto',
346
346
  width: `${this.opts.fabSize}px`,
347
347
  height: `${this.opts.fabSize}px`,
@@ -401,7 +401,7 @@ export class PanelShellController {
401
401
  }
402
402
  if (this._fabEl) {
403
403
  this._fabEl.style.left = `${x + this.opts.fabInset}px`;
404
- this._fabEl.style.top = `${y + this.opts.fabInset}px`;
404
+ this._fabEl.style.top = `${y + height - this.opts.fabSize - this.opts.fabInset}px`;
405
405
  }
406
406
  }
407
407
  _clampToViewport(geo) {
@@ -409,10 +409,15 @@ export class PanelShellController {
409
409
  return geo;
410
410
  const vw = window.innerWidth;
411
411
  const vh = window.innerHeight;
412
+ // FAB sits at panel's bottom-left: fabTop = geo.y + geo.height - fabSize - fabInset.
413
+ // Keep fabTop in [0, vh - fabSize] so the FAB stays on-screen even if the panel
414
+ // extends above the viewport top or below the viewport bottom.
415
+ const minY = this.opts.fabSize + this.opts.fabInset - geo.height;
416
+ const maxY = vh - geo.height + this.opts.fabInset;
412
417
  return {
413
418
  ...geo,
414
419
  x: Math.max(-(geo.width - this.opts.fabSize), Math.min(geo.x, vw - this.opts.fabSize)),
415
- y: Math.max(-this.opts.fabInset, Math.min(geo.y, vh - this.opts.fabSize - this.opts.fabInset)),
420
+ y: Math.max(minY, Math.min(geo.y, maxY)),
416
421
  };
417
422
  }
418
423
  _undockGeometry(geo) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@syntrologie/adapt-nav",
3
- "version": "2.15.0",
3
+ "version": "2.16.0",
4
4
  "description": "Adaptive Navigation - Nav link widget, scroll-to and page navigation actions",
5
5
  "license": "Proprietary",
6
6
  "private": false,