aura-glass
Version:
A comprehensive glassmorphism design system for React applications with 142+ production-ready components
139 lines • 3.67 kB
TypeScript
import React from "react";
export interface ARObject {
id: string;
name: string;
modelUrl?: string;
thumbnail?: string;
scale: {
x: number;
y: number;
z: number;
};
rotation: {
x: number;
y: number;
z: number;
};
position: {
x: number;
y: number;
z: number;
};
visible: boolean;
opacity: number;
material?: {
color?: string;
metalness?: number;
roughness?: number;
emissive?: string;
texture?: string;
};
animation?: {
type: "rotate" | "float" | "pulse" | "bounce";
speed: number;
enabled: boolean;
};
metadata?: Record<string, any>;
}
export interface ARMarker {
id: string;
type: "qr" | "image" | "nft" | "barcode";
source: string;
size?: number;
confident?: number;
}
export interface ARCamera {
position: {
x: number;
y: number;
z: number;
};
target: {
x: number;
y: number;
z: number;
};
fov: number;
near: number;
far: number;
}
export interface ARLighting {
ambient: {
color: string;
intensity: number;
};
directional: {
color: string;
intensity: number;
position: {
x: number;
y: number;
z: number;
};
castShadow: boolean;
};
environment?: string;
}
export interface GlassARPreviewProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onError"> {
/** AR objects to display */
objects?: ARObject[];
/** AR markers for tracking */
markers?: ARMarker[];
/** Camera configuration */
camera?: ARCamera;
/** Lighting setup */
lighting?: ARLighting;
/** Background mode */
background?: "transparent" | "camera" | "environment" | "color";
/** Background color if mode is 'color' */
backgroundColor?: string;
/** Environment map URL */
environmentMap?: string;
/** Whether to enable camera feed */
enableCamera?: boolean;
/** Whether to show debug info */
debug?: boolean;
/** AR session state */
sessionActive?: boolean;
/** WebXR support level */
xrMode?: "immersive-ar" | "inline" | "viewer";
/** Performance settings */
quality?: "low" | "medium" | "high";
/** Object interaction handlers */
onObjectSelect?: (object: ARObject) => void;
onObjectMove?: (objectId: string, position: {
x: number;
y: number;
z: number;
}) => void;
onObjectRotate?: (objectId: string, rotation: {
x: number;
y: number;
z: number;
}) => void;
onObjectScale?: (objectId: string, scale: {
x: number;
y: number;
z: number;
}) => void;
/** Marker tracking handlers */
onMarkerFound?: (marker: ARMarker) => void;
onMarkerLost?: (marker: ARMarker) => void;
/** Session handlers */
onSessionStart?: () => void;
onSessionEnd?: () => void;
onError?: (error: Error) => void;
/** Custom object renderer */
renderObject?: (object: ARObject) => React.ReactNode;
/** Loading component */
loadingComponent?: React.ReactNode;
/** Error component */
errorComponent?: React.ReactNode;
/** Controls overlay */
controlsOverlay?: React.ReactNode;
/** Respect motion preferences */
respectMotionPreference?: boolean;
}
export declare const GlassARPreview: React.ForwardRefExoticComponent<GlassARPreviewProps & React.RefAttributes<HTMLDivElement>>;
export default GlassARPreview;
//# sourceMappingURL=GlassARPreview.d.ts.map