aura-glass
Version:
A comprehensive glassmorphism design system for React applications with 142+ production-ready components
84 lines • 2.6 kB
TypeScript
import React from "react";
export interface Glass360ViewerMediaSource {
type: "image" | "video";
url: string;
projection?: "equirectangular" | "cubemap" | "cylindrical" | "dome";
title?: string;
description?: string;
thumbnail?: string;
duration?: number;
}
export interface Glass360ViewerHotspot {
id: string;
x: number;
y: number;
title: string;
description?: string;
icon?: React.ReactNode;
color?: string;
onClick?: () => void;
customContent?: React.ReactNode;
}
export interface Glass360ViewerControls {
zoom?: boolean;
pan?: boolean;
autoRotate?: boolean;
gyroscope?: boolean;
fullscreen?: boolean;
vr?: boolean;
playback?: boolean;
volume?: boolean;
}
export interface Glass360ViewerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onError"> {
/** Media source */
source: Glass360ViewerMediaSource;
/** Alternative sources for fallback */
sources?: Glass360ViewerMediaSource[];
/** Interactive hotspots */
hotspots?: Glass360ViewerHotspot[];
/** Controls configuration */
controls?: Glass360ViewerControls;
/** Initial view settings */
initialView?: {
yaw?: number;
pitch?: number;
fov?: number;
};
/** Auto-rotate speed (degrees per second) */
autoRotateSpeed?: number;
/** Whether auto-rotate is initially enabled */
autoRotateEnabled?: boolean;
/** Maximum zoom level */
maxZoom?: number;
/** Minimum zoom level */
minZoom?: number;
/** Loading placeholder */
loadingComponent?: React.ReactNode;
/** Error fallback */
errorComponent?: React.ReactNode;
/** View change handler */
onViewChange?: (view: {
yaw: number;
pitch: number;
fov: number;
}) => void;
/** Hotspot click handler */
onHotspotClick?: (hotspot: Glass360ViewerHotspot) => void;
/** Media load handler */
onLoad?: () => void;
/** Media error handler */
onError?: (error: Error) => void;
/** Custom overlay */
overlay?: React.ReactNode;
/** Whether to show debug info */
debug?: boolean;
/** Viewer quality */
quality?: "low" | "medium" | "high" | "ultra";
/** Performance mode */
performanceMode?: "performance" | "quality";
/** Respect motion preferences */
respectMotionPreference?: boolean;
}
export declare const Glass360Viewer: React.ForwardRefExoticComponent<Glass360ViewerProps & React.RefAttributes<HTMLDivElement>>;
export default Glass360Viewer;
//# sourceMappingURL=Glass360Viewer.d.ts.map