@awesome-flow/noise 0.9.2 → 0.9.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.
Files changed (196) hide show
  1. package/dist/abstract/index.cjs +16 -29
  2. package/dist/abstract/index.d.cts +131 -121
  3. package/dist/abstract/index.d.cts.map +1 -0
  4. package/dist/abstract/index.d.ts +131 -121
  5. package/dist/abstract/index.d.ts.map +1 -0
  6. package/dist/abstract/index.js +8 -29
  7. package/dist/abstract-Db8fFoLp.cjs +1423 -0
  8. package/dist/abstract-Db8fFoLp.cjs.map +1 -0
  9. package/dist/abstract-Dhf_tSuO.js +1177 -0
  10. package/dist/abstract-Dhf_tSuO.js.map +1 -0
  11. package/dist/chunk-CUT6urMc.cjs +30 -0
  12. package/dist/generators-BzkwG_6g.js +353 -0
  13. package/dist/generators-BzkwG_6g.js.map +1 -0
  14. package/dist/generators-D3RjZdMN.cjs +413 -0
  15. package/dist/generators-D3RjZdMN.cjs.map +1 -0
  16. package/dist/groups-BIS2AF5M.cjs +32 -0
  17. package/dist/groups-BIS2AF5M.cjs.map +1 -0
  18. package/dist/groups-CH_lk8Aw.js +26 -0
  19. package/dist/groups-CH_lk8Aw.js.map +1 -0
  20. package/dist/index-B5F3AfVc.d.ts +1 -0
  21. package/dist/index-B9liqMk7.d.cts +106 -0
  22. package/dist/index-B9liqMk7.d.cts.map +1 -0
  23. package/dist/index-BLREDRDJ.d.cts +1 -0
  24. package/dist/index-BQGb02a-.d.cts +1 -0
  25. package/dist/index-Be7jjS77.d.ts +1 -0
  26. package/dist/index-C2UIRuQU.d.ts +56 -0
  27. package/dist/index-C2UIRuQU.d.ts.map +1 -0
  28. package/dist/index-C7p7kRl6.d.ts +106 -0
  29. package/dist/index-C7p7kRl6.d.ts.map +1 -0
  30. package/dist/index-CLcwj8U0.d.ts +1 -0
  31. package/dist/index-CUPkUUOR.d.ts +1 -0
  32. package/dist/index-CdUm_2Oy.d.cts +45 -0
  33. package/dist/index-CdUm_2Oy.d.cts.map +1 -0
  34. package/dist/index-CnGot0Ls.d.ts +26 -0
  35. package/dist/index-CnGot0Ls.d.ts.map +1 -0
  36. package/dist/index-CtCMUyZA.d.cts +1 -0
  37. package/dist/index-DAwMsCZ3.d.ts +1 -0
  38. package/dist/index-DHPGVj1Q.d.cts +56 -0
  39. package/dist/index-DHPGVj1Q.d.cts.map +1 -0
  40. package/dist/index-DOvrmvAP.d.cts +1 -0
  41. package/dist/index-Dh6J9gb5.d.cts +1 -0
  42. package/dist/index-Dpmi5zcN.d.cts +1 -0
  43. package/dist/index-DsrVbQfJ.d.cts +26 -0
  44. package/dist/index-DsrVbQfJ.d.cts.map +1 -0
  45. package/dist/index-Dun4VhYj.d.ts +10 -0
  46. package/dist/index-Dun4VhYj.d.ts.map +1 -0
  47. package/dist/index-Dyw_KDIi.d.ts +45 -0
  48. package/dist/index-Dyw_KDIi.d.ts.map +1 -0
  49. package/dist/index-I2m6W13H.d.ts +1 -0
  50. package/dist/index-QAtBiMxG.d.cts +1 -0
  51. package/dist/index-XpRnF8C9.d.cts +98 -0
  52. package/dist/index-XpRnF8C9.d.cts.map +1 -0
  53. package/dist/index-b3KxQSTX.d.ts +98 -0
  54. package/dist/index-b3KxQSTX.d.ts.map +1 -0
  55. package/dist/index-kr8Wk7v5.d.ts +1 -0
  56. package/dist/index-uyclP-_e.d.cts +10 -0
  57. package/dist/index-uyclP-_e.d.cts.map +1 -0
  58. package/dist/modifiers-DU7AkD-K.cjs +545 -0
  59. package/dist/modifiers-DU7AkD-K.cjs.map +1 -0
  60. package/dist/modifiers-MSA4z6Gq.js +479 -0
  61. package/dist/modifiers-MSA4z6Gq.js.map +1 -0
  62. package/dist/module-group-template-evi7UU-G.d.ts +12 -0
  63. package/dist/module-group-template-evi7UU-G.d.ts.map +1 -0
  64. package/dist/module-group-template-hN1W1MZD.d.cts +12 -0
  65. package/dist/module-group-template-hN1W1MZD.d.cts.map +1 -0
  66. package/dist/modules/index.cjs +2 -5
  67. package/dist/modules/index.d.cts +10 -5
  68. package/dist/modules/index.d.cts.map +1 -0
  69. package/dist/modules/index.d.ts +10 -5
  70. package/dist/modules/index.d.ts.map +1 -0
  71. package/dist/modules/index.js +3 -6
  72. package/dist/node-props-76LXd76e.d.ts +141 -0
  73. package/dist/node-props-76LXd76e.d.ts.map +1 -0
  74. package/dist/node-props-D-fSg180.d.cts +141 -0
  75. package/dist/node-props-D-fSg180.d.cts.map +1 -0
  76. package/dist/nodes/generators/index.cjs +12 -24
  77. package/dist/nodes/generators/index.d.cts +3 -27
  78. package/dist/nodes/generators/index.d.ts +3 -27
  79. package/dist/nodes/generators/index.js +3 -24
  80. package/dist/nodes/groups/index.cjs +2 -5
  81. package/dist/nodes/groups/index.d.cts +2 -7
  82. package/dist/nodes/groups/index.d.ts +2 -7
  83. package/dist/nodes/groups/index.js +3 -6
  84. package/dist/nodes/index.cjs +38 -75
  85. package/dist/nodes/index.d.cts +9 -13
  86. package/dist/nodes/index.d.ts +9 -13
  87. package/dist/nodes/index.js +8 -75
  88. package/dist/nodes/modifiers/index.cjs +12 -23
  89. package/dist/nodes/modifiers/index.d.cts +3 -12
  90. package/dist/nodes/modifiers/index.d.ts +3 -12
  91. package/dist/nodes/modifiers/index.js +4 -23
  92. package/dist/nodes/output/index.cjs +11 -17
  93. package/dist/nodes/output/index.d.cts +2 -13
  94. package/dist/nodes/output/index.d.ts +2 -13
  95. package/dist/nodes/output/index.js +8 -17
  96. package/dist/nodes/selectors/index.cjs +9 -13
  97. package/dist/nodes/selectors/index.d.cts +3 -11
  98. package/dist/nodes/selectors/index.d.ts +3 -11
  99. package/dist/nodes/selectors/index.js +8 -13
  100. package/dist/nodes/transformers/index.cjs +6 -13
  101. package/dist/nodes/transformers/index.d.cts +3 -17
  102. package/dist/nodes/transformers/index.d.ts +3 -17
  103. package/dist/nodes/transformers/index.js +3 -14
  104. package/dist/noise-select-template-BIc5lJ3B.d.ts +20 -0
  105. package/dist/noise-select-template-BIc5lJ3B.d.ts.map +1 -0
  106. package/dist/noise-select-template-DCaVwZ3-.d.cts +20 -0
  107. package/dist/noise-select-template-DCaVwZ3-.d.cts.map +1 -0
  108. package/dist/noise-terrace-template-0WFJalF_.d.cts +69 -0
  109. package/dist/noise-terrace-template-0WFJalF_.d.cts.map +1 -0
  110. package/dist/noise-terrace-template-li40jZuF.d.ts +69 -0
  111. package/dist/noise-terrace-template-li40jZuF.d.ts.map +1 -0
  112. package/dist/noise-turbulence-template-BhxPzE9y.d.ts +68 -0
  113. package/dist/noise-turbulence-template-BhxPzE9y.d.ts.map +1 -0
  114. package/dist/noise-turbulence-template-D1wvZo6-.d.cts +68 -0
  115. package/dist/noise-turbulence-template-D1wvZo6-.d.cts.map +1 -0
  116. package/dist/normalize-noise-module-CTxqByn9.js +20 -0
  117. package/dist/normalize-noise-module-CTxqByn9.js.map +1 -0
  118. package/dist/normalize-noise-module-U3fMmZRj.cjs +26 -0
  119. package/dist/normalize-noise-module-U3fMmZRj.cjs.map +1 -0
  120. package/dist/output-CsgQ-PfN.js +0 -0
  121. package/dist/output-DhHW36T8.cjs +0 -0
  122. package/dist/position-grid-template-B7YMhe83.d.cts +76 -0
  123. package/dist/position-grid-template-B7YMhe83.d.cts.map +1 -0
  124. package/dist/position-grid-template-QuIcXmat.d.ts +76 -0
  125. package/dist/position-grid-template-QuIcXmat.d.ts.map +1 -0
  126. package/dist/position-logger-template-Bj6c2m8v.d.ts +33 -0
  127. package/dist/position-logger-template-Bj6c2m8v.d.ts.map +1 -0
  128. package/dist/position-logger-template-DmcBLwwL.d.cts +33 -0
  129. package/dist/position-logger-template-DmcBLwwL.d.cts.map +1 -0
  130. package/dist/selectors-DOtoPc8O.cjs +0 -0
  131. package/dist/selectors-DPitHA56.js +0 -0
  132. package/dist/templates/generators/index.cjs +18 -30
  133. package/dist/templates/generators/index.d.cts +4 -45
  134. package/dist/templates/generators/index.d.ts +4 -45
  135. package/dist/templates/generators/index.js +9 -30
  136. package/dist/templates/groups/index.cjs +9 -12
  137. package/dist/templates/groups/index.d.cts +3 -7
  138. package/dist/templates/groups/index.d.ts +3 -7
  139. package/dist/templates/groups/index.js +9 -12
  140. package/dist/templates/index.cjs +44 -77
  141. package/dist/templates/index.d.cts +14 -9
  142. package/dist/templates/index.d.ts +14 -9
  143. package/dist/templates/index.js +14 -77
  144. package/dist/templates/modifiers/index.cjs +17 -28
  145. package/dist/templates/modifiers/index.d.cts +4 -41
  146. package/dist/templates/modifiers/index.d.ts +4 -41
  147. package/dist/templates/modifiers/index.js +9 -28
  148. package/dist/templates/output/index.cjs +12 -18
  149. package/dist/templates/output/index.d.cts +3 -19
  150. package/dist/templates/output/index.d.ts +3 -19
  151. package/dist/templates/output/index.js +9 -18
  152. package/dist/templates/selectors/index.cjs +10 -14
  153. package/dist/templates/selectors/index.d.cts +4 -13
  154. package/dist/templates/selectors/index.d.ts +4 -13
  155. package/dist/templates/selectors/index.js +9 -14
  156. package/dist/templates/transformers/index.cjs +13 -20
  157. package/dist/templates/transformers/index.d.cts +4 -4
  158. package/dist/templates/transformers/index.d.ts +4 -4
  159. package/dist/templates/transformers/index.js +9 -20
  160. package/dist/transformers-C-NV_u9j.cjs +324 -0
  161. package/dist/transformers-C-NV_u9j.cjs.map +1 -0
  162. package/dist/transformers-CbfR4wDy.js +0 -0
  163. package/dist/transformers-Cpxm1ER8.js +276 -0
  164. package/dist/transformers-Cpxm1ER8.js.map +1 -0
  165. package/dist/transformers-iRDXBonP.cjs +0 -0
  166. package/package.json +14 -15
  167. package/dist/chunk-36USJJC4.cjs +0 -576
  168. package/dist/chunk-4PQ4USYV.cjs +0 -1
  169. package/dist/chunk-DQE5NXY7.cjs +0 -911
  170. package/dist/chunk-FFQRP23R.cjs +0 -1
  171. package/dist/chunk-FMJZTXJQ.js +0 -576
  172. package/dist/chunk-JACBT4MS.cjs +0 -1
  173. package/dist/chunk-LKDSXT7I.cjs +0 -896
  174. package/dist/chunk-M26CSOHC.js +0 -911
  175. package/dist/chunk-N6YNJKLS.cjs +0 -1
  176. package/dist/chunk-NUA3VGOA.js +0 -896
  177. package/dist/chunk-OLJKWO2H.cjs +0 -1591
  178. package/dist/chunk-Q5FVGKKM.cjs +0 -1
  179. package/dist/chunk-R6TU3SBX.js +0 -49
  180. package/dist/chunk-SGHEOOLW.js +0 -19
  181. package/dist/chunk-UNMRBZ5X.cjs +0 -19
  182. package/dist/chunk-W4T6Q7A5.js +0 -1591
  183. package/dist/chunk-WOJTKQKO.cjs +0 -1
  184. package/dist/chunk-XC7VF5YC.cjs +0 -49
  185. package/dist/index-BZr1EROK.d.cts +0 -49
  186. package/dist/index-DzD3jbPF.d.ts +0 -49
  187. package/dist/node-props-D8SnrgWa.d.cts +0 -137
  188. package/dist/node-props-D8SnrgWa.d.ts +0 -137
  189. package/dist/noise-terrace-node-D2ezdTnC.d.cts +0 -22
  190. package/dist/noise-terrace-node-DW81ZQk6.d.ts +0 -22
  191. /package/dist/{chunk-2Y22M2Y4.js → generators-CEKtVh81.cjs} +0 -0
  192. /package/dist/{chunk-5ELMFIRV.js → generators-DUbGjGwn.js} +0 -0
  193. /package/dist/{chunk-RVWCBH7K.js → groups-7QhtZ7S3.js} +0 -0
  194. /package/dist/{chunk-SD3T3LFY.js → groups-_x04PMtP.cjs} +0 -0
  195. /package/dist/{chunk-TOYKGWYO.js → modifiers-BFuezug6.js} +0 -0
  196. /package/dist/{chunk-XZQQ6N3L.js → modifiers-BPTSn-15.cjs} +0 -0
