aura-glass
Version:
A comprehensive glassmorphism design system for React applications with 142+ production-ready components
243 lines • 7.01 kB
TypeScript
import { GalileoPhysicsSystem, PhysicsBody } from '../../animations/physics/galileoPhysicsSystem';
export interface GalileoSpringConfig {
/** Spring stiffness */
stiffness?: number;
/** Spring damping */
damping?: number;
/** Spring mass */
mass?: number;
/** Rest precision */
precision?: number;
/** Initial velocity */
velocity?: number;
/** Enable gravity */
gravity?: boolean;
/** Gravity strength */
gravityStrength?: number;
/** Enable collisions */
enableCollisions?: boolean;
/** Bounds for physics world */
bounds?: {
left: number;
right: number;
top: number;
bottom: number;
};
}
export interface GalileoSpringTarget {
id: string;
position: {
x: number;
y: number;
};
target?: {
x: number;
y: number;
};
velocity?: {
x: number;
y: number;
};
mass?: number;
radius?: number;
fixed?: boolean;
}
export declare function useGalileoSprings(targets?: GalileoSpringTarget[], config?: GalileoSpringConfig): {
positions: Record<string, {
x: number;
y: number;
}>;
isAnimating: boolean;
springTo: (id: string, target: {
x: number;
y: number;
}, customConfig?: Partial<GalileoSpringConfig>) => void;
impulse: (id: string, impulse: {
x: number;
y: number;
}) => void;
setPosition: (id: string, position: {
x: number;
y: number;
}) => void;
addBody: (body: GalileoSpringTarget) => void;
removeBody: (id: string) => void;
getBody: (id: string) => PhysicsBody | undefined;
updateConfig: (newConfig: Partial<GalileoSpringConfig>) => void;
batchUpdate: (updates: Array<{
type: "springTo" | "impulse" | "setPosition" | "addBody" | "removeBody";
id: string;
data?: any;
}>) => void;
physicsSystem: GalileoPhysicsSystem | undefined;
};
export declare function useChainReaction(bodies: GalileoSpringTarget[], connections: Array<{
from: string;
to: string;
strength: number;
}>, config?: GalileoSpringConfig): {
triggerChainReaction: (startId: string, initialImpulse: {
x: number;
y: number;
}) => void;
positions: Record<string, {
x: number;
y: number;
}>;
isAnimating: boolean;
springTo: (id: string, target: {
x: number;
y: number;
}, customConfig?: Partial<GalileoSpringConfig>) => void;
impulse: (id: string, impulse: {
x: number;
y: number;
}) => void;
setPosition: (id: string, position: {
x: number;
y: number;
}) => void;
addBody: (body: GalileoSpringTarget) => void;
removeBody: (id: string) => void;
getBody: (id: string) => PhysicsBody | undefined;
updateConfig: (newConfig: Partial<GalileoSpringConfig>) => void;
batchUpdate: (updates: Array<{
type: "springTo" | "impulse" | "setPosition" | "addBody" | "removeBody";
id: string;
data?: any;
}>) => void;
physicsSystem: GalileoPhysicsSystem | undefined;
};
export declare function useOrbitalMechanics(centralBody: GalileoSpringTarget, orbitingBodies: GalileoSpringTarget[], config?: GalileoSpringConfig & {
gravitationalConstant?: number;
timeScale?: number;
}): {
centralBody: string;
orbitingBodies: any[];
updateOrbits: () => void;
positions: Record<string, {
x: number;
y: number;
}>;
isAnimating: boolean;
springTo: (id: string, target: {
x: number;
y: number;
}, customConfig?: Partial<GalileoSpringConfig>) => void;
impulse: (id: string, impulse: {
x: number;
y: number;
}) => void;
setPosition: (id: string, position: {
x: number;
y: number;
}) => void;
addBody: (body: GalileoSpringTarget) => void;
removeBody: (id: string) => void;
getBody: (id: string) => PhysicsBody | undefined;
updateConfig: (newConfig: Partial<GalileoSpringConfig>) => void;
batchUpdate: (updates: Array<{
type: "springTo" | "impulse" | "setPosition" | "addBody" | "removeBody";
id: string;
data?: any;
}>) => void;
physicsSystem: GalileoPhysicsSystem | undefined;
};
export declare function useParticleSystem(emitterPosition: {
x: number;
y: number;
}, config?: {
particleCount?: number;
emissionRate?: number;
particleLife?: number;
initialVelocity?: {
x: number;
y: number;
};
spread?: number;
gravity?: number;
}): {
particleIds: string[];
emit: () => void;
updateEmitter: (newPosition: {
x: number;
y: number;
}) => void;
positions: Record<string, {
x: number;
y: number;
}>;
isAnimating: boolean;
springTo: (id: string, target: {
x: number;
y: number;
}, customConfig?: Partial<GalileoSpringConfig>) => void;
impulse: (id: string, impulse: {
x: number;
y: number;
}) => void;
setPosition: (id: string, position: {
x: number;
y: number;
}) => void;
addBody: (body: GalileoSpringTarget) => void;
removeBody: (id: string) => void;
getBody: (id: string) => PhysicsBody | undefined;
updateConfig: (newConfig: Partial<GalileoSpringConfig>) => void;
batchUpdate: (updates: Array<{
type: "springTo" | "impulse" | "setPosition" | "addBody" | "removeBody";
id: string;
data?: any;
}>) => void;
physicsSystem: GalileoPhysicsSystem | undefined;
};
export declare function useSoftBodyPhysics(bodyDefinition: {
nodes: Array<{
id: string;
x: number;
y: number;
mass: number;
}>;
springs: Array<{
from: string;
to: string;
stiffness: number;
restLength: number;
}>;
}, config?: GalileoSpringConfig): {
springs: {
from: string;
to: string;
stiffness: number;
restLength: number;
}[];
updateSprings: () => void;
positions: Record<string, {
x: number;
y: number;
}>;
isAnimating: boolean;
springTo: (id: string, target: {
x: number;
y: number;
}, customConfig?: Partial<GalileoSpringConfig>) => void;
impulse: (id: string, impulse: {
x: number;
y: number;
}) => void;
setPosition: (id: string, position: {
x: number;
y: number;
}) => void;
addBody: (body: GalileoSpringTarget) => void;
removeBody: (id: string) => void;
getBody: (id: string) => PhysicsBody | undefined;
updateConfig: (newConfig: Partial<GalileoSpringConfig>) => void;
batchUpdate: (updates: Array<{
type: "springTo" | "impulse" | "setPosition" | "addBody" | "removeBody";
id: string;
data?: any;
}>) => void;
physicsSystem: GalileoPhysicsSystem | undefined;
};
//# sourceMappingURL=useGalileoSprings.d.ts.map