/** Placement of the sheet content inside the viewport. */ type SheetPlacement = 'top' | 'bottom' | 'left' | 'right' | 'center'; /** Swipe track used when the content can be dismissed from an edge. */ type SheetTrack = Exclude; /** Viewport edges protected by safe-area insets. */ type SheetSafeAreaEdge = 'top' | 'bottom' | 'left' | 'right'; /** Safe-area behavior for Capacitor WebViews and mobile browsers. */ type SheetSafeAreaMode = boolean | 'auto' | 'all' | 'none' | SheetSafeAreaEdge[]; /** CSS length or pixel number used for sheet container insets. */ type SheetInsetValue = string | number; /** Extra container offsets applied around the sheet viewport. */ type SheetContainerOffset = Partial>; /** Runtime travel state emitted by sheet lifecycle events. */ type SheetTravelStatus = 'idle' | 'entering' | 'exiting' | 'dragging' | 'settling'; /** Built-in animation presets tuned for mobile WebViews. */ type SheetAnimationPreset = 'gentle' | 'smooth' | 'snappy'; /** Easing string accepted by the Web Animations API. */ type SheetEasing = 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | string; /** Declarative transform/opacity animation driven by sheet travel or stack progress. */ type SheetProgressAnimation = Record string; }) => string | number | null | undefined) | null | undefined>; /** Animation options for programmatic present, dismiss, and detent steps. */ interface SheetAnimationSettings { /** Named preset. Defaults to `smooth`. */ preset?: SheetAnimationPreset; /** Duration in milliseconds. Ignored when `skip` is true. */ duration?: number; /** CSS easing used by WAAPI. */ easing?: SheetEasing; /** Skip the animation and snap to the final state. */ skip?: boolean | 'auto'; /** For dual-track sheets, select the track used by this programmatic movement. */ track?: SheetTrack; /** Keep content fixed while related outlets/backdrops animate. */ contentMove?: boolean; } /** Trigger action used by `` and ``. */ type SheetTriggerAction = 'present' | 'dismiss' | 'toggle' | 'step' | { type: 'step'; direction?: 'up' | 'down'; detent?: number; }; /** Options accepted by the `` custom element and setup helpers. */ interface SheetOptions { /** Unique component id used by `for` attributes. */ componentId?: string; /** Sheet stack id. Use the closest `` when omitted. */ stack?: string; /** Initial uncontrolled presentation state. */ defaultPresented?: boolean; /** Controlled presentation state. */ presented?: boolean; /** Initial detent index for uncontrolled sheets. */ defaultActiveDetent?: number; /** Controlled detent index. */ activeDetent?: number; /** Intermediate detents between dismissed `0` and fully presented `n`. */ detents?: string | string[]; /** WAI-ARIA role applied to ``. */ sheetRole?: 'dialog' | 'alertdialog' | 'status' | string; /** Where content sits when fully presented. */ contentPlacement?: SheetPlacement; /** Safe-area edges protected by the sheet viewport. Defaults to `auto`. */ safeArea?: SheetSafeAreaMode; /** Render as a floating sheet with detached edge rounding. */ detached?: boolean; /** Extra top inset added to the sheet viewport, equivalent to Gorhom `topInset`. */ topInset?: SheetInsetValue; /** Extra bottom inset added to the sheet viewport, equivalent to Gorhom `bottomInset`. */ bottomInset?: SheetInsetValue; /** Extra left inset added to the sheet viewport. */ leftInset?: SheetInsetValue; /** Extra right inset added to the sheet viewport. */ rightInset?: SheetInsetValue; /** Extra per-edge container offsets, equivalent to Gorhom `containerOffset`. */ containerOffset?: SheetContainerOffset; /** Edge tracks that can dismiss the sheet. */ tracks?: SheetTrack | SheetTrack[]; /** Enables pointer, touch, trackpad, and wheel travel gestures. */ swipe?: boolean; /** Allows swiping to detent `0` and dismissing. */ swipeDismissal?: boolean; /** Allows a soft overshoot past the end detents. */ swipeOvershoot?: boolean; /** Prevents gestures from escaping to page scroll while the sheet can travel. */ swipeTrap?: boolean; /** Prevents interaction outside the sheet view while presented. */ inertOutside?: boolean; /** Blocks OS edge navigation conflicts near the travel edge when possible. */ nativeEdgeSwipePrevention?: boolean; /** Keeps focused inputs visible while the visual viewport changes. */ nativeFocusScrollPrevention?: boolean; /** Dismiss when clicking outside the sheet content. */ closeOnOutsideClick?: boolean; /** Dismiss when pressing Escape. */ closeOnEscape?: boolean; /** Keep keyboard focus inside the sheet view while modal. */ focusTrap?: boolean; /** Restore focus to the trigger when dismissed. */ restoreFocus?: boolean; /** Blend the page theme color with the backdrop color. */ themeColorDimming?: false | 'auto'; /** Animation settings used when presenting. */ enteringAnimationSettings?: SheetAnimationSettings; /** Animation settings used when dismissing. */ exitingAnimationSettings?: SheetAnimationSettings; /** Animation settings used when stepping between detents. */ steppingAnimationSettings?: SheetAnimationSettings; } /** Detail emitted by presentation state changes. */ interface SheetPresentedChangeEvent { presented: boolean; source: 'programmatic' | 'trigger' | 'gesture' | 'escape' | 'outside'; } /** Detail emitted by detent state changes. */ interface SheetActiveDetentChangeEvent { activeDetent: number; previousActiveDetent: number; } /** Detail emitted continuously while the sheet travels. */ interface SheetTravelEvent { /** Current normalized travel progress from dismissed `0` to fully presented `1`. */ progress: number; /** Active detent index nearest to the current travel position. */ activeDetent: number; /** Current offset from the presented position, in em. */ offset: number; /** Current travel status. */ status: SheetTravelStatus; } /** Detail emitted when the sheet travel status changes. */ interface SheetTravelStatusChangeEvent { /** Previous travel status. */ previousStatus: SheetTravelStatus; /** Current travel status. */ status: SheetTravelStatus; } /** Detail emitted when the available detent travel range changes. */ interface SheetTravelRangeChangeEvent { /** Detent offsets from dismissed to fully presented, expressed in em. */ offsets: number[]; /** Number of active travel stops, including dismissed and fully presented stops. */ count: number; } /** Imperative controller exposed by ``. */ interface ScrollController { /** Return scroll progress from `0` to `1`. */ getProgress: () => number; /** Return traveled distance in CSS pixels. */ getDistance: () => number; /** Return available travel distance in CSS pixels. */ getAvailableDistance: () => number; /** Scroll to an absolute progress or distance. */ scrollTo: (options: ScrollToTravelOptions) => void; /** Scroll by a relative progress or distance. */ scrollBy: (options: ScrollByTravelOptions) => void; } /** Options for absolute scroll movement. */ interface ScrollToTravelOptions { /** Destination progress from `0` to `1`. */ progress?: number; /** Destination distance in CSS pixels. */ distance?: number; /** Native scroll behavior. */ behavior?: ScrollBehavior; } /** Options for relative scroll movement. */ interface ScrollByTravelOptions { /** Relative progress delta from `-1` to `1`. */ progress?: number; /** Relative distance in CSS pixels. */ distance?: number; /** Native scroll behavior. */ behavior?: ScrollBehavior; } /** Framework-agnostic scroll primitive with progress helpers. */ declare class CapScroll extends HTMLElement { private scrollTarget; connectedCallback(): void; disconnectedCallback(): void; /** Return scroll progress from `0` to `1`. */ getProgress(): number; /** Return traveled distance in CSS pixels. */ getDistance(): number; /** Return available travel distance in CSS pixels. */ getAvailableDistance(): number; /** Scroll to an absolute progress or distance. Also supports the native HTMLElement overloads. */ scrollTo(options?: ScrollToOptions | ScrollToTravelOptions): void; scrollTo(x: number, y: number): void; /** Scroll by a relative progress or distance. Also supports the native HTMLElement overloads. */ scrollBy(options?: ScrollToOptions | ScrollByTravelOptions): void; scrollBy(x: number, y: number): void; private get axis(); private resolveDistance; private readonly handleScroll; } /** Structural content wrapper for ``. */ declare class CapScrollContent extends HTMLElement { connectedCallback(): void; } type Source = SheetPresentedChangeEvent['source']; interface SheetParts { view?: HTMLElement; backdrop?: HTMLElement; content?: HTMLElement; title?: HTMLElement; description?: HTMLElement; outlets: Set; islands: Set; externalOverlays: Set; autoFocusTarget?: HTMLElement; } /** Imperative controller backing a `` custom element. */ declare class SheetController { readonly root: HTMLElement; readonly id: string; readonly parts: SheetParts; options: SheetOptions; presented: boolean; activeDetent: number; status: SheetTravelStatus; private detentOffsetsPx; private hiddenOffsetPx; private currentOffsetPx; private activeTrack; private pointerTravel; private connected; private lockedScroll; private inertHeldElements; private remeasureFrame; private activeMotion; private pendingSettle; /** Entering completion deferred by a drag that interrupted present(); runs once the sheet settles. */ private deferredEnteringComplete; /** Resolves the in-flight present() after entering lifecycle completes or is abandoned. */ private settlePresentPromise; private previousFocus; private hasThemeDimmer; private stackId; private documentListenersAttached; private viewListenersElement; private visualViewportListenersAttached; private readonly handleVisualViewportResize; private readonly handleFocusIn; private readonly handleDocumentKeyDown; private readonly handleViewClick; private readonly handlePointerDown; private readonly handlePointerMove; private readonly handlePointerUp; private readonly handleWheel; constructor(root: HTMLElement); /** Connect the controller to the DOM and initialize current state. */ connect(): void; /** Disconnect listeners and restore outside DOM state. */ disconnect(): void; /** Update options from attributes or setup helpers. */ configure(options: Partial): void; /** Register a view, backdrop, content, or semantic part. */ registerPart(part: keyof Omit, element: HTMLElement): void; /** Unregister a view, backdrop, content, or semantic part. */ unregisterPart(part: keyof Omit, element: HTMLElement): void; /** Register an outlet animated by sheet progress. */ registerOutlet(element: HTMLElement): void; /** Unregister an outlet. */ unregisterOutlet(element: HTMLElement): void; /** Register an outside island that remains interactive with inert outside enabled. */ registerIsland(element: HTMLElement): void; /** Unregister an outside island. */ unregisterIsland(element: HTMLElement): void; /** Present the sheet. */ present(options?: { source?: Source; animation?: SheetAnimationSettings; detent?: number; }): Promise; /** Dismiss the sheet. */ dismiss(options?: { source?: Source; animation?: SheetAnimationSettings; }): Promise; /** Toggle presentation state. */ toggle(options?: { source?: Source; animation?: SheetAnimationSettings; }): Promise; /** Step to a specific detent index. */ stepTo(detent: number, options?: { source?: Source; animation?: SheetAnimationSettings; }): Promise; /** * Animate to the active detent and run the completion once the motion finishes. * When the motion is cancelled by a pointerdown, the settle stays pending so a tap * that never becomes a drag can resume it. */ private releasePresentAwait; private abandonDeferredEntering; private runSettleMotion; /** Step up or down one detent. */ step(direction?: 'up' | 'down', options?: { source?: Source; animation?: SheetAnimationSettings; }): Promise; /** Recalculate content size and detent offsets. */ remeasure(): void; /** Read current normalized travel details. */ getTravelEvent(): SheetTravelEvent; private resolveInitialDetent; private applyOffset; private animateTo; private getProgressForOffset; private limitOffset; private nearestDetentForOffset; private hasInteractiveOutside; private isNativeEdgePointer; private applySafeArea; private addGlobalListeners; private removeGlobalListeners; private addViewListeners; private removeViewListeners; private addVisualViewportListeners; private removeVisualViewportListeners; private updateDomState; private linkAccessibleNames; private focusInitialElement; private restoreFocus; private trapFocus; private lockPage; private unlockPage; private setKeyboardOffset; private scheduleRemeasure; private cancelActiveMotion; private syncOffsetFromRenderedPosition; private readOffsetPxFromTransform; private releaseVelocity; private getAllowedOutsideElements; private applyInertForElement; private applyInert; private clearInert; private releaseInertHold; private reapplyDocumentInert; private retainThemeDimmer; private releaseThemeDimmer; private updateThemeDimming; private applyOutletAnimations; private updateOutletProgress; private emitPresentedChange; private emitActiveDetentChange; private updateDetentState; private registerStack; private unregisterStack; private getStackZIndex; private updateStack; private applyStackingAnimations; private setStatus; } /** Root custom element coordinating sheet state, accessibility, gestures, and detents. */ declare class CapSheet extends HTMLElement { readonly controller: SheetController; private syncingAttribute; static get observedAttributes(): string[]; connectedCallback(): void; disconnectedCallback(): void; attributeChangedCallback(name: string): void; /** True when the sheet is currently presented. */ get presented(): boolean; set presented(value: boolean); /** Current active detent index. */ get activeDetent(): number; set activeDetent(value: number); /** Configure the sheet imperatively without depending on a framework adapter. */ configure(options: Partial): void; /** Present the sheet. */ present(options?: { source?: 'programmatic' | 'trigger'; animation?: SheetAnimationSettings; detent?: number; }): Promise; /** Dismiss the sheet. */ dismiss(options?: { source?: 'programmatic' | 'trigger' | 'gesture' | 'escape' | 'outside'; animation?: SheetAnimationSettings; }): Promise; /** Toggle presentation state. */ toggle(options?: { source?: 'programmatic' | 'trigger'; animation?: SheetAnimationSettings; }): Promise; /** Step to a specific detent index. */ stepTo(detent: number, options?: { source?: 'programmatic' | 'trigger' | 'gesture'; animation?: SheetAnimationSettings; }): Promise; /** Step one detent up or down. */ step(direction?: 'up' | 'down', options?: { source?: 'programmatic' | 'trigger'; animation?: SheetAnimationSettings; }): Promise; private syncAttribute; } declare function getSheetFromElement(element: Element): CapSheet | null; declare function applySheetOptions(element: HTMLElement, options: Partial): void; /** Declarative element that presents, dismisses, toggles, or steps a sheet. */ declare class CapSheetTrigger extends HTMLElement { connectedCallback(): void; disconnectedCallback(): void; private readonly handleClick; private readonly handleKeyDown; } /** Drag handle that can also step a sheet when activated by keyboard or click. */ declare class CapSheetHandle extends HTMLElement { connectedCallback(): void; disconnectedCallback(): void; private readonly handleClick; private readonly handleKeyDown; } /** Host element that identifies a sheet stack. */ declare class CapSheetStack extends HTMLElement { connectedCallback(): void; } /** Element that receives `--cap-sheet-progress` and optional travel animations. */ declare class CapSheetOutlet extends HTMLElement { travelAnimation?: SheetProgressAnimation; stackingAnimation?: SheetProgressAnimation; connectedCallback(): void; disconnectedCallback(): void; } /** Composition wrapper for detached sheets, cards, pages, lightboxes, and custom nested layouts. */ declare class CapSheetSpecialWrapper extends HTMLElement { connectedCallback(): void; } /** Content wrapper paired with ``. */ declare class CapSheetSpecialWrapperContent extends HTMLElement { connectedCallback(): void; } /** Marks a subtree as allowed while outside content is inert. */ declare class CapIsland extends HTMLElement { connectedCallback(): void; disconnectedCallback(): void; } /** Registers third-party overlay DOM with the front sheet's inert-outside system. */ declare class CapExternalOverlay extends HTMLElement { private registered; connectedCallback(): void; disconnectedCallback(): void; private register; private unregister; } /** Fixed element helper intended for sheet-aware headers, toolbars, or floating controls. */ declare class CapFixed extends HTMLElement { connectedCallback(): void; } /** Visually hides content while leaving it available to assistive technology. */ declare class CapVisuallyHidden extends HTMLElement { connectedCallback(): void; } declare abstract class SheetPartElement extends HTMLElement { abstract readonly partName: 'view' | 'backdrop' | 'content' | 'title' | 'description' | 'autoFocusTarget'; connectedCallback(): void; disconnectedCallback(): void; } /** Full-screen layer that hosts a sheet backdrop and content. */ declare class CapSheetView extends SheetPartElement { readonly partName: "view"; connectedCallback(): void; } /** Modal backdrop synchronized with sheet progress. */ declare class CapSheetBackdrop extends SheetPartElement { readonly partName: "backdrop"; } /** Main sheet surface. */ declare class CapSheetContent extends SheetPartElement { readonly partName: "content"; connectedCallback(): void; } /** Decorative background that can extend beyond rounded sheet corners. */ declare class CapSheetBleedingBackground extends HTMLElement { private bleedingParent; connectedCallback(): void; disconnectedCallback(): void; private updateParentBleedAttribute; } /** Accessible title used for `aria-labelledby`. */ declare class CapSheetTitle extends SheetPartElement { readonly partName: "title"; connectedCallback(): void; } /** Accessible description used for `aria-describedby`. */ declare class CapSheetDescription extends SheetPartElement { readonly partName: "description"; connectedCallback(): void; } /** Focus target used when the sheet is presented. */ declare class CapAutoFocusTarget extends SheetPartElement { readonly partName: "autoFocusTarget"; connectedCallback(): void; } /** Optional portal wrapper. Set `disabled` to keep children in place. */ declare class CapSheetPortal extends HTMLElement { private host; connectedCallback(): void; disconnectedCallback(): void; } declare const CSS = "\n:root {\n --cap-sheet-100-lvh-dvh-pct: 100%;\n --cap-sheet-backdrop-color: rgb(0 0 0);\n --cap-sheet-backdrop-opacity: 0.44;\n --cap-sheet-radius: 1.5em;\n --cap-sheet-handle-color: rgb(115 115 115);\n --cap-sheet-surface: Canvas;\n --cap-sheet-shadow: 0 0.5em 2.5em rgb(0 0 0 / 0.18);\n --cap-sheet-z-index: 1000;\n --cap-sheet-safe-area-top: max(env(safe-area-inset-top, 0em), var(--safe-area-inset-top, 0em));\n --cap-sheet-safe-area-bottom: max(env(safe-area-inset-bottom, 0em), var(--safe-area-inset-bottom, 0em));\n --cap-sheet-safe-area-left: max(env(safe-area-inset-left, 0em), var(--safe-area-inset-left, 0em));\n --cap-sheet-safe-area-right: max(env(safe-area-inset-right, 0em), var(--safe-area-inset-right, 0em));\n --cap-sheet-applied-safe-area-top: var(--cap-sheet-safe-area-top);\n --cap-sheet-applied-safe-area-bottom: var(--cap-sheet-safe-area-bottom);\n --cap-sheet-applied-safe-area-left: var(--cap-sheet-safe-area-left);\n --cap-sheet-applied-safe-area-right: var(--cap-sheet-safe-area-right);\n --cap-sheet-container-offset-top: 0em;\n --cap-sheet-container-offset-bottom: 0em;\n --cap-sheet-container-offset-left: 0em;\n --cap-sheet-container-offset-right: 0em;\n --cap-sheet-keyboard-offset: 0em;\n}\n\n@supports (height: 1dvh) {\n :root {\n --cap-sheet-100-lvh-dvh-pct: 100dvh;\n }\n}\n\ncap-sheet,\ncap-sheet-portal,\ncap-sheet-special-wrapper,\ncap-sheet-special-wrapper-content,\ncap-sheet-stack {\n display: contents;\n}\n\ncap-sheet-view {\n position: fixed;\n inset: 0;\n display: grid;\n width: 100%;\n height: var(--cap-sheet-100-lvh-dvh-pct);\n z-index: var(--cap-sheet-z-index);\n pointer-events: none;\n touch-action: none;\n overscroll-behavior: none;\n contain: layout style;\n box-sizing: border-box;\n padding-top: calc(var(--cap-sheet-applied-safe-area-top, 0em) + var(--cap-sheet-container-offset-top, 0em));\n padding-bottom: calc(\n var(--cap-sheet-applied-safe-area-bottom, 0em) + var(--cap-sheet-container-offset-bottom, 0em) +\n var(--cap-sheet-keyboard-offset, 0em)\n );\n padding-left: calc(var(--cap-sheet-applied-safe-area-left, 0em) + var(--cap-sheet-container-offset-left, 0em));\n padding-right: calc(var(--cap-sheet-applied-safe-area-right, 0em) + var(--cap-sheet-container-offset-right, 0em));\n}\n\ncap-sheet-view[hidden] {\n display: none !important;\n}\n\ncap-sheet-view[content-placement=\"top\"] {\n align-items: start;\n justify-items: center;\n}\n\ncap-sheet-view[content-placement=\"bottom\"],\ncap-sheet-view:not([content-placement]) {\n align-items: end;\n justify-items: center;\n}\n\ncap-sheet-view[content-placement=\"left\"] {\n align-items: center;\n justify-items: start;\n}\n\ncap-sheet-view[content-placement=\"right\"] {\n align-items: center;\n justify-items: end;\n}\n\ncap-sheet-view[content-placement=\"center\"] {\n align-items: center;\n justify-items: center;\n}\n\ncap-sheet-backdrop {\n position: absolute;\n inset: 0;\n display: block;\n background: var(--cap-sheet-backdrop-color);\n opacity: 0;\n pointer-events: none;\n touch-action: none;\n will-change: opacity;\n}\n\ncap-sheet-content {\n --cap-sheet-content-border-radius: var(--cap-sheet-radius) var(--cap-sheet-radius) 0 0;\n box-sizing: border-box;\n position: relative;\n display: block;\n width: min(100%, 34em);\n max-height: 100%;\n color: CanvasText;\n background: var(--cap-sheet-surface);\n border-radius: var(--cap-sheet-content-border-radius);\n box-shadow: var(--cap-sheet-shadow), var(--cap-sheet-edge-bleed-shadow, 0 0 0 0 transparent);\n overflow: auto;\n overscroll-behavior: contain;\n pointer-events: auto;\n touch-action: pan-x pan-y;\n will-change: transform, opacity;\n -webkit-overflow-scrolling: touch;\n}\n\ncap-sheet-view[content-placement=\"top\"] cap-sheet-content {\n --cap-sheet-content-border-radius: 0 0 var(--cap-sheet-radius) var(--cap-sheet-radius);\n}\n\ncap-sheet-view[content-placement=\"left\"] cap-sheet-content {\n width: min(88%, 28em);\n height: 100%;\n max-height: 100%;\n --cap-sheet-content-border-radius: 0 var(--cap-sheet-radius) var(--cap-sheet-radius) 0;\n}\n\ncap-sheet-view[content-placement=\"right\"] cap-sheet-content {\n width: min(88%, 28em);\n height: 100%;\n max-height: 100%;\n --cap-sheet-content-border-radius: var(--cap-sheet-radius) 0 0 var(--cap-sheet-radius);\n}\n\ncap-sheet-view[content-placement=\"center\"] cap-sheet-content {\n width: min(90%, 30em);\n max-height: min(90%, 42em);\n --cap-sheet-content-border-radius: var(--cap-sheet-radius);\n}\n\ncap-sheet-view[data-detached=\"true\"] cap-sheet-content {\n --cap-sheet-content-border-radius: var(--cap-sheet-detached-radius, var(--cap-sheet-radius));\n}\n\ncap-sheet-view[data-detached=\"true\"] cap-sheet-content[data-cap-sheet-bleeds] {\n --cap-sheet-edge-bleed-shadow: 0 0 0 0 transparent;\n}\n\ncap-sheet-bleeding-background {\n display: none;\n}\n\ncap-sheet-view[content-placement=\"bottom\"] cap-sheet-content[data-cap-sheet-bleeds],\ncap-sheet-view:not([content-placement]) cap-sheet-content[data-cap-sheet-bleeds] {\n --cap-sheet-edge-bleed-shadow: 0 8em 0 0 var(--cap-sheet-surface);\n}\n\ncap-sheet-view[content-placement=\"top\"] cap-sheet-content[data-cap-sheet-bleeds] {\n --cap-sheet-edge-bleed-shadow: 0 -8em 0 0 var(--cap-sheet-surface);\n}\n\ncap-sheet-view[content-placement=\"left\"] cap-sheet-content[data-cap-sheet-bleeds] {\n --cap-sheet-edge-bleed-shadow: -8em 0 0 0 var(--cap-sheet-surface);\n}\n\ncap-sheet-view[content-placement=\"right\"] cap-sheet-content[data-cap-sheet-bleeds] {\n --cap-sheet-edge-bleed-shadow: 8em 0 0 0 var(--cap-sheet-surface);\n}\n\ncap-sheet-handle {\n box-sizing: border-box;\n display: grid;\n place-items: center;\n width: 100%;\n height: 2.25em;\n cursor: grab;\n touch-action: none;\n}\n\ncap-sheet-handle::before {\n content: \"\";\n display: block;\n width: 2.75em;\n height: 0.3125em;\n border-radius: 999em;\n background: var(--cap-sheet-handle-color);\n opacity: 0.65;\n}\n\ncap-sheet-handle:active {\n cursor: grabbing;\n}\n\ncap-sheet-title,\ncap-sheet-description {\n display: block;\n}\n\ncap-sheet-outlet {\n display: block;\n transform-origin: center;\n will-change: transform, opacity, filter;\n}\n\ncap-scroll {\n display: block;\n overflow: auto;\n overscroll-behavior: contain;\n -webkit-overflow-scrolling: touch;\n scroll-behavior: smooth;\n}\n\ncap-scroll[axis=\"x\"] {\n overflow-x: auto;\n overflow-y: hidden;\n}\n\ncap-scroll[axis=\"y\"],\ncap-scroll:not([axis]) {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\ncap-scroll-content {\n display: block;\n min-width: 100%;\n min-height: 100%;\n}\n\ncap-fixed {\n position: fixed;\n inset-inline: 0;\n z-index: calc(var(--cap-sheet-z-index) + 1);\n}\n\ncap-island,\ncap-external-overlay {\n display: contents;\n}\n\ncap-visually-hidden,\ncap-auto-focus-target[hidden-target] {\n position: absolute;\n width: 0.0625em;\n height: 0.0625em;\n margin: -0.0625em;\n overflow: hidden;\n clip: rect(0 0 0 0);\n white-space: nowrap;\n border: 0;\n padding: 0;\n}\n"; /** Injects the structural styles required by the sheet web components. */ declare function injectCapSheetStyles(root?: Document): void; /** Updates the browser theme color while preserving sheet dimming overlays. */ declare function updateThemeColor(color: string, documentRef?: Document): void; /** * @capgo/capacitor-sheets * * Framework-agnostic sheet, drawer, dialog, and scroll primitives for Capacitor apps. * The package is implemented with standards-based custom elements so the same API * works in React, Vue, Angular, Svelte, Solid, or plain TypeScript. */ /** Initialize all custom elements and structural styles. */ declare function initCapSheets(): void; declare global { interface HTMLElementTagNameMap { 'cap-sheet': CapSheet; 'cap-sheet-trigger': CapSheetTrigger; 'cap-sheet-portal': CapSheetPortal; 'cap-sheet-view': CapSheetView; 'cap-sheet-backdrop': CapSheetBackdrop; 'cap-sheet-content': CapSheetContent; 'cap-sheet-bleeding-background': CapSheetBleedingBackground; 'cap-sheet-handle': CapSheetHandle; 'cap-sheet-title': CapSheetTitle; 'cap-sheet-description': CapSheetDescription; 'cap-sheet-special-wrapper': CapSheetSpecialWrapper; 'cap-sheet-special-wrapper-content': CapSheetSpecialWrapperContent; 'cap-sheet-stack': CapSheetStack; 'cap-sheet-outlet': CapSheetOutlet; 'cap-scroll': CapScroll; 'cap-scroll-content': CapScrollContent; 'cap-fixed': CapFixed; 'cap-island': CapIsland; 'cap-external-overlay': CapExternalOverlay; 'cap-visually-hidden': CapVisuallyHidden; 'cap-auto-focus-target': CapAutoFocusTarget; } } export { CSS as CAP_SHEETS_CSS, CapAutoFocusTarget, CapExternalOverlay, CapFixed, CapIsland, CapScroll, CapScrollContent, CapSheet, CapSheetBackdrop, CapSheetBleedingBackground, CapSheetContent, CapSheetDescription, CapSheetHandle, CapSheetOutlet, CapSheetPortal, CapSheetSpecialWrapper, CapSheetSpecialWrapperContent, CapSheetStack, CapSheetTitle, CapSheetTrigger, CapSheetView, CapVisuallyHidden, type ScrollByTravelOptions, type ScrollController, type ScrollToTravelOptions, type SheetActiveDetentChangeEvent, type SheetAnimationPreset, type SheetAnimationSettings, type SheetContainerOffset, SheetController, type SheetEasing, type SheetInsetValue, type SheetOptions, type SheetPlacement, type SheetProgressAnimation, type SheetSafeAreaEdge, type SheetSafeAreaMode, type SheetTrack, type SheetTravelEvent, type SheetTravelRangeChangeEvent, type SheetTravelStatus, type SheetTravelStatusChangeEvent, type SheetTriggerAction, applySheetOptions, getSheetFromElement, initCapSheets, injectCapSheetStyles, updateThemeColor };