@surdeddd/bottom-sheet 0.23.1 → 0.23.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.
package/dist/element.js CHANGED
@@ -4621,12 +4621,14 @@ function contentFitFeature() {
4621
4621
  (p) => moving() ? move(p.size) : settle()
4622
4622
  );
4623
4623
  const offSnap = ctx.on("snap", settle);
4624
+ const offDragStart = ctx.on("dragstart", () => move(ctx.getSize()));
4624
4625
  const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(whenIdle);
4625
4626
  observer?.observe(document.documentElement);
4626
4627
  window.addEventListener("orientationchange", whenIdle);
4627
4628
  return () => {
4628
4629
  offProgress();
4629
4630
  offSnap();
4631
+ offDragStart();
4630
4632
  observer?.disconnect();
4631
4633
  window.removeEventListener("orientationchange", whenIdle);
4632
4634
  sheet.removeAttribute(FIT_ATTR);
@@ -4687,7 +4689,7 @@ var init_BottomSheetEngine = __esm({
4687
4689
  var baseStyles;
4688
4690
  var init_baseStyles = __esm({
4689
4691
  "src/web-component/baseStyles.ts"() {
4690
- baseStyles = `:where(.bs-root){--bs-surface-d:#ffffff;--bs-surface-border-d:rgba(225,227,237,1);--bs-radius-d:20px;--bs-handle-color-d:rgba(26,22,20,0.3);--bs-handle-width:40px;--bs-handle-height:5px;--bs-z-backdrop:90;--bs-z-sheet:100;--bs-backdrop-color-d:rgba(0,0,0,0.5);--bs-scrim-color-d:transparent;--bs-scrim-blur:0px;--bs-z-scrim:calc(var(--bs-z-sheet) - 1);--bs-size:0px;--bs-progress:0}.bs-backdrop{position:fixed;inset:0;background:var(--bs-backdrop-color,var(--bs-backdrop-color-d));opacity:0;pointer-events:none;z-index:var(--bs-z-backdrop);transition:opacity 0.24s cubic-bezier(0.22,1,0.36,1);will-change:opacity}.bs-root[data-dragging="true"] .bs-backdrop,.bs-root[data-animating="true"] .bs-backdrop{transition:none}.bs-sheet{position:fixed;background:var(--bs-surface,var(--bs-surface-d));box-shadow:var(--bs-shadow,var(--bs-shadow-auto,none));--bs-shadow-fade:clamp(0,calc(var(--bs-progress,0) * 8),1);z-index:var(--bs-z-sheet);pointer-events:auto;overflow:hidden;display:flex;flex-direction:column;-webkit-tap-highlight-color:transparent;user-select:none;overscroll-behavior:contain}.bs-sheet[data-mode="bottom"]{left:0;right:0;bottom:0;width:100%;border-top-left-radius:var(--bs-radius,var(--bs-radius-d));border-top-right-radius:var(--bs-radius,var(--bs-radius-d));border-top:1px solid var(--bs-surface-border,var(--bs-surface-border-d));padding-bottom:env(safe-area-inset-bottom);--bs-shadow-auto:0 calc(var(--bs-progress,0) * -2px - 3px) calc(var(--bs-progress,0) * 18px + 12px) rgba( 0,0,0,calc(var(--bs-shadow-fade) * (var(--bs-progress,0) * 0.15 + 0.12)) )}.bs-sheet[data-mode="top"]{left:0;right:0;top:0;width:100%;border-bottom-left-radius:var(--bs-radius,var(--bs-radius-d));border-bottom-right-radius:var(--bs-radius,var(--bs-radius-d));border-bottom:1px solid var(--bs-surface-border,var(--bs-surface-border-d));flex-direction:column-reverse;--bs-shadow-auto:0 3px 12px rgba(0,0,0,calc(var(--bs-shadow-fade) * 0.12));padding-top:env(safe-area-inset-top)}.bs-sheet[data-mode="left"]{top:0;bottom:0;left:0;height:100%;border-top-right-radius:var(--bs-radius,var(--bs-radius-d));border-bottom-right-radius:var(--bs-radius,var(--bs-radius-d));border-right:1px solid var(--bs-surface-border,var(--bs-surface-border-d));--bs-shadow-auto:3px 0 12px rgba(0,0,0,calc(var(--bs-shadow-fade) * 0.12))}.bs-sheet[data-mode="right"]{top:0;bottom:0;right:0;height:100%;border-top-left-radius:var(--bs-radius,var(--bs-radius-d));border-bottom-left-radius:var(--bs-radius,var(--bs-radius-d));border-left:1px solid var(--bs-surface-border,var(--bs-surface-border-d));--bs-shadow-auto:-3px 0 12px rgba(0,0,0,calc(var(--bs-shadow-fade) * 0.12))}.bs-sheet[data-bs-rest="closed"]{box-shadow:none;visibility:hidden}.bs-sheet[data-bs-webgl="on"],.bs-sheet[data-bs-webgl="on"] .bs-handle,.bs-sheet[data-bs-webgl="on"] .bs-header,.bs-sheet[data-bs-webgl="on"] .bs-footer{background:transparent;box-shadow:none}.bs-sheet[data-mode="left"] .bs-content{padding-right:36px}.bs-sheet[data-mode="right"] .bs-content{padding-left:36px}.bs-handle{flex-shrink:0;min-height:44px;display:flex;flex-direction:column;justify-content:center;padding:var(--bs-handle-padding,8px 16px 4px);cursor:grab;touch-action:none;user-select:none;background:var(--bs-surface,var(--bs-surface-d));-webkit-tap-highlight-color:transparent;outline:none;position:relative}.bs-handle:active{cursor:grabbing}.bs-handle:focus-visible{outline:2px solid currentColor;outline-offset:-2px;border-radius:var(--bs-radius,var(--bs-radius-d))}.bs-handle::before{content:"";display:block;width:var(--bs-handle-width);height:var(--bs-handle-height);background:var(--bs-handle-color,var(--bs-handle-color-d));border-radius:calc(var(--bs-handle-height) / 2);margin:0 auto 8px;transition:width 0.15s ease,background 0.15s ease,transform 0.15s ease;pointer-events:none}.bs-sheet[data-mode="left"] .bs-handle,.bs-sheet[data-mode="right"] .bs-handle{position:absolute;top:0;bottom:0;width:28px;min-width:0;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0;background:var(--bs-surface,var(--bs-surface-d));z-index:1;overflow:hidden}.bs-sheet[data-mode="left"] .bs-handle>*,.bs-sheet[data-mode="right"] .bs-handle>*{display:none}.bs-sheet[data-mode="left"] .bs-handle{right:0;border-left:1px solid var(--bs-surface-border,var(--bs-surface-border-d))}.bs-sheet[data-mode="right"] .bs-handle{left:0;border-right:1px solid var(--bs-surface-border,var(--bs-surface-border-d))}.bs-sheet[data-mode="left"] .bs-handle::before,.bs-sheet[data-mode="right"] .bs-handle::before{width:var(--bs-handle-height);height:var(--bs-handle-width);margin:0}.bs-sheet:hover .bs-handle::before{background:color-mix(in oklab,var(--bs-handle-color,var(--bs-handle-color-d)),#000 15%)}.bs-handle:active::before{background:color-mix(in oklab,var(--bs-handle-color,var(--bs-handle-color-d)),#000 35%);transform:scaleX(1.15)}.bs-handle.bs-handle--ticks::after{content:"";display:block;position:absolute;left:50%;bottom:6px;transform:translateX(-50%);width:calc(var(--bs-handle-width) * 2);height:3px;background-image:radial-gradient( circle,var(--bs-handle-color,var(--bs-handle-color-d)) 0 1.5px,transparent 1.6px );background-size:8px 3px;background-repeat:repeat-x;background-position:center;opacity:0;transition:opacity 0.18s ease-out;pointer-events:none}.bs-root[data-dragging="true"] .bs-handle.bs-handle--ticks::after{opacity:0.4}.bs-sheet[data-mode="top"] .bs-handle.bs-handle--ticks::after{bottom:auto;top:6px}.bs-sheet[data-mode="left"] .bs-handle.bs-handle--ticks::after,.bs-sheet[data-mode="right"] .bs-handle.bs-handle--ticks::after{left:50%;top:50%;bottom:auto;transform:translate(-50%,-50%);width:3px;height:calc(var(--bs-handle-width) * 2);background-size:3px 8px;background-repeat:repeat-y;margin-left:calc(var(--bs-handle-height) + 6px)}.bs-sheet[data-mode="right"] .bs-handle.bs-handle--ticks::after{margin-left:calc(-1 * (var(--bs-handle-height) + 6px))}.bs-header{flex:0 0 auto;min-height:var(--bs-header-min-height,0px);padding:var(--bs-header-padding,0 16px 8px);background:var(--bs-surface,var(--bs-surface-d))}.bs-content{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;user-select:text;padding:var(--bs-content-padding,0 16px 16px)}.bs-sheet[data-bs-fit-content="moving"] .bs-content,.bs-sheet[data-bs-fit-content][data-bs-webgl="on"] .bs-content{scroll-padding-bottom:var(--bs-content-inset,0px)}.bs-sheet[data-bs-fit-content="moving"] .bs-content::after,.bs-sheet[data-bs-fit-content][data-bs-webgl="on"] .bs-content::after{content:"";display:block;flex:none;height:var(--bs-content-inset,0px)}.bs-sheet[data-bs-fit-content="rest"][data-mode="bottom"]:not([data-bs-webgl="on"])::after{content:"";flex:0 1 max(0px,var(--bs-max-size,0px) - var(--bs-size,0px))}.bs-footer{flex:0 0 auto;padding:var(--bs-footer-padding,12px 16px calc(12px + env(safe-area-inset-bottom)));border-top:1px solid var(--bs-surface-border,var(--bs-surface-border-d));background:var(--bs-surface,var(--bs-surface-d))}.bs-sheet[data-bs-fit-content="moving"][data-mode="bottom"]:not([data-bs-webgl="on"]) .bs-footer{transform:translateY( clamp( calc(-1 * var(--bs-footer-lift-max,0px)),calc(var(--bs-size,0px) - var(--bs-max-size,0px)),0px ) )}.bs-sheet[data-mode="bottom"]:has(.bs-footer:not([hidden]):has(*)){padding-bottom:0}.bs-header:not(:has(*)),.bs-footer:not(:has(*)),.bs-header[hidden],.bs-footer[hidden]{display:none}.bs-screen{position:absolute;inset:0;pointer-events:none;z-index:var(--bs-z-scrim);background:var(--bs-scrim-color,var(--bs-scrim-color-d));backdrop-filter:blur(var(--bs-scrim-blur,0px));-webkit-backdrop-filter:blur(var(--bs-scrim-blur,0px));transition:opacity 0.24s cubic-bezier(0.22,1,0.36,1);will-change:opacity}.bs-root[data-dragging="true"] .bs-screen,.bs-root[data-animating="true"] .bs-screen{transition:none}.bs-scrim-overlay{z-index:calc(var(--bs-z-sheet) + 1);pointer-events:none}.bs-button-slot{position:fixed;z-index:calc(var(--bs-z-sheet) + 1);pointer-events:auto}.bs-button-slot[data-side="left"]{left:16px;bottom:calc(var(--bs-size,0px) + 12px)}.bs-button-slot[data-side="right"]{right:16px;bottom:calc(var(--bs-size,0px) + 12px)}.bs-button-slot[data-mode="top"]{bottom:auto;top:calc(var(--bs-size,0px) + 12px)}.bs-button-slot[data-mode="left"]{left:calc(var(--bs-size,0px) + 12px);right:auto;bottom:auto;top:16px}.bs-button-slot[data-mode="right"]{right:calc(var(--bs-size,0px) + 12px);left:auto;bottom:auto;top:16px}@media (prefers-reduced-motion:reduce){.bs-backdrop,.bs-handle::before,.bs-button-slot[data-side="left"],.bs-button-slot[data-side="right"]{transition:none !important}}@media (prefers-color-scheme:dark){:where(.bs-root){--bs-surface-d:#1a1a1d;--bs-surface-border-d:rgba(255,255,255,0.08);--bs-handle-color-d:rgba(255,255,255,0.45);--bs-shadow-auto:0 -3px 16px rgba(0,0,0,0.5)}}@media (forced-colors:active){.bs-sheet{border:1px solid CanvasText}.bs-handle::before{background:CanvasText;forced-color-adjust:none}.bs-backdrop,.bs-screen{forced-color-adjust:none}}.bs-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:where(.ovl-root){--ovl-surface:var(--bs-surface,var(--bs-surface-d,#ffffff));--ovl-surface-border:var(--bs-surface-border,var(--bs-surface-border-d,rgba(0,0,0,0.08)));--ovl-shadow:0 -8px 40px rgba(0,0,0,0.35);--ovl-radius:var(--bs-radius,var(--bs-radius-d,20px));--ovl-backdrop-color:rgba(0,0,0,0.5);--ovl-z-backdrop:200;--ovl-z-panel:201}.ovl-backdrop{position:fixed;inset:0;background:var(--ovl-backdrop-color);opacity:0;pointer-events:none;z-index:var(--ovl-z-backdrop)}.ovl-panel{position:fixed;background:var(--ovl-surface);box-shadow:var(--ovl-shadow);z-index:var(--ovl-z-panel);-webkit-tap-highlight-color:transparent;outline:none;transition:transform 0.32s cubic-bezier(0.29,1.24,0.84,0.99),opacity 0.32s ease-out}.ovl-panel[data-state="open"]{transform:translate3d(0,0,0);opacity:1}@starting-style{.ovl-panel[data-edge="bottom"][data-state="open"]{transform:translate3d(0,100%,0);opacity:0}.ovl-panel[data-edge="top"][data-state="open"]{transform:translate3d(0,-100%,0);opacity:0}.ovl-panel[data-edge="left"][data-state="open"]{transform:translate3d(-100%,0,0);opacity:0}.ovl-panel[data-edge="right"][data-state="open"]{transform:translate3d(100%,0,0);opacity:0}}.ovl-panel[data-edge="bottom"]{left:0;right:0;bottom:0;width:100%;border-top-left-radius:var(--ovl-radius);border-top-right-radius:var(--ovl-radius);border-top:1px solid var(--ovl-surface-border);padding-bottom:env(safe-area-inset-bottom)}.ovl-panel[data-edge="top"]{left:0;right:0;top:0;width:100%;border-bottom-left-radius:var(--ovl-radius);border-bottom-right-radius:var(--ovl-radius);border-bottom:1px solid var(--ovl-surface-border);padding-top:env(safe-area-inset-top)}.ovl-panel[data-edge="left"]{top:0;bottom:0;left:0;height:100%;border-top-right-radius:var(--ovl-radius);border-bottom-right-radius:var(--ovl-radius);border-right:1px solid var(--ovl-surface-border)}.ovl-panel[data-edge="right"]{top:0;bottom:0;right:0;height:100%;border-top-left-radius:var(--ovl-radius);border-bottom-left-radius:var(--ovl-radius);border-left:1px solid var(--ovl-surface-border)}@media (prefers-reduced-motion:reduce){.ovl-panel,.ovl-backdrop{transition:none !important}}`;
4692
+ baseStyles = `:where(.bs-root){--bs-surface-d:#ffffff;--bs-surface-border-d:rgba(225,227,237,1);--bs-radius-d:20px;--bs-handle-color-d:rgba(26,22,20,0.3);--bs-handle-width:40px;--bs-handle-height:5px;--bs-z-backdrop:90;--bs-z-sheet:100;--bs-backdrop-color-d:rgba(0,0,0,0.5);--bs-scrim-color-d:transparent;--bs-scrim-blur:0px;--bs-z-scrim:calc(var(--bs-z-sheet) - 1);--bs-size:0px;--bs-progress:0}.bs-backdrop{position:fixed;inset:0;background:var(--bs-backdrop-color,var(--bs-backdrop-color-d));opacity:0;pointer-events:none;z-index:var(--bs-z-backdrop);transition:opacity 0.24s cubic-bezier(0.22,1,0.36,1);will-change:opacity}.bs-root[data-dragging="true"] .bs-backdrop,.bs-root[data-animating="true"] .bs-backdrop{transition:none}.bs-sheet{position:fixed;background:var(--bs-surface,var(--bs-surface-d));box-shadow:var(--bs-shadow,var(--bs-shadow-auto,none));--bs-shadow-fade:clamp(0,calc(var(--bs-progress,0) * 8),1);z-index:var(--bs-z-sheet);pointer-events:auto;overflow:hidden;display:flex;flex-direction:column;-webkit-tap-highlight-color:transparent;user-select:none;overscroll-behavior:contain}.bs-sheet[data-mode="bottom"]{left:0;right:0;bottom:0;width:100%;border-top-left-radius:var(--bs-radius,var(--bs-radius-d));border-top-right-radius:var(--bs-radius,var(--bs-radius-d));border-top:1px solid var(--bs-surface-border,var(--bs-surface-border-d));padding-bottom:env(safe-area-inset-bottom);--bs-shadow-auto:0 calc(var(--bs-progress,0) * -2px - 3px) calc(var(--bs-progress,0) * 18px + 12px) rgba( 0,0,0,calc(var(--bs-shadow-fade) * (var(--bs-progress,0) * 0.15 + 0.12)) )}.bs-sheet[data-mode="top"]{left:0;right:0;top:0;width:100%;border-bottom-left-radius:var(--bs-radius,var(--bs-radius-d));border-bottom-right-radius:var(--bs-radius,var(--bs-radius-d));border-bottom:1px solid var(--bs-surface-border,var(--bs-surface-border-d));flex-direction:column-reverse;--bs-shadow-auto:0 3px 12px rgba(0,0,0,calc(var(--bs-shadow-fade) * 0.12));padding-top:env(safe-area-inset-top)}.bs-sheet[data-mode="left"]{top:0;bottom:0;left:0;height:100%;border-top-right-radius:var(--bs-radius,var(--bs-radius-d));border-bottom-right-radius:var(--bs-radius,var(--bs-radius-d));border-right:1px solid var(--bs-surface-border,var(--bs-surface-border-d));--bs-shadow-auto:3px 0 12px rgba(0,0,0,calc(var(--bs-shadow-fade) * 0.12))}.bs-sheet[data-mode="right"]{top:0;bottom:0;right:0;height:100%;border-top-left-radius:var(--bs-radius,var(--bs-radius-d));border-bottom-left-radius:var(--bs-radius,var(--bs-radius-d));border-left:1px solid var(--bs-surface-border,var(--bs-surface-border-d));--bs-shadow-auto:-3px 0 12px rgba(0,0,0,calc(var(--bs-shadow-fade) * 0.12))}.bs-sheet[data-bs-rest="closed"]{box-shadow:none;visibility:hidden}.bs-sheet[data-bs-webgl="on"],.bs-sheet[data-bs-webgl="on"] .bs-handle,.bs-sheet[data-bs-webgl="on"] .bs-header,.bs-sheet[data-bs-webgl="on"] .bs-footer{background:transparent;box-shadow:none}.bs-sheet[data-mode="left"] .bs-content{padding-right:36px}.bs-sheet[data-mode="right"] .bs-content{padding-left:36px}.bs-handle{flex-shrink:0;min-height:44px;display:flex;flex-direction:column;justify-content:center;padding:var(--bs-handle-padding,8px 16px 4px);cursor:grab;touch-action:none;user-select:none;background:var(--bs-surface,var(--bs-surface-d));-webkit-tap-highlight-color:transparent;outline:none;position:relative}.bs-handle:active{cursor:grabbing}.bs-handle:focus-visible{outline:2px solid currentColor;outline-offset:-2px;border-radius:var(--bs-radius,var(--bs-radius-d))}.bs-handle::before{content:"";display:block;width:var(--bs-handle-width);height:var(--bs-handle-height);background:var(--bs-handle-color,var(--bs-handle-color-d));border-radius:calc(var(--bs-handle-height) / 2);margin:0 auto 8px;transition:width 0.15s ease,background 0.15s ease,transform 0.15s ease;pointer-events:none}.bs-sheet[data-mode="left"] .bs-handle,.bs-sheet[data-mode="right"] .bs-handle{position:absolute;top:0;bottom:0;width:28px;min-width:0;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0;background:var(--bs-surface,var(--bs-surface-d));z-index:1;overflow:hidden}.bs-sheet[data-mode="left"] .bs-handle>*,.bs-sheet[data-mode="right"] .bs-handle>*{display:none}.bs-sheet[data-mode="left"] .bs-handle{right:0;border-left:1px solid var(--bs-surface-border,var(--bs-surface-border-d))}.bs-sheet[data-mode="right"] .bs-handle{left:0;border-right:1px solid var(--bs-surface-border,var(--bs-surface-border-d))}.bs-sheet[data-mode="left"] .bs-handle::before,.bs-sheet[data-mode="right"] .bs-handle::before{width:var(--bs-handle-height);height:var(--bs-handle-width);margin:0}.bs-sheet:hover .bs-handle::before{background:color-mix(in oklab,var(--bs-handle-color,var(--bs-handle-color-d)),#000 15%)}.bs-handle:active::before{background:color-mix(in oklab,var(--bs-handle-color,var(--bs-handle-color-d)),#000 35%);transform:scaleX(1.15)}.bs-handle.bs-handle--ticks::after{content:"";display:block;position:absolute;left:50%;bottom:6px;transform:translateX(-50%);width:calc(var(--bs-handle-width) * 2);height:3px;background-image:radial-gradient( circle,var(--bs-handle-color,var(--bs-handle-color-d)) 0 1.5px,transparent 1.6px );background-size:8px 3px;background-repeat:repeat-x;background-position:center;opacity:0;transition:opacity 0.18s ease-out;pointer-events:none}.bs-root[data-dragging="true"] .bs-handle.bs-handle--ticks::after{opacity:0.4}.bs-sheet[data-mode="top"] .bs-handle.bs-handle--ticks::after{bottom:auto;top:6px}.bs-sheet[data-mode="left"] .bs-handle.bs-handle--ticks::after,.bs-sheet[data-mode="right"] .bs-handle.bs-handle--ticks::after{left:50%;top:50%;bottom:auto;transform:translate(-50%,-50%);width:3px;height:calc(var(--bs-handle-width) * 2);background-size:3px 8px;background-repeat:repeat-y;margin-left:calc(var(--bs-handle-height) + 6px)}.bs-sheet[data-mode="right"] .bs-handle.bs-handle--ticks::after{margin-left:calc(-1 * (var(--bs-handle-height) + 6px))}.bs-header{flex:0 0 auto;min-height:var(--bs-header-min-height,0px);padding:var(--bs-header-padding,0 16px 8px);background:var(--bs-surface,var(--bs-surface-d))}.bs-content{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;user-select:text;padding:var(--bs-content-padding,0 16px 16px)}.bs-sheet[data-bs-fit-content="moving"] .bs-content{scroll-padding-bottom:var(--bs-content-inset,0px)}.bs-sheet[data-bs-fit-content="moving"] .bs-content::after{content:"";display:block;flex:none;height:var(--bs-content-inset,0px)}.bs-sheet[data-bs-fit-content="rest"][data-mode="bottom"]::after{content:"";flex:0 1 max(0px,var(--bs-max-size,0px) - var(--bs-size,0px))}.bs-footer{flex:0 0 auto;padding:var(--bs-footer-padding,12px 16px calc(12px + env(safe-area-inset-bottom)));border-top:1px solid var(--bs-surface-border,var(--bs-surface-border-d));background:var(--bs-surface,var(--bs-surface-d))}.bs-sheet[data-bs-fit-content="moving"][data-mode="bottom"] .bs-footer{transform:translateY( clamp( calc(-1 * var(--bs-footer-lift-max,0px)),calc(var(--bs-size,0px) - var(--bs-max-size,0px)),0px ) )}.bs-sheet[data-bs-fit-content="moving"][data-mode="bottom"][data-bs-webgl="on"] .bs-footer{background:var(--bs-surface,var(--bs-surface-d))}.bs-sheet[data-mode="bottom"]:has(.bs-footer:not([hidden]):has(*)){padding-bottom:0}.bs-header:not(:has(*)),.bs-footer:not(:has(*)),.bs-header[hidden],.bs-footer[hidden]{display:none}.bs-screen{position:absolute;inset:0;pointer-events:none;z-index:var(--bs-z-scrim);background:var(--bs-scrim-color,var(--bs-scrim-color-d));backdrop-filter:blur(var(--bs-scrim-blur,0px));-webkit-backdrop-filter:blur(var(--bs-scrim-blur,0px));transition:opacity 0.24s cubic-bezier(0.22,1,0.36,1);will-change:opacity}.bs-root[data-dragging="true"] .bs-screen,.bs-root[data-animating="true"] .bs-screen{transition:none}.bs-scrim-overlay{z-index:calc(var(--bs-z-sheet) + 1);pointer-events:none}.bs-button-slot{position:fixed;z-index:calc(var(--bs-z-sheet) + 1);pointer-events:auto}.bs-button-slot[data-side="left"]{left:16px;bottom:calc(var(--bs-size,0px) + 12px)}.bs-button-slot[data-side="right"]{right:16px;bottom:calc(var(--bs-size,0px) + 12px)}.bs-button-slot[data-mode="top"]{bottom:auto;top:calc(var(--bs-size,0px) + 12px)}.bs-button-slot[data-mode="left"]{left:calc(var(--bs-size,0px) + 12px);right:auto;bottom:auto;top:16px}.bs-button-slot[data-mode="right"]{right:calc(var(--bs-size,0px) + 12px);left:auto;bottom:auto;top:16px}@media (prefers-reduced-motion:reduce){.bs-backdrop,.bs-handle::before,.bs-button-slot[data-side="left"],.bs-button-slot[data-side="right"]{transition:none !important}}@media (prefers-color-scheme:dark){:where(.bs-root){--bs-surface-d:#1a1a1d;--bs-surface-border-d:rgba(255,255,255,0.08);--bs-handle-color-d:rgba(255,255,255,0.45);--bs-shadow-auto:0 -3px 16px rgba(0,0,0,0.5)}}@media (forced-colors:active){.bs-sheet{border:1px solid CanvasText}.bs-handle::before{background:CanvasText;forced-color-adjust:none}.bs-backdrop,.bs-screen{forced-color-adjust:none}}.bs-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:where(.ovl-root){--ovl-surface:var(--bs-surface,var(--bs-surface-d,#ffffff));--ovl-surface-border:var(--bs-surface-border,var(--bs-surface-border-d,rgba(0,0,0,0.08)));--ovl-shadow:0 -8px 40px rgba(0,0,0,0.35);--ovl-radius:var(--bs-radius,var(--bs-radius-d,20px));--ovl-backdrop-color:rgba(0,0,0,0.5);--ovl-z-backdrop:200;--ovl-z-panel:201}.ovl-backdrop{position:fixed;inset:0;background:var(--ovl-backdrop-color);opacity:0;pointer-events:none;z-index:var(--ovl-z-backdrop)}.ovl-panel{position:fixed;background:var(--ovl-surface);box-shadow:var(--ovl-shadow);z-index:var(--ovl-z-panel);-webkit-tap-highlight-color:transparent;outline:none;transition:transform 0.32s cubic-bezier(0.29,1.24,0.84,0.99),opacity 0.32s ease-out}.ovl-panel[data-state="open"]{transform:translate3d(0,0,0);opacity:1}@starting-style{.ovl-panel[data-edge="bottom"][data-state="open"]{transform:translate3d(0,100%,0);opacity:0}.ovl-panel[data-edge="top"][data-state="open"]{transform:translate3d(0,-100%,0);opacity:0}.ovl-panel[data-edge="left"][data-state="open"]{transform:translate3d(-100%,0,0);opacity:0}.ovl-panel[data-edge="right"][data-state="open"]{transform:translate3d(100%,0,0);opacity:0}}.ovl-panel[data-edge="bottom"]{left:0;right:0;bottom:0;width:100%;border-top-left-radius:var(--ovl-radius);border-top-right-radius:var(--ovl-radius);border-top:1px solid var(--ovl-surface-border);padding-bottom:env(safe-area-inset-bottom)}.ovl-panel[data-edge="top"]{left:0;right:0;top:0;width:100%;border-bottom-left-radius:var(--ovl-radius);border-bottom-right-radius:var(--ovl-radius);border-bottom:1px solid var(--ovl-surface-border);padding-top:env(safe-area-inset-top)}.ovl-panel[data-edge="left"]{top:0;bottom:0;left:0;height:100%;border-top-right-radius:var(--ovl-radius);border-bottom-right-radius:var(--ovl-radius);border-right:1px solid var(--ovl-surface-border)}.ovl-panel[data-edge="right"]{top:0;bottom:0;right:0;height:100%;border-top-left-radius:var(--ovl-radius);border-bottom-left-radius:var(--ovl-radius);border-left:1px solid var(--ovl-surface-border)}@media (prefers-reduced-motion:reduce){.ovl-panel,.ovl-backdrop{transition:none !important}}`;
4691
4693
  }
4692
4694
  });
4693
4695
 
package/dist/features.cjs CHANGED
@@ -535,12 +535,14 @@ function contentFitFeature() {
535
535
  (p) => moving() ? move(p.size) : settle()
536
536
  );
537
537
  const offSnap = ctx.on("snap", settle);
538
+ const offDragStart = ctx.on("dragstart", () => move(ctx.getSize()));
538
539
  const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(whenIdle);
539
540
  observer?.observe(document.documentElement);
540
541
  window.addEventListener("orientationchange", whenIdle);
541
542
  return () => {
542
543
  offProgress();
543
544
  offSnap();
545
+ offDragStart();
544
546
  observer?.disconnect();
545
547
  window.removeEventListener("orientationchange", whenIdle);
546
548
  sheet.removeAttribute(FIT_ATTR);
package/dist/features.js CHANGED
@@ -533,12 +533,14 @@ function contentFitFeature() {
533
533
  (p) => moving() ? move(p.size) : settle()
534
534
  );
535
535
  const offSnap = ctx.on("snap", settle);
536
+ const offDragStart = ctx.on("dragstart", () => move(ctx.getSize()));
536
537
  const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(whenIdle);
537
538
  observer?.observe(document.documentElement);
538
539
  window.addEventListener("orientationchange", whenIdle);
539
540
  return () => {
540
541
  offProgress();
541
542
  offSnap();
543
+ offDragStart();
542
544
  observer?.disconnect();
543
545
  window.removeEventListener("orientationchange", whenIdle);
544
546
  sheet.removeAttribute(FIT_ATTR);
package/dist/index.cjs CHANGED
@@ -4310,12 +4310,14 @@ function contentFitFeature() {
4310
4310
  (p) => moving() ? move(p.size) : settle()
4311
4311
  );
4312
4312
  const offSnap = ctx.on("snap", settle);
4313
+ const offDragStart = ctx.on("dragstart", () => move(ctx.getSize()));
4313
4314
  const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(whenIdle);
4314
4315
  observer?.observe(document.documentElement);
4315
4316
  window.addEventListener("orientationchange", whenIdle);
4316
4317
  return () => {
4317
4318
  offProgress();
4318
4319
  offSnap();
4320
+ offDragStart();
4319
4321
  observer?.disconnect();
4320
4322
  window.removeEventListener("orientationchange", whenIdle);
4321
4323
  sheet.removeAttribute(FIT_ATTR);
package/dist/index.js CHANGED
@@ -4308,12 +4308,14 @@ function contentFitFeature() {
4308
4308
  (p) => moving() ? move(p.size) : settle()
4309
4309
  );
4310
4310
  const offSnap = ctx.on("snap", settle);
4311
+ const offDragStart = ctx.on("dragstart", () => move(ctx.getSize()));
4311
4312
  const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(whenIdle);
4312
4313
  observer?.observe(document.documentElement);
4313
4314
  window.addEventListener("orientationchange", whenIdle);
4314
4315
  return () => {
4315
4316
  offProgress();
4316
4317
  offSnap();
4318
+ offDragStart();
4317
4319
  observer?.disconnect();
4318
4320
  window.removeEventListener("orientationchange", whenIdle);
4319
4321
  sheet.removeAttribute(FIT_ATTR);
@@ -4295,12 +4295,14 @@ function contentFitFeature() {
4295
4295
  settle();
4296
4296
  const offProgress = ctx.on("progress", (p) => moving() ? move(p.size) : settle());
4297
4297
  const offSnap = ctx.on("snap", settle);
4298
+ const offDragStart = ctx.on("dragstart", () => move(ctx.getSize()));
4298
4299
  const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(whenIdle);
4299
4300
  observer?.observe(document.documentElement);
4300
4301
  window.addEventListener("orientationchange", whenIdle);
4301
4302
  return () => {
4302
4303
  offProgress();
4303
4304
  offSnap();
4305
+ offDragStart();
4304
4306
  observer?.disconnect();
4305
4307
  window.removeEventListener("orientationchange", whenIdle);
4306
4308
  sheet.removeAttribute(FIT_ATTR);
@@ -4293,12 +4293,14 @@ function contentFitFeature() {
4293
4293
  settle();
4294
4294
  const offProgress = ctx.on("progress", (p) => moving() ? move(p.size) : settle());
4295
4295
  const offSnap = ctx.on("snap", settle);
4296
+ const offDragStart = ctx.on("dragstart", () => move(ctx.getSize()));
4296
4297
  const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(whenIdle);
4297
4298
  observer?.observe(document.documentElement);
4298
4299
  window.addEventListener("orientationchange", whenIdle);
4299
4300
  return () => {
4300
4301
  offProgress();
4301
4302
  offSnap();
4303
+ offDragStart();
4302
4304
  observer?.disconnect();
4303
4305
  window.removeEventListener("orientationchange", whenIdle);
4304
4306
  sheet.removeAttribute(FIT_ATTR);
package/dist/qwik.cjs CHANGED
@@ -4313,12 +4313,14 @@ function contentFitFeature() {
4313
4313
  (p) => moving() ? move(p.size) : settle()
4314
4314
  );
4315
4315
  const offSnap = ctx.on("snap", settle);
4316
+ const offDragStart = ctx.on("dragstart", () => move(ctx.getSize()));
4316
4317
  const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(whenIdle);
4317
4318
  observer?.observe(document.documentElement);
4318
4319
  window.addEventListener("orientationchange", whenIdle);
4319
4320
  return () => {
4320
4321
  offProgress();
4321
4322
  offSnap();
4323
+ offDragStart();
4322
4324
  observer?.disconnect();
4323
4325
  window.removeEventListener("orientationchange", whenIdle);
4324
4326
  sheet.removeAttribute(FIT_ATTR);
package/dist/qwik.js CHANGED
@@ -4311,12 +4311,14 @@ function contentFitFeature() {
4311
4311
  (p) => moving() ? move(p.size) : settle()
4312
4312
  );
4313
4313
  const offSnap = ctx.on("snap", settle);
4314
+ const offDragStart = ctx.on("dragstart", () => move(ctx.getSize()));
4314
4315
  const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(whenIdle);
4315
4316
  observer?.observe(document.documentElement);
4316
4317
  window.addEventListener("orientationchange", whenIdle);
4317
4318
  return () => {
4318
4319
  offProgress();
4319
4320
  offSnap();
4321
+ offDragStart();
4320
4322
  observer?.disconnect();
4321
4323
  window.removeEventListener("orientationchange", whenIdle);
4322
4324
  sheet.removeAttribute(FIT_ATTR);
package/dist/react.cjs CHANGED
@@ -4320,12 +4320,14 @@ function contentFitFeature() {
4320
4320
  (p) => moving() ? move(p.size) : settle()
4321
4321
  );
4322
4322
  const offSnap = ctx.on("snap", settle);
4323
+ const offDragStart = ctx.on("dragstart", () => move(ctx.getSize()));
4323
4324
  const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(whenIdle);
4324
4325
  observer?.observe(document.documentElement);
4325
4326
  window.addEventListener("orientationchange", whenIdle);
4326
4327
  return () => {
4327
4328
  offProgress();
4328
4329
  offSnap();
4330
+ offDragStart();
4329
4331
  observer?.disconnect();
4330
4332
  window.removeEventListener("orientationchange", whenIdle);
4331
4333
  sheet.removeAttribute(FIT_ATTR);
package/dist/react.js CHANGED
@@ -4318,12 +4318,14 @@ function contentFitFeature() {
4318
4318
  (p) => moving() ? move(p.size) : settle()
4319
4319
  );
4320
4320
  const offSnap = ctx.on("snap", settle);
4321
+ const offDragStart = ctx.on("dragstart", () => move(ctx.getSize()));
4321
4322
  const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(whenIdle);
4322
4323
  observer?.observe(document.documentElement);
4323
4324
  window.addEventListener("orientationchange", whenIdle);
4324
4325
  return () => {
4325
4326
  offProgress();
4326
4327
  offSnap();
4328
+ offDragStart();
4327
4329
  observer?.disconnect();
4328
4330
  window.removeEventListener("orientationchange", whenIdle);
4329
4331
  sheet.removeAttribute(FIT_ATTR);
package/dist/solid.cjs CHANGED
@@ -4313,12 +4313,14 @@ function contentFitFeature() {
4313
4313
  (p) => moving() ? move(p.size) : settle()
4314
4314
  );
4315
4315
  const offSnap = ctx.on("snap", settle);
4316
+ const offDragStart = ctx.on("dragstart", () => move(ctx.getSize()));
4316
4317
  const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(whenIdle);
4317
4318
  observer?.observe(document.documentElement);
4318
4319
  window.addEventListener("orientationchange", whenIdle);
4319
4320
  return () => {
4320
4321
  offProgress();
4321
4322
  offSnap();
4323
+ offDragStart();
4322
4324
  observer?.disconnect();
4323
4325
  window.removeEventListener("orientationchange", whenIdle);
4324
4326
  sheet.removeAttribute(FIT_ATTR);
package/dist/solid.js CHANGED
@@ -4311,12 +4311,14 @@ function contentFitFeature() {
4311
4311
  (p) => moving() ? move(p.size) : settle()
4312
4312
  );
4313
4313
  const offSnap = ctx.on("snap", settle);
4314
+ const offDragStart = ctx.on("dragstart", () => move(ctx.getSize()));
4314
4315
  const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(whenIdle);
4315
4316
  observer?.observe(document.documentElement);
4316
4317
  window.addEventListener("orientationchange", whenIdle);
4317
4318
  return () => {
4318
4319
  offProgress();
4319
4320
  offSnap();
4321
+ offDragStart();
4320
4322
  observer?.disconnect();
4321
4323
  window.removeEventListener("orientationchange", whenIdle);
4322
4324
  sheet.removeAttribute(FIT_ATTR);
@@ -4313,12 +4313,14 @@ function contentFitFeature() {
4313
4313
  (p) => moving() ? move(p.size) : settle()
4314
4314
  );
4315
4315
  const offSnap = ctx.on("snap", settle);
4316
+ const offDragStart = ctx.on("dragstart", () => move(ctx.getSize()));
4316
4317
  const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(whenIdle);
4317
4318
  observer?.observe(document.documentElement);
4318
4319
  window.addEventListener("orientationchange", whenIdle);
4319
4320
  return () => {
4320
4321
  offProgress();
4321
4322
  offSnap();
4323
+ offDragStart();
4322
4324
  observer?.disconnect();
4323
4325
  window.removeEventListener("orientationchange", whenIdle);
4324
4326
  sheet.removeAttribute(FIT_ATTR);
package/dist/styles.css CHANGED
@@ -280,20 +280,18 @@
280
280
  padding: var(--bs-content-padding, 0 16px 16px);
281
281
  }
282
282
 
283
- .bs-sheet[data-bs-fit-content="moving"] .bs-content,
284
- .bs-sheet[data-bs-fit-content][data-bs-webgl="on"] .bs-content {
283
+ .bs-sheet[data-bs-fit-content="moving"] .bs-content {
285
284
  scroll-padding-bottom: var(--bs-content-inset, 0px);
286
285
  }
287
286
 
288
- .bs-sheet[data-bs-fit-content="moving"] .bs-content::after,
289
- .bs-sheet[data-bs-fit-content][data-bs-webgl="on"] .bs-content::after {
287
+ .bs-sheet[data-bs-fit-content="moving"] .bs-content::after {
290
288
  content: "";
291
289
  display: block;
292
290
  flex: none;
293
291
  height: var(--bs-content-inset, 0px);
294
292
  }
295
293
 
296
- .bs-sheet[data-bs-fit-content="rest"][data-mode="bottom"]:not([data-bs-webgl="on"])::after {
294
+ .bs-sheet[data-bs-fit-content="rest"][data-mode="bottom"]::after {
297
295
  content: "";
298
296
  flex: 0 1 max(0px, var(--bs-max-size, 0px) - var(--bs-size, 0px));
299
297
  }
@@ -305,7 +303,7 @@
305
303
  background: var(--bs-surface, var(--bs-surface-d));
306
304
  }
307
305
 
308
- .bs-sheet[data-bs-fit-content="moving"][data-mode="bottom"]:not([data-bs-webgl="on"]) .bs-footer {
306
+ .bs-sheet[data-bs-fit-content="moving"][data-mode="bottom"] .bs-footer {
309
307
  transform: translateY(
310
308
  clamp(
311
309
  calc(-1 * var(--bs-footer-lift-max, 0px)),
@@ -315,6 +313,10 @@
315
313
  );
316
314
  }
317
315
 
316
+ .bs-sheet[data-bs-fit-content="moving"][data-mode="bottom"][data-bs-webgl="on"] .bs-footer {
317
+ background: var(--bs-surface, var(--bs-surface-d));
318
+ }
319
+
318
320
  .bs-sheet[data-mode="bottom"]:has(.bs-footer:not([hidden]):has(*)) {
319
321
  padding-bottom: 0;
320
322
  }
@@ -4312,12 +4312,14 @@ function contentFitFeature() {
4312
4312
  (p) => moving() ? move(p.size) : settle()
4313
4313
  );
4314
4314
  const offSnap = ctx.on("snap", settle);
4315
+ const offDragStart = ctx.on("dragstart", () => move(ctx.getSize()));
4315
4316
  const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(whenIdle);
4316
4317
  observer?.observe(document.documentElement);
4317
4318
  window.addEventListener("orientationchange", whenIdle);
4318
4319
  return () => {
4319
4320
  offProgress();
4320
4321
  offSnap();
4322
+ offDragStart();
4321
4323
  observer?.disconnect();
4322
4324
  window.removeEventListener("orientationchange", whenIdle);
4323
4325
  sheet.removeAttribute(FIT_ATTR);
@@ -4310,12 +4310,14 @@ function contentFitFeature() {
4310
4310
  (p) => moving() ? move(p.size) : settle()
4311
4311
  );
4312
4312
  const offSnap = ctx.on("snap", settle);
4313
+ const offDragStart = ctx.on("dragstart", () => move(ctx.getSize()));
4313
4314
  const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(whenIdle);
4314
4315
  observer?.observe(document.documentElement);
4315
4316
  window.addEventListener("orientationchange", whenIdle);
4316
4317
  return () => {
4317
4318
  offProgress();
4318
4319
  offSnap();
4320
+ offDragStart();
4319
4321
  observer?.disconnect();
4320
4322
  window.removeEventListener("orientationchange", whenIdle);
4321
4323
  sheet.removeAttribute(FIT_ATTR);
package/dist/svelte.cjs CHANGED
@@ -4334,12 +4334,14 @@ function contentFitFeature() {
4334
4334
  (p) => moving() ? move(p.size) : settle()
4335
4335
  );
4336
4336
  const offSnap = ctx.on("snap", settle);
4337
+ const offDragStart = ctx.on("dragstart", () => move(ctx.getSize()));
4337
4338
  const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(whenIdle);
4338
4339
  observer?.observe(document.documentElement);
4339
4340
  window.addEventListener("orientationchange", whenIdle);
4340
4341
  return () => {
4341
4342
  offProgress();
4342
4343
  offSnap();
4344
+ offDragStart();
4343
4345
  observer?.disconnect();
4344
4346
  window.removeEventListener("orientationchange", whenIdle);
4345
4347
  sheet.removeAttribute(FIT_ATTR);
package/dist/svelte.js CHANGED
@@ -4312,12 +4312,14 @@ function contentFitFeature() {
4312
4312
  (p) => moving() ? move(p.size) : settle()
4313
4313
  );
4314
4314
  const offSnap = ctx.on("snap", settle);
4315
+ const offDragStart = ctx.on("dragstart", () => move(ctx.getSize()));
4315
4316
  const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(whenIdle);
4316
4317
  observer?.observe(document.documentElement);
4317
4318
  window.addEventListener("orientationchange", whenIdle);
4318
4319
  return () => {
4319
4320
  offProgress();
4320
4321
  offSnap();
4322
+ offDragStart();
4321
4323
  observer?.disconnect();
4322
4324
  window.removeEventListener("orientationchange", whenIdle);
4323
4325
  sheet.removeAttribute(FIT_ATTR);
package/dist/vue.cjs CHANGED
@@ -4312,12 +4312,14 @@ function contentFitFeature() {
4312
4312
  (p) => moving() ? move(p.size) : settle()
4313
4313
  );
4314
4314
  const offSnap = ctx.on("snap", settle);
4315
+ const offDragStart = ctx.on("dragstart", () => move(ctx.getSize()));
4315
4316
  const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(whenIdle);
4316
4317
  observer?.observe(document.documentElement);
4317
4318
  window.addEventListener("orientationchange", whenIdle);
4318
4319
  return () => {
4319
4320
  offProgress();
4320
4321
  offSnap();
4322
+ offDragStart();
4321
4323
  observer?.disconnect();
4322
4324
  window.removeEventListener("orientationchange", whenIdle);
4323
4325
  sheet.removeAttribute(FIT_ATTR);
package/dist/vue.js CHANGED
@@ -4310,12 +4310,14 @@ function contentFitFeature() {
4310
4310
  (p) => moving() ? move(p.size) : settle()
4311
4311
  );
4312
4312
  const offSnap = ctx.on("snap", settle);
4313
+ const offDragStart = ctx.on("dragstart", () => move(ctx.getSize()));
4313
4314
  const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(whenIdle);
4314
4315
  observer?.observe(document.documentElement);
4315
4316
  window.addEventListener("orientationchange", whenIdle);
4316
4317
  return () => {
4317
4318
  offProgress();
4318
4319
  offSnap();
4320
+ offDragStart();
4319
4321
  observer?.disconnect();
4320
4322
  window.removeEventListener("orientationchange", whenIdle);
4321
4323
  sheet.removeAttribute(FIT_ATTR);