@make-pictures/kits 0.0.0-stage → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +49 -2
  3. package/dist/chunk-3SUIELJV.mjs +601 -0
  4. package/dist/chunk-4Z3G6FPZ.mjs +485 -0
  5. package/dist/chunk-AHA23PHC.mjs +678 -0
  6. package/dist/chunk-CW623YVB.mjs +1124 -0
  7. package/dist/chunk-NNA7XXQB.mjs +1059 -0
  8. package/dist/chunk-S4CHTWOS.mjs +1237 -0
  9. package/dist/chunk-WAA7P5FT.mjs +912 -0
  10. package/dist/data-storytelling/AnimatedBarRace.d.ts +37 -0
  11. package/dist/data-storytelling/MetricComparisonCard.d.ts +29 -0
  12. package/dist/data-storytelling/TimelineTrack.d.ts +29 -0
  13. package/dist/data-storytelling/index.cjs +1224 -0
  14. package/dist/data-storytelling/index.d.ts +3 -0
  15. package/dist/data-storytelling/index.mjs +10 -0
  16. package/dist/index.cjs +6010 -0
  17. package/dist/index.d.ts +7 -0
  18. package/dist/index.mjs +108 -0
  19. package/dist/isometric-3d/IsometricStudioEnvironment.d.ts +8 -0
  20. package/dist/isometric-3d/Stylized3DCharacter.d.ts +29 -0
  21. package/dist/isometric-3d/index.cjs +611 -0
  22. package/dist/isometric-3d/index.d.ts +2 -0
  23. package/dist/isometric-3d/index.mjs +8 -0
  24. package/dist/kinetic-typography/AnimatedMetricCounter.d.ts +36 -0
  25. package/dist/kinetic-typography/ImpactKeywordCard.d.ts +31 -0
  26. package/dist/kinetic-typography/WordByWordStage.d.ts +47 -0
  27. package/dist/kinetic-typography/index.cjs +665 -0
  28. package/dist/kinetic-typography/index.d.ts +3 -0
  29. package/dist/kinetic-typography/index.mjs +14 -0
  30. package/dist/motion-diagrams-2d/CameraRig.d.ts +34 -0
  31. package/dist/motion-diagrams-2d/CodePayloadToast.d.ts +14 -0
  32. package/dist/motion-diagrams-2d/DataFlowEdge.d.ts +24 -0
  33. package/dist/motion-diagrams-2d/NodeBox.d.ts +65 -0
  34. package/dist/motion-diagrams-2d/SystemNode.d.ts +21 -0
  35. package/dist/motion-diagrams-2d/index.cjs +1137 -0
  36. package/dist/motion-diagrams-2d/index.d.ts +5 -0
  37. package/dist/motion-diagrams-2d/index.mjs +28 -0
  38. package/dist/paper-diorama-3d/ImageCutout3D.d.ts +47 -0
  39. package/dist/paper-diorama-3d/PaperCutout3D.d.ts +62 -0
  40. package/dist/paper-diorama-3d/PaperPopUpBook3D.d.ts +51 -0
  41. package/dist/paper-diorama-3d/PaperStageLighting3D.d.ts +12 -0
  42. package/dist/paper-diorama-3d/index.cjs +1087 -0
  43. package/dist/paper-diorama-3d/index.d.ts +4 -0
  44. package/dist/paper-diorama-3d/index.mjs +34 -0
  45. package/dist/product-frames/BrowserFrame.d.ts +28 -0
  46. package/dist/product-frames/PhoneFrame.d.ts +23 -0
  47. package/dist/product-frames/ScreenSpotlightOverlay.d.ts +34 -0
  48. package/dist/product-frames/frameMedia.d.ts +24 -0
  49. package/dist/product-frames/index.cjs +507 -0
  50. package/dist/product-frames/index.d.ts +8 -0
  51. package/dist/product-frames/index.mjs +12 -0
  52. package/dist/vfx/CinematicLensOverlay.d.ts +29 -0
  53. package/dist/vfx/ParticleField.d.ts +18 -0
  54. package/dist/vfx/SceneTransition.d.ts +24 -0
  55. package/dist/vfx/StagePostProcessing3D.d.ts +44 -0
  56. package/dist/vfx/index.cjs +933 -0
  57. package/dist/vfx/index.d.ts +4 -0
  58. package/dist/vfx/index.mjs +14 -0
  59. package/package.json +95 -4