@@ -0,0 +1,276 @@
1
+ import { HandlesIncomingDataStatus, NodePropertiesList } from "@awesome-flow/core/components";
2
+ import { useIncomingComputedData, useUpdateNodeComputedData, useUpdateNodeData } from "@awesome-flow/core/hooks";
3
+ import { NodeContainer } from "@awesome-flow/core/layout";
4
+ import { Displace, RotatePoint, ScalePoint, TranslatePoint, Turbulence } from "libnoise-simplex-ts";
5
+ import { useCallback, useEffect, useState } from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import { Group, NumberInput, Stack } from "@mantine/core";
8
+
9
+ //#region src/abstract/handle-types.ts
10
+ let NoiseHandleType = /* @__PURE__ */ function(NoiseHandleType$1) {
11
+ NoiseHandleType$1["texture"] = "texture";
12
+ NoiseHandleType$1["noise"] = "noise";
13
+ NoiseHandleType$1["position"] = "position";
14
+ NoiseHandleType$1["module"] = "module";
15
+ return NoiseHandleType$1;
16
+ }({});
17
+ let DisplacementHandle = /* @__PURE__ */ function(DisplacementHandle$1) {
18
+ DisplacementHandle$1["sourceModule"] = "source";
19
+ DisplacementHandle$1["xModule"] = "x-module";
20
+ DisplacementHandle$1["yModule"] = "y-module";
21
+ DisplacementHandle$1["zModule"] = "z-module";
22
+ DisplacementHandle$1["output"] = "output";
23
+ return DisplacementHandle$1;
24
+ }({});
25
+ let NoiseSourceControlHandle = /* @__PURE__ */ function(NoiseSourceControlHandle$1) {
26
+ NoiseSourceControlHandle$1["source"] = "source";
27
+ NoiseSourceControlHandle$1["control"] = "control";
28
+ NoiseSourceControlHandle$1["output"] = "output";
29
+ return NoiseSourceControlHandle$1;
30
+ }({});
31
+
32
+ //#endregion
33
+ //#region src/nodes/transformers/noise-displace-node.tsx
34
+ function NoiseDisplaceNode({ id, selected, data, type }) {
35
+ const updateComputedData = useUpdateNodeComputedData();
36
+ const onDataUpdated = useCallback((handleData) => {
37
+ const sourceModule = handleData[DisplacementHandle.sourceModule];
38
+ const xModule = handleData[DisplacementHandle.xModule];
39
+ const yModule = handleData[DisplacementHandle.yModule];
40
+ const zModule = handleData[DisplacementHandle.zModule];
41
+ if (sourceModule && xModule && yModule && zModule) {
42
+ const module = new Displace(sourceModule[0].module, xModule[0].module, yModule[0].module, zModule[0].module);
43
+ updateComputedData(id, { module });
44
+ }
45
+ }, [updateComputedData, id]);
46
+ return /* @__PURE__ */ jsx(NodeContainer, {
47
+ id,
48
+ selected,
49
+ data,
50
+ type,
51
+ children: /* @__PURE__ */ jsx(HandlesIncomingDataStatus, {
52
+ nodeId: id,
53
+ handles: data.handles,
54
+ onDataUpdated,
55
+ groupBy: "dataId",
56
+ type: "target",
57
+ resetComputedData: true
58
+ })
59
+ });
60
+ }
61
+ var noise_displace_node_default = NoiseDisplaceNode;
62
+
63
+ //#endregion
64
+ //#region src/nodes/transformers/noise-rotate-point-node.tsx
65
+ function NoiseRotatePointNode({ id, selected, data, type }) {
66
+ const [xAngle, setXAngle] = useState(data.xAngle);
67
+ const [yAngle, setYAngle] = useState(data.yAngle);
68
+ const [zAngle, setZAngle] = useState(data.zAngle);
69
+ const incoming = useIncomingComputedData(id);
70
+ const updateNodeData = useUpdateNodeData();
71
+ const updateComputedData = useUpdateNodeComputedData();
72
+ useEffect(() => {
73
+ if (incoming?.length) {
74
+ const module = new RotatePoint(incoming[0].module, xAngle, yAngle, zAngle);
75
+ updateComputedData(id, { module });
76
+ }
77
+ updateNodeData(id, {
78
+ xAngle,
79
+ yAngle,
80
+ zAngle
81
+ });
82
+ }, [
83
+ id,
84
+ updateComputedData,
85
+ updateNodeData,
86
+ incoming,
87
+ xAngle,
88
+ yAngle,
89
+ zAngle
90
+ ]);
91
+ return /* @__PURE__ */ jsx(NodeContainer, {
92
+ id,
93
+ selected,
94
+ data,
95
+ type,
96
+ children: /* @__PURE__ */ jsxs(Stack, { children: [
97
+ /* @__PURE__ */ jsxs(Group, { children: ["X Angle:", /* @__PURE__ */ jsx(NumberInput, {
98
+ size: "xs",
99
+ w: 100,
100
+ value: xAngle,
101
+ onChange: (e) => setXAngle(Number(e)),
102
+ step: .01
103
+ })] }),
104
+ /* @__PURE__ */ jsxs(Group, { children: ["Y Angle:", /* @__PURE__ */ jsx(NumberInput, {
105
+ size: "xs",
106
+ w: 100,
107
+ value: yAngle,
108
+ onChange: (e) => setYAngle(Number(e)),
109
+ step: .01
110
+ })] }),
111
+ /* @__PURE__ */ jsxs(Group, { children: ["Z Angle:", /* @__PURE__ */ jsx(NumberInput, {
112
+ size: "xs",
113
+ w: 100,
114
+ value: zAngle,
115
+ onChange: (e) => setZAngle(Number(e)),
116
+ step: .01
117
+ })] })
118
+ ] })
119
+ });
120
+ }
121
+ var noise_rotate_point_node_default = NoiseRotatePointNode;
122
+
123
+ //#endregion
124
+ //#region src/nodes/transformers/noise-scale-point-node.tsx
125
+ function NoiseScalePointNode({ id, selected, data, type }) {
126
+ const [xScale, setXScale] = useState(data.xScale);
127
+ const [yScale, setYScale] = useState(data.yScale);
128
+ const [zScale, setZScale] = useState(data.zScale);
129
+ const incoming = useIncomingComputedData(id);
130
+ const updateNodeData = useUpdateNodeData();
131
+ const updateComputedData = useUpdateNodeComputedData();
132
+ useEffect(() => {
133
+ if (incoming?.length) {
134
+ const module = new ScalePoint(incoming[0].module, xScale, yScale, zScale);
135
+ updateComputedData(id, { module });
136
+ }
137
+ updateNodeData(id, {
138
+ xScale,
139
+ yScale,
140
+ zScale
141
+ });
142
+ }, [
143
+ id,
144
+ incoming,
145
+ updateComputedData,
146
+ updateNodeData,
147
+ xScale,
148
+ yScale,
149
+ zScale
150
+ ]);
151
+ return /* @__PURE__ */ jsx(NodeContainer, {
152
+ id,
153
+ selected,
154
+ data,
155
+ type,
156
+ children: /* @__PURE__ */ jsxs(Stack, { children: [
157
+ /* @__PURE__ */ jsxs(Group, { children: ["X Scale:", /* @__PURE__ */ jsx(NumberInput, {
158
+ size: "xs",
159
+ w: 100,
160
+ value: xScale,
161
+ onChange: (e) => setXScale(Number(e)),
162
+ step: .01
163
+ })] }),
164
+ /* @__PURE__ */ jsxs(Group, { children: ["Y Scale:", /* @__PURE__ */ jsx(NumberInput, {
165
+ size: "xs",
166
+ w: 100,
167
+ value: yScale,
168
+ onChange: (e) => setYScale(Number(e)),
169
+ step: .01
170
+ })] }),
171
+ /* @__PURE__ */ jsxs(Group, { children: ["Z Scale:", /* @__PURE__ */ jsx(NumberInput, {
172
+ size: "xs",
173
+ w: 100,
174
+ value: zScale,
175
+ onChange: (e) => setZScale(Number(e)),
176
+ step: .01
177
+ })] })
178
+ ] })
179
+ });
180
+ }
181
+ var noise_scale_point_node_default = NoiseScalePointNode;
182
+
183
+ //#endregion
184
+ //#region src/nodes/transformers/noise-translate-point-node.tsx
185
+ function NoiseTranslatePointNode({ id, selected, data, type }) {
186
+ const [translateX, setTranslateX] = useState(data.translateX);
187
+ const [translateY, setTranslateY] = useState(data.translateY);
188
+ const [translateZ, setTranslateZ] = useState(data.translateZ);
189
+ const incoming = useIncomingComputedData(id);
190
+ const updateNodeData = useUpdateNodeData();
191
+ const updateComputedData = useUpdateNodeComputedData();
192
+ useEffect(() => {
193
+ if (incoming?.length) {
194
+ const module = new TranslatePoint(incoming[0].module, translateX, translateY, translateZ);
195
+ updateComputedData(id, { module });
196
+ }
197
+ updateNodeData(id, {
198
+ translateX,
199
+ translateY,
200
+ translateZ
201
+ });
202
+ }, [
203
+ id,
204
+ incoming,
205
+ translateX,
206
+ translateY,
207
+ translateZ,
208
+ updateComputedData,
209
+ updateNodeData
210
+ ]);
211
+ return /* @__PURE__ */ jsx(NodeContainer, {
212
+ id,
213
+ selected,
214
+ data,
215
+ type,
216
+ children: /* @__PURE__ */ jsxs(Stack, { children: [
217
+ /* @__PURE__ */ jsxs(Group, { children: ["Translate X:", /* @__PURE__ */ jsx(NumberInput, {
218
+ size: "xs",
219
+ w: 100,
220
+ value: translateX,
221
+ onChange: (e) => setTranslateX(Number(e)),
222
+ step: 1
223
+ })] }),
224
+ /* @__PURE__ */ jsxs(Group, { children: ["Translate Y:", /* @__PURE__ */ jsx(NumberInput, {
225
+ size: "xs",
226
+ w: 100,
227
+ value: translateY,
228
+ onChange: (e) => setTranslateY(Number(e)),
229
+ step: 1
230
+ })] }),
231
+ /* @__PURE__ */ jsxs(Group, { children: ["Translate Z:", /* @__PURE__ */ jsx(NumberInput, {
232
+ size: "xs",
233
+ w: 100,
234
+ value: translateZ,
235
+ onChange: (e) => setTranslateZ(Number(e)),
236
+ step: 1
237
+ })] })
238
+ ] })
239
+ });
240
+ }
241
+ var noise_translate_point_node_default = NoiseTranslatePointNode;
242
+
243
+ //#endregion
244
+ //#region src/nodes/transformers/noise-turbulence-node.tsx
245
+ function NoiseTurbulenceNode({ id, selected, data, type }) {
246
+ const [properties, setProperties] = useState(null);
247
+ const incoming = useIncomingComputedData(id);
248
+ const updateComputedData = useUpdateNodeComputedData();
249
+ useEffect(() => {
250
+ if (incoming?.length && properties) {
251
+ const module = new Turbulence(incoming[0].module, properties.frequency.value, properties.power.value, properties.roughness.value, properties.seed.value);
252
+ updateComputedData(id, { module });
253
+ }
254
+ }, [
255
+ id,
256
+ incoming,
257
+ properties,
258
+ updateComputedData
259
+ ]);
260
+ return /* @__PURE__ */ jsx(NodeContainer, {
261
+ id,
262
+ selected,
263
+ data,
264
+ type,
265
+ children: /* @__PURE__ */ jsx(NodePropertiesList, {
266
+ data,
267
+ nodeId: id,
268
+ onPropertiesChange: setProperties
269
+ })
270
+ });
271
+ }
272
+ var noise_turbulence_node_default = NoiseTurbulenceNode;
273
+
274
+ //#endregion
275
+ export { DisplacementHandle, NoiseHandleType, NoiseSourceControlHandle, noise_displace_node_default, noise_rotate_point_node_default, noise_scale_point_node_default, noise_translate_point_node_default, noise_turbulence_node_default };
276
+ //# sourceMappingURL=transformers-Cpxm1ER8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformers-Cpxm1ER8.js","names":["handleData: Record<DisplacementHandle, ComputedModuleData>"],"sources":["../src/abstract/handle-types.ts","../src/nodes/transformers/noise-displace-node.tsx","../src/nodes/transformers/noise-rotate-point-node.tsx","../src/nodes/transformers/noise-scale-point-node.tsx","../src/nodes/transformers/noise-translate-point-node.tsx","../src/nodes/transformers/noise-turbulence-node.tsx"],"sourcesContent":["import { CustomNodeHandle } from '@awesome-flow/core/abstract';\n\nexport enum NoiseHandleType {\n texture = 'texture',\n noise = 'noise',\n position = 'position',\n module = 'module'\n}\n\nexport enum DisplacementHandle {\n sourceModule = 'source',\n xModule = 'x-module',\n yModule = 'y-module',\n zModule = 'z-module',\n output = 'output'\n}\n\nexport enum NoiseSourceControlHandle {\n source = 'source',\n control = 'control',\n output = 'output'\n}\n\nexport type DisplacementModuleHandle = CustomNodeHandle & {\n dataId: DisplacementHandle;\n};\n\nexport type NoiseSourceControlModuleHandle = CustomNodeHandle & {\n dataId: NoiseSourceControlHandle;\n};\n","import { BasicNodeData } from '@awesome-flow/core/abstract';\nimport { HandlesIncomingDataStatus } from '@awesome-flow/core/components';\nimport { useUpdateNodeComputedData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { Displace } from 'libnoise-simplex-ts';\nimport { useCallback } from 'react';\nimport { DisplacementHandle } from '../../abstract/handle-types';\nimport { ComputedModuleData } from '../../abstract/node-props';\n\nfunction NoiseDisplaceNode({ id, selected, data, type }: NodeProps<Node<BasicNodeData>>) {\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n\n const onDataUpdated = useCallback(\n (handleData: Record<DisplacementHandle, ComputedModuleData>) => {\n const sourceModule = handleData[DisplacementHandle.sourceModule];\n const xModule = handleData[DisplacementHandle.xModule];\n const yModule = handleData[DisplacementHandle.yModule];\n const zModule = handleData[DisplacementHandle.zModule];\n\n if (sourceModule && xModule && yModule && zModule) {\n const module = new Displace(\n sourceModule[0].module,\n xModule[0].module,\n yModule[0].module,\n zModule[0].module\n );\n\n updateComputedData(id, { module });\n }\n },\n [updateComputedData, id]\n );\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <HandlesIncomingDataStatus\n nodeId={id}\n handles={data.handles}\n onDataUpdated={onDataUpdated}\n groupBy=\"dataId\"\n type=\"target\"\n resetComputedData\n />\n </NodeContainer>\n );\n}\n\nexport default NoiseDisplaceNode;\n","import {\n useIncomingComputedData,\n useUpdateNodeComputedData,\n useUpdateNodeData\n} from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Group, NumberInput, Stack } from '@mantine/core';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { RotatePoint } from 'libnoise-simplex-ts';\nimport { useEffect, useState } from 'react';\nimport { ComputedModuleData, NodeRotatePointNoiseData } from '../../abstract/node-props';\n\nfunction NoiseRotatePointNode({\n id,\n selected,\n data,\n type\n}: NodeProps<Node<NodeRotatePointNoiseData>>) {\n const [xAngle, setXAngle] = useState(data.xAngle);\n const [yAngle, setYAngle] = useState(data.yAngle);\n const [zAngle, setZAngle] = useState(data.zAngle);\n\n const incoming = useIncomingComputedData<ComputedModuleData>(id);\n\n const updateNodeData = useUpdateNodeData<NodeRotatePointNoiseData>();\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n\n useEffect(() => {\n if (incoming?.length) {\n const module = new RotatePoint(incoming[0].module, xAngle, yAngle, zAngle);\n updateComputedData(id, { module });\n }\n\n updateNodeData(id, { xAngle, yAngle, zAngle });\n }, [id, updateComputedData, updateNodeData, incoming, xAngle, yAngle, zAngle]);\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <Stack>\n <Group>\n X Angle:\n <NumberInput\n size=\"xs\"\n w={100}\n value={xAngle}\n onChange={(e) => setXAngle(Number(e))}\n step={0.01}\n />\n </Group>\n <Group>\n Y Angle:\n <NumberInput\n size=\"xs\"\n w={100}\n value={yAngle}\n onChange={(e) => setYAngle(Number(e))}\n step={0.01}\n />\n </Group>\n <Group>\n Z Angle:\n <NumberInput\n size=\"xs\"\n w={100}\n value={zAngle}\n onChange={(e) => setZAngle(Number(e))}\n step={0.01}\n />\n </Group>\n </Stack>\n </NodeContainer>\n );\n}\n\nexport default NoiseRotatePointNode;\n","import {\n useIncomingComputedData,\n useUpdateNodeComputedData,\n useUpdateNodeData\n} from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Group, NumberInput, Stack } from '@mantine/core';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { ScalePoint } from 'libnoise-simplex-ts';\nimport { useEffect, useState } from 'react';\nimport { ComputedModuleData, NodeScalePointNoiseData } from '../../abstract/node-props';\n\nfunction NoiseScalePointNode({\n id,\n selected,\n data,\n type\n}: NodeProps<Node<NodeScalePointNoiseData>>) {\n const [xScale, setXScale] = useState(data.xScale);\n const [yScale, setYScale] = useState(data.yScale);\n const [zScale, setZScale] = useState(data.zScale);\n\n const incoming = useIncomingComputedData<ComputedModuleData>(id);\n\n const updateNodeData = useUpdateNodeData<NodeScalePointNoiseData>();\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n\n useEffect(() => {\n if (incoming?.length) {\n const module = new ScalePoint(incoming[0].module, xScale, yScale, zScale);\n updateComputedData(id, { module });\n }\n\n updateNodeData(id, { xScale, yScale, zScale });\n }, [id, incoming, updateComputedData, updateNodeData, xScale, yScale, zScale]);\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <Stack>\n <Group>\n X Scale:\n <NumberInput\n size=\"xs\"\n w={100}\n value={xScale}\n onChange={(e) => setXScale(Number(e))}\n step={0.01}\n />\n </Group>\n <Group>\n Y Scale:\n <NumberInput\n size=\"xs\"\n w={100}\n value={yScale}\n onChange={(e) => setYScale(Number(e))}\n step={0.01}\n />\n </Group>\n <Group>\n Z Scale:\n <NumberInput\n size=\"xs\"\n w={100}\n value={zScale}\n onChange={(e) => setZScale(Number(e))}\n step={0.01}\n />\n </Group>\n </Stack>\n </NodeContainer>\n );\n}\n\nexport default NoiseScalePointNode;\n","import {\n useIncomingComputedData,\n useUpdateNodeComputedData,\n useUpdateNodeData\n} from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Group, NumberInput, Stack } from '@mantine/core';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { TranslatePoint } from 'libnoise-simplex-ts';\nimport { useEffect, useState } from 'react';\nimport { ComputedModuleData, NodeTranslatePointNoiseData } from '../../abstract/node-props';\n\nfunction NoiseTranslatePointNode({\n id,\n selected,\n data,\n type\n}: NodeProps<Node<NodeTranslatePointNoiseData>>) {\n const [translateX, setTranslateX] = useState(data.translateX);\n const [translateY, setTranslateY] = useState(data.translateY);\n const [translateZ, setTranslateZ] = useState(data.translateZ);\n\n const incoming = useIncomingComputedData<ComputedModuleData>(id);\n\n const updateNodeData = useUpdateNodeData<NodeTranslatePointNoiseData>();\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n\n useEffect(() => {\n if (incoming?.length) {\n const module = new TranslatePoint(incoming[0].module, translateX, translateY, translateZ);\n updateComputedData(id, { module });\n }\n\n updateNodeData(id, { translateX, translateY, translateZ });\n }, [id, incoming, translateX, translateY, translateZ, updateComputedData, updateNodeData]);\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <Stack>\n <Group>\n Translate X:\n <NumberInput\n size=\"xs\"\n w={100}\n value={translateX}\n onChange={(e) => setTranslateX(Number(e))}\n step={1}\n />\n </Group>\n <Group>\n Translate Y:\n <NumberInput\n size=\"xs\"\n w={100}\n value={translateY}\n onChange={(e) => setTranslateY(Number(e))}\n step={1}\n />\n </Group>\n <Group>\n Translate Z:\n <NumberInput\n size=\"xs\"\n w={100}\n value={translateZ}\n onChange={(e) => setTranslateZ(Number(e))}\n step={1}\n />\n </Group>\n </Stack>\n </NodeContainer>\n );\n}\n\nexport default NoiseTranslatePointNode;\n","import { NodePropertiesList } from '@awesome-flow/core/components';\nimport { useIncomingComputedData, useUpdateNodeComputedData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { Turbulence } from 'libnoise-simplex-ts';\nimport { useEffect, useState } from 'react';\nimport { ComputedModuleData, NodeTurbulenceNoiseData } from '../../abstract/node-props';\n\nfunction NoiseTurbulenceNode({\n id,\n selected,\n data,\n type\n}: NodeProps<Node<NodeTurbulenceNoiseData>>) {\n const [properties, setProperties] = useState(null);\n\n const incoming = useIncomingComputedData<ComputedModuleData>(id);\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n\n useEffect(() => {\n if (incoming?.length && properties) {\n const module = new Turbulence(\n incoming[0].module,\n properties.frequency.value,\n properties.power.value,\n properties.roughness.value,\n properties.seed.value\n );\n updateComputedData(id, { module });\n }\n }, [id, incoming, properties, updateComputedData]);\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <NodePropertiesList data={data} nodeId={id} onPropertiesChange={setProperties} />\n </NodeContainer>\n );\n}\n\nexport default NoiseTurbulenceNode;\n"],"mappings":"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"}
File without changes
package/package.json CHANGED
@@ -1,20 +1,19 @@
1
1
  {
2
2
  "name": "@awesome-flow/noise",
3
- "version": "0.9.2",
3
+ "version": "0.9.4",
4
4
  "description": "The Awesome Flow package for noise. Provides basic components to define noise-based flows.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
7
7
  "scripts": {
8
- "build:dev": "npx tsc -p ./tsconfig.build.json",
9
- "build:clean": "npx rimraf ./dist && npm run build:dev",
10
- "build:prod": "npx rimraf ./dist && npx tsup --env.NODE_ENV production",
8
+ "build": "npx tsdown && npx copyfiles -u 1 ./src/styles.css ./dist",
9
+ "build:clean": "npx rimraf ./dist && npm run build",
11
10
  "prettier:write": "npx prettier --write \"**/*.{ts,tsx}\"",
12
11
  "typecheck": "npx attw $(npm pack) --ignore-rules no-resolution",
13
12
  "ts": "npx tsc --noEmit --incremental",
14
13
  "ts:watch": "npx tsc --noEmit --incremental --watch"
15
14
  },
16
15
  "dependencies": {
17
- "@awesome-flow/core": "^0.9.2",
16
+ "@awesome-flow/core": "^0.9.4",
18
17
  "alea": "^1.0.1",
19
18
  "libnoise-simplex-ts": "^0.0.2",
20
19
  "simplex-noise": "^4.0.3"
@@ -32,15 +31,15 @@
32
31
  },
33
32
  "devDependencies": {
34
33
  "@dagrejs/dagre": "^1.1.4",
35
- "@mantine/core": "^7.16.2",
36
- "@mantine/form": "^7.16.2",
37
- "@mantine/hooks": "^7.16.2",
38
- "@tabler/icons-react": "^3.29.0",
39
- "@xyflow/react": "^12.4.2",
40
- "@xyflow/system": "^0.0.50",
41
- "react": "^19.0.0",
42
- "react-dom": "^19.0.0",
43
- "zustand": "^5.0.3"
34
+ "@mantine/core": "^8.0.1",
35
+ "@mantine/form": "^8.0.1",
36
+ "@mantine/hooks": "^8.0.1",
37
+ "@tabler/icons-react": "^3.33.0",
38
+ "@xyflow/react": "^12.6.4",
39
+ "@xyflow/system": "^0.0.61",
40
+ "react": "^19.1.0",
41
+ "react-dom": "^19.1.0",
42
+ "zustand": "^5.0.5"
44
43
  },
45
44
  "exports": {
46
45
  "./abstract": {
@@ -121,5 +120,5 @@
121
120
  "url": "https://github.com/privatebytes/awesome-flow/issues"
122
121
  },
123
122
  "homepage": "https://github.com/privatebytes/awesome-flow#readme",
124
- "gitHead": "54aea4c1ae9ec6802b02eb8014dec1c82c6c137a"
123
+ "gitHead": "59a60174dea02af0a55692d3e1e3ae910c7f249d"
125
124
  }