shaders 2.4.78 → 2.5.80
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/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +57 -51
- package/dist/core/presetRenderer.d.ts.map +1 -1
- package/dist/core/renderer.d.ts +5 -1
- package/dist/core/renderer.d.ts.map +1 -1
- package/dist/js/codegen.d.ts +1 -0
- package/dist/js/codegen.js +1 -0
- package/dist/js/createPreview.d.ts +19 -0
- package/dist/js/createPreview.d.ts.map +1 -0
- package/dist/js/createPreview.js +64 -0
- package/dist/js/createShader.d.ts +24 -0
- package/dist/js/createShader.d.ts.map +1 -0
- package/dist/js/createShader.js +132 -0
- package/dist/js/decode.d.ts +7 -0
- package/dist/js/decode.d.ts.map +1 -0
- package/dist/js/decode.js +22 -0
- package/dist/js/index.d.ts +6 -0
- package/dist/js/index.d.ts.map +1 -0
- package/dist/js/index.js +4 -0
- package/dist/js/types.d.ts +23 -0
- package/dist/js/types.d.ts.map +1 -0
- package/dist/js/utils/generatePresetCode.d.ts +13 -0
- package/dist/js/utils/generatePresetCode.d.ts.map +1 -0
- package/dist/js/utils/generatePresetCode.js +1248 -0
- package/dist/js/utils/generatePresetCode.template.d.ts +13 -0
- package/dist/js/utils/generatePresetCode.template.d.ts.map +1 -0
- package/dist/react/Shader.js +1 -1
- package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/react/utils/generatePresetCode.js +42 -6
- package/dist/react/utils/generatePresetCode.template.d.ts.map +1 -1
- package/dist/solid/engine/Shader.js +1 -1
- package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/solid/utils/generatePresetCode.js +48 -4
- package/dist/solid/utils/generatePresetCode.template.d.ts.map +1 -1
- package/dist/svelte/engine/Preview.svelte.d.ts +11 -25
- package/dist/svelte/engine/PreviewRenderComponent.svelte.d.ts +5 -19
- package/dist/svelte/{generatePresetCode-Bpe8YcaW.js → generatePresetCode-BN1puRG_.js} +31 -4
- package/dist/svelte/index.js +41 -67
- package/dist/svelte/source/engine/Preview.svelte +49 -35
- package/dist/svelte/source/engine/PreviewRenderComponent.svelte +9 -5
- package/dist/svelte/utils/generatePresetCode.js +1 -1
- package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/vue/utils/generatePresetCode.js +45 -8
- package/dist/vue/utils/generatePresetCode.template.d.ts.map +1 -1
- package/package.json +15 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface ComponentConfig {
|
|
2
|
+
type: string;
|
|
3
|
+
id?: string;
|
|
4
|
+
props?: Record<string, any>;
|
|
5
|
+
children?: ComponentConfig[];
|
|
6
|
+
}
|
|
7
|
+
interface PresetConfig {
|
|
8
|
+
components: ComponentConfig[];
|
|
9
|
+
}
|
|
10
|
+
export declare function generatePresetCode(preset: PresetConfig, colorSpace?: 'p3-linear' | 'srgb'): string;
|
|
11
|
+
export declare const availableComponents: any[];
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=generatePresetCode.template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generatePresetCode.template.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.template.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;AAkKD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAoBlG;AAGD,eAAO,MAAM,mBAAmB,OAG/B,CAAA"}
|
package/dist/react/Shader.js
CHANGED
|
@@ -80,7 +80,7 @@ const Shader = ({ children, disableTelemetry = false, colorSpace = "p3-linear",
|
|
|
80
80
|
return;
|
|
81
81
|
}
|
|
82
82
|
if (rendererRef.current.getPerformanceStats().fps > 0) {
|
|
83
|
-
telemetryCollectorRef.current = startTelemetry(rendererRef.current, "2.
|
|
83
|
+
telemetryCollectorRef.current = startTelemetry(rendererRef.current, "2.5.80", disableTelemetry, isPreview);
|
|
84
84
|
if (telemetryCollectorRef.current) telemetryCollectorRef.current.start();
|
|
85
85
|
telemetryStartTimeoutRef.current = null;
|
|
86
86
|
} else telemetryStartTimeoutRef.current = window.setTimeout(checkRendering, 500);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePresetCode.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;
|
|
1
|
+
{"version":3,"file":"generatePresetCode.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;AA8tCD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAsElG;AAGD,eAAO,MAAM,mBAAmB,UA4F/B,CAAA"}
|
|
@@ -7,9 +7,16 @@ var DEFAULT_TRANSFORM = {
|
|
|
7
7
|
anchorY: .5,
|
|
8
8
|
edges: "transparent"
|
|
9
9
|
};
|
|
10
|
+
function toJSLiteral(value) {
|
|
11
|
+
if (typeof value === "string") return JSON.stringify(value);
|
|
12
|
+
if (typeof value === "boolean" || typeof value === "number" || value === null || value === void 0) return String(value);
|
|
13
|
+
if (Array.isArray(value)) return `[${value.map((v) => toJSLiteral(v)).join(", ")}]`;
|
|
14
|
+
if (typeof value === "object") return `{ ${Object.entries(value).map(([k, v]) => `${k}: ${toJSLiteral(v)}`).join(", ")} }`;
|
|
15
|
+
return String(value);
|
|
16
|
+
}
|
|
10
17
|
function toObjectLiteral(obj) {
|
|
11
18
|
return `{ ${Object.entries(obj).map(([key, value]) => {
|
|
12
|
-
return `${key}: ${
|
|
19
|
+
return `${key}: ${toJSLiteral(value)}`;
|
|
13
20
|
}).join(", ")} }`;
|
|
14
21
|
}
|
|
15
22
|
var shaderMetadata = {
|
|
@@ -1084,7 +1091,7 @@ function isPropMapValue(value) {
|
|
|
1084
1091
|
function generatePropString(props, componentType, indent = " ") {
|
|
1085
1092
|
return Object.entries(props).sort(([a], [b]) => a.localeCompare(b)).filter(([key, value]) => {
|
|
1086
1093
|
if (key === "maskType" && value === "alpha") return false;
|
|
1087
|
-
if (
|
|
1094
|
+
if (key === "shape" && props.shapeSdfUrl) return false;
|
|
1088
1095
|
if (key === "transform" && typeof value === "object") {
|
|
1089
1096
|
if (Object.keys(DEFAULT_TRANSFORM).every((k) => value[k] === DEFAULT_TRANSFORM[k])) return false;
|
|
1090
1097
|
}
|
|
@@ -1113,11 +1120,22 @@ function generatePropString(props, componentType, indent = " ") {
|
|
|
1113
1120
|
const v = value[k];
|
|
1114
1121
|
return `${k}: ${typeof v === "string" ? `"${v}"` : v}`;
|
|
1115
1122
|
}).join(`,\n${indent} `)}\n${indent} }}`;
|
|
1116
|
-
if (typeof value === "string")
|
|
1117
|
-
|
|
1123
|
+
if (typeof value === "string") {
|
|
1124
|
+
if (value.startsWith("{") && value.endsWith("}")) try {
|
|
1125
|
+
const parsed = JSON.parse(value);
|
|
1126
|
+
if (typeof parsed === "object" && parsed !== null) {
|
|
1127
|
+
const keys = Object.keys(parsed);
|
|
1128
|
+
if (keys.length > 1) return `${key}={{\n${indent} ${keys.map((k) => `${k}: ${toJSLiteral(parsed[k])}`).join(`,\n${indent} `)}\n${indent} }}`;
|
|
1129
|
+
return `${key}={${toObjectLiteral(parsed)}}`;
|
|
1130
|
+
}
|
|
1131
|
+
} catch {}
|
|
1132
|
+
return `${key}="${value}"`;
|
|
1133
|
+
} else if (value !== null && typeof value === "object") {
|
|
1118
1134
|
const roundedValue = { ...value };
|
|
1119
1135
|
if ("x" in roundedValue && typeof roundedValue.x === "number") roundedValue.x = Math.round(roundedValue.x * 100) / 100;
|
|
1120
1136
|
if ("y" in roundedValue && typeof roundedValue.y === "number") roundedValue.y = Math.round(roundedValue.y * 100) / 100;
|
|
1137
|
+
const keys = Object.keys(roundedValue);
|
|
1138
|
+
if (keys.length > 1) return `${key}={{\n${indent} ${keys.map((k) => `${k}: ${typeof roundedValue[k] === "string" ? `"${roundedValue[k]}"` : roundedValue[k]}`).join(`,\n${indent} `)}\n${indent} }}`;
|
|
1121
1139
|
return `${key}={${toObjectLiteral(roundedValue)}}`;
|
|
1122
1140
|
} else return `${key}={${value}}`;
|
|
1123
1141
|
}).join("\n" + indent + " ");
|
|
@@ -1140,7 +1158,15 @@ function isIdReferenced(id, allComponents) {
|
|
|
1140
1158
|
});
|
|
1141
1159
|
}
|
|
1142
1160
|
function generatePresetCode(preset, colorSpace) {
|
|
1143
|
-
const
|
|
1161
|
+
const componentTypes = /* @__PURE__ */ new Set();
|
|
1162
|
+
function collectTypes(components) {
|
|
1163
|
+
for (const config of components) {
|
|
1164
|
+
componentTypes.add(config.type);
|
|
1165
|
+
if (config.children) collectTypes(config.children);
|
|
1166
|
+
}
|
|
1167
|
+
}
|
|
1168
|
+
collectTypes(preset.components);
|
|
1169
|
+
const generateComponentString = (config, indent = " ") => {
|
|
1144
1170
|
const propString = config.props ? generatePropString(config.props, config.type, indent) : "";
|
|
1145
1171
|
let idString = "";
|
|
1146
1172
|
if (config.id) {
|
|
@@ -1155,7 +1181,17 @@ function generatePresetCode(preset, colorSpace) {
|
|
|
1155
1181
|
else return `${indent}<${config.type} />`;
|
|
1156
1182
|
};
|
|
1157
1183
|
const componentStrings = preset.components.map((config) => generateComponentString(config)).join("\n");
|
|
1158
|
-
|
|
1184
|
+
const shaderProps = colorSpace && colorSpace !== "p3-linear" ? ` colorSpace="${colorSpace}"` : "";
|
|
1185
|
+
const allImports = ["Shader", ...Array.from(componentTypes).sort()];
|
|
1186
|
+
return `${allImports.length > 3 ? `import {\n ${allImports.join(",\n ")},\n} from 'shaders/react'` : `import { ${allImports.join(", ")} } from 'shaders/react'`}
|
|
1187
|
+
|
|
1188
|
+
export default function ShaderEffect() {
|
|
1189
|
+
return (
|
|
1190
|
+
<Shader${shaderProps}>
|
|
1191
|
+
${componentStrings}
|
|
1192
|
+
</Shader>
|
|
1193
|
+
)
|
|
1194
|
+
}`;
|
|
1159
1195
|
}
|
|
1160
1196
|
const availableComponents = [
|
|
1161
1197
|
"AngularBlur",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePresetCode.template.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.template.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;
|
|
1
|
+
{"version":3,"file":"generatePresetCode.template.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.template.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;AAqLD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAsElG;AAGD,eAAO,MAAM,mBAAmB,OAG/B,CAAA"}
|
|
@@ -63,7 +63,7 @@ function Shader(allProps) {
|
|
|
63
63
|
const checkRendering = () => {
|
|
64
64
|
const stats = rendererInstance.getPerformanceStats();
|
|
65
65
|
if (stats.fps > 0) {
|
|
66
|
-
const version = "2.
|
|
66
|
+
const version = "2.5.80";
|
|
67
67
|
telemetryCollector = startTelemetry(rendererInstance, version, props.disableTelemetry, props.isPreview);
|
|
68
68
|
if (telemetryCollector) {
|
|
69
69
|
telemetryCollector.start();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePresetCode.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;
|
|
1
|
+
{"version":3,"file":"generatePresetCode.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;AAqtCD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAsElG;AAGD,eAAO,MAAM,mBAAmB,UA4F/B,CAAA"}
|
|
@@ -1086,7 +1086,7 @@ function isPropMapValue(value) {
|
|
|
1086
1086
|
function generatePropString(props, componentType, indent = " ") {
|
|
1087
1087
|
return Object.entries(props).sort(([a], [b]) => a.localeCompare(b)).filter(([key, value]) => {
|
|
1088
1088
|
if (key === "maskType" && value === "alpha") return false;
|
|
1089
|
-
if (
|
|
1089
|
+
if (key === "shape" && props.shapeSdfUrl) return false;
|
|
1090
1090
|
if (key === "transform" && typeof value === "object") {
|
|
1091
1091
|
const allDefaults = Object.keys(DEFAULT_TRANSFORM).every(
|
|
1092
1092
|
(k) => value[k] === DEFAULT_TRANSFORM[k]
|
|
@@ -1136,6 +1136,23 @@ ${indent} `)}
|
|
|
1136
1136
|
${indent} }}`;
|
|
1137
1137
|
}
|
|
1138
1138
|
if (typeof value === "string") {
|
|
1139
|
+
if (value.startsWith("{") && value.endsWith("}")) {
|
|
1140
|
+
try {
|
|
1141
|
+
const parsed = JSON.parse(value);
|
|
1142
|
+
if (typeof parsed === "object" && parsed !== null) {
|
|
1143
|
+
const keys = Object.keys(parsed);
|
|
1144
|
+
if (keys.length > 1) {
|
|
1145
|
+
const entries = keys.map((k) => `${k}: ${typeof parsed[k] === "string" ? `"${parsed[k]}"` : parsed[k]}`);
|
|
1146
|
+
return `${key}={{
|
|
1147
|
+
${indent} ${entries.join(`,
|
|
1148
|
+
${indent} `)}
|
|
1149
|
+
${indent} }}`;
|
|
1150
|
+
}
|
|
1151
|
+
return `${key}={${toObjectLiteral(parsed)}}`;
|
|
1152
|
+
}
|
|
1153
|
+
} catch {
|
|
1154
|
+
}
|
|
1155
|
+
}
|
|
1139
1156
|
return `${key}=${JSON.stringify(value)}`;
|
|
1140
1157
|
} else if (value !== null && typeof value === "object") {
|
|
1141
1158
|
const roundedValue = { ...value };
|
|
@@ -1145,6 +1162,14 @@ ${indent} }}`;
|
|
|
1145
1162
|
if ("y" in roundedValue && typeof roundedValue.y === "number") {
|
|
1146
1163
|
roundedValue.y = Math.round(roundedValue.y * 100) / 100;
|
|
1147
1164
|
}
|
|
1165
|
+
const keys = Object.keys(roundedValue);
|
|
1166
|
+
if (keys.length > 1) {
|
|
1167
|
+
const entries = keys.map((k) => `${k}: ${typeof roundedValue[k] === "string" ? `"${roundedValue[k]}"` : roundedValue[k]}`);
|
|
1168
|
+
return `${key}={{
|
|
1169
|
+
${indent} ${entries.join(`,
|
|
1170
|
+
${indent} `)}
|
|
1171
|
+
${indent} }}`;
|
|
1172
|
+
}
|
|
1148
1173
|
return `${key}={${toObjectLiteral(roundedValue)}}`;
|
|
1149
1174
|
} else {
|
|
1150
1175
|
return `${key}={${value}}`;
|
|
@@ -1174,7 +1199,15 @@ function isIdReferenced(id, allComponents) {
|
|
|
1174
1199
|
});
|
|
1175
1200
|
}
|
|
1176
1201
|
function generatePresetCode(preset, colorSpace) {
|
|
1177
|
-
const
|
|
1202
|
+
const componentTypes = /* @__PURE__ */ new Set();
|
|
1203
|
+
function collectTypes(components) {
|
|
1204
|
+
for (const config of components) {
|
|
1205
|
+
componentTypes.add(config.type);
|
|
1206
|
+
if (config.children) collectTypes(config.children);
|
|
1207
|
+
}
|
|
1208
|
+
}
|
|
1209
|
+
collectTypes(preset.components);
|
|
1210
|
+
const generateComponentString = (config, indent = " ") => {
|
|
1178
1211
|
const propString = config.props ? generatePropString(config.props, config.type, indent) : "";
|
|
1179
1212
|
let idString = "";
|
|
1180
1213
|
if (config.id) {
|
|
@@ -1207,9 +1240,20 @@ ${indent} ${attributes} />`;
|
|
|
1207
1240
|
};
|
|
1208
1241
|
const componentStrings = preset.components.map((config) => generateComponentString(config)).join("\n");
|
|
1209
1242
|
const shaderProps = colorSpace && colorSpace !== "p3-linear" ? ` colorSpace="${colorSpace}"` : "";
|
|
1210
|
-
|
|
1243
|
+
const sortedTypes = Array.from(componentTypes).sort();
|
|
1244
|
+
const allImports = ["Shader", ...sortedTypes];
|
|
1245
|
+
const importStatement = allImports.length > 3 ? `import {
|
|
1246
|
+
${allImports.join(",\n ")},
|
|
1247
|
+
} from 'shaders/solid'` : `import { ${allImports.join(", ")} } from 'shaders/solid'`;
|
|
1248
|
+
return `${importStatement}
|
|
1249
|
+
|
|
1250
|
+
export default function ShaderEffect() {
|
|
1251
|
+
return (
|
|
1252
|
+
<Shader${shaderProps}>
|
|
1211
1253
|
${componentStrings}
|
|
1212
|
-
</Shader
|
|
1254
|
+
</Shader>
|
|
1255
|
+
)
|
|
1256
|
+
}`;
|
|
1213
1257
|
}
|
|
1214
1258
|
const availableComponents = [
|
|
1215
1259
|
// @ts-ignore - replaced at build time
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePresetCode.template.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.template.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;
|
|
1
|
+
{"version":3,"file":"generatePresetCode.template.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.template.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;AA4KD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAsElG;AAGD,eAAO,MAAM,mBAAmB,OAG/B,CAAA"}
|
|
@@ -1,27 +1,13 @@
|
|
|
1
|
-
interface
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
$on?: any;
|
|
11
|
-
};
|
|
12
|
-
z_$$bindings?: Bindings;
|
|
1
|
+
interface Props {
|
|
2
|
+
shader?: string;
|
|
3
|
+
presetId?: string;
|
|
4
|
+
apiBaseUrl?: string;
|
|
5
|
+
obfuscationKey?: string;
|
|
6
|
+
watermarkText?: string;
|
|
7
|
+
watermarkLink?: string;
|
|
8
|
+
style?: string;
|
|
9
|
+
[key: string]: any;
|
|
13
10
|
}
|
|
14
|
-
declare const Preview:
|
|
15
|
-
|
|
16
|
-
shader?: string | undefined | undefined;
|
|
17
|
-
presetId?: string | undefined | undefined;
|
|
18
|
-
apiBaseUrl?: string | undefined;
|
|
19
|
-
obfuscationKey?: string | undefined;
|
|
20
|
-
watermarkText?: string | undefined;
|
|
21
|
-
watermarkLink?: string | undefined;
|
|
22
|
-
style?: string | undefined | undefined;
|
|
23
|
-
}, {
|
|
24
|
-
[evt: string]: CustomEvent<any>;
|
|
25
|
-
}, {}, {}, string>;
|
|
26
|
-
type Preview = InstanceType<typeof Preview>;
|
|
11
|
+
declare const Preview: import("svelte").Component<Props, {}, "">;
|
|
12
|
+
type Preview = ReturnType<typeof Preview>;
|
|
27
13
|
export default Preview;
|
|
@@ -1,22 +1,8 @@
|
|
|
1
|
-
interface
|
|
2
|
-
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
3
|
-
$$bindings?: Bindings;
|
|
4
|
-
} & Exports;
|
|
5
|
-
(internal: unknown, props: Props & {
|
|
6
|
-
$$events?: Events;
|
|
7
|
-
$$slots?: Slots;
|
|
8
|
-
}): Exports & {
|
|
9
|
-
$set?: any;
|
|
10
|
-
$on?: any;
|
|
11
|
-
};
|
|
12
|
-
z_$$bindings?: Bindings;
|
|
13
|
-
}
|
|
14
|
-
declare const PreviewRenderComponent: $$__sveltets_2_IsomorphicComponent<{
|
|
1
|
+
interface Props {
|
|
15
2
|
config: any;
|
|
16
3
|
componentMap: Record<string, any>;
|
|
17
|
-
structureVersion?: number
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
type PreviewRenderComponent = InstanceType<typeof PreviewRenderComponent>;
|
|
4
|
+
structureVersion?: number;
|
|
5
|
+
}
|
|
6
|
+
declare const PreviewRenderComponent: import("svelte").Component<Props, {}, "">;
|
|
7
|
+
type PreviewRenderComponent = ReturnType<typeof PreviewRenderComponent>;
|
|
22
8
|
export default PreviewRenderComponent;
|
|
@@ -1084,7 +1084,7 @@ function isPropMapValue(value) {
|
|
|
1084
1084
|
function generatePropString(props, componentType, indent = " ") {
|
|
1085
1085
|
return Object.entries(props).sort(([a], [b]) => a.localeCompare(b)).filter(([key, value]) => {
|
|
1086
1086
|
if (key === "maskType" && value === "alpha") return false;
|
|
1087
|
-
if (
|
|
1087
|
+
if (key === "shape" && props.shapeSdfUrl) return false;
|
|
1088
1088
|
if (key === "transform" && typeof value === "object") {
|
|
1089
1089
|
if (Object.keys(DEFAULT_TRANSFORM).every((k) => value[k] === DEFAULT_TRANSFORM[k])) return false;
|
|
1090
1090
|
}
|
|
@@ -1113,11 +1113,22 @@ function generatePropString(props, componentType, indent = " ") {
|
|
|
1113
1113
|
const v = value[k];
|
|
1114
1114
|
return `${k}: ${typeof v === "string" ? `"${v}"` : v}`;
|
|
1115
1115
|
}).join(`,\n${indent} `)}\n${indent} }}`;
|
|
1116
|
-
if (typeof value === "string")
|
|
1117
|
-
|
|
1116
|
+
if (typeof value === "string") {
|
|
1117
|
+
if (value.startsWith("{") && value.endsWith("}")) try {
|
|
1118
|
+
const parsed = JSON.parse(value);
|
|
1119
|
+
if (typeof parsed === "object" && parsed !== null) {
|
|
1120
|
+
const keys = Object.keys(parsed);
|
|
1121
|
+
if (keys.length > 1) return `${key}={{\n${indent} ${keys.map((k) => `${k}: ${typeof parsed[k] === "string" ? `"${parsed[k]}"` : parsed[k]}`).join(`,\n${indent} `)}\n${indent} }}`;
|
|
1122
|
+
return `${key}={${toObjectLiteral(parsed)}}`;
|
|
1123
|
+
}
|
|
1124
|
+
} catch {}
|
|
1125
|
+
return `${key}="${value}"`;
|
|
1126
|
+
} else if (value !== null && typeof value === "object") {
|
|
1118
1127
|
const roundedValue = { ...value };
|
|
1119
1128
|
if ("x" in roundedValue && typeof roundedValue.x === "number") roundedValue.x = Math.round(roundedValue.x * 100) / 100;
|
|
1120
1129
|
if ("y" in roundedValue && typeof roundedValue.y === "number") roundedValue.y = Math.round(roundedValue.y * 100) / 100;
|
|
1130
|
+
const keys = Object.keys(roundedValue);
|
|
1131
|
+
if (keys.length > 1) return `${key}={{\n${indent} ${keys.map((k) => `${k}: ${typeof roundedValue[k] === "string" ? `"${roundedValue[k]}"` : roundedValue[k]}`).join(`,\n${indent} `)}\n${indent} }}`;
|
|
1121
1132
|
return `${key}={${toObjectLiteral(roundedValue)}}`;
|
|
1122
1133
|
} else return `${key}={${value}}`;
|
|
1123
1134
|
}).join("\n" + indent + " ");
|
|
@@ -1140,6 +1151,14 @@ function isIdReferenced(id, allComponents) {
|
|
|
1140
1151
|
});
|
|
1141
1152
|
}
|
|
1142
1153
|
function generatePresetCode(preset, colorSpace) {
|
|
1154
|
+
const componentTypes = /* @__PURE__ */ new Set();
|
|
1155
|
+
function collectTypes(components) {
|
|
1156
|
+
for (const config of components) {
|
|
1157
|
+
componentTypes.add(config.type);
|
|
1158
|
+
if (config.children) collectTypes(config.children);
|
|
1159
|
+
}
|
|
1160
|
+
}
|
|
1161
|
+
collectTypes(preset.components);
|
|
1143
1162
|
const generateComponentString = (config, indent = " ") => {
|
|
1144
1163
|
const propString = config.props ? generatePropString(config.props, config.type, indent) : "";
|
|
1145
1164
|
let idString = "";
|
|
@@ -1155,7 +1174,15 @@ function generatePresetCode(preset, colorSpace) {
|
|
|
1155
1174
|
else return `${indent}<${config.type} />`;
|
|
1156
1175
|
};
|
|
1157
1176
|
const componentStrings = preset.components.map((config) => generateComponentString(config)).join("\n");
|
|
1158
|
-
|
|
1177
|
+
const shaderProps = colorSpace && colorSpace !== "p3-linear" ? ` colorSpace="${colorSpace}"` : "";
|
|
1178
|
+
const allImports = ["Shader", ...Array.from(componentTypes).sort()];
|
|
1179
|
+
return `<script>
|
|
1180
|
+
${allImports.length > 3 ? `import {\n ${allImports.join(",\n ")},\n } from 'shaders/svelte'` : `import { ${allImports.join(", ")} } from 'shaders/svelte'`}
|
|
1181
|
+
<\/script>
|
|
1182
|
+
|
|
1183
|
+
<Shader${shaderProps}>
|
|
1184
|
+
${componentStrings}
|
|
1185
|
+
</Shader>`;
|
|
1159
1186
|
}
|
|
1160
1187
|
const availableComponents = [
|
|
1161
1188
|
"AngularBlur",
|
package/dist/svelte/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as generatePresetCode } from "./generatePresetCode-
|
|
1
|
+
import { n as generatePresetCode } from "./generatePresetCode-BN1puRG_.js";
|
|
2
2
|
import "svelte/internal/disclose-version";
|
|
3
3
|
import * as $ from "svelte/internal/client";
|
|
4
4
|
import { getContext, onDestroy, onMount, setContext } from "svelte";
|
|
@@ -96,7 +96,6 @@ import { componentDefinition as componentDefinition$88 } from "../core/shaders/W
|
|
|
96
96
|
import { componentDefinition as componentDefinition$89 } from "../core/shaders/ZoomBlur/index.js";
|
|
97
97
|
import { vec4 } from "three/tsl";
|
|
98
98
|
import { isExternalUser, shouldCollectTelemetry, startTelemetry } from "../core/telemetry/index.js";
|
|
99
|
-
import "svelte/internal/flags/legacy";
|
|
100
99
|
var root$90 = $.from_html(`<span style="display:contents"><!></span>`);
|
|
101
100
|
function AngularBlur($$anchor, $$props) {
|
|
102
101
|
$.push($$props, true);
|
|
@@ -13189,7 +13188,7 @@ function Shader($$anchor, $$props) {
|
|
|
13189
13188
|
const checkRendering = () => {
|
|
13190
13189
|
if (!rendererInstance) return;
|
|
13191
13190
|
if (rendererInstance.getPerformanceStats().fps > 0) {
|
|
13192
|
-
telemetryCollector = startTelemetry(rendererInstance, "2.
|
|
13191
|
+
telemetryCollector = startTelemetry(rendererInstance, "2.5.80", disableTelemetry(), isPreview());
|
|
13193
13192
|
if (telemetryCollector) telemetryCollector.start();
|
|
13194
13193
|
telemetryStartTimeout = null;
|
|
13195
13194
|
} else telemetryStartTimeout = window.setTimeout(checkRendering, 500);
|
|
@@ -13301,20 +13300,10 @@ function Shader($$anchor, $$props) {
|
|
|
13301
13300
|
$.pop();
|
|
13302
13301
|
}
|
|
13303
13302
|
function PreviewRenderComponent($$anchor, $$props) {
|
|
13304
|
-
$.push($$props,
|
|
13305
|
-
const
|
|
13306
|
-
const
|
|
13307
|
-
|
|
13308
|
-
let componentMap = $.prop($$props, "componentMap", 8);
|
|
13309
|
-
let structureVersion = $.prop($$props, "structureVersion", 8, void 0);
|
|
13310
|
-
$.legacy_pre_effect(() => ($.deep_read_state(componentMap()), $.deep_read_state(config())), () => {
|
|
13311
|
-
$.set(Component, componentMap()[config().type]);
|
|
13312
|
-
});
|
|
13313
|
-
$.legacy_pre_effect(() => $.deep_read_state(config()), () => {
|
|
13314
|
-
$.set(componentProps, config().props ? { ...config().props } : {});
|
|
13315
|
-
});
|
|
13316
|
-
$.legacy_pre_effect_reset();
|
|
13317
|
-
$.init();
|
|
13303
|
+
$.push($$props, true);
|
|
13304
|
+
const structureVersion = $.prop($$props, "structureVersion", 3, void 0);
|
|
13305
|
+
const Component = $.derived(() => $$props.componentMap[$$props.config.type]);
|
|
13306
|
+
const componentProps = $.derived(() => $$props.config.props ? { ...$$props.config.props } : {});
|
|
13318
13307
|
var fragment = $.comment();
|
|
13319
13308
|
var node = $.first_child(fragment);
|
|
13320
13309
|
var consequent_1 = ($$anchor$1) => {
|
|
@@ -13323,10 +13312,10 @@ function PreviewRenderComponent($$anchor, $$props) {
|
|
|
13323
13312
|
$.component(node_1, () => $.get(Component), ($$anchor$2, $$component) => {
|
|
13324
13313
|
$$component($$anchor$2, $.spread_props({
|
|
13325
13314
|
get id() {
|
|
13326
|
-
return
|
|
13315
|
+
return $$props.config.id;
|
|
13327
13316
|
},
|
|
13328
13317
|
get renderOrder() {
|
|
13329
|
-
return
|
|
13318
|
+
return $$props.config.renderOrder;
|
|
13330
13319
|
}
|
|
13331
13320
|
}, () => $.get(componentProps), {
|
|
13332
13321
|
children: ($$anchor$3, $$slotProps) => {
|
|
@@ -13335,20 +13324,20 @@ function PreviewRenderComponent($$anchor, $$props) {
|
|
|
13335
13324
|
var consequent = ($$anchor$4) => {
|
|
13336
13325
|
var fragment_3 = $.comment();
|
|
13337
13326
|
var node_3 = $.first_child(fragment_3);
|
|
13338
|
-
$.each(node_3,
|
|
13327
|
+
$.each(node_3, 19, () => $$props.config.children, (child, index) => child.id || `child_${index}_v${structureVersion() || 0}`, ($$anchor$5, child, index) => {
|
|
13339
13328
|
var fragment_4 = $.comment();
|
|
13340
13329
|
var node_4 = $.first_child(fragment_4);
|
|
13341
13330
|
{
|
|
13342
|
-
let $0 = $.
|
|
13331
|
+
let $0 = $.derived(() => ({
|
|
13343
13332
|
...$.get(child),
|
|
13344
13333
|
renderOrder: $.get(child).renderOrder ?? $.get(index)
|
|
13345
|
-
}))
|
|
13334
|
+
}));
|
|
13346
13335
|
PreviewRenderComponent(node_4, {
|
|
13347
13336
|
get config() {
|
|
13348
13337
|
return $.get($0);
|
|
13349
13338
|
},
|
|
13350
13339
|
get componentMap() {
|
|
13351
|
-
return componentMap
|
|
13340
|
+
return $$props.componentMap;
|
|
13352
13341
|
},
|
|
13353
13342
|
get structureVersion() {
|
|
13354
13343
|
return structureVersion();
|
|
@@ -13360,7 +13349,7 @@ function PreviewRenderComponent($$anchor, $$props) {
|
|
|
13360
13349
|
$.append($$anchor$4, fragment_3);
|
|
13361
13350
|
};
|
|
13362
13351
|
$.if(node_2, ($$render) => {
|
|
13363
|
-
if (
|
|
13352
|
+
if ($$props.config.children) $$render(consequent);
|
|
13364
13353
|
});
|
|
13365
13354
|
$.append($$anchor$3, fragment_2);
|
|
13366
13355
|
},
|
|
@@ -13378,22 +13367,7 @@ function PreviewRenderComponent($$anchor, $$props) {
|
|
|
13378
13367
|
var root_4 = $.from_html(`<a target="_blank" rel="noopener noreferrer"> </a>`);
|
|
13379
13368
|
var root_1 = $.from_html(`<div><!> <!></div>`);
|
|
13380
13369
|
function Preview($$anchor, $$props) {
|
|
13381
|
-
|
|
13382
|
-
"children",
|
|
13383
|
-
"$$slots",
|
|
13384
|
-
"$$events",
|
|
13385
|
-
"$$legacy"
|
|
13386
|
-
]);
|
|
13387
|
-
const $$restProps = $.legacy_rest_props($$sanitized_props, [
|
|
13388
|
-
"shader",
|
|
13389
|
-
"presetId",
|
|
13390
|
-
"apiBaseUrl",
|
|
13391
|
-
"obfuscationKey",
|
|
13392
|
-
"watermarkText",
|
|
13393
|
-
"watermarkLink",
|
|
13394
|
-
"style"
|
|
13395
|
-
]);
|
|
13396
|
-
$.push($$props, false);
|
|
13370
|
+
$.push($$props, true);
|
|
13397
13371
|
const componentMap = {
|
|
13398
13372
|
AngularBlur,
|
|
13399
13373
|
Ascii,
|
|
@@ -13517,40 +13491,40 @@ function Preview($$anchor, $$props) {
|
|
|
13517
13491
|
return null;
|
|
13518
13492
|
});
|
|
13519
13493
|
}
|
|
13520
|
-
|
|
13521
|
-
|
|
13522
|
-
|
|
13523
|
-
|
|
13524
|
-
|
|
13525
|
-
|
|
13526
|
-
|
|
13527
|
-
|
|
13528
|
-
|
|
13529
|
-
|
|
13530
|
-
|
|
13531
|
-
|
|
13532
|
-
|
|
13533
|
-
|
|
13494
|
+
const shader = $.prop($$props, "shader", 3, void 0), presetId = $.prop($$props, "presetId", 3, void 0), apiBaseUrl = $.prop($$props, "apiBaseUrl", 3, "https://shaders.com"), obfuscationKey = $.prop($$props, "obfuscationKey", 3, "shaders-preview-key"), watermarkText = $.prop($$props, "watermarkText", 3, "Unlock your Shaders Pro license"), watermarkLink = $.prop($$props, "watermarkLink", 3, "https://shaders.com/dashboard?pricing=true"), style = $.prop($$props, "style", 3, void 0), restProps = $.rest_props($$props, [
|
|
13495
|
+
"$$slots",
|
|
13496
|
+
"$$events",
|
|
13497
|
+
"$$legacy",
|
|
13498
|
+
"shader",
|
|
13499
|
+
"presetId",
|
|
13500
|
+
"apiBaseUrl",
|
|
13501
|
+
"obfuscationKey",
|
|
13502
|
+
"watermarkText",
|
|
13503
|
+
"watermarkLink",
|
|
13504
|
+
"style"
|
|
13505
|
+
]);
|
|
13506
|
+
let fetchedDefinition = $.state(null);
|
|
13507
|
+
let watermarkHovered = $.state(false);
|
|
13508
|
+
let resolvedDefinition = $.derived(() => $.get(fetchedDefinition) ?? null);
|
|
13509
|
+
$.user_effect(() => {
|
|
13534
13510
|
if (shader()) {
|
|
13535
13511
|
$.set(fetchedDefinition, null);
|
|
13536
13512
|
fetchAndDecode(`${apiBaseUrl()}/api/preview/shader/${shader()}`, obfuscationKey()).then((def) => {
|
|
13537
|
-
$.set(fetchedDefinition, def);
|
|
13513
|
+
$.set(fetchedDefinition, def, true);
|
|
13538
13514
|
});
|
|
13539
13515
|
} else if (!presetId()) $.set(fetchedDefinition, null);
|
|
13540
13516
|
});
|
|
13541
|
-
$.
|
|
13517
|
+
$.user_effect(() => {
|
|
13542
13518
|
if (presetId()) {
|
|
13543
13519
|
$.set(fetchedDefinition, null);
|
|
13544
13520
|
fetchAndDecode(`${apiBaseUrl()}/api/preview/preset/${presetId()}`, obfuscationKey()).then((def) => {
|
|
13545
|
-
$.set(fetchedDefinition, def);
|
|
13521
|
+
$.set(fetchedDefinition, def, true);
|
|
13546
13522
|
});
|
|
13547
13523
|
} else if (!shader()) $.set(fetchedDefinition, null);
|
|
13548
13524
|
});
|
|
13549
|
-
|
|
13550
|
-
|
|
13525
|
+
onMount(() => {
|
|
13526
|
+
console.warn("[Shaders] Preview component is intended for use with a Shaders license. Visit https://shaders.com for more information.");
|
|
13551
13527
|
});
|
|
13552
|
-
$.legacy_pre_effect_reset();
|
|
13553
|
-
$.init();
|
|
13554
13528
|
var fragment = $.comment();
|
|
13555
13529
|
var node = $.first_child(fragment);
|
|
13556
13530
|
var consequent_1 = ($$anchor$1) => {
|
|
@@ -13558,11 +13532,11 @@ function Preview($$anchor, $$props) {
|
|
|
13558
13532
|
$.attribute_effect(div, () => ({
|
|
13559
13533
|
class: "shaders-preview",
|
|
13560
13534
|
style: `position: relative; width: 100%; height: 100%;${style() ? " " + style() : ""}`,
|
|
13561
|
-
|
|
13535
|
+
...restProps
|
|
13562
13536
|
}));
|
|
13563
13537
|
var node_1 = $.child(div);
|
|
13564
13538
|
{
|
|
13565
|
-
let $0 = $.
|
|
13539
|
+
let $0 = $.derived(() => $.get(resolvedDefinition).colorSpace || "p3-linear");
|
|
13566
13540
|
Shader(node_1, {
|
|
13567
13541
|
get colorSpace() {
|
|
13568
13542
|
return $.get($0);
|
|
@@ -13573,12 +13547,12 @@ function Preview($$anchor, $$props) {
|
|
|
13573
13547
|
children: ($$anchor$2, $$slotProps) => {
|
|
13574
13548
|
var fragment_1 = $.comment();
|
|
13575
13549
|
var node_2 = $.first_child(fragment_1);
|
|
13576
|
-
$.each(node_2,
|
|
13550
|
+
$.each(node_2, 19, () => $.get(resolvedDefinition).components, (config, index) => config.id || `root_${index}_v${$.get(resolvedDefinition).structureVersion || 0}`, ($$anchor$3, config, index) => {
|
|
13577
13551
|
{
|
|
13578
|
-
let $0$1 = $.
|
|
13552
|
+
let $0$1 = $.derived(() => ({
|
|
13579
13553
|
...$.get(config),
|
|
13580
13554
|
renderOrder: $.get(config).renderOrder ?? $.get(index)
|
|
13581
|
-
}))
|
|
13555
|
+
}));
|
|
13582
13556
|
PreviewRenderComponent($$anchor$3, {
|
|
13583
13557
|
get config() {
|
|
13584
13558
|
return $.get($0$1);
|
|
@@ -13587,7 +13561,7 @@ function Preview($$anchor, $$props) {
|
|
|
13587
13561
|
return componentMap;
|
|
13588
13562
|
},
|
|
13589
13563
|
get structureVersion() {
|
|
13590
|
-
return $.get(resolvedDefinition)
|
|
13564
|
+
return $.get(resolvedDefinition).structureVersion;
|
|
13591
13565
|
}
|
|
13592
13566
|
});
|
|
13593
13567
|
}
|