@hypertools/sdk 0.1.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/README.md +19 -19
- package/dist/capture/index.d.ts +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.d.ts +6 -6
- package/dist/index.js +14 -1
- package/dist/index.js.map +3 -3
- 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 +34 -13
- 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/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
# @
|
|
1
|
+
# @hypertools/sdk
|
|
2
2
|
|
|
3
3
|
Vanilla-first SDK for embedding interactive creative coding experiences. Works with p5.js, Three.js, WebGL, Canvas, and any other rendering library.
|
|
4
4
|
|
|
5
|
-
[](https://www.npmjs.com/package/@hypertools/sdk)
|
|
6
|
+
[](https://www.npmjs.com/package/@hypertools/sdk)
|
|
7
7
|
[](https://opensource.org/licenses/MIT)
|
|
8
8
|
|
|
9
9
|
## Features
|
|
@@ -20,16 +20,16 @@ Vanilla-first SDK for embedding interactive creative coding experiences. Works w
|
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
22
|
# npm
|
|
23
|
-
npm install @
|
|
23
|
+
npm install @hypertools/sdk
|
|
24
24
|
|
|
25
25
|
# yarn
|
|
26
|
-
yarn add @
|
|
26
|
+
yarn add @hypertools/sdk
|
|
27
27
|
|
|
28
28
|
# pnpm
|
|
29
|
-
pnpm add @
|
|
29
|
+
pnpm add @hypertools/sdk
|
|
30
30
|
|
|
31
31
|
# bun
|
|
32
|
-
bun add @
|
|
32
|
+
bun add @hypertools/sdk
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
## Quick Start
|
|
@@ -37,7 +37,7 @@ bun add @hypertool/sdk
|
|
|
37
37
|
### Basic Usage
|
|
38
38
|
|
|
39
39
|
```typescript
|
|
40
|
-
import { Experience } from '@
|
|
40
|
+
import { Experience } from '@hypertools/sdk';
|
|
41
41
|
|
|
42
42
|
const experience = new Experience({
|
|
43
43
|
mount: document.getElementById('canvas-container'),
|
|
@@ -92,7 +92,7 @@ experience.destroy();
|
|
|
92
92
|
### With p5.js
|
|
93
93
|
|
|
94
94
|
```typescript
|
|
95
|
-
import { Experience } from '@
|
|
95
|
+
import { Experience } from '@hypertools/sdk';
|
|
96
96
|
import p5 from 'p5';
|
|
97
97
|
|
|
98
98
|
new Experience({
|
|
@@ -135,7 +135,7 @@ new Experience({
|
|
|
135
135
|
### With Three.js
|
|
136
136
|
|
|
137
137
|
```typescript
|
|
138
|
-
import { Experience } from '@
|
|
138
|
+
import { Experience } from '@hypertools/sdk';
|
|
139
139
|
import * as THREE from 'three';
|
|
140
140
|
|
|
141
141
|
new Experience({
|
|
@@ -190,11 +190,11 @@ The SDK is modular - import only what you need:
|
|
|
190
190
|
|
|
191
191
|
| Entry | Purpose |
|
|
192
192
|
|-------|---------|
|
|
193
|
-
| `@
|
|
194
|
-
| `@
|
|
195
|
-
| `@
|
|
196
|
-
| `@
|
|
197
|
-
| `@
|
|
193
|
+
| `@hypertools/sdk` | Core Experience class + utilities |
|
|
194
|
+
| `@hypertools/sdk/controls` | Tweakpane-based control panel (requires `tweakpane` peer dep) |
|
|
195
|
+
| `@hypertools/sdk/recording` | Video/image capture & timeline |
|
|
196
|
+
| `@hypertools/sdk/react` | React hooks & components (requires `react` peer dep) |
|
|
197
|
+
| `@hypertools/sdk/capture` | Low-level capture utilities |
|
|
198
198
|
|
|
199
199
|
## API Reference
|
|
200
200
|
|
|
@@ -286,7 +286,7 @@ experience.mount; // HTMLElement
|
|
|
286
286
|
### Recording Module
|
|
287
287
|
|
|
288
288
|
```typescript
|
|
289
|
-
import { VideoRecorder, ImageCapture, Timeline } from '@
|
|
289
|
+
import { VideoRecorder, ImageCapture, Timeline } from '@hypertools/sdk/recording';
|
|
290
290
|
|
|
291
291
|
// Video recording
|
|
292
292
|
const recorder = VideoRecorder.start(canvas, {
|
|
@@ -325,7 +325,7 @@ timeline.seek(2500); // Jump to 2.5s
|
|
|
325
325
|
### React Integration
|
|
326
326
|
|
|
327
327
|
```tsx
|
|
328
|
-
import { useExperience, ExperienceView } from '@
|
|
328
|
+
import { useExperience, ExperienceView } from '@hypertools/sdk/react';
|
|
329
329
|
|
|
330
330
|
function MyVisualization() {
|
|
331
331
|
const {
|
|
@@ -383,7 +383,7 @@ function MyVisualization() {
|
|
|
383
383
|
Add a visual control panel with Tweakpane:
|
|
384
384
|
|
|
385
385
|
```typescript
|
|
386
|
-
import { HypertoolControls } from '@
|
|
386
|
+
import { HypertoolControls } from '@hypertools/sdk/controls';
|
|
387
387
|
|
|
388
388
|
const controls = new HypertoolControls({
|
|
389
389
|
container: document.getElementById('controls'),
|
|
@@ -431,7 +431,7 @@ import type {
|
|
|
431
431
|
ParamDefinitions,
|
|
432
432
|
ParamValues,
|
|
433
433
|
ExperienceEvent,
|
|
434
|
-
} from '@
|
|
434
|
+
} from '@hypertools/sdk';
|
|
435
435
|
```
|
|
436
436
|
|
|
437
437
|
## Contributing
|
package/dist/capture/index.d.ts
CHANGED
package/dist/capture/index.js
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
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 G{config;customHandler=null;constructor(p={}){if(this.config={defaultFormat:"png",quality:0.92,...p},p.customHandler)this.customHandler=p.customHandler}registerHandler(p){this.customHandler=p}async capture(p,u=this.config.defaultFormat||"png"){if(this.customHandler)return this.customHandler(u);let H=this.findRenderTarget(p);if(!H)return console.warn("[CaptureManager] No render target found in container"),null;let{element:C,type:V}=H;switch(V){case"canvas":return this.captureCanvas(C,u);case"svg":return this.captureSvg(C,u);case"html":return this.captureHtml(C,u);default:return console.warn("[CaptureManager] Unknown render target type:",V),null}}findRenderTarget(p){if(this.config.targetSelector){let C=p.querySelector(this.config.targetSelector);if(C)return{element:C,type:this.config.targetType||this.detectType(C)}}let u=p.querySelector("canvas");if(u)return{element:u,type:"canvas"};let H=p.querySelector("svg");if(H)return{element:H,type:"svg"};return{element:p,type:"html"}}detectType(p){if(p instanceof HTMLCanvasElement)return"canvas";if(p instanceof SVGSVGElement)return"svg";return"html"}async captureCanvas(p,u){let H=this.getMimeType(u),C=u==="jpeg"?this.config.quality:void 0;return new Promise((V)=>{p.toBlob((d)=>{if(!d){V(null);return}V({blob:d,width:p.width,height:p.height,format:u})},H,C)})}async captureSvg(p,u){if(u==="svg"){let C=new XMLSerializer().serializeToString(p),V=new Blob([C],{type:"image/svg+xml"}),d=p.getBBox();return{blob:V,width:d.width||p.clientWidth,height:d.height||p.clientHeight,format:"svg"}}return this.svgToRaster(p,u)}async svgToRaster(p,u){let C=new XMLSerializer().serializeToString(p),V=new Blob([C],{type:"image/svg+xml;charset=utf-8"}),d=URL.createObjectURL(V),R=new Image;return R.src=d,new Promise((A)=>{R.onload=()=>{URL.revokeObjectURL(d);let k=document.createElement("canvas"),y=p.clientWidth||R.width,T=p.clientHeight||R.height;k.width=y,k.height=T;let F=k.getContext("2d");if(!F){A(null);return}F.drawImage(R,0,0,y,T),this.captureCanvas(k,u).then(A)},R.onerror=()=>{URL.revokeObjectURL(d),A(null)}})}async captureHtml(p,u){let H=p,C=H.offsetWidth,V=H.offsetHeight,d=document.createElement("canvas");d.width=C,d.height=V;let R=d.getContext("2d");if(!R)return null;let A=`
|
|
2
12
|
<svg xmlns="http://www.w3.org/2000/svg" width="${C}" height="${V}">
|
|
3
13
|
<foreignObject width="100%" height="100%">
|
|
@@ -8,4 +18,6 @@ class G{config;customHandler=null;constructor(p={}){if(this.config={defaultForma
|
|
|
8
18
|
</svg>
|
|
9
19
|
`,k=new Blob([A],{type:"image/svg+xml;charset=utf-8"}),y=URL.createObjectURL(k),T=new Image;return T.src=y,new Promise((F)=>{T.onload=()=>{URL.revokeObjectURL(y),R.drawImage(T,0,0),this.captureCanvas(d,u).then(F)},T.onerror=()=>{URL.revokeObjectURL(y),console.warn("[CaptureManager] HTML capture failed. Consider using a custom capture handler."),F(null)}})}getMimeType(p){switch(p){case"png":return"image/png";case"jpeg":return"image/jpeg";case"webp":return"image/webp";case"svg":return"image/svg+xml";default:return"image/png"}}}export{G as CaptureManager};
|
|
10
20
|
|
|
11
|
-
|
|
21
|
+
/* @hypertools/sdk - MIT License - https://hypertools.dev */
|
|
22
|
+
|
|
23
|
+
//# debugId=1FCFAADF8D276A9864756E2164756E21
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"/**\n * CaptureManager - Rendering-target agnostic capture system\n *\n * Supports capturing from ANY rendering target:\n * - Canvas (2D, WebGL, WebGPU)\n * - SVG elements\n * - HTML elements (via html2canvas-like approach)\n * - Custom targets via handlers\n */\n\nimport type {\n CaptureFormat,\n CaptureResult,\n CaptureHandler,\n CaptureConfig,\n RenderTargetType,\n} from './types';\n\nexport class CaptureManager {\n private config: CaptureConfig;\n private customHandler: CaptureHandler | null = null;\n\n constructor(config: CaptureConfig = {}) {\n this.config = {\n defaultFormat: 'png',\n quality: 0.92,\n ...config,\n };\n\n if (config.customHandler) {\n this.customHandler = config.customHandler;\n }\n }\n\n /**\n * Register a custom capture handler\n * Use this to support any rendering target\n */\n registerHandler(handler: CaptureHandler): void {\n this.customHandler = handler;\n }\n\n /**\n * Capture image from the render target\n */\n async capture(\n container: HTMLElement,\n format: CaptureFormat = this.config.defaultFormat || 'png'\n ): Promise<CaptureResult | null> {\n // Use custom handler if registered\n if (this.customHandler) {\n return this.customHandler(format);\n }\n\n // Auto-detect render target\n const target = this.findRenderTarget(container);\n if (!target) {\n console.warn('[CaptureManager] No render target found in container');\n return null;\n }\n\n const { element, type } = target;\n\n switch (type) {\n case 'canvas':\n return this.captureCanvas(element as HTMLCanvasElement, format);\n case 'svg':\n return this.captureSvg(element as SVGSVGElement, format);\n case 'html':\n return this.captureHtml(element, format);\n default:\n console.warn('[CaptureManager] Unknown render target type:', type);\n return null;\n }\n }\n\n /**\n * Find the render target in a container\n * Priority: custom selector > canvas > svg > container itself\n */\n private findRenderTarget(\n container: HTMLElement\n ): { element: Element; type: RenderTargetType } | null {\n // Use custom selector if specified\n if (this.config.targetSelector) {\n const element = container.querySelector(this.config.targetSelector);\n if (element) {\n return {\n element,\n type: this.config.targetType || this.detectType(element),\n };\n }\n }\n\n // Auto-detect: canvas first\n const canvas = container.querySelector('canvas');\n if (canvas) {\n return { element: canvas, type: 'canvas' };\n }\n\n // Then SVG\n const svg = container.querySelector('svg');\n if (svg) {\n return { element: svg, type: 'svg' };\n }\n\n // Fall back to the container itself (HTML capture)\n return { element: container, type: 'html' };\n }\n\n /**\n * Detect the type of an element\n */\n private detectType(element: Element): RenderTargetType {\n if (element instanceof HTMLCanvasElement) return 'canvas';\n if (element instanceof SVGSVGElement) return 'svg';\n return 'html';\n }\n\n /**\n * Capture from canvas element\n */\n private async captureCanvas(\n canvas: HTMLCanvasElement,\n format: CaptureFormat\n ): Promise<CaptureResult | null> {\n const mimeType = this.getMimeType(format);\n const quality = format === 'jpeg' ? this.config.quality : undefined;\n\n return new Promise((resolve) => {\n canvas.toBlob(\n (blob) => {\n if (!blob) {\n resolve(null);\n return;\n }\n resolve({\n blob,\n width: canvas.width,\n height: canvas.height,\n format,\n });\n },\n mimeType,\n quality\n );\n });\n }\n\n /**\n * Capture from SVG element\n */\n private async captureSvg(\n svg: SVGSVGElement,\n format: CaptureFormat\n ): Promise<CaptureResult | null> {\n // For SVG format, return the SVG directly\n if (format === 'svg') {\n const serializer = new XMLSerializer();\n const svgString = serializer.serializeToString(svg);\n const blob = new Blob([svgString], { type: 'image/svg+xml' });\n const bbox = svg.getBBox();\n return {\n blob,\n width: bbox.width || svg.clientWidth,\n height: bbox.height || svg.clientHeight,\n format: 'svg',\n };\n }\n\n // For raster formats, render SVG to canvas first\n return this.svgToRaster(svg, format);\n }\n\n /**\n * Convert SVG to raster image via canvas\n */\n private async svgToRaster(\n svg: SVGSVGElement,\n format: CaptureFormat\n ): Promise<CaptureResult | null> {\n const serializer = new XMLSerializer();\n const svgString = serializer.serializeToString(svg);\n const svgBlob = new Blob([svgString], { type: 'image/svg+xml;charset=utf-8' });\n const url = URL.createObjectURL(svgBlob);\n\n const img = new Image();\n img.src = url;\n\n return new Promise((resolve) => {\n img.onload = () => {\n URL.revokeObjectURL(url);\n\n const canvas = document.createElement('canvas');\n const width = svg.clientWidth || img.width;\n const height = svg.clientHeight || img.height;\n canvas.width = width;\n canvas.height = height;\n\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n resolve(null);\n return;\n }\n\n ctx.drawImage(img, 0, 0, width, height);\n\n this.captureCanvas(canvas, format).then(resolve);\n };\n\n img.onerror = () => {\n URL.revokeObjectURL(url);\n resolve(null);\n };\n });\n }\n\n /**\n * Capture from HTML element\n * Uses a simple approach - for complex HTML, consider html2canvas\n */\n private async captureHtml(\n element: Element,\n format: CaptureFormat\n ): Promise<CaptureResult | null> {\n // Simple approach: use browser's native rendering\n // For production, you might want to use html2canvas or similar\n\n const htmlElement = element as HTMLElement;\n const width = htmlElement.offsetWidth;\n const height = htmlElement.offsetHeight;\n\n // Create a canvas and draw the element\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n return null;\n }\n\n // Use foreignObject approach\n const svgString = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${width}\" height=\"${height}\">\n <foreignObject width=\"100%\" height=\"100%\">\n <div xmlns=\"http://www.w3.org/1999/xhtml\">\n ${htmlElement.outerHTML}\n </div>\n </foreignObject>\n </svg>\n `;\n\n const svgBlob = new Blob([svgString], { type: 'image/svg+xml;charset=utf-8' });\n const url = URL.createObjectURL(svgBlob);\n\n const img = new Image();\n img.src = url;\n\n return new Promise((resolve) => {\n img.onload = () => {\n URL.revokeObjectURL(url);\n ctx.drawImage(img, 0, 0);\n this.captureCanvas(canvas, format).then(resolve);\n };\n\n img.onerror = () => {\n URL.revokeObjectURL(url);\n // Fallback: return null, user should use custom handler for complex HTML\n console.warn(\n '[CaptureManager] HTML capture failed. Consider using a custom capture handler.'\n );\n resolve(null);\n };\n });\n }\n\n /**\n * Get MIME type for format\n */\n private getMimeType(format: CaptureFormat): string {\n switch (format) {\n case 'png':\n return 'image/png';\n case 'jpeg':\n return 'image/jpeg';\n case 'webp':\n return 'image/webp';\n case 'svg':\n return 'image/svg+xml';\n default:\n return 'image/png';\n }\n }\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "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",
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "1FCFAADF8D276A9864756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/controls/index.js
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
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{Pane as k}from"tweakpane";var b={cssVariables:{"--bg":"#0a0e14","--bg-elevated":"#0f1419","--muted":"#1a2332","--text":"#e6edf3","--text-secondary":"#8b949e","--accent":"#58d5ff","--accent-2":"#42a5cc","--border":"#21262d","--border-hover":"#30363d","--success":"#3fb950","--error":"#f85149","--ht-text-color-main-200":"#00ffd4","--ht-text-color-main-300":"#6ff3dd","--ht-text-color-main-500":"#4b8e85","--ht-text-color-grey-200":"#8c8d8f","--ht-bg-color-200":"#8c8d8f","--ht-bg-color-200-active":"#7a7b7d","--ht-bg-color-200-focus":"#7e7f81","--ht-bg-color-200-hover":"#828384","--ht-bg-color-300":"#5e6068","--ht-bg-color-300-active":"#4c4e56","--ht-bg-color-300-focus":"#55575f","--ht-bg-color-300-hover":"#595b63","--ht-bg-color-400":"#cccccc","--ht-bg-color-400-active":"#b3b3b3","--ht-bg-color-400-focus":"#c0c0c0","--ht-bg-color-400-hover":"#c6c6c6","--ht-bg-color-500":"#1C1D20","--ht-bg-color-500-active":"#0a0b0e","--ht-bg-color-500-focus":"#131417","--ht-bg-color-500-hover":"#16171a","--ht-bg-color-600":"#37383D","--ht-bg-color-600-active":"#25262b","--ht-bg-color-600-focus":"#2e2f34","--ht-bg-color-600-hover":"#323338","--ht-bg-color-700":"#0f1419","--ht-bg-color-700-active":"#16171c","--ht-bg-color-700-focus":"#1f2025","--ht-bg-color-700-hover":"#232429","--ht-border-radius":"8px","--ht-base-font-family-base":'"HydrogenType400", ui-sans-serif, system-ui, sans-serif',"--ht-base-font-family-display":'"Departure Mono", Roboto Mono, Source Code Pro, Menlo, Courier, monospace',"--ht-base-font-family-sans":'"Routed Gothic", ui-sans-serif, system-ui, sans-serif',"--ht-base-font-family-mono":'"Routed Gothic Narrow", ui-monospace, SFMono-Regular, SF Mono, Consolas, Liberation Mono, Menlo, monospace'},tweakpane:{"--tp-base-background-color":"var(--ht-bg-color-700)","--tp-base-shadow-color":"hsla(0, 0%, 0%, 0.2)","--tp-container-background-color":"var(--ht-bg-color-600)","--tp-container-background-color-active":"var(--ht-bg-color-600-active)","--tp-container-background-color-focus":"var(--ht-bg-color-600-focus)","--tp-container-background-color-hover":"var(--ht-bg-color-600-hover)","--tp-container-foreground-color":"var(--ht-text-color-main-300)","--tp-button-background-color":"var(--ht-bg-color-400)","--tp-button-background-color-active":"color-mix(in srgb, var(--ht-bg-color-400-active) 80%, white)","--tp-button-background-color-focus":"color-mix(in srgb, var(--ht-bg-color-400-focus) 85%, white)","--tp-button-background-color-hover":"color-mix(in srgb, var(--ht-bg-color-400-hover) 90%, white)","--tp-button-foreground-color":"var(--ht-text-color-main-300)","--tp-groove-foreground-color":"var(--ht-bg-color-300)","--tp-input-background-color":"var(--ht-bg-color-500)","--tp-input-background-color-active":"var(--ht-bg-color-500-active)","--tp-input-background-color-focus":"var(--ht-bg-color-500-focus)","--tp-input-background-color-hover":"var(--ht-bg-color-500-hover)","--tp-input-foreground-color":"var(--ht-text-color-main-300)","--tp-label-foreground-color":"var(--ht-text-color-main-300)","--tp-monitor-background-color":"var(--ht-bg-color-500)","--tp-monitor-foreground-color":"var(--ht-text-color-main-300)"}};function h(){let D=document.createElement("style");D.id="hypertool-theme";let z=Object.entries({...b.cssVariables,...b.tweakpane}).map(([T,J])=>` ${T}: ${J};`).join(`
|
|
2
12
|
`);D.textContent=`
|
|
3
13
|
body {
|
|
@@ -25,4 +35,6 @@ ${z}
|
|
|
25
35
|
}
|
|
26
36
|
`,document.head.appendChild(D)}class E{constructor(D,z={}){this.pane=null,this.definitions=D,this.options={title:z.title||"Controls",position:z.position||"top-right",expanded:z.expanded!==void 0?z.expanded:!0,container:z.container!==void 0?z.container:null,onChange:z.onChange||(()=>{}),onReady:z.onReady||(()=>{})},this.params=this.extractInitialValues(D),this.init()}isFolder(D){return D&&typeof D==="object"&&(D.type==="folder"||D.type==="group")}isButton(D){return D&&typeof D==="object"&&D.type==="button"}isTab(D){return D&&typeof D==="object"&&D.type==="tab"}isFile(D){return D&&typeof D==="object"&&D.type==="file"}extractInitialValues(D){let z={};for(let[T,J]of Object.entries(D)){let F=J;if(this.isFolder(F))z[T]=this.extractInitialValues(F.controls);else if(this.isTab(F))z[T]=F.pages.map((L)=>this.extractInitialValues(L.controls));else if(this.isButton(F))continue;else z[T]=F.value}return z}async init(){try{h(),await new Promise((D)=>setTimeout(D,50)),this.createPane(),this.addControls(),this.options.onReady()}catch(D){console.error("[HypertoolControls] Initialization error:",D)}}createPane(){let D=this.resolveContainer(),z={title:this.options.title,expanded:this.options.expanded};if(D)z.container=D;this.pane=new k(z),this.pane.element.parentElement?.classList.add("controls-container")}resolveContainer(){if(typeof document>"u")return null;let D=this.options.container;if(!D)return null;if(D instanceof HTMLElement)return D;let z=document.querySelector(D);if(!z)return console.warn(`[HypertoolControls] Container selector "${D}" did not match any elements`),null;return z}addControls(){if(!this.pane)return;this.addControlsToTarget(this.pane,this.definitions,this.params)}addControlsToTarget(D,z,T){for(let[J,F]of Object.entries(z))try{if(this.isFolder(F)){let L={title:F.label||J};if(F.expanded!==void 0)L.expanded=F.expanded;let W=D.addFolder(L);this.addControlsToTarget(W,F.controls,T[J])}else if(this.isButton(F)){let L={title:F.title};if(F.label)L.label=F.label;let W=D.addButton(L);if(F.onClick)W.on("click",F.onClick)}else if(this.isTab(F)){let L={pages:F.pages.map((G)=>({title:G.title}))},W=D.addTab(L);F.pages.forEach((G,X)=>{this.addControlsToTarget(W.pages[X],G.controls,T[J][X])})}else if(this.isFile(F))this.addFileControl(D,J,F,T);else this.addControlToTarget(D,J,F,T)}catch(L){console.error(`[HypertoolControls] Error adding control/folder/button/tab "${J}":`,L)}}addControlToTarget(D,z,T,J){if(this.isFolder(T))return;let F={label:T.label||z};if(T.readonly!==void 0)F.readonly=T.readonly;if(T.interval!==void 0)F.interval=T.interval;if(T.bufferSize!==void 0)F.bufferSize=T.bufferSize;if(T.multiline!==void 0)F.multiline=T.multiline;if(T.rows!==void 0)F.rows=T.rows;if(T.view!==void 0)F.view=T.view;switch(T.type){case"number":if(T.min!==void 0)F.min=T.min;if(T.max!==void 0)F.max=T.max;if(T.step!==void 0)F.step=T.step;break;case"point":case"point2d":case"point3d":case"point4d":if(T.min!==void 0)F.min=T.min;if(T.max!==void 0)F.max=T.max;if(T.step!==void 0)F.step=T.step;let W=["x","y","z","w"];for(let G of W)if(T[G]&&typeof T[G]==="object")F[G]=T[G];break;case"select":case"selector":if(Array.isArray(T.options))F.options=T.options.map((G)=>{if(typeof G==="object"&&G!==null)return{text:G.label||G.text||String(G.value),value:G.value};return{text:String(G),value:G}});else F.options=Object.entries(T.options).map(([G,X])=>({text:G,value:X}));break;case"color":case"boolean":case"string":case"text":break;case"folder":case"group":console.warn("[HypertoolControls] Folder/Group encountered in addControlToTarget (should be handled earlier)");return;case"button":console.warn("[HypertoolControls] Button encountered in addControlToTarget (should be handled earlier)");return;case"tab":console.warn("[HypertoolControls] Tab encountered in addControlToTarget (should be handled earlier)");return;default:console.warn(`[HypertoolControls] Unknown control type: ${T.type}`);return}D.addBinding(J,z,F).on("change",(W)=>{J[z]=W.value;let G={key:z,value:W.value,event:W};this.options.onChange(this.values,G)})}addFileControl(D,z,T,J){let F=T.label||z,L=T.accept||"*/*",W=T.placeholder||"Choose file...",G=T.preview!==!1,X=document.createElement("div");X.className="tp-lblv ht-file-control-row";let x=document.createElement("div");x.className="tp-lblv_l ht-file-control-label",x.textContent=F;let V=document.createElement("div");V.className="tp-lblv_v ht-file-control-value";let Y=document.createElement("input");Y.type="file",Y.accept=L,Y.style.display="none";let A=document.createElement("div");A.className="ht-file-control-buttons";let M=document.createElement("button");M.className="tp-btnv_b ht-file-control-button",M.textContent=J[z]?"Change":"Upload",M.style.display=J[z]?"none":"inline-flex";let $=document.createElement("button");$.className="tp-btnv_b ht-file-control-button ht-file-control-button--muted",$.textContent="✕",$.style.display="none";let j=document.createElement("div");j.className="ht-file-control-preview",j.style.display=J[z]&&G?"block":"none";let U=document.createElement("div");U.className="ht-file-control-preview-bar";let S=document.createElement("span");S.className="ht-file-control-preview-name",S.textContent=J[z]?"File":"No file selected";let C=document.createElement("div");C.className="ht-file-control-preview-actions";let q=document.createElement("button");q.type="button",q.className="ht-file-control-preview-action",q.title="Replace file",q.textContent="↻",q.onclick=(K)=>{K.preventDefault(),Y.click()};let H=document.createElement("button");H.type="button",H.className="ht-file-control-preview-action",H.title="Remove file",H.textContent="✕",H.onclick=(K)=>{K.preventDefault(),$.click()},C.appendChild(q),C.appendChild(H),U.appendChild(S),U.appendChild(C);let O=document.createElement("img");O.className="ht-file-control-preview-img";let N=document.createElement("div");N.className="ht-file-control-placeholder",N.style.display="none",Y.onchange=async()=>{let K=Y.files?.[0];if(!K)return;if(T.maxSize&&K.size>T.maxSize){console.warn(`[HypertoolControls] File size exceeds limit: ${K.size} > ${T.maxSize}`);return}M.textContent="Uploading...",M.disabled=!0;let R=`file-upload-${Date.now()}-${Math.random().toString(36).slice(2)}`,w=new Promise((Z)=>{let _=(Q)=>{if(Q.data?.type!=="UPLOAD_CONTROL_FILE_RESULT")return;if(Q.data?.requestId!==R)return;if(window.removeEventListener("message",_),Q.data.error)console.error("[HypertoolControls] File upload failed:",Q.data.error),Z(null);else Z({url:Q.data.url,originalUrl:Q.data.originalUrl||Q.data.url})};window.addEventListener("message",_),setTimeout(()=>{window.removeEventListener("message",_),console.warn("[HypertoolControls] File upload timed out"),Z(null)},30000)}),P=null;if(G&&K.type.startsWith("image/")){let Z=new FileReader;Z.onload=(_)=>{P=_.target?.result},Z.readAsDataURL(K)}let B=new FileReader;B.onload=async(Z)=>{let _=Z.target?.result;window.parent.postMessage({type:"UPLOAD_CONTROL_FILE",source:"hypertool-iframe",requestId:R,data:{fileName:K.name,fileType:K.type,fileSize:K.size,fileData:_,controlKey:z}},"*",[_]);let Q=await w;if(M.disabled=!1,Q){if(J[z]=Q.url,M.textContent="Change",M.style.display="none",S.textContent=K.name||"File",G&&K.type.startsWith("image/")&&P)N.style.display="none",O.src=P,j.style.display="flex";let g={key:z,value:Q.originalUrl,event:{value:Q.originalUrl,proxyUrl:Q.url,file:K}};this.options.onChange(this.values,g)}else M.textContent=J[z]?"Change":"Upload",console.error("[HypertoolControls] Failed to upload file to storage")},B.readAsArrayBuffer(K)},M.onclick=()=>{Y.click()},$.onclick=()=>{J[z]=null,Y.value="",M.textContent="Upload",M.style.display="inline-flex",$.style.display="none",j.style.display="none",N.style.display="none",S.textContent="No file selected";let K={key:z,value:null,event:{value:null}};this.options.onChange(this.values,K)},A.appendChild(M),A.appendChild($),j.appendChild(O),j.appendChild(U),V.appendChild(Y),V.appendChild(A),V.appendChild(N),V.appendChild(j),X.appendChild(x),X.appendChild(V);let I=D.element;(I.querySelector(".tp-rotv_c")||I).appendChild(X)}addFolder(D){if(!this.pane)return null;return this.pane.addFolder({title:D})}set(D,z){if(D in this.params){if(this.params[D]=z,this.pane)this.pane.refresh()}}get values(){return{...this.params}}destroy(){if(this.pane)this.pane.dispose(),this.pane=null;let D=document.getElementById("hypertool-theme");if(D)D.remove()}setVisible(D){if(!this.pane)return;this.pane.element.style.display=D?"block":"none"}refresh(){if(this.pane)this.pane.refresh()}}function m(D,z){return new E(D,z).params}function u(D,z){return new E(D,z)}export{b as studioTheme,h as injectThemeVariables,m as createControls,u as createControlPanel,E as HypertoolControls};
|
|
27
37
|
|
|
28
|
-
|
|
38
|
+
/* @hypertools/sdk - MIT License - https://hypertools.dev */
|
|
39
|
+
|
|
40
|
+
//# debugId=38F6DE9532D2840764756E2164756E21
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"/**\n * Design tokens inherited from the parent Studio application\n * These CSS variables are defined in src/app/globals.css\n */\nexport const studioTheme = {\n // CSS variables that should be available in the iframe\n cssVariables: {\n '--bg': '#0a0e14',\n '--bg-elevated': '#0f1419',\n '--muted': '#1a2332',\n '--text': '#e6edf3',\n '--text-secondary': '#8b949e',\n '--accent': '#58d5ff',\n '--accent-2': '#42a5cc',\n '--border': '#21262d',\n '--border-hover': '#30363d',\n '--success': '#3fb950',\n '--error': '#f85149',\n\n // Hypertool-specific variables\n '--ht-text-color-main-200': '#00ffd4',\n '--ht-text-color-main-300': '#6ff3dd',\n '--ht-text-color-main-500': '#4b8e85',\n '--ht-text-color-grey-200': '#8c8d8f',\n\n '--ht-bg-color-200': '#8c8d8f',\n '--ht-bg-color-200-active': '#7a7b7d',\n '--ht-bg-color-200-focus': '#7e7f81',\n '--ht-bg-color-200-hover': '#828384',\n\n '--ht-bg-color-300': '#5e6068',\n '--ht-bg-color-300-active': '#4c4e56',\n '--ht-bg-color-300-focus': '#55575f',\n '--ht-bg-color-300-hover': '#595b63',\n\n '--ht-bg-color-400': '#cccccc',\n '--ht-bg-color-400-active': '#b3b3b3',\n '--ht-bg-color-400-focus': '#c0c0c0',\n '--ht-bg-color-400-hover': '#c6c6c6',\n\n '--ht-bg-color-500': '#1C1D20',\n '--ht-bg-color-500-active': '#0a0b0e',\n '--ht-bg-color-500-focus': '#131417',\n '--ht-bg-color-500-hover': '#16171a',\n\n '--ht-bg-color-600': '#37383D',\n '--ht-bg-color-600-active': '#25262b',\n '--ht-bg-color-600-focus': '#2e2f34',\n '--ht-bg-color-600-hover': '#323338',\n\n '--ht-bg-color-700': '#0f1419',\n '--ht-bg-color-700-active': '#16171c',\n '--ht-bg-color-700-focus': '#1f2025',\n '--ht-bg-color-700-hover': '#232429',\n\n '--ht-border-radius': '8px',\n\n '--ht-base-font-family-base': '\"HydrogenType400\", ui-sans-serif, system-ui, sans-serif',\n '--ht-base-font-family-display': '\"Departure Mono\", Roboto Mono, Source Code Pro, Menlo, Courier, monospace',\n '--ht-base-font-family-sans': '\"Routed Gothic\", ui-sans-serif, system-ui, sans-serif',\n '--ht-base-font-family-mono': '\"Routed Gothic Narrow\", ui-monospace, SFMono-Regular, SF Mono, Consolas, Liberation Mono, Menlo, monospace',\n },\n\n // Tweakpane-specific theme variables\n tweakpane: {\n '--tp-base-background-color': 'var(--ht-bg-color-700)',\n '--tp-base-shadow-color': 'hsla(0, 0%, 0%, 0.2)',\n\n '--tp-container-background-color': 'var(--ht-bg-color-600)',\n '--tp-container-background-color-active': 'var(--ht-bg-color-600-active)',\n '--tp-container-background-color-focus': 'var(--ht-bg-color-600-focus)',\n '--tp-container-background-color-hover': 'var(--ht-bg-color-600-hover)',\n '--tp-container-foreground-color': 'var(--ht-text-color-main-300)',\n\n '--tp-button-background-color': 'var(--ht-bg-color-400)',\n '--tp-button-background-color-active': 'color-mix(in srgb, var(--ht-bg-color-400-active) 80%, white)',\n '--tp-button-background-color-focus': 'color-mix(in srgb, var(--ht-bg-color-400-focus) 85%, white)',\n '--tp-button-background-color-hover': 'color-mix(in srgb, var(--ht-bg-color-400-hover) 90%, white)',\n '--tp-button-foreground-color': 'var(--ht-text-color-main-300)',\n\n '--tp-groove-foreground-color': 'var(--ht-bg-color-300)',\n\n '--tp-input-background-color': 'var(--ht-bg-color-500)',\n '--tp-input-background-color-active': 'var(--ht-bg-color-500-active)',\n '--tp-input-background-color-focus': 'var(--ht-bg-color-500-focus)',\n '--tp-input-background-color-hover': 'var(--ht-bg-color-500-hover)',\n '--tp-input-foreground-color': 'var(--ht-text-color-main-300)',\n\n '--tp-label-foreground-color': 'var(--ht-text-color-main-300)',\n\n '--tp-monitor-background-color': 'var(--ht-bg-color-500)',\n '--tp-monitor-foreground-color': 'var(--ht-text-color-main-300)',\n }\n};\n\n/**\n * Inject CSS variables into the document\n */\nexport function injectThemeVariables() {\n const style = document.createElement('style');\n style.id = 'hypertool-theme';\n\n const cssVars = Object.entries({\n ...studioTheme.cssVariables,\n ...studioTheme.tweakpane\n })\n .map(([key, value]) => ` ${key}: ${value};`)\n .join('\\n');\n\n style.textContent = `\n body {\n margin: 0;\n padding: 0;\n }\n\n:root {\n${cssVars}\n}\n\n/* Controls panel positioning and styling */\n.controls-container {\n position: fixed;\n top: 8px;\n right: 8px;\n z-index: 1000;\n max-height: calc(100vh - 16px);\n overflow-y: auto;\n}\n\n/* Ensure Tweakpane pane has background */\n.tp-dfwv {\n background-color: var(--tp-base-background-color, #0f1419) !important;\n}\n`;\n\n document.head.appendChild(style);\n}",
|
|
7
7
|
"import { HypertoolControls } from './HypertoolControls';\nimport type { ControlDefinitions, HypertoolControlsOptions, ParameterValues } from './types';\n\n/**\n * Simple API for quick setup - returns params object directly\n *\n * @example\n * ```typescript\n * const params = createControls({\n * speed: { type: 'number', value: 1, min: 0, max: 10, step: 0.1 },\n * color: { type: 'color', value: '#ff0000' },\n * enabled: { type: 'boolean', value: true }\n * });\n *\n * // Use params directly in your code\n * circle.speed = params.speed;\n * circle.color = params.color;\n * ```\n */\nexport function createControls<T extends ControlDefinitions>(\n definitions: T,\n options?: HypertoolControlsOptions<T>\n): ParameterValues<T> {\n const controls = new HypertoolControls(definitions, options);\n return controls.params;\n}\n\n/**\n * Advanced API for full control - returns HypertoolControls instance\n *\n * @example\n * ```typescript\n * const controls = createControlPanel({\n * speed: { type: 'number', value: 1, min: 0, max: 10 }\n * }, {\n * title: 'Simulation',\n * onChange: (params) => console.log('Changed:', params)\n * });\n *\n * // Access params\n * const params = controls.params;\n *\n * // Programmatically update\n * controls.set('speed', 5);\n *\n * // Hide/show\n * controls.setVisible(false);\n * ```\n */\nexport function createControlPanel<T extends ControlDefinitions>(\n definitions: T,\n options?: HypertoolControlsOptions<T>\n): HypertoolControls<T> {\n return new HypertoolControls(definitions, options);\n}\n"
|
|
8
8
|
],
|
|
9
|
-
"mappings": "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",
|
|
10
|
-
"debugId": "
|
|
9
|
+
"mappings": "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",
|
|
10
|
+
"debugId": "38F6DE9532D2840764756E2164756E21",
|
|
11
11
|
"names": []
|
|
12
12
|
}
|
package/dist/core/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 H{_handlers=new Map;on(E,x){if(!this._handlers.has(E))this._handlers.set(E,new Set);return this._handlers.get(E).add(x),()=>this.off(E,x)}once(E,x){let C=(P)=>{this.off(E,C),x(P)};return this.on(E,C)}off(E,x){let C=this._handlers.get(E);if(C)C.delete(x)}emit(E){let x=this._handlers.get(E.type);if(!x)return;for(let C of x)try{C(E)}catch(P){console.error(`[EventEmitter] Handler error for ${E.type}:`,P)}}removeAllListeners(E){if(E)this._handlers.delete(E);else this._handlers.clear()}listenerCount(E){return this._handlers.get(E)?.size??0}}class O{_definitions;_values;_listeners;_proxy;constructor(E,x){this._definitions=E,this._listeners=new Set,this._values={};for(let[C,P]of Object.entries(E))this._values[C]=P.value;if(x){for(let[C,P]of Object.entries(x))if(C in this._definitions)this._values[C]=this._validate(C,P)}this._proxy=this._createProxy()}_createProxy(){let E=this;return new Proxy(this._values,{get(x,C){return x[C]},set(x,C,P){if(!(C in E._definitions))return console.warn(`[ParamStore] Unknown parameter: ${C}`),!1;let R=E._validate(C,P),D=x[C];if(R!==D)x[C]=R,E._notify(C,R,D);return!0},has(x,C){return C in x},ownKeys(x){return Object.keys(x)},getOwnPropertyDescriptor(x,C){if(C in x)return{enumerable:!0,configurable:!0,value:x[C]};return}})}_validate(E,x){let C=this._definitions[E];if(!C)return x;switch(C.type){case"number":{let P=typeof x==="number"?x:parseFloat(String(x));if(isNaN(P))P=C.value;if(C.min!==void 0)P=Math.max(C.min,P);if(C.max!==void 0)P=Math.min(C.max,P);if(C.step!==void 0)P=Math.round(P/C.step)*C.step;return P}case"color":{let P=String(x);if(/^#[0-9A-Fa-f]{6}$/.test(P))return P;if(/^#[0-9A-Fa-f]{3}$/.test(P))return P;if(/^#[0-9A-Fa-f]{8}$/.test(P))return P;if(/^rgb\(/.test(P))return P;if(/^rgba\(/.test(P))return P;if(/^hsl\(/.test(P))return P;if(/^hsla\(/.test(P))return P;return C.value}case"boolean":if(typeof x==="boolean")return x;if(x==="true"||x==="1")return!0;if(x==="false"||x==="0")return!1;return Boolean(x);case"string":return String(x);case"select":{let P=String(x);return(C.options||[]).some((F)=>typeof F==="object"?F.value===P:F===P)?P:C.value}case"point2d":{if(typeof x==="object"&&x!==null&&"x"in x&&"y"in x)return{x:Number(x.x),y:Number(x.y)};return C.value}case"point3d":{if(typeof x==="object"&&x!==null&&"x"in x&&"y"in x&&"z"in x)return{x:Number(x.x),y:Number(x.y),z:Number(x.z)};return C.value}default:return x}}_notify(E,x,C){for(let P of this._listeners)try{P(E,x,C)}catch(R){console.error("[ParamStore] Listener error:",R)}}getProxy(){return this._proxy}getSnapshot(){return{...this._values}}getDefinitions(){return{...this._definitions}}set(E,x){this._proxy[E]=x}setMultiple(E){for(let[x,C]of Object.entries(E))this._proxy[x]=C}reset(){for(let[E,x]of Object.entries(this._definitions))this._proxy[E]=x.value}subscribe(E){return this._listeners.add(E),()=>this._listeners.delete(E)}addDefinition(E,x){this._definitions[E]=x,this._values[E]=x.value}}class S{_byName=new Map;_byId=new Map;_onRegister=new Set;_onUnregister=new Set;register(E,x,C){if(this._byName.has(E))this.unregister(E);let P=this._generateId(),R={name:E,id:P,object:x,metadata:C};this._byName.set(E,R),this._byId.set(P,R);for(let D of this._onRegister)try{D(E,P,x)}catch(F){console.error("[ObjectRegistry] onRegister callback error:",F)}return P}unregister(E){let x=this._byName.get(E);if(!x)return!1;this._byName.delete(E),this._byId.delete(x.id);for(let C of this._onUnregister)try{C(E)}catch(P){console.error("[ObjectRegistry] onUnregister callback error:",P)}return!0}findByName(E){return this._byName.get(E)?.object}findById(E){return this._byId.get(E)?.object}getInfo(E){return this._byName.get(E)}has(E){return this._byName.has(E)}getNames(){return Array.from(this._byName.keys())}getAll(){let E=new Map;for(let[x,C]of this._byName)E.set(x,C.object);return E}query(E){let x=[];for(let C of this._byName.values())if(E(C))x.push(C);return x}findByType(E){return this.query((x)=>x.metadata?.type===E).map((x)=>x.object)}clear(){let E=Array.from(this._byName.keys());for(let x of E)this.unregister(x)}onRegister(E){return this._onRegister.add(E),()=>this._onRegister.delete(E)}onUnregister(E){return this._onUnregister.add(E),()=>this._onUnregister.delete(E)}get size(){return this._byName.size}_generateId(){return`obj_${Date.now()}_${Math.random().toString(36).slice(2,9)}`}}class U{_isReady=!1;_isPlaying=!1;_isDestroyed=!1;_currentFrame=0;_paramStore;_events;_objects;_mount;_frameRate;_filename="capture";_cleanups=[];_userCleanup;_animationFrameId;_lastFrameTime=0;_resizeObserver;_captureHandler;constructor(E){if(this._mount=E.mount,this._frameRate=E.frameRate??60,E.background)this._mount.style.background=E.background;this._paramStore=new O(E.paramDefs??{},E.initialParams),this._events=new H,this._objects=new S,this._paramStore.subscribe((x,C,P)=>{this._events.emit({type:"paramChange",timestamp:Date.now(),key:x,value:C,previousValue:P})}),this._setupResizeObserver(),this._runSetup(E.setup,E.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(E,x){this._paramStore.set(E,x)}setParams(E){this._paramStore.setMultiple(E)}getParams(){return this._paramStore.getSnapshot()}getParamDefs(){return this._paramStore.getDefinitions()}resetParams(){this._paramStore.reset()}registerObject(E,x,C){return this._objects.register(E,x,C)}findObjectByName(E){return this._objects.findByName(E)}findObjectById(E){return this._objects.findById(E)}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(E,x){return this._events.on(E,x)}once(E,x){return this._events.once(E,x)}off(E,x){this._events.off(E,x)}async captureImage(E="png"){if(this._captureHandler)return this._captureHandler(E);let x=this._mount.querySelector("canvas");if(!x)return console.warn("[Experience] No canvas found for capture"),null;return new Promise((C)=>{let P=`image/${E}`,R=E==="jpeg"?0.92:void 0;x.toBlob((D)=>C(D),P,R)})}getFilename(){return this._filename}addCleanup(E){if(typeof E==="function")this._cleanups.push(E)}destroy(){if(this._isDestroyed)return;if(this._isDestroyed=!0,this.pause(),this._userCleanup)try{this._userCleanup()}catch(E){console.error("[Experience] User cleanup error:",E)}while(this._cleanups.length>0){let E=this._cleanups.pop();if(E)try{E()}catch(x){console.error("[Experience] Cleanup error:",x)}}this._resizeObserver?.disconnect(),this._objects.clear(),this._events.removeAllListeners(),this._events.emit({type:"destroyed",timestamp:Date.now()})}async _runSetup(E,x){try{let C=this._createContext(),P=await E(C);if(typeof P==="function")this._userCleanup=P;if(this._isReady=!0,this._events.emit({type:"ready",timestamp:Date.now()}),x)this.play()}catch(C){console.error("[Experience] Setup error:",C),this._events.emit({type:"error",timestamp:Date.now(),error:C instanceof Error?C:Error(String(C))})}}_createContext(){return{mount:this._mount,params:this._paramStore.getProxy(),exports:this._createExportsApi(),environment:this._createEnvironmentApi(),registerObject:(E,x,C)=>this._objects.register(E,x,C),findObjectByName:(E)=>this._objects.findByName(E),experience:this}}_createExportsApi(){return{captureImage:(E)=>this.captureImage(E),setFilename:(E)=>{this._filename=E},registerCaptureHandler:(E)=>{this._captureHandler=E}}}_createEnvironmentApi(){return{window,document,onResize:(E)=>{let x=()=>{E(this._mount.clientWidth,this._mount.clientHeight)};x();let C=new ResizeObserver(x);C.observe(this._mount);let P=()=>C.disconnect();return this._cleanups.push(P),P},addCleanup:(E)=>this.addCleanup(E)}}_setupResizeObserver(){this._resizeObserver=new ResizeObserver((E)=>{for(let x of E){let{width:C,height:P}=x.contentRect;this._events.emit({type:"resize",timestamp:Date.now(),width:C,height:P})}}),this._resizeObserver.observe(this._mount)}_tick(){if(!this._isPlaying)return;let E=performance.now(),x=E-this._lastFrameTime,C=1000/this._frameRate;if(x>=C)this._currentFrame++,this._lastFrameTime=E-x%C,this._events.emit({type:"frame",timestamp:Date.now(),frame:this._currentFrame,deltaTime:x});this._animationFrameId=requestAnimationFrame(()=>this._tick())}}export{O as ParamStore,S as ObjectRegistry,U as Experience,H as EventEmitter};
|
|
2
12
|
|
|
3
|
-
|
|
13
|
+
/* @hypertools/sdk - MIT License - https://hypertools.dev */
|
|
14
|
+
|
|
15
|
+
//# debugId=BE20C8AEA123CFE964756E2164756E21
|
package/dist/core/index.js.map
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"/**\n * Spline-like object registry for querying objects by name/id\n */\n\nexport interface RegisteredObject<T = unknown> {\n name: string;\n id: string;\n object: T;\n metadata?: Record<string, unknown>;\n}\n\nexport type ObjectRegisteredCallback = (name: string, id: string, object: unknown) => void;\nexport type ObjectUnregisteredCallback = (name: string) => void;\n\nexport class ObjectRegistry {\n private _byName = new Map<string, RegisteredObject>();\n private _byId = new Map<string, RegisteredObject>();\n private _onRegister: Set<ObjectRegisteredCallback> = new Set();\n private _onUnregister: Set<ObjectUnregisteredCallback> = new Set();\n\n /**\n * Register an object for external access\n * @returns Generated ID for the object\n */\n register<T>(\n name: string,\n object: T,\n metadata?: Record<string, unknown>\n ): string {\n // If name already exists, unregister first\n if (this._byName.has(name)) {\n this.unregister(name);\n }\n\n const id = this._generateId();\n\n const registered: RegisteredObject<T> = {\n name,\n id,\n object,\n metadata,\n };\n\n this._byName.set(name, registered);\n this._byId.set(id, registered);\n\n // Notify listeners\n for (const callback of this._onRegister) {\n try {\n callback(name, id, object);\n } catch (e) {\n console.error('[ObjectRegistry] onRegister callback error:', e);\n }\n }\n\n return id;\n }\n\n /**\n * Unregister an object by name\n */\n unregister(name: string): boolean {\n const obj = this._byName.get(name);\n if (!obj) return false;\n\n this._byName.delete(name);\n this._byId.delete(obj.id);\n\n // Notify listeners\n for (const callback of this._onUnregister) {\n try {\n callback(name);\n } catch (e) {\n console.error('[ObjectRegistry] onUnregister callback error:', e);\n }\n }\n\n return true;\n }\n\n /**\n * Find object by name (Spline-like API)\n */\n findByName<T = unknown>(name: string): T | undefined {\n return this._byName.get(name)?.object as T | undefined;\n }\n\n /**\n * Find object by ID\n */\n findById<T = unknown>(id: string): T | undefined {\n return this._byId.get(id)?.object as T | undefined;\n }\n\n /**\n * Get registered object info by name\n */\n getInfo(name: string): RegisteredObject | undefined {\n return this._byName.get(name);\n }\n\n /**\n * Check if an object exists\n */\n has(name: string): boolean {\n return this._byName.has(name);\n }\n\n /**\n * Get all registered object names\n */\n getNames(): string[] {\n return Array.from(this._byName.keys());\n }\n\n /**\n * Get all registered objects as a Map\n */\n getAll(): Map<string, unknown> {\n const result = new Map<string, unknown>();\n for (const [name, registered] of this._byName) {\n result.set(name, registered.object);\n }\n return result;\n }\n\n /**\n * Query objects by metadata\n */\n query(predicate: (obj: RegisteredObject) => boolean): RegisteredObject[] {\n const results: RegisteredObject[] = [];\n for (const obj of this._byName.values()) {\n if (predicate(obj)) {\n results.push(obj);\n }\n }\n return results;\n }\n\n /**\n * Query objects by type (requires metadata.type to be set)\n */\n findByType<T = unknown>(type: string): T[] {\n return this.query((obj) => obj.metadata?.type === type).map(\n (obj) => obj.object as T\n );\n }\n\n /**\n * Clear all registered objects\n */\n clear(): void {\n const names = Array.from(this._byName.keys());\n for (const name of names) {\n this.unregister(name);\n }\n }\n\n /**\n * Subscribe to object registration events\n */\n onRegister(callback: ObjectRegisteredCallback): () => void {\n this._onRegister.add(callback);\n return () => this._onRegister.delete(callback);\n }\n\n /**\n * Subscribe to object unregistration events\n */\n onUnregister(callback: ObjectUnregisteredCallback): () => void {\n this._onUnregister.add(callback);\n return () => this._onUnregister.delete(callback);\n }\n\n /**\n * Get the number of registered objects\n */\n get size(): number {\n return this._byName.size;\n }\n\n private _generateId(): string {\n return `obj_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`;\n }\n}\n",
|
|
8
8
|
"/**\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"
|
|
9
9
|
],
|
|
10
|
-
"mappings": "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",
|
|
11
|
-
"debugId": "
|
|
10
|
+
"mappings": ";;;;;;;;;;AAwEO,MAAM,CAAa,CAChB,UAAY,IAAI,IAMxB,EAA6B,CAC3B,EACA,EACY,CACZ,GAAI,CAAC,KAAK,UAAU,IAAI,CAAI,EAC1B,KAAK,UAAU,IAAI,EAAM,IAAI,GAAK,EAKpC,OAHA,KAAK,UAAU,IAAI,CAAI,EAAG,IAAI,CAAuB,EAG9C,IAAM,KAAK,IAAI,EAAM,CAAO,EAMrC,IAA+B,CAC7B,EACA,EACY,CACZ,IAAM,EAA2B,CAAC,IAAU,CAC1C,KAAK,IAAI,EAAM,CAAO,EACtB,EAAQ,CAAK,GAEf,OAAO,KAAK,GAAG,EAAM,CAAO,EAM9B,GAA8B,CAC5B,EACA,EACM,CACN,IAAM,EAAW,KAAK,UAAU,IAAI,CAAI,EACxC,GAAI,EACF,EAAS,OAAO,CAAuB,EAO3C,IAA+B,CAAC,EAAgB,CAC9C,IAAM,EAAW,KAAK,UAAU,IAAI,EAAM,IAAI,EAC9C,GAAI,CAAC,EAAU,OAEf,QAAW,KAAW,EACpB,GAAI,CACF,EAAQ,CAAK,EACb,MAAO,EAAO,CACd,QAAQ,MAAM,oCAAoC,EAAM,QAAS,CAAK,GAQ5E,kBAAkB,CAAC,EAAkC,CACnD,GAAI,EACF,KAAK,UAAU,OAAO,CAAI,EAE1B,UAAK,UAAU,MAAM,EAOzB,aAAa,CAAC,EAAmC,CAC/C,OAAO,KAAK,UAAU,IAAI,CAAI,GAAG,MAAQ,EAE7C,CC1GO,MAAM,CAAW,CACd,aACA,QACA,WACA,OAER,WAAW,CAAC,EAA+B,EAAgC,CACzE,KAAK,aAAe,EACpB,KAAK,WAAa,IAAI,IAGtB,KAAK,QAAU,CAAC,EAChB,QAAY,EAAK,KAAQ,OAAO,QAAQ,CAAW,EACjD,KAAK,QAAQ,GAAO,EAAI,MAI1B,GAAI,GACF,QAAY,EAAK,KAAU,OAAO,QAAQ,CAAgB,EACxD,GAAI,KAAO,KAAK,aACd,KAAK,QAAQ,GAAO,KAAK,UAAU,EAAK,CAAK,EAMnD,KAAK,OAAS,KAAK,aAAa,EAG1B,YAAY,EAAgB,CAClC,IAAM,EAAO,KACb,OAAO,IAAI,MAAM,KAAK,QAAS,CAC7B,GAAG,CAAC,EAAQ,EAAc,CACxB,OAAO,EAAO,IAEhB,GAAG,CAAC,EAAQ,EAAc,EAAgB,CACxC,GAAI,EAAE,KAAQ,EAAK,cAEjB,OADA,QAAQ,KAAK,mCAAmC,GAAM,EAC/C,GAGT,IAAM,EAAY,EAAK,UAAU,EAAM,CAAK,EACtC,EAAW,EAAO,GAExB,GAAI,IAAc,EAChB,EAAO,GAAQ,EACf,EAAK,QAAQ,EAAM,EAAW,CAAQ,EAGxC,MAAO,IAET,GAAG,CAAC,EAAQ,EAAc,CACxB,OAAO,KAAQ,GAEjB,OAAO,CAAC,EAAQ,CACd,OAAO,OAAO,KAAK,CAAM,GAE3B,wBAAwB,CAAC,EAAQ,EAAc,CAC7C,GAAI,KAAQ,EACV,MAAO,CACL,WAAY,GACZ,aAAc,GACd,MAAO,EAAO,EAChB,EAEF,OAEJ,CAAC,EAGK,SAAS,CAAC,EAAa,EAAyB,CACtD,IAAM,EAAM,KAAK,aAAa,GAC9B,GAAI,CAAC,EAAK,OAAO,EAEjB,OAAQ,EAAI,UACL,SAAU,CACb,IAAI,EAAM,OAAO,IAAU,SAAW,EAAQ,WAAW,OAAO,CAAK,CAAC,EACtE,GAAI,MAAM,CAAG,EAAG,EAAM,EAAI,MAC1B,GAAI,EAAI,MAAQ,OAAW,EAAM,KAAK,IAAI,EAAI,IAAK,CAAG,EACtD,GAAI,EAAI,MAAQ,OAAW,EAAM,KAAK,IAAI,EAAI,IAAK,CAAG,EACtD,GAAI,EAAI,OAAS,OACf,EAAM,KAAK,MAAM,EAAM,EAAI,IAAI,EAAI,EAAI,KAEzC,OAAO,CACT,KAEK,QAAS,CACZ,IAAM,EAAM,OAAO,CAAK,EAExB,GAAI,oBAAoB,KAAK,CAAG,EAAG,OAAO,EAC1C,GAAI,oBAAoB,KAAK,CAAG,EAAG,OAAO,EAC1C,GAAI,oBAAoB,KAAK,CAAG,EAAG,OAAO,EAC1C,GAAI,SAAS,KAAK,CAAG,EAAG,OAAO,EAC/B,GAAI,UAAU,KAAK,CAAG,EAAG,OAAO,EAChC,GAAI,SAAS,KAAK,CAAG,EAAG,OAAO,EAC/B,GAAI,UAAU,KAAK,CAAG,EAAG,OAAO,EAChC,OAAO,EAAI,KACb,KAEK,UACH,GAAI,OAAO,IAAU,UAAW,OAAO,EACvC,GAAI,IAAU,QAAU,IAAU,IAAK,MAAO,GAC9C,GAAI,IAAU,SAAW,IAAU,IAAK,MAAO,GAC/C,OAAO,QAAQ,CAAK,MAEjB,SACH,OAAO,OAAO,CAAK,MAEhB,SAAU,CACb,IAAM,EAAM,OAAO,CAAK,EAKxB,OAJgB,EAAI,SAAW,CAAC,GACV,KAAK,CAAC,IAC1B,OAAO,IAAQ,SAAW,EAAI,QAAU,EAAM,IAAQ,CACxD,EACe,EAAM,EAAI,KAC3B,KAEK,UAAW,CACd,GACE,OAAO,IAAU,UACjB,IAAU,MACV,MAAO,GACP,MAAO,EAEP,MAAO,CAAE,EAAG,OAAQ,EAAc,CAAC,EAAG,EAAG,OAAQ,EAAc,CAAC,CAAE,EAEpE,OAAO,EAAI,KACb,KAEK,UAAW,CACd,GACE,OAAO,IAAU,UACjB,IAAU,MACV,MAAO,GACP,MAAO,GACP,MAAO,EAEP,MAAO,CACL,EAAG,OAAQ,EAAc,CAAC,EAC1B,EAAG,OAAQ,EAAc,CAAC,EAC1B,EAAG,OAAQ,EAAc,CAAC,CAC5B,EAEF,OAAO,EAAI,KACb,SAGE,OAAO,GAIL,OAAO,CAAC,EAAa,EAAgB,EAAyB,CACpE,QAAW,KAAY,KAAK,WAC1B,GAAI,CACF,EAAS,EAAK,EAAO,CAAQ,EAC7B,MAAO,EAAO,CACd,QAAQ,MAAM,+BAAgC,CAAK,GAQzD,QAAQ,EAAgB,CACtB,OAAO,KAAK,OAMd,WAAW,EAAgB,CACzB,MAAO,IAAK,KAAK,OAAQ,EAM3B,cAAc,EAAqB,CACjC,MAAO,IAAK,KAAK,YAAa,EAMhC,GAAG,CAAC,EAAa,EAAsB,CACrC,KAAK,OAAO,GAAO,EAMrB,WAAW,CAAC,EAA2B,CACrC,QAAY,EAAK,KAAU,OAAO,QAAQ,CAAM,EAC9C,KAAK,OAAO,GAAO,EAOvB,KAAK,EAAS,CACZ,QAAY,EAAK,KAAQ,OAAO,QAAQ,KAAK,YAAY,EACvD,KAAK,OAAO,GAAO,EAAI,MAQ3B,SAAS,CAAC,EAA2C,CAEnD,OADA,KAAK,WAAW,IAAI,CAAQ,EACrB,IAAM,KAAK,WAAW,OAAO,CAAQ,EAM9C,aAAa,CAAC,EAAa,EAAmC,CAC5D,KAAK,aAAa,GAAO,EACzB,KAAK,QAAQ,GAAO,EAAW,MAEnC,CC/PO,MAAM,CAAe,CAClB,QAAU,IAAI,IACd,MAAQ,IAAI,IACZ,YAA6C,IAAI,IACjD,cAAiD,IAAI,IAM7D,QAAW,CACT,EACA,EACA,EACQ,CAER,GAAI,KAAK,QAAQ,IAAI,CAAI,EACvB,KAAK,WAAW,CAAI,EAGtB,IAAM,EAAK,KAAK,YAAY,EAEtB,EAAkC,CACtC,OACA,KACA,SACA,UACF,EAEA,KAAK,QAAQ,IAAI,EAAM,CAAU,EACjC,KAAK,MAAM,IAAI,EAAI,CAAU,EAG7B,QAAW,KAAY,KAAK,YAC1B,GAAI,CACF,EAAS,EAAM,EAAI,CAAM,EACzB,MAAO,EAAG,CACV,QAAQ,MAAM,8CAA+C,CAAC,EAIlE,OAAO,EAMT,UAAU,CAAC,EAAuB,CAChC,IAAM,EAAM,KAAK,QAAQ,IAAI,CAAI,EACjC,GAAI,CAAC,EAAK,MAAO,GAEjB,KAAK,QAAQ,OAAO,CAAI,EACxB,KAAK,MAAM,OAAO,EAAI,EAAE,EAGxB,QAAW,KAAY,KAAK,cAC1B,GAAI,CACF,EAAS,CAAI,EACb,MAAO,EAAG,CACV,QAAQ,MAAM,gDAAiD,CAAC,EAIpE,MAAO,GAMT,UAAuB,CAAC,EAA6B,CACnD,OAAO,KAAK,QAAQ,IAAI,CAAI,GAAG,OAMjC,QAAqB,CAAC,EAA2B,CAC/C,OAAO,KAAK,MAAM,IAAI,CAAE,GAAG,OAM7B,OAAO,CAAC,EAA4C,CAClD,OAAO,KAAK,QAAQ,IAAI,CAAI,EAM9B,GAAG,CAAC,EAAuB,CACzB,OAAO,KAAK,QAAQ,IAAI,CAAI,EAM9B,QAAQ,EAAa,CACnB,OAAO,MAAM,KAAK,KAAK,QAAQ,KAAK,CAAC,EAMvC,MAAM,EAAyB,CAC7B,IAAM,EAAS,IAAI,IACnB,QAAY,EAAM,KAAe,KAAK,QACpC,EAAO,IAAI,EAAM,EAAW,MAAM,EAEpC,OAAO,EAMT,KAAK,CAAC,EAAmE,CACvE,IAAM,EAA8B,CAAC,EACrC,QAAW,KAAO,KAAK,QAAQ,OAAO,EACpC,GAAI,EAAU,CAAG,EACf,EAAQ,KAAK,CAAG,EAGpB,OAAO,EAMT,UAAuB,CAAC,EAAmB,CACzC,OAAO,KAAK,MAAM,CAAC,IAAQ,EAAI,UAAU,OAAS,CAAI,EAAE,IACtD,CAAC,IAAQ,EAAI,MACf,EAMF,KAAK,EAAS,CACZ,IAAM,EAAQ,MAAM,KAAK,KAAK,QAAQ,KAAK,CAAC,EAC5C,QAAW,KAAQ,EACjB,KAAK,WAAW,CAAI,EAOxB,UAAU,CAAC,EAAgD,CAEzD,OADA,KAAK,YAAY,IAAI,CAAQ,EACtB,IAAM,KAAK,YAAY,OAAO,CAAQ,EAM/C,YAAY,CAAC,EAAkD,CAE7D,OADA,KAAK,cAAc,IAAI,CAAQ,EACxB,IAAM,KAAK,cAAc,OAAO,CAAQ,KAM7C,KAAI,EAAW,CACjB,OAAO,KAAK,QAAQ,KAGd,WAAW,EAAW,CAC5B,MAAO,OAAO,KAAK,IAAI,KAAK,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAG,CAAC,IAErE,CCtEO,MAAM,CAAW,CAEd,SAAW,GACX,WAAa,GACb,aAAe,GACf,cAAgB,EAGhB,YACA,QACA,SAGA,OACA,WACA,UAAY,UAGZ,UAA+B,CAAC,EAChC,aACA,kBACA,eAAiB,EACjB,gBACA,gBAER,WAAW,CAAC,EAA0B,CAKpC,GAJA,KAAK,OAAS,EAAO,MACrB,KAAK,WAAa,EAAO,WAAa,GAGlC,EAAO,WACT,KAAK,OAAO,MAAM,WAAa,EAAO,WAIxC,KAAK,YAAc,IAAI,EACrB,EAAO,WAAa,CAAC,EACrB,EAAO,aACT,EACA,KAAK,QAAU,IAAI,EACnB,KAAK,SAAW,IAAI,EAGpB,KAAK,YAAY,UAAU,CAAC,EAAK,EAAO,IAAkB,CACxD,KAAK,QAAQ,KAAuB,CAClC,KAAM,cACN,UAAW,KAAK,IAAI,EACpB,MACA,QACA,eACF,CAAC,EACF,EAGD,KAAK,qBAAqB,EAG1B,KAAK,UAAU,EAAO,MAAO,EAAO,UAAY,EAAI,KAKlD,QAAO,EAAY,CACrB,OAAO,KAAK,YAGV,UAAS,EAAY,CACvB,OAAO,KAAK,cAGV,YAAW,EAAY,CACzB,OAAO,KAAK,gBAGV,aAAY,EAAW,CACzB,OAAO,KAAK,iBAGV,MAAK,EAAgB,CACvB,OAAO,KAAK,UAIV,OAAM,EAAgB,CACxB,OAAO,KAAK,YAAY,SAAS,KAI/B,OAAM,EAAiB,CACzB,OAAO,KAAK,WAIV,QAAO,EAAmB,CAC5B,OAAO,KAAK,SAKd,QAAQ,CAAC,EAAa,EAAsB,CAC1C,KAAK,YAAY,IAAI,EAAK,CAAK,EAGjC,SAAS,CAAC,EAAuC,CAC/C,KAAK,YAAY,YAAY,CAAM,EAGrC,SAAS,EAA4B,CACnC,OAAO,KAAK,YAAY,YAAY,EAGtC,YAAY,EAAqB,CAC/B,OAAO,KAAK,YAAY,eAAe,EAGzC,WAAW,EAAS,CAClB,KAAK,YAAY,MAAM,EAKzB,cAA2B,CACzB,EACA,EACA,EACQ,CACR,OAAO,KAAK,SAAS,SAAS,EAAM,EAAQ,CAAQ,EAGtD,gBAA6B,CAAC,EAA6B,CACzD,OAAO,KAAK,SAAS,WAAc,CAAI,EAGzC,cAA2B,CAAC,EAA2B,CACrD,OAAO,KAAK,SAAS,SAAY,CAAE,EAGrC,aAAa,EAAyB,CACpC,OAAO,KAAK,SAAS,OAAO,EAK9B,IAAI,EAAS,CACX,GAAI,KAAK,YAAc,KAAK,aAAc,OAC1C,KAAK,WAAa,GAClB,KAAK,eAAiB,YAAY,IAAI,EACtC,KAAK,MAAM,EACX,KAAK,QAAQ,KAAK,CAAE,KAAM,OAAQ,UAAW,KAAK,IAAI,CAAE,CAAC,EAG3D,KAAK,EAAS,CACZ,GAAI,CAAC,KAAK,WAAY,OAEtB,GADA,KAAK,WAAa,GACd,KAAK,kBACP,qBAAqB,KAAK,iBAAiB,EAC3C,KAAK,kBAAoB,OAE3B,KAAK,QAAQ,KAAK,CAAE,KAAM,QAAS,UAAW,KAAK,IAAI,CAAE,CAAC,EAG5D,MAAM,EAAS,CACb,GAAI,KAAK,WACP,KAAK,MAAM,EAEX,UAAK,KAAK,EAMd,EAA6B,CAC3B,EACA,EACY,CACZ,OAAO,KAAK,QAAQ,GAAG,EAAM,CAAO,EAGtC,IAA+B,CAC7B,EACA,EACY,CACZ,OAAO,KAAK,QAAQ,KAAK,EAAM,CAAO,EAGxC,GAA8B,CAC5B,EACA,EACM,CACN,KAAK,QAAQ,IAAI,EAAM,CAAO,OAK1B,aAAY,CAAC,EAAkC,MAA6B,CAEhF,GAAI,KAAK,gBACP,OAAO,KAAK,gBAAgB,CAAM,EAIpC,IAAM,EAAS,KAAK,OAAO,cAAc,QAAQ,EACjD,GAAI,CAAC,EAEH,OADA,QAAQ,KAAK,0CAA0C,EAChD,KAGT,OAAO,IAAI,QAAQ,CAAC,IAAY,CAC9B,IAAM,EAAW,SAAS,IACpB,EAAU,IAAW,OAAS,KAAO,OAC3C,EAAO,OAAO,CAAC,IAAS,EAAQ,CAAI,EAAG,EAAU,CAAO,EACzD,EAGH,WAAW,EAAW,CACpB,OAAO,KAAK,UAQd,UAAU,CAAC,EAAgC,CACzC,GAAI,OAAO,IAAY,WACrB,KAAK,UAAU,KAAK,CAAO,EAO/B,OAAO,EAAS,CACd,GAAI,KAAK,aAAc,OAOvB,GANA,KAAK,aAAe,GAGpB,KAAK,MAAM,EAGP,KAAK,aACP,GAAI,CACF,KAAK,aAAa,EAClB,MAAO,EAAG,CACV,QAAQ,MAAM,mCAAoC,CAAC,EAKvD,MAAO,KAAK,UAAU,OAAS,EAAG,CAChC,IAAM,EAAU,KAAK,UAAU,IAAI,EACnC,GAAI,EACF,GAAI,CACF,EAAQ,EACR,MAAO,EAAG,CACV,QAAQ,MAAM,8BAA+B,CAAC,GAMpD,KAAK,iBAAiB,WAAW,EAGjC,KAAK,SAAS,MAAM,EAGpB,KAAK,QAAQ,mBAAmB,EAGhC,KAAK,QAAQ,KAAK,CAAE,KAAM,YAAa,UAAW,KAAK,IAAI,CAAE,CAAC,OAKlD,UAAS,CAAC,EAAsB,EAAkC,CAC9E,GAAI,CAEF,IAAM,EAAU,KAAK,eAAe,EAG9B,EAAU,MAAM,EAAM,CAAO,EACnC,GAAI,OAAO,IAAY,WACrB,KAAK,aAAe,EAOtB,GAJA,KAAK,SAAW,GAChB,KAAK,QAAQ,KAAK,CAAE,KAAM,QAAS,UAAW,KAAK,IAAI,CAAE,CAAC,EAGtD,EACF,KAAK,KAAK,EAEZ,MAAO,EAAO,CACd,QAAQ,MAAM,4BAA6B,CAAK,EAChD,KAAK,QAAQ,KAAiB,CAC5B,KAAM,QACN,UAAW,KAAK,IAAI,EACpB,MAAO,aAAiB,MAAQ,EAAY,MAAM,OAAO,CAAK,CAAC,CACjE,CAAC,GAIG,cAAc,EAAsB,CAC1C,MAAO,CACL,MAAO,KAAK,OACZ,OAAQ,KAAK,YAAY,SAAS,EAClC,QAAS,KAAK,kBAAkB,EAChC,YAAa,KAAK,sBAAsB,EACxC,eAAgB,CAAC,EAAM,EAAQ,IAC7B,KAAK,SAAS,SAAS,EAAM,EAAQ,CAAQ,EAC/C,iBAAkB,CAAC,IAAS,KAAK,SAAS,WAAW,CAAI,EACzD,WAAY,IACd,EAGM,iBAAiB,EAAe,CACtC,MAAO,CACL,aAAc,CAAC,IAAW,KAAK,aAAa,CAAM,EAClD,YAAa,CAAC,IAAa,CACzB,KAAK,UAAY,GAEnB,uBAAwB,CAAC,IAAY,CACnC,KAAK,gBAAkB,EAE3B,EAGM,qBAAqB,EAAmB,CAC9C,MAAO,CACL,OACA,SACA,SAAU,CAAC,IAAa,CACtB,IAAM,EAAU,IAAM,CACpB,EAAS,KAAK,OAAO,YAAa,KAAK,OAAO,YAAY,GAI5D,EAAQ,EAGR,IAAM,EAAK,IAAI,eAAe,CAAO,EACrC,EAAG,QAAQ,KAAK,MAAM,EAEtB,IAAM,EAAU,IAAM,EAAG,WAAW,EAEpC,OADA,KAAK,UAAU,KAAK,CAAO,EACpB,GAET,WAAY,CAAC,IAAY,KAAK,WAAW,CAAO,CAClD,EAGM,oBAAoB,EAAS,CACnC,KAAK,gBAAkB,IAAI,eAAe,CAAC,IAAY,CACrD,QAAW,KAAS,EAAS,CAC3B,IAAQ,QAAO,UAAW,EAAM,YAChC,KAAK,QAAQ,KAAkB,CAC7B,KAAM,SACN,UAAW,KAAK,IAAI,EACpB,QACA,QACF,CAAC,GAEJ,EACD,KAAK,gBAAgB,QAAQ,KAAK,MAAM,EAGlC,KAAK,EAAS,CACpB,GAAI,CAAC,KAAK,WAAY,OAEtB,IAAM,EAAM,YAAY,IAAI,EACtB,EAAY,EAAM,KAAK,eACvB,EAAiB,KAAO,KAAK,WAEnC,GAAI,GAAa,EACf,KAAK,gBACL,KAAK,eAAiB,EAAO,EAAY,EAEzC,KAAK,QAAQ,KAAiB,CAC5B,KAAM,QACN,UAAW,KAAK,IAAI,EACpB,MAAO,KAAK,cACZ,WACF,CAAC,EAGH,KAAK,kBAAoB,sBAAsB,IAAM,KAAK,MAAM,CAAC,EAErE",
|
|
11
|
+
"debugId": "BE20C8AEA123CFE964756E2164756E21",
|
|
12
12
|
"names": []
|
|
13
13
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @
|
|
2
|
+
* @hypertools/sdk
|
|
3
3
|
*
|
|
4
4
|
* HyperTool SDK - Vanilla-first SDK for embedding interactive experiences
|
|
5
5
|
*
|
|
6
6
|
* Main entry exports the Experience class (external API)
|
|
7
7
|
* Internal frame/controls are available via subpath imports:
|
|
8
|
-
* - @
|
|
9
|
-
* - @
|
|
10
|
-
* - @
|
|
11
|
-
* - @
|
|
12
|
-
* - @
|
|
8
|
+
* - @hypertools/sdk/frame
|
|
9
|
+
* - @hypertools/sdk/controls
|
|
10
|
+
* - @hypertools/sdk/recording
|
|
11
|
+
* - @hypertools/sdk/react
|
|
12
|
+
* - @hypertools/sdk/codegen
|
|
13
13
|
*/
|
|
14
14
|
export { Experience } from "./core/Experience";
|
|
15
15
|
export type { ExperienceConfig, ExperienceContext, ExportsApi, EnvironmentApi, } from "./core/Experience";
|