@nice2dev/ui-3d 1.0.0 → 1.0.2

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 (204) hide show
  1. package/CHANGELOG.md +115 -1
  2. package/dist/cjs/collaborative/collaborativeScene.js +210 -0
  3. package/dist/cjs/collaborative/collaborativeScene.js.map +1 -0
  4. package/dist/cjs/core/i18n.js +3 -3
  5. package/dist/cjs/core/i18n.js.map +1 -1
  6. package/dist/cjs/dance/DanceBridge.js +162 -0
  7. package/dist/cjs/dance/DanceBridge.js.map +1 -0
  8. package/dist/cjs/dance/DanceScoreEngine.js +210 -0
  9. package/dist/cjs/dance/DanceScoreEngine.js.map +1 -0
  10. package/dist/cjs/dance/PoseDetector.js +199 -0
  11. package/dist/cjs/dance/PoseDetector.js.map +1 -0
  12. package/dist/cjs/index.js +254 -0
  13. package/dist/cjs/index.js.map +1 -1
  14. package/dist/cjs/material/MaterialEditor.module.css.js +6 -0
  15. package/dist/cjs/material/MaterialEditor.module.css.js.map +1 -0
  16. package/dist/cjs/material/NiceMaterialEditor.js +737 -0
  17. package/dist/cjs/material/NiceMaterialEditor.js.map +1 -0
  18. package/dist/cjs/material/materialEditorTypes.js +73 -0
  19. package/dist/cjs/material/materialEditorTypes.js.map +1 -0
  20. package/dist/cjs/material/materialEditorUtils.js +841 -0
  21. package/dist/cjs/material/materialEditorUtils.js.map +1 -0
  22. package/dist/cjs/material/materialNodeDefinitions.js +1285 -0
  23. package/dist/cjs/material/materialNodeDefinitions.js.map +1 -0
  24. package/dist/cjs/model/ModelEditor.js +4 -1
  25. package/dist/cjs/model/ModelEditor.js.map +1 -1
  26. package/dist/cjs/model/ModelEditor.module.css.js +1 -1
  27. package/dist/cjs/model/ModelEditorLeftPanel.js +5 -4
  28. package/dist/cjs/model/ModelEditorLeftPanel.js.map +1 -1
  29. package/dist/cjs/model/ModelEditorMenuBar.js +8 -3
  30. package/dist/cjs/model/ModelEditorMenuBar.js.map +1 -1
  31. package/dist/cjs/model/ModelEditorRightPanel.js +27 -26
  32. package/dist/cjs/model/ModelEditorRightPanel.js.map +1 -1
  33. package/dist/cjs/model/ModelEditorSubComponents.js +20 -16
  34. package/dist/cjs/model/ModelEditorSubComponents.js.map +1 -1
  35. package/dist/cjs/model/ModelEditorTimeline.js +5 -4
  36. package/dist/cjs/model/ModelEditorTimeline.js.map +1 -1
  37. package/dist/cjs/model/ModelEditorToolbar.js +4 -3
  38. package/dist/cjs/model/ModelEditorToolbar.js.map +1 -1
  39. package/dist/cjs/model/ModelEditorViewport.js +2 -2
  40. package/dist/cjs/model/ModelEditorViewport.js.map +1 -1
  41. package/dist/cjs/model/ModelViewer.js +68 -0
  42. package/dist/cjs/model/ModelViewer.js.map +1 -0
  43. package/dist/cjs/model/ModelViewer.module.css.js +6 -0
  44. package/dist/cjs/model/ModelViewer.module.css.js.map +1 -0
  45. package/dist/cjs/model/NiceArmatureEditor.js +255 -0
  46. package/dist/cjs/model/NiceArmatureEditor.js.map +1 -0
  47. package/dist/cjs/model/NiceMorphTargetEditor.js +206 -0
  48. package/dist/cjs/model/NiceMorphTargetEditor.js.map +1 -0
  49. package/dist/cjs/model/NiceOctree.js +339 -0
  50. package/dist/cjs/model/NiceOctree.js.map +1 -0
  51. package/dist/cjs/model/NicePhysicsSimulation.js +283 -0
  52. package/dist/cjs/model/NicePhysicsSimulation.js.map +1 -0
  53. package/dist/cjs/model/NiceProceduralGeometry.js +269 -0
  54. package/dist/cjs/model/NiceProceduralGeometry.js.map +1 -0
  55. package/dist/cjs/model/NiceTerrainEditor.js +343 -0
  56. package/dist/cjs/model/NiceTerrainEditor.js.map +1 -0
  57. package/dist/cjs/model/NiceWeightPainter.js +258 -0
  58. package/dist/cjs/model/NiceWeightPainter.js.map +1 -0
  59. package/dist/cjs/model/NiceXRPreview.js +269 -0
  60. package/dist/cjs/model/NiceXRPreview.js.map +1 -0
  61. package/dist/cjs/model/cadModeUtils.js +130 -0
  62. package/dist/cjs/model/cadModeUtils.js.map +1 -0
  63. package/dist/cjs/model/editorShortcuts.js +187 -0
  64. package/dist/cjs/model/editorShortcuts.js.map +1 -0
  65. package/dist/cjs/model/modelEditorTypes.js +11 -0
  66. package/dist/cjs/model/modelEditorTypes.js.map +1 -1
  67. package/dist/cjs/model/modelEditorUtils.js +1049 -0
  68. package/dist/cjs/model/modelEditorUtils.js.map +1 -0
  69. package/dist/cjs/model/simsModeUtils.js +358 -0
  70. package/dist/cjs/model/simsModeUtils.js.map +1 -0
  71. package/dist/cjs/model/useModelEditor.js +319 -115
  72. package/dist/cjs/model/useModelEditor.js.map +1 -1
  73. package/dist/cjs/model/useModelViewer.js +634 -0
  74. package/dist/cjs/model/useModelViewer.js.map +1 -0
  75. package/dist/cjs/nice2dev-ui-3d.css +1 -1
  76. package/dist/cjs/particle/NiceParticleEditor.js +526 -0
  77. package/dist/cjs/particle/NiceParticleEditor.js.map +1 -0
  78. package/dist/cjs/particle/ParticleEditor.module.css.js +6 -0
  79. package/dist/cjs/particle/ParticleEditor.module.css.js.map +1 -0
  80. package/dist/cjs/particle/particleEditorTypes.js +92 -0
  81. package/dist/cjs/particle/particleEditorTypes.js.map +1 -0
  82. package/dist/cjs/particle/particleEditorUtils.js +1084 -0
  83. package/dist/cjs/particle/particleEditorUtils.js.map +1 -0
  84. package/dist/cjs/rendering/NiceCascadedShadows.js +266 -0
  85. package/dist/cjs/rendering/NiceCascadedShadows.js.map +1 -0
  86. package/dist/cjs/rendering/NiceRenderExport.js +341 -0
  87. package/dist/cjs/rendering/NiceRenderExport.js.map +1 -0
  88. package/dist/cjs/rendering/NiceSSAO.js +359 -0
  89. package/dist/cjs/rendering/NiceSSAO.js.map +1 -0
  90. package/dist/cjs/rendering/NiceSSR.js +277 -0
  91. package/dist/cjs/rendering/NiceSSR.js.map +1 -0
  92. package/dist/cjs/rendering/NiceWebGPURenderer.js +215 -0
  93. package/dist/cjs/rendering/NiceWebGPURenderer.js.map +1 -0
  94. package/dist/cjs/ui/dist/index.js +50089 -0
  95. package/dist/cjs/ui/dist/index.js.map +1 -0
  96. package/dist/cjs/uv/NiceUVEditor.js +520 -0
  97. package/dist/cjs/uv/NiceUVEditor.js.map +1 -0
  98. package/dist/cjs/uv/UVEditor.module.css.js +6 -0
  99. package/dist/cjs/uv/UVEditor.module.css.js.map +1 -0
  100. package/dist/cjs/uv/uvEditorTypes.js +98 -0
  101. package/dist/cjs/uv/uvEditorTypes.js.map +1 -0
  102. package/dist/cjs/uv/uvEditorUtils.js +670 -0
  103. package/dist/cjs/uv/uvEditorUtils.js.map +1 -0
  104. package/dist/esm/collaborative/collaborativeScene.js +206 -0
  105. package/dist/esm/collaborative/collaborativeScene.js.map +1 -0
  106. package/dist/esm/dance/DanceBridge.js +158 -0
  107. package/dist/esm/dance/DanceBridge.js.map +1 -0
  108. package/dist/esm/dance/DanceScoreEngine.js +207 -0
  109. package/dist/esm/dance/DanceScoreEngine.js.map +1 -0
  110. package/dist/esm/dance/PoseDetector.js +195 -0
  111. package/dist/esm/dance/PoseDetector.js.map +1 -0
  112. package/dist/esm/index.js +35 -1
  113. package/dist/esm/index.js.map +1 -1
  114. package/dist/esm/material/MaterialEditor.module.css.js +4 -0
  115. package/dist/esm/material/MaterialEditor.module.css.js.map +1 -0
  116. package/dist/esm/material/NiceMaterialEditor.js +734 -0
  117. package/dist/esm/material/NiceMaterialEditor.js.map +1 -0
  118. package/dist/esm/material/materialEditorTypes.js +62 -0
  119. package/dist/esm/material/materialEditorTypes.js.map +1 -0
  120. package/dist/esm/material/materialEditorUtils.js +811 -0
  121. package/dist/esm/material/materialEditorUtils.js.map +1 -0
  122. package/dist/esm/material/materialNodeDefinitions.js +1280 -0
  123. package/dist/esm/material/materialNodeDefinitions.js.map +1 -0
  124. package/dist/esm/model/ModelEditor.js +4 -2
  125. package/dist/esm/model/ModelEditor.js.map +1 -1
  126. package/dist/esm/model/ModelEditor.module.css.js +1 -1
  127. package/dist/esm/model/ModelEditorLeftPanel.js +5 -4
  128. package/dist/esm/model/ModelEditorLeftPanel.js.map +1 -1
  129. package/dist/esm/model/ModelEditorMenuBar.js +8 -3
  130. package/dist/esm/model/ModelEditorMenuBar.js.map +1 -1
  131. package/dist/esm/model/ModelEditorRightPanel.js +27 -26
  132. package/dist/esm/model/ModelEditorRightPanel.js.map +1 -1
  133. package/dist/esm/model/ModelEditorSubComponents.js +17 -13
  134. package/dist/esm/model/ModelEditorSubComponents.js.map +1 -1
  135. package/dist/esm/model/ModelEditorTimeline.js +5 -4
  136. package/dist/esm/model/ModelEditorTimeline.js.map +1 -1
  137. package/dist/esm/model/ModelEditorToolbar.js +4 -3
  138. package/dist/esm/model/ModelEditorToolbar.js.map +1 -1
  139. package/dist/esm/model/ModelEditorViewport.js +2 -2
  140. package/dist/esm/model/ModelEditorViewport.js.map +1 -1
  141. package/dist/esm/model/ModelViewer.js +65 -0
  142. package/dist/esm/model/ModelViewer.js.map +1 -0
  143. package/dist/esm/model/ModelViewer.module.css.js +4 -0
  144. package/dist/esm/model/ModelViewer.module.css.js.map +1 -0
  145. package/dist/esm/model/NiceArmatureEditor.js +233 -0
  146. package/dist/esm/model/NiceArmatureEditor.js.map +1 -0
  147. package/dist/esm/model/NiceMorphTargetEditor.js +184 -0
  148. package/dist/esm/model/NiceMorphTargetEditor.js.map +1 -0
  149. package/dist/esm/model/NiceOctree.js +317 -0
  150. package/dist/esm/model/NiceOctree.js.map +1 -0
  151. package/dist/esm/model/NicePhysicsSimulation.js +261 -0
  152. package/dist/esm/model/NicePhysicsSimulation.js.map +1 -0
  153. package/dist/esm/model/NiceProceduralGeometry.js +242 -0
  154. package/dist/esm/model/NiceProceduralGeometry.js.map +1 -0
  155. package/dist/esm/model/NiceTerrainEditor.js +321 -0
  156. package/dist/esm/model/NiceTerrainEditor.js.map +1 -0
  157. package/dist/esm/model/NiceWeightPainter.js +236 -0
  158. package/dist/esm/model/NiceWeightPainter.js.map +1 -0
  159. package/dist/esm/model/NiceXRPreview.js +247 -0
  160. package/dist/esm/model/NiceXRPreview.js.map +1 -0
  161. package/dist/esm/model/cadModeUtils.js +103 -0
  162. package/dist/esm/model/cadModeUtils.js.map +1 -0
  163. package/dist/esm/model/editorShortcuts.js +185 -0
  164. package/dist/esm/model/editorShortcuts.js.map +1 -0
  165. package/dist/esm/model/modelEditorTypes.js +11 -0
  166. package/dist/esm/model/modelEditorTypes.js.map +1 -1
  167. package/dist/esm/model/modelEditorUtils.js +997 -0
  168. package/dist/esm/model/modelEditorUtils.js.map +1 -0
  169. package/dist/esm/model/simsModeUtils.js +325 -0
  170. package/dist/esm/model/simsModeUtils.js.map +1 -0
  171. package/dist/esm/model/useModelEditor.js +204 -0
  172. package/dist/esm/model/useModelEditor.js.map +1 -1
  173. package/dist/esm/model/useModelViewer.js +613 -0
  174. package/dist/esm/model/useModelViewer.js.map +1 -0
  175. package/dist/esm/nice2dev-ui-3d.css +1 -1
  176. package/dist/esm/particle/NiceParticleEditor.js +523 -0
  177. package/dist/esm/particle/NiceParticleEditor.js.map +1 -0
  178. package/dist/esm/particle/ParticleEditor.module.css.js +4 -0
  179. package/dist/esm/particle/ParticleEditor.module.css.js.map +1 -0
  180. package/dist/esm/particle/particleEditorTypes.js +84 -0
  181. package/dist/esm/particle/particleEditorTypes.js.map +1 -0
  182. package/dist/esm/particle/particleEditorUtils.js +1054 -0
  183. package/dist/esm/particle/particleEditorUtils.js.map +1 -0
  184. package/dist/esm/rendering/NiceCascadedShadows.js +244 -0
  185. package/dist/esm/rendering/NiceCascadedShadows.js.map +1 -0
  186. package/dist/esm/rendering/NiceRenderExport.js +319 -0
  187. package/dist/esm/rendering/NiceRenderExport.js.map +1 -0
  188. package/dist/esm/rendering/NiceSSAO.js +337 -0
  189. package/dist/esm/rendering/NiceSSAO.js.map +1 -0
  190. package/dist/esm/rendering/NiceSSR.js +255 -0
  191. package/dist/esm/rendering/NiceSSR.js.map +1 -0
  192. package/dist/esm/rendering/NiceWebGPURenderer.js +193 -0
  193. package/dist/esm/rendering/NiceWebGPURenderer.js.map +1 -0
  194. package/dist/esm/ui/dist/index.js +49686 -0
  195. package/dist/esm/ui/dist/index.js.map +1 -0
  196. package/dist/esm/uv/NiceUVEditor.js +518 -0
  197. package/dist/esm/uv/NiceUVEditor.js.map +1 -0
  198. package/dist/esm/uv/UVEditor.module.css.js +4 -0
  199. package/dist/esm/uv/UVEditor.module.css.js.map +1 -0
  200. package/dist/esm/uv/uvEditorTypes.js +88 -0
  201. package/dist/esm/uv/uvEditorTypes.js.map +1 -0
  202. package/dist/esm/uv/uvEditorUtils.js +621 -0
  203. package/dist/esm/uv/uvEditorUtils.js.map +1 -0
  204. package/package.json +3 -4
@@ -3,6 +3,7 @@ import { useState } from 'react';
3
3
  import * as THREE from 'three';
4
4
  import styles from './ModelEditor.module.css.js';
5
5
  import { DEG } from './modelEditorTypes.js';
6
+ import { NiceTextInput as ut, NiceColorPicker as _n, NiceSlider as Jr, NiceSelect as tn } from '../ui/dist/index.js';
6
7
 
7
8
  /* ═══════════════════════════════════════════
8
9
  Sub-components
@@ -18,7 +19,7 @@ const Vec3Row = ({ label, value, onChange }) => {
18
19
  onChange();
19
20
  }
20
21
  };
21
- return (jsxs("div", { className: styles.propRow, children: [jsx("span", { className: styles.propLabel, children: label }), jsxs("div", { className: styles.propVec3, children: [jsx("input", { className: styles.propVec3X, value: value.x.toFixed(3), onChange: (e) => set("x", e.target.value) }), jsx("input", { className: styles.propVec3Y, value: value.y.toFixed(3), onChange: (e) => set("y", e.target.value) }), jsx("input", { className: styles.propVec3Z, value: value.z.toFixed(3), onChange: (e) => set("z", e.target.value) })] })] }));
22
+ return (jsxs("div", { className: styles.propRow, children: [jsx("span", { className: styles.propLabel, children: label }), jsxs("div", { className: styles.propVec3, children: [jsx(ut, { className: styles.propVec3X, value: value.x.toFixed(3), onChange: (val) => set("x", val) }), jsx(ut, { className: styles.propVec3Y, value: value.y.toFixed(3), onChange: (val) => set("y", val) }), jsx(ut, { className: styles.propVec3Z, value: value.z.toFixed(3), onChange: (val) => set("z", val) })] })] }));
22
23
  };
23
24
  /** Vec3 input row for rotation (shows degrees) */
24
25
  const Vec3RowDeg = ({ label, value, onChange }) => {
@@ -31,7 +32,7 @@ const Vec3RowDeg = ({ label, value, onChange }) => {
31
32
  onChange();
32
33
  }
33
34
  };
34
- return (jsxs("div", { className: styles.propRow, children: [jsx("span", { className: styles.propLabel, children: label }), jsxs("div", { className: styles.propVec3, children: [jsx("input", { className: styles.propVec3X, value: (value.x * DEG).toFixed(1), onChange: (e) => set("x", e.target.value) }), jsx("input", { className: styles.propVec3Y, value: (value.y * DEG).toFixed(1), onChange: (e) => set("y", e.target.value) }), jsx("input", { className: styles.propVec3Z, value: (value.z * DEG).toFixed(1), onChange: (e) => set("z", e.target.value) })] })] }));
35
+ return (jsxs("div", { className: styles.propRow, children: [jsx("span", { className: styles.propLabel, children: label }), jsxs("div", { className: styles.propVec3, children: [jsx(ut, { className: styles.propVec3X, value: (value.x * DEG).toFixed(1), onChange: (val) => set("x", val) }), jsx(ut, { className: styles.propVec3Y, value: (value.y * DEG).toFixed(1), onChange: (val) => set("y", val) }), jsx(ut, { className: styles.propVec3Z, value: (value.z * DEG).toFixed(1), onChange: (val) => set("z", val) })] })] }));
35
36
  };
36
37
  /** Material card with editable properties */
37
38
  const MaterialCard = ({ material, active, onClick, onUpdate }) => {
@@ -55,21 +56,24 @@ const MaterialCard = ({ material, active, onClick, onUpdate }) => {
55
56
  mat.needsUpdate = true;
56
57
  onUpdate();
57
58
  };
58
- return (jsxs("div", { className: `${styles.materialCard} ${active ? styles.materialCardActive : ""}`, onClick: onClick, children: [jsx("div", { className: styles.materialHeader, children: jsx("span", { className: styles.materialName, children: mat.name || mat.type }) }), hasColor && (jsxs("div", { className: styles.propRow, children: [jsx("span", { className: styles.propLabel, children: "Color" }), jsx("div", { className: styles.propColorSwatch, style: { background: `#${mat.color.getHexString()}` }, children: jsx("input", { type: "color", value: `#${mat.color.getHexString()}`, onChange: (e) => setColor(e.target.value) }) }), jsxs("span", { style: { fontSize: 10, color: "#888" }, children: ["#", mat.color.getHexString()] })] })), hasMetalness && (jsxs("div", { className: styles.propRow, children: [jsx("span", { className: styles.propLabel, children: "Metal" }), jsx("input", { type: "range", min: 0, max: 1, step: 0.01, value: mat.metalness, onChange: (e) => setNum("metalness", parseFloat(e.target.value)), style: { flex: 1, accentColor: "#5566cc" } }), jsx("span", { style: { fontSize: 9, color: "#888", width: 28, textAlign: "right" }, children: mat.metalness.toFixed(2) })] })), hasRoughness && (jsxs("div", { className: styles.propRow, children: [jsx("span", { className: styles.propLabel, children: "Rough" }), jsx("input", { type: "range", min: 0, max: 1, step: 0.01, value: mat.roughness, onChange: (e) => setNum("roughness", parseFloat(e.target.value)), style: { flex: 1, accentColor: "#5566cc" } }), jsx("span", { style: { fontSize: 9, color: "#888", width: 28, textAlign: "right" }, children: mat.roughness.toFixed(2) })] })), hasEmissive && mat.emissive && (jsxs("div", { className: styles.propRow, children: [jsx("span", { className: styles.propLabel, children: "Emissive" }), jsx("div", { className: styles.propColorSwatch, style: { background: `#${mat.emissive.getHexString()}` }, children: jsx("input", { type: "color", value: `#${mat.emissive.getHexString()}`, onChange: (e) => {
59
- mat.emissive.set(e.target.value);
60
- mat.needsUpdate = true;
61
- onUpdate();
62
- } }) })] })), jsxs("div", { className: styles.propRow, children: [jsx("span", { className: styles.propLabel, children: "Opacity" }), jsx("input", { type: "range", min: 0, max: 1, step: 0.01, value: mat.opacity, onChange: (e) => {
63
- const v = parseFloat(e.target.value);
64
- mat.opacity = v;
65
- mat.transparent = v < 1;
59
+ return (jsxs("div", { className: `${styles.materialCard} ${active ? styles.materialCardActive : ""}`, onClick: onClick, children: [jsx("div", { className: styles.materialHeader, children: jsx("span", { className: styles.materialName, children: mat.name || mat.type }) }), hasColor && (jsxs("div", { className: styles.propRow, children: [jsx("span", { className: styles.propLabel, children: "Color" }), jsx(_n, { value: `#${mat.color.getHexString()}`, onChange: (c) => setColor(c) }), jsxs("span", { style: { fontSize: 10, color: "#888" }, children: ["#", mat.color.getHexString()] })] })), hasMetalness && (jsxs("div", { className: styles.propRow, children: [jsx("span", { className: styles.propLabel, children: "Metal" }), jsx(Jr, { min: 0, max: 1, step: 0.01, value: mat.metalness, onChange: (val) => setNum("metalness", val), style: { flex: 1 } }), jsx("span", { style: { fontSize: 9, color: "#888", width: 28, textAlign: "right" }, children: mat.metalness.toFixed(2) })] })), hasRoughness && (jsxs("div", { className: styles.propRow, children: [jsx("span", { className: styles.propLabel, children: "Rough" }), jsx(Jr, { min: 0, max: 1, step: 0.01, value: mat.roughness, onChange: (val) => setNum("roughness", val), style: { flex: 1 } }), jsx("span", { style: { fontSize: 9, color: "#888", width: 28, textAlign: "right" }, children: mat.roughness.toFixed(2) })] })), hasEmissive && mat.emissive && (jsxs("div", { className: styles.propRow, children: [jsx("span", { className: styles.propLabel, children: "Emissive" }), jsx(_n, { value: `#${mat.emissive.getHexString()}`, onChange: (c) => {
60
+ mat.emissive.set(c);
66
61
  mat.needsUpdate = true;
67
62
  onUpdate();
68
- }, style: { flex: 1, accentColor: "#5566cc" } }), jsx("span", { style: { fontSize: 9, color: "#888", width: 28, textAlign: "right" }, children: mat.opacity.toFixed(2) })] }), jsxs("div", { className: styles.propRow, children: [jsx("span", { className: styles.propLabel, children: "Side" }), jsxs("select", { className: styles.propSelect, value: mat.side, onChange: (e) => {
69
- mat.side = parseInt(e.target.value);
63
+ } })] })), jsxs("div", { className: styles.propRow, children: [jsx("span", { className: styles.propLabel, children: "Opacity" }), jsx(Jr, { min: 0, max: 1, step: 0.01, value: mat.opacity, onChange: (val) => {
64
+ mat.opacity = val;
65
+ mat.transparent = val < 1;
70
66
  mat.needsUpdate = true;
71
67
  onUpdate();
72
- }, children: [jsx("option", { value: THREE.FrontSide, children: "Front" }), jsx("option", { value: THREE.BackSide, children: "Back" }), jsx("option", { value: THREE.DoubleSide, children: "Double" })] })] }), hasMap && mat.map && (jsxs("div", { className: styles.textureSlot, children: [jsx("div", { className: styles.textureThumb, children: mat.map.image != null && (jsx("img", { src: (_a = mat.map.image.src) !== null && _a !== void 0 ? _a : "", alt: "diffuse" })) }), jsxs("div", { className: styles.textureInfo, children: [jsx("div", { className: styles.textureName, children: "Diffuse Map" }), jsxs("div", { style: { fontSize: 9, color: "#666" }, children: [(_b = mat.map.image) === null || _b === void 0 ? void 0 : _b.width, "\u00D7", (_c = mat.map.image) === null || _c === void 0 ? void 0 : _c.height] })] })] })), hasNormalMap && mat.normalMap && (jsxs("div", { className: styles.textureSlot, children: [jsx("div", { className: styles.textureThumb, children: mat.normalMap.image != null && (jsx("img", { src: (_d = mat.normalMap.image.src) !== null && _d !== void 0 ? _d : "", alt: "normal" })) }), jsx("div", { className: styles.textureInfo, children: jsx("div", { className: styles.textureName, children: "Normal Map" }) })] }))] }));
68
+ }, style: { flex: 1 } }), jsx("span", { style: { fontSize: 9, color: "#888", width: 28, textAlign: "right" }, children: mat.opacity.toFixed(2) })] }), jsxs("div", { className: styles.propRow, children: [jsx("span", { className: styles.propLabel, children: "Side" }), jsx(tn, { className: styles.propSelect, value: String(mat.side), onChange: (val) => {
69
+ mat.side = parseInt(val);
70
+ mat.needsUpdate = true;
71
+ onUpdate();
72
+ }, options: [
73
+ { value: String(THREE.FrontSide), label: "Front" },
74
+ { value: String(THREE.BackSide), label: "Back" },
75
+ { value: String(THREE.DoubleSide), label: "Double" },
76
+ ] })] }), hasMap && mat.map && (jsxs("div", { className: styles.textureSlot, children: [jsx("div", { className: styles.textureThumb, children: mat.map.image != null && (jsx("img", { src: (_a = mat.map.image.src) !== null && _a !== void 0 ? _a : "", alt: "diffuse" })) }), jsxs("div", { className: styles.textureInfo, children: [jsx("div", { className: styles.textureName, children: "Diffuse Map" }), jsxs("div", { style: { fontSize: 9, color: "#666" }, children: [(_b = mat.map.image) === null || _b === void 0 ? void 0 : _b.width, "\u00D7", (_c = mat.map.image) === null || _c === void 0 ? void 0 : _c.height] })] })] })), hasNormalMap && mat.normalMap && (jsxs("div", { className: styles.textureSlot, children: [jsx("div", { className: styles.textureThumb, children: mat.normalMap.image != null && (jsx("img", { src: (_d = mat.normalMap.image.src) !== null && _d !== void 0 ? _d : "", alt: "normal" })) }), jsx("div", { className: styles.textureInfo, children: jsx("div", { className: styles.textureName, children: "Normal Map" }) })] }))] }));
73
77
  };
74
78
 
75
79
  export { MaterialCard, Vec3Row, Vec3RowDeg };
@@ -1 +1 @@
1
- {"version":3,"file":"ModelEditorSubComponents.js","sources":["../../../src/model/ModelEditorSubComponents.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"ModelEditorSubComponents.js","sources":["../../../src/model/ModelEditorSubComponents.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx","NiceTextInput","NiceColorPicker","NiceSlider","NiceSelect"],"mappings":"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"}
@@ -1,14 +1,15 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
- import React from 'react';
2
+ import Ae from 'react';
3
3
  import styles from './ModelEditor.module.css.js';
4
4
  import { fmtTime } from './modelEditorTypes.js';
5
+ import { NiceButton as Ee, NiceSlider as Jr } from '../ui/dist/index.js';
5
6
 
6
- const ModelEditorTimeline = React.memo(({ api }) => {
7
+ const ModelEditorTimeline = Ae.memo(({ api }) => {
7
8
  const { bottomCollapsed, setBottomCollapsed, animations, activeAnimIdx, isPlaying, animTime, animDuration, animSpeed, setAnimSpeed, loopAnim, setLoopAnim, seekAnim, togglePlay, stopAnim, playClip, mergeInputRef, } = api;
8
- return (jsxs("div", { className: `${styles.bottomPanel} ${bottomCollapsed ? styles.bottomPanelCollapsed : ""}`, children: [jsxs("div", { className: styles.bottomPanelHeader, children: [jsx("span", { className: styles.bottomToggle, onClick: () => setBottomCollapsed((c) => !c), children: bottomCollapsed ? "▶" : "▼" }), jsxs("span", { className: styles.bottomPanelTitle, onClick: () => setBottomCollapsed((c) => !c), children: ["Animation (", animations.length, " clip", animations.length !== 1 ? "s" : "", ")"] }), jsx("div", { className: styles.menuSep }), jsxs("div", { className: styles.transportBar, children: [jsx("button", { className: styles.transportBtn, onClick: () => seekAnim(0), title: "Go to start", children: "\u23EE" }), jsx("button", { className: `${styles.transportBtn} ${isPlaying ? styles.transportBtnActive : ""}`, onClick: togglePlay, title: "Play/Pause (Space)", children: isPlaying ? "⏸" : "▶" }), jsx("button", { className: styles.transportBtn, onClick: stopAnim, title: "Stop", children: "\u23F9" }), jsx("button", { className: `${styles.transportBtn} ${loopAnim ? styles.transportBtnActive : ""}`, onClick: () => setLoopAnim((v) => !v), title: "Loop", children: "\uD83D\uDD01" })] }), jsxs("span", { className: styles.transportTime, children: [fmtTime(animTime), " / ", fmtTime(animDuration)] }), jsx("div", { className: styles.menuSep }), jsx("label", { className: styles.menuLabel, children: "Speed" }), jsx("input", { type: "range", min: 0.1, max: 3, step: 0.1, value: animSpeed, onChange: (e) => setAnimSpeed(parseFloat(e.target.value)), style: { width: 60, accentColor: "#5566cc" } }), jsxs("span", { className: styles.menuLabel, children: [animSpeed.toFixed(1), "\u00D7"] })] }), !bottomCollapsed && (jsxs("div", { className: styles.animListArea, children: [jsxs("div", { className: styles.animList, children: [animations.length === 0 && (jsx("div", { style: { color: "#666", fontSize: 10, padding: 8 }, children: "No animations loaded" })), animations.map((anim, i) => (jsxs("div", { className: `${styles.animItem} ${i === activeAnimIdx ? styles.animItemActive : ""}`, onClick: () => playClip(i), children: [jsx("span", { children: anim.name }), jsxs("span", { className: styles.animDuration, children: [anim.duration.toFixed(1), "s"] })] }, `${anim.name}-${i}`))), jsx("div", { style: { padding: "4px 8px" }, children: jsx("button", { className: styles.btnSecondary, style: { width: "100%", fontSize: 10 }, onClick: () => { var _a; return (_a = mergeInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "+ Add Animation File" }) })] }), jsxs("div", { className: styles.timelineArea, children: [jsxs("div", { className: styles.timelineRuler, children: [animDuration > 0 &&
9
+ return (jsxs("div", { className: `${styles.bottomPanel} ${bottomCollapsed ? styles.bottomPanelCollapsed : ""}`, children: [jsxs("div", { className: styles.bottomPanelHeader, children: [jsx("span", { className: styles.bottomToggle, onClick: () => setBottomCollapsed((c) => !c), children: bottomCollapsed ? "▶" : "▼" }), jsxs("span", { className: styles.bottomPanelTitle, onClick: () => setBottomCollapsed((c) => !c), children: ["Animation (", animations.length, " clip", animations.length !== 1 ? "s" : "", ")"] }), jsx("div", { className: styles.menuSep }), jsxs("div", { className: styles.transportBar, children: [jsx(Ee, { className: styles.transportBtn, variant: "ghost", size: "sm", onClick: () => seekAnim(0), title: "Go to start", children: "\u23EE" }), jsx(Ee, { className: styles.transportBtn, variant: isPlaying ? "primary" : "ghost", size: "sm", onClick: togglePlay, title: "Play/Pause (Space)", children: isPlaying ? "⏸" : "▶" }), jsx(Ee, { className: styles.transportBtn, variant: "ghost", size: "sm", onClick: stopAnim, title: "Stop", children: "\u23F9" }), jsx(Ee, { className: styles.transportBtn, variant: loopAnim ? "primary" : "ghost", size: "sm", onClick: () => setLoopAnim((v) => !v), title: "Loop", children: "\uD83D\uDD01" })] }), jsxs("span", { className: styles.transportTime, children: [fmtTime(animTime), " / ", fmtTime(animDuration)] }), jsx("div", { className: styles.menuSep }), jsx("label", { className: styles.menuLabel, children: "Speed" }), jsx(Jr, { min: 0.1, max: 3, step: 0.1, value: animSpeed, onChange: (val) => setAnimSpeed(val), style: { width: 60 } }), jsxs("span", { className: styles.menuLabel, children: [animSpeed.toFixed(1), "\u00D7"] })] }), !bottomCollapsed && (jsxs("div", { className: styles.animListArea, children: [jsxs("div", { className: styles.animList, children: [animations.length === 0 && (jsx("div", { style: { color: "#666", fontSize: 10, padding: 8 }, children: "No animations loaded" })), animations.map((anim, i) => (jsxs("div", { className: `${styles.animItem} ${i === activeAnimIdx ? styles.animItemActive : ""}`, onClick: () => playClip(i), children: [jsx("span", { children: anim.name }), jsxs("span", { className: styles.animDuration, children: [anim.duration.toFixed(1), "s"] })] }, `${anim.name}-${i}`))), jsx("div", { style: { padding: "4px 8px" }, children: jsx(Ee, { className: styles.btnSecondary, variant: "ghost", size: "sm", style: { width: "100%", fontSize: 10 }, onClick: () => { var _a; return (_a = mergeInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "+ Add Animation File" }) })] }), jsxs("div", { className: styles.timelineArea, children: [jsxs("div", { className: styles.timelineRuler, children: [animDuration > 0 &&
9
10
  Array.from({ length: Math.ceil(animDuration) + 1 }, (_, i) => {
10
11
  const pct = (i / animDuration) * 100;
11
- return (jsxs(React.Fragment, { children: [jsx("div", { className: styles.rulerTick, style: { left: `${pct}%` } }), jsxs("span", { className: styles.rulerLabel, style: { left: `${pct}%` }, children: [i, "s"] })] }, i));
12
+ return (jsxs(Ae.Fragment, { children: [jsx("div", { className: styles.rulerTick, style: { left: `${pct}%` } }), jsxs("span", { className: styles.rulerLabel, style: { left: `${pct}%` }, children: [i, "s"] })] }, i));
12
13
  }), animDuration > 0 && (jsx("div", { className: styles.playhead, style: {
13
14
  left: `${(animTime / animDuration) * 100}%`,
14
15
  height: "100%",
@@ -1 +1 @@
1
- {"version":3,"file":"ModelEditorTimeline.js","sources":["../../../src/model/ModelEditorTimeline.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"ModelEditorTimeline.js","sources":["../../../src/model/ModelEditorTimeline.tsx"],"sourcesContent":[null],"names":["React","_jsxs","_jsx","NiceButton","NiceSlider"],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
- import React from 'react';
2
+ import Ae from 'react';
3
3
  import styles from './ModelEditor.module.css.js';
4
+ import { NiceButton as Ee } from '../ui/dist/index.js';
4
5
 
5
- const ModelEditorToolbar = React.memo(({ api }) => {
6
+ const ModelEditorToolbar = Ae.memo(({ api }) => {
6
7
  const { transformMode, setTransformMode, snapEnabled, setSnapEnabled, gizmoSpace, setGizmoSpace, rootObjectRef, focusOnObject, setCameraPreset, deleteSelected, duplicateSelected, selectedNode, } = api;
7
- return (jsxs("div", { className: styles.toolbar, children: [jsx("button", { className: `${styles.toolBtn} ${transformMode === "translate" ? styles.toolBtnActive : ""}`, onClick: () => setTransformMode("translate"), title: "Translate (G)", children: "\u2725" }), jsx("button", { className: `${styles.toolBtn} ${transformMode === "rotate" ? styles.toolBtnActive : ""}`, onClick: () => setTransformMode("rotate"), title: "Rotate (R)", children: "\u21BB" }), jsx("button", { className: `${styles.toolBtn} ${transformMode === "scale" ? styles.toolBtnActive : ""}`, onClick: () => setTransformMode("scale"), title: "Scale (S)", children: "\u2B21" }), jsx("div", { className: styles.toolSep }), jsx("button", { className: `${styles.toolBtn} ${snapEnabled ? styles.toolBtnActive : ""}`, onClick: () => setSnapEnabled((v) => !v), title: `Snap to Grid (${snapEnabled ? "ON" : "OFF"})`, children: "\uD83E\uDDF2" }), jsx("button", { className: styles.toolBtn, onClick: () => setGizmoSpace((s) => (s === "local" ? "world" : "local")), title: `Orientation: ${gizmoSpace}`, children: gizmoSpace === "local" ? "🔶" : "🌐" }), jsx("div", { className: styles.toolSep }), jsx("button", { className: styles.toolBtn, onClick: () => rootObjectRef.current && focusOnObject(rootObjectRef.current), title: "Focus (F)", children: "\u25CE" }), jsx("button", { className: styles.toolBtn, onClick: () => setCameraPreset("front"), title: "Front view (Numpad 1)", children: "1" }), jsx("button", { className: styles.toolBtn, onClick: () => setCameraPreset("right"), title: "Right view (Numpad 3)", children: "3" }), jsx("button", { className: styles.toolBtn, onClick: () => setCameraPreset("top"), title: "Top view (Numpad 7)", children: "7" }), jsx("div", { className: styles.toolSep }), jsx("button", { className: styles.toolBtn, onClick: deleteSelected, title: "Delete selected (Del)", children: "\uD83D\uDDD1" }), jsx("button", { className: styles.toolBtn, onClick: duplicateSelected, title: "Duplicate (Shift+D)", disabled: !selectedNode, children: "\uD83D\uDCCB" })] }));
8
+ return (jsxs("div", { className: styles.toolbar, children: [jsx(Ee, { className: styles.toolBtn, variant: transformMode === "translate" ? "primary" : "ghost", size: "sm", onClick: () => setTransformMode("translate"), title: "Translate (G)", children: "\u2725" }), jsx(Ee, { className: styles.toolBtn, variant: transformMode === "rotate" ? "primary" : "ghost", size: "sm", onClick: () => setTransformMode("rotate"), title: "Rotate (R)", children: "\u21BB" }), jsx(Ee, { className: styles.toolBtn, variant: transformMode === "scale" ? "primary" : "ghost", size: "sm", onClick: () => setTransformMode("scale"), title: "Scale (S)", children: "\u2B21" }), jsx("div", { className: styles.toolSep }), jsx(Ee, { className: styles.toolBtn, variant: snapEnabled ? "primary" : "ghost", size: "sm", onClick: () => setSnapEnabled((v) => !v), title: `Snap to Grid (${snapEnabled ? "ON" : "OFF"})`, children: "\uD83E\uDDF2" }), jsx(Ee, { className: styles.toolBtn, variant: "ghost", size: "sm", onClick: () => setGizmoSpace((s) => (s === "local" ? "world" : "local")), title: `Orientation: ${gizmoSpace}`, children: gizmoSpace === "local" ? "🔶" : "🌐" }), jsx("div", { className: styles.toolSep }), jsx(Ee, { className: styles.toolBtn, variant: "ghost", size: "sm", onClick: () => rootObjectRef.current && focusOnObject(rootObjectRef.current), title: "Focus (F)", children: "\u25CE" }), jsx(Ee, { className: styles.toolBtn, variant: "ghost", size: "sm", onClick: () => setCameraPreset("front"), title: "Front view (Numpad 1)", children: "1" }), jsx(Ee, { className: styles.toolBtn, variant: "ghost", size: "sm", onClick: () => setCameraPreset("right"), title: "Right view (Numpad 3)", children: "3" }), jsx(Ee, { className: styles.toolBtn, variant: "ghost", size: "sm", onClick: () => setCameraPreset("top"), title: "Top view (Numpad 7)", children: "7" }), jsx("div", { className: styles.toolSep }), jsx(Ee, { className: styles.toolBtn, variant: "ghost", size: "sm", onClick: deleteSelected, title: "Delete selected (Del)", children: "\uD83D\uDDD1" }), jsx(Ee, { className: styles.toolBtn, variant: "ghost", size: "sm", onClick: duplicateSelected, title: "Duplicate (Shift+D)", disabled: !selectedNode, children: "\uD83D\uDCCB" })] }));
8
9
  });
9
10
  ModelEditorToolbar.displayName = "ModelEditorToolbar";
10
11
 
@@ -1 +1 @@
1
- {"version":3,"file":"ModelEditorToolbar.js","sources":["../../../src/model/ModelEditorToolbar.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"ModelEditorToolbar.js","sources":["../../../src/model/ModelEditorToolbar.tsx"],"sourcesContent":[null],"names":["React","_jsxs","_jsx","NiceButton"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
- import React from 'react';
2
+ import Ae from 'react';
3
3
  import styles from './ModelEditor.module.css.js';
4
4
 
5
- const ModelEditorViewport = React.memo(({ api }) => {
5
+ const ModelEditorViewport = Ae.memo(({ api }) => {
6
6
  const { mountRef, dragOver, handleDragOver, handleDragLeave, handleDrop, handleViewportClick, handleContextMenu, editorMode, polyCount, meshCount, boneCount, shadingMode, setShadingMode, gizmoSpace, setGizmoSpace, contextMenu, closeContextMenu, addPrimitive, addSceneLight, duplicateSelected, deleteSelected, selectedNode, rootObjectRef, focusOnObject, snapEnabled, setSnapEnabled, } = api;
7
7
  return (jsxs(Fragment, { children: [jsxs("div", { ref: mountRef, className: `${styles.viewportContainer} ${dragOver ? styles.dragOver : ""}`, onDragOver: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop, onClick: handleViewportClick, onContextMenu: handleContextMenu, children: [jsxs("div", { className: styles.viewportOverlay, children: [jsxs("span", { className: styles.viewportBadge, children: [editorMode.toUpperCase(), " MODE"] }), jsxs("span", { className: styles.viewportBadge, children: [polyCount.toLocaleString(), " tris \u00B7 ", meshCount, " meshes \u00B7 ", boneCount, " bones"] })] }), jsx("div", { className: styles.viewportShadingBar, children: ["wireframe", "solid", "material", "rendered"].map((m) => (jsx("button", { className: `${styles.shadingBtn} ${shadingMode === m ? styles.shadingBtnActive : ""}`, onClick: (e) => { e.stopPropagation(); setShadingMode(m); }, title: m.charAt(0).toUpperCase() + m.slice(1), children: m === "wireframe" ? "◇" : m === "solid" ? "◆" : m === "material" ? "🎨" : "☀" }, m))) }), jsx("div", { className: styles.viewportGizmoInfo, children: jsx("button", { className: styles.shadingBtn, onClick: (e) => {
8
8
  e.stopPropagation();
@@ -1 +1 @@
1
- {"version":3,"file":"ModelEditorViewport.js","sources":["../../../src/model/ModelEditorViewport.tsx"],"sourcesContent":[null],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"ModelEditorViewport.js","sources":["../../../src/model/ModelEditorViewport.tsx"],"sourcesContent":[null],"names":["React","_jsxs","_Fragment","_jsx"],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
+ import { useState, useRef, useCallback } from 'react';
3
+ import styles from './ModelViewer.module.css.js';
4
+ import { useModelViewer } from './useModelViewer.js';
5
+ import { NiceButton as Ee, NiceSelect as tn, NiceSlider as Jr } from '../ui/dist/index.js';
6
+
7
+ const NAV_LABELS = {
8
+ orbit: '🌍 Orbit',
9
+ fps: '🚶 FPS',
10
+ fly: '✈️ Fly',
11
+ walkthrough: '🏠 Walk',
12
+ };
13
+ const NiceModelViewer = ({ className, showToolbar = true, showStatusBar = true, showInfoPanel = true, toolbarExtra, onFileDrop, children, ...viewerProps }) => {
14
+ const api = useModelViewer(viewerProps);
15
+ const [panelOpen, setPanelOpen] = useState(false);
16
+ const [dragOver, setDragOver] = useState(false);
17
+ const fileInputRef = useRef(null);
18
+ /* ── drag & drop ── */
19
+ const handleDragOver = useCallback((e) => {
20
+ e.preventDefault();
21
+ setDragOver(true);
22
+ }, []);
23
+ const handleDragLeave = useCallback((e) => {
24
+ e.preventDefault();
25
+ setDragOver(false);
26
+ }, []);
27
+ const handleDrop = useCallback((e) => {
28
+ var _a;
29
+ e.preventDefault();
30
+ setDragOver(false);
31
+ const file = (_a = e.dataTransfer.files) === null || _a === void 0 ? void 0 : _a[0];
32
+ if (file) {
33
+ onFileDrop === null || onFileDrop === void 0 ? void 0 : onFileDrop(file);
34
+ api.loadFile(file);
35
+ }
36
+ }, [api, onFileDrop]);
37
+ /* ── nav cycle ── */
38
+ const navModes = ['orbit', 'fps', 'fly', 'walkthrough'];
39
+ const cycleNav = useCallback(() => {
40
+ const idx = navModes.indexOf(api.navigationMode);
41
+ api.setNavigationMode(navModes[(idx + 1) % navModes.length]);
42
+ }, [api]);
43
+ return (jsxs("div", { className: `${styles.root} ${className !== null && className !== void 0 ? className : ''}`, children: [showToolbar && (jsxs("div", { className: styles.toolbar, children: [jsx(Ee, { className: styles.toolBtn, variant: "ghost", size: "sm", title: "Open file\u2026", onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "\uD83D\uDCC2 Open" }), jsx("input", { ref: fileInputRef, type: "file", accept: ".fbx,.glb,.gltf,.obj,.dae,.stl,.ply", style: { display: 'none' }, onChange: (e) => {
44
+ var _a;
45
+ const f = (_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0];
46
+ if (f)
47
+ api.loadFile(f);
48
+ e.target.value = '';
49
+ } }), jsx("div", { className: styles.toolSep }), jsx(Ee, { className: styles.toolBtn, variant: "ghost", size: "sm", title: "Navigation mode", onClick: cycleNav, children: NAV_LABELS[api.navigationMode] }), jsx(Ee, { className: styles.toolBtn, variant: api.wireframe ? 'primary' : 'ghost', size: "sm", onClick: () => api.setWireframe(!api.wireframe), title: "Wireframe", children: "\uD83D\uDD32" }), jsx(Ee, { className: styles.toolBtn, variant: api.showGrid ? 'primary' : 'ghost', size: "sm", onClick: () => api.setShowGrid(!api.showGrid), title: "Grid", children: "\u229E" }), jsx(Ee, { className: styles.toolBtn, variant: api.clippingEnabled ? 'primary' : 'ghost', size: "sm", onClick: () => api.setClippingEnabled(!api.clippingEnabled), title: "Clipping plane", children: "\u2702\uFE0F" }), api.clippingEnabled && (jsxs(Fragment, { children: [jsx(tn, { className: styles.animSelect, value: api.clippingAxis, onChange: (val) => api.setClippingAxis(val), options: [
50
+ { value: 'x', label: 'X' },
51
+ { value: 'y', label: 'Y' },
52
+ { value: 'z', label: 'Z' },
53
+ ] }), jsx(Jr, { min: -10, max: 10, step: 0.1, value: api.clippingPosition, onChange: (val) => api.setClippingPosition(val), style: { width: 60 } })] })), jsx("div", { className: styles.toolSep }), jsx(Ee, { className: styles.toolBtn, variant: "ghost", size: "sm", onClick: api.zoomToFit, title: "Zoom to fit", children: "\uD83D\uDD0D" }), jsx(Ee, { className: styles.toolBtn, variant: "ghost", size: "sm", onClick: api.resetCamera, title: "Reset camera", children: "\uD83C\uDFE0" }), jsx("div", { className: styles.toolSep }), jsx(Ee, { className: styles.toolBtn, variant: "ghost", size: "sm", onClick: () => {
54
+ const url = api.screenshot();
55
+ const a = document.createElement('a');
56
+ a.href = url;
57
+ a.download = 'screenshot.png';
58
+ a.click();
59
+ }, title: "Screenshot", children: "\uD83D\uDCF7" }), jsx(Ee, { className: styles.toolBtn, variant: "ghost", size: "sm", onClick: api.toggleFullscreen, title: "Fullscreen", children: api.isFullscreen ? '⊡' : '⛶' }), toolbarExtra, showInfoPanel && (jsx("div", { className: styles.toolRight, children: jsx(Ee, { className: `${styles.toolBtn} ${panelOpen ? styles.active : ''}`, variant: panelOpen ? 'primary' : 'ghost', size: "sm", onClick: () => setPanelOpen(!panelOpen), title: "Info panel", children: "\u2139\uFE0F" }) }))] })), jsxs("div", { className: styles.viewport, ref: api.mountRef, tabIndex: 0, onDragOver: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop, children: [api.loading && (jsxs("div", { className: styles.loadingOverlay, children: [jsx("span", { className: styles.loadingText, children: "Loading model\u2026" }), jsx("div", { className: styles.loadingBar, children: jsx("div", { className: styles.loadingBarFill, style: { width: `${(api.loadProgress * 100).toFixed(0)}%` } }) })] })), api.error && (jsxs("div", { className: styles.errorOverlay, children: [jsx("span", { style: { fontSize: 28 }, children: "\u26A0\uFE0F" }), jsx("span", { style: { marginTop: 8 }, children: api.error })] })), dragOver && (jsx("div", { className: styles.dropZone, children: "Drop 3D model file here" }))] }), jsxs("div", { className: `${styles.sidePanel} ${!panelOpen ? styles.hidden : ''}`, children: [jsxs("div", { className: styles.panelSection, children: [jsx("div", { className: styles.panelTitle, children: "Model Info" }), jsxs("div", { className: styles.panelRow, children: [jsx("label", { children: "Triangles" }), jsx("span", { children: api.polyCount.toLocaleString() })] }), jsxs("div", { className: styles.panelRow, children: [jsx("label", { children: "Meshes" }), jsx("span", { children: api.meshCount })] }), api.dimensions && (jsxs(Fragment, { children: [jsxs("div", { className: styles.panelRow, children: [jsx("label", { children: "Width" }), jsx("span", { children: api.dimensions.width })] }), jsxs("div", { className: styles.panelRow, children: [jsx("label", { children: "Height" }), jsx("span", { children: api.dimensions.height })] }), jsxs("div", { className: styles.panelRow, children: [jsx("label", { children: "Depth" }), jsx("span", { children: api.dimensions.depth })] })] }))] }), jsxs("div", { className: styles.panelSection, children: [jsx("div", { className: styles.panelTitle, children: "Navigation" }), navModes.map((m) => (jsx(Ee, { className: styles.toolBtn, variant: api.navigationMode === m ? 'primary' : 'ghost', size: "sm", onClick: () => api.setNavigationMode(m), children: NAV_LABELS[m] }, m)))] }), jsxs("div", { className: styles.panelSection, children: [jsx("div", { className: styles.panelTitle, children: "Auto Rotate" }), jsx(Jr, { min: 0, max: 10, step: 0.5, value: api.autoRotateSpeed, onChange: (val) => api.setAutoRotateSpeed(val), style: { width: '100%' } })] }), api.animations.length > 0 && (jsxs("div", { className: styles.panelSection, children: [jsx("div", { className: styles.panelTitle, children: "Animations" }), api.animations.map((name, i) => (jsxs(Ee, { className: styles.toolBtn, variant: api.activeAnimIdx === i ? 'primary' : 'ghost', size: "sm", onClick: () => api.playAnimation(i), children: ["\u25B6 ", name] }, i)))] }))] }), jsxs("div", { className: `${styles.animBar} ${api.animations.length === 0 ? styles.hidden : ''}`, children: [jsx(Ee, { className: styles.toolBtn, variant: "ghost", size: "sm", onClick: api.togglePlay, children: api.isPlaying ? '⏸' : '▶' }), jsx(tn, { className: styles.animSelect, value: String(api.activeAnimIdx), onChange: (val) => api.playAnimation(parseInt(val)), options: api.animations.map((n, i) => ({ value: String(i), label: n })) }), jsx(Jr, { className: styles.animSlider, min: 0, max: api.animDuration || 1, step: 0.01, value: api.animTime, onChange: (val) => api.seekAnim(val) }), jsxs("span", { className: styles.toolLabel, children: [api.animTime.toFixed(1), "s / ", api.animDuration.toFixed(1), "s"] })] }), showStatusBar && (jsxs("div", { className: styles.statusBar, children: [jsx("span", { children: api.statusText }), jsxs("div", { className: styles.statusRight, children: [jsx("span", { children: NAV_LABELS[api.navigationMode] }), api.dimensions && (jsxs("span", { children: [api.dimensions.width, "\u00D7", api.dimensions.height, "\u00D7", api.dimensions.depth] }))] })] })), children === null || children === void 0 ? void 0 : children(api)] }));
60
+ };
61
+ /** @deprecated Use NiceModelViewer */
62
+ const ModelViewer = NiceModelViewer;
63
+
64
+ export { ModelViewer, NiceModelViewer };
65
+ //# sourceMappingURL=ModelViewer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelViewer.js","sources":["../../../src/model/ModelViewer.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx","NiceButton","_Fragment","NiceSelect","NiceSlider"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ var styles = {"root":"ModelViewer-module_root__6Fbj3","toolbar":"ModelViewer-module_toolbar__EQJRN","toolBtn":"ModelViewer-module_toolBtn__f9833","active":"ModelViewer-module_active__MgURC","toolSep":"ModelViewer-module_toolSep__5zuAK","toolLabel":"ModelViewer-module_toolLabel__PcpJC","toolRight":"ModelViewer-module_toolRight__VSuzD","viewport":"ModelViewer-module_viewport__-1llx","loadingOverlay":"ModelViewer-module_loadingOverlay__Ayyci","loadingBar":"ModelViewer-module_loadingBar__RDqVv","loadingBarFill":"ModelViewer-module_loadingBarFill__zvIoP","loadingText":"ModelViewer-module_loadingText__6OGeA","errorOverlay":"ModelViewer-module_errorOverlay__ASUqN","sidePanel":"ModelViewer-module_sidePanel__-QFkd","hidden":"ModelViewer-module_hidden__yoMuq","panelSection":"ModelViewer-module_panelSection__bH-O3","panelTitle":"ModelViewer-module_panelTitle__xsn3e","panelRow":"ModelViewer-module_panelRow__3QxnD","animBar":"ModelViewer-module_animBar__qcYi5","animSlider":"ModelViewer-module_animSlider__9AQzN","animSelect":"ModelViewer-module_animSelect__LhFWD","statusBar":"ModelViewer-module_statusBar__-3uuA","statusRight":"ModelViewer-module_statusRight__vI51s","dropZone":"ModelViewer-module_dropZone__eNrPo"};
2
+
3
+ export { styles as default };
4
+ //# sourceMappingURL=ModelViewer.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelViewer.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}