@nice2dev/ui-3d 1.1.10 → 1.2.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 (86) hide show
  1. package/CHANGELOG.md +173 -0
  2. package/README.md +11 -15
  3. package/dist/cjs/core/editorAsk.js +48 -0
  4. package/dist/cjs/core/i18n.js +7 -3
  5. package/dist/cjs/core/threeCompat.js +52 -0
  6. package/dist/cjs/dance/DanceScoreEngine.js +7 -0
  7. package/dist/cjs/dance/PoseDetector.js +116 -64
  8. package/dist/cjs/index.js +0 -3
  9. package/dist/cjs/material/NiceMaterialEditor.js +7 -3
  10. package/dist/cjs/material/materialEditorTypes.js +1 -1
  11. package/dist/cjs/material/materialNodeDefinitions.js +14 -11
  12. package/dist/cjs/model/ModelEditor.js +3 -5
  13. package/dist/cjs/model/ModelEditorLeftPanel.js +10 -4
  14. package/dist/cjs/model/ModelEditorMenuBar.js +7 -5
  15. package/dist/cjs/model/ModelEditorRightPanel.js +18 -16
  16. package/dist/cjs/model/ModelEditorSubComponents.js +8 -6
  17. package/dist/cjs/model/ModelEditorTimeline.js +6 -4
  18. package/dist/cjs/model/ModelEditorToolbar.js +6 -4
  19. package/dist/cjs/model/ModelEditorViewport.js +16 -6
  20. package/dist/cjs/model/ModelViewer.js +6 -7
  21. package/dist/cjs/model/NiceArmatureEditor.js +8 -6
  22. package/dist/cjs/model/NiceMorphTargetEditor.js +5 -3
  23. package/dist/cjs/model/NiceOctree.js +3 -1
  24. package/dist/cjs/model/NicePhysicsSimulation.js +7 -5
  25. package/dist/cjs/model/NiceProceduralGeometry.js +5 -3
  26. package/dist/cjs/model/NiceTerrainEditor.js +10 -8
  27. package/dist/cjs/model/NiceWeightPainter.js +6 -4
  28. package/dist/cjs/model/NiceXRPreview.js +7 -5
  29. package/dist/cjs/model/useModelEditor.js +30 -18
  30. package/dist/cjs/model/useModelViewer.js +13 -9
  31. package/dist/cjs/nice2dev-ui-3d.css +1 -1
  32. package/dist/cjs/particle/NiceParticleEditor.js +14 -9
  33. package/dist/cjs/rendering/NiceCascadedShadows.js +3 -1
  34. package/dist/cjs/rendering/NiceRenderExport.js +11 -5
  35. package/dist/cjs/rendering/NiceSSAO.js +3 -1
  36. package/dist/cjs/rendering/NiceSSR.js +3 -1
  37. package/dist/cjs/rendering/NiceWebGPURenderer.js +7 -4
  38. package/dist/cjs/uv/NiceUVEditor.js +16 -12
  39. package/dist/cjs/uv/uvEditorTypes.js +1 -0
  40. package/dist/esm/core/editorAsk.js +45 -0
  41. package/dist/esm/core/i18n.js +8 -4
  42. package/dist/esm/core/threeCompat.js +30 -0
  43. package/dist/esm/dance/DanceScoreEngine.js +7 -0
  44. package/dist/esm/dance/PoseDetector.js +118 -65
  45. package/dist/esm/index.js +3 -3
  46. package/dist/esm/material/NiceMaterialEditor.js +7 -3
  47. package/dist/esm/material/materialEditorTypes.js +1 -1
  48. package/dist/esm/material/materialNodeDefinitions.js +14 -11
  49. package/dist/esm/model/ModelEditor.js +4 -5
  50. package/dist/esm/model/ModelEditorLeftPanel.js +10 -4
  51. package/dist/esm/model/ModelEditorMenuBar.js +7 -5
  52. package/dist/esm/model/ModelEditorRightPanel.js +18 -16
  53. package/dist/esm/model/ModelEditorSubComponents.js +8 -6
  54. package/dist/esm/model/ModelEditorTimeline.js +6 -4
  55. package/dist/esm/model/ModelEditorToolbar.js +6 -4
  56. package/dist/esm/model/ModelEditorViewport.js +16 -6
  57. package/dist/esm/model/ModelViewer.js +7 -7
  58. package/dist/esm/model/NiceArmatureEditor.js +9 -7
  59. package/dist/esm/model/NiceMorphTargetEditor.js +5 -3
  60. package/dist/esm/model/NiceOctree.js +3 -1
  61. package/dist/esm/model/NicePhysicsSimulation.js +7 -5
  62. package/dist/esm/model/NiceProceduralGeometry.js +5 -3
  63. package/dist/esm/model/NiceTerrainEditor.js +10 -8
  64. package/dist/esm/model/NiceWeightPainter.js +6 -4
  65. package/dist/esm/model/NiceXRPreview.js +7 -5
  66. package/dist/esm/model/useModelEditor.js +30 -18
  67. package/dist/esm/model/useModelViewer.js +13 -9
  68. package/dist/esm/nice2dev-ui-3d.css +1 -1
  69. package/dist/esm/particle/NiceParticleEditor.js +14 -9
  70. package/dist/esm/rendering/NiceCascadedShadows.js +3 -1
  71. package/dist/esm/rendering/NiceRenderExport.js +11 -5
  72. package/dist/esm/rendering/NiceSSAO.js +3 -1
  73. package/dist/esm/rendering/NiceSSR.js +3 -1
  74. package/dist/esm/rendering/NiceWebGPURenderer.js +7 -4
  75. package/dist/esm/uv/NiceUVEditor.js +16 -12
  76. package/dist/esm/uv/uvEditorTypes.js +1 -0
  77. package/dist/types/core/editorAsk.d.ts +26 -0
  78. package/dist/types/core/i18n.d.ts +1 -17
  79. package/dist/types/core/threeCompat.d.ts +14 -0
  80. package/dist/types/dance/DanceScoreEngine.d.ts +0 -6
  81. package/dist/types/dance/PoseDetector.d.ts +14 -13
  82. package/dist/types/index.d.ts +4 -4
  83. package/dist/types/model/ModelEditor.d.ts +0 -4
  84. package/dist/types/model/ModelViewer.d.ts +0 -4
  85. package/dist/types/model/useModelEditor.d.ts +3 -0
  86. package/package.json +3 -3
@@ -2,11 +2,11 @@
2
2
  * @nice2dev/ui-3d — Public API
3
3
  *
4
4
  * Tree-shakeable exports. Import only what you need:
5
- * import { ModelEditor } from '@nice2dev/ui-3d';
5
+ * import { NiceModelEditor } from '@nice2dev/ui-3d';
6
6
  * import { NiceI18nProvider } from '@nice2dev/ui-3d';
7
7
  */
8
- export { NiceModelEditor, ModelEditor, type NiceModelEditorProps, type ModelEditorProps, } from './model/ModelEditor';
9
- export { NiceModelViewer, ModelViewer, type NiceModelViewerProps, type ModelViewerProps, } from './model/ModelViewer';
8
+ export { NiceModelEditor, type NiceModelEditorProps } from './model/ModelEditor';
9
+ export { NiceModelViewer, type NiceModelViewerProps } from './model/ModelViewer';
10
10
  export { type CADTool, type CADSnapMode, type CADUnit, type CADGridConfig, type WallSegment, type WallOpening, type FloorPlan, type RoomDefinition, type RoomType, type StairConfig, type Annotation, type CADSettings, type DXFEntity, DEFAULT_CAD_SETTINGS, UNIT_SCALES, ROOM_COLORS, WALL_MATERIALS, FLOOR_MATERIALS, createCADGrid, snapToCADGrid, } from './model/cadModeUtils';
11
11
  export { type FurnitureCategory, type FurnitureItem, type PlacedFurniture, type RoomLayout, type SimsTool, type SimsState, FURNITURE_CATALOG, FURNITURE_CATEGORIES, ROOM_PRESETS, createFurnitureMesh, placeFurnitureInScene, removeFurnitureFromScene, rotatePlacedItem, resizePlacedItem, createDragPreview, getFloorIntersection, checkFurnitureCollision, applyRoomLayout, calculateBudget, } from './model/simsModeUtils';
12
12
  export { useModelEditor } from './model/useModelEditor';
@@ -15,7 +15,7 @@ export { NiceI18nProvider, useNiceTranslation, type NiceTranslateFn, type NiceI1
15
15
  export { UndoRedoStack, type UndoAction, PBR_PRESETS, type PBRPreset, applyPBRPreset, createMaterialFromPreset, generateLOD, type LODLevel, convertToInstanced, countTriangles, computeSceneBounds, measureDistance, measureAngle, type Measurement, HDRI_PRESETS, type HDRIPreset, applyHDRIPreset, snapToGrid, snapToVertex, snapToEdge, snapMulti, type SnapTarget, type SnapResult, evaluateTrack, setKeyframe, removeKeyframe, toThreeKeyframeTrack, createAnimationClip, type Keyframe, type KeyframeTrack, downloadBlob, exportSceneGLTF, exportSceneUSDZ, type ExportOptions, crossfadeAnimations, makeAdditiveAction, blendAnimations, subclip, type AnimationBlendConfig, solveIKChain, type IKChain, createViewportCamera, renderMultiViewport, QUAD_VIEWPORT, type ViewportPreset, type ViewportConfig, } from './model/modelEditorUtils';
16
16
  export { EditorShortcutManager, type EditorShortcut, type EditorShortcutBinding, type EditorShortcutConfig, } from './model/editorShortcuts';
17
17
  export type { Pose3DSequenceResult, Pose3DFrame, PosePerson3D, PoseKeypoint3D, SceneNode, AnimClip, TransformMode, ShadingMode, EditorMode, } from './model/modelEditorTypes';
18
- export { NicePoseDetector, PoseDetector, usePoseDetection, type NicePoseDetectorProps, type NicePoseDetectorHandle, type NicePoseDetectorConfig, type PoseDetectorProps, type PoseDetectorHandle, type PoseDetectorConfig, type PoseBackend, } from './dance/PoseDetector';
18
+ export { NicePoseDetector, usePoseDetection, type NicePoseDetectorProps, type NicePoseDetectorHandle, type NicePoseDetectorConfig, type NicePoseDetectorFn, type PoseBackend, } from './dance/PoseDetector';
19
19
  export { DanceScoreEngine, useDanceScore, type DanceScoreConfig, type FrameScore, type DanceSessionResult, type HitRating, type KeypointScore, } from './dance/DanceScoreEngine';
20
20
  export { DanceBridge, useDanceBridge, rhythmToBeatSync, type DanceBridgeConfig, type DanceBridgeCallbacks, type DanceBridgeHandle, type DanceSessionState, type BeatSync, } from './dance/DanceBridge';
21
21
  export { NiceUVEditor, type NiceUVEditorProps } from './uv/NiceUVEditor';
@@ -13,9 +13,5 @@ export interface NiceModelEditorProps {
13
13
  /** Optional AI pose-from-video callback. If omitted the AI video button is hidden. */
14
14
  onAIPoseVideo?: (file: File) => Promise<import('./modelEditorTypes').Pose3DSequenceResult>;
15
15
  }
16
- /** @deprecated Use NiceModelEditorProps */
17
- export type ModelEditorProps = NiceModelEditorProps;
18
16
  export declare const NiceModelEditor: React.FC<NiceModelEditorProps>;
19
- /** @deprecated Use NiceModelEditor */
20
- export declare const ModelEditor: React.FC<NiceModelEditorProps>;
21
17
  export default NiceModelEditor;
@@ -23,9 +23,5 @@ export interface NiceModelViewerProps extends UseModelViewerProps {
23
23
  /** Render prop — exposes the full API. */
24
24
  children?: (api: ModelViewerAPI) => React.ReactNode;
25
25
  }
26
- /** @deprecated Use NiceModelViewerProps */
27
- export type ModelViewerProps = NiceModelViewerProps;
28
26
  export declare const NiceModelViewer: React.FC<NiceModelViewerProps>;
29
- /** @deprecated Use NiceModelViewer */
30
- export declare const ModelViewer: React.FC<NiceModelViewerProps>;
31
27
  export default NiceModelViewer;
@@ -6,6 +6,7 @@
6
6
  * Extracted from the original ModelEditor.tsx god-component.
7
7
  */
8
8
  import * as THREE from 'three';
9
+ import { type EditorAsk } from '../core/editorAsk';
9
10
  import { type SceneNode, type AnimClip, type TransformMode, type ShadingMode, type EditorMode, type PropTab, type AddMenuCat, type Pose3DSequenceResult } from './modelEditorTypes';
10
11
  import { type PBRPreset, type HDRIPreset, type SnapResult } from './modelEditorUtils';
11
12
  export interface UseModelEditorProps {
@@ -43,6 +44,8 @@ export interface ModelEditorAPI {
43
44
  bgColor: string;
44
45
  setBgColor: React.Dispatch<React.SetStateAction<string>>;
45
46
  statusText: string;
47
+ /** The question the editor waits on (clear scene, library name); render it with `EditorAskDialog`. */
48
+ pendingAsk: EditorAsk | null;
46
49
  dragOver: boolean;
47
50
  polyCount: number;
48
51
  meshCount: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nice2dev/ui-3d",
3
- "version": "1.1.10",
3
+ "version": "1.2.1",
4
4
  "description": "Nice2Dev 3D Editor — Blender-style 3D model editor component for React, powered by Three.js",
5
5
  "author": "NiceToDev <contact@nicetodev.com>",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -59,13 +59,13 @@
59
59
  "nicetodev"
60
60
  ],
61
61
  "peerDependencies": {
62
- "@nice2dev/ui": "^1.0.20",
62
+ "@nice2dev/ui": "^1.2.0",
63
63
  "react": ">=17.0.0",
64
64
  "react-dom": ">=17.0.0",
65
65
  "three": ">=0.150.0"
66
66
  },
67
67
  "devDependencies": {
68
- "@nice2dev/ui": "^1.1.10",
68
+ "@nice2dev/ui": "^1.2.1",
69
69
  "@rollup/plugin-commonjs": "^29.0.3",
70
70
  "@rollup/plugin-node-resolve": "^16.0.3",
71
71
  "@rollup/plugin-typescript": "^12.3.0",