@hypertools/sdk 0.2.0 → 0.2.1
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/LICENSE +1 -1
- package/dist/capture/index.js +13 -1
- package/dist/capture/index.js.map +2 -2
- package/dist/controls/index.js +13 -1
- package/dist/controls/index.js.map +2 -2
- package/dist/core/index.js +13 -1
- package/dist/core/index.js.map +2 -2
- package/dist/index.js +14 -1
- package/dist/index.js.map +2 -2
- package/dist/react/index.js +13 -1
- package/dist/react/index.js.map +2 -2
- package/dist/recording/index.js +13 -1
- package/dist/recording/index.js.map +2 -2
- package/package.json +31 -10
- package/dist/codegen/index.d.ts +0 -6
- package/dist/codegen/index.d.ts.map +0 -1
- package/dist/codegen/index.js +0 -800
- package/dist/codegen/index.js.map +0 -13
- package/dist/export/bundler.d.ts +0 -55
- package/dist/export/bundler.d.ts.map +0 -1
- package/dist/export/generators/index.d.ts +0 -6
- package/dist/export/generators/index.d.ts.map +0 -1
- package/dist/export/generators/webComponent.d.ts +0 -29
- package/dist/export/generators/webComponent.d.ts.map +0 -1
- package/dist/export/index.d.ts +0 -19
- package/dist/export/index.d.ts.map +0 -1
- package/dist/export/index.js +0 -800
- package/dist/export/index.js.map +0 -13
- package/dist/export/runtime.d.ts +0 -46
- package/dist/export/runtime.d.ts.map +0 -1
- package/dist/frame/cssBridge.d.ts +0 -34
- package/dist/frame/cssBridge.d.ts.map +0 -1
- package/dist/frame/index.d.ts +0 -9
- package/dist/frame/index.d.ts.map +0 -1
- package/dist/frame/index.js +0 -3
- package/dist/frame/index.js.map +0 -24
- package/dist/frame/runtime.d.ts +0 -39
- package/dist/frame/runtime.d.ts.map +0 -1
- package/dist/frame/types.d.ts +0 -119
- package/dist/frame/types.d.ts.map +0 -1
- package/dist/frame/utils/dom.d.ts +0 -11
- package/dist/frame/utils/dom.d.ts.map +0 -1
- package/dist/frame/wrapper-app/WrapperApp.d.ts +0 -16
- package/dist/frame/wrapper-app/WrapperApp.d.ts.map +0 -1
- package/dist/frame/wrapper-app/components/CanvasSizeWidget.d.ts +0 -17
- package/dist/frame/wrapper-app/components/CanvasSizeWidget.d.ts.map +0 -1
- package/dist/frame/wrapper-app/components/ControlsPanel.d.ts +0 -11
- package/dist/frame/wrapper-app/components/ControlsPanel.d.ts.map +0 -1
- package/dist/frame/wrapper-app/components/ExportWidget.d.ts +0 -16
- package/dist/frame/wrapper-app/components/ExportWidget.d.ts.map +0 -1
- package/dist/frame/wrapper-app/components/ResizeHandles.d.ts +0 -19
- package/dist/frame/wrapper-app/components/ResizeHandles.d.ts.map +0 -1
- package/dist/frame/wrapper-app/components/SandboxContainer.d.ts +0 -16
- package/dist/frame/wrapper-app/components/SandboxContainer.d.ts.map +0 -1
- package/dist/frame/wrapper-app/components/index.d.ts +0 -5
- package/dist/frame/wrapper-app/components/index.d.ts.map +0 -1
- package/dist/frame/wrapper-app/context/CanvasContext.d.ts +0 -37
- package/dist/frame/wrapper-app/context/CanvasContext.d.ts.map +0 -1
- package/dist/frame/wrapper-app/context/index.d.ts +0 -2
- package/dist/frame/wrapper-app/context/index.d.ts.map +0 -1
- package/dist/frame/wrapper-app/index.d.ts +0 -9
- package/dist/frame/wrapper-app/index.d.ts.map +0 -1
- package/dist/frame/wrapper-app/types.d.ts +0 -38
- package/dist/frame/wrapper-app/types.d.ts.map +0 -1
package/dist/react/index.js
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @hypertools/sdk
|
|
3
|
+
* Copyright (c) 2025 HyperTools Team
|
|
4
|
+
*
|
|
5
|
+
* Vanilla-first SDK for embedding interactive creative coding experiences.
|
|
6
|
+
* Supports p5.js, Three.js, WebGL, and more.
|
|
7
|
+
*
|
|
8
|
+
* @license MIT
|
|
9
|
+
* @see https://github.com/hypertools/sdk
|
|
10
|
+
*/
|
|
1
11
|
import{useEffect as v,useRef as b,useState as z,useCallback as _}from"react";class P{_handlers=new Map;on(U,V){if(!this._handlers.has(U))this._handlers.set(U,new Set);return this._handlers.get(U).add(V),()=>this.off(U,V)}once(U,V){let J=(K)=>{this.off(U,J),V(K)};return this.on(U,J)}off(U,V){let J=this._handlers.get(U);if(J)J.delete(V)}emit(U){let V=this._handlers.get(U.type);if(!V)return;for(let J of V)try{J(U)}catch(K){console.error(`[EventEmitter] Handler error for ${U.type}:`,K)}}removeAllListeners(U){if(U)this._handlers.delete(U);else this._handlers.clear()}listenerCount(U){return this._handlers.get(U)?.size??0}}class h{_definitions;_values;_listeners;_proxy;constructor(U,V){this._definitions=U,this._listeners=new Set,this._values={};for(let[J,K]of Object.entries(U))this._values[J]=K.value;if(V){for(let[J,K]of Object.entries(V))if(J in this._definitions)this._values[J]=this._validate(J,K)}this._proxy=this._createProxy()}_createProxy(){let U=this;return new Proxy(this._values,{get(V,J){return V[J]},set(V,J,K){if(!(J in U._definitions))return console.warn(`[ParamStore] Unknown parameter: ${J}`),!1;let Q=U._validate(J,K),Y=V[J];if(Q!==Y)V[J]=Q,U._notify(J,Q,Y);return!0},has(V,J){return J in V},ownKeys(V){return Object.keys(V)},getOwnPropertyDescriptor(V,J){if(J in V)return{enumerable:!0,configurable:!0,value:V[J]};return}})}_validate(U,V){let J=this._definitions[U];if(!J)return V;switch(J.type){case"number":{let K=typeof V==="number"?V:parseFloat(String(V));if(isNaN(K))K=J.value;if(J.min!==void 0)K=Math.max(J.min,K);if(J.max!==void 0)K=Math.min(J.max,K);if(J.step!==void 0)K=Math.round(K/J.step)*J.step;return K}case"color":{let K=String(V);if(/^#[0-9A-Fa-f]{6}$/.test(K))return K;if(/^#[0-9A-Fa-f]{3}$/.test(K))return K;if(/^#[0-9A-Fa-f]{8}$/.test(K))return K;if(/^rgb\(/.test(K))return K;if(/^rgba\(/.test(K))return K;if(/^hsl\(/.test(K))return K;if(/^hsla\(/.test(K))return K;return J.value}case"boolean":if(typeof V==="boolean")return V;if(V==="true"||V==="1")return!0;if(V==="false"||V==="0")return!1;return Boolean(V);case"string":return String(V);case"select":{let K=String(V);return(J.options||[]).some((Z)=>typeof Z==="object"?Z.value===K:Z===K)?K:J.value}case"point2d":{if(typeof V==="object"&&V!==null&&"x"in V&&"y"in V)return{x:Number(V.x),y:Number(V.y)};return J.value}case"point3d":{if(typeof V==="object"&&V!==null&&"x"in V&&"y"in V&&"z"in V)return{x:Number(V.x),y:Number(V.y),z:Number(V.z)};return J.value}default:return V}}_notify(U,V,J){for(let K of this._listeners)try{K(U,V,J)}catch(Q){console.error("[ParamStore] Listener error:",Q)}}getProxy(){return this._proxy}getSnapshot(){return{...this._values}}getDefinitions(){return{...this._definitions}}set(U,V){this._proxy[U]=V}setMultiple(U){for(let[V,J]of Object.entries(U))this._proxy[V]=J}reset(){for(let[U,V]of Object.entries(this._definitions))this._proxy[U]=V.value}subscribe(U){return this._listeners.add(U),()=>this._listeners.delete(U)}addDefinition(U,V){this._definitions[U]=V,this._values[U]=V.value}}class k{_byName=new Map;_byId=new Map;_onRegister=new Set;_onUnregister=new Set;register(U,V,J){if(this._byName.has(U))this.unregister(U);let K=this._generateId(),Q={name:U,id:K,object:V,metadata:J};this._byName.set(U,Q),this._byId.set(K,Q);for(let Y of this._onRegister)try{Y(U,K,V)}catch(Z){console.error("[ObjectRegistry] onRegister callback error:",Z)}return K}unregister(U){let V=this._byName.get(U);if(!V)return!1;this._byName.delete(U),this._byId.delete(V.id);for(let J of this._onUnregister)try{J(U)}catch(K){console.error("[ObjectRegistry] onUnregister callback error:",K)}return!0}findByName(U){return this._byName.get(U)?.object}findById(U){return this._byId.get(U)?.object}getInfo(U){return this._byName.get(U)}has(U){return this._byName.has(U)}getNames(){return Array.from(this._byName.keys())}getAll(){let U=new Map;for(let[V,J]of this._byName)U.set(V,J.object);return U}query(U){let V=[];for(let J of this._byName.values())if(U(J))V.push(J);return V}findByType(U){return this.query((V)=>V.metadata?.type===U).map((V)=>V.object)}clear(){let U=Array.from(this._byName.keys());for(let V of U)this.unregister(V)}onRegister(U){return this._onRegister.add(U),()=>this._onRegister.delete(U)}onUnregister(U){return this._onUnregister.add(U),()=>this._onUnregister.delete(U)}get size(){return this._byName.size}_generateId(){return`obj_${Date.now()}_${Math.random().toString(36).slice(2,9)}`}}class g{_isReady=!1;_isPlaying=!1;_isDestroyed=!1;_currentFrame=0;_paramStore;_events;_objects;_mount;_frameRate;_filename="capture";_cleanups=[];_userCleanup;_animationFrameId;_lastFrameTime=0;_resizeObserver;_captureHandler;constructor(U){if(this._mount=U.mount,this._frameRate=U.frameRate??60,U.background)this._mount.style.background=U.background;this._paramStore=new h(U.paramDefs??{},U.initialParams),this._events=new P,this._objects=new k,this._paramStore.subscribe((V,J,K)=>{this._events.emit({type:"paramChange",timestamp:Date.now(),key:V,value:J,previousValue:K})}),this._setupResizeObserver(),this._runSetup(U.setup,U.autoplay??!0)}get isReady(){return this._isReady}get isPlaying(){return this._isPlaying}get isDestroyed(){return this._isDestroyed}get currentFrame(){return this._currentFrame}get mount(){return this._mount}get params(){return this._paramStore.getProxy()}get events(){return this._events}get objects(){return this._objects}setParam(U,V){this._paramStore.set(U,V)}setParams(U){this._paramStore.setMultiple(U)}getParams(){return this._paramStore.getSnapshot()}getParamDefs(){return this._paramStore.getDefinitions()}resetParams(){this._paramStore.reset()}registerObject(U,V,J){return this._objects.register(U,V,J)}findObjectByName(U){return this._objects.findByName(U)}findObjectById(U){return this._objects.findById(U)}getAllObjects(){return this._objects.getAll()}play(){if(this._isPlaying||this._isDestroyed)return;this._isPlaying=!0,this._lastFrameTime=performance.now(),this._tick(),this._events.emit({type:"play",timestamp:Date.now()})}pause(){if(!this._isPlaying)return;if(this._isPlaying=!1,this._animationFrameId)cancelAnimationFrame(this._animationFrameId),this._animationFrameId=void 0;this._events.emit({type:"pause",timestamp:Date.now()})}toggle(){if(this._isPlaying)this.pause();else this.play()}on(U,V){return this._events.on(U,V)}once(U,V){return this._events.once(U,V)}off(U,V){this._events.off(U,V)}async captureImage(U="png"){if(this._captureHandler)return this._captureHandler(U);let V=this._mount.querySelector("canvas");if(!V)return console.warn("[Experience] No canvas found for capture"),null;return new Promise((J)=>{let K=`image/${U}`,Q=U==="jpeg"?0.92:void 0;V.toBlob((Y)=>J(Y),K,Q)})}getFilename(){return this._filename}addCleanup(U){if(typeof U==="function")this._cleanups.push(U)}destroy(){if(this._isDestroyed)return;if(this._isDestroyed=!0,this.pause(),this._userCleanup)try{this._userCleanup()}catch(U){console.error("[Experience] User cleanup error:",U)}while(this._cleanups.length>0){let U=this._cleanups.pop();if(U)try{U()}catch(V){console.error("[Experience] Cleanup error:",V)}}this._resizeObserver?.disconnect(),this._objects.clear(),this._events.removeAllListeners(),this._events.emit({type:"destroyed",timestamp:Date.now()})}async _runSetup(U,V){try{let J=this._createContext(),K=await U(J);if(typeof K==="function")this._userCleanup=K;if(this._isReady=!0,this._events.emit({type:"ready",timestamp:Date.now()}),V)this.play()}catch(J){console.error("[Experience] Setup error:",J),this._events.emit({type:"error",timestamp:Date.now(),error:J instanceof Error?J:Error(String(J))})}}_createContext(){return{mount:this._mount,params:this._paramStore.getProxy(),exports:this._createExportsApi(),environment:this._createEnvironmentApi(),registerObject:(U,V,J)=>this._objects.register(U,V,J),findObjectByName:(U)=>this._objects.findByName(U),experience:this}}_createExportsApi(){return{captureImage:(U)=>this.captureImage(U),setFilename:(U)=>{this._filename=U},registerCaptureHandler:(U)=>{this._captureHandler=U}}}_createEnvironmentApi(){return{window,document,onResize:(U)=>{let V=()=>{U(this._mount.clientWidth,this._mount.clientHeight)};V();let J=new ResizeObserver(V);J.observe(this._mount);let K=()=>J.disconnect();return this._cleanups.push(K),K},addCleanup:(U)=>this.addCleanup(U)}}_setupResizeObserver(){this._resizeObserver=new ResizeObserver((U)=>{for(let V of U){let{width:J,height:K}=V.contentRect;this._events.emit({type:"resize",timestamp:Date.now(),width:J,height:K})}}),this._resizeObserver.observe(this._mount)}_tick(){if(!this._isPlaying)return;let U=performance.now(),V=U-this._lastFrameTime,J=1000/this._frameRate;if(V>=J)this._currentFrame++,this._lastFrameTime=U-V%J,this._events.emit({type:"frame",timestamp:Date.now(),frame:this._currentFrame,deltaTime:V});this._animationFrameId=requestAnimationFrame(()=>this._tick())}}function y(U){let V=b(null),J=b(null),K=b(U.setup);K.current=U.setup;let[Q,Y]=z(!1),[Z,$]=z(!1),[G,M]=z(null),[C,B]=z({}),[X,A]=z({});v(()=>{if(!V.current)return;Y(!1),M(null);let L=new g({mount:V.current,paramDefs:U.paramDefs,initialParams:U.initialParams,setup:(R)=>K.current(R),autoplay:U.autoplay,frameRate:U.frameRate,background:U.background});J.current=L;let F=L.on("ready",()=>{Y(!0),$(L.isPlaying),B(L.getParams()),A(L.getParamDefs())}),I=L.on("error",(R)=>{M(R.error)}),q=L.on("play",()=>$(!0)),x=L.on("pause",()=>$(!1)),f=L.on("paramChange",()=>{B(L.getParams())});return()=>{F(),I(),q(),x(),f(),L.destroy(),J.current=null}},[U.paramDefs,U.initialParams,U.autoplay,U.frameRate,U.background]);let N=_((L,F)=>{J.current?.setParam(L,F)},[]),W=_((L)=>{J.current?.setParams(L)},[]),j=_(()=>{J.current?.resetParams()},[]),D=_(()=>{J.current?.play()},[]),H=_(()=>{J.current?.pause()},[]),T=_(()=>{J.current?.toggle()},[]),w=_(async(L)=>{return J.current?.captureImage(L)??null},[]),O=_((L)=>{return J.current?.findObjectByName(L)},[]),S=_(()=>{J.current?.destroy(),J.current=null},[]);return{experience:J.current,isReady:Q,isPlaying:Z,error:G,containerRef:V,params:C,paramDefs:X,setParam:N,setParams:W,resetParams:j,play:D,pause:H,toggle:T,captureImage:w,findObjectByName:O,destroy:S}}import{forwardRef as d,useImperativeHandle as m,useEffect as E}from"react";import{jsxDEV as u}from"react/jsx-dev-runtime";var c=d(function(V,J){let{className:K,style:Q,onReady:Y,onError:Z,onParamChange:$,onPlay:G,onPause:M,children:C,...B}=V,{experience:X,isReady:A,isPlaying:N,error:W,containerRef:j,params:D,paramDefs:H,setParam:T,setParams:w,play:O,pause:S,toggle:L,captureImage:F,findObjectByName:I}=y(B);return E(()=>{if(A&&X)Y?.(X)},[A,X,Y]),E(()=>{if(W)Z?.(W)},[W,Z]),E(()=>{if(!X||!$)return;return X.on("paramChange",(q)=>{$(q.key,q.value,q.previousValue)})},[X,$]),E(()=>{if(!X)return;let q=X.on("play",()=>G?.()),x=X.on("pause",()=>M?.());return()=>{q(),x()}},[X,G,M]),m(J,()=>({experience:X,isReady:A,isPlaying:N,params:D,paramDefs:H,setParam:T,setParams:w,play:O,pause:S,toggle:L,captureImage:F,findObjectByName:I}),[X,A,N,D,H,T,w,O,S,L,F,I]),u("div",{ref:j,className:K,style:{width:"100%",height:"100%",position:"relative",...Q},children:C},void 0,!1,void 0,this)});export{y as useExperience,c as ExperienceView};
|
|
2
12
|
|
|
3
|
-
|
|
13
|
+
/* @hypertools/sdk - MIT License - https://hypertools.dev */
|
|
14
|
+
|
|
15
|
+
//# debugId=C09E12EFB0BB540264756E2164756E21
|
package/dist/react/index.js.map
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"/**\n * Core Experience class - THE shared logic for all runtimes\n *\n * This is the brain. All adapters (Frame, Export, HostedPreview) use this.\n * Adapters are thin wiring layers - Experience contains ALL the logic.\n */\n\nimport {\n EventEmitter,\n type ExperienceEvent,\n type EventHandler,\n type ParamChangeEvent,\n type FrameEvent,\n type ResizeEvent,\n type ErrorEvent,\n} from './EventEmitter';\nimport { ParamStore, type ParamDefinitions, type ParamValues } from './ParamStore';\nimport { ObjectRegistry } from './ObjectRegistry';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface ExperienceConfig {\n /** Mount element where content is rendered */\n mount: HTMLElement;\n\n /** Parameter definitions schema */\n paramDefs?: ParamDefinitions;\n\n /** Initial parameter values (overrides defaults from paramDefs) */\n initialParams?: Record<string, unknown>;\n\n /** User's setup function */\n setup: SetupFunction;\n\n /** Auto-start on init (default: true) */\n autoplay?: boolean;\n\n /** Target frame rate for frame events (default: 60) */\n frameRate?: number;\n\n /** Background color/style */\n background?: string;\n}\n\n/**\n * Context passed to user's setup function\n * This is the API users interact with in their code\n */\nexport interface ExperienceContext {\n /** DOM element to render into */\n mount: HTMLElement;\n\n /** Reactive params object (Proxy) - changes trigger events */\n params: ParamValues;\n\n /** Export/capture utilities */\n exports: ExportsApi;\n\n /** Environment utilities (window, document, resize) */\n environment: EnvironmentApi;\n\n /** Register an object for Spline-like queries */\n registerObject: <T = unknown>(\n name: string,\n object: T,\n metadata?: Record<string, unknown>\n ) => string;\n\n /** Find registered object by name */\n findObjectByName: <T = unknown>(name: string) => T | undefined;\n\n /** Experience instance (for advanced use) */\n experience: Experience;\n}\n\nexport interface ExportsApi {\n /** Capture canvas as image */\n captureImage: (format?: 'png' | 'jpeg' | 'webp') => Promise<Blob | null>;\n\n /** Set filename for exports */\n setFilename: (filename: string) => void;\n\n /** Register custom capture handler */\n registerCaptureHandler: (handler: CaptureHandler) => void;\n}\n\nexport type CaptureHandler = (format: string) => Promise<Blob | null>;\n\nexport interface EnvironmentApi {\n /** Window reference */\n window: Window;\n\n /** Document reference */\n document: Document;\n\n /** Subscribe to resize events, returns cleanup */\n onResize: (callback: (width: number, height: number) => void) => () => void;\n\n /** Add cleanup function to be called on destroy */\n addCleanup: (cleanup: () => void) => void;\n}\n\nexport type SetupFunction = (\n context: ExperienceContext\n) => CleanupFunction | void | Promise<CleanupFunction | void>;\n\nexport type CleanupFunction = () => void;\n\n// ============================================================================\n// Experience Class\n// ============================================================================\n\nexport class Experience {\n // State\n private _isReady = false;\n private _isPlaying = false;\n private _isDestroyed = false;\n private _currentFrame = 0;\n\n // Core systems\n private _paramStore: ParamStore;\n private _events: EventEmitter;\n private _objects: ObjectRegistry;\n\n // Config\n private _mount: HTMLElement;\n private _frameRate: number;\n private _filename = 'capture';\n\n // Lifecycle\n private _cleanups: CleanupFunction[] = [];\n private _userCleanup?: CleanupFunction;\n private _animationFrameId?: number;\n private _lastFrameTime = 0;\n private _resizeObserver?: ResizeObserver;\n private _captureHandler?: CaptureHandler;\n\n constructor(config: ExperienceConfig) {\n this._mount = config.mount;\n this._frameRate = config.frameRate ?? 60;\n\n // Apply background if provided\n if (config.background) {\n this._mount.style.background = config.background;\n }\n\n // Initialize core systems\n this._paramStore = new ParamStore(\n config.paramDefs ?? {},\n config.initialParams\n );\n this._events = new EventEmitter();\n this._objects = new ObjectRegistry();\n\n // Subscribe to param changes -> emit events\n this._paramStore.subscribe((key, value, previousValue) => {\n this._events.emit<ParamChangeEvent>({\n type: 'paramChange',\n timestamp: Date.now(),\n key,\n value,\n previousValue,\n });\n });\n\n // Setup resize observer\n this._setupResizeObserver();\n\n // Run user setup\n this._runSetup(config.setup, config.autoplay ?? true);\n }\n\n // ===== Public Getters =====\n\n get isReady(): boolean {\n return this._isReady;\n }\n\n get isPlaying(): boolean {\n return this._isPlaying;\n }\n\n get isDestroyed(): boolean {\n return this._isDestroyed;\n }\n\n get currentFrame(): number {\n return this._currentFrame;\n }\n\n get mount(): HTMLElement {\n return this._mount;\n }\n\n /** Reactive params proxy */\n get params(): ParamValues {\n return this._paramStore.getProxy();\n }\n\n /** EventEmitter for external subscriptions */\n get events(): EventEmitter {\n return this._events;\n }\n\n /** ObjectRegistry for external access */\n get objects(): ObjectRegistry {\n return this._objects;\n }\n\n // ===== Parameter Methods =====\n\n setParam(key: string, value: unknown): void {\n this._paramStore.set(key, value);\n }\n\n setParams(params: Record<string, unknown>): void {\n this._paramStore.setMultiple(params);\n }\n\n getParams(): Record<string, unknown> {\n return this._paramStore.getSnapshot();\n }\n\n getParamDefs(): ParamDefinitions {\n return this._paramStore.getDefinitions();\n }\n\n resetParams(): void {\n this._paramStore.reset();\n }\n\n // ===== Object Registry (Spline-like) =====\n\n registerObject<T = unknown>(\n name: string,\n object: T,\n metadata?: Record<string, unknown>\n ): string {\n return this._objects.register(name, object, metadata);\n }\n\n findObjectByName<T = unknown>(name: string): T | undefined {\n return this._objects.findByName<T>(name);\n }\n\n findObjectById<T = unknown>(id: string): T | undefined {\n return this._objects.findById<T>(id);\n }\n\n getAllObjects(): Map<string, unknown> {\n return this._objects.getAll();\n }\n\n // ===== Playback =====\n\n play(): void {\n if (this._isPlaying || this._isDestroyed) return;\n this._isPlaying = true;\n this._lastFrameTime = performance.now();\n this._tick();\n this._events.emit({ type: 'play', timestamp: Date.now() });\n }\n\n pause(): void {\n if (!this._isPlaying) return;\n this._isPlaying = false;\n if (this._animationFrameId) {\n cancelAnimationFrame(this._animationFrameId);\n this._animationFrameId = undefined;\n }\n this._events.emit({ type: 'pause', timestamp: Date.now() });\n }\n\n toggle(): void {\n if (this._isPlaying) {\n this.pause();\n } else {\n this.play();\n }\n }\n\n // ===== Events =====\n\n on<T extends ExperienceEvent>(\n type: T['type'],\n handler: EventHandler<T>\n ): () => void {\n return this._events.on(type, handler);\n }\n\n once<T extends ExperienceEvent>(\n type: T['type'],\n handler: EventHandler<T>\n ): () => void {\n return this._events.once(type, handler);\n }\n\n off<T extends ExperienceEvent>(\n type: T['type'],\n handler: EventHandler<T>\n ): void {\n this._events.off(type, handler);\n }\n\n // ===== Capture =====\n\n async captureImage(format: 'png' | 'jpeg' | 'webp' = 'png'): Promise<Blob | null> {\n // Use custom handler if registered\n if (this._captureHandler) {\n return this._captureHandler(format);\n }\n\n // Default: find canvas and capture\n const canvas = this._mount.querySelector('canvas');\n if (!canvas) {\n console.warn('[Experience] No canvas found for capture');\n return null;\n }\n\n return new Promise((resolve) => {\n const mimeType = `image/${format}`;\n const quality = format === 'jpeg' ? 0.92 : undefined;\n canvas.toBlob((blob) => resolve(blob), mimeType, quality);\n });\n }\n\n getFilename(): string {\n return this._filename;\n }\n\n // ===== Lifecycle =====\n\n /**\n * Add a cleanup function to be called on destroy\n */\n addCleanup(cleanup: CleanupFunction): void {\n if (typeof cleanup === 'function') {\n this._cleanups.push(cleanup);\n }\n }\n\n /**\n * Destroy the experience and run all cleanups\n */\n destroy(): void {\n if (this._isDestroyed) return;\n this._isDestroyed = true;\n\n // Stop animation\n this.pause();\n\n // Run user cleanup first\n if (this._userCleanup) {\n try {\n this._userCleanup();\n } catch (e) {\n console.error('[Experience] User cleanup error:', e);\n }\n }\n\n // Run registered cleanups (reverse order)\n while (this._cleanups.length > 0) {\n const cleanup = this._cleanups.pop();\n if (cleanup) {\n try {\n cleanup();\n } catch (e) {\n console.error('[Experience] Cleanup error:', e);\n }\n }\n }\n\n // Disconnect observers\n this._resizeObserver?.disconnect();\n\n // Clear registry\n this._objects.clear();\n\n // Remove all event listeners\n this._events.removeAllListeners();\n\n // Emit destroyed event before clearing\n this._events.emit({ type: 'destroyed', timestamp: Date.now() });\n }\n\n // ===== Private Methods =====\n\n private async _runSetup(setup: SetupFunction, autoplay: boolean): Promise<void> {\n try {\n // Create context for user's setup\n const context = this._createContext();\n\n // Run user's setup\n const cleanup = await setup(context);\n if (typeof cleanup === 'function') {\n this._userCleanup = cleanup;\n }\n\n this._isReady = true;\n this._events.emit({ type: 'ready', timestamp: Date.now() });\n\n // Autoplay if enabled\n if (autoplay) {\n this.play();\n }\n } catch (error) {\n console.error('[Experience] Setup error:', error);\n this._events.emit<ErrorEvent>({\n type: 'error',\n timestamp: Date.now(),\n error: error instanceof Error ? error : new Error(String(error)),\n });\n }\n }\n\n private _createContext(): ExperienceContext {\n return {\n mount: this._mount,\n params: this._paramStore.getProxy(),\n exports: this._createExportsApi(),\n environment: this._createEnvironmentApi(),\n registerObject: (name, object, metadata) =>\n this._objects.register(name, object, metadata),\n findObjectByName: (name) => this._objects.findByName(name),\n experience: this,\n };\n }\n\n private _createExportsApi(): ExportsApi {\n return {\n captureImage: (format) => this.captureImage(format),\n setFilename: (filename) => {\n this._filename = filename;\n },\n registerCaptureHandler: (handler) => {\n this._captureHandler = handler;\n },\n };\n }\n\n private _createEnvironmentApi(): EnvironmentApi {\n return {\n window,\n document,\n onResize: (callback) => {\n const handler = () => {\n callback(this._mount.clientWidth, this._mount.clientHeight);\n };\n\n // Call immediately with current size\n handler();\n\n // Setup observer\n const ro = new ResizeObserver(handler);\n ro.observe(this._mount);\n\n const cleanup = () => ro.disconnect();\n this._cleanups.push(cleanup);\n return cleanup;\n },\n addCleanup: (cleanup) => this.addCleanup(cleanup),\n };\n }\n\n private _setupResizeObserver(): void {\n this._resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect;\n this._events.emit<ResizeEvent>({\n type: 'resize',\n timestamp: Date.now(),\n width,\n height,\n });\n }\n });\n this._resizeObserver.observe(this._mount);\n }\n\n private _tick(): void {\n if (!this._isPlaying) return;\n\n const now = performance.now();\n const deltaTime = now - this._lastFrameTime;\n const targetInterval = 1000 / this._frameRate;\n\n if (deltaTime >= targetInterval) {\n this._currentFrame++;\n this._lastFrameTime = now - (deltaTime % targetInterval);\n\n this._events.emit<FrameEvent>({\n type: 'frame',\n timestamp: Date.now(),\n frame: this._currentFrame,\n deltaTime,\n });\n }\n\n this._animationFrameId = requestAnimationFrame(() => this._tick());\n }\n}\n",
|
|
10
10
|
"/**\n * React component for Experience\n */\n\nimport React, { forwardRef, useImperativeHandle, useEffect } from 'react';\nimport { useExperience, type UseExperienceOptions } from './useExperience';\nimport type { Experience } from '../core/Experience';\nimport type { ParamDefinitions } from '../core/ParamStore';\nimport type { ParamChangeEvent } from '../core/EventEmitter';\n\nexport interface ExperienceViewProps extends UseExperienceOptions {\n /** CSS class name */\n className?: string;\n\n /** Inline styles */\n style?: React.CSSProperties;\n\n /** Called when experience is ready */\n onReady?: (experience: Experience) => void;\n\n /** Called on error */\n onError?: (error: Error) => void;\n\n /** Called on param change */\n onParamChange?: (key: string, value: unknown, previousValue: unknown) => void;\n\n /** Called on play */\n onPlay?: () => void;\n\n /** Called on pause */\n onPause?: () => void;\n\n /** Children (rendered as overlay) */\n children?: React.ReactNode;\n}\n\nexport interface ExperienceViewRef {\n /** Experience instance */\n experience: Experience | null;\n\n /** Whether experience is ready */\n isReady: boolean;\n\n /** Whether experience is playing */\n isPlaying: boolean;\n\n /** Current params */\n params: Record<string, unknown>;\n\n /** Param definitions */\n paramDefs: ParamDefinitions;\n\n /** Set a single parameter */\n setParam: (key: string, value: unknown) => void;\n\n /** Set multiple parameters */\n setParams: (params: Record<string, unknown>) => void;\n\n /** Play animation */\n play: () => void;\n\n /** Pause animation */\n pause: () => void;\n\n /** Toggle play/pause */\n toggle: () => void;\n\n /** Capture image */\n captureImage: (format?: 'png' | 'jpeg' | 'webp') => Promise<Blob | null>;\n\n /** Find object by name */\n findObjectByName: <T = unknown>(name: string) => T | undefined;\n}\n\nexport const ExperienceView = forwardRef<ExperienceViewRef, ExperienceViewProps>(\n function ExperienceView(props, ref) {\n const {\n className,\n style,\n onReady,\n onError,\n onParamChange,\n onPlay,\n onPause,\n children,\n ...options\n } = props;\n\n const {\n experience,\n isReady,\n isPlaying,\n error,\n containerRef,\n params,\n paramDefs,\n setParam,\n setParams,\n play,\n pause,\n toggle,\n captureImage,\n findObjectByName,\n } = useExperience(options);\n\n // Handle onReady callback\n useEffect(() => {\n if (isReady && experience) {\n onReady?.(experience);\n }\n }, [isReady, experience, onReady]);\n\n // Handle onError callback\n useEffect(() => {\n if (error) {\n onError?.(error);\n }\n }, [error, onError]);\n\n // Handle param changes\n useEffect(() => {\n if (!experience || !onParamChange) return;\n\n return experience.on<ParamChangeEvent>('paramChange', (event) => {\n onParamChange(event.key, event.value, event.previousValue);\n });\n }, [experience, onParamChange]);\n\n // Handle play/pause callbacks\n useEffect(() => {\n if (!experience) return;\n\n const unsubPlay = experience.on('play', () => onPlay?.());\n const unsubPause = experience.on('pause', () => onPause?.());\n\n return () => {\n unsubPlay();\n unsubPause();\n };\n }, [experience, onPlay, onPause]);\n\n // Expose methods via ref\n useImperativeHandle(\n ref,\n () => ({\n experience,\n isReady,\n isPlaying,\n params,\n paramDefs,\n setParam,\n setParams,\n play,\n pause,\n toggle,\n captureImage,\n findObjectByName,\n }),\n [\n experience,\n isReady,\n isPlaying,\n params,\n paramDefs,\n setParam,\n setParams,\n play,\n pause,\n toggle,\n captureImage,\n findObjectByName,\n ]\n );\n\n return (\n <div\n ref={containerRef as React.RefObject<HTMLDivElement>}\n className={className}\n style={{\n width: '100%',\n height: '100%',\n position: 'relative',\n ...style,\n }}\n >\n {children}\n </div>\n );\n }\n);\n"
|
|
11
11
|
],
|
|
12
|
-
"mappings": "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",
|
|
13
|
-
"debugId": "
|
|
12
|
+
"mappings": "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",
|
|
13
|
+
"debugId": "C09E12EFB0BB540264756E2164756E21",
|
|
14
14
|
"names": []
|
|
15
15
|
}
|
package/dist/recording/index.js
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @hypertools/sdk
|
|
3
|
+
* Copyright (c) 2025 HyperTools Team
|
|
4
|
+
*
|
|
5
|
+
* Vanilla-first SDK for embedding interactive creative coding experiences.
|
|
6
|
+
* Supports p5.js, Three.js, WebGL, and more.
|
|
7
|
+
*
|
|
8
|
+
* @license MIT
|
|
9
|
+
* @see https://github.com/hypertools/sdk
|
|
10
|
+
*/
|
|
1
11
|
class ${_canvas=null;_recorder=null;_chunks=[];_startTime=0;_isRecording=!1;_isPaused=!1;_maxDurationTimer;constructor(C){this._canvas=C}static isSupported(){return typeof MediaRecorder<"u"&&typeof HTMLCanvasElement.prototype.captureStream==="function"}static getSupportedMimeTypes(){return["video/webm;codecs=vp9","video/webm;codecs=vp8","video/webm","video/mp4;codecs=h264","video/mp4"].filter((H)=>MediaRecorder.isTypeSupported(H))}start(C={}){if(!this._canvas)throw Error("No canvas provided");if(this._isRecording)throw Error("Already recording");let H=C.frameRate??60,O=this._canvas.captureStream(H),z;if(C.format==="mp4")z=MediaRecorder.isTypeSupported("video/mp4;codecs=h264")?"video/mp4;codecs=h264":"video/mp4";else z=MediaRecorder.isTypeSupported("video/webm;codecs=vp9")?"video/webm;codecs=vp9":"video/webm";if(this._recorder=new MediaRecorder(O,{mimeType:z,videoBitsPerSecond:C.videoBitsPerSecond??5000000,audioBitsPerSecond:C.audioBitsPerSecond}),this._chunks=[],this._startTime=Date.now(),this._isRecording=!0,this._isPaused=!1,this._recorder.ondataavailable=(J)=>{if(J.data.size>0)this._chunks.push(J.data)},this._recorder.start(100),C.maxDuration)this._maxDurationTimer=setTimeout(()=>{if(this._isRecording)this._recorder?.stop()},C.maxDuration*1000);let B=this;return{get isRecording(){return B._isRecording},get duration(){if(!B._isRecording)return 0;return(Date.now()-B._startTime)/1000},get progress(){if(!C.maxDuration)return 0;return Math.min(1,this.duration/C.maxDuration)},stop:()=>B._stop(),pause:()=>B._pause(),resume:()=>B._resume(),cancel:()=>B._cancel()}}_stop(){return new Promise((C,H)=>{if(!this._recorder){H(Error("No active recording"));return}if(this._maxDurationTimer)clearTimeout(this._maxDurationTimer);this._recorder.onstop=()=>{this._isRecording=!1,this._isPaused=!1;let O=this._recorder?.mimeType??"video/webm",z=new Blob(this._chunks,{type:O});this._recorder=null,this._chunks=[],C(z)},this._recorder.onerror=(O)=>{this._isRecording=!1,H(Error("Recording failed"))},this._recorder.stop()})}_pause(){if(this._recorder&&this._isRecording&&!this._isPaused)this._recorder.pause(),this._isPaused=!0}_resume(){if(this._recorder&&this._isRecording&&this._isPaused)this._recorder.resume(),this._isPaused=!1}_cancel(){if(this._maxDurationTimer)clearTimeout(this._maxDurationTimer);if(this._recorder&&this._isRecording)this._recorder.onstop=null,this._recorder.stop();this._isRecording=!1,this._isPaused=!1,this._recorder=null,this._chunks=[]}dispose(){this._cancel(),this._canvas=null}}class E{_canvas=null;constructor(C){this._canvas=C}async capture(C={}){if(!this._canvas)return console.warn("[ImageCapture] No canvas provided"),null;let H=C.format??"png",O=C.quality??0.92,z=C.scale??1,B=this._canvas;if(z!==1)B=this._createScaledCanvas(z);let J=`image/${H}`;return new Promise((L)=>{B.toBlob((M)=>{if(!M){L(null);return}let X=URL.createObjectURL(M);L({blob:M,url:X,width:B.width,height:B.height,format:H})},J,H==="png"?void 0:O)})}async download(C={}){let H=await this.capture(C);if(!H){console.warn("[ImageCapture] Capture failed");return}let O=C.filename??`capture-${Date.now()}.${C.format??"png"}`,z=document.createElement("a");z.href=H.url,z.download=O,z.click(),setTimeout(()=>URL.revokeObjectURL(H.url),1000)}toDataURL(C={}){if(!this._canvas)throw Error("No canvas provided");let H=C.format??"png",O=C.quality??0.92,z=`image/${H}`;return this._canvas.toDataURL(z,H==="png"?void 0:O)}async copyToClipboard(C={}){if(!navigator.clipboard?.write)return console.warn("[ImageCapture] Clipboard API not supported"),!1;let H=await this.capture({...C,format:"png"});if(!H)return!1;try{return await navigator.clipboard.write([new ClipboardItem({"image/png":H.blob})]),URL.revokeObjectURL(H.url),!0}catch(O){return console.error("[ImageCapture] Clipboard write failed:",O),URL.revokeObjectURL(H.url),!1}}_createScaledCanvas(C){if(!this._canvas)throw Error("No canvas provided");let H=document.createElement("canvas");H.width=Math.floor(this._canvas.width*C),H.height=Math.floor(this._canvas.height*C);let O=H.getContext("2d");if(O)O.scale(C,C),O.drawImage(this._canvas,0,0);return H}dispose(){this._canvas=null}}var F={linear:(C)=>C,"ease-in":(C)=>C*C,"ease-out":(C)=>C*(2-C),"ease-in-out":(C)=>C<0.5?2*C*C:-1+(4-2*C)*C,"ease-in-quad":(C)=>C*C,"ease-out-quad":(C)=>C*(2-C),"ease-in-cubic":(C)=>C*C*C,"ease-out-cubic":(C)=>--C*C*C+1};class P{_keyframes=[];_duration=0;_currentTime=0;_isPlaying=!1;_isPaused=!1;_options;_animationFrame;_lastTickTime=0;_paramSetter;_onComplete;_onUpdate;constructor(C,H={}){if(this._paramSetter=C,this._options={loop:H.loop??!1,autoplay:H.autoplay??!1,speed:H.speed??1},this._options.autoplay)this.play()}addKeyframe(C,H,O){return this._keyframes.push({time:C,params:H,easing:O}),this._keyframes.sort((z,B)=>z.time-B.time),this._recalculateDuration(),this}removeKeyframe(C){return this._keyframes=this._keyframes.filter((H)=>H.time!==C),this._recalculateDuration(),this}clearKeyframes(){return this._keyframes=[],this._duration=0,this}getKeyframes(){return[...this._keyframes]}play(){if(this._isPlaying&&!this._isPaused)return this;return this._isPlaying=!0,this._isPaused=!1,this._lastTickTime=performance.now(),this._tick(),this}pause(){if(this._isPaused=!0,this._animationFrame)cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0;return this}stop(){if(this._isPlaying=!1,this._isPaused=!1,this._currentTime=0,this._animationFrame)cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0;return this._applyParamsAtTime(0),this}seek(C){return this._currentTime=Math.max(0,Math.min(C,this._duration)),this._applyParamsAtTime(this._currentTime),this}seekProgress(C){return this.seek(C*this._duration)}setSpeed(C){return this._options.speed=C,this}get duration(){return this._duration}get currentTime(){return this._currentTime}get isPlaying(){return this._isPlaying&&!this._isPaused}get isPaused(){return this._isPaused}get progress(){return this._duration>0?this._currentTime/this._duration:0}getState(){return{currentTime:this._currentTime,duration:this._duration,isPlaying:this._isPlaying&&!this._isPaused,isPaused:this._isPaused,progress:this.progress}}onComplete(C){return this._onComplete=C,this}onUpdate(C){return this._onUpdate=C,this}_tick(){if(!this._isPlaying||this._isPaused)return;let C=performance.now(),H=(C-this._lastTickTime)*this._options.speed;if(this._lastTickTime=C,this._currentTime+=H/1000,this._currentTime>=this._duration)if(this._options.loop)this._currentTime=this._currentTime%this._duration;else{this._currentTime=this._duration,this._isPlaying=!1,this._applyParamsAtTime(this._currentTime),this._onComplete?.(),this._onUpdate?.(this.getState());return}this._applyParamsAtTime(this._currentTime),this._onUpdate?.(this.getState()),this._animationFrame=requestAnimationFrame(()=>this._tick())}_applyParamsAtTime(C){if(this._keyframes.length===0)return;let H=null,O=null;for(let z=0;z<this._keyframes.length;z++){if(this._keyframes[z].time<=C)H=this._keyframes[z];if(this._keyframes[z].time>=C&&!O)O=this._keyframes[z]}if(!H&&O){this._paramSetter(O.params);return}if(H&&!O){this._paramSetter(H.params);return}if(H&&O&&H.time===O.time){this._paramSetter(H.params);return}if(H&&O){let z=O.time-H.time,B=C-H.time,J=z>0?B/z:1,L=O.easing??"linear",X=(typeof L==="function"?L:F[L]??F.linear)(J),W={},q=new Set([...Object.keys(H.params),...Object.keys(O.params)]);for(let Q of q){let Y=H.params[Q],Z=O.params[Q];if(Y===void 0)W[Q]=Z;else if(Z===void 0)W[Q]=Y;else W[Q]=this._interpolateValue(Y,Z,X)}this._paramSetter(W)}}_interpolateValue(C,H,O){if(typeof C==="number"&&typeof H==="number")return C+(H-C)*O;if(typeof C==="string"&&typeof H==="string"&&C.startsWith("#")&&H.startsWith("#"))return this._interpolateColor(C,H,O);if(typeof C==="boolean"&&typeof H==="boolean")return O<0.5?C:H;if(typeof C==="string"&&typeof H==="string")return O<0.5?C:H;return O<0.5?C:H}_interpolateColor(C,H,O){let z=this._hexToRgb(C),B=this._hexToRgb(H);if(!z||!B)return C;let J=Math.round(z.r+(B.r-z.r)*O),L=Math.round(z.g+(B.g-z.g)*O),M=Math.round(z.b+(B.b-z.b)*O);return`#${J.toString(16).padStart(2,"0")}${L.toString(16).padStart(2,"0")}${M.toString(16).padStart(2,"0")}`}_hexToRgb(C){let H=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(C);return H?{r:parseInt(H[1],16),g:parseInt(H[2],16),b:parseInt(H[3],16)}:null}_recalculateDuration(){this._duration=this._keyframes.length>0?Math.max(...this._keyframes.map((C)=>C.time)):0}dispose(){this.stop(),this._keyframes=[],this._onComplete=void 0,this._onUpdate=void 0}}export{$ as VideoRecorder,P as Timeline,E as ImageCapture};
|
|
2
12
|
|
|
3
|
-
|
|
13
|
+
/* @hypertools/sdk - MIT License - https://hypertools.dev */
|
|
14
|
+
|
|
15
|
+
//# debugId=9D8181C57929B4EC64756E2164756E21
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"/**\n * Image capture utilities for canvas\n */\n\nexport interface CaptureOptions {\n /** Image format (default: 'png') */\n format?: 'png' | 'jpeg' | 'webp';\n\n /** Quality for jpeg/webp (0-1, default: 0.92) */\n quality?: number;\n\n /** Optional filename for download */\n filename?: string;\n\n /** Scale factor (default: 1) */\n scale?: number;\n}\n\nexport interface CaptureResult {\n blob: Blob;\n url: string;\n width: number;\n height: number;\n format: string;\n}\n\nexport class ImageCapture {\n private _canvas: HTMLCanvasElement | null = null;\n\n constructor(canvas: HTMLCanvasElement) {\n this._canvas = canvas;\n }\n\n /**\n * Capture current canvas state as blob\n */\n async capture(options: CaptureOptions = {}): Promise<CaptureResult | null> {\n if (!this._canvas) {\n console.warn('[ImageCapture] No canvas provided');\n return null;\n }\n\n const format = options.format ?? 'png';\n const quality = options.quality ?? 0.92;\n const scale = options.scale ?? 1;\n\n let canvas = this._canvas;\n\n // Handle scaling\n if (scale !== 1) {\n canvas = this._createScaledCanvas(scale);\n }\n\n const mimeType = `image/${format}`;\n\n return new Promise((resolve) => {\n canvas.toBlob(\n (blob) => {\n if (!blob) {\n resolve(null);\n return;\n }\n\n const url = URL.createObjectURL(blob);\n resolve({\n blob,\n url,\n width: canvas.width,\n height: canvas.height,\n format,\n });\n },\n mimeType,\n format === 'png' ? undefined : quality\n );\n });\n }\n\n /**\n * Capture and download immediately\n */\n async download(options: CaptureOptions = {}): Promise<void> {\n const result = await this.capture(options);\n if (!result) {\n console.warn('[ImageCapture] Capture failed');\n return;\n }\n\n const filename = options.filename ?? `capture-${Date.now()}.${options.format ?? 'png'}`;\n\n const link = document.createElement('a');\n link.href = result.url;\n link.download = filename;\n link.click();\n\n // Cleanup URL after download starts\n setTimeout(() => URL.revokeObjectURL(result.url), 1000);\n }\n\n /**\n * Capture as data URL\n */\n toDataURL(options: CaptureOptions = {}): string {\n if (!this._canvas) {\n throw new Error('No canvas provided');\n }\n\n const format = options.format ?? 'png';\n const quality = options.quality ?? 0.92;\n const mimeType = `image/${format}`;\n\n return this._canvas.toDataURL(mimeType, format === 'png' ? undefined : quality);\n }\n\n /**\n * Copy to clipboard (if supported)\n */\n async copyToClipboard(options: CaptureOptions = {}): Promise<boolean> {\n if (!navigator.clipboard?.write) {\n console.warn('[ImageCapture] Clipboard API not supported');\n return false;\n }\n\n const result = await this.capture({ ...options, format: 'png' });\n if (!result) {\n return false;\n }\n\n try {\n await navigator.clipboard.write([\n new ClipboardItem({ 'image/png': result.blob }),\n ]);\n URL.revokeObjectURL(result.url);\n return true;\n } catch (error) {\n console.error('[ImageCapture] Clipboard write failed:', error);\n URL.revokeObjectURL(result.url);\n return false;\n }\n }\n\n private _createScaledCanvas(scale: number): HTMLCanvasElement {\n if (!this._canvas) {\n throw new Error('No canvas provided');\n }\n\n const scaled = document.createElement('canvas');\n scaled.width = Math.floor(this._canvas.width * scale);\n scaled.height = Math.floor(this._canvas.height * scale);\n\n const ctx = scaled.getContext('2d');\n if (ctx) {\n ctx.scale(scale, scale);\n ctx.drawImage(this._canvas, 0, 0);\n }\n\n return scaled;\n }\n\n /**\n * Dispose the capture instance\n */\n dispose(): void {\n this._canvas = null;\n }\n}\n",
|
|
7
7
|
"/**\n * Keyframe-based timeline animation system\n */\n\nexport type EasingFunction =\n | 'linear'\n | 'ease-in'\n | 'ease-out'\n | 'ease-in-out'\n | 'ease-in-quad'\n | 'ease-out-quad'\n | 'ease-in-cubic'\n | 'ease-out-cubic'\n | ((t: number) => number);\n\nexport interface TimelineKeyframe {\n time: number;\n params: Record<string, unknown>;\n easing?: EasingFunction;\n}\n\nexport interface TimelineOptions {\n /** Loop the timeline (default: false) */\n loop?: boolean;\n\n /** Auto-start (default: false) */\n autoplay?: boolean;\n\n /** Playback speed multiplier (default: 1) */\n speed?: number;\n}\n\nexport interface TimelineState {\n currentTime: number;\n duration: number;\n isPlaying: boolean;\n isPaused: boolean;\n progress: number;\n}\n\ntype ParamSetter = (params: Record<string, unknown>) => void;\n\n// Built-in easing functions\nconst EASING_FUNCTIONS: Record<string, (t: number) => number> = {\n linear: (t) => t,\n 'ease-in': (t) => t * t,\n 'ease-out': (t) => t * (2 - t),\n 'ease-in-out': (t) => (t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t),\n 'ease-in-quad': (t) => t * t,\n 'ease-out-quad': (t) => t * (2 - t),\n 'ease-in-cubic': (t) => t * t * t,\n 'ease-out-cubic': (t) => --t * t * t + 1,\n};\n\nexport class Timeline {\n private _keyframes: TimelineKeyframe[] = [];\n private _duration = 0;\n private _currentTime = 0;\n private _isPlaying = false;\n private _isPaused = false;\n private _options: Required<TimelineOptions>;\n private _animationFrame?: number;\n private _lastTickTime = 0;\n private _paramSetter: ParamSetter;\n private _onComplete?: () => void;\n private _onUpdate?: (state: TimelineState) => void;\n\n constructor(paramSetter: ParamSetter, options: TimelineOptions = {}) {\n this._paramSetter = paramSetter;\n this._options = {\n loop: options.loop ?? false,\n autoplay: options.autoplay ?? false,\n speed: options.speed ?? 1,\n };\n\n if (this._options.autoplay) {\n this.play();\n }\n }\n\n // ===== Keyframe Management =====\n\n /**\n * Add a keyframe at specified time\n */\n addKeyframe(\n time: number,\n params: Record<string, unknown>,\n easing?: EasingFunction\n ): this {\n this._keyframes.push({ time, params, easing });\n this._keyframes.sort((a, b) => a.time - b.time);\n this._recalculateDuration();\n return this;\n }\n\n /**\n * Remove keyframe at specified time\n */\n removeKeyframe(time: number): this {\n this._keyframes = this._keyframes.filter((kf) => kf.time !== time);\n this._recalculateDuration();\n return this;\n }\n\n /**\n * Remove all keyframes\n */\n clearKeyframes(): this {\n this._keyframes = [];\n this._duration = 0;\n return this;\n }\n\n /**\n * Get all keyframes\n */\n getKeyframes(): TimelineKeyframe[] {\n return [...this._keyframes];\n }\n\n // ===== Playback Control =====\n\n /**\n * Start playing timeline\n */\n play(): this {\n if (this._isPlaying && !this._isPaused) return this;\n\n this._isPlaying = true;\n this._isPaused = false;\n this._lastTickTime = performance.now();\n this._tick();\n return this;\n }\n\n /**\n * Pause timeline\n */\n pause(): this {\n this._isPaused = true;\n if (this._animationFrame) {\n cancelAnimationFrame(this._animationFrame);\n this._animationFrame = undefined;\n }\n return this;\n }\n\n /**\n * Stop and reset to start\n */\n stop(): this {\n this._isPlaying = false;\n this._isPaused = false;\n this._currentTime = 0;\n if (this._animationFrame) {\n cancelAnimationFrame(this._animationFrame);\n this._animationFrame = undefined;\n }\n this._applyParamsAtTime(0);\n return this;\n }\n\n /**\n * Seek to specific time\n */\n seek(time: number): this {\n this._currentTime = Math.max(0, Math.min(time, this._duration));\n this._applyParamsAtTime(this._currentTime);\n return this;\n }\n\n /**\n * Seek to progress (0-1)\n */\n seekProgress(progress: number): this {\n return this.seek(progress * this._duration);\n }\n\n /**\n * Set playback speed\n */\n setSpeed(speed: number): this {\n this._options.speed = speed;\n return this;\n }\n\n // ===== State =====\n\n get duration(): number {\n return this._duration;\n }\n\n get currentTime(): number {\n return this._currentTime;\n }\n\n get isPlaying(): boolean {\n return this._isPlaying && !this._isPaused;\n }\n\n get isPaused(): boolean {\n return this._isPaused;\n }\n\n get progress(): number {\n return this._duration > 0 ? this._currentTime / this._duration : 0;\n }\n\n getState(): TimelineState {\n return {\n currentTime: this._currentTime,\n duration: this._duration,\n isPlaying: this._isPlaying && !this._isPaused,\n isPaused: this._isPaused,\n progress: this.progress,\n };\n }\n\n // ===== Events =====\n\n /**\n * Called when timeline completes (or loops)\n */\n onComplete(callback: () => void): this {\n this._onComplete = callback;\n return this;\n }\n\n /**\n * Called on each update\n */\n onUpdate(callback: (state: TimelineState) => void): this {\n this._onUpdate = callback;\n return this;\n }\n\n // ===== Internal =====\n\n private _tick(): void {\n if (!this._isPlaying || this._isPaused) return;\n\n const now = performance.now();\n const delta = (now - this._lastTickTime) * this._options.speed;\n this._lastTickTime = now;\n\n this._currentTime += delta / 1000; // Convert to seconds\n\n // Check for completion\n if (this._currentTime >= this._duration) {\n if (this._options.loop) {\n this._currentTime = this._currentTime % this._duration;\n } else {\n this._currentTime = this._duration;\n this._isPlaying = false;\n this._applyParamsAtTime(this._currentTime);\n this._onComplete?.();\n this._onUpdate?.(this.getState());\n return;\n }\n }\n\n this._applyParamsAtTime(this._currentTime);\n this._onUpdate?.(this.getState());\n\n this._animationFrame = requestAnimationFrame(() => this._tick());\n }\n\n private _applyParamsAtTime(time: number): void {\n if (this._keyframes.length === 0) return;\n\n // Find surrounding keyframes\n let prevKf: TimelineKeyframe | null = null;\n let nextKf: TimelineKeyframe | null = null;\n\n for (let i = 0; i < this._keyframes.length; i++) {\n if (this._keyframes[i].time <= time) {\n prevKf = this._keyframes[i];\n }\n if (this._keyframes[i].time >= time && !nextKf) {\n nextKf = this._keyframes[i];\n }\n }\n\n // If before first keyframe, use first\n if (!prevKf && nextKf) {\n this._paramSetter(nextKf.params);\n return;\n }\n\n // If after last keyframe, use last\n if (prevKf && !nextKf) {\n this._paramSetter(prevKf.params);\n return;\n }\n\n // If same keyframe, just apply\n if (prevKf && nextKf && prevKf.time === nextKf.time) {\n this._paramSetter(prevKf.params);\n return;\n }\n\n // Interpolate between keyframes\n if (prevKf && nextKf) {\n const duration = nextKf.time - prevKf.time;\n const elapsed = time - prevKf.time;\n const rawProgress = duration > 0 ? elapsed / duration : 1;\n\n // Apply easing\n const easing = nextKf.easing ?? 'linear';\n const easingFn =\n typeof easing === 'function'\n ? easing\n : EASING_FUNCTIONS[easing] ?? EASING_FUNCTIONS.linear;\n const progress = easingFn(rawProgress);\n\n // Interpolate params\n const interpolated: Record<string, unknown> = {};\n\n // Get all param keys from both keyframes\n const allKeys = new Set([\n ...Object.keys(prevKf.params),\n ...Object.keys(nextKf.params),\n ]);\n\n for (const key of allKeys) {\n const prevVal = prevKf.params[key];\n const nextVal = nextKf.params[key];\n\n if (prevVal === undefined) {\n interpolated[key] = nextVal;\n } else if (nextVal === undefined) {\n interpolated[key] = prevVal;\n } else {\n interpolated[key] = this._interpolateValue(prevVal, nextVal, progress);\n }\n }\n\n this._paramSetter(interpolated);\n }\n }\n\n private _interpolateValue(from: unknown, to: unknown, t: number): unknown {\n // Number interpolation\n if (typeof from === 'number' && typeof to === 'number') {\n return from + (to - from) * t;\n }\n\n // Color interpolation (hex)\n if (\n typeof from === 'string' &&\n typeof to === 'string' &&\n from.startsWith('#') &&\n to.startsWith('#')\n ) {\n return this._interpolateColor(from, to, t);\n }\n\n // Boolean - snap at 0.5\n if (typeof from === 'boolean' && typeof to === 'boolean') {\n return t < 0.5 ? from : to;\n }\n\n // String - snap at 0.5\n if (typeof from === 'string' && typeof to === 'string') {\n return t < 0.5 ? from : to;\n }\n\n // Default: snap at 0.5\n return t < 0.5 ? from : to;\n }\n\n private _interpolateColor(from: string, to: string, t: number): string {\n const fromRgb = this._hexToRgb(from);\n const toRgb = this._hexToRgb(to);\n\n if (!fromRgb || !toRgb) return from;\n\n const r = Math.round(fromRgb.r + (toRgb.r - fromRgb.r) * t);\n const g = Math.round(fromRgb.g + (toRgb.g - fromRgb.g) * t);\n const b = Math.round(fromRgb.b + (toRgb.b - fromRgb.b) * t);\n\n return `#${r.toString(16).padStart(2, '0')}${g.toString(16).padStart(2, '0')}${b.toString(16).padStart(2, '0')}`;\n }\n\n private _hexToRgb(hex: string): { r: number; g: number; b: number } | null {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result\n ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16),\n }\n : null;\n }\n\n private _recalculateDuration(): void {\n this._duration =\n this._keyframes.length > 0\n ? Math.max(...this._keyframes.map((kf) => kf.time))\n : 0;\n }\n\n /**\n * Dispose the timeline\n */\n dispose(): void {\n this.stop();\n this._keyframes = [];\n this._onComplete = undefined;\n this._onUpdate = undefined;\n }\n}\n"
|
|
8
8
|
],
|
|
9
|
-
"mappings": "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",
|
|
10
|
-
"debugId": "
|
|
9
|
+
"mappings": "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",
|
|
10
|
+
"debugId": "9D8181C57929B4EC64756E2164756E21",
|
|
11
11
|
"names": []
|
|
12
12
|
}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hypertools/sdk",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Vanilla-first SDK for embedding interactive creative coding experiences. Supports p5.js, Three.js, WebGL, and more.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"module": "./dist/index.js",
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
9
9
|
"license": "MIT",
|
|
10
|
-
"author": "
|
|
10
|
+
"author": "HyperTools Team",
|
|
11
11
|
"homepage": "https://github.com/hypertools/sdk#readme",
|
|
12
12
|
"repository": {
|
|
13
13
|
"type": "git",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"url": "https://github.com/hypertools/sdk/issues"
|
|
19
19
|
},
|
|
20
20
|
"keywords": [
|
|
21
|
-
"
|
|
21
|
+
"hypertools",
|
|
22
22
|
"creative-coding",
|
|
23
23
|
"p5js",
|
|
24
24
|
"threejs",
|
|
@@ -43,9 +43,6 @@
|
|
|
43
43
|
"dist/recording",
|
|
44
44
|
"dist/react",
|
|
45
45
|
"dist/capture",
|
|
46
|
-
"dist/export",
|
|
47
|
-
"dist/codegen",
|
|
48
|
-
"dist/frame",
|
|
49
46
|
"README.md",
|
|
50
47
|
"LICENSE"
|
|
51
48
|
],
|
|
@@ -71,6 +68,10 @@
|
|
|
71
68
|
"types": "./dist/capture/index.d.ts",
|
|
72
69
|
"import": "./dist/capture/index.js"
|
|
73
70
|
},
|
|
71
|
+
"./frame": {
|
|
72
|
+
"types": "./dist/frame/index.d.ts",
|
|
73
|
+
"import": "./dist/frame/index.js"
|
|
74
|
+
},
|
|
74
75
|
"./export": {
|
|
75
76
|
"types": "./dist/export/index.d.ts",
|
|
76
77
|
"import": "./dist/export/index.js"
|
|
@@ -78,10 +79,30 @@
|
|
|
78
79
|
"./codegen": {
|
|
79
80
|
"types": "./dist/codegen/index.d.ts",
|
|
80
81
|
"import": "./dist/codegen/index.js"
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
"publishConfig": {
|
|
85
|
+
"exports": {
|
|
86
|
+
".": {
|
|
87
|
+
"types": "./dist/index.d.ts",
|
|
88
|
+
"import": "./dist/index.js"
|
|
89
|
+
},
|
|
90
|
+
"./controls": {
|
|
91
|
+
"types": "./dist/controls/index.d.ts",
|
|
92
|
+
"import": "./dist/controls/index.js"
|
|
93
|
+
},
|
|
94
|
+
"./recording": {
|
|
95
|
+
"types": "./dist/recording/index.d.ts",
|
|
96
|
+
"import": "./dist/recording/index.js"
|
|
97
|
+
},
|
|
98
|
+
"./react": {
|
|
99
|
+
"types": "./dist/react/index.d.ts",
|
|
100
|
+
"import": "./dist/react/index.js"
|
|
101
|
+
},
|
|
102
|
+
"./capture": {
|
|
103
|
+
"types": "./dist/capture/index.d.ts",
|
|
104
|
+
"import": "./dist/capture/index.js"
|
|
105
|
+
}
|
|
85
106
|
}
|
|
86
107
|
},
|
|
87
108
|
"scripts": {
|
package/dist/codegen/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codegen/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,WAAW,CAAC"}
|