@@ -0,0 +1,611 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // packages/kits/src/isometric-3d/index.ts
21
+ var isometric_3d_exports = {};
22
+ __export(isometric_3d_exports, {
23
+ IsometricStudioEnvironment: () => IsometricStudioEnvironment,
24
+ Stylized3DCharacter: () => Stylized3DCharacter
25
+ });
26
+ module.exports = __toCommonJS(isometric_3d_exports);
27
+
28
+ // packages/kits/src/isometric-3d/Stylized3DCharacter.tsx
29
+ var import_remotion = require("remotion");
30
+ var import_jsx_runtime = require("react/jsx-runtime");
31
+ var Stylized3DCharacter = ({
32
+ position,
33
+ rotationY,
34
+ primaryColor,
35
+ accentColor,
36
+ speechEnergy,
37
+ speakingWeight,
38
+ gestureWeights,
39
+ enterFrame = 2,
40
+ headYawOffset = 0
41
+ }) => {
42
+ const frame = (0, import_remotion.useCurrentFrame)();
43
+ const { fps } = (0, import_remotion.useVideoConfig)();
44
+ const enterProgress = (0, import_remotion.spring)({
45
+ frame: frame - enterFrame,
46
+ fps,
47
+ config: { damping: 200, stiffness: 55, mass: 1.2 }
48
+ });
49
+ const isShrug = gestureWeights.shrug ?? 0;
50
+ const isPresentR = gestureWeights.presentRight ?? 0;
51
+ const isPresentL = gestureWeights.presentLeft ?? 0;
52
+ const isCelebrate = gestureWeights.celebrate ?? 0;
53
+ const isNod = gestureWeights.listenNod ?? 0;
54
+ const breath = Math.sin(frame * 0.038) * 0.012;
55
+ const talkCadenceA = Math.sin(frame * 0.048) * speakingWeight;
56
+ const talkCadenceB = Math.cos(frame * 0.038) * speakingWeight;
57
+ const headPitch = -0.04 * speakingWeight + Math.sin(frame * 0.052) * 0.035 * speakingWeight + isNod * Math.sin(frame * 0.055) * 0.045 + isShrug * -0.06;
58
+ const headRoll = isShrug * 0.1 + Math.sin(frame * 0.042) * 0.03 * speakingWeight;
59
+ const headYaw = headYawOffset + Math.cos(frame * 0.036) * 0.035 * speakingWeight;
60
+ const leftShoulderX = -0.12 + isShrug * -0.58 + isPresentL * -0.82 + isPresentR * -0.25 + isCelebrate * -0.92 + speakingWeight * -0.18 + talkCadenceA * 0.08;
61
+ const leftShoulderZ = -0.12 + isShrug * -0.42 + isPresentL * -0.3 + isCelebrate * -0.35 + speakingWeight * -0.08;
62
+ const leftElbowX = -0.24 + isShrug * -0.72 + isPresentL * -0.45 + isCelebrate * -0.55 + speakingWeight * -0.26 + talkCadenceB * 0.07;
63
+ const rightShoulderX = -0.12 + isShrug * -0.58 + isPresentR * -0.82 + isPresentL * -0.25 + isCelebrate * -0.92 + speakingWeight * -0.18 - talkCadenceA * 0.08;
64
+ const rightShoulderZ = 0.12 + isShrug * 0.42 + isPresentR * 0.3 + isCelebrate * 0.35 + speakingWeight * 0.08;
65
+ const rightElbowX = -0.24 + isShrug * -0.72 + isPresentR * -0.45 + isCelebrate * -0.55 + speakingWeight * -0.26 - talkCadenceB * 0.07;
66
+ const torsoPitch = speakingWeight * 0.035 - isShrug * 0.03;
67
+ const torsoYaw = isPresentL * 0.12 - isPresentR * 0.12;
68
+ const scale = (0, import_remotion.interpolate)(enterProgress, [0, 1], [1e-3, 1]);
69
+ const auraScale = 1 + speakingWeight * 0.08;
70
+ const clampedSpeak = Math.max(0, Math.min(1, speakingWeight));
71
+ const floorRingColor = (0, import_remotion.interpolateColors)(
72
+ clampedSpeak,
73
+ [0, 1],
74
+ [primaryColor, accentColor]
75
+ );
76
+ const activeWhiteMix = (0, import_remotion.interpolateColors)(
77
+ clampedSpeak,
78
+ [0, 1],
79
+ [accentColor, "#FFFFFF"]
80
+ );
81
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
82
+ "group",
83
+ {
84
+ position,
85
+ rotation: [0, rotationY, 0],
86
+ scale: [scale, scale, scale],
87
+ children: [
88
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
89
+ "mesh",
90
+ {
91
+ position: [0, 0.02, 0],
92
+ rotation: [-Math.PI / 2, 0, 0],
93
+ scale: [auraScale, auraScale, 1],
94
+ children: [
95
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("ringGeometry", { args: [0.42, 0.56, 48] }),
96
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
97
+ "meshBasicMaterial",
98
+ {
99
+ color: floorRingColor,
100
+ transparent: true,
101
+ opacity: 0.26 + speakingWeight * 0.46
102
+ }
103
+ )
104
+ ]
105
+ }
106
+ ),
107
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [0, 0.015, 0], rotation: [-Math.PI / 2, 0, 0], children: [
108
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("circleGeometry", { args: [0.42, 48] }),
109
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
110
+ "meshBasicMaterial",
111
+ {
112
+ color: primaryColor,
113
+ transparent: true,
114
+ opacity: 0.08 + speakingWeight * 0.14
115
+ }
116
+ )
117
+ ] }),
118
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("group", { position: [-0.16, 0.9, 0], children: [
119
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { children: [
120
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("sphereGeometry", { args: [0.085, 24, 24] }),
121
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: "#1E293B", roughness: 0.35, metalness: 0.4 })
122
+ ] }),
123
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [0, -0.22, 0], children: [
124
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("capsuleGeometry", { args: [0.075, 0.28, 16, 24] }),
125
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: "#334155", roughness: 0.3, metalness: 0.2 })
126
+ ] }),
127
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [0, -0.44, 0], children: [
128
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("sphereGeometry", { args: [0.08, 24, 24] }),
129
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: accentColor, roughness: 0.25, metalness: 0.3 })
130
+ ] }),
131
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [0, -0.66, 0], children: [
132
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("capsuleGeometry", { args: [0.068, 0.28, 16, 24] }),
133
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: "#334155", roughness: 0.3, metalness: 0.2 })
134
+ ] }),
135
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [0, -0.84, 0.06], rotation: [Math.PI / 2, 0, 0], children: [
136
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("capsuleGeometry", { args: [0.075, 0.12, 16, 24] }),
137
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: "#F8FAFC", roughness: 0.2, metalness: 0.1 })
138
+ ] })
139
+ ] }),
140
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("group", { position: [0.16, 0.9, 0], children: [
141
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { children: [
142
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("sphereGeometry", { args: [0.085, 24, 24] }),
143
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: "#1E293B", roughness: 0.35, metalness: 0.4 })
144
+ ] }),
145
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [0, -0.22, 0], children: [
146
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("capsuleGeometry", { args: [0.075, 0.28, 16, 24] }),
147
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: "#334155", roughness: 0.3, metalness: 0.2 })
148
+ ] }),
149
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [0, -0.44, 0], children: [
150
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("sphereGeometry", { args: [0.08, 24, 24] }),
151
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: accentColor, roughness: 0.25, metalness: 0.3 })
152
+ ] }),
153
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [0, -0.66, 0], children: [
154
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("capsuleGeometry", { args: [0.068, 0.28, 16, 24] }),
155
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: "#334155", roughness: 0.3, metalness: 0.2 })
156
+ ] }),
157
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [0, -0.84, 0.06], rotation: [Math.PI / 2, 0, 0], children: [
158
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("capsuleGeometry", { args: [0.075, 0.12, 16, 24] }),
159
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: "#F8FAFC", roughness: 0.2, metalness: 0.1 })
160
+ ] })
161
+ ] }),
162
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
163
+ "group",
164
+ {
165
+ position: [0, 0.94 + breath, 0],
166
+ rotation: [torsoPitch, torsoYaw, 0],
167
+ children: [
168
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [0, 0.06, 0], children: [
169
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("cylinderGeometry", { args: [0.21, 0.19, 0.12, 32] }),
170
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: "#1E293B", roughness: 0.35, metalness: 0.45 })
171
+ ] }),
172
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [0, 0.44, 0], children: [
173
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("capsuleGeometry", { args: [0.25, 0.42, 24, 32] }),
174
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
175
+ "meshStandardMaterial",
176
+ {
177
+ color: primaryColor,
178
+ roughness: 0.24,
179
+ metalness: 0.18
180
+ }
181
+ )
182
+ ] }),
183
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [0, 0.48, 0.245], children: [
184
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("sphereGeometry", { args: [0.068, 24, 24] }),
185
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshBasicMaterial", { color: activeWhiteMix })
186
+ ] }),
187
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [0, 0.48, 0.235], children: [
188
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("ringGeometry", { args: [0.075, 0.105, 32] }),
189
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshBasicMaterial", { color: accentColor })
190
+ ] }),
191
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [0, 0.84, 0], children: [
192
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("cylinderGeometry", { args: [0.16, 0.2, 0.08, 32] }),
193
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: "#E2E8F0", roughness: 0.2, metalness: 0.6 })
194
+ ] }),
195
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
196
+ "group",
197
+ {
198
+ position: [-0.34, 0.72, 0],
199
+ rotation: [leftShoulderX, 0, leftShoulderZ],
200
+ children: [
201
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { children: [
202
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("sphereGeometry", { args: [0.095, 24, 24] }),
203
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: "#F8FAFC", roughness: 0.2, metalness: 0.3 })
204
+ ] }),
205
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [0, -0.19, 0], children: [
206
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("capsuleGeometry", { args: [0.068, 0.24, 16, 24] }),
207
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: primaryColor, roughness: 0.25, metalness: 0.15 })
208
+ ] }),
209
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("group", { position: [0, -0.38, 0], rotation: [leftElbowX, 0, 0], children: [
210
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { children: [
211
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("sphereGeometry", { args: [0.078, 24, 24] }),
212
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: accentColor, roughness: 0.25, metalness: 0.3 })
213
+ ] }),
214
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [0, -0.18, 0], children: [
215
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("capsuleGeometry", { args: [0.062, 0.22, 16, 24] }),
216
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: "#F8FAFC", roughness: 0.22, metalness: 0.1 })
217
+ ] }),
218
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [0, -0.36, 0], children: [
219
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("sphereGeometry", { args: [0.092, 24, 24] }),
220
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: "#FFFFFF", roughness: 0.18, metalness: 0.1 })
221
+ ] })
222
+ ] })
223
+ ]
224
+ }
225
+ ),
226
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
227
+ "group",
228
+ {
229
+ position: [0.34, 0.72, 0],
230
+ rotation: [rightShoulderX, 0, rightShoulderZ],
231
+ children: [
232
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { children: [
233
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("sphereGeometry", { args: [0.095, 24, 24] }),
234
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: "#F8FAFC", roughness: 0.2, metalness: 0.3 })
235
+ ] }),
236
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [0, -0.19, 0], children: [
237
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("capsuleGeometry", { args: [0.068, 0.24, 16, 24] }),
238
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: primaryColor, roughness: 0.25, metalness: 0.15 })
239
+ ] }),
240
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("group", { position: [0, -0.38, 0], rotation: [rightElbowX, 0, 0], children: [
241
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { children: [
242
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("sphereGeometry", { args: [0.078, 24, 24] }),
243
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: accentColor, roughness: 0.25, metalness: 0.3 })
244
+ ] }),
245
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [0, -0.18, 0], children: [
246
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("capsuleGeometry", { args: [0.062, 0.22, 16, 24] }),
247
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: "#F8FAFC", roughness: 0.22, metalness: 0.1 })
248
+ ] }),
249
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [0, -0.36, 0], children: [
250
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("sphereGeometry", { args: [0.092, 24, 24] }),
251
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: "#FFFFFF", roughness: 0.18, metalness: 0.1 })
252
+ ] })
253
+ ] })
254
+ ]
255
+ }
256
+ ),
257
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
258
+ "group",
259
+ {
260
+ position: [0, 1.24 + Math.sin(frame * 0.038 - 0.4) * 8e-3, 0],
261
+ rotation: [headPitch, headYaw, headRoll],
262
+ children: [
263
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { children: [
264
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("sphereGeometry", { args: [0.31, 36, 36] }),
265
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
266
+ "meshStandardMaterial",
267
+ {
268
+ color: "#FFFFFF",
269
+ roughness: 0.18,
270
+ metalness: 0.08
271
+ }
272
+ )
273
+ ] }),
274
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [-0.3, 0, 0], rotation: [0, 0, Math.PI / 2], children: [
275
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("cylinderGeometry", { args: [0.09, 0.09, 0.05, 24] }),
276
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: primaryColor, roughness: 0.25, metalness: 0.3 })
277
+ ] }),
278
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [0.3, 0, 0], rotation: [0, 0, Math.PI / 2], children: [
279
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("cylinderGeometry", { args: [0.09, 0.09, 0.05, 24] }),
280
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshStandardMaterial", { color: primaryColor, roughness: 0.25, metalness: 0.3 })
281
+ ] }),
282
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [0, 0.02, 0.165], scale: [0.86, 0.62, 0.68], children: [
283
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("sphereGeometry", { args: [0.295, 32, 32] }),
284
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
285
+ "meshStandardMaterial",
286
+ {
287
+ color: "#090D16",
288
+ roughness: 0.1,
289
+ metalness: 0.35
290
+ }
291
+ )
292
+ ] }),
293
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [-0.095, 0.055, 0.355], children: [
294
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("capsuleGeometry", { args: [0.028, 0.032, 12, 16] }),
295
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshBasicMaterial", { color: accentColor })
296
+ ] }),
297
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("mesh", { position: [0.095, 0.055, 0.355], children: [
298
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("capsuleGeometry", { args: [0.028, 0.032, 12, 16] }),
299
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshBasicMaterial", { color: accentColor })
300
+ ] }),
301
+ [-0.055, 0, 0.055].map((xOff, idx) => {
302
+ const barHeight = 0.012 + speechEnergy * (idx === 1 ? 0.046 : 0.028);
303
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
304
+ "mesh",
305
+ {
306
+ position: [xOff, -0.032, 0.358],
307
+ scale: [1, barHeight / 0.012, 1],
308
+ children: [
309
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("boxGeometry", { args: [0.026, 0.012, 0.016] }),
310
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("meshBasicMaterial", { color: activeWhiteMix })
311
+ ]
312
+ },
313
+ idx
314
+ );
315
+ })
316
+ ]
317
+ }
318
+ )
319
+ ]
320
+ }
321
+ )
322
+ ]
323
+ }
324
+ );
325
+ };
326
+
327
+ // packages/kits/src/isometric-3d/IsometricStudioEnvironment.tsx
328
+ var import_remotion2 = require("remotion");
329
+ var import_jsx_runtime2 = require("react/jsx-runtime");
330
+ var IsometricStudioEnvironment = ({ codeMorphFrame, finaleActivateFrame }) => {
331
+ const frame = (0, import_remotion2.useCurrentFrame)();
332
+ const { fps } = (0, import_remotion2.useVideoConfig)();
333
+ const stageEnter = (0, import_remotion2.spring)({
334
+ frame: frame - 2,
335
+ fps,
336
+ config: { damping: 200, stiffness: 48, mass: 1.3 }
337
+ });
338
+ const codeMorph = (0, import_remotion2.spring)({
339
+ frame: frame - codeMorphFrame,
340
+ fps,
341
+ config: { damping: 200, stiffness: 32, mass: 1.4 }
342
+ });
343
+ const finaleBoost = (0, import_remotion2.spring)({
344
+ frame: frame - finaleActivateFrame,
345
+ fps,
346
+ config: { damping: 200, stiffness: 34, mass: 1.3 }
347
+ });
348
+ const stageScale = (0, import_remotion2.interpolate)(stageEnter, [0, 1], [1e-3, 1]);
349
+ const phaseProgress = Math.min(2, codeMorph + finaleBoost);
350
+ const holoColor = (0, import_remotion2.interpolateColors)(
351
+ phaseProgress,
352
+ [0, 1, 2],
353
+ ["#F59E0B", "#6366F1", "#10B981"]
354
+ );
355
+ const crystalCoreColor = (0, import_remotion2.interpolateColors)(
356
+ finaleBoost,
357
+ [0, 1],
358
+ ["#2563EB", "#10B981"]
359
+ );
360
+ const crystalEmissiveColor = (0, import_remotion2.interpolateColors)(
361
+ finaleBoost,
362
+ [0, 1],
363
+ ["#1D4ED8", "#059669"]
364
+ );
365
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("group", { scale: [stageScale, stageScale, stageScale], children: [
366
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("ambientLight", { intensity: 1.15, color: "#F8FAFC" }),
367
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
368
+ "directionalLight",
369
+ {
370
+ position: [7, 12, 8],
371
+ intensity: 1.75,
372
+ color: "#FFFFFF"
373
+ }
374
+ ),
375
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
376
+ "directionalLight",
377
+ {
378
+ position: [-8, 6, -4],
379
+ intensity: 0.75,
380
+ color: "#C7D2FE"
381
+ }
382
+ ),
383
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
384
+ "pointLight",
385
+ {
386
+ position: [0, 2.2, 0.2],
387
+ intensity: 1.6 + codeMorph * 1.2 + finaleBoost * 1.2,
388
+ distance: 6,
389
+ color: holoColor
390
+ }
391
+ ),
392
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("mesh", { position: [0, -0.2, 0], children: [
393
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("boxGeometry", { args: [8.4, 0.4, 6.4] }),
394
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("meshStandardMaterial", { color: "#FFFFFF", roughness: 0.25, metalness: 0.05 })
395
+ ] }),
396
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("mesh", { position: [0, -0.43, 0], children: [
397
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("boxGeometry", { args: [8.48, 0.07, 6.48] }),
398
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("meshBasicMaterial", { color: "#2563EB" })
399
+ ] }),
400
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("mesh", { position: [0, -0.62, 0], children: [
401
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("boxGeometry", { args: [8.1, 0.32, 6.1] }),
402
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("meshStandardMaterial", { color: "#1E1B4B", roughness: 0.4, metalness: 0.3 })
403
+ ] }),
404
+ [-3, -2, -1, 0, 1, 2, 3].map((x) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("mesh", { position: [x, 4e-3, 0], children: [
405
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("boxGeometry", { args: [0.018, 4e-3, 5.8] }),
406
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("meshBasicMaterial", { color: "#E2E8F0" })
407
+ ] }, `gx-${x}`)),
408
+ [-2, -1, 0, 1, 2].map((z) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("mesh", { position: [0, 4e-3, z], children: [
409
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("boxGeometry", { args: [7.8, 4e-3, 0.018] }),
410
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("meshBasicMaterial", { color: "#E2E8F0" })
411
+ ] }, `gz-${z}`)),
412
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("mesh", { position: [0, 1.45, -3.05], children: [
413
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("boxGeometry", { args: [8.4, 2.9, 0.28] }),
414
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("meshStandardMaterial", { color: "#F1F5F9", roughness: 0.3, metalness: 0.05 })
415
+ ] }),
416
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("mesh", { position: [0, 2.92, -3.05], children: [
417
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("boxGeometry", { args: [8.4, 0.08, 0.3] }),
418
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("meshBasicMaterial", { color: "#7209B7" })
419
+ ] }),
420
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("mesh", { position: [-4.06, 1.45, 0], children: [
421
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("boxGeometry", { args: [0.28, 2.9, 6.4] }),
422
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("meshStandardMaterial", { color: "#E2E8F0", roughness: 0.3, metalness: 0.05 })
423
+ ] }),
424
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("mesh", { position: [-4.06, 2.92, 0], children: [
425
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("boxGeometry", { args: [0.3, 0.08, 6.4] }),
426
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("meshBasicMaterial", { color: "#2563EB" })
427
+ ] }),
428
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("group", { position: [0, 1.65, -2.86], children: [
429
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("mesh", { children: [
430
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("boxGeometry", { args: [4.2, 1.55, 0.08] }),
431
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("meshStandardMaterial", { color: "#0F172A", roughness: 0.2, metalness: 0.4 })
432
+ ] }),
433
+ [-0.42, -0.14, 0.14, 0.42].map((yOff, idx) => {
434
+ const baseW = 1.25 + idx * 0.55 % 1.3;
435
+ const barWidth = baseW + codeMorph * 0.45 + finaleBoost * 0.25;
436
+ const barColor = (0, import_remotion2.interpolateColors)(
437
+ codeMorph,
438
+ [0, 1],
439
+ idx % 2 === 0 ? ["#F59E0B", "#10B981"] : ["#F43F5E", "#818CF8"]
440
+ );
441
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
442
+ "mesh",
443
+ {
444
+ position: [-1.5 + barWidth / 2, yOff, 0.05],
445
+ scale: [barWidth, 1, 1],
446
+ children: [
447
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("boxGeometry", { args: [1, 0.13, 0.03] }),
448
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("meshBasicMaterial", { color: barColor })
449
+ ]
450
+ },
451
+ idx
452
+ );
453
+ })
454
+ ] }),
455
+ [-1.6, 0, 1.6].map((zPos, i) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("mesh", { position: [-3.88, 1.45, zPos], children: [
456
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("boxGeometry", { args: [0.08, 2.1, 0.18] }),
457
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
458
+ "meshBasicMaterial",
459
+ {
460
+ color: i === 1 ? "#10B981" : "#6366F1"
461
+ }
462
+ )
463
+ ] }, i)),
464
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("group", { position: [0, 0, 0.35], children: [
465
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("mesh", { position: [0, 0.04, 0], children: [
466
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("cylinderGeometry", { args: [0.92, 1.02, 0.08, 48] }),
467
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("meshStandardMaterial", { color: "#1E293B", roughness: 0.3, metalness: 0.5 })
468
+ ] }),
469
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("mesh", { position: [0, 0.46, 0], children: [
470
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("cylinderGeometry", { args: [0.38, 0.52, 0.84, 48] }),
471
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("meshStandardMaterial", { color: "#F8FAFC", roughness: 0.22, metalness: 0.15 })
472
+ ] }),
473
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("mesh", { position: [0, 0.9, 0], children: [
474
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("cylinderGeometry", { args: [1.05, 0.95, 0.1, 48] }),
475
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("meshStandardMaterial", { color: "#0F172A", roughness: 0.15, metalness: 0.45 })
476
+ ] }),
477
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("mesh", { position: [0, 0.96, 0], rotation: [-Math.PI / 2, 0, 0], children: [
478
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("ringGeometry", { args: [0.68, 0.82, 48] }),
479
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("meshBasicMaterial", { color: holoColor })
480
+ ] }),
481
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("mesh", { position: [0, 0.958, 0], rotation: [-Math.PI / 2, 0, 0], children: [
482
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circleGeometry", { args: [0.65, 48] }),
483
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("meshBasicMaterial", { color: holoColor, transparent: true, opacity: 0.22 })
484
+ ] }),
485
+ codeMorph < 0.98 && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
486
+ "group",
487
+ {
488
+ position: [0, 1.62, 0],
489
+ scale: [1 - codeMorph, 1 - codeMorph, 1 - codeMorph],
490
+ children: [-0.45, 0, 0.45].map((xOff, idx) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
491
+ "mesh",
492
+ {
493
+ position: [
494
+ xOff,
495
+ Math.sin(frame * 0.032 + idx * 1.8) * 0.06,
496
+ (idx - 1) * 0.14
497
+ ],
498
+ rotation: [
499
+ 0.12 * Math.sin(frame * 0.025 + idx),
500
+ frame * 6e-3 + idx * 0.5,
501
+ 0.14 * Math.cos(frame * 0.028 + idx)
502
+ ],
503
+ children: [
504
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("boxGeometry", { args: [0.42, 0.22, 0.28] }),
505
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
506
+ "meshStandardMaterial",
507
+ {
508
+ color: idx === 1 ? "#F43F5E" : "#F59E0B",
509
+ roughness: 0.2,
510
+ metalness: 0.2
511
+ }
512
+ )
513
+ ]
514
+ },
515
+ idx
516
+ ))
517
+ }
518
+ ),
519
+ codeMorph > 0.02 && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
520
+ "group",
521
+ {
522
+ position: [0, 1.76 + Math.sin(frame * 0.03) * 0.03, 0],
523
+ scale: [codeMorph, codeMorph, codeMorph],
524
+ children: [
525
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
526
+ "mesh",
527
+ {
528
+ rotation: [
529
+ frame * 7e-3,
530
+ frame * 0.011,
531
+ frame * 5e-3
532
+ ],
533
+ scale: [
534
+ 1 + finaleBoost * 0.16,
535
+ 1 + finaleBoost * 0.16,
536
+ 1 + finaleBoost * 0.16
537
+ ],
538
+ children: [
539
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("octahedronGeometry", { args: [0.42, 0] }),
540
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
541
+ "meshStandardMaterial",
542
+ {
543
+ color: crystalCoreColor,
544
+ emissive: crystalEmissiveColor,
545
+ emissiveIntensity: 0.65,
546
+ roughness: 0.15,
547
+ metalness: 0.4
548
+ }
549
+ )
550
+ ]
551
+ }
552
+ ),
553
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
554
+ "mesh",
555
+ {
556
+ rotation: [
557
+ Math.PI / 3 + frame * 8e-3,
558
+ frame * 0.01,
559
+ 0
560
+ ],
561
+ children: [
562
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("torusGeometry", { args: [0.68, 0.022, 16, 64] }),
563
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("meshBasicMaterial", { color: "#818CF8" })
564
+ ]
565
+ }
566
+ ),
567
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
568
+ "mesh",
569
+ {
570
+ rotation: [
571
+ -Math.PI / 3 - frame * 7e-3,
572
+ -frame * 9e-3,
573
+ Math.PI / 4
574
+ ],
575
+ children: [
576
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("torusGeometry", { args: [0.82, 0.022, 16, 64] }),
577
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("meshBasicMaterial", { color: "#10B981" })
578
+ ]
579
+ }
580
+ ),
581
+ finaleBoost > 0.02 && [0, 1, 2, 3].map((satIdx) => {
582
+ const angle = frame * 0.014 + satIdx * Math.PI / 2;
583
+ const radius = 0.95 * finaleBoost;
584
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
585
+ "mesh",
586
+ {
587
+ position: [
588
+ Math.cos(angle) * radius,
589
+ Math.sin(angle * 2) * 0.08,
590
+ Math.sin(angle) * radius
591
+ ],
592
+ scale: [finaleBoost, finaleBoost, finaleBoost],
593
+ children: [
594
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("sphereGeometry", { args: [0.085, 20, 20] }),
595
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
596
+ "meshBasicMaterial",
597
+ {
598
+ color: satIdx % 2 === 0 ? "#10B981" : "#FFFFFF"
599
+ }
600
+ )
601
+ ]
602
+ },
603
+ satIdx
604
+ );
605
+ })
606
+ ]
607
+ }
608
+ )
609
+ ] })
610
+ ] });
611
+ };
@@ -0,0 +1,2 @@
1
+ export * from './Stylized3DCharacter';
2
+ export * from './IsometricStudioEnvironment';
@@ -0,0 +1,8 @@
1
+ import {
2
+ IsometricStudioEnvironment,
3
+ Stylized3DCharacter
4
+ } from "../chunk-3SUIELJV.mjs";
5
+ export {
6
+ IsometricStudioEnvironment,
7
+ Stylized3DCharacter
8
+ };
@@ -0,0 +1,36 @@
1
+ import React from 'react';
2
+ export interface AnimatedMetricCounterProps {
3
+ /** Target numeric value */
4
+ value: number;
5
+ /** Starting numeric value (default `0`) */
6
+ fromValue?: number;
7
+ /** Leading symbol/unit (e.g. `'$'`, `'+'`) */
8
+ prefix?: string;
9
+ /** Trailing symbol/unit (e.g. `'%'`, `' FPS'`, `'×'`) */
10
+ suffix?: string;
11
+ /** Fixed decimal places (default `0`) */
12
+ decimals?: number;
13
+ /** Frame when the ticker starts counting (default `2`, obeying Frame 0 clean board rule) */
14
+ startFrame?: number;
15
+ /** Count-up duration in frames at 60 FPS (default `54`) */
16
+ durationInFrames?: number;
17
+ /** Optional concise 2–3 word label below the counter */
18
+ label?: string;
19
+ /** Optional delta pill badge (e.g. `"+240%"`) */
20
+ badge?: string;
21
+ /** Highlight accent color (default `STUDIO_THEME.colors.accents.emerald`) */
22
+ accentColor?: string;
23
+ /** Presentation mode (`'inline'` renders pure tabular text without card chrome) */
24
+ variant?: 'dark' | 'light' | 'inline';
25
+ /** Thousands separator character (default `','`) */
26
+ thousandSeparator?: string;
27
+ /** Font size in px for the main number */
28
+ fontSize?: number;
29
+ style?: React.CSSProperties;
30
+ }
31
+ export declare function formatTabularMetric(val: number, decimals?: number, thousandSeparator?: string): string;
32
+ /**
33
+ * Smooth 60 FPS Interpolated Number / Currency / Percentage Ticker.
34
+ * Uses `tabular-nums` so digits never jump horizontally while counting.
35
+ */
36
+ export declare const AnimatedMetricCounter: React.FC<AnimatedMetricCounterProps>;