@stevejtrettel/shader-sandbox 0.1.3 → 0.1.4
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/README.md +220 -23
- package/bin/cli.js +106 -14
- package/dist-lib/app/App.d.ts +143 -15
- package/dist-lib/app/App.d.ts.map +1 -1
- package/dist-lib/app/App.js +1343 -108
- package/dist-lib/app/app.css +349 -24
- package/dist-lib/app/types.d.ts +48 -5
- package/dist-lib/app/types.d.ts.map +1 -1
- package/dist-lib/editor/EditorPanel.d.ts +2 -2
- package/dist-lib/editor/EditorPanel.d.ts.map +1 -1
- package/dist-lib/editor/EditorPanel.js +1 -1
- package/dist-lib/editor/editor-panel.css +55 -32
- package/dist-lib/editor/prism-editor.css +16 -16
- package/dist-lib/embed.js +1 -1
- package/dist-lib/engine/{ShadertoyEngine.d.ts → ShaderEngine.d.ts} +134 -10
- package/dist-lib/engine/ShaderEngine.d.ts.map +1 -0
- package/dist-lib/engine/ShaderEngine.js +1523 -0
- package/dist-lib/engine/glHelpers.d.ts +24 -0
- package/dist-lib/engine/glHelpers.d.ts.map +1 -1
- package/dist-lib/engine/glHelpers.js +88 -0
- package/dist-lib/engine/std140.d.ts +47 -0
- package/dist-lib/engine/std140.d.ts.map +1 -0
- package/dist-lib/engine/std140.js +119 -0
- package/dist-lib/engine/types.d.ts +55 -5
- package/dist-lib/engine/types.d.ts.map +1 -1
- package/dist-lib/engine/types.js +1 -1
- package/dist-lib/index.d.ts +4 -3
- package/dist-lib/index.d.ts.map +1 -1
- package/dist-lib/index.js +2 -1
- package/dist-lib/layouts/SplitLayout.d.ts +2 -1
- package/dist-lib/layouts/SplitLayout.d.ts.map +1 -1
- package/dist-lib/layouts/SplitLayout.js +3 -0
- package/dist-lib/layouts/TabbedLayout.d.ts.map +1 -1
- package/dist-lib/layouts/UILayout.d.ts +55 -0
- package/dist-lib/layouts/UILayout.d.ts.map +1 -0
- package/dist-lib/layouts/UILayout.js +147 -0
- package/dist-lib/layouts/default.css +2 -2
- package/dist-lib/layouts/index.d.ts +11 -1
- package/dist-lib/layouts/index.d.ts.map +1 -1
- package/dist-lib/layouts/index.js +17 -1
- package/dist-lib/layouts/split.css +33 -31
- package/dist-lib/layouts/tabbed.css +127 -74
- package/dist-lib/layouts/types.d.ts +14 -3
- package/dist-lib/layouts/types.d.ts.map +1 -1
- package/dist-lib/main.js +33 -0
- package/dist-lib/project/configHelpers.d.ts +45 -0
- package/dist-lib/project/configHelpers.d.ts.map +1 -0
- package/dist-lib/project/configHelpers.js +196 -0
- package/dist-lib/project/generatedLoader.d.ts +2 -2
- package/dist-lib/project/generatedLoader.d.ts.map +1 -1
- package/dist-lib/project/generatedLoader.js +23 -5
- package/dist-lib/project/loadProject.d.ts +6 -6
- package/dist-lib/project/loadProject.d.ts.map +1 -1
- package/dist-lib/project/loadProject.js +396 -144
- package/dist-lib/project/loaderHelper.d.ts +4 -4
- package/dist-lib/project/loaderHelper.d.ts.map +1 -1
- package/dist-lib/project/loaderHelper.js +278 -116
- package/dist-lib/project/types.d.ts +292 -13
- package/dist-lib/project/types.d.ts.map +1 -1
- package/dist-lib/project/types.js +13 -1
- package/dist-lib/styles/base.css +5 -1
- package/dist-lib/uniforms/UniformControls.d.ts +60 -0
- package/dist-lib/uniforms/UniformControls.d.ts.map +1 -0
- package/dist-lib/uniforms/UniformControls.js +518 -0
- package/dist-lib/uniforms/UniformStore.d.ts +74 -0
- package/dist-lib/uniforms/UniformStore.d.ts.map +1 -0
- package/dist-lib/uniforms/UniformStore.js +145 -0
- package/dist-lib/uniforms/UniformsPanel.d.ts +53 -0
- package/dist-lib/uniforms/UniformsPanel.d.ts.map +1 -0
- package/dist-lib/uniforms/UniformsPanel.js +124 -0
- package/dist-lib/uniforms/index.d.ts +11 -0
- package/dist-lib/uniforms/index.d.ts.map +1 -0
- package/dist-lib/uniforms/index.js +8 -0
- package/package.json +1 -1
- package/src/app/App.ts +1469 -126
- package/src/app/app.css +349 -24
- package/src/app/types.ts +53 -5
- package/src/editor/EditorPanel.ts +5 -5
- package/src/editor/editor-panel.css +55 -32
- package/src/editor/prism-editor.css +16 -16
- package/src/embed.ts +1 -1
- package/src/engine/ShaderEngine.ts +1934 -0
- package/src/engine/glHelpers.ts +117 -0
- package/src/engine/std140.ts +136 -0
- package/src/engine/types.ts +69 -5
- package/src/index.ts +4 -3
- package/src/layouts/SplitLayout.ts +8 -3
- package/src/layouts/TabbedLayout.ts +3 -3
- package/src/layouts/UILayout.ts +185 -0
- package/src/layouts/default.css +2 -2
- package/src/layouts/index.ts +20 -1
- package/src/layouts/split.css +33 -31
- package/src/layouts/tabbed.css +127 -74
- package/src/layouts/types.ts +19 -3
- package/src/layouts/ui.css +289 -0
- package/src/main.ts +39 -1
- package/src/project/configHelpers.ts +225 -0
- package/src/project/generatedLoader.ts +27 -6
- package/src/project/loadProject.ts +459 -173
- package/src/project/loaderHelper.ts +377 -130
- package/src/project/types.ts +360 -14
- package/src/styles/base.css +5 -1
- package/src/styles/theme.css +292 -0
- package/src/uniforms/UniformControls.ts +660 -0
- package/src/uniforms/UniformStore.ts +166 -0
- package/src/uniforms/UniformsPanel.ts +163 -0
- package/src/uniforms/index.ts +13 -0
- package/src/uniforms/uniform-controls.css +342 -0
- package/src/uniforms/uniforms-panel.css +277 -0
- package/templates/shaders/example-buffer/config.json +1 -0
- package/dist-lib/engine/ShadertoyEngine.d.ts.map +0 -1
- package/dist-lib/engine/ShadertoyEngine.js +0 -704
- package/src/engine/ShadertoyEngine.ts +0 -929
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UniformStore - Simple state manager for custom uniforms
|
|
3
|
+
*
|
|
4
|
+
* Encapsulates uniform values and provides clean get/set interface.
|
|
5
|
+
* Used by the engine to manage uniform state.
|
|
6
|
+
*/
|
|
7
|
+
import { isArrayUniform, } from '../project/types';
|
|
8
|
+
import { tightFloatCount } from '../engine/std140';
|
|
9
|
+
export class UniformStore {
|
|
10
|
+
constructor(definitions) {
|
|
11
|
+
this.values = {};
|
|
12
|
+
this.definitions = definitions;
|
|
13
|
+
this.initializeDefaults();
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Initialize all values to their definition defaults.
|
|
17
|
+
*/
|
|
18
|
+
initializeDefaults() {
|
|
19
|
+
for (const [name, def] of Object.entries(this.definitions)) {
|
|
20
|
+
if (isArrayUniform(def)) {
|
|
21
|
+
// Array uniforms initialize to zeroed Float32Array
|
|
22
|
+
this.values[name] = new Float32Array(tightFloatCount(def.type, def.count));
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
this.values[name] = this.cloneValue(def.value);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Clone a value to avoid mutation of arrays.
|
|
31
|
+
*/
|
|
32
|
+
cloneValue(value) {
|
|
33
|
+
if (value instanceof Float32Array)
|
|
34
|
+
return value.slice();
|
|
35
|
+
return Array.isArray(value) ? [...value] : value;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Get the definition for a uniform.
|
|
39
|
+
*/
|
|
40
|
+
getDefinition(name) {
|
|
41
|
+
return this.definitions[name];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get all definitions.
|
|
45
|
+
*/
|
|
46
|
+
getDefinitions() {
|
|
47
|
+
return this.definitions;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Check if a uniform exists.
|
|
51
|
+
*/
|
|
52
|
+
has(name) {
|
|
53
|
+
return name in this.definitions;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get the current value of a uniform.
|
|
57
|
+
*/
|
|
58
|
+
get(name) {
|
|
59
|
+
return this.values[name];
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get all current values (returns a shallow copy).
|
|
63
|
+
*/
|
|
64
|
+
getAll() {
|
|
65
|
+
const result = {};
|
|
66
|
+
for (const [name, value] of Object.entries(this.values)) {
|
|
67
|
+
result[name] = this.cloneValue(value);
|
|
68
|
+
}
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Set the value of a uniform.
|
|
73
|
+
* Returns true if the value was set, false if the uniform doesn't exist.
|
|
74
|
+
*/
|
|
75
|
+
set(name, value) {
|
|
76
|
+
if (!this.has(name)) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
this.values[name] = this.cloneValue(value);
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Set multiple values at once.
|
|
84
|
+
*/
|
|
85
|
+
setAll(values) {
|
|
86
|
+
for (const [name, value] of Object.entries(values)) {
|
|
87
|
+
if (value !== undefined) {
|
|
88
|
+
this.set(name, value);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Reset a single uniform to its default value.
|
|
94
|
+
*/
|
|
95
|
+
reset(name) {
|
|
96
|
+
const def = this.definitions[name];
|
|
97
|
+
if (!def) {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
if (isArrayUniform(def)) {
|
|
101
|
+
this.values[name] = new Float32Array(tightFloatCount(def.type, def.count));
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
this.values[name] = this.cloneValue(def.value);
|
|
105
|
+
}
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Reset all uniforms to their default values.
|
|
110
|
+
*/
|
|
111
|
+
resetAll() {
|
|
112
|
+
this.initializeDefaults();
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get the default value for a uniform.
|
|
116
|
+
*/
|
|
117
|
+
getDefault(name) {
|
|
118
|
+
const def = this.definitions[name];
|
|
119
|
+
if (!def)
|
|
120
|
+
return undefined;
|
|
121
|
+
if (isArrayUniform(def))
|
|
122
|
+
return new Float32Array(tightFloatCount(def.type, def.count));
|
|
123
|
+
return this.cloneValue(def.value);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Iterate over all uniforms (name, definition, current value).
|
|
127
|
+
*/
|
|
128
|
+
*entries() {
|
|
129
|
+
for (const [name, def] of Object.entries(this.definitions)) {
|
|
130
|
+
yield [name, def, this.values[name]];
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Get the number of uniforms.
|
|
135
|
+
*/
|
|
136
|
+
get size() {
|
|
137
|
+
return Object.keys(this.definitions).length;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Check if there are any uniforms.
|
|
141
|
+
*/
|
|
142
|
+
get isEmpty() {
|
|
143
|
+
return this.size === 0;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Uniforms Panel - Floating overlay for uniform controls
|
|
3
|
+
*
|
|
4
|
+
* A compact panel that floats on the right side of the canvas.
|
|
5
|
+
* Includes a toggle button to show/hide. Starts closed by default.
|
|
6
|
+
*/
|
|
7
|
+
import './uniforms-panel.css';
|
|
8
|
+
import { UniformDefinitions, UniformValue, UniformValues } from '../project/types';
|
|
9
|
+
export interface UniformsPanelOptions {
|
|
10
|
+
/** Parent container to attach the panel to */
|
|
11
|
+
container: HTMLElement;
|
|
12
|
+
/** Uniform definitions from project */
|
|
13
|
+
uniforms: UniformDefinitions;
|
|
14
|
+
/** Callback when uniform value changes */
|
|
15
|
+
onChange: (name: string, value: UniformValue) => void;
|
|
16
|
+
/** Initial values (optional) */
|
|
17
|
+
initialValues?: UniformValues;
|
|
18
|
+
/** Start with panel open (default: false) */
|
|
19
|
+
startOpen?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare class UniformsPanel {
|
|
22
|
+
private wrapper;
|
|
23
|
+
private panel;
|
|
24
|
+
private toggleButton;
|
|
25
|
+
private controls;
|
|
26
|
+
private isOpen;
|
|
27
|
+
constructor(opts: UniformsPanelOptions);
|
|
28
|
+
/**
|
|
29
|
+
* Update a uniform value from external source.
|
|
30
|
+
*/
|
|
31
|
+
setValue(name: string, value: UniformValue): void;
|
|
32
|
+
/**
|
|
33
|
+
* Show the panel.
|
|
34
|
+
*/
|
|
35
|
+
show(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Hide the panel.
|
|
38
|
+
*/
|
|
39
|
+
hide(): void;
|
|
40
|
+
/**
|
|
41
|
+
* Toggle panel visibility.
|
|
42
|
+
*/
|
|
43
|
+
toggle(): void;
|
|
44
|
+
/**
|
|
45
|
+
* Check if panel is visible.
|
|
46
|
+
*/
|
|
47
|
+
isVisible(): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Destroy the panel.
|
|
50
|
+
*/
|
|
51
|
+
destroy(): void;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=UniformsPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UniformsPanel.d.ts","sourceRoot":"","sources":["../../src/uniforms/UniformsPanel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,sBAAsB,CAAC;AAE9B,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAgB,MAAM,kBAAkB,CAAC;AAGjG,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,SAAS,EAAE,WAAW,CAAC;IACvB,uCAAuC;IACvC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,0CAA0C;IAC1C,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACtD,gCAAgC;IAChC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,6CAA6C;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,MAAM,CAAU;gBAEZ,IAAI,EAAE,oBAAoB;IAgFtC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAIjD;;OAEG;IACH,IAAI,IAAI,IAAI;IAMZ;;OAEG;IACH,IAAI,IAAI,IAAI;IAMZ;;OAEG;IACH,MAAM,IAAI,IAAI;IAQd;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,OAAO,IAAI,IAAI;CAIhB"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Uniforms Panel - Floating overlay for uniform controls
|
|
3
|
+
*
|
|
4
|
+
* A compact panel that floats on the right side of the canvas.
|
|
5
|
+
* Includes a toggle button to show/hide. Starts closed by default.
|
|
6
|
+
*/
|
|
7
|
+
import './uniforms-panel.css';
|
|
8
|
+
import { hasUIControl } from '../project/types';
|
|
9
|
+
import { UniformControls } from './UniformControls';
|
|
10
|
+
export class UniformsPanel {
|
|
11
|
+
constructor(opts) {
|
|
12
|
+
this.controls = null;
|
|
13
|
+
this.isOpen = opts.startOpen ?? false;
|
|
14
|
+
// Create wrapper for both toggle button and panel
|
|
15
|
+
this.wrapper = document.createElement('div');
|
|
16
|
+
this.wrapper.className = 'uniforms-panel-wrapper';
|
|
17
|
+
// Create toggle button (always visible)
|
|
18
|
+
this.toggleButton = document.createElement('button');
|
|
19
|
+
this.toggleButton.className = 'uniforms-toggle-button';
|
|
20
|
+
this.toggleButton.title = 'Toggle Uniforms Panel';
|
|
21
|
+
this.toggleButton.innerHTML = `
|
|
22
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
23
|
+
<line x1="4" y1="21" x2="4" y2="14"></line>
|
|
24
|
+
<line x1="4" y1="10" x2="4" y2="3"></line>
|
|
25
|
+
<line x1="12" y1="21" x2="12" y2="12"></line>
|
|
26
|
+
<line x1="12" y1="8" x2="12" y2="3"></line>
|
|
27
|
+
<line x1="20" y1="21" x2="20" y2="16"></line>
|
|
28
|
+
<line x1="20" y1="12" x2="20" y2="3"></line>
|
|
29
|
+
<line x1="1" y1="14" x2="7" y2="14"></line>
|
|
30
|
+
<line x1="9" y1="8" x2="15" y2="8"></line>
|
|
31
|
+
<line x1="17" y1="16" x2="23" y2="16"></line>
|
|
32
|
+
</svg>
|
|
33
|
+
`;
|
|
34
|
+
this.toggleButton.addEventListener('click', () => this.toggle());
|
|
35
|
+
this.wrapper.appendChild(this.toggleButton);
|
|
36
|
+
// Create panel element
|
|
37
|
+
this.panel = document.createElement('div');
|
|
38
|
+
this.panel.className = 'uniforms-panel';
|
|
39
|
+
// Only create content if there are visible uniforms
|
|
40
|
+
const hasVisible = Object.values(opts.uniforms).some(def => hasUIControl(def));
|
|
41
|
+
if (!hasVisible) {
|
|
42
|
+
this.wrapper.style.display = 'none';
|
|
43
|
+
opts.container.appendChild(this.wrapper);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
// Header with close button
|
|
47
|
+
const header = document.createElement('div');
|
|
48
|
+
header.className = 'uniforms-panel-header';
|
|
49
|
+
const title = document.createElement('span');
|
|
50
|
+
title.textContent = 'Uniforms';
|
|
51
|
+
header.appendChild(title);
|
|
52
|
+
const closeButton = document.createElement('button');
|
|
53
|
+
closeButton.className = 'uniforms-panel-close';
|
|
54
|
+
closeButton.innerHTML = '×';
|
|
55
|
+
closeButton.title = 'Close';
|
|
56
|
+
closeButton.addEventListener('click', () => this.hide());
|
|
57
|
+
header.appendChild(closeButton);
|
|
58
|
+
this.panel.appendChild(header);
|
|
59
|
+
// Content area for controls
|
|
60
|
+
const content = document.createElement('div');
|
|
61
|
+
content.className = 'uniforms-panel-content';
|
|
62
|
+
this.panel.appendChild(content);
|
|
63
|
+
// Create uniform controls
|
|
64
|
+
this.controls = new UniformControls({
|
|
65
|
+
container: content,
|
|
66
|
+
uniforms: opts.uniforms,
|
|
67
|
+
initialValues: opts.initialValues,
|
|
68
|
+
onChange: opts.onChange,
|
|
69
|
+
});
|
|
70
|
+
this.wrapper.appendChild(this.panel);
|
|
71
|
+
// Set initial state
|
|
72
|
+
if (!this.isOpen) {
|
|
73
|
+
this.panel.classList.add('closed');
|
|
74
|
+
}
|
|
75
|
+
// Append to container
|
|
76
|
+
opts.container.appendChild(this.wrapper);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Update a uniform value from external source.
|
|
80
|
+
*/
|
|
81
|
+
setValue(name, value) {
|
|
82
|
+
this.controls?.setValue(name, value);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Show the panel.
|
|
86
|
+
*/
|
|
87
|
+
show() {
|
|
88
|
+
this.isOpen = true;
|
|
89
|
+
this.toggleButton.classList.add('hidden');
|
|
90
|
+
this.panel.classList.remove('closed');
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Hide the panel.
|
|
94
|
+
*/
|
|
95
|
+
hide() {
|
|
96
|
+
this.isOpen = false;
|
|
97
|
+
this.panel.classList.add('closed');
|
|
98
|
+
this.toggleButton.classList.remove('hidden');
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Toggle panel visibility.
|
|
102
|
+
*/
|
|
103
|
+
toggle() {
|
|
104
|
+
if (this.isOpen) {
|
|
105
|
+
this.hide();
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
this.show();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Check if panel is visible.
|
|
113
|
+
*/
|
|
114
|
+
isVisible() {
|
|
115
|
+
return this.isOpen;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Destroy the panel.
|
|
119
|
+
*/
|
|
120
|
+
destroy() {
|
|
121
|
+
this.controls?.destroy();
|
|
122
|
+
this.wrapper.remove();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Uniform Controls Module
|
|
3
|
+
*
|
|
4
|
+
* UI components and state management for custom uniforms.
|
|
5
|
+
*/
|
|
6
|
+
export { UniformControls } from './UniformControls';
|
|
7
|
+
export type { UniformControlsOptions } from './UniformControls';
|
|
8
|
+
export { UniformsPanel } from './UniformsPanel';
|
|
9
|
+
export type { UniformsPanelOptions } from './UniformsPanel';
|
|
10
|
+
export { UniformStore } from './UniformStore';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/uniforms/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|