@nice2dev/game-engine 1.1.7 → 1.1.9

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 (487) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/dist/cjs/devtools/DeveloperExperience.js +5 -5
  3. package/dist/cjs/dialogue/DialogueSystem.js +1 -1
  4. package/dist/cjs/editor/AssetBrowser.js +26 -25
  5. package/dist/cjs/editor/NiceGameEditor.js +66 -49
  6. package/dist/cjs/godot-integration/components/GodotProjectBrowser.js +33 -32
  7. package/dist/cjs/i18n/I18n.js +305 -0
  8. package/dist/cjs/kids/KidMode.js +36 -36
  9. package/dist/cjs/kids/KidTools.js +31 -31
  10. package/dist/cjs/native-engine/InputSystem.js +9 -2
  11. package/dist/cjs/plugins/PluginSDK.js +1 -1
  12. package/dist/cjs/plugins/PluginTestKit.js +1 -1
  13. package/dist/cjs/quest/QuestSystem.js +5 -1
  14. package/dist/cjs/tutorials/TutorialBranching.js +12 -12
  15. package/dist/cjs/tutorials/TutorialEngine.js +35 -35
  16. package/dist/cjs/tutorials/content/Tutorials_T05_T08.js +75 -75
  17. package/dist/cjs/tutorials/content/Tutorials_T09_T11.js +24 -24
  18. package/dist/cjs/tutorials/content/Tutorials_T12_T15.js +33 -33
  19. package/dist/cjs/unity-integration/components/UnityAssetStoreBrowser.js +25 -24
  20. package/dist/cjs/unity-integration/components/UnityProjectBrowser.js +28 -27
  21. package/dist/cjs/unreal-integration/components/UnrealProjectBrowser.js +31 -30
  22. package/dist/esm/devtools/DeveloperExperience.js +5 -5
  23. package/dist/esm/dialogue/DialogueSystem.js +1 -1
  24. package/dist/esm/editor/AssetBrowser.js +26 -25
  25. package/dist/esm/editor/NiceGameEditor.js +67 -50
  26. package/dist/esm/godot-integration/components/GodotProjectBrowser.js +33 -32
  27. package/dist/esm/i18n/I18n.js +305 -0
  28. package/dist/esm/kids/KidMode.js +36 -36
  29. package/dist/esm/kids/KidTools.js +31 -31
  30. package/dist/esm/native-engine/InputSystem.js +9 -2
  31. package/dist/esm/plugins/PluginSDK.js +1 -1
  32. package/dist/esm/plugins/PluginTestKit.js +1 -1
  33. package/dist/esm/quest/QuestSystem.js +5 -1
  34. package/dist/esm/tutorials/TutorialBranching.js +12 -12
  35. package/dist/esm/tutorials/TutorialEngine.js +35 -35
  36. package/dist/esm/tutorials/content/Tutorials_T05_T08.js +75 -75
  37. package/dist/esm/tutorials/content/Tutorials_T09_T11.js +24 -24
  38. package/dist/esm/tutorials/content/Tutorials_T12_T15.js +33 -33
  39. package/dist/esm/unity-integration/components/UnityAssetStoreBrowser.js +25 -24
  40. package/dist/esm/unity-integration/components/UnityProjectBrowser.js +28 -27
  41. package/dist/esm/unreal-integration/components/UnrealProjectBrowser.js +31 -30
  42. package/dist/types/editor/AssetBrowser.d.ts +1 -0
  43. package/dist/types/editor/behavior-tree/BTEditorNode.d.ts +2 -1
  44. package/dist/types/editor/behavior-tree/BTEditorToolbar.d.ts +1 -0
  45. package/dist/types/kids/KidMode.d.ts +4 -2
  46. package/dist/types/kids/KidTools.d.ts +1 -1
  47. package/dist/types/tutorials/TutorialBranching.d.ts +1 -1
  48. package/package.json +3 -2
  49. package/dist/cjs/accessibility/Accessibility.js.map +0 -1
  50. package/dist/cjs/ai/AI.js.map +0 -1
  51. package/dist/cjs/ai/BehaviorTree.js.map +0 -1
  52. package/dist/cjs/ai/StateMachine.js.map +0 -1
  53. package/dist/cjs/animation/Animation.js.map +0 -1
  54. package/dist/cjs/audio/AudioAdvanced.js.map +0 -1
  55. package/dist/cjs/audio/AudioBridge.js.map +0 -1
  56. package/dist/cjs/audio/AudioManager.js.map +0 -1
  57. package/dist/cjs/build-cloud/BuildOrchestration.js.map +0 -1
  58. package/dist/cjs/build-cloud/GodotBuildCloud.js.map +0 -1
  59. package/dist/cjs/build-cloud/UnityBuildCloud.js.map +0 -1
  60. package/dist/cjs/build-cloud/UnrealBuildCloud.js.map +0 -1
  61. package/dist/cjs/core/EventBus.js.map +0 -1
  62. package/dist/cjs/core/GameClock.js.map +0 -1
  63. package/dist/cjs/core/GameConfig.js.map +0 -1
  64. package/dist/cjs/core/GameLoop.js.map +0 -1
  65. package/dist/cjs/core/ServiceLocator.js.map +0 -1
  66. package/dist/cjs/core/Validation.js.map +0 -1
  67. package/dist/cjs/core/math.js.map +0 -1
  68. package/dist/cjs/devtools/DevTools.js.map +0 -1
  69. package/dist/cjs/devtools/DeveloperExperience.js.map +0 -1
  70. package/dist/cjs/devtools/GameplayAnalytics.js.map +0 -1
  71. package/dist/cjs/dialogue/DialogueSystem.js.map +0 -1
  72. package/dist/cjs/docs/DocGenerator.js.map +0 -1
  73. package/dist/cjs/ecs/World.js.map +0 -1
  74. package/dist/cjs/editor/AchievementEditor.js.map +0 -1
  75. package/dist/cjs/editor/AdvancedEditor.js.map +0 -1
  76. package/dist/cjs/editor/AnimationRetargeting.js.map +0 -1
  77. package/dist/cjs/editor/AssetBrowser.js.map +0 -1
  78. package/dist/cjs/editor/AssetManager.js.map +0 -1
  79. package/dist/cjs/editor/ConsolePro.js.map +0 -1
  80. package/dist/cjs/editor/CraftingEditor.js.map +0 -1
  81. package/dist/cjs/editor/DebugTools.js.map +0 -1
  82. package/dist/cjs/editor/DialogueSystem.js.map +0 -1
  83. package/dist/cjs/editor/LeaderboardSystem.js.map +0 -1
  84. package/dist/cjs/editor/NiceGameEditor.js.map +0 -1
  85. package/dist/cjs/editor/PrefabSystem.js.map +0 -1
  86. package/dist/cjs/editor/ProfilerPanel.js.map +0 -1
  87. package/dist/cjs/editor/QuestEditor.js.map +0 -1
  88. package/dist/cjs/editor/ReplaySystem.js.map +0 -1
  89. package/dist/cjs/editor/SceneEditor.js.map +0 -1
  90. package/dist/cjs/editor/ScreenshotMode.js.map +0 -1
  91. package/dist/cjs/editor/ShaderGraph.js.map +0 -1
  92. package/dist/cjs/editor/TimelineEditor.js.map +0 -1
  93. package/dist/cjs/editor/UndoRedoPro.js.map +0 -1
  94. package/dist/cjs/editor/VRARMode.js.map +0 -1
  95. package/dist/cjs/engine/NiceGameEngine.js.map +0 -1
  96. package/dist/cjs/engine/SaveSystem.js.map +0 -1
  97. package/dist/cjs/engine/SaveSystemV2.js +0 -530
  98. package/dist/cjs/engine/SaveSystemV2.js.map +0 -1
  99. package/dist/cjs/enterprise/Enterprise.js.map +0 -1
  100. package/dist/cjs/export/BevyExporter.js.map +0 -1
  101. package/dist/cjs/export/CocosExporter.js.map +0 -1
  102. package/dist/cjs/export/Construct3Exporter.js.map +0 -1
  103. package/dist/cjs/export/DefoldExporter.js.map +0 -1
  104. package/dist/cjs/export/GDevelopExporter.js.map +0 -1
  105. package/dist/cjs/export/GameMakerExporter.js.map +0 -1
  106. package/dist/cjs/export/GodotExporter.js.map +0 -1
  107. package/dist/cjs/export/MinecraftBedrockExporter.js.map +0 -1
  108. package/dist/cjs/export/MonoGameExporter.js.map +0 -1
  109. package/dist/cjs/export/Pico8Exporter.js.map +0 -1
  110. package/dist/cjs/export/PlatformExporter.js.map +0 -1
  111. package/dist/cjs/export/RPGMakerExporter.js.map +0 -1
  112. package/dist/cjs/export/RobloxExporter.js.map +0 -1
  113. package/dist/cjs/export/Solar2DExporter.js.map +0 -1
  114. package/dist/cjs/export/ThreeJSExporter.js.map +0 -1
  115. package/dist/cjs/export/Tic80Exporter.js.map +0 -1
  116. package/dist/cjs/export/UnityExporter.js.map +0 -1
  117. package/dist/cjs/export/UnrealExporter.js.map +0 -1
  118. package/dist/cjs/export/WebExporter.js.map +0 -1
  119. package/dist/cjs/export/index.js.map +0 -1
  120. package/dist/cjs/godot-integration/GodotAssetLibrary.js.map +0 -1
  121. package/dist/cjs/godot-integration/GodotImport.js.map +0 -1
  122. package/dist/cjs/godot-integration/GodotLiveLink.js.map +0 -1
  123. package/dist/cjs/godot-integration/components/GodotProjectBrowser.js.map +0 -1
  124. package/dist/cjs/i18n/I18n.js.map +0 -1
  125. package/dist/cjs/i18n/useTranslation.js.map +0 -1
  126. package/dist/cjs/import/AsepriteImporter.js.map +0 -1
  127. package/dist/cjs/import/DragonBonesImporter.js.map +0 -1
  128. package/dist/cjs/import/GameMakerImporter.js.map +0 -1
  129. package/dist/cjs/import/GodotSceneImporter.js.map +0 -1
  130. package/dist/cjs/import/LDtkImporter.js.map +0 -1
  131. package/dist/cjs/import/Live2DImporter.js.map +0 -1
  132. package/dist/cjs/import/NdgFormat.js.map +0 -1
  133. package/dist/cjs/import/OgmoImporter.js.map +0 -1
  134. package/dist/cjs/import/RPGMakerImporter.js.map +0 -1
  135. package/dist/cjs/import/SceneImporter.js.map +0 -1
  136. package/dist/cjs/import/SpineImporter.js.map +0 -1
  137. package/dist/cjs/import/SpriterImporter.js.map +0 -1
  138. package/dist/cjs/import/TiledMapImporter.js.map +0 -1
  139. package/dist/cjs/import/UnitySceneImporter.js.map +0 -1
  140. package/dist/cjs/import/index.js.map +0 -1
  141. package/dist/cjs/index.js.map +0 -1
  142. package/dist/cjs/input/GamepadNavigation.js.map +0 -1
  143. package/dist/cjs/input/InputManager.js.map +0 -1
  144. package/dist/cjs/input/useGamepads.js.map +0 -1
  145. package/dist/cjs/integration/IconSprite.js.map +0 -1
  146. package/dist/cjs/inventory/InventorySystem.js.map +0 -1
  147. package/dist/cjs/kids/KidMode.js.map +0 -1
  148. package/dist/cjs/kids/KidTools.js.map +0 -1
  149. package/dist/cjs/monetization/Monetization.js.map +0 -1
  150. package/dist/cjs/multiplayer/LocalMultiplayer.js.map +0 -1
  151. package/dist/cjs/multiplayer/MiniGameTypes.js.map +0 -1
  152. package/dist/cjs/native-engine/AssetPipeline.js.map +0 -1
  153. package/dist/cjs/native-engine/AudioEngine.js.map +0 -1
  154. package/dist/cjs/native-engine/InputSystem.js.map +0 -1
  155. package/dist/cjs/native-engine/NetworkingSystem.js.map +0 -1
  156. package/dist/cjs/native-engine/PhysicsEngine.js.map +0 -1
  157. package/dist/cjs/native-engine/RenderingEngine.js.map +0 -1
  158. package/dist/cjs/native-engine/SceneGraph.js.map +0 -1
  159. package/dist/cjs/network/MultiplayerTransport.js.map +0 -1
  160. package/dist/cjs/network/Networking.js.map +0 -1
  161. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AbortController.js.map +0 -1
  162. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js.map +0 -1
  163. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js.map +0 -1
  164. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js.map +0 -1
  165. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Errors.js.map +0 -1
  166. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js.map +0 -1
  167. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js.map +0 -1
  168. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js.map +0 -1
  169. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpClient.js.map +0 -1
  170. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js.map +0 -1
  171. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnection.js.map +0 -1
  172. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js.map +0 -1
  173. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js.map +0 -1
  174. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ILogger.js.map +0 -1
  175. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ITransport.js.map +0 -1
  176. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js.map +0 -1
  177. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Loggers.js.map +0 -1
  178. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js.map +0 -1
  179. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js.map +0 -1
  180. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js.map +0 -1
  181. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Subject.js.map +0 -1
  182. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js.map +0 -1
  183. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Utils.js.map +0 -1
  184. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js.map +0 -1
  185. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js.map +0 -1
  186. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/index.js.map +0 -1
  187. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/pkg-version.js.map +0 -1
  188. package/dist/cjs/pathfinding/Pathfinding.js.map +0 -1
  189. package/dist/cjs/performance/AssetStreaming.js.map +0 -1
  190. package/dist/cjs/performance/BenchmarkSuite.js.map +0 -1
  191. package/dist/cjs/performance/DeltaCompression.js.map +0 -1
  192. package/dist/cjs/performance/DeterministicPhysics.js.map +0 -1
  193. package/dist/cjs/performance/ECSOptimization.js.map +0 -1
  194. package/dist/cjs/performance/GameSaveSystem.js.map +0 -1
  195. package/dist/cjs/performance/HotReload.js.map +0 -1
  196. package/dist/cjs/performance/InputRecording.js.map +0 -1
  197. package/dist/cjs/performance/InterestManagement.js.map +0 -1
  198. package/dist/cjs/performance/LocalizationRuntime.js.map +0 -1
  199. package/dist/cjs/performance/MemoryManagement.js.map +0 -1
  200. package/dist/cjs/performance/ModSupport.js.map +0 -1
  201. package/dist/cjs/performance/MultiThreadedPhysics.js.map +0 -1
  202. package/dist/cjs/performance/NetworkPrediction.js.map +0 -1
  203. package/dist/cjs/performance/ObjectPooling.js.map +0 -1
  204. package/dist/cjs/performance/Performance.js.map +0 -1
  205. package/dist/cjs/performance/PerformanceAdvanced.js.map +0 -1
  206. package/dist/cjs/performance/SaveSystem.js +0 -574
  207. package/dist/cjs/performance/SaveSystem.js.map +0 -1
  208. package/dist/cjs/performance/WebGPURenderer.js.map +0 -1
  209. package/dist/cjs/physics/PhysicsAdvanced.js.map +0 -1
  210. package/dist/cjs/physics/PhysicsEngine2D.js.map +0 -1
  211. package/dist/cjs/plugins/PluginSDK.js.map +0 -1
  212. package/dist/cjs/plugins/PluginTestKit.js.map +0 -1
  213. package/dist/cjs/procedural/Procedural.js.map +0 -1
  214. package/dist/cjs/procedural/WorldBuilding.js.map +0 -1
  215. package/dist/cjs/quest/QuestSystem.js.map +0 -1
  216. package/dist/cjs/release/MobileExport.js.map +0 -1
  217. package/dist/cjs/release/Release.js.map +0 -1
  218. package/dist/cjs/rendering/Camera2D.js.map +0 -1
  219. package/dist/cjs/rendering/Renderer2D.js.map +0 -1
  220. package/dist/cjs/rendering/WebGPURenderPipeline.js.map +0 -1
  221. package/dist/cjs/runtime3d/Runtime3D.js.map +0 -1
  222. package/dist/cjs/runtime3d/SceneEditor3D.js.map +0 -1
  223. package/dist/cjs/scene/SceneManager.js.map +0 -1
  224. package/dist/cjs/scripting/GraphToAST.js.map +0 -1
  225. package/dist/cjs/scripting/LanguageExporter.js.map +0 -1
  226. package/dist/cjs/scripting/NodeGraph.js.map +0 -1
  227. package/dist/cjs/scripting/ScriptAST.js.map +0 -1
  228. package/dist/cjs/scripting/VisualScripting2.js.map +0 -1
  229. package/dist/cjs/scripting/exporters/CSharpExporter.js.map +0 -1
  230. package/dist/cjs/scripting/exporters/GDScriptExporter.js.map +0 -1
  231. package/dist/cjs/scripting/exporters/LuaExporter.js.map +0 -1
  232. package/dist/cjs/scripting/exporters/PythonExporter.js.map +0 -1
  233. package/dist/cjs/scripting/exporters/RustExporter.js.map +0 -1
  234. package/dist/cjs/scripting/exporters/TypeScriptExporter.js.map +0 -1
  235. package/dist/cjs/social/Social.js.map +0 -1
  236. package/dist/cjs/systems/LightingSystem.js.map +0 -1
  237. package/dist/cjs/systems/ParticleSystem2.js.map +0 -1
  238. package/dist/cjs/systems/PhysicsDebugSystem.js.map +0 -1
  239. package/dist/cjs/systems/TerrainSystem.js.map +0 -1
  240. package/dist/cjs/templates/ActionTemplates.js.map +0 -1
  241. package/dist/cjs/templates/FightingTemplate.js.map +0 -1
  242. package/dist/cjs/templates/MetroidvaniaTemplate.js.map +0 -1
  243. package/dist/cjs/templates/PartyTemplates.js.map +0 -1
  244. package/dist/cjs/templates/PuzzleTemplates.js.map +0 -1
  245. package/dist/cjs/templates/RPGTemplates.js.map +0 -1
  246. package/dist/cjs/templates/SportsTemplates.js.map +0 -1
  247. package/dist/cjs/templates/StrategyTemplates.js.map +0 -1
  248. package/dist/cjs/templates/SurvivalTemplate.js.map +0 -1
  249. package/dist/cjs/templates/WaveDefense.js.map +0 -1
  250. package/dist/cjs/tilemap/Tilemap.js.map +0 -1
  251. package/dist/cjs/tutorials/TutorialBranching.js.map +0 -1
  252. package/dist/cjs/tutorials/TutorialEngine.js.map +0 -1
  253. package/dist/cjs/tutorials/TutorialOverlay.js.map +0 -1
  254. package/dist/cjs/tutorials/content/Tutorials_T05_T08.js.map +0 -1
  255. package/dist/cjs/tutorials/content/Tutorials_T09_T11.js.map +0 -1
  256. package/dist/cjs/tutorials/content/Tutorials_T12_T15.js.map +0 -1
  257. package/dist/cjs/ui/GameUI.js.map +0 -1
  258. package/dist/cjs/unity-integration/UnityAssetStore.js.map +0 -1
  259. package/dist/cjs/unity-integration/UnityImport.js.map +0 -1
  260. package/dist/cjs/unity-integration/UnityLiveLink.js.map +0 -1
  261. package/dist/cjs/unity-integration/components/UnityAssetStoreBrowser.js.map +0 -1
  262. package/dist/cjs/unity-integration/components/UnityProjectBrowser.js.map +0 -1
  263. package/dist/cjs/unreal-integration/UnrealImport.js.map +0 -1
  264. package/dist/cjs/unreal-integration/UnrealLiveLink.js.map +0 -1
  265. package/dist/cjs/unreal-integration/UnrealMarketplace.js.map +0 -1
  266. package/dist/cjs/unreal-integration/components/UnrealProjectBrowser.js.map +0 -1
  267. package/dist/cjs/xr/ARVR.js.map +0 -1
  268. package/dist/esm/accessibility/Accessibility.js.map +0 -1
  269. package/dist/esm/ai/AI.js.map +0 -1
  270. package/dist/esm/ai/BehaviorTree.js.map +0 -1
  271. package/dist/esm/ai/StateMachine.js.map +0 -1
  272. package/dist/esm/animation/Animation.js.map +0 -1
  273. package/dist/esm/audio/AudioAdvanced.js.map +0 -1
  274. package/dist/esm/audio/AudioBridge.js.map +0 -1
  275. package/dist/esm/audio/AudioManager.js.map +0 -1
  276. package/dist/esm/build-cloud/BuildOrchestration.js.map +0 -1
  277. package/dist/esm/build-cloud/GodotBuildCloud.js.map +0 -1
  278. package/dist/esm/build-cloud/UnityBuildCloud.js.map +0 -1
  279. package/dist/esm/build-cloud/UnrealBuildCloud.js.map +0 -1
  280. package/dist/esm/core/EventBus.js.map +0 -1
  281. package/dist/esm/core/GameClock.js.map +0 -1
  282. package/dist/esm/core/GameConfig.js.map +0 -1
  283. package/dist/esm/core/GameLoop.js.map +0 -1
  284. package/dist/esm/core/ServiceLocator.js.map +0 -1
  285. package/dist/esm/core/Validation.js.map +0 -1
  286. package/dist/esm/core/math.js.map +0 -1
  287. package/dist/esm/devtools/DevTools.js.map +0 -1
  288. package/dist/esm/devtools/DeveloperExperience.js.map +0 -1
  289. package/dist/esm/devtools/GameplayAnalytics.js.map +0 -1
  290. package/dist/esm/dialogue/DialogueSystem.js.map +0 -1
  291. package/dist/esm/docs/DocGenerator.js.map +0 -1
  292. package/dist/esm/ecs/World.js.map +0 -1
  293. package/dist/esm/editor/AchievementEditor.js.map +0 -1
  294. package/dist/esm/editor/AdvancedEditor.js.map +0 -1
  295. package/dist/esm/editor/AnimationRetargeting.js.map +0 -1
  296. package/dist/esm/editor/AssetBrowser.js.map +0 -1
  297. package/dist/esm/editor/AssetManager.js.map +0 -1
  298. package/dist/esm/editor/ConsolePro.js.map +0 -1
  299. package/dist/esm/editor/CraftingEditor.js.map +0 -1
  300. package/dist/esm/editor/DebugTools.js.map +0 -1
  301. package/dist/esm/editor/DialogueSystem.js.map +0 -1
  302. package/dist/esm/editor/LeaderboardSystem.js.map +0 -1
  303. package/dist/esm/editor/NiceGameEditor.js.map +0 -1
  304. package/dist/esm/editor/PrefabSystem.js.map +0 -1
  305. package/dist/esm/editor/ProfilerPanel.js.map +0 -1
  306. package/dist/esm/editor/QuestEditor.js.map +0 -1
  307. package/dist/esm/editor/ReplaySystem.js.map +0 -1
  308. package/dist/esm/editor/SceneEditor.js.map +0 -1
  309. package/dist/esm/editor/ScreenshotMode.js.map +0 -1
  310. package/dist/esm/editor/ShaderGraph.js.map +0 -1
  311. package/dist/esm/editor/TimelineEditor.js.map +0 -1
  312. package/dist/esm/editor/UndoRedoPro.js.map +0 -1
  313. package/dist/esm/editor/VRARMode.js.map +0 -1
  314. package/dist/esm/engine/NiceGameEngine.js.map +0 -1
  315. package/dist/esm/engine/SaveSystem.js.map +0 -1
  316. package/dist/esm/engine/SaveSystemV2.js +0 -523
  317. package/dist/esm/engine/SaveSystemV2.js.map +0 -1
  318. package/dist/esm/enterprise/Enterprise.js.map +0 -1
  319. package/dist/esm/export/BevyExporter.js.map +0 -1
  320. package/dist/esm/export/CocosExporter.js.map +0 -1
  321. package/dist/esm/export/Construct3Exporter.js.map +0 -1
  322. package/dist/esm/export/DefoldExporter.js.map +0 -1
  323. package/dist/esm/export/GDevelopExporter.js.map +0 -1
  324. package/dist/esm/export/GameMakerExporter.js.map +0 -1
  325. package/dist/esm/export/GodotExporter.js.map +0 -1
  326. package/dist/esm/export/MinecraftBedrockExporter.js.map +0 -1
  327. package/dist/esm/export/MonoGameExporter.js.map +0 -1
  328. package/dist/esm/export/Pico8Exporter.js.map +0 -1
  329. package/dist/esm/export/PlatformExporter.js.map +0 -1
  330. package/dist/esm/export/RPGMakerExporter.js.map +0 -1
  331. package/dist/esm/export/RobloxExporter.js.map +0 -1
  332. package/dist/esm/export/Solar2DExporter.js.map +0 -1
  333. package/dist/esm/export/ThreeJSExporter.js.map +0 -1
  334. package/dist/esm/export/Tic80Exporter.js.map +0 -1
  335. package/dist/esm/export/UnityExporter.js.map +0 -1
  336. package/dist/esm/export/UnrealExporter.js.map +0 -1
  337. package/dist/esm/export/WebExporter.js.map +0 -1
  338. package/dist/esm/export/index.js.map +0 -1
  339. package/dist/esm/godot-integration/GodotAssetLibrary.js.map +0 -1
  340. package/dist/esm/godot-integration/GodotImport.js.map +0 -1
  341. package/dist/esm/godot-integration/GodotLiveLink.js.map +0 -1
  342. package/dist/esm/godot-integration/components/GodotProjectBrowser.js.map +0 -1
  343. package/dist/esm/i18n/I18n.js.map +0 -1
  344. package/dist/esm/i18n/useTranslation.js.map +0 -1
  345. package/dist/esm/import/AsepriteImporter.js.map +0 -1
  346. package/dist/esm/import/DragonBonesImporter.js.map +0 -1
  347. package/dist/esm/import/GameMakerImporter.js.map +0 -1
  348. package/dist/esm/import/GodotSceneImporter.js.map +0 -1
  349. package/dist/esm/import/LDtkImporter.js.map +0 -1
  350. package/dist/esm/import/Live2DImporter.js.map +0 -1
  351. package/dist/esm/import/NdgFormat.js.map +0 -1
  352. package/dist/esm/import/OgmoImporter.js.map +0 -1
  353. package/dist/esm/import/RPGMakerImporter.js.map +0 -1
  354. package/dist/esm/import/SceneImporter.js.map +0 -1
  355. package/dist/esm/import/SpineImporter.js.map +0 -1
  356. package/dist/esm/import/SpriterImporter.js.map +0 -1
  357. package/dist/esm/import/TiledMapImporter.js.map +0 -1
  358. package/dist/esm/import/UnitySceneImporter.js.map +0 -1
  359. package/dist/esm/import/index.js.map +0 -1
  360. package/dist/esm/index.js.map +0 -1
  361. package/dist/esm/input/GamepadNavigation.js.map +0 -1
  362. package/dist/esm/input/InputManager.js.map +0 -1
  363. package/dist/esm/input/useGamepads.js.map +0 -1
  364. package/dist/esm/integration/IconSprite.js.map +0 -1
  365. package/dist/esm/inventory/InventorySystem.js.map +0 -1
  366. package/dist/esm/kids/KidMode.js.map +0 -1
  367. package/dist/esm/kids/KidTools.js.map +0 -1
  368. package/dist/esm/monetization/Monetization.js.map +0 -1
  369. package/dist/esm/multiplayer/LocalMultiplayer.js.map +0 -1
  370. package/dist/esm/multiplayer/MiniGameTypes.js.map +0 -1
  371. package/dist/esm/native-engine/AssetPipeline.js.map +0 -1
  372. package/dist/esm/native-engine/AudioEngine.js.map +0 -1
  373. package/dist/esm/native-engine/InputSystem.js.map +0 -1
  374. package/dist/esm/native-engine/NetworkingSystem.js.map +0 -1
  375. package/dist/esm/native-engine/PhysicsEngine.js.map +0 -1
  376. package/dist/esm/native-engine/RenderingEngine.js.map +0 -1
  377. package/dist/esm/native-engine/SceneGraph.js.map +0 -1
  378. package/dist/esm/network/MultiplayerTransport.js.map +0 -1
  379. package/dist/esm/network/Networking.js.map +0 -1
  380. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AbortController.js.map +0 -1
  381. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js.map +0 -1
  382. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js.map +0 -1
  383. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js.map +0 -1
  384. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Errors.js.map +0 -1
  385. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js.map +0 -1
  386. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js.map +0 -1
  387. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js.map +0 -1
  388. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpClient.js.map +0 -1
  389. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js.map +0 -1
  390. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnection.js.map +0 -1
  391. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js.map +0 -1
  392. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js.map +0 -1
  393. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ILogger.js.map +0 -1
  394. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ITransport.js.map +0 -1
  395. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js.map +0 -1
  396. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Loggers.js.map +0 -1
  397. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js.map +0 -1
  398. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js.map +0 -1
  399. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js.map +0 -1
  400. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Subject.js.map +0 -1
  401. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js.map +0 -1
  402. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Utils.js.map +0 -1
  403. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js.map +0 -1
  404. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js.map +0 -1
  405. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/index.js.map +0 -1
  406. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/pkg-version.js.map +0 -1
  407. package/dist/esm/pathfinding/Pathfinding.js.map +0 -1
  408. package/dist/esm/performance/AssetStreaming.js.map +0 -1
  409. package/dist/esm/performance/BenchmarkSuite.js.map +0 -1
  410. package/dist/esm/performance/DeltaCompression.js.map +0 -1
  411. package/dist/esm/performance/DeterministicPhysics.js.map +0 -1
  412. package/dist/esm/performance/ECSOptimization.js.map +0 -1
  413. package/dist/esm/performance/GameSaveSystem.js.map +0 -1
  414. package/dist/esm/performance/HotReload.js.map +0 -1
  415. package/dist/esm/performance/InputRecording.js.map +0 -1
  416. package/dist/esm/performance/InterestManagement.js.map +0 -1
  417. package/dist/esm/performance/LocalizationRuntime.js.map +0 -1
  418. package/dist/esm/performance/MemoryManagement.js.map +0 -1
  419. package/dist/esm/performance/ModSupport.js.map +0 -1
  420. package/dist/esm/performance/MultiThreadedPhysics.js.map +0 -1
  421. package/dist/esm/performance/NetworkPrediction.js.map +0 -1
  422. package/dist/esm/performance/ObjectPooling.js.map +0 -1
  423. package/dist/esm/performance/Performance.js.map +0 -1
  424. package/dist/esm/performance/PerformanceAdvanced.js.map +0 -1
  425. package/dist/esm/performance/SaveSystem.js +0 -567
  426. package/dist/esm/performance/SaveSystem.js.map +0 -1
  427. package/dist/esm/performance/WebGPURenderer.js.map +0 -1
  428. package/dist/esm/physics/PhysicsAdvanced.js.map +0 -1
  429. package/dist/esm/physics/PhysicsEngine2D.js.map +0 -1
  430. package/dist/esm/plugins/PluginSDK.js.map +0 -1
  431. package/dist/esm/plugins/PluginTestKit.js.map +0 -1
  432. package/dist/esm/procedural/Procedural.js.map +0 -1
  433. package/dist/esm/procedural/WorldBuilding.js.map +0 -1
  434. package/dist/esm/quest/QuestSystem.js.map +0 -1
  435. package/dist/esm/release/MobileExport.js.map +0 -1
  436. package/dist/esm/release/Release.js.map +0 -1
  437. package/dist/esm/rendering/Camera2D.js.map +0 -1
  438. package/dist/esm/rendering/Renderer2D.js.map +0 -1
  439. package/dist/esm/rendering/WebGPURenderPipeline.js.map +0 -1
  440. package/dist/esm/runtime3d/Runtime3D.js.map +0 -1
  441. package/dist/esm/runtime3d/SceneEditor3D.js.map +0 -1
  442. package/dist/esm/scene/SceneManager.js.map +0 -1
  443. package/dist/esm/scripting/GraphToAST.js.map +0 -1
  444. package/dist/esm/scripting/LanguageExporter.js.map +0 -1
  445. package/dist/esm/scripting/NodeGraph.js.map +0 -1
  446. package/dist/esm/scripting/ScriptAST.js.map +0 -1
  447. package/dist/esm/scripting/VisualScripting2.js.map +0 -1
  448. package/dist/esm/scripting/exporters/CSharpExporter.js.map +0 -1
  449. package/dist/esm/scripting/exporters/GDScriptExporter.js.map +0 -1
  450. package/dist/esm/scripting/exporters/LuaExporter.js.map +0 -1
  451. package/dist/esm/scripting/exporters/PythonExporter.js.map +0 -1
  452. package/dist/esm/scripting/exporters/RustExporter.js.map +0 -1
  453. package/dist/esm/scripting/exporters/TypeScriptExporter.js.map +0 -1
  454. package/dist/esm/social/Social.js.map +0 -1
  455. package/dist/esm/systems/LightingSystem.js.map +0 -1
  456. package/dist/esm/systems/ParticleSystem2.js.map +0 -1
  457. package/dist/esm/systems/PhysicsDebugSystem.js.map +0 -1
  458. package/dist/esm/systems/TerrainSystem.js.map +0 -1
  459. package/dist/esm/templates/ActionTemplates.js.map +0 -1
  460. package/dist/esm/templates/FightingTemplate.js.map +0 -1
  461. package/dist/esm/templates/MetroidvaniaTemplate.js.map +0 -1
  462. package/dist/esm/templates/PartyTemplates.js.map +0 -1
  463. package/dist/esm/templates/PuzzleTemplates.js.map +0 -1
  464. package/dist/esm/templates/RPGTemplates.js.map +0 -1
  465. package/dist/esm/templates/SportsTemplates.js.map +0 -1
  466. package/dist/esm/templates/StrategyTemplates.js.map +0 -1
  467. package/dist/esm/templates/SurvivalTemplate.js.map +0 -1
  468. package/dist/esm/templates/WaveDefense.js.map +0 -1
  469. package/dist/esm/tilemap/Tilemap.js.map +0 -1
  470. package/dist/esm/tutorials/TutorialBranching.js.map +0 -1
  471. package/dist/esm/tutorials/TutorialEngine.js.map +0 -1
  472. package/dist/esm/tutorials/TutorialOverlay.js.map +0 -1
  473. package/dist/esm/tutorials/content/Tutorials_T05_T08.js.map +0 -1
  474. package/dist/esm/tutorials/content/Tutorials_T09_T11.js.map +0 -1
  475. package/dist/esm/tutorials/content/Tutorials_T12_T15.js.map +0 -1
  476. package/dist/esm/ui/GameUI.js.map +0 -1
  477. package/dist/esm/unity-integration/UnityAssetStore.js.map +0 -1
  478. package/dist/esm/unity-integration/UnityImport.js.map +0 -1
  479. package/dist/esm/unity-integration/UnityLiveLink.js.map +0 -1
  480. package/dist/esm/unity-integration/components/UnityAssetStoreBrowser.js.map +0 -1
  481. package/dist/esm/unity-integration/components/UnityProjectBrowser.js.map +0 -1
  482. package/dist/esm/unreal-integration/UnrealImport.js.map +0 -1
  483. package/dist/esm/unreal-integration/UnrealLiveLink.js.map +0 -1
  484. package/dist/esm/unreal-integration/UnrealMarketplace.js.map +0 -1
  485. package/dist/esm/unreal-integration/components/UnrealProjectBrowser.js.map +0 -1
  486. package/dist/esm/xr/ARVR.js.map +0 -1
  487. package/dist/types/engine/SaveSystemV2.d.ts +0 -155
@@ -35,9 +35,9 @@ const TUTORIAL_MULTIPLAYER_ONLINE = {
35
35
  id: 'mp-online-intro',
36
36
  type: 'text',
37
37
  title: {
38
- en: 'Online Multiplayer Architecture 🌐',
39
- pl: 'Architektura multiplayera online 🌐',
40
- de: 'Online-Mehrspieler-Architektur 🌐',
38
+ en: 'Online Multiplayer Architecture',
39
+ pl: 'Architektura multiplayera online',
40
+ de: 'Online-Mehrspieler-Architektur',
41
41
  },
42
42
  content: {
43
43
  en: 'In this tutorial you will learn:\n• WebRTC peer-to-peer connections\n• Signaling via WebSocket\n• Creating and joining lobby rooms\n• State synchronization (snapshots)\n• Client-side prediction and reconciliation\n\nYour game will run in real-time across the internet!',
@@ -202,9 +202,9 @@ const TUTORIAL_MULTIPLAYER_ONLINE = {
202
202
  id: 'mp-online-quiz',
203
203
  type: 'quiz',
204
204
  title: {
205
- en: 'Multiplayer Quiz 🧠',
206
- pl: 'Quiz Multiplayer 🧠',
207
- de: 'Multiplayer-Quiz 🧠',
205
+ en: 'Multiplayer Quiz',
206
+ pl: 'Quiz Multiplayer',
207
+ de: 'Multiplayer-Quiz',
208
208
  },
209
209
  content: {
210
210
  en: 'Why is client-side prediction important in online games?',
@@ -277,9 +277,9 @@ const TUTORIAL_MULTIPLAYER_ONLINE = {
277
277
  id: 'mp-online-complete',
278
278
  type: 'checkpoint',
279
279
  title: {
280
- en: 'Multiplayer Online Complete! 🎉',
281
- pl: 'Multiplayer online gotowy! 🎉',
282
- de: 'Online-Mehrspieler fertig! 🎉',
280
+ en: 'Multiplayer Online Complete!',
281
+ pl: 'Multiplayer online gotowy!',
282
+ de: 'Online-Mehrspieler fertig!',
283
283
  },
284
284
  content: {
285
285
  en: "You've learned how to build networked multiplayer games! You can now:\n• Connect peers via WebRTC\n• Create and manage lobby rooms\n• Synchronize game state with snapshots\n• Implement client-side prediction\n• Spawn/destroy entities across the network",
@@ -317,9 +317,9 @@ const TUTORIAL_PROCEDURAL_WORLD = {
317
317
  id: 'proc-intro',
318
318
  type: 'text',
319
319
  title: {
320
- en: 'Procedural Generation 🌍',
321
- pl: 'Generowanie proceduralne 🌍',
322
- de: 'Prozedurale Generierung 🌍',
320
+ en: 'Procedural Generation',
321
+ pl: 'Generowanie proceduralne',
322
+ de: 'Prozedurale Generierung',
323
323
  },
324
324
  content: {
325
325
  en: 'Procedural generation creates content using algorithms instead of manual design.\n\nYou will learn:\n• Seeded random numbers (reproducible worlds)\n• Perlin noise (natural-looking terrain)\n• Enemy wave scaling\n• Loot tables with weighted drops\n• Procedural pixel art sprites',
@@ -459,9 +459,9 @@ const TUTORIAL_PROCEDURAL_WORLD = {
459
459
  id: 'proc-quiz',
460
460
  type: 'quiz',
461
461
  title: {
462
- en: 'Procedural Generation Quiz 🎲',
463
- pl: 'Quiz z generowania proceduralnego 🎲',
464
- de: 'Prozedurale Generierung Quiz 🎲',
462
+ en: 'Procedural Generation Quiz',
463
+ pl: 'Quiz z generowania proceduralnego',
464
+ de: 'Prozedurale Generierung Quiz',
465
465
  },
466
466
  content: {
467
467
  en: 'What makes Perlin noise better than purely random values for terrain?',
@@ -505,9 +505,9 @@ const TUTORIAL_PROCEDURAL_WORLD = {
505
505
  id: 'proc-complete',
506
506
  type: 'checkpoint',
507
507
  title: {
508
- en: 'Procedural Generation Complete! 🌟',
509
- pl: 'Generowanie proceduralne opanowane! 🌟',
510
- de: 'Prozedurale Generierung fertig! 🌟',
508
+ en: 'Procedural Generation Complete!',
509
+ pl: 'Generowanie proceduralne opanowane!',
510
+ de: 'Prozedurale Generierung fertig!',
511
511
  },
512
512
  content: {
513
513
  en: 'You can now generate infinite, unique games! Skills learned:\n• Seeded random for reproducible worlds\n• Perlin noise for natural terrain\n• Wave scaling for enemy difficulty\n• Loot tables for balanced drops\n• Procedural pixel art sprites',
@@ -545,9 +545,9 @@ const TUTORIAL_PLATFORMER = {
545
545
  id: 'plat-intro',
546
546
  type: 'text',
547
547
  title: {
548
- en: 'Build a Platformer! 🏃',
549
- pl: 'Zbuduj platformera! 🏃',
550
- de: 'Baue einen Platformer! 🏃',
548
+ en: 'Build a Platformer!',
549
+ pl: 'Zbuduj platformera!',
550
+ de: 'Baue einen Platformer!',
551
551
  },
552
552
  content: {
553
553
  en: "In this tutorial you'll build a complete platformer game!\n\n• Player movement & acceleration\n• Jumping with coyote time\n• Double-jump & wall-slide\n• Dash mechanic\n• Enemy AI (patrol + chase)\n• Coins & collectibles\n• Level with tilemap\n\nLet's make Mario-like magic!",
@@ -763,9 +763,9 @@ const TUTORIAL_PLATFORMER = {
763
763
  id: 'plat-complete',
764
764
  type: 'checkpoint',
765
765
  title: {
766
- en: 'Platformer Complete! 🎮',
767
- pl: 'Platformer gotowy! 🎮',
768
- de: 'Platformer fertig! 🎮',
766
+ en: 'Platformer Complete!',
767
+ pl: 'Platformer gotowy!',
768
+ de: 'Platformer fertig!',
769
769
  },
770
770
  content: {
771
771
  en: "Congratulations! You've built a complete platformer with:\n• Smooth acceleration-based movement\n• Jumping with coyote time\n• Double jump & wall slide\n• Dash mechanic\n• Enemy AI (patrol & chase)\n• Coins with trigger colliders\n• Tilemap level design\n\nChallenge: Add moving platforms and a boss fight!",
@@ -36,9 +36,9 @@ const TUTORIAL_RPG = {
36
36
  id: 'rpg-intro',
37
37
  type: 'text',
38
38
  title: {
39
- en: 'Build Your Own RPG! ⚔️',
40
- pl: 'Zbuduj swoje RPG! ⚔️',
41
- de: 'Baue dein eigenes RPG! ⚔️',
39
+ en: 'Build Your Own RPG!',
40
+ pl: 'Zbuduj swoje RPG!',
41
+ de: 'Baue dein eigenes RPG!',
42
42
  },
43
43
  content: {
44
44
  en: "In this tutorial you'll build a classic top-down RPG!\n\n• Character stats (HP, MP, ATK, DEF, SPD)\n• XP and leveling system\n• Inventory and items\n• NPCs with dialogue\n• Turn-based battle system\n• Tilemap world with warps\n\nReady for an adventure?",
@@ -174,9 +174,9 @@ const TUTORIAL_RPG = {
174
174
  id: 'rpg-quiz',
175
175
  type: 'quiz',
176
176
  title: {
177
- en: 'RPG Quiz 🧙',
178
- pl: 'Quiz RPG 🧙',
179
- de: 'RPG-Quiz 🧙',
177
+ en: 'RPG Quiz',
178
+ pl: 'Quiz RPG',
179
+ de: 'RPG-Quiz',
180
180
  },
181
181
  content: {
182
182
  en: 'In a turn-based RPG, what stat typically determines the order of actions?',
@@ -196,9 +196,9 @@ const TUTORIAL_RPG = {
196
196
  id: 'rpg-complete',
197
197
  type: 'checkpoint',
198
198
  title: {
199
- en: 'RPG Complete! 🏰',
200
- pl: 'RPG gotowe! 🏰',
201
- de: 'RPG fertig! 🏰',
199
+ en: 'RPG Complete!',
200
+ pl: 'RPG gotowe!',
201
+ de: 'RPG fertig!',
202
202
  },
203
203
  content: {
204
204
  en: "Amazing! You've built a full RPG with:\n• Character stats & leveling\n• Inventory with rarity system\n• NPCs with branching dialogue\n• Turn-based combat\n• Multi-area world map with warps\n\nChallenge: Add a party system with 4 heroes!",
@@ -236,9 +236,9 @@ const TUTORIAL_TOWER_DEFENSE = {
236
236
  id: 'td-intro',
237
237
  type: 'text',
238
238
  title: {
239
- en: 'Build Tower Defense! 🗼',
240
- pl: 'Zbuduj Tower Defense! 🗼',
241
- de: 'Baue Tower Defense! 🗼',
239
+ en: 'Build Tower Defense!',
240
+ pl: 'Zbuduj Tower Defense!',
241
+ de: 'Baue Tower Defense!',
242
242
  },
243
243
  content: {
244
244
  en: "In this tutorial you'll build a tower defense game!\n\n• Map with path for enemies\n• Tower types (arrow, cannon, ice, laser)\n• Enemy waves with scaling difficulty\n• Tower targeting modes\n• Upgrade system\n• Gold & economy\n\nDefend your base!",
@@ -378,9 +378,9 @@ const TUTORIAL_TOWER_DEFENSE = {
378
378
  id: 'td-complete',
379
379
  type: 'checkpoint',
380
380
  title: {
381
- en: 'Tower Defense Complete! 🏆',
382
- pl: 'Tower Defense gotowy! 🏆',
383
- de: 'Tower Defense fertig! 🏆',
381
+ en: 'Tower Defense Complete!',
382
+ pl: 'Tower Defense gotowy!',
383
+ de: 'Tower Defense fertig!',
384
384
  },
385
385
  content: {
386
386
  en: "You've built a full tower defense game!\n• 4 tower types with different targeting\n• Enemy pathfinding along waypoints\n• Escalating wave system\n• Upgrade & sell mechanics\n• Gold economy\n\nChallenge: Add flying enemies that ignore the path!",
@@ -418,9 +418,9 @@ const TUTORIAL_3D_GAME = {
418
418
  id: '3d-intro',
419
419
  type: 'text',
420
420
  title: {
421
- en: 'Welcome to 3D! 🎮',
422
- pl: 'Witaj w 3D! 🎮',
423
- de: 'Willkommen in 3D! 🎮',
421
+ en: 'Welcome to 3D!',
422
+ pl: 'Witaj w 3D!',
423
+ de: 'Willkommen in 3D!',
424
424
  },
425
425
  content: {
426
426
  en: "In this tutorial you'll enter the third dimension!\n\n• Set up a 3D world (World3D)\n• Add meshes (cube, sphere, plane)\n• Lighting (directional, point, spot)\n• Camera controllers (FPS, orbit)\n• 3D physics (rigid bodies, colliders)\n• Character controller (walking, jumping)\n\nLet's go 3D!",
@@ -585,9 +585,9 @@ const TUTORIAL_3D_GAME = {
585
585
  id: '3d-complete',
586
586
  type: 'checkpoint',
587
587
  title: {
588
- en: '3D Game Complete! 🌟',
589
- pl: 'Gra 3D gotowa! 🌟',
590
- de: '3D-Spiel fertig! 🌟',
588
+ en: '3D Game Complete!',
589
+ pl: 'Gra 3D gotowa!',
590
+ de: '3D-Spiel fertig!',
591
591
  },
592
592
  content: {
593
593
  en: "You've built your first 3D game!\n• World3D scene with multiple objects\n• Primitive meshes (cube, sphere, plane)\n• Directional and point lighting\n• Orbit camera controller\n• 3D physics with rigid bodies\n• Character controller with jumping\n\nChallenge: Add a skybox and third-person camera!",
@@ -625,9 +625,9 @@ const TUTORIAL_PUBLISHING = {
625
625
  id: 'pub-intro',
626
626
  type: 'text',
627
627
  title: {
628
- en: 'Publish Your Game! 🚀',
629
- pl: 'Opublikuj swoją grę! 🚀',
630
- de: 'Veröffentliche dein Spiel! 🚀',
628
+ en: 'Publish Your Game!',
629
+ pl: 'Opublikuj swoją grę!',
630
+ de: 'Veröffentliche dein Spiel!',
631
631
  },
632
632
  content: {
633
633
  en: "Your game is ready — now let's share it with the world!\n\n• Feature detection (check browser support)\n• Build optimization (minify, tree-shake)\n• PWA export (installable web app)\n• Electron export (Windows/Mac/Linux)\n• Capacitor export (iOS/Android)\n• Performance benchmarking\n\nLet's deploy!",
@@ -732,9 +732,9 @@ const TUTORIAL_PUBLISHING = {
732
732
  id: 'pub-quiz',
733
733
  type: 'quiz',
734
734
  title: {
735
- en: 'Publishing Quiz 📦',
736
- pl: 'Quiz o publikacji 📦',
737
- de: 'Veröffentlichungs-Quiz 📦',
735
+ en: 'Publishing Quiz',
736
+ pl: 'Quiz o publikacji',
737
+ de: 'Veröffentlichungs-Quiz',
738
738
  },
739
739
  content: {
740
740
  en: 'What is a PWA (Progressive Web App)?',
@@ -782,14 +782,14 @@ const TUTORIAL_PUBLISHING = {
782
782
  id: 'pub-complete',
783
783
  type: 'checkpoint',
784
784
  title: {
785
- en: 'Publication Complete! 🎊',
786
- pl: 'Publikacja gotowa! 🎊',
787
- de: 'Veröffentlichung fertig! 🎊',
785
+ en: 'Publication Complete!',
786
+ pl: 'Publikacja gotowa!',
787
+ de: 'Veröffentlichung fertig!',
788
788
  },
789
789
  content: {
790
- en: 'Congratulations! You now know how to:\n• Check browser feature support\n• Configure optimized builds\n• Export as PWA, Electron, or Capacitor\n• Run performance benchmarks\n• Deploy to web, desktop, and mobile\n\nYour game is ready for the world! 🌍',
791
- pl: 'Gratulacje! Teraz wiesz jak:\n• Sprawdzić wsparcie funkcji przeglądarki\n• Konfigurować zoptymalizowane buildy\n• Eksportować jako PWA, Electron lub Capacitor\n• Uruchamiać benchmarki wydajności\n• Wdrażać na web, desktop i mobile\n\nTwoja gra jest gotowa na świat! 🌍',
792
- de: 'Herzlichen Glückwunsch! Du weißt jetzt wie man:\n• Browser-Feature-Support prüft\n• Optimierte Builds konfiguriert\n• Als PWA, Electron oder Capacitor exportiert\n• Performance-Benchmarks durchführt\n• Auf Web, Desktop und Mobile deployt\n\nDein Spiel ist bereit für die Welt! 🌍',
790
+ en: 'Congratulations! You now know how to:\n• Check browser feature support\n• Configure optimized builds\n• Export as PWA, Electron, or Capacitor\n• Run performance benchmarks\n• Deploy to web, desktop, and mobile\n\nYour game is ready for the world!',
791
+ pl: 'Gratulacje! Teraz wiesz jak:\n• Sprawdzić wsparcie funkcji przeglądarki\n• Konfigurować zoptymalizowane buildy\n• Eksportować jako PWA, Electron lub Capacitor\n• Uruchamiać benchmarki wydajności\n• Wdrażać na web, desktop i mobile\n\nTwoja gra jest gotowa na świat!',
792
+ de: 'Herzlichen Glückwunsch! Du weißt jetzt wie man:\n• Browser-Feature-Support prüft\n• Optimierte Builds konfiguriert\n• Als PWA, Electron oder Capacitor exportiert\n• Performance-Benchmarks durchführt\n• Auf Web, Desktop und Mobile deployt\n\nDein Spiel ist bereit für die Welt!',
793
793
  },
794
794
  },
795
795
  ],
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
+ var ui = require('@nice2dev/ui');
4
5
  var React = require('react');
5
6
 
6
7
  const DEFAULT_THEME = {
@@ -106,21 +107,21 @@ function formatFileSize(bytes) {
106
107
  function getCategoryIcon(category) {
107
108
  switch (category) {
108
109
  case '3d':
109
- return '🎲';
110
+ return 'box';
110
111
  case '2d':
111
- return '🖼️';
112
+ return 'image';
112
113
  case 'tools':
113
- return '🔧';
114
+ return 'settings';
114
115
  case 'vfx':
115
- return '✨';
116
+ return 'star';
116
117
  case 'audio':
117
- return '🔊';
118
+ return 'volume';
118
119
  case 'templates':
119
- return '📋';
120
+ return 'clipboard';
120
121
  case 'add-ons':
121
- return '🧩';
122
+ return 'puzzle';
122
123
  default:
123
- return '📦';
124
+ return 'box';
124
125
  }
125
126
  }
126
127
  /* ── Search Header ────────────────────────────────────────────── */
@@ -145,7 +146,7 @@ const SearchHeader = () => {
145
146
  padding: '16px 24px',
146
147
  backgroundColor: theme.headerBackground,
147
148
  borderBottom: `1px solid ${theme.border}`,
148
- }, children: [jsxRuntime.jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 12, marginBottom: 12 }, children: [jsxRuntime.jsx("div", { style: { fontSize: 24 }, children: "\uD83C\uDFEA" }), jsxRuntime.jsx("h1", { style: { margin: 0, fontSize: 18, fontWeight: 600, color: theme.textPrimary }, children: "Unity Asset Store" }), jsxRuntime.jsx("div", { style: { flex: 1 } }), jsxRuntime.jsxs("button", { style: {
149
+ }, children: [jsxRuntime.jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 12, marginBottom: 12 }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: "building", size: 24 }), jsxRuntime.jsx("h1", { style: { margin: 0, fontSize: 18, fontWeight: 600, color: theme.textPrimary }, children: "Unity Asset Store" }), jsxRuntime.jsx("div", { style: { flex: 1 } }), jsxRuntime.jsxs("button", { style: {
149
150
  display: 'flex',
150
151
  alignItems: 'center',
151
152
  gap: 6,
@@ -155,14 +156,14 @@ const SearchHeader = () => {
155
156
  borderRadius: 6,
156
157
  color: '#fff',
157
158
  cursor: 'pointer',
158
- }, children: ["\uD83D\uDED2 Cart (", state.cart.size, ")"] }), jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'TOGGLE_MY_ASSETS' }), style: {
159
+ }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: "box", size: 14 }), " Cart (", state.cart.size, ")"] }), jsxRuntime.jsxs("button", { onClick: () => dispatch({ type: 'TOGGLE_MY_ASSETS' }), style: {
159
160
  padding: '8px 12px',
160
161
  backgroundColor: state.myAssets ? theme.accent : 'rgba(0,0,0,0.2)',
161
162
  border: 'none',
162
163
  borderRadius: 6,
163
164
  color: '#fff',
164
165
  cursor: 'pointer',
165
- }, children: "\uD83D\uDCDA My Assets" })] }), jsxRuntime.jsxs("div", { style: { display: 'flex', gap: 8 }, children: [jsxRuntime.jsxs("div", { style: { flex: 1, position: 'relative' }, children: [jsxRuntime.jsx("input", { type: "text", placeholder: "Search assets...", value: localQuery, onChange: (e) => setLocalQuery(e.target.value), onKeyDown: (e) => e.key === 'Enter' && handleSearch(), style: {
166
+ }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: "book", size: 14 }), " My Assets"] })] }), jsxRuntime.jsxs("div", { style: { display: 'flex', gap: 8 }, children: [jsxRuntime.jsxs("div", { style: { flex: 1, position: 'relative' }, children: [jsxRuntime.jsx("input", { type: "text", placeholder: "Search assets...", value: localQuery, onChange: (e) => setLocalQuery(e.target.value), onKeyDown: (e) => e.key === 'Enter' && handleSearch(), style: {
166
167
  width: '100%',
167
168
  padding: '10px 16px',
168
169
  paddingRight: 50,
@@ -183,7 +184,7 @@ const SearchHeader = () => {
183
184
  borderRadius: 6,
184
185
  color: '#fff',
185
186
  cursor: 'pointer',
186
- }, children: "\uD83D\uDD0D" })] }), jsxRuntime.jsx("select", { value: state.query.category, onChange: (e) => {
187
+ }, children: jsxRuntime.jsx(ui.NiceIcon, { name: "search", size: 14 }) })] }), jsxRuntime.jsx("select", { value: state.query.category, onChange: (e) => {
187
188
  dispatch({
188
189
  type: 'SET_QUERY',
189
190
  query: { category: e.target.value, page: 1 },
@@ -230,7 +231,7 @@ const RatingStars = ({ rating, count }) => {
230
231
  return (jsxRuntime.jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 4 }, children: [[1, 2, 3, 4, 5].map((star) => (jsxRuntime.jsx("span", { style: {
231
232
  fontSize: 12,
232
233
  color: star <= Math.round(rating) ? theme.star : theme.textSecondary,
233
- }, children: "\u2605" }, star))), count !== undefined && (jsxRuntime.jsxs("span", { style: { fontSize: 11, color: theme.textSecondary, marginLeft: 4 }, children: ["(", count, ")"] }))] }));
234
+ }, children: jsxRuntime.jsx(ui.NiceIcon, { name: "star", size: 12 }) }, star))), count !== undefined && (jsxRuntime.jsxs("span", { style: { fontSize: 11, color: theme.textSecondary, marginLeft: 4 }, children: ["(", count, ")"] }))] }));
234
235
  };
235
236
  /* ── Asset Card ───────────────────────────────────────────────── */
236
237
  const AssetCard = ({ asset }) => {
@@ -292,7 +293,7 @@ const AssetCard = ({ asset }) => {
292
293
  alignItems: 'center',
293
294
  justifyContent: 'center',
294
295
  fontSize: 14,
295
- }, children: getCategoryIcon(asset.category) })] }), jsxRuntime.jsxs("div", { style: { padding: 12 }, children: [jsxRuntime.jsx("h3", { style: {
296
+ }, children: jsxRuntime.jsx(ui.NiceIcon, { name: getCategoryIcon(asset.category), size: 32 }) })] }), jsxRuntime.jsxs("div", { style: { padding: 12 }, children: [jsxRuntime.jsx("h3", { style: {
296
297
  margin: 0,
297
298
  fontSize: 13,
298
299
  fontWeight: 600,
@@ -333,7 +334,7 @@ const AssetCard = ({ asset }) => {
333
334
  borderRadius: 6,
334
335
  color: '#fff',
335
336
  cursor: isDownloading ? 'not-allowed' : 'pointer',
336
- }, children: isDownloading ? `${downloadProgress}%` : '📥 Download' })) : (jsxRuntime.jsx("button", { onClick: (e) => {
337
+ }, children: isDownloading ? `${downloadProgress}%` : 'Download' })) : (jsxRuntime.jsx("button", { onClick: (e) => {
337
338
  e.stopPropagation();
338
339
  if (isInCart) {
339
340
  dispatch({ type: 'REMOVE_FROM_CART', id: asset.id });
@@ -351,7 +352,7 @@ const AssetCard = ({ asset }) => {
351
352
  borderRadius: 6,
352
353
  color: '#fff',
353
354
  cursor: 'pointer',
354
- }, children: isInCart ? '✓ In Cart' : '🛒 Add to Cart' })), jsxRuntime.jsx("button", { onClick: (e) => {
355
+ }, children: isInCart ? 'In Cart' : 'Add to Cart' })), jsxRuntime.jsx("button", { onClick: (e) => {
355
356
  e.stopPropagation();
356
357
  openInBrowser(asset);
357
358
  }, style: {
@@ -362,7 +363,7 @@ const AssetCard = ({ asset }) => {
362
363
  borderRadius: 6,
363
364
  color: theme.textSecondary,
364
365
  cursor: 'pointer',
365
- }, children: "\uD83D\uDD17" })] })] })] }));
366
+ }, children: jsxRuntime.jsx(ui.NiceIcon, { name: "link", size: 14 }) })] })] })] }));
366
367
  };
367
368
  /* ── Asset Grid ───────────────────────────────────────────────── */
368
369
  const AssetGrid = () => {
@@ -374,7 +375,7 @@ const AssetGrid = () => {
374
375
  alignItems: 'center',
375
376
  justifyContent: 'center',
376
377
  color: theme.textSecondary,
377
- }, children: "\u23F3 Loading assets..." }));
378
+ }, children: "Loading assets..." }));
378
379
  }
379
380
  if (state.error) {
380
381
  return (jsxRuntime.jsxs("div", { style: {
@@ -383,7 +384,7 @@ const AssetGrid = () => {
383
384
  alignItems: 'center',
384
385
  justifyContent: 'center',
385
386
  color: theme.danger,
386
- }, children: ["\u274C ", state.error] }));
387
+ }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: "error", size: 14 }), " ", state.error] }));
387
388
  }
388
389
  if (state.results.length === 0) {
389
390
  return (jsxRuntime.jsxs("div", { style: {
@@ -393,7 +394,7 @@ const AssetGrid = () => {
393
394
  alignItems: 'center',
394
395
  justifyContent: 'center',
395
396
  color: theme.textSecondary,
396
- }, children: [jsxRuntime.jsx("div", { style: { fontSize: 48, marginBottom: 16 }, children: "\uD83D\uDCED" }), jsxRuntime.jsx("div", { children: "No assets found" })] }));
397
+ }, children: [jsxRuntime.jsx("div", { style: { marginBottom: 16 }, children: jsxRuntime.jsx(ui.NiceIcon, { name: "archive", size: 48 }) }), jsxRuntime.jsx("div", { children: "No assets found" })] }));
397
398
  }
398
399
  return (jsxRuntime.jsx("div", { style: {
399
400
  display: 'grid',
@@ -476,7 +477,7 @@ const AssetDetailModal = () => {
476
477
  borderRadius: 8,
477
478
  color: '#fff',
478
479
  cursor: isDownloading ? 'not-allowed' : 'pointer',
479
- }, children: isDownloading ? `Downloading ${downloadProgress}%` : '📥 Download & Import' })) : (jsxRuntime.jsx("button", { onClick: () => isInCart
480
+ }, children: isDownloading ? `Downloading ${downloadProgress}%` : 'Download & Import' })) : (jsxRuntime.jsx("button", { onClick: () => isInCart
480
481
  ? dispatch({ type: 'REMOVE_FROM_CART', id: asset.id })
481
482
  : dispatch({ type: 'ADD_TO_CART', id: asset.id }), style: {
482
483
  width: '100%',
@@ -488,7 +489,7 @@ const AssetDetailModal = () => {
488
489
  borderRadius: 8,
489
490
  color: '#fff',
490
491
  cursor: 'pointer',
491
- }, children: isInCart ? '✓ Remove from Cart' : '🛒 Add to Cart' })), jsxRuntime.jsx("button", { onClick: () => openInBrowser(asset), style: {
492
+ }, children: isInCart ? 'Remove from Cart' : 'Add to Cart' })), jsxRuntime.jsxs("button", { onClick: () => openInBrowser(asset), style: {
492
493
  width: '100%',
493
494
  marginTop: 8,
494
495
  padding: '10px 24px',
@@ -498,7 +499,7 @@ const AssetDetailModal = () => {
498
499
  borderRadius: 8,
499
500
  color: theme.textSecondary,
500
501
  cursor: 'pointer',
501
- }, children: "\uD83D\uDD17 View on Asset Store" })] })] }), jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SELECT_ASSET', asset: null }), style: {
502
+ }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: "external-link", size: 14 }), " View on Asset Store"] })] })] }), jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SELECT_ASSET', asset: null }), style: {
502
503
  position: 'absolute',
503
504
  top: 16,
504
505
  right: 16,
@@ -508,7 +509,7 @@ const AssetDetailModal = () => {
508
509
  border: 'none',
509
510
  color: theme.textSecondary,
510
511
  cursor: 'pointer',
511
- }, children: "\u2715" })] }), jsxRuntime.jsx("div", { style: { display: 'flex', borderBottom: `1px solid ${theme.border}` }, children: ['overview', 'images', 'reviews'].map((tab) => (jsxRuntime.jsx("button", { onClick: () => setActiveTab(tab), style: {
512
+ }, children: jsxRuntime.jsx(ui.NiceIcon, { name: "close", size: 14 }) })] }), jsxRuntime.jsx("div", { style: { display: 'flex', borderBottom: `1px solid ${theme.border}` }, children: ['overview', 'images', 'reviews'].map((tab) => (jsxRuntime.jsx("button", { onClick: () => setActiveTab(tab), style: {
512
513
  flex: 1,
513
514
  padding: '12px 16px',
514
515
  fontSize: 13,
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
+ var ui = require('@nice2dev/ui');
4
5
  var React = require('react');
5
6
 
6
7
  const DEFAULT_THEME = {
@@ -104,23 +105,23 @@ function useBrowser() {
104
105
  function getAssetIcon(type) {
105
106
  switch (type) {
106
107
  case 'scene':
107
- return '🎬';
108
+ return 'video';
108
109
  case 'prefab':
109
- return '📦';
110
+ return 'box';
110
111
  case 'material':
111
- return '🎨';
112
+ return 'palette';
112
113
  case 'texture':
113
- return '🖼️';
114
+ return 'image';
114
115
  case 'mesh':
115
- return '🔷';
116
+ return 'hexagon';
116
117
  case 'animation':
117
- return '🏃';
118
+ return 'play';
118
119
  case 'script':
119
- return '📜';
120
+ return 'code';
120
121
  case 'audio':
121
- return '🔊';
122
+ return 'volume';
122
123
  default:
123
- return '📄';
124
+ return 'file';
124
125
  }
125
126
  }
126
127
  function formatFileSize(bytes) {
@@ -151,7 +152,7 @@ const BrowserHeader = ({ projectPath }) => {
151
152
  alignItems: 'center',
152
153
  justifyContent: 'center',
153
154
  fontSize: 20,
154
- }, children: "\uD83C\uDFAE" }), jsxRuntime.jsxs("div", { style: { flex: 1 }, children: [jsxRuntime.jsx("div", { style: { fontSize: 14, fontWeight: 600, color: theme.textPrimary }, children: state.projectInfo?.name ?? 'No Project Loaded' }), jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: state.projectInfo ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: ["Unity ", state.projectInfo.unityVersion, " \u2022", ' ', state.projectInfo.renderPipeline.toUpperCase()] })) : ((projectPath ?? 'Select a Unity project folder')) })] }), jsxRuntime.jsxs("div", { style: {
155
+ }, children: jsxRuntime.jsx(ui.NiceIcon, { name: "gamepad", size: 18 }) }), jsxRuntime.jsxs("div", { style: { flex: 1 }, children: [jsxRuntime.jsx("div", { style: { fontSize: 14, fontWeight: 600, color: theme.textPrimary }, children: state.projectInfo?.name ?? 'No Project Loaded' }), jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: state.projectInfo ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: ["Unity ", state.projectInfo.unityVersion, " \u2022", ' ', state.projectInfo.renderPipeline.toUpperCase()] })) : ((projectPath ?? 'Select a Unity project folder')) })] }), jsxRuntime.jsxs("div", { style: {
155
156
  display: 'flex',
156
157
  alignItems: 'center',
157
158
  gap: 8,
@@ -218,21 +219,21 @@ const BrowserToolbar = () => {
218
219
  backgroundColor: 'rgba(0,0,0,0.2)',
219
220
  borderRadius: 6,
220
221
  overflow: 'hidden',
221
- }, children: [jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SET_VIEW_MODE', mode: 'tree' }), style: {
222
+ }, children: [jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SET_VIEW_MODE', mode: 'tree' }), "aria-label": "Tree view", style: {
222
223
  padding: '6px 10px',
223
224
  fontSize: 12,
224
225
  backgroundColor: state.viewMode === 'tree' ? theme.accent : 'transparent',
225
226
  border: 'none',
226
227
  color: '#fff',
227
228
  cursor: 'pointer',
228
- }, children: "\uD83D\uDCD1" }), jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SET_VIEW_MODE', mode: 'grid' }), style: {
229
+ }, children: jsxRuntime.jsx(ui.NiceIcon, { name: "list", size: 14 }) }), jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SET_VIEW_MODE', mode: 'grid' }), "aria-label": "Grid view", style: {
229
230
  padding: '6px 10px',
230
231
  fontSize: 12,
231
232
  backgroundColor: state.viewMode === 'grid' ? theme.accent : 'transparent',
232
233
  border: 'none',
233
234
  color: '#fff',
234
235
  cursor: 'pointer',
235
- }, children: "\uD83D\uDD32" })] }), jsxRuntime.jsx("div", { style: { flex: 1 } }), jsxRuntime.jsxs("span", { style: { fontSize: 11, color: theme.textSecondary }, children: [state.selectedAssets.size, " selected"] }), jsxRuntime.jsx("button", { onClick: importSelectedAssets, disabled: state.selectedAssets.size === 0 || state.importProgress !== null, style: {
236
+ }, children: jsxRuntime.jsx(ui.NiceIcon, { name: "grid", size: 14 }) })] }), jsxRuntime.jsx("div", { style: { flex: 1 } }), jsxRuntime.jsxs("span", { style: { fontSize: 11, color: theme.textSecondary }, children: [state.selectedAssets.size, " selected"] }), jsxRuntime.jsxs("button", { onClick: importSelectedAssets, disabled: state.selectedAssets.size === 0 || state.importProgress !== null, style: {
236
237
  padding: '8px 16px',
237
238
  fontSize: 12,
238
239
  fontWeight: 500,
@@ -244,16 +245,16 @@ const BrowserToolbar = () => {
244
245
  color: '#fff',
245
246
  cursor: state.selectedAssets.size > 0 && !state.importProgress ? 'pointer' : 'not-allowed',
246
247
  opacity: state.selectedAssets.size > 0 && !state.importProgress ? 1 : 0.5,
247
- }, children: state.importProgress ? '⏳ Importing...' : '📥 Import Selected' })] }));
248
+ }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: state.importProgress ? 'clock' : 'download', size: 14 }), ' ', state.importProgress ? 'Importing...' : 'Import Selected'] })] }));
248
249
  };
249
250
  /* ── Tab Bar Component ────────────────────────────────────────── */
250
251
  const TabBar = () => {
251
252
  const { state, dispatch, theme } = useBrowser();
252
253
  const tabs = [
253
- { id: 'assets', label: 'Assets', icon: '📁' },
254
- { id: 'scenes', label: 'Scenes', icon: '🎬' },
255
- { id: 'packages', label: 'Packages', icon: '📦' },
256
- { id: 'settings', label: 'Settings', icon: '⚙️' },
254
+ { id: 'assets', label: 'Assets', icon: 'folder' },
255
+ { id: 'scenes', label: 'Scenes', icon: 'video' },
256
+ { id: 'packages', label: 'Packages', icon: 'box' },
257
+ { id: 'settings', label: 'Settings', icon: 'settings' },
257
258
  ];
258
259
  return (jsxRuntime.jsx("div", { style: {
259
260
  display: 'flex',
@@ -269,7 +270,7 @@ const TabBar = () => {
269
270
  borderBottom: state.tab === tab.id ? `2px solid ${theme.accent}` : '2px solid transparent',
270
271
  color: state.tab === tab.id ? theme.textPrimary : theme.textSecondary,
271
272
  cursor: 'pointer',
272
- }, children: [tab.icon, " ", tab.label] }, tab.id))) }));
273
+ }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: tab.icon, size: 14 }), " ", tab.label] }, tab.id))) }));
273
274
  };
274
275
  /* ── Asset Tree View ──────────────────────────────────────────── */
275
276
  const AssetTreeItem = ({ asset, indent }) => {
@@ -283,7 +284,7 @@ const AssetTreeItem = ({ asset, indent }) => {
283
284
  paddingLeft: indent * 16 + 8,
284
285
  backgroundColor: isSelected ? theme.itemSelected : 'transparent',
285
286
  cursor: 'pointer',
286
- }, children: [jsxRuntime.jsx("input", { type: "checkbox", checked: isSelected, onChange: () => dispatch({ type: 'SELECT_ASSET', id: asset.id, additive: true }), onClick: (e) => e.stopPropagation() }), jsxRuntime.jsx("span", { style: { fontSize: 14 }, children: getAssetIcon(asset.type) }), jsxRuntime.jsx("span", { style: {
287
+ }, children: [jsxRuntime.jsx("input", { type: "checkbox", checked: isSelected, onChange: () => dispatch({ type: 'SELECT_ASSET', id: asset.id, additive: true }), onClick: (e) => e.stopPropagation() }), jsxRuntime.jsx(ui.NiceIcon, { name: getAssetIcon(asset.type), size: 14 }), jsxRuntime.jsx("span", { style: {
287
288
  flex: 1,
288
289
  fontSize: 12,
289
290
  color: isSelected ? theme.textPrimary : theme.textSecondary,
@@ -320,7 +321,7 @@ const FolderTreeItem = ({ folder, indent }) => {
320
321
  padding: '4px 8px',
321
322
  paddingLeft: indent * 16 + 8,
322
323
  cursor: 'pointer',
323
- }, children: [jsxRuntime.jsx("span", { style: { fontSize: 10, color: theme.textSecondary }, children: isExpanded ? '▼' : '▶' }), jsxRuntime.jsx("span", { style: { fontSize: 14, color: theme.folderColor }, children: "\uD83D\uDCC1" }), jsxRuntime.jsx("span", { style: { fontSize: 12, color: theme.textPrimary, fontWeight: 500 }, children: folder.name }), jsxRuntime.jsxs("span", { style: { fontSize: 10, color: theme.textSecondary }, children: ["(", filteredChildren.length, ")"] })] }), isExpanded &&
324
+ }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: isExpanded ? 'chevron-down' : 'chevron-right', size: 10, color: theme.textSecondary }), jsxRuntime.jsx(ui.NiceIcon, { name: "folder", size: 14, color: theme.folderColor }), jsxRuntime.jsx("span", { style: { fontSize: 12, color: theme.textPrimary, fontWeight: 500 }, children: folder.name }), jsxRuntime.jsxs("span", { style: { fontSize: 10, color: theme.textSecondary }, children: ["(", filteredChildren.length, ")"] })] }), isExpanded &&
324
325
  filteredChildren.map((child, _i) => 'children' in child ? (jsxRuntime.jsx(FolderTreeItem, { folder: child, indent: indent + 1 }, child.path)) : (jsxRuntime.jsx(AssetTreeItem, { asset: child, indent: indent + 1 }, child.id)))] }));
325
326
  };
326
327
  /* ── Asset Grid View ──────────────────────────────────────────── */
@@ -366,7 +367,7 @@ const AssetGridView = () => {
366
367
  justifyContent: 'center',
367
368
  fontSize: 24,
368
369
  marginBottom: 8,
369
- }, children: asset.thumbnail ? (jsxRuntime.jsx("img", { src: asset.thumbnail, alt: asset.name, style: { width: '100%', height: '100%', objectFit: 'cover', borderRadius: 8 } })) : (getAssetIcon(asset.type)) }), jsxRuntime.jsx("span", { style: {
370
+ }, children: asset.thumbnail ? (jsxRuntime.jsx("img", { src: asset.thumbnail, alt: asset.name, style: { width: '100%', height: '100%', objectFit: 'cover', borderRadius: 8 } })) : (jsxRuntime.jsx(ui.NiceIcon, { name: getAssetIcon(asset.type), size: 32 })) }), jsxRuntime.jsx("span", { style: {
370
371
  fontSize: 11,
371
372
  color: theme.textPrimary,
372
373
  textAlign: 'center',
@@ -416,7 +417,7 @@ const PackagesPanel = () => {
416
417
  marginBottom: 4,
417
418
  backgroundColor: theme.itemBackground,
418
419
  borderRadius: 6,
419
- }, children: [jsxRuntime.jsx("span", { style: { fontSize: 14 }, children: "\uD83D\uDCE6" }), jsxRuntime.jsx("span", { style: { fontSize: 12, color: theme.textPrimary, flex: 1 }, children: pkg.name }), jsxRuntime.jsx("span", { style: {
420
+ }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: "box", size: 14 }), jsxRuntime.jsx("span", { style: { fontSize: 12, color: theme.textPrimary, flex: 1 }, children: pkg.name }), jsxRuntime.jsx("span", { style: {
420
421
  padding: '2px 8px',
421
422
  fontSize: 10,
422
423
  backgroundColor: getSourceBadge(pkg.source),
@@ -469,14 +470,14 @@ const PreviewPanel = () => {
469
470
  gap: 12,
470
471
  padding: 16,
471
472
  borderBottom: `1px solid ${theme.border}`,
472
- }, children: [jsxRuntime.jsx("span", { style: { fontSize: 24 }, children: getAssetIcon(asset.type) }), jsxRuntime.jsxs("div", { style: { flex: 1 }, children: [jsxRuntime.jsx("div", { style: { fontSize: 16, fontWeight: 600, color: theme.textPrimary }, children: asset.name }), jsxRuntime.jsx("div", { style: { fontSize: 12, color: theme.textSecondary }, children: asset.path })] }), jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SET_PREVIEW', asset: null }), style: {
473
+ }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: getAssetIcon(asset.type), size: 24 }), jsxRuntime.jsxs("div", { style: { flex: 1 }, children: [jsxRuntime.jsx("div", { style: { fontSize: 16, fontWeight: 600, color: theme.textPrimary }, children: asset.name }), jsxRuntime.jsx("div", { style: { fontSize: 12, color: theme.textSecondary }, children: asset.path })] }), jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SET_PREVIEW', asset: null }), style: {
473
474
  padding: '4px 8px',
474
475
  fontSize: 14,
475
476
  backgroundColor: 'transparent',
476
477
  border: 'none',
477
478
  color: theme.textSecondary,
478
479
  cursor: 'pointer',
479
- }, children: "\u2715" })] }), jsxRuntime.jsxs("div", { style: { padding: 16 }, children: [jsxRuntime.jsx("div", { style: {
480
+ }, children: jsxRuntime.jsx(ui.NiceIcon, { name: "close", size: 14 }) })] }), jsxRuntime.jsxs("div", { style: { padding: 16 }, children: [jsxRuntime.jsx("div", { style: {
480
481
  width: '100%',
481
482
  height: 300,
482
483
  backgroundColor: 'rgba(0,0,0,0.3)',
@@ -486,7 +487,7 @@ const PreviewPanel = () => {
486
487
  justifyContent: 'center',
487
488
  fontSize: 48,
488
489
  marginBottom: 16,
489
- }, children: asset.thumbnail ? (jsxRuntime.jsx("img", { src: asset.thumbnail, alt: asset.name, style: { maxWidth: '100%', maxHeight: '100%', objectFit: 'contain' } })) : (getAssetIcon(asset.type)) }), jsxRuntime.jsxs("div", { style: { display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 12 }, children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "Type" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary }, children: asset.type })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "Size" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary }, children: formatFileSize(asset.size) })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "GUID" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary, fontFamily: 'monospace' }, children: asset.guid })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "Last Modified" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary }, children: asset.lastModified })] })] }), asset.dependencies && asset.dependencies.length > 0 && (jsxRuntime.jsxs("div", { style: { marginTop: 16 }, children: [jsxRuntime.jsxs("div", { style: { fontSize: 12, fontWeight: 500, color: theme.textPrimary, marginBottom: 8 }, children: ["Dependencies (", asset.dependencies.length, ")"] }), jsxRuntime.jsx("div", { style: { maxHeight: 100, overflow: 'auto' }, children: asset.dependencies.map((dep, i) => (jsxRuntime.jsx("div", { style: {
490
+ }, children: asset.thumbnail ? (jsxRuntime.jsx("img", { src: asset.thumbnail, alt: asset.name, style: { maxWidth: '100%', maxHeight: '100%', objectFit: 'contain' } })) : (jsxRuntime.jsx(ui.NiceIcon, { name: getAssetIcon(asset.type), size: 32 })) }), jsxRuntime.jsxs("div", { style: { display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 12 }, children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "Type" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary }, children: asset.type })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "Size" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary }, children: formatFileSize(asset.size) })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "GUID" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary, fontFamily: 'monospace' }, children: asset.guid })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "Last Modified" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary }, children: asset.lastModified })] })] }), asset.dependencies && asset.dependencies.length > 0 && (jsxRuntime.jsxs("div", { style: { marginTop: 16 }, children: [jsxRuntime.jsxs("div", { style: { fontSize: 12, fontWeight: 500, color: theme.textPrimary, marginBottom: 8 }, children: ["Dependencies (", asset.dependencies.length, ")"] }), jsxRuntime.jsx("div", { style: { maxHeight: 100, overflow: 'auto' }, children: asset.dependencies.map((dep, i) => (jsxRuntime.jsx("div", { style: {
490
491
  padding: '4px 8px',
491
492
  fontSize: 11,
492
493
  color: theme.textSecondary,
@@ -536,7 +537,7 @@ const ImportProgressOverlay = () => {
536
537
  backgroundColor: theme.panelBackground,
537
538
  borderRadius: 12,
538
539
  padding: 24,
539
- }, children: [jsxRuntime.jsx("h3", { style: { margin: '0 0 16px', fontSize: 16, fontWeight: 600, color: theme.textPrimary }, children: progress.phase === 'complete' ? '✅ Import Complete' : '📥 Importing Assets' }), jsxRuntime.jsx("div", { style: { fontSize: 12, color: theme.textSecondary, marginBottom: 8 }, children: progress.message }), progress.currentAsset && (jsxRuntime.jsx("div", { style: {
540
+ }, children: [jsxRuntime.jsxs("h3", { style: { margin: '0 0 16px', fontSize: 16, fontWeight: 600, color: theme.textPrimary }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: progress.phase === 'complete' ? 'success' : 'download', size: 16 }), ' ', progress.phase === 'complete' ? 'Import Complete' : 'Importing Assets'] }), jsxRuntime.jsx("div", { style: { fontSize: 12, color: theme.textSecondary, marginBottom: 8 }, children: progress.message }), progress.currentAsset && (jsxRuntime.jsx("div", { style: {
540
541
  fontSize: 11,
541
542
  color: theme.textPrimary,
542
543
  backgroundColor: 'rgba(0,0,0,0.2)',