@rpgjs/client 5.0.0-beta.2 → 5.0.0-beta.22

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 (325) hide show
  1. package/CHANGELOG.md +130 -0
  2. package/dist/Game/AnimationManager.d.ts +2 -1
  3. package/dist/Game/AnimationManager.js +21 -9
  4. package/dist/Game/AnimationManager.js.map +1 -1
  5. package/dist/Game/AnimationManager.spec.d.ts +1 -0
  6. package/dist/Game/ClientVisuals.d.ts +61 -0
  7. package/dist/Game/ClientVisuals.js +96 -0
  8. package/dist/Game/ClientVisuals.js.map +1 -0
  9. package/dist/Game/ClientVisuals.spec.d.ts +1 -0
  10. package/dist/Game/Event.js.map +1 -1
  11. package/dist/Game/EventComponentResolver.d.ts +16 -0
  12. package/dist/Game/EventComponentResolver.js +52 -0
  13. package/dist/Game/EventComponentResolver.js.map +1 -0
  14. package/dist/Game/EventComponentResolver.spec.d.ts +1 -0
  15. package/dist/Game/Map.d.ts +9 -1
  16. package/dist/Game/Map.js +83 -5
  17. package/dist/Game/Map.js.map +1 -1
  18. package/dist/Game/Object.d.ts +49 -15
  19. package/dist/Game/Object.js +101 -42
  20. package/dist/Game/Object.js.map +1 -1
  21. package/dist/Game/Object.spec.d.ts +1 -0
  22. package/dist/Game/Player.js.map +1 -1
  23. package/dist/Game/ProjectileManager.d.ts +98 -0
  24. package/dist/Game/ProjectileManager.js +196 -0
  25. package/dist/Game/ProjectileManager.js.map +1 -0
  26. package/dist/Game/ProjectileManager.spec.d.ts +1 -0
  27. package/dist/Gui/Gui.d.ts +20 -6
  28. package/dist/Gui/Gui.js +132 -57
  29. package/dist/Gui/Gui.js.map +1 -1
  30. package/dist/Gui/Gui.spec.d.ts +1 -0
  31. package/dist/Gui/NotificationManager.js.map +1 -1
  32. package/dist/Resource.js +1 -1
  33. package/dist/Resource.js.map +1 -1
  34. package/dist/RpgClient.d.ts +194 -15
  35. package/dist/RpgClientEngine.d.ts +191 -19
  36. package/dist/RpgClientEngine.js +693 -74
  37. package/dist/RpgClientEngine.js.map +1 -1
  38. package/dist/Sound.js.map +1 -1
  39. package/dist/_virtual/{_@oxc-project_runtime@0.122.0/helpers → _@oxc-project_runtime@0.133.0/helpers/esm}/decorate.js +1 -1
  40. package/dist/_virtual/{_@oxc-project_runtime@0.122.0/helpers → _@oxc-project_runtime@0.133.0/helpers/esm}/decorateMetadata.js +1 -1
  41. package/dist/_virtual/_rolldown/runtime.js +13 -0
  42. package/dist/components/animations/animation.ce.js +6 -5
  43. package/dist/components/animations/animation.ce.js.map +1 -1
  44. package/dist/components/animations/fx.ce.js +60 -0
  45. package/dist/components/animations/fx.ce.js.map +1 -0
  46. package/dist/components/animations/hit.ce.js +24 -28
  47. package/dist/components/animations/hit.ce.js.map +1 -1
  48. package/dist/components/animations/index.d.ts +1 -0
  49. package/dist/components/animations/index.js +6 -4
  50. package/dist/components/animations/index.js.map +1 -1
  51. package/dist/components/character.ce.js +748 -249
  52. package/dist/components/character.ce.js.map +1 -1
  53. package/dist/components/dynamics/bar.ce.js +99 -0
  54. package/dist/components/dynamics/bar.ce.js.map +1 -0
  55. package/dist/components/dynamics/image.ce.js +26 -0
  56. package/dist/components/dynamics/image.ce.js.map +1 -0
  57. package/dist/components/dynamics/parse-value.d.ts +3 -0
  58. package/dist/components/dynamics/parse-value.js +54 -35
  59. package/dist/components/dynamics/parse-value.js.map +1 -1
  60. package/dist/components/dynamics/parse-value.spec.d.ts +1 -0
  61. package/dist/components/dynamics/shape-utils.d.ts +16 -0
  62. package/dist/components/dynamics/shape-utils.js +73 -0
  63. package/dist/components/dynamics/shape-utils.js.map +1 -0
  64. package/dist/components/dynamics/shape-utils.spec.d.ts +1 -0
  65. package/dist/components/dynamics/shape.ce.js +86 -0
  66. package/dist/components/dynamics/shape.ce.js.map +1 -0
  67. package/dist/components/dynamics/text.ce.js +36 -56
  68. package/dist/components/dynamics/text.ce.js.map +1 -1
  69. package/dist/components/gui/box.ce.js +9 -9
  70. package/dist/components/gui/box.ce.js.map +1 -1
  71. package/dist/components/gui/dialogbox/index.ce.js +75 -65
  72. package/dist/components/gui/dialogbox/index.ce.js.map +1 -1
  73. package/dist/components/gui/gameover.ce.js +47 -68
  74. package/dist/components/gui/gameover.ce.js.map +1 -1
  75. package/dist/components/gui/hud/hud.ce.js +23 -31
  76. package/dist/components/gui/hud/hud.ce.js.map +1 -1
  77. package/dist/components/gui/menu/equip-menu.ce.js +121 -172
  78. package/dist/components/gui/menu/equip-menu.ce.js.map +1 -1
  79. package/dist/components/gui/menu/exit-menu.ce.js +15 -10
  80. package/dist/components/gui/menu/exit-menu.ce.js.map +1 -1
  81. package/dist/components/gui/menu/items-menu.ce.js +62 -77
  82. package/dist/components/gui/menu/items-menu.ce.js.map +1 -1
  83. package/dist/components/gui/menu/main-menu.ce.js +89 -104
  84. package/dist/components/gui/menu/main-menu.ce.js.map +1 -1
  85. package/dist/components/gui/menu/options-menu.ce.js +12 -8
  86. package/dist/components/gui/menu/options-menu.ce.js.map +1 -1
  87. package/dist/components/gui/menu/skills-menu.ce.js +17 -19
  88. package/dist/components/gui/menu/skills-menu.ce.js.map +1 -1
  89. package/dist/components/gui/mobile/index.d.ts +51 -2
  90. package/dist/components/gui/mobile/index.js +14 -6
  91. package/dist/components/gui/mobile/index.js.map +1 -1
  92. package/dist/components/gui/mobile/index.spec.d.ts +1 -0
  93. package/dist/components/gui/mobile/mobile.ce.js +309 -59
  94. package/dist/components/gui/mobile/mobile.ce.js.map +1 -1
  95. package/dist/components/gui/notification/notification.ce.js +28 -26
  96. package/dist/components/gui/notification/notification.ce.js.map +1 -1
  97. package/dist/components/gui/save-load.ce.js +81 -256
  98. package/dist/components/gui/save-load.ce.js.map +1 -1
  99. package/dist/components/gui/shop/shop.ce.js +107 -142
  100. package/dist/components/gui/shop/shop.ce.js.map +1 -1
  101. package/dist/components/gui/title-screen.ce.js +50 -73
  102. package/dist/components/gui/title-screen.ce.js.map +1 -1
  103. package/dist/components/index.d.ts +2 -1
  104. package/dist/components/index.js +1 -0
  105. package/dist/components/interaction-components.ce.js +22 -0
  106. package/dist/components/interaction-components.ce.js.map +1 -0
  107. package/dist/components/player-components-utils.d.ts +67 -0
  108. package/dist/components/player-components-utils.js +162 -0
  109. package/dist/components/player-components-utils.js.map +1 -0
  110. package/dist/components/player-components-utils.spec.d.ts +1 -0
  111. package/dist/components/player-components.ce.js +191 -0
  112. package/dist/components/player-components.ce.js.map +1 -0
  113. package/dist/components/prebuilt/hp-bar.ce.js +45 -45
  114. package/dist/components/prebuilt/hp-bar.ce.js.map +1 -1
  115. package/dist/components/prebuilt/light-halo.ce.js +39 -60
  116. package/dist/components/prebuilt/light-halo.ce.js.map +1 -1
  117. package/dist/components/scenes/canvas.ce.js +205 -27
  118. package/dist/components/scenes/canvas.ce.js.map +1 -1
  119. package/dist/components/scenes/draw-map.ce.js +39 -39
  120. package/dist/components/scenes/draw-map.ce.js.map +1 -1
  121. package/dist/components/scenes/event-layer.ce.js +51 -10
  122. package/dist/components/scenes/event-layer.ce.js.map +1 -1
  123. package/dist/core/inject.js +1 -1
  124. package/dist/core/inject.js.map +1 -1
  125. package/dist/core/setup.js +1 -1
  126. package/dist/core/setup.js.map +1 -1
  127. package/dist/decorators/spritesheet.d.ts +1 -0
  128. package/dist/decorators/spritesheet.js +11 -0
  129. package/dist/decorators/spritesheet.js.map +1 -0
  130. package/dist/i18n.d.ts +55 -0
  131. package/dist/i18n.js +60 -0
  132. package/dist/i18n.js.map +1 -0
  133. package/dist/i18n.spec.d.ts +1 -0
  134. package/dist/index.d.ts +8 -0
  135. package/dist/index.js +29 -21
  136. package/dist/module.js +45 -4
  137. package/dist/module.js.map +1 -1
  138. package/dist/node_modules/.pnpm/{@signe_di@2.9.0 → @signe_di@3.1.0}/node_modules/@signe/di/dist/index.js +7 -117
  139. package/dist/node_modules/.pnpm/@signe_di@3.1.0/node_modules/@signe/di/dist/index.js.map +1 -0
  140. package/dist/node_modules/.pnpm/@signe_reactive@3.1.0/node_modules/@signe/reactive/dist/index.js +239 -0
  141. package/dist/node_modules/.pnpm/@signe_reactive@3.1.0/node_modules/@signe/reactive/dist/index.js.map +1 -0
  142. package/dist/node_modules/.pnpm/@signe_room@3.1.0_react@19.2.7/node_modules/@signe/room/dist/chunk-EUXUH3YW.js +13 -0
  143. package/dist/node_modules/.pnpm/@signe_room@3.1.0_react@19.2.7/node_modules/@signe/room/dist/chunk-EUXUH3YW.js.map +1 -0
  144. package/dist/node_modules/.pnpm/@signe_room@3.1.0_react@19.2.7/node_modules/@signe/room/dist/index.js +698 -0
  145. package/dist/node_modules/.pnpm/@signe_room@3.1.0_react@19.2.7/node_modules/@signe/room/dist/index.js.map +1 -0
  146. package/dist/node_modules/.pnpm/@signe_sync@3.1.0_react@19.2.7/node_modules/@signe/sync/dist/client/index.js +43 -0
  147. package/dist/node_modules/.pnpm/@signe_sync@3.1.0_react@19.2.7/node_modules/@signe/sync/dist/client/index.js.map +1 -0
  148. package/dist/node_modules/.pnpm/{@signe_sync@2.9.0 → @signe_sync@3.1.0_react@19.2.7}/node_modules/@signe/sync/dist/index.js +57 -141
  149. package/dist/node_modules/.pnpm/@signe_sync@3.1.0_react@19.2.7/node_modules/@signe/sync/dist/index.js.map +1 -0
  150. package/dist/node_modules/.pnpm/{partysocket@1.1.3/node_modules/partysocket/dist/chunk-HAC622V3.js → partysocket@1.2.0_react@19.2.7/node_modules/partysocket/dist/index.js} +30 -17
  151. package/dist/node_modules/.pnpm/partysocket@1.2.0_react@19.2.7/node_modules/partysocket/dist/index.js.map +1 -0
  152. package/dist/node_modules/.pnpm/{partysocket@1.1.3/node_modules/partysocket/dist/chunk-S74YV6PU.js → partysocket@1.2.0_react@19.2.7/node_modules/partysocket/dist/ws.js} +65 -34
  153. package/dist/node_modules/.pnpm/partysocket@1.2.0_react@19.2.7/node_modules/partysocket/dist/ws.js.map +1 -0
  154. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/index.js +13 -0
  155. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/index.js.map +1 -0
  156. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js +106 -0
  157. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js.map +1 -0
  158. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js +13 -0
  159. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js.map +1 -0
  160. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/external.js +121 -0
  161. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/external.js.map +1 -0
  162. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js +10 -0
  163. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js.map +1 -0
  164. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js +110 -0
  165. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js.map +1 -0
  166. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js +99 -0
  167. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js.map +1 -0
  168. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js +82 -0
  169. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js.map +1 -0
  170. package/dist/node_modules/.pnpm/{zod@3.24.2/node_modules/zod/lib/index.js → zod@3.25.76/node_modules/zod/v3/types.js} +74 -611
  171. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js.map +1 -0
  172. package/dist/presets/animation.js.map +1 -1
  173. package/dist/presets/faceset.js.map +1 -1
  174. package/dist/presets/icon.js.map +1 -1
  175. package/dist/presets/index.js.map +1 -1
  176. package/dist/presets/lpc.js.map +1 -1
  177. package/dist/presets/rmspritesheet.js.map +1 -1
  178. package/dist/services/AbstractSocket.d.ts +2 -0
  179. package/dist/services/AbstractSocket.js.map +1 -1
  180. package/dist/services/actionInput.d.ts +14 -0
  181. package/dist/services/actionInput.js +59 -0
  182. package/dist/services/actionInput.js.map +1 -0
  183. package/dist/services/actionInput.spec.d.ts +1 -0
  184. package/dist/services/cameraFollow.d.ts +51 -0
  185. package/dist/services/cameraFollow.js +134 -0
  186. package/dist/services/cameraFollow.js.map +1 -0
  187. package/dist/services/cameraFollow.spec.d.ts +1 -0
  188. package/dist/services/interactions.d.ts +159 -0
  189. package/dist/services/interactions.js +460 -0
  190. package/dist/services/interactions.js.map +1 -0
  191. package/dist/services/interactions.spec.d.ts +1 -0
  192. package/dist/services/keyboardControls.d.ts +1 -0
  193. package/dist/services/keyboardControls.js +1 -0
  194. package/dist/services/keyboardControls.js.map +1 -1
  195. package/dist/services/loadMap.d.ts +9 -0
  196. package/dist/services/loadMap.js +1 -1
  197. package/dist/services/loadMap.js.map +1 -1
  198. package/dist/services/mmorpg-connection.d.ts +5 -0
  199. package/dist/services/mmorpg-connection.js +50 -0
  200. package/dist/services/mmorpg-connection.js.map +1 -0
  201. package/dist/services/mmorpg-connection.spec.d.ts +1 -0
  202. package/dist/services/mmorpg.d.ts +11 -4
  203. package/dist/services/mmorpg.js +57 -33
  204. package/dist/services/mmorpg.js.map +1 -1
  205. package/dist/services/pointerContext.d.ts +11 -0
  206. package/dist/services/pointerContext.js +48 -0
  207. package/dist/services/pointerContext.js.map +1 -0
  208. package/dist/services/pointerContext.spec.d.ts +1 -0
  209. package/dist/services/save.js.map +1 -1
  210. package/dist/services/save.spec.d.ts +1 -0
  211. package/dist/services/standalone-message.d.ts +1 -0
  212. package/dist/services/standalone-message.js +9 -0
  213. package/dist/services/standalone-message.js.map +1 -0
  214. package/dist/services/standalone.d.ts +4 -1
  215. package/dist/services/standalone.js +36 -16
  216. package/dist/services/standalone.js.map +1 -1
  217. package/dist/services/standalone.spec.d.ts +1 -0
  218. package/dist/utils/getEntityProp.js +4 -3
  219. package/dist/utils/getEntityProp.js.map +1 -1
  220. package/dist/utils/getEntityProp.spec.d.ts +1 -0
  221. package/dist/utils/mapId.d.ts +1 -0
  222. package/dist/utils/mapId.js +6 -0
  223. package/dist/utils/mapId.js.map +1 -0
  224. package/dist/utils/readPropValue.d.ts +2 -0
  225. package/dist/utils/readPropValue.js +13 -0
  226. package/dist/utils/readPropValue.js.map +1 -0
  227. package/package.json +13 -13
  228. package/src/Game/AnimationManager.spec.ts +30 -0
  229. package/src/Game/AnimationManager.ts +26 -10
  230. package/src/Game/ClientVisuals.spec.ts +56 -0
  231. package/src/Game/ClientVisuals.ts +184 -0
  232. package/src/Game/EventComponentResolver.spec.ts +84 -0
  233. package/src/Game/EventComponentResolver.ts +74 -0
  234. package/src/Game/Map.ts +134 -2
  235. package/src/Game/Object.spec.ts +59 -0
  236. package/src/Game/Object.ts +181 -77
  237. package/src/Game/ProjectileManager.spec.ts +449 -0
  238. package/src/Game/ProjectileManager.ts +346 -0
  239. package/src/Gui/Gui.spec.ts +359 -0
  240. package/src/Gui/Gui.ts +178 -67
  241. package/src/Resource.ts +1 -2
  242. package/src/RpgClient.ts +220 -17
  243. package/src/RpgClientEngine.ts +995 -133
  244. package/src/components/animations/fx.ce +101 -0
  245. package/src/components/animations/index.ts +4 -2
  246. package/src/components/character.ce +839 -45
  247. package/src/components/dynamics/bar.ce +88 -0
  248. package/src/components/dynamics/image.ce +21 -0
  249. package/src/components/dynamics/parse-value.spec.ts +83 -0
  250. package/src/components/dynamics/parse-value.ts +111 -37
  251. package/src/components/dynamics/shape-utils.spec.ts +46 -0
  252. package/src/components/dynamics/shape-utils.ts +61 -0
  253. package/src/components/dynamics/shape.ce +90 -0
  254. package/src/components/dynamics/text.ce +35 -149
  255. package/src/components/gui/dialogbox/index.ce +52 -21
  256. package/src/components/gui/gameover.ce +6 -4
  257. package/src/components/gui/menu/equip-menu.ce +11 -9
  258. package/src/components/gui/menu/exit-menu.ce +6 -4
  259. package/src/components/gui/menu/items-menu.ce +11 -9
  260. package/src/components/gui/menu/main-menu.ce +14 -12
  261. package/src/components/gui/menu/options-menu.ce +4 -3
  262. package/src/components/gui/menu/skills-menu.ce +2 -1
  263. package/src/components/gui/mobile/index.spec.ts +94 -0
  264. package/src/components/gui/mobile/index.ts +74 -6
  265. package/src/components/gui/mobile/mobile.ce +347 -65
  266. package/src/components/gui/notification/notification.ce +7 -1
  267. package/src/components/gui/save-load.ce +13 -11
  268. package/src/components/gui/shop/shop.ce +20 -18
  269. package/src/components/gui/title-screen.ce +6 -4
  270. package/src/components/index.ts +2 -1
  271. package/src/components/interaction-components.ce +23 -0
  272. package/src/components/player-components-utils.spec.ts +109 -0
  273. package/src/components/player-components-utils.ts +205 -0
  274. package/src/components/player-components.ce +222 -0
  275. package/src/components/prebuilt/hp-bar.ce +4 -3
  276. package/src/components/prebuilt/light-halo.ce +2 -2
  277. package/src/components/scenes/canvas.ce +219 -15
  278. package/src/components/scenes/draw-map.ce +34 -22
  279. package/src/components/scenes/event-layer.ce +55 -4
  280. package/src/core/setup.ts +2 -2
  281. package/src/decorators/spritesheet.ts +8 -0
  282. package/src/i18n.spec.ts +39 -0
  283. package/src/i18n.ts +59 -0
  284. package/src/index.ts +19 -0
  285. package/src/module.ts +61 -11
  286. package/src/services/AbstractSocket.ts +3 -0
  287. package/src/services/actionInput.spec.ts +155 -0
  288. package/src/services/actionInput.ts +120 -0
  289. package/src/services/cameraFollow.spec.ts +220 -0
  290. package/src/services/cameraFollow.ts +222 -0
  291. package/src/services/interactions.spec.ts +175 -0
  292. package/src/services/interactions.ts +722 -0
  293. package/src/services/keyboardControls.ts +2 -1
  294. package/src/services/loadMap.ts +5 -1
  295. package/src/services/mmorpg-connection.spec.ts +99 -0
  296. package/src/services/mmorpg-connection.ts +69 -0
  297. package/src/services/mmorpg.ts +70 -36
  298. package/src/services/pointerContext.spec.ts +36 -0
  299. package/src/services/pointerContext.ts +84 -0
  300. package/src/services/save.spec.ts +127 -0
  301. package/src/services/standalone-message.ts +7 -0
  302. package/src/services/standalone.spec.ts +54 -0
  303. package/src/services/standalone.ts +44 -12
  304. package/src/utils/getEntityProp.spec.ts +96 -0
  305. package/src/utils/getEntityProp.ts +4 -3
  306. package/src/utils/mapId.ts +2 -0
  307. package/src/utils/readPropValue.ts +16 -0
  308. package/dist/node_modules/.pnpm/@signe_di@2.9.0/node_modules/@signe/di/dist/index.js.map +0 -1
  309. package/dist/node_modules/.pnpm/@signe_reactive@2.8.3/node_modules/@signe/reactive/dist/index.js +0 -457
  310. package/dist/node_modules/.pnpm/@signe_reactive@2.8.3/node_modules/@signe/reactive/dist/index.js.map +0 -1
  311. package/dist/node_modules/.pnpm/@signe_reactive@2.9.0/node_modules/@signe/reactive/dist/index.js +0 -463
  312. package/dist/node_modules/.pnpm/@signe_reactive@2.9.0/node_modules/@signe/reactive/dist/index.js.map +0 -1
  313. package/dist/node_modules/.pnpm/@signe_room@2.9.0/node_modules/@signe/room/dist/index.js +0 -2191
  314. package/dist/node_modules/.pnpm/@signe_room@2.9.0/node_modules/@signe/room/dist/index.js.map +0 -1
  315. package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/chunk-7QVYU63E.js +0 -10
  316. package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/chunk-7QVYU63E.js.map +0 -1
  317. package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/client/index.js +0 -91
  318. package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/client/index.js.map +0 -1
  319. package/dist/node_modules/.pnpm/@signe_sync@2.9.0/node_modules/@signe/sync/dist/index.js.map +0 -1
  320. package/dist/node_modules/.pnpm/dset@3.1.4/node_modules/dset/dist/index.js +0 -14
  321. package/dist/node_modules/.pnpm/dset@3.1.4/node_modules/dset/dist/index.js.map +0 -1
  322. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-HAC622V3.js.map +0 -1
  323. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/chunk-S74YV6PU.js.map +0 -1
  324. package/dist/node_modules/.pnpm/partysocket@1.1.3/node_modules/partysocket/dist/index.js +0 -2
  325. package/dist/node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/index.js.map +0 -1
@@ -1,99 +1,85 @@
1
1
  import { inject } from "../../../core/inject.js";
2
+ import { getKeyboardControlBind } from "../../../services/actionInput.js";
2
3
  import { getEntityProp } from "../../../utils/getEntityProp.js";
3
- import component$1 from "../save-load.ce.js";
4
- import component$2 from "./items-menu.ce.js";
5
- import component$3 from "./skills-menu.ce.js";
6
- import component$4 from "./equip-menu.ce.js";
7
- import component$5 from "./options-menu.ce.js";
8
- import component$6 from "./exit-menu.ce.js";
4
+ import __ce_component$1 from "../save-load.ce.js";
5
+ import __ce_component$2 from "./items-menu.ce.js";
6
+ import __ce_component$3 from "./skills-menu.ce.js";
7
+ import __ce_component$4 from "./equip-menu.ce.js";
8
+ import __ce_component$5 from "./options-menu.ce.js";
9
+ import __ce_component$6 from "./exit-menu.ce.js";
9
10
  import { RpgClientEngine } from "../../../RpgClientEngine.js";
10
- import { DOMContainer, DOMElement, computed, cond, effect, h, loop, mount, signal, useDefineProps, useProps } from "canvasengine";
11
+ import { DOMContainer, DOMElement, computed, cond, effect, h, loop, mount, signal, useDefineEmits, useDefineProps, useProps } from "canvasengine";
11
12
  import { delay } from "@rpgjs/common";
12
13
  //#region src/components/gui/menu/main-menu.ce
13
14
  function component($$props) {
14
15
  useProps($$props);
15
16
  const defineProps = useDefineProps($$props);
16
- var engine = inject(RpgClientEngine);
17
- var currentPlayer = engine.scene.currentPlayer;
18
- var keyboardControls = engine.globalConfig.keyboardControls;
19
- var _a = defineProps(), data = _a.data, onFinish = _a.onFinish, onInteraction = _a.onInteraction, _b = data(), menus = _b.menus;
20
- _b.items;
21
- _b.skills;
22
- _b.equips;
23
- var saveLoad = _b.saveLoad;
24
- var defaultMenus = [
17
+ useDefineEmits($$props);
18
+ const engine = inject(RpgClientEngine);
19
+ const { t } = engine.i18n();
20
+ const currentPlayer = engine.scene.currentPlayer;
21
+ const keyboardControls = engine.globalConfig.keyboardControls;
22
+ const { data, onFinish, onInteraction } = defineProps();
23
+ const { menus, items, skills, equips, saveLoad } = data();
24
+ const defaultMenus = [
25
25
  {
26
26
  id: "items",
27
- label: "Items"
27
+ label: t("rpg.menu.items")
28
28
  },
29
29
  {
30
30
  id: "skills",
31
- label: "Skills"
31
+ label: t("rpg.menu.skills")
32
32
  },
33
33
  {
34
34
  id: "equip",
35
- label: "Equip"
35
+ label: t("rpg.menu.equip")
36
36
  },
37
37
  {
38
38
  id: "options",
39
- label: "Options"
39
+ label: t("rpg.menu.options")
40
40
  },
41
41
  {
42
42
  id: "save",
43
- label: "Save"
43
+ label: t("rpg.menu.save")
44
44
  },
45
45
  {
46
46
  id: "exit",
47
- label: "Exit"
47
+ label: t("rpg.menu.exit")
48
48
  }
49
49
  ];
50
- var menuEntries = computed(function() {
50
+ const menuEntries = computed(() => {
51
51
  if (menus && Array.isArray(menus) && menus.length) return menus;
52
52
  return defaultMenus;
53
53
  });
54
- var resolveProp = function(value) {
55
- return typeof value === "function" ? value() : value;
56
- };
57
- var saveLoadData = computed(function() {
58
- return resolveProp(saveLoad) || {};
59
- });
60
- computed(function() {
61
- return saveLoadData().mode || "load";
62
- });
63
- computed(function() {
64
- return saveLoadData().slots || [];
65
- });
66
- var saveLoadCanSave = computed(function() {
67
- return saveLoadData().canSave !== false;
68
- });
69
- var isMenuDisabled = function(entry) {
54
+ const resolveProp = (value) => typeof value === "function" ? value() : value;
55
+ const saveLoadData = computed(() => resolveProp(saveLoad) || {});
56
+ computed(() => saveLoadData().mode || "load");
57
+ computed(() => saveLoadData().slots || []);
58
+ const saveLoadCanSave = computed(() => saveLoadData().canSave !== false);
59
+ const isMenuDisabled = (entry) => {
70
60
  if (!entry) return true;
71
61
  if (entry.disabled) return true;
72
62
  if (entry.enabled === false) return true;
73
63
  if (entry.id === "save" && !saveLoadCanSave()) return true;
74
64
  return false;
75
65
  };
76
- var selectedMenu = signal(0);
77
- var view = signal("menu");
78
- var saveOverlay = signal(false);
79
- var selectableIndexes = computed(function() {
80
- return menuEntries().map(function(entry, index) {
81
- return isMenuDisabled(entry) ? null : index;
82
- }).filter(function(value) {
83
- return value !== null;
84
- });
66
+ const selectedMenu = signal(0);
67
+ const view = signal("menu");
68
+ const saveOverlay = signal(false);
69
+ const selectableIndexes = computed(() => {
70
+ return menuEntries().map((entry, index) => isMenuDisabled(entry) ? null : index).filter((value) => value !== null);
85
71
  });
86
- effect(function() {
87
- var available = selectableIndexes();
72
+ effect(() => {
73
+ const available = selectableIndexes();
88
74
  if (!available.length) return;
89
- var current = selectedMenu();
75
+ const current = selectedMenu();
90
76
  if (!available.includes(current)) selectedMenu.set(available[0]);
91
77
  });
92
- var moveMenu = function(delta) {
93
- var available = selectableIndexes();
78
+ const moveMenu = (delta) => {
79
+ const available = selectableIndexes();
94
80
  if (!available.length) return;
95
- var current = selectedMenu();
96
- var nextIndex = (Math.max(0, available.indexOf(current)) + delta + available.length) % available.length;
81
+ const current = selectedMenu();
82
+ const nextIndex = (Math.max(0, available.indexOf(current)) + delta + available.length) % available.length;
97
83
  selectedMenu.set(available[nextIndex]);
98
84
  };
99
85
  function selectMenu(index) {
@@ -102,8 +88,8 @@ function component($$props) {
102
88
  openMenu();
103
89
  };
104
90
  }
105
- var openMenu = function() {
106
- var entry = menuEntries()[selectedMenu()];
91
+ const openMenu = () => {
92
+ const entry = menuEntries()[selectedMenu()];
107
93
  if (!entry || isMenuDisabled(entry)) return;
108
94
  if (entry.id === "save") {
109
95
  saveOverlay.set(true);
@@ -115,43 +101,41 @@ function component($$props) {
115
101
  }
116
102
  view.set(entry.id);
117
103
  };
118
- var goBack = function() {
119
- delay(function() {
104
+ const goBack = () => {
105
+ delay(() => {
120
106
  view.set("menu");
121
107
  });
122
108
  };
123
- var closeSaveOverlay = function() {
124
- delay(function() {
109
+ const closeSaveOverlay = () => {
110
+ delay(() => {
125
111
  saveOverlay.set(false);
126
112
  view.set("menu");
127
113
  });
128
114
  };
129
- var confirmExit = function() {
115
+ const confirmExit = () => {
130
116
  if (onInteraction) onInteraction("exit");
131
117
  };
132
- var hp = getEntityProp(currentPlayer, "hp");
133
- var hpMax = getEntityProp(currentPlayer, "params.maxHp");
134
- var sp = getEntityProp(currentPlayer, "sp");
135
- var spMax = getEntityProp(currentPlayer, "params.maxSp");
136
- var level = getEntityProp(currentPlayer, "level");
137
- var exp = getEntityProp(currentPlayer, "exp");
138
- var gold = getEntityProp(currentPlayer, "gold");
139
- var expForNextlevel = computed(function() {
140
- return data().expForNextlevel || 0;
118
+ const hp = getEntityProp(currentPlayer, "hp");
119
+ const hpMax = getEntityProp(currentPlayer, "params.maxHp");
120
+ const sp = getEntityProp(currentPlayer, "sp");
121
+ const spMax = getEntityProp(currentPlayer, "params.maxSp");
122
+ const level = getEntityProp(currentPlayer, "level");
123
+ const exp = getEntityProp(currentPlayer, "exp");
124
+ const gold = getEntityProp(currentPlayer, "gold");
125
+ const expForNextlevel = computed(() => data().expForNextlevel || 0);
126
+ const hpPercent = computed(() => {
127
+ const max = hpMax() || 1;
128
+ return `${Math.max(0, Math.min(100, hp() / max * 100))}%`;
141
129
  });
142
- var hpPercent = computed(function() {
143
- var max = hpMax() || 1;
144
- return "".concat(Math.max(0, Math.min(100, hp() / max * 100)), "%");
130
+ const spPercent = computed(() => {
131
+ const max = spMax() || 1;
132
+ return `${Math.max(0, Math.min(100, sp() / max * 100))}%`;
145
133
  });
146
- var spPercent = computed(function() {
147
- var max = spMax() || 1;
148
- return "".concat(Math.max(0, Math.min(100, sp() / max * 100)), "%");
134
+ const expPercent = computed(() => {
135
+ const max = expForNextlevel() || 1;
136
+ return `${Math.max(0, Math.min(100, exp() / max * 100))}%`;
149
137
  });
150
- var expPercent = computed(function() {
151
- var max = expForNextlevel() || 1;
152
- return "".concat(Math.max(0, Math.min(100, exp() / max * 100)), "%");
153
- });
154
- var paramsList = computed(function() {
138
+ const paramsList = computed(() => {
155
139
  return [
156
140
  {
157
141
  label: "ATK",
@@ -183,12 +167,12 @@ function component($$props) {
183
167
  }
184
168
  ];
185
169
  });
186
- var menuControls = signal({
170
+ const menuControls = signal({
187
171
  up: {
188
172
  repeat: true,
189
173
  bind: keyboardControls.up,
190
174
  throttle: 150,
191
- keyDown: function() {
175
+ keyDown() {
192
176
  if (saveOverlay()) return;
193
177
  if (view() !== "menu") return;
194
178
  moveMenu(-1);
@@ -198,15 +182,15 @@ function component($$props) {
198
182
  repeat: true,
199
183
  bind: keyboardControls.down,
200
184
  throttle: 150,
201
- keyDown: function() {
185
+ keyDown() {
202
186
  if (saveOverlay()) return;
203
187
  if (view() !== "menu") return;
204
188
  moveMenu(1);
205
189
  }
206
190
  },
207
191
  action: {
208
- bind: keyboardControls.action,
209
- keyDown: function() {
192
+ bind: getKeyboardControlBind(keyboardControls.action),
193
+ keyDown() {
210
194
  if (saveOverlay()) return;
211
195
  if (view() !== "menu") return;
212
196
  openMenu();
@@ -214,7 +198,7 @@ function component($$props) {
214
198
  },
215
199
  escape: {
216
200
  bind: keyboardControls.escape,
217
- keyDown: function() {
201
+ keyDown() {
218
202
  if (saveOverlay()) return;
219
203
  if (view() !== "menu") {
220
204
  goBack();
@@ -225,10 +209,10 @@ function component($$props) {
225
209
  },
226
210
  gamepad: { enabled: true }
227
211
  });
228
- mount(function(element) {
212
+ mount((element) => {
229
213
  engine.gamePause.set(true);
230
- return function() {
231
- delay(function() {
214
+ return () => {
215
+ delay(() => {
232
216
  engine.stopProcessingInput = false;
233
217
  engine.gamePause.set(false);
234
218
  });
@@ -250,11 +234,11 @@ function component($$props) {
250
234
  }, [h(DOMElement, {
251
235
  element: "div",
252
236
  attrs: { class: "rpg-ui-menu-header" },
253
- textContent: "Menu"
237
+ textContent: computed(() => t("rpg.menu.title"))
254
238
  }), h(DOMElement, {
255
239
  element: "div",
256
240
  attrs: { class: "rpg-ui-main-menu-list" }
257
- }, loop(menuEntries(), (entry, index) => h(DOMElement, {
241
+ }, loop(computed(() => menuEntries()), (entry, index) => h(DOMElement, {
258
242
  element: "div",
259
243
  attrs: {
260
244
  class: ["rpg-ui-menu-item", computed(() => ({ disabled: isMenuDisabled(entry) }))],
@@ -274,7 +258,7 @@ function component($$props) {
274
258
  h(DOMElement, {
275
259
  element: "div",
276
260
  attrs: { class: "rpg-ui-main-menu-section-title" },
277
- textContent: "Status"
261
+ textContent: computed(() => t("rpg.menu.status"))
278
262
  }),
279
263
  h(DOMElement, {
280
264
  element: "div",
@@ -286,7 +270,7 @@ function component($$props) {
286
270
  }, [h(DOMElement, {
287
271
  element: "div",
288
272
  attrs: { class: "rpg-ui-main-menu-status-label" },
289
- textContent: "Level"
273
+ textContent: computed(() => t("rpg.menu.level"))
290
274
  }), h(DOMElement, {
291
275
  element: "div",
292
276
  attrs: { class: "rpg-ui-main-menu-status-value" },
@@ -298,7 +282,7 @@ function component($$props) {
298
282
  }, [h(DOMElement, {
299
283
  element: "div",
300
284
  attrs: { class: "rpg-ui-main-menu-status-label" },
301
- textContent: "Gold"
285
+ textContent: computed(() => t("rpg.menu.gold"))
302
286
  }), h(DOMElement, {
303
287
  element: "div",
304
288
  attrs: { class: "rpg-ui-main-menu-status-value" },
@@ -362,7 +346,7 @@ function component($$props) {
362
346
  h(DOMElement, {
363
347
  element: "div",
364
348
  attrs: { class: "rpg-ui-main-menu-section-title" },
365
- textContent: "Parameters"
349
+ textContent: computed(() => t("rpg.menu.parameters"))
366
350
  }),
367
351
  h(DOMElement, {
368
352
  element: "div",
@@ -378,22 +362,22 @@ function component($$props) {
378
362
  textContent: param.value
379
363
  })])))
380
364
  ])),
381
- cond(computed(() => view() === "items"), () => h(component$2, {
365
+ cond(computed(() => view() === "items"), () => h(__ce_component$2, {
382
366
  data,
383
367
  onInteraction,
384
368
  onBack: goBack
385
369
  })),
386
- cond(computed(() => view() === "skills"), () => h(component$3, {
370
+ cond(computed(() => view() === "skills"), () => h(__ce_component$3, {
387
371
  data,
388
372
  onBack: goBack
389
373
  })),
390
- cond(computed(() => view() === "equip"), () => h(component$4, {
374
+ cond(computed(() => view() === "equip"), () => h(__ce_component$4, {
391
375
  data,
392
376
  onInteraction,
393
377
  onBack: goBack
394
378
  })),
395
- cond(computed(() => view() === "options"), () => h(component$5, { onBack: goBack })),
396
- cond(computed(() => view() === "exit"), () => h(component$6, {
379
+ cond(computed(() => view() === "options"), () => h(__ce_component$5, { onBack: goBack })),
380
+ cond(computed(() => view() === "exit"), () => h(__ce_component$6, {
397
381
  onConfirm: confirmExit,
398
382
  onBack: goBack
399
383
  }))
@@ -406,12 +390,13 @@ function component($$props) {
406
390
  }), h(DOMElement, {
407
391
  element: "div",
408
392
  attrs: { class: "rpg-ui-main-menu-overlay-content" }
409
- }, h(component$1, {
393
+ }, h(__ce_component$1, {
410
394
  data: saveLoadData,
411
395
  onFinish: closeSaveOverlay
412
396
  }))]))]));
413
397
  }
398
+ var __ce_component = component;
414
399
  //#endregion
415
- export { component as default };
400
+ export { __ce_component as default };
416
401
 
417
402
  //# sourceMappingURL=main-menu.ce.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"main-menu.ce.js","names":[],"sources":["../../../../src/components/gui/menu/main-menu.ce"],"sourcesContent":["<DOMContainer width=\"100%\" height=\"100%\" controls={menuControls}>\n <div class=\"rpg-ui-main-menu rpg-anim-fade-in\">\n <div class=\"rpg-ui-main-menu-layout\">\n <div class=\"rpg-ui-main-menu-left rpg-ui-menu rpg-ui-panel\">\n <div class=\"rpg-ui-menu-header\">Menu</div>\n <div class=\"rpg-ui-main-menu-list\">\n @for ((entry,index) of menuEntries()) {\n <div\n class=\"rpg-ui-menu-item\"\n class={{disabled: isMenuDisabled(entry)}}\n data-selected={selectedMenu() === index ? \"true\" : \"false\"}\n tabindex={index}\n click={selectMenu(index)}\n >{entry.label}</div>\n }\n </div>\n </div>\n <div class=\"rpg-ui-main-menu-right\">\n @if (view() === \"menu\") {\n <div class=\"rpg-ui-panel\">\n <div class=\"rpg-ui-main-menu-section-title\">Status</div>\n <div class=\"rpg-ui-main-menu-status-card\">\n <div class=\"rpg-ui-main-menu-status-block\">\n <div class=\"rpg-ui-main-menu-status-label\">Level</div>\n <div class=\"rpg-ui-main-menu-status-value\">{level()}</div>\n </div>\n <div class=\"rpg-ui-main-menu-status-block\">\n <div class=\"rpg-ui-main-menu-status-label\">Gold</div>\n <div class=\"rpg-ui-main-menu-status-value\">{gold()}</div>\n </div>\n <div class=\"rpg-ui-main-menu-status-block\">\n <div class=\"rpg-ui-main-menu-status-label\">HP {hp()}/{hpMax()}</div>\n <div class=\"rpg-ui-main-menu-status-bar\">\n <div class=\"rpg-ui-main-menu-status-bar-fill hp\" style={{width: hpPercent}}></div>\n </div>\n </div>\n <div class=\"rpg-ui-main-menu-status-block\">\n <div class=\"rpg-ui-main-menu-status-label\">SP {sp()}/{spMax()}</div>\n <div class=\"rpg-ui-main-menu-status-bar\">\n <div class=\"rpg-ui-main-menu-status-bar-fill sp\" style={{width: spPercent}}></div>\n </div>\n </div>\n <div class=\"rpg-ui-main-menu-status-block\" style={{gridColumn: \"span 2\"}}>\n <div class=\"rpg-ui-main-menu-status-label\">EXP {exp()}/{expForNextlevel()}</div>\n <div class=\"rpg-ui-main-menu-status-bar\">\n <div class=\"rpg-ui-main-menu-status-bar-fill exp\" style={{width: expPercent}}></div>\n </div>\n </div>\n </div>\n <div class=\"rpg-ui-main-menu-section-title\">Parameters</div>\n <div class=\"rpg-ui-main-menu-params\">\n @for ((param,index) of paramsList) {\n <div class=\"rpg-ui-main-menu-param\">\n <span>{param.label}</span>\n <span>{param.value}</span>\n </div>\n }\n </div>\n </div>\n }\n @if (view() === \"items\") {\n <ItemsMenu data={data} onInteraction={onInteraction} onBack={goBack} />\n }\n @if (view() === \"skills\") {\n <SkillsMenu data={data} onBack={goBack} />\n }\n @if (view() === \"equip\") {\n <EquipMenu data={data} onInteraction={onInteraction} onBack={goBack} />\n }\n @if (view() === \"options\") {\n <OptionsMenu onBack={goBack} />\n }\n @if (view() === \"exit\") {\n <ExitMenu onConfirm={confirmExit} onBack={goBack} />\n }\n </div>\n </div>\n @if (saveOverlay) {\n <div class=\"rpg-ui-main-menu-overlay\">\n <div class=\"rpg-ui-main-menu-overlay-backdrop\"></div>\n <div class=\"rpg-ui-main-menu-overlay-content\">\n <SaveLoadComponent\n data={saveLoadData}\n onFinish={closeSaveOverlay}\n />\n </div>\n </div>\n }\n </div>\n</DOMContainer>\n\n<script>\n import { signal, computed, effect, mount } from \"canvasengine\";\n import { inject } from \"../../../core/inject\";\n import { RpgClientEngine } from \"../../../RpgClientEngine\";\n import SaveLoadComponent from \"../save-load.ce\";\n import ItemsMenu from \"./items-menu.ce\";\n import SkillsMenu from \"./skills-menu.ce\";\n import EquipMenu from \"./equip-menu.ce\";\n import OptionsMenu from \"./options-menu.ce\";\n import ExitMenu from \"./exit-menu.ce\";\n import { getEntityProp } from \"../../../utils/getEntityProp\";\n import { delay } from \"@rpgjs/common\";\n\n const engine = inject(RpgClientEngine);\n const currentPlayer = engine.scene.currentPlayer;\n const keyboardControls = engine.globalConfig.keyboardControls;\n\n const { data, onFinish, onInteraction } = defineProps();\n const { menus, items, skills, equips, saveLoad } = data();\n\n const defaultMenus = [\n { id: \"items\", label: \"Items\" },\n { id: \"skills\", label: \"Skills\" },\n { id: \"equip\", label: \"Equip\" },\n { id: \"options\", label: \"Options\" },\n { id: \"save\", label: \"Save\" },\n { id: \"exit\", label: \"Exit\" }\n ];\n\n const menuEntries = computed(() => {\n if (menus && Array.isArray(menus) && menus.length) return menus;\n return defaultMenus;\n });\n\n const resolveProp = (value) => typeof value === \"function\" ? value() : value;\n const saveLoadData = computed(() => resolveProp(saveLoad) || {});\n const saveLoadMode = computed(() => saveLoadData().mode || \"load\");\n const saveLoadSlots = computed(() => saveLoadData().slots || []);\n const saveLoadCanSave = computed(() => saveLoadData().canSave !== false);\n\n const isMenuDisabled = (entry) => {\n if (!entry) return true;\n if (entry.disabled) return true;\n if (entry.enabled === false) return true;\n if (entry.id === \"save\" && !saveLoadCanSave()) return true;\n return false;\n };\n\n const selectedMenu = signal(0);\n const view = signal(\"menu\");\n const saveOverlay = signal(false);\n\n const selectableIndexes = computed(() => {\n const entries = menuEntries();\n return entries\n .map((entry, index) => (isMenuDisabled(entry) ? null : index))\n .filter((value) => value !== null);\n });\n\n effect(() => {\n const available = selectableIndexes();\n if (!available.length) return;\n const current = selectedMenu();\n if (!available.includes(current)) {\n selectedMenu.set(available[0]);\n }\n });\n\n const moveMenu = (delta) => {\n const available = selectableIndexes();\n if (!available.length) return;\n const current = selectedMenu();\n const currentIndex = Math.max(0, available.indexOf(current));\n const nextIndex = (currentIndex + delta + available.length) % available.length;\n selectedMenu.set(available[nextIndex]);\n };\n\n function selectMenu(index) {\n return function() {\n selectedMenu.set(index);\n openMenu();\n }\n }\n\n const openMenu = () => {\n const entry = menuEntries()[selectedMenu()];\n if (!entry || isMenuDisabled(entry)) return;\n if (entry.id === \"save\") {\n saveOverlay.set(true);\n return;\n }\n if (entry.id === \"exit\") {\n view.set(\"exit\");\n return;\n }\n view.set(entry.id);\n };\n\n const goBack = () => {\n delay(() => {\n view.set(\"menu\");\n });\n };\n\n const closeSaveOverlay = () => {\n delay(() => {\n saveOverlay.set(false);\n view.set(\"menu\");\n });\n };\n\n const confirmExit = () => {\n if (onInteraction) onInteraction(\"exit\");\n };\n\n const hp = getEntityProp(currentPlayer, \"hp\");\n const hpMax = getEntityProp(currentPlayer, \"params.maxHp\");\n const sp = getEntityProp(currentPlayer, \"sp\");\n const spMax = getEntityProp(currentPlayer, \"params.maxSp\");\n const level = getEntityProp(currentPlayer, \"level\");\n const exp = getEntityProp(currentPlayer, \"exp\");\n const gold = getEntityProp(currentPlayer, \"gold\");\n const expForNextlevel = computed(() => data().expForNextlevel || 0);\n const hpPercent = computed(() => {\n const max = hpMax() || 1;\n return `${Math.max(0, Math.min(100, (hp() / max) * 100))}%`;\n });\n const spPercent = computed(() => {\n const max = spMax() || 1;\n return `${Math.max(0, Math.min(100, (sp() / max) * 100))}%`;\n });\n const expPercent = computed(() => {\n const max = expForNextlevel() || 1;\n return `${Math.max(0, Math.min(100, (exp() / max) * 100))}%`;\n });\n\n const paramsList = computed(() => {\n return [\n { label: \"ATK\", value: data().playerStats.atk },\n { label: \"PDEF\", value: data().playerStats.pdef },\n { label: \"SDEF\", value: data().playerStats.sdef },\n { label: \"STR\", value: data().playerStats.str },\n { label: \"DEX\", value: data().playerStats.dex },\n { label: \"INT\", value: data().playerStats.int },\n { label: \"AGI\", value: data().playerStats.agi }\n ]\n }\n\n const menuControls = signal({\n up: {\n repeat: true,\n bind: keyboardControls.up,\n throttle: 150,\n keyDown() {\n if (saveOverlay()) return;\n if (view() !== \"menu\") return;\n moveMenu(-1);\n }\n },\n down: {\n repeat: true,\n bind: keyboardControls.down,\n throttle: 150,\n keyDown() {\n if (saveOverlay()) return;\n if (view() !== \"menu\") return;\n moveMenu(1);\n }\n },\n action: {\n bind: keyboardControls.action,\n keyDown() {\n if (saveOverlay()) return;\n if (view() !== \"menu\") return;\n openMenu();\n }\n },\n escape: {\n bind: keyboardControls.escape,\n keyDown() {\n if (saveOverlay()) return;\n if (view() !== \"menu\") {\n goBack();\n return;\n }\n onFinish()\n }\n },\n gamepad: {\n enabled: true\n }\n });\n\n mount((element) => {\n engine.gamePause.set(true);\n return () => {\n delay(() => {\n engine.stopProcessingInput = false;\n engine.gamePause.set(false);\n });\n }\n });\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"main-menu.ce.js","names":[],"sources":["../../../../src/components/gui/menu/main-menu.ce"],"sourcesContent":["<DOMContainer width=\"100%\" height=\"100%\" controls={menuControls}>\n <div class=\"rpg-ui-main-menu rpg-anim-fade-in\">\n <div class=\"rpg-ui-main-menu-layout\">\n <div class=\"rpg-ui-main-menu-left rpg-ui-menu rpg-ui-panel\">\n <div class=\"rpg-ui-menu-header\">{t(\"rpg.menu.title\")}</div>\n <div class=\"rpg-ui-main-menu-list\">\n @for ((entry,index) of menuEntries()) {\n <div\n class=\"rpg-ui-menu-item\"\n class={{disabled: isMenuDisabled(entry)}}\n data-selected={selectedMenu() === index ? \"true\" : \"false\"}\n tabindex={index}\n click={selectMenu(index)}\n >{entry.label}</div>\n }\n </div>\n </div>\n <div class=\"rpg-ui-main-menu-right\">\n @if (view() === \"menu\") {\n <div class=\"rpg-ui-panel\">\n <div class=\"rpg-ui-main-menu-section-title\">{t(\"rpg.menu.status\")}</div>\n <div class=\"rpg-ui-main-menu-status-card\">\n <div class=\"rpg-ui-main-menu-status-block\">\n <div class=\"rpg-ui-main-menu-status-label\">{t(\"rpg.menu.level\")}</div>\n <div class=\"rpg-ui-main-menu-status-value\">{level()}</div>\n </div>\n <div class=\"rpg-ui-main-menu-status-block\">\n <div class=\"rpg-ui-main-menu-status-label\">{t(\"rpg.menu.gold\")}</div>\n <div class=\"rpg-ui-main-menu-status-value\">{gold()}</div>\n </div>\n <div class=\"rpg-ui-main-menu-status-block\">\n <div class=\"rpg-ui-main-menu-status-label\">HP {hp()}/{hpMax()}</div>\n <div class=\"rpg-ui-main-menu-status-bar\">\n <div class=\"rpg-ui-main-menu-status-bar-fill hp\" style={{width: hpPercent}}></div>\n </div>\n </div>\n <div class=\"rpg-ui-main-menu-status-block\">\n <div class=\"rpg-ui-main-menu-status-label\">SP {sp()}/{spMax()}</div>\n <div class=\"rpg-ui-main-menu-status-bar\">\n <div class=\"rpg-ui-main-menu-status-bar-fill sp\" style={{width: spPercent}}></div>\n </div>\n </div>\n <div class=\"rpg-ui-main-menu-status-block\" style={{gridColumn: \"span 2\"}}>\n <div class=\"rpg-ui-main-menu-status-label\">EXP {exp()}/{expForNextlevel()}</div>\n <div class=\"rpg-ui-main-menu-status-bar\">\n <div class=\"rpg-ui-main-menu-status-bar-fill exp\" style={{width: expPercent}}></div>\n </div>\n </div>\n </div>\n <div class=\"rpg-ui-main-menu-section-title\">{t(\"rpg.menu.parameters\")}</div>\n <div class=\"rpg-ui-main-menu-params\">\n @for ((param,index) of paramsList) {\n <div class=\"rpg-ui-main-menu-param\">\n <span>{param.label}</span>\n <span>{param.value}</span>\n </div>\n }\n </div>\n </div>\n }\n @if (view() === \"items\") {\n <ItemsMenu data={data} onInteraction={onInteraction} onBack={goBack} />\n }\n @if (view() === \"skills\") {\n <SkillsMenu data={data} onBack={goBack} />\n }\n @if (view() === \"equip\") {\n <EquipMenu data={data} onInteraction={onInteraction} onBack={goBack} />\n }\n @if (view() === \"options\") {\n <OptionsMenu onBack={goBack} />\n }\n @if (view() === \"exit\") {\n <ExitMenu onConfirm={confirmExit} onBack={goBack} />\n }\n </div>\n </div>\n @if (saveOverlay) {\n <div class=\"rpg-ui-main-menu-overlay\">\n <div class=\"rpg-ui-main-menu-overlay-backdrop\"></div>\n <div class=\"rpg-ui-main-menu-overlay-content\">\n <SaveLoadComponent\n data={saveLoadData}\n onFinish={closeSaveOverlay}\n />\n </div>\n </div>\n }\n </div>\n</DOMContainer>\n\n<script>\n import { signal, computed, effect, mount } from \"canvasengine\";\n import { inject } from \"../../../core/inject\";\n import { RpgClientEngine } from \"../../../RpgClientEngine\";\n import SaveLoadComponent from \"../save-load.ce\";\n import ItemsMenu from \"./items-menu.ce\";\n import SkillsMenu from \"./skills-menu.ce\";\n import EquipMenu from \"./equip-menu.ce\";\n import OptionsMenu from \"./options-menu.ce\";\n import ExitMenu from \"./exit-menu.ce\";\n import { getEntityProp } from \"../../../utils/getEntityProp\";\n import { delay } from \"@rpgjs/common\";\n import { getKeyboardControlBind } from \"../../../services/actionInput\";\n\n const engine = inject(RpgClientEngine);\n const { t } = engine.i18n();\n const currentPlayer = engine.scene.currentPlayer;\n const keyboardControls = engine.globalConfig.keyboardControls;\n\n const { data, onFinish, onInteraction } = defineProps();\n const { menus, items, skills, equips, saveLoad } = data();\n\n const defaultMenus = [\n { id: \"items\", label: t(\"rpg.menu.items\") },\n { id: \"skills\", label: t(\"rpg.menu.skills\") },\n { id: \"equip\", label: t(\"rpg.menu.equip\") },\n { id: \"options\", label: t(\"rpg.menu.options\") },\n { id: \"save\", label: t(\"rpg.menu.save\") },\n { id: \"exit\", label: t(\"rpg.menu.exit\") }\n ];\n\n const menuEntries = computed(() => {\n if (menus && Array.isArray(menus) && menus.length) return menus;\n return defaultMenus;\n });\n\n const resolveProp = (value) => typeof value === \"function\" ? value() : value;\n const saveLoadData = computed(() => resolveProp(saveLoad) || {});\n const saveLoadMode = computed(() => saveLoadData().mode || \"load\");\n const saveLoadSlots = computed(() => saveLoadData().slots || []);\n const saveLoadCanSave = computed(() => saveLoadData().canSave !== false);\n\n const isMenuDisabled = (entry) => {\n if (!entry) return true;\n if (entry.disabled) return true;\n if (entry.enabled === false) return true;\n if (entry.id === \"save\" && !saveLoadCanSave()) return true;\n return false;\n };\n\n const selectedMenu = signal(0);\n const view = signal(\"menu\");\n const saveOverlay = signal(false);\n\n const selectableIndexes = computed(() => {\n const entries = menuEntries();\n return entries\n .map((entry, index) => (isMenuDisabled(entry) ? null : index))\n .filter((value) => value !== null);\n });\n\n effect(() => {\n const available = selectableIndexes();\n if (!available.length) return;\n const current = selectedMenu();\n if (!available.includes(current)) {\n selectedMenu.set(available[0]);\n }\n });\n\n const moveMenu = (delta) => {\n const available = selectableIndexes();\n if (!available.length) return;\n const current = selectedMenu();\n const currentIndex = Math.max(0, available.indexOf(current));\n const nextIndex = (currentIndex + delta + available.length) % available.length;\n selectedMenu.set(available[nextIndex]);\n };\n\n function selectMenu(index) {\n return function() {\n selectedMenu.set(index);\n openMenu();\n }\n }\n\n const openMenu = () => {\n const entry = menuEntries()[selectedMenu()];\n if (!entry || isMenuDisabled(entry)) return;\n if (entry.id === \"save\") {\n saveOverlay.set(true);\n return;\n }\n if (entry.id === \"exit\") {\n view.set(\"exit\");\n return;\n }\n view.set(entry.id);\n };\n\n const goBack = () => {\n delay(() => {\n view.set(\"menu\");\n });\n };\n\n const closeSaveOverlay = () => {\n delay(() => {\n saveOverlay.set(false);\n view.set(\"menu\");\n });\n };\n\n const confirmExit = () => {\n if (onInteraction) onInteraction(\"exit\");\n };\n\n const hp = getEntityProp(currentPlayer, \"hp\");\n const hpMax = getEntityProp(currentPlayer, \"params.maxHp\");\n const sp = getEntityProp(currentPlayer, \"sp\");\n const spMax = getEntityProp(currentPlayer, \"params.maxSp\");\n const level = getEntityProp(currentPlayer, \"level\");\n const exp = getEntityProp(currentPlayer, \"exp\");\n const gold = getEntityProp(currentPlayer, \"gold\");\n const expForNextlevel = computed(() => data().expForNextlevel || 0);\n const hpPercent = computed(() => {\n const max = hpMax() || 1;\n return `${Math.max(0, Math.min(100, (hp() / max) * 100))}%`;\n });\n const spPercent = computed(() => {\n const max = spMax() || 1;\n return `${Math.max(0, Math.min(100, (sp() / max) * 100))}%`;\n });\n const expPercent = computed(() => {\n const max = expForNextlevel() || 1;\n return `${Math.max(0, Math.min(100, (exp() / max) * 100))}%`;\n });\n\n const paramsList = computed(() => {\n return [\n { label: \"ATK\", value: data().playerStats.atk },\n { label: \"PDEF\", value: data().playerStats.pdef },\n { label: \"SDEF\", value: data().playerStats.sdef },\n { label: \"STR\", value: data().playerStats.str },\n { label: \"DEX\", value: data().playerStats.dex },\n { label: \"INT\", value: data().playerStats.int },\n { label: \"AGI\", value: data().playerStats.agi }\n ]\n }\n\n const menuControls = signal({\n up: {\n repeat: true,\n bind: keyboardControls.up,\n throttle: 150,\n keyDown() {\n if (saveOverlay()) return;\n if (view() !== \"menu\") return;\n moveMenu(-1);\n }\n },\n down: {\n repeat: true,\n bind: keyboardControls.down,\n throttle: 150,\n keyDown() {\n if (saveOverlay()) return;\n if (view() !== \"menu\") return;\n moveMenu(1);\n }\n },\n action: {\n bind: getKeyboardControlBind(keyboardControls.action),\n keyDown() {\n if (saveOverlay()) return;\n if (view() !== \"menu\") return;\n openMenu();\n }\n },\n escape: {\n bind: keyboardControls.escape,\n keyDown() {\n if (saveOverlay()) return;\n if (view() !== \"menu\") {\n goBack();\n return;\n }\n onFinish()\n }\n },\n gamepad: {\n enabled: true\n }\n });\n\n mount((element) => {\n engine.gamePause.set(true);\n return () => {\n delay(() => {\n engine.stopProcessingInput = false;\n engine.gamePause.set(false);\n });\n }\n });\n</script>\n"],"mappings":"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"}
@@ -1,19 +1,22 @@
1
1
  import { inject } from "../../../core/inject.js";
2
2
  import { RpgClientEngine } from "../../../RpgClientEngine.js";
3
- import { DOMContainer, DOMElement, h, signal, useDefineProps, useProps } from "canvasengine";
3
+ import { DOMContainer, DOMElement, computed, h, signal, useDefineEmits, useDefineProps, useProps } from "canvasengine";
4
4
  //#region src/components/gui/menu/options-menu.ce
5
5
  function component($$props) {
6
6
  useProps($$props);
7
7
  const defineProps = useDefineProps($$props);
8
- var keyboardControls = inject(RpgClientEngine).globalConfig.keyboardControls;
9
- var onBack = defineProps().onBack;
8
+ useDefineEmits($$props);
9
+ const engine = inject(RpgClientEngine);
10
+ const { t } = engine.i18n();
11
+ const keyboardControls = engine.globalConfig.keyboardControls;
12
+ const { onBack } = defineProps();
10
13
  return h(DOMContainer, {
11
14
  width: "100%",
12
15
  height: "100%",
13
16
  controls: signal({
14
17
  escape: {
15
18
  bind: keyboardControls.escape,
16
- keyDown: function() {
19
+ keyDown() {
17
20
  if (onBack) onBack();
18
21
  }
19
22
  },
@@ -25,7 +28,7 @@ function component($$props) {
25
28
  }, [h(DOMElement, {
26
29
  element: "div",
27
30
  attrs: { class: "rpg-ui-menu-panel-header" },
28
- textContent: "Options"
31
+ textContent: computed(() => t("rpg.menu.options"))
29
32
  }), h(DOMElement, {
30
33
  element: "div",
31
34
  attrs: { class: "rpg-ui-menu-panel-body" }
@@ -35,14 +38,15 @@ function component($$props) {
35
38
  }, [h(DOMElement, {
36
39
  element: "div",
37
40
  attrs: { class: "rpg-ui-menu-panel-details-title" },
38
- textContent: "Options"
41
+ textContent: computed(() => t("rpg.menu.options"))
39
42
  }), h(DOMElement, {
40
43
  element: "div",
41
44
  attrs: { class: "rpg-ui-menu-panel-details-desc" },
42
- textContent: "Configure your preferences here.\n "
45
+ textContent: computed(() => t("rpg.menu.options-help"))
43
46
  })]))]));
44
47
  }
48
+ var __ce_component = component;
45
49
  //#endregion
46
- export { component as default };
50
+ export { __ce_component as default };
47
51
 
48
52
  //# sourceMappingURL=options-menu.ce.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"options-menu.ce.js","names":[],"sources":["../../../../src/components/gui/menu/options-menu.ce"],"sourcesContent":["<DOMContainer width=\"100%\" height=\"100%\" controls={controls}>\n <div class=\"rpg-ui-menu-panel rpg-ui-panel\">\n <div class=\"rpg-ui-menu-panel-header\">Options</div>\n <div class=\"rpg-ui-menu-panel-body\">\n <div class=\"rpg-ui-menu-panel-details\">\n <div class=\"rpg-ui-menu-panel-details-title\">Options</div>\n <div class=\"rpg-ui-menu-panel-details-desc\">\n Configure your preferences here.\n </div>\n </div>\n </div>\n </div>\n</DOMContainer>\n\n<script>\n import { signal } from \"canvasengine\";\n import { inject } from \"../../../core/inject\";\n import { RpgClientEngine } from \"../../../RpgClientEngine\";\n\n const engine = inject(RpgClientEngine);\n const keyboardControls = engine.globalConfig.keyboardControls;\n const { onBack } = defineProps();\n\n const controls = signal({\n escape: {\n bind: keyboardControls.escape,\n keyDown() {\n if (onBack) onBack();\n }\n },\n gamepad: {\n enabled: true\n }\n });\n</script>\n"],"mappings":";;;;AASM,SAAW,UAAA,SAAA;AACJ,UAAA,QAAA;CACP,MAAG,cAAA,eAAA,QAAA;wBACK,OAAA,gBAAA,CAAA,aAAA;CAEd,IAAC,SAAM,aAAA,CAAA;AAcC,QADY,EAAA,cAAgB;EAAA,OAAA;EAAA,QAAA;EAAA,UAZvB,OAAS;GAClB,QAAQ;IACR,MAAS,iBAAkB;;AAErB,SAAM,OACN,SAAA;;;GAGN,SAAM,EACF,SAAQ,MACX;GACJ,CAAC;EACkC,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,kCAAA;EAAA,EAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,4BAAA;EAAA,aAAA;EAAA,CAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,0BAAA;EAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,6BAAA;EAAA,EAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,mCAAA;EAAA,aAAA;EAAA,CAAA,EAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,kCAAA;EAAA,aAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"options-menu.ce.js","names":[],"sources":["../../../../src/components/gui/menu/options-menu.ce"],"sourcesContent":["<DOMContainer width=\"100%\" height=\"100%\" controls={controls}>\n <div class=\"rpg-ui-menu-panel rpg-ui-panel\">\n <div class=\"rpg-ui-menu-panel-header\">{t(\"rpg.menu.options\")}</div>\n <div class=\"rpg-ui-menu-panel-body\">\n <div class=\"rpg-ui-menu-panel-details\">\n <div class=\"rpg-ui-menu-panel-details-title\">{t(\"rpg.menu.options\")}</div>\n <div class=\"rpg-ui-menu-panel-details-desc\">\n {t(\"rpg.menu.options-help\")}\n </div>\n </div>\n </div>\n </div>\n</DOMContainer>\n\n<script>\n import { signal } from \"canvasengine\";\n import { inject } from \"../../../core/inject\";\n import { RpgClientEngine } from \"../../../RpgClientEngine\";\n\n const engine = inject(RpgClientEngine);\n const { t } = engine.i18n();\n const keyboardControls = engine.globalConfig.keyboardControls;\n const { onBack } = defineProps();\n\n const controls = signal({\n escape: {\n bind: keyboardControls.escape,\n keyDown() {\n if (onBack) onBack();\n }\n },\n gamepad: {\n enabled: true\n }\n });\n</script>\n"],"mappings":";;;;AASM,SAAQ,UAAG,SAAA;CACJ,SAAA,OAAA;CACP,MAAG,cAAA,eAAA,OAAA;CACK,eAAA,OAAA;;CAEd,MAAC,EAAM,MAAA,OAAA,KAAA;CACP,MAAI,mBAAkB,OAAM,aAAa;CACzC,MAAI,EAAA,WAAe,YAAY;CAcvB,OADI,EAAA,cAAA;EAAA,OAAA;EAAA,QAAA;EAAA,UAZC,OAAA;;IAET,MAAM,iBAAgB;IACtB,UAAc;KACR,IAAA,QACE,OAAW;;GAEnB;GACA,SAAI,EACA,SAAS,KACb;EACJ,CACY;CAAA,GAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,iCAAA;CAAA,GAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,2BAAA;EAAA,aAAA,eAAA,EAAA,kBAAA,CAAA;CAAA,CAAA,GAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,yBAAA;CAAA,GAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,4BAAA;CAAA,GAAA,CAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,kCAAA;EAAA,aAAA,eAAA,EAAA,kBAAA,CAAA;CAAA,CAAA,GAAA,EAAA,YAAA;EAAA,SAAA;EAAA,OAAA,EAAA,OAAA,iCAAA;EAAA,aAAA,eAAA,EAAA,uBAAA,CAAA;CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACH;AACH;AAEA,IAAE,iBAAA"}
@@ -1,33 +1,30 @@
1
1
  import { inject } from "../../../core/inject.js";
2
2
  import { RpgClientEngine } from "../../../RpgClientEngine.js";
3
- import { DOMContainer, DOMElement, Navigation, computed, cond, createTabindexNavigator, h, loop, signal, useDefineProps, useProps } from "canvasengine";
3
+ import { DOMContainer, DOMElement, Navigation, computed, cond, createTabindexNavigator, h, loop, signal, useDefineEmits, useDefineProps, useProps } from "canvasengine";
4
4
  //#region src/components/gui/menu/skills-menu.ce
5
5
  function component($$props) {
6
6
  useProps($$props);
7
7
  const defineProps = useDefineProps($$props);
8
- var keyboardControls = inject(RpgClientEngine).globalConfig.keyboardControls;
9
- var selectedSkill = signal(0);
10
- var _a = defineProps(), data = _a.data, onBack = _a.onBack;
11
- var skills = computed(function() {
12
- return data().skills;
13
- });
14
- var nav = createTabindexNavigator(selectedSkill, { count: function() {
15
- return skills().length;
16
- } }, "wrap");
17
- var currentSkill = computed(function() {
18
- return skills()[selectedSkill()];
19
- });
8
+ useDefineEmits($$props);
9
+ const engine = inject(RpgClientEngine);
10
+ const { t } = engine.i18n();
11
+ const keyboardControls = engine.globalConfig.keyboardControls;
12
+ const selectedSkill = signal(0);
13
+ const { data, onBack } = defineProps();
14
+ const skills = computed(() => data().skills);
15
+ const nav = createTabindexNavigator(selectedSkill, { count: () => skills().length }, "wrap");
16
+ const currentSkill = computed(() => skills()[selectedSkill()]);
20
17
  function selectSkill(index) {
21
18
  return function() {
22
19
  selectedSkill.set(index);
23
20
  };
24
21
  }
25
- var controls = signal({
22
+ const controls = signal({
26
23
  up: {
27
24
  repeat: true,
28
25
  bind: keyboardControls.up,
29
26
  throttle: 150,
30
- keyDown: function() {
27
+ keyDown() {
31
28
  nav.next(-1);
32
29
  }
33
30
  },
@@ -35,13 +32,13 @@ function component($$props) {
35
32
  repeat: true,
36
33
  bind: keyboardControls.down,
37
34
  throttle: 150,
38
- keyDown: function() {
35
+ keyDown() {
39
36
  nav.next(1);
40
37
  }
41
38
  },
42
39
  escape: {
43
40
  bind: keyboardControls.escape,
44
- keyDown: function() {
41
+ keyDown() {
45
42
  if (onBack) onBack();
46
43
  }
47
44
  },
@@ -56,7 +53,7 @@ function component($$props) {
56
53
  }, [h(DOMElement, {
57
54
  element: "div",
58
55
  attrs: { class: "rpg-ui-menu-panel-header" },
59
- textContent: "Skills"
56
+ textContent: computed(() => t("rpg.menu.skills"))
60
57
  }), h(DOMElement, {
61
58
  element: "div",
62
59
  attrs: { class: "rpg-ui-menu-panel-body rpg-ui-menu-panel-body-stacked" }
@@ -101,7 +98,8 @@ function component($$props) {
101
98
  textContent: "SP " + skill.spCost
102
99
  })]))))])]));
103
100
  }
101
+ var __ce_component = component;
104
102
  //#endregion
105
- export { component as default };
103
+ export { __ce_component as default };
106
104
 
107
105
  //# sourceMappingURL=skills-menu.ce.js.map