@awesome-flow/noise 0.1.0

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.
Files changed (109) hide show
  1. package/dist/abstract/index.cjs +4234 -0
  2. package/dist/abstract/index.cjs.map +1 -0
  3. package/dist/abstract/index.d.cts +137 -0
  4. package/dist/abstract/index.d.ts +137 -0
  5. package/dist/abstract/index.js +4271 -0
  6. package/dist/abstract/index.js.map +1 -0
  7. package/dist/handle-types-D-v5S53h.d.cts +22 -0
  8. package/dist/handle-types-D-v5S53h.d.ts +22 -0
  9. package/dist/layout/index.cjs +164 -0
  10. package/dist/layout/index.cjs.map +1 -0
  11. package/dist/layout/index.d.cts +26 -0
  12. package/dist/layout/index.d.ts +26 -0
  13. package/dist/layout/index.js +136 -0
  14. package/dist/layout/index.js.map +1 -0
  15. package/dist/modules/index.cjs +71 -0
  16. package/dist/modules/index.cjs.map +1 -0
  17. package/dist/modules/index.d.cts +18 -0
  18. package/dist/modules/index.d.ts +18 -0
  19. package/dist/modules/index.js +34 -0
  20. package/dist/modules/index.js.map +1 -0
  21. package/dist/node-props-CeZ8Oshz.d.ts +161 -0
  22. package/dist/node-props-hKW-_KOU.d.cts +161 -0
  23. package/dist/nodes/generators/index.cjs +640 -0
  24. package/dist/nodes/generators/index.cjs.map +1 -0
  25. package/dist/nodes/generators/index.d.cts +38 -0
  26. package/dist/nodes/generators/index.d.ts +38 -0
  27. package/dist/nodes/generators/index.js +592 -0
  28. package/dist/nodes/generators/index.js.map +1 -0
  29. package/dist/nodes/groups/index.cjs +104 -0
  30. package/dist/nodes/groups/index.cjs.map +1 -0
  31. package/dist/nodes/groups/index.d.cts +7 -0
  32. package/dist/nodes/groups/index.d.ts +7 -0
  33. package/dist/nodes/groups/index.js +78 -0
  34. package/dist/nodes/groups/index.js.map +1 -0
  35. package/dist/nodes/index.cjs +2830 -0
  36. package/dist/nodes/index.cjs.map +1 -0
  37. package/dist/nodes/index.d.cts +16 -0
  38. package/dist/nodes/index.d.ts +16 -0
  39. package/dist/nodes/index.js +2840 -0
  40. package/dist/nodes/index.js.map +1 -0
  41. package/dist/nodes/modifiers/index.cjs +1593 -0
  42. package/dist/nodes/modifiers/index.cjs.map +1 -0
  43. package/dist/nodes/modifiers/index.d.cts +32 -0
  44. package/dist/nodes/modifiers/index.d.ts +32 -0
  45. package/dist/nodes/modifiers/index.js +1612 -0
  46. package/dist/nodes/modifiers/index.js.map +1 -0
  47. package/dist/nodes/output/index.cjs +210 -0
  48. package/dist/nodes/output/index.cjs.map +1 -0
  49. package/dist/nodes/output/index.d.cts +13 -0
  50. package/dist/nodes/output/index.d.ts +13 -0
  51. package/dist/nodes/output/index.js +181 -0
  52. package/dist/nodes/output/index.js.map +1 -0
  53. package/dist/nodes/selectors/index.cjs +136 -0
  54. package/dist/nodes/selectors/index.cjs.map +1 -0
  55. package/dist/nodes/selectors/index.d.cts +16 -0
  56. package/dist/nodes/selectors/index.d.ts +16 -0
  57. package/dist/nodes/selectors/index.js +113 -0
  58. package/dist/nodes/selectors/index.js.map +1 -0
  59. package/dist/nodes/transformers/index.cjs +477 -0
  60. package/dist/nodes/transformers/index.cjs.map +1 -0
  61. package/dist/nodes/transformers/index.d.cts +22 -0
  62. package/dist/nodes/transformers/index.d.ts +22 -0
  63. package/dist/nodes/transformers/index.js +459 -0
  64. package/dist/nodes/transformers/index.js.map +1 -0
  65. package/dist/properties-BxwtU6i9.d.cts +9 -0
  66. package/dist/properties-BxwtU6i9.d.ts +9 -0
  67. package/dist/templates/generators/index.cjs +1714 -0
  68. package/dist/templates/generators/index.cjs.map +1 -0
  69. package/dist/templates/generators/index.d.cts +89 -0
  70. package/dist/templates/generators/index.d.ts +89 -0
  71. package/dist/templates/generators/index.js +1723 -0
  72. package/dist/templates/generators/index.js.map +1 -0
  73. package/dist/templates/groups/index.cjs +1690 -0
  74. package/dist/templates/groups/index.cjs.map +1 -0
  75. package/dist/templates/groups/index.d.cts +11 -0
  76. package/dist/templates/groups/index.d.ts +11 -0
  77. package/dist/templates/groups/index.js +1711 -0
  78. package/dist/templates/groups/index.js.map +1 -0
  79. package/dist/templates/index.cjs +1758 -0
  80. package/dist/templates/index.cjs.map +1 -0
  81. package/dist/templates/index.d.cts +15 -0
  82. package/dist/templates/index.d.ts +15 -0
  83. package/dist/templates/index.js +1745 -0
  84. package/dist/templates/index.js.map +1 -0
  85. package/dist/templates/modifiers/index.cjs +1708 -0
  86. package/dist/templates/modifiers/index.cjs.map +1 -0
  87. package/dist/templates/modifiers/index.d.cts +71 -0
  88. package/dist/templates/modifiers/index.d.ts +71 -0
  89. package/dist/templates/modifiers/index.js +1720 -0
  90. package/dist/templates/modifiers/index.js.map +1 -0
  91. package/dist/templates/output/index.cjs +1696 -0
  92. package/dist/templates/output/index.cjs.map +1 -0
  93. package/dist/templates/output/index.d.cts +29 -0
  94. package/dist/templates/output/index.d.ts +29 -0
  95. package/dist/templates/output/index.js +1714 -0
  96. package/dist/templates/output/index.js.map +1 -0
  97. package/dist/templates/selectors/index.cjs +1692 -0
  98. package/dist/templates/selectors/index.cjs.map +1 -0
  99. package/dist/templates/selectors/index.d.cts +22 -0
  100. package/dist/templates/selectors/index.d.ts +22 -0
  101. package/dist/templates/selectors/index.js +1712 -0
  102. package/dist/templates/selectors/index.js.map +1 -0
  103. package/dist/templates/transformers/index.cjs +1698 -0
  104. package/dist/templates/transformers/index.cjs.map +1 -0
  105. package/dist/templates/transformers/index.d.cts +40 -0
  106. package/dist/templates/transformers/index.d.ts +40 -0
  107. package/dist/templates/transformers/index.js +1715 -0
  108. package/dist/templates/transformers/index.js.map +1 -0
  109. package/package.json +111 -0
@@ -0,0 +1,640 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/nodes/generators/index.ts
30
+ var generators_exports = {};
31
+ __export(generators_exports, {
32
+ NoiseBillowNode: () => noise_billow_node_default,
33
+ NoiseCheckerboardNode: () => noise_checkerboard_node_default,
34
+ NoiseConstNode: () => noise_const_node_default,
35
+ NoiseCylindersNode: () => noise_cylinders_node_default,
36
+ NoisePerlinNode: () => noise_perlin_node_default,
37
+ NoiseRidgedMultiNode: () => noise_ridgedmulti_node_default,
38
+ NoiseSimplexNode: () => noise_simplex_node_default,
39
+ NoiseSpheresNode: () => noise_spheres_node_default,
40
+ NoiseVoronoiNode: () => noise_voronoi_node_default,
41
+ PositionConstNode: () => position_const_node_default,
42
+ PositionGridNode: () => position_grid_node_default,
43
+ VariablePropertyNode: () => variable_property_node_default,
44
+ VariableValueNode: () => variable_value_node_default
45
+ });
46
+ module.exports = __toCommonJS(generators_exports);
47
+
48
+ // src/nodes/generators/noise-billow-node.tsx
49
+ var import_layout = require("@awesome-flow/core/layout");
50
+ var import_react2 = require("react");
51
+ var import_generator = require("libnoise-ts/module/generator");
52
+ var import_hooks2 = require("@awesome-flow/core/hooks");
53
+ var import_abstract2 = require("@awesome-flow/core/abstract");
54
+
55
+ // src/layout/node-property-variables.tsx
56
+ var import_hooks = require("@awesome-flow/core/hooks");
57
+ var import_react = require("react");
58
+ var import_core2 = require("@mantine/core");
59
+ var import_utils = require("@awesome-flow/core/utils");
60
+ var import_abstract = require("@awesome-flow/core/abstract");
61
+
62
+ // src/layout/node-value-input.tsx
63
+ var import_core = require("@mantine/core");
64
+ var import_jsx_runtime = require("react/jsx-runtime");
65
+ function NodeValueInput({ value, disabled, step, onChange }) {
66
+ if (value === void 0 || value === null) {
67
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {});
68
+ }
69
+ switch (typeof value) {
70
+ case "boolean": {
71
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
72
+ import_core.Switch,
73
+ {
74
+ checked: value,
75
+ disabled,
76
+ onChange: (e) => onChange(e.currentTarget.checked)
77
+ }
78
+ );
79
+ }
80
+ case "number": {
81
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.NumberInput, { value, disabled, step, onChange: (e) => onChange(e) });
82
+ }
83
+ case "string": {
84
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
85
+ import_core.Input,
86
+ {
87
+ value,
88
+ disabled,
89
+ onChange: (e) => onChange(e.currentTarget.value)
90
+ }
91
+ );
92
+ }
93
+ default:
94
+ throw new Error(`Unknown input node for value of type: ${typeof value} (${value})`);
95
+ }
96
+ }
97
+ var node_value_input_default = NodeValueInput;
98
+
99
+ // src/layout/node-property-input.tsx
100
+ var import_jsx_runtime2 = require("react/jsx-runtime");
101
+ function NodePropertyInput({ property, onChange }) {
102
+ if (!property) {
103
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, {});
104
+ }
105
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
106
+ node_value_input_default,
107
+ {
108
+ value: property.value,
109
+ disabled: property.disabled,
110
+ step: property.step,
111
+ onChange: (value) => onChange(property.name, value)
112
+ }
113
+ );
114
+ }
115
+ var node_property_input_default = NodePropertyInput;
116
+
117
+ // src/layout/node-property-variables.tsx
118
+ var import_jsx_runtime3 = require("react/jsx-runtime");
119
+ function NodePropertyVariables({
120
+ data,
121
+ nodeId,
122
+ onPropertiesChange,
123
+ except = import_abstract.nodeDataPropertyExcept
124
+ }) {
125
+ const [properties, setProperties] = (0, import_react.useState)(() => {
126
+ const keys = (0, import_utils.getObjectKeys)(data, except);
127
+ const dataProps = {};
128
+ for (const key of keys) {
129
+ dataProps[key] = {
130
+ name: key,
131
+ value: data[key]
132
+ };
133
+ }
134
+ return dataProps;
135
+ });
136
+ const updateNodeData = (0, import_hooks.useUpdateNodeData)();
137
+ const incoming = (0, import_hooks.useIncomingNodeData)(nodeId);
138
+ const resetAllDisabled = (0, import_react.useCallback)(() => {
139
+ const keys = Object.keys(properties);
140
+ keys.forEach((k) => {
141
+ properties[k].disabled = false;
142
+ });
143
+ setProperties(properties);
144
+ }, []);
145
+ const updatePropertyValue = (0, import_react.useCallback)((name, value, disabled) => {
146
+ let property = properties[name];
147
+ if (property) {
148
+ property.value = value;
149
+ } else {
150
+ property = {
151
+ name,
152
+ value
153
+ };
154
+ }
155
+ property.disabled = disabled;
156
+ setProperties({ ...properties, [name]: property });
157
+ updateNodeData(nodeId, { [name]: value });
158
+ }, []);
159
+ (0, import_react.useEffect)(() => {
160
+ resetAllDisabled();
161
+ if (incoming?.length) {
162
+ for (const connection of incoming) {
163
+ if (connection.property && properties[connection.property.name] !== void 0) {
164
+ updatePropertyValue(connection.property.name, connection.property.value, true);
165
+ }
166
+ }
167
+ }
168
+ }, [incoming]);
169
+ (0, import_react.useEffect)(() => {
170
+ if (onPropertiesChange) {
171
+ onPropertiesChange(properties);
172
+ }
173
+ }, [onPropertiesChange, properties]);
174
+ const nodes = (0, import_react.useMemo)(() => {
175
+ return Object.keys(properties).map((key) => {
176
+ const property = properties[key];
177
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_core2.Group, { children: [
178
+ property.name,
179
+ ":",
180
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(node_property_input_default, { property, onChange: updatePropertyValue })
181
+ ] }, key);
182
+ });
183
+ }, [properties, updatePropertyValue]);
184
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_core2.Stack, { children: nodes });
185
+ }
186
+ var node_property_variables_default = NodePropertyVariables;
187
+
188
+ // src/nodes/generators/noise-billow-node.tsx
189
+ var import_jsx_runtime4 = require("react/jsx-runtime");
190
+ function NoiseBillowNode({ id, selected, data, type }) {
191
+ const updateComputedData = (0, import_hooks2.useUpdateNodeComputedData)();
192
+ const module2 = (0, import_react2.useMemo)(() => new import_generator.Billow(), []);
193
+ const onPropertiesChange = (0, import_react2.useCallback)(
194
+ (properties) => {
195
+ Object.keys(properties).forEach((k) => {
196
+ module2[k] = properties[k].value;
197
+ });
198
+ updateComputedData(id, { module: module2 });
199
+ },
200
+ [id, module2, updateComputedData]
201
+ );
202
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_layout.NodeContainer, { id, selected, data, type, children: [
203
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
204
+ node_property_variables_default,
205
+ {
206
+ data,
207
+ except: import_abstract2.nodeDataPropertyExcept,
208
+ nodeId: id,
209
+ onPropertiesChange
210
+ }
211
+ ),
212
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_layout.NodeTrackConnections, { handles: data.handles, nodeId: id, type: "target" })
213
+ ] });
214
+ }
215
+ var noise_billow_node_default = NoiseBillowNode;
216
+
217
+ // src/nodes/generators/noise-checkerboard-node.tsx
218
+ var import_layout2 = require("@awesome-flow/core/layout");
219
+ var import_react3 = require("react");
220
+ var import_generator2 = require("libnoise-ts/module/generator");
221
+ var import_hooks3 = require("@awesome-flow/core/hooks");
222
+ var import_jsx_runtime5 = require("react/jsx-runtime");
223
+ function NoiseCheckerboardNode({ id, selected, data, type }) {
224
+ const updateComputedData = (0, import_hooks3.useUpdateNodeComputedData)();
225
+ const module2 = (0, import_react3.useMemo)(() => new import_generator2.Checkerboard(), []);
226
+ (0, import_react3.useEffect)(() => {
227
+ updateComputedData(id, { module: module2 });
228
+ }, [id, module2, updateComputedData]);
229
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_layout2.NodeContainer, { id, selected, data, type });
230
+ }
231
+ var noise_checkerboard_node_default = NoiseCheckerboardNode;
232
+
233
+ // src/nodes/generators/noise-const-node.tsx
234
+ var import_layout3 = require("@awesome-flow/core/layout");
235
+ var import_react4 = require("react");
236
+ var import_core3 = require("@mantine/core");
237
+ var import_hooks4 = require("@awesome-flow/core/hooks");
238
+ var import_generator3 = require("libnoise-ts/module/generator");
239
+ var import_jsx_runtime6 = require("react/jsx-runtime");
240
+ function NoiseConstNode({ id, selected, data, type }) {
241
+ const [min, setMin] = (0, import_react4.useState)(data.min);
242
+ const [max, setMax] = (0, import_react4.useState)(data.max);
243
+ const [noise, setNoise] = (0, import_react4.useState)(data.noise);
244
+ const updateNodeData = (0, import_hooks4.useUpdateNodeData)();
245
+ const updateComputedData = (0, import_hooks4.useUpdateNodeComputedData)();
246
+ const module2 = (0, import_react4.useMemo)(() => new import_generator3.Const(), []);
247
+ (0, import_react4.useEffect)(() => {
248
+ module2.value = noise;
249
+ updateNodeData(id, { noise, min, max });
250
+ updateComputedData(id, { module: module2 });
251
+ }, [noise, min, max, module2, updateNodeData, id, updateComputedData]);
252
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_layout3.NodeContainer, { id, selected, data, type, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_core3.Stack, { children: [
253
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_core3.Group, { children: [
254
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_core3.NumberInput, { size: "xs", w: 100, value: min, onChange: (e) => setMin(Number(e)) }),
255
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_core3.NumberInput, { size: "xs", w: 100, value: max, onChange: (e) => setMax(Number(e)) })
256
+ ] }),
257
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_core3.Group, { children: [
258
+ "noise:",
259
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
260
+ import_core3.NumberInput,
261
+ {
262
+ size: "xs",
263
+ value: noise,
264
+ onChange: (e) => setNoise(Number(e)),
265
+ max,
266
+ min,
267
+ step: 0.1
268
+ }
269
+ )
270
+ ] })
271
+ ] }) });
272
+ }
273
+ var noise_const_node_default = NoiseConstNode;
274
+
275
+ // src/nodes/generators/noise-cylinders-node.tsx
276
+ var import_layout4 = require("@awesome-flow/core/layout");
277
+ var import_react5 = require("react");
278
+ var import_generator4 = require("libnoise-ts/module/generator");
279
+ var import_hooks5 = require("@awesome-flow/core/hooks");
280
+ var import_jsx_runtime7 = require("react/jsx-runtime");
281
+ function NoiseCylindersNode({ id, selected, data, type }) {
282
+ const updateComputedData = (0, import_hooks5.useUpdateNodeComputedData)();
283
+ const module2 = (0, import_react5.useMemo)(() => new import_generator4.Cylinders(), []);
284
+ const onPropertiesChange = (0, import_react5.useCallback)(
285
+ (properties) => {
286
+ Object.keys(properties).forEach((k) => {
287
+ module2[k] = properties[k].value;
288
+ });
289
+ updateComputedData(id, { module: module2 });
290
+ },
291
+ [id, module2, updateComputedData]
292
+ );
293
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_layout4.NodeContainer, { id, selected, data, type, children: [
294
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(node_property_variables_default, { data, nodeId: id, onPropertiesChange }),
295
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_layout4.NodeTrackConnections, { handles: data.handles, nodeId: id, type: "target" })
296
+ ] });
297
+ }
298
+ var noise_cylinders_node_default = NoiseCylindersNode;
299
+
300
+ // src/nodes/generators/noise-perlin-node.tsx
301
+ var import_layout5 = require("@awesome-flow/core/layout");
302
+ var import_react6 = require("react");
303
+ var import_generator5 = require("libnoise-ts/module/generator");
304
+ var import_hooks6 = require("@awesome-flow/core/hooks");
305
+ var import_jsx_runtime8 = require("react/jsx-runtime");
306
+ function NoisePerlinNode({ id, selected, data, type }) {
307
+ const updateComputedData = (0, import_hooks6.useUpdateNodeComputedData)();
308
+ const module2 = (0, import_react6.useMemo)(() => new import_generator5.Perlin(), []);
309
+ const onPropertiesChange = (0, import_react6.useCallback)(
310
+ (properties) => {
311
+ Object.keys(properties).forEach((k) => {
312
+ module2[k] = properties[k].value;
313
+ });
314
+ updateComputedData(id, { module: module2 });
315
+ },
316
+ [id, module2, updateComputedData]
317
+ );
318
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_layout5.NodeContainer, { id, selected, data, type, children: [
319
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(node_property_variables_default, { data, nodeId: id, onPropertiesChange }),
320
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_layout5.NodeTrackConnections, { handles: data.handles, nodeId: id, type: "target" })
321
+ ] });
322
+ }
323
+ var noise_perlin_node_default = NoisePerlinNode;
324
+
325
+ // src/nodes/generators/noise-ridgedmulti-node.tsx
326
+ var import_layout6 = require("@awesome-flow/core/layout");
327
+ var import_react7 = require("react");
328
+ var import_generator6 = require("libnoise-ts/module/generator");
329
+ var import_hooks7 = require("@awesome-flow/core/hooks");
330
+ var import_jsx_runtime9 = require("react/jsx-runtime");
331
+ function NoiseRidgedMultiNode({ id, selected, data, type }) {
332
+ const updateComputedData = (0, import_hooks7.useUpdateNodeComputedData)();
333
+ const module2 = (0, import_react7.useMemo)(() => new import_generator6.RidgedMulti(), []);
334
+ const onPropertiesChange = (0, import_react7.useCallback)((properties) => {
335
+ Object.keys(properties).forEach((k) => module2[k] = properties[k].value);
336
+ updateComputedData(id, { module: module2 });
337
+ }, []);
338
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_layout6.NodeContainer, { id, selected, data, type, children: [
339
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(node_property_variables_default, { data, nodeId: id, onPropertiesChange }),
340
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_layout6.NodeTrackConnections, { handles: data.handles, nodeId: id, type: "target" })
341
+ ] });
342
+ }
343
+ var noise_ridgedmulti_node_default = NoiseRidgedMultiNode;
344
+
345
+ // src/nodes/generators/noise-simplex-node.tsx
346
+ var import_layout7 = require("@awesome-flow/core/layout");
347
+ var import_react8 = require("react");
348
+ var import_hooks8 = require("@awesome-flow/core/hooks");
349
+
350
+ // src/modules/simplex-module.ts
351
+ var import_Module = __toESM(require("libnoise-ts/module/Module"), 1);
352
+ var import_simplex_noise = require("simplex-noise");
353
+ var SimplexModule = class extends import_Module.default {
354
+ noise;
355
+ constructor(random) {
356
+ super();
357
+ this.noise = (0, import_simplex_noise.createNoise3D)(random);
358
+ }
359
+ getValue(x, y, z) {
360
+ return this.noise(x, y, z);
361
+ }
362
+ };
363
+
364
+ // src/nodes/generators/noise-simplex-node.tsx
365
+ var import_jsx_runtime10 = require("react/jsx-runtime");
366
+ function NoiseSimplexNode({ id, selected, data, type }) {
367
+ const updateComputedData = (0, import_hooks8.useUpdateNodeComputedData)();
368
+ const module2 = (0, import_react8.useMemo)(() => new SimplexModule(), []);
369
+ (0, import_react8.useEffect)(() => {
370
+ updateComputedData(id, { module: module2 });
371
+ }, []);
372
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_layout7.NodeContainer, { id, selected, data, type });
373
+ }
374
+ var noise_simplex_node_default = NoiseSimplexNode;
375
+
376
+ // src/nodes/generators/noise-spheres-node.tsx
377
+ var import_layout8 = require("@awesome-flow/core/layout");
378
+ var import_react9 = require("react");
379
+ var import_generator7 = require("libnoise-ts/module/generator");
380
+ var import_hooks9 = require("@awesome-flow/core/hooks");
381
+ var import_jsx_runtime11 = require("react/jsx-runtime");
382
+ function NoiseSpheresNode({ id, selected, data, type }) {
383
+ const updateComputedData = (0, import_hooks9.useUpdateNodeComputedData)();
384
+ const module2 = (0, import_react9.useMemo)(() => new import_generator7.Spheres(), []);
385
+ const onPropertiesChange = (0, import_react9.useCallback)((properties) => {
386
+ Object.keys(properties).forEach((k) => module2[k] = properties[k].value);
387
+ updateComputedData(id, { module: module2 });
388
+ }, []);
389
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_layout8.NodeContainer, { id, selected, data, type, children: [
390
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(node_property_variables_default, { data, nodeId: id, onPropertiesChange }),
391
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_layout8.NodeTrackConnections, { handles: data.handles, nodeId: id, type: "target" })
392
+ ] });
393
+ }
394
+ var noise_spheres_node_default = NoiseSpheresNode;
395
+
396
+ // src/nodes/generators/noise-voronoi-node.tsx
397
+ var import_layout9 = require("@awesome-flow/core/layout");
398
+ var import_react10 = require("react");
399
+ var import_generator8 = require("libnoise-ts/module/generator");
400
+ var import_hooks10 = require("@awesome-flow/core/hooks");
401
+ var import_jsx_runtime12 = require("react/jsx-runtime");
402
+ function NoiseVoronoiNode({ id, selected, data, type }) {
403
+ const updateComputedData = (0, import_hooks10.useUpdateNodeComputedData)();
404
+ const onPropertiesChange = (0, import_react10.useCallback)(
405
+ (properties) => {
406
+ const module2 = new import_generator8.Voronoi(
407
+ properties.frequency.value,
408
+ properties.displacement.value,
409
+ properties.distance.value,
410
+ properties.seed.value
411
+ );
412
+ updateComputedData(id, { module: module2 });
413
+ },
414
+ []
415
+ );
416
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_layout9.NodeContainer, { id, selected, data, type, children: [
417
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(node_property_variables_default, { data, nodeId: id, onPropertiesChange }),
418
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_layout9.NodeTrackConnections, { handles: data.handles, nodeId: id, type: "target" })
419
+ ] });
420
+ }
421
+ var noise_voronoi_node_default = NoiseVoronoiNode;
422
+
423
+ // src/nodes/generators/position-const-node.tsx
424
+ var import_layout10 = require("@awesome-flow/core/layout");
425
+ var import_react11 = require("react");
426
+ var import_core4 = require("@mantine/core");
427
+ var import_hooks11 = require("@awesome-flow/core/hooks");
428
+ var import_jsx_runtime13 = require("react/jsx-runtime");
429
+ function PositionConstNode({ id, selected, data, type }) {
430
+ const position = data.position ?? { x: 0, y: 0, z: 0 };
431
+ const [x, setX] = (0, import_react11.useState)(position.x);
432
+ const [y, setY] = (0, import_react11.useState)(position.y);
433
+ const [z, setZ] = (0, import_react11.useState)(position.z);
434
+ const updateNodeData = (0, import_hooks11.useUpdateNodeData)();
435
+ const updateComputedData = (0, import_hooks11.useUpdateNodeComputedData)();
436
+ (0, import_react11.useEffect)(() => {
437
+ const position2 = { x, y, z };
438
+ updateNodeData(id, {
439
+ position: position2
440
+ });
441
+ updateComputedData(id, {
442
+ positions: [position2]
443
+ });
444
+ }, [x, y, z]);
445
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_layout10.NodeContainer, { id, selected, data, type, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core4.Stack, { children: [
446
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core4.Group, { children: [
447
+ "x: ",
448
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core4.NumberInput, { size: "xs", w: 100, value: x, onChange: (e) => setX(Number(e)) })
449
+ ] }),
450
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core4.Group, { children: [
451
+ "y: ",
452
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core4.NumberInput, { size: "xs", w: 100, value: y, onChange: (e) => setY(Number(e)) })
453
+ ] }),
454
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_core4.Group, { children: [
455
+ "z: ",
456
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core4.NumberInput, { size: "xs", w: 100, value: z, onChange: (e) => setZ(Number(e)) })
457
+ ] })
458
+ ] }) });
459
+ }
460
+ var position_const_node_default = PositionConstNode;
461
+
462
+ // src/nodes/generators/position-grid-node.tsx
463
+ var import_layout11 = require("@awesome-flow/core/layout");
464
+ var import_react12 = require("react");
465
+ var import_core5 = require("@mantine/core");
466
+ var import_hooks12 = require("@awesome-flow/core/hooks");
467
+ var import_jsx_runtime14 = require("react/jsx-runtime");
468
+ function PositionGridNode({ id, selected, data, type }) {
469
+ const [x, setX] = (0, import_react12.useState)(data.center?.x);
470
+ const [y, setY] = (0, import_react12.useState)(data.center?.y);
471
+ const [z, setZ] = (0, import_react12.useState)(data.center?.z);
472
+ const [radius, setRadius] = (0, import_react12.useState)(data.radius);
473
+ const updateNodeData = (0, import_hooks12.useUpdateNodeData)();
474
+ const updateComputedData = (0, import_hooks12.useUpdateNodeComputedData)();
475
+ (0, import_react12.useEffect)(() => {
476
+ updateNodeData(id, {
477
+ center: { x, y, z }
478
+ });
479
+ }, [x, y, z]);
480
+ (0, import_react12.useEffect)(() => {
481
+ updateNodeData(id, {
482
+ radius
483
+ });
484
+ }, [radius]);
485
+ (0, import_react12.useEffect)(() => {
486
+ const positions = [];
487
+ for (let i = -radius; i < radius; i++) {
488
+ for (let j = -radius; j < radius; j++) {
489
+ positions.push({ x: x + i, y: y + j, z });
490
+ }
491
+ }
492
+ updateComputedData(id, {
493
+ positions
494
+ });
495
+ }, [x, y, z, radius]);
496
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_layout11.NodeContainer, { id, selected, data, type, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core5.Stack, { children: [
497
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core5.Group, { children: [
498
+ "x: ",
499
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core5.NumberInput, { size: "xs", w: 100, value: x, onChange: (e) => setX(Number(e)) })
500
+ ] }),
501
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core5.Group, { children: [
502
+ "y: ",
503
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core5.NumberInput, { size: "xs", w: 100, value: y, onChange: (e) => setY(Number(e)) })
504
+ ] }),
505
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core5.Group, { children: [
506
+ "z: ",
507
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core5.NumberInput, { size: "xs", w: 100, value: z, onChange: (e) => setZ(Number(e)) })
508
+ ] }),
509
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_core5.Group, { children: [
510
+ "r: ",
511
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_core5.NumberInput, { size: "xs", w: 100, value: radius, onChange: (e) => setRadius(Number(e)) })
512
+ ] })
513
+ ] }) });
514
+ }
515
+ var position_grid_node_default = PositionGridNode;
516
+
517
+ // src/nodes/generators/variable-property-node.tsx
518
+ var import_layout12 = require("@awesome-flow/core/layout");
519
+ var import_react13 = require("react");
520
+ var import_core6 = require("@mantine/core");
521
+ var import_hooks13 = require("@awesome-flow/core/hooks");
522
+ var import_utils2 = require("@awesome-flow/core/utils");
523
+ var import_abstract3 = require("@awesome-flow/core/abstract");
524
+ var import_jsx_runtime15 = require("react/jsx-runtime");
525
+ function VariablePropertyNode({
526
+ id,
527
+ selected,
528
+ data,
529
+ type
530
+ }) {
531
+ const [options, setOptions] = (0, import_react13.useState)({});
532
+ const [selectedProperty, setSelectedProperty] = (0, import_react13.useState)(data.property);
533
+ const updateNodeData = (0, import_hooks13.useUpdateNodeData)();
534
+ const outgoing = (0, import_hooks13.useOutgoingNodes)(id);
535
+ const incoming = (0, import_hooks13.useIncomingNodeData)(id);
536
+ (0, import_react13.useEffect)(() => {
537
+ if (outgoing?.length) {
538
+ const { data: data2 } = outgoing[0];
539
+ const properties = (0, import_utils2.getObjectPropertyMap)(data2, import_abstract3.nodeDataPropertyExcept);
540
+ setOptions(properties);
541
+ if (!selectedProperty) {
542
+ const keys = Object.keys(properties);
543
+ if (keys.length) {
544
+ setSelectedProperty({
545
+ name: keys[0],
546
+ value: properties[keys[0]]
547
+ });
548
+ }
549
+ }
550
+ } else {
551
+ setSelectedProperty(null);
552
+ }
553
+ }, [outgoing]);
554
+ (0, import_react13.useEffect)(() => {
555
+ if (!incoming?.length && selectedProperty?.disabled) {
556
+ setSelectedProperty({ ...selectedProperty, disabled: false });
557
+ } else if (incoming?.length && selectedProperty) {
558
+ const incomingValue = incoming[0].value;
559
+ if (incomingValue !== void 0 && incomingValue !== null) {
560
+ setSelectedProperty({
561
+ name: selectedProperty.name,
562
+ value: incomingValue,
563
+ disabled: true
564
+ });
565
+ }
566
+ }
567
+ }, [incoming]);
568
+ (0, import_react13.useEffect)(() => {
569
+ if (selectedProperty) {
570
+ updateNodeData(id, { property: selectedProperty });
571
+ }
572
+ }, [selectedProperty]);
573
+ const onPropertyChange = (0, import_react13.useCallback)(
574
+ (selected2) => {
575
+ setSelectedProperty({
576
+ name: selected2,
577
+ value: options[selected2]
578
+ });
579
+ },
580
+ [options]
581
+ );
582
+ const onValueChange = (0, import_react13.useCallback)((name, value) => {
583
+ setSelectedProperty({
584
+ name,
585
+ value
586
+ });
587
+ }, []);
588
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_layout12.NodeContainer, { id, selected, data, type, children: [
589
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_core6.Stack, { align: "center", children: [
590
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
591
+ import_layout12.NodeCombobox,
592
+ {
593
+ options,
594
+ onChange: onPropertyChange,
595
+ selected: selectedProperty?.name,
596
+ hideListValues: true
597
+ }
598
+ ),
599
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(node_property_input_default, { property: selectedProperty, onChange: onValueChange })
600
+ ] }),
601
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_layout12.NodeTrackConnections, { handles: data.handles, nodeId: id })
602
+ ] });
603
+ }
604
+ var variable_property_node_default = VariablePropertyNode;
605
+
606
+ // src/nodes/generators/variable-value-node.tsx
607
+ var import_layout13 = require("@awesome-flow/core/layout");
608
+ var import_react14 = require("react");
609
+ var import_hooks14 = require("@awesome-flow/core/hooks");
610
+ var import_jsx_runtime16 = require("react/jsx-runtime");
611
+ function VariableValueNode({ id, selected, data, type }) {
612
+ const [value, setValue] = (0, import_react14.useState)(data.value || 0);
613
+ const updateNodeData = (0, import_hooks14.useUpdateNodeData)();
614
+ const onValueChange = (0, import_react14.useCallback)((newValue) => {
615
+ updateNodeData(id, { value: newValue });
616
+ setValue(newValue);
617
+ }, []);
618
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_layout13.NodeContainer, { id, selected, data, type, children: [
619
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(node_value_input_default, { value, onChange: onValueChange }),
620
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_layout13.NodeTrackConnections, { handles: data.handles, nodeId: id, type: "source" })
621
+ ] });
622
+ }
623
+ var variable_value_node_default = VariableValueNode;
624
+ // Annotate the CommonJS export names for ESM import in node:
625
+ 0 && (module.exports = {
626
+ NoiseBillowNode,
627
+ NoiseCheckerboardNode,
628
+ NoiseConstNode,
629
+ NoiseCylindersNode,
630
+ NoisePerlinNode,
631
+ NoiseRidgedMultiNode,
632
+ NoiseSimplexNode,
633
+ NoiseSpheresNode,
634
+ NoiseVoronoiNode,
635
+ PositionConstNode,
636
+ PositionGridNode,
637
+ VariablePropertyNode,
638
+ VariableValueNode
639
+ });
640
+ //# sourceMappingURL=index.cjs.map