blacktrigram 0.7.44 → 0.7.45

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 (746) hide show
  1. package/lib/audio/AudioManager.d.ts +26 -0
  2. package/lib/audio/AudioManager.d.ts.map +1 -1
  3. package/lib/audio/AudioManager.js +26 -0
  4. package/lib/audio/AudioManager.js.map +1 -1
  5. package/lib/audio/index.d.ts.map +1 -1
  6. package/lib/audio/index.js.map +1 -1
  7. package/lib/audio/types.d.ts +18 -2
  8. package/lib/audio/types.d.ts.map +1 -1
  9. package/lib/audio/types.js +1 -0
  10. package/lib/audio/types.js.map +1 -1
  11. package/lib/components/effects/WindParticles3D.d.ts.map +1 -1
  12. package/lib/components/index.d.ts.map +1 -1
  13. package/lib/components/index.js.map +1 -1
  14. package/lib/components/screens/combat/CombatScreen3D.d.ts.map +1 -1
  15. package/lib/components/screens/combat/CombatScreen3D.js.map +1 -1
  16. package/lib/components/screens/combat/components/controls/KeyboardHints.d.ts +0 -1
  17. package/lib/components/screens/combat/components/controls/KeyboardHints.d.ts.map +1 -1
  18. package/lib/components/screens/combat/components/controls/KeyboardHints.js +0 -1
  19. package/lib/components/screens/combat/components/controls/KeyboardHints.js.map +1 -1
  20. package/lib/components/screens/combat/components/controls/PauseMenu.d.ts.map +1 -1
  21. package/lib/components/screens/combat/components/controls/PauseMenu.js.map +1 -1
  22. package/lib/components/screens/combat/components/effects/ArterialSpray3D.d.ts.map +1 -1
  23. package/lib/components/screens/combat/components/effects/BloodDecals3D.d.ts.map +1 -1
  24. package/lib/components/screens/combat/components/effects/BloodDecals3D.js.map +1 -1
  25. package/lib/components/screens/combat/components/effects/BloodLossOverlayHtml.d.ts.map +1 -1
  26. package/lib/components/screens/combat/components/effects/BloodLossOverlayHtml.js.map +1 -1
  27. package/lib/components/screens/combat/components/effects/BloodParticles3D.d.ts.map +1 -1
  28. package/lib/components/screens/combat/components/effects/BloodParticles3D.js.map +1 -1
  29. package/lib/components/screens/combat/components/effects/BloodViscosity3D.d.ts.map +1 -1
  30. package/lib/components/screens/combat/components/effects/BloodViscosity3D.js.map +1 -1
  31. package/lib/components/screens/combat/components/effects/BoneCrackParticles3D.d.ts.map +1 -1
  32. package/lib/components/screens/combat/components/effects/CombatParticleEffects3D.d.ts.map +1 -1
  33. package/lib/components/screens/combat/components/effects/CombatParticleEffects3D.js.map +1 -1
  34. package/lib/components/screens/combat/components/effects/ConsciousnessBlur.d.ts.map +1 -1
  35. package/lib/components/screens/combat/components/effects/ConsciousnessBlur.js.map +1 -1
  36. package/lib/components/screens/combat/components/effects/DustClouds3D.d.ts.map +1 -1
  37. package/lib/components/screens/combat/components/effects/EarthCrackEffect3D.d.ts.map +1 -1
  38. package/lib/components/screens/combat/components/effects/EarthHealingEffect3D.d.ts.map +1 -1
  39. package/lib/components/screens/combat/components/effects/ImpactSparks3D.d.ts.map +1 -1
  40. package/lib/components/screens/combat/components/effects/InternalDamage3D.d.ts.map +1 -1
  41. package/lib/components/screens/combat/components/effects/InternalDamage3D.js.map +1 -1
  42. package/lib/components/screens/combat/components/effects/LiPrecisionTargetingOverlay.d.ts.map +1 -1
  43. package/lib/components/screens/combat/components/effects/NerveStrikeParticles3D.d.ts.map +1 -1
  44. package/lib/components/screens/combat/components/effects/PainVignette.d.ts.map +1 -1
  45. package/lib/components/screens/combat/components/effects/PainVignette.js.map +1 -1
  46. package/lib/components/screens/combat/components/effects/ParticleAudio3D.d.ts.map +1 -1
  47. package/lib/components/screens/combat/components/effects/ParticleAudio3D.js.map +1 -1
  48. package/lib/components/screens/combat/components/effects/TraumaOverlay3D.d.ts.map +1 -1
  49. package/lib/components/screens/combat/components/effects/TraumaOverlay3D.js.map +1 -1
  50. package/lib/components/screens/combat/components/effects/WaterRipple3D.d.ts.map +1 -1
  51. package/lib/components/screens/combat/components/effects/WaterWave3D.d.ts.map +1 -1
  52. package/lib/components/screens/combat/components/effects/index.d.ts.map +1 -1
  53. package/lib/components/screens/combat/components/feedback/MatchCountdown.d.ts.map +1 -1
  54. package/lib/components/screens/combat/components/feedback/MatchCountdown.js.map +1 -1
  55. package/lib/components/screens/combat/components/feedback/RoundAnnouncementOverlayHtml.d.ts.map +1 -1
  56. package/lib/components/screens/combat/components/feedback/RoundAnnouncementOverlayHtml.js.map +1 -1
  57. package/lib/components/screens/combat/components/feedback/RoundStartAnnouncementOverlayHtml.d.ts.map +1 -1
  58. package/lib/components/screens/combat/components/feedback/RoundStartAnnouncementOverlayHtml.js.map +1 -1
  59. package/lib/components/screens/combat/components/hud/CombatBottomHUD.d.ts.map +1 -1
  60. package/lib/components/screens/combat/components/hud/CombatBottomHUD.js.map +1 -1
  61. package/lib/components/screens/combat/components/hud/CombatLeftHUD.d.ts.map +1 -1
  62. package/lib/components/screens/combat/components/hud/CombatLeftHUD.js.map +1 -1
  63. package/lib/components/screens/combat/components/hud/CombatPortraitStatusStrip.d.ts.map +1 -1
  64. package/lib/components/screens/combat/components/hud/CombatPortraitStatusStrip.js.map +1 -1
  65. package/lib/components/screens/combat/components/hud/CombatRightHUD.d.ts.map +1 -1
  66. package/lib/components/screens/combat/components/hud/CombatRightHUD.js.map +1 -1
  67. package/lib/components/screens/combat/components/hud/CombatTopHUD.d.ts.map +1 -1
  68. package/lib/components/screens/combat/components/hud/CombatTopHUD.js.map +1 -1
  69. package/lib/components/screens/combat/components/hud/DifficultyIndicator.d.ts.map +1 -1
  70. package/lib/components/screens/combat/components/hud/DifficultyIndicator.js.map +1 -1
  71. package/lib/components/screens/combat/components/hud/FPSMonitor.d.ts.map +1 -1
  72. package/lib/components/screens/combat/components/hud/FPSMonitor.js.map +1 -1
  73. package/lib/components/screens/combat/components/hud/PlayerStateOverlayHtml.d.ts.map +1 -1
  74. package/lib/components/screens/combat/components/hud/PlayerStateOverlayHtml.js.map +1 -1
  75. package/lib/components/screens/combat/components/indicators/BalanceIndicator.d.ts.map +1 -1
  76. package/lib/components/screens/combat/components/indicators/BalanceIndicator.js.map +1 -1
  77. package/lib/components/screens/combat/components/indicators/InputBufferDisplay.d.ts +0 -1
  78. package/lib/components/screens/combat/components/indicators/InputBufferDisplay.d.ts.map +1 -1
  79. package/lib/components/screens/combat/components/indicators/InputBufferDisplay.js +0 -1
  80. package/lib/components/screens/combat/components/indicators/InputBufferDisplay.js.map +1 -1
  81. package/lib/components/screens/combat/components/indicators/StaminaWarning.d.ts.map +1 -1
  82. package/lib/components/screens/combat/components/indicators/StaminaWarning.js.map +1 -1
  83. package/lib/components/screens/combat/components/indicators/TechniqueNameDisplay.d.ts +0 -2
  84. package/lib/components/screens/combat/components/indicators/TechniqueNameDisplay.d.ts.map +1 -1
  85. package/lib/components/screens/combat/components/indicators/TechniqueNameDisplay.js +0 -1
  86. package/lib/components/screens/combat/components/indicators/TechniqueNameDisplay.js.map +1 -1
  87. package/lib/components/screens/combat/helpers/AnimationUpdater.d.ts.map +1 -1
  88. package/lib/components/screens/combat/helpers/AnimationUpdater.js.map +1 -1
  89. package/lib/components/screens/combat/helpers/combatHelpers.d.ts.map +1 -1
  90. package/lib/components/screens/combat/helpers/combatHelpers.js.map +1 -1
  91. package/lib/components/screens/combat/hooks/useAICombat.d.ts.map +1 -1
  92. package/lib/components/screens/combat/hooks/useAICombat.js.map +1 -1
  93. package/lib/components/screens/combat/hooks/useCombatActions.d.ts.map +1 -1
  94. package/lib/components/screens/combat/hooks/useCombatActions.js.map +1 -1
  95. package/lib/components/screens/combat/hooks/useCombatAttackMovement.d.ts.map +1 -1
  96. package/lib/components/screens/combat/hooks/useCombatAttackMovement.js.map +1 -1
  97. package/lib/components/screens/combat/hooks/useCombatAudio.d.ts.map +1 -1
  98. package/lib/components/screens/combat/hooks/useCombatAudio.js.map +1 -1
  99. package/lib/components/screens/combat/hooks/useCombatLayout.d.ts.map +1 -1
  100. package/lib/components/screens/combat/hooks/useCombatLayout.js.map +1 -1
  101. package/lib/components/screens/combat/hooks/useCombatState.d.ts.map +1 -1
  102. package/lib/components/screens/combat/hooks/useCombatState.js.map +1 -1
  103. package/lib/components/screens/combat/hooks/useGrapplingAudio.d.ts.map +1 -1
  104. package/lib/components/screens/combat/hooks/usePreloadCombatAudio.d.ts.map +1 -1
  105. package/lib/components/screens/controls/ControlsScreen3D.d.ts.map +1 -1
  106. package/lib/components/screens/controls/ControlsScreen3D.js.map +1 -1
  107. package/lib/components/screens/controls/components/ControlBindingsOverlayHtml.d.ts.map +1 -1
  108. package/lib/components/screens/controls/components/ControlBindingsOverlayHtml.js.map +1 -1
  109. package/lib/components/screens/controls/components/GamepadVisualization3D.d.ts.map +1 -1
  110. package/lib/components/screens/controls/components/GamepadVisualization3D.js.map +1 -1
  111. package/lib/components/screens/controls/components/InteractiveControlDemoOverlayHtml.d.ts.map +1 -1
  112. package/lib/components/screens/controls/components/InteractiveControlDemoOverlayHtml.js.map +1 -1
  113. package/lib/components/screens/controls/components/Key3D.d.ts.map +1 -1
  114. package/lib/components/screens/controls/components/Key3D.js.map +1 -1
  115. package/lib/components/screens/controls/components/VisualKeyboard3D.d.ts.map +1 -1
  116. package/lib/components/screens/controls/components/VisualKeyboard3D.js.map +1 -1
  117. package/lib/components/screens/controls/constants/ControlsConstants.d.ts.map +1 -1
  118. package/lib/components/screens/controls/constants/ControlsConstants.js.map +1 -1
  119. package/lib/components/screens/controls/hooks/useControlsState.d.ts.map +1 -1
  120. package/lib/components/screens/controls/hooks/useControlsState.js.map +1 -1
  121. package/lib/components/screens/endscreen/EndScreen3D.d.ts.map +1 -1
  122. package/lib/components/screens/endscreen/EndScreen3D.js.map +1 -1
  123. package/lib/components/screens/endscreen/components/DefeatAnimation3D.d.ts.map +1 -1
  124. package/lib/components/screens/endscreen/components/DefeatAnimation3D.js.map +1 -1
  125. package/lib/components/screens/endscreen/components/NavigationButtonsOverlayHtml.d.ts.map +1 -1
  126. package/lib/components/screens/endscreen/components/NavigationButtonsOverlayHtml.js.map +1 -1
  127. package/lib/components/screens/endscreen/components/PerformanceBreakdownOverlayHtml.d.ts.map +1 -1
  128. package/lib/components/screens/endscreen/components/PerformanceBreakdownOverlayHtml.js.map +1 -1
  129. package/lib/components/screens/endscreen/components/PerformanceRatingOverlayHtml.d.ts.map +1 -1
  130. package/lib/components/screens/endscreen/components/PerformanceRatingOverlayHtml.js.map +1 -1
  131. package/lib/components/screens/endscreen/components/VictoryAnimation3D.d.ts.map +1 -1
  132. package/lib/components/screens/endscreen/components/VictoryAnimation3D.js.map +1 -1
  133. package/lib/components/screens/endscreen/components/WinnerDisplayOverlayHtml.d.ts.map +1 -1
  134. package/lib/components/screens/endscreen/components/WinnerDisplayOverlayHtml.js.map +1 -1
  135. package/lib/components/screens/endscreen/components/index.d.ts.map +1 -1
  136. package/lib/components/screens/endscreen/index.d.ts.map +1 -1
  137. package/lib/components/screens/intro/IntroScreen3D.d.ts.map +1 -1
  138. package/lib/components/screens/intro/IntroScreen3D.js +1 -1
  139. package/lib/components/screens/intro/IntroScreen3D.js.map +1 -1
  140. package/lib/components/screens/intro/components/AbilityListOverlayHtml.d.ts.map +1 -1
  141. package/lib/components/screens/intro/components/AbilityListOverlayHtml.js.map +1 -1
  142. package/lib/components/screens/intro/components/ArchetypeCardGridOverlayHtml.d.ts.map +1 -1
  143. package/lib/components/screens/intro/components/ArchetypeCardGridOverlayHtml.js.map +1 -1
  144. package/lib/components/screens/intro/components/ArchetypeCardOverlayHtml.d.ts.map +1 -1
  145. package/lib/components/screens/intro/components/ArchetypeCardOverlayHtml.js.map +1 -1
  146. package/lib/components/screens/intro/components/ArchetypeDisplayOverlayHtml.d.ts.map +1 -1
  147. package/lib/components/screens/intro/components/ArchetypeDisplayOverlayHtml.js.map +1 -1
  148. package/lib/components/screens/intro/components/EnhancedArchetypeDisplayOverlayHtml.d.ts.map +1 -1
  149. package/lib/components/screens/intro/components/EnhancedArchetypeDisplayOverlayHtml.js.map +1 -1
  150. package/lib/components/screens/intro/components/MenuButtonsOverlayHtml.d.ts.map +1 -1
  151. package/lib/components/screens/intro/components/MenuButtonsOverlayHtml.js.map +1 -1
  152. package/lib/components/screens/intro/components/MenuSectionOverlayHtml.d.ts.map +1 -1
  153. package/lib/components/screens/intro/components/MenuSectionOverlayHtml.js.map +1 -1
  154. package/lib/components/screens/intro/components/StatBarOverlayHtml.d.ts.map +1 -1
  155. package/lib/components/screens/intro/components/StatBarOverlayHtml.js.map +1 -1
  156. package/lib/components/screens/philosophy/PhilosophyScreen3D.d.ts.map +1 -1
  157. package/lib/components/screens/philosophy/PhilosophyScreen3D.js.map +1 -1
  158. package/lib/components/screens/philosophy/components/InteractiveTrigramGridOverlayHtml.d.ts +0 -1
  159. package/lib/components/screens/philosophy/components/InteractiveTrigramGridOverlayHtml.d.ts.map +1 -1
  160. package/lib/components/screens/philosophy/components/PhilosophyNavigationOverlayHtml.d.ts +0 -1
  161. package/lib/components/screens/philosophy/components/PhilosophyNavigationOverlayHtml.d.ts.map +1 -1
  162. package/lib/components/screens/philosophy/components/PhilosophySectionOverlayHtml.d.ts +0 -1
  163. package/lib/components/screens/philosophy/components/PhilosophySectionOverlayHtml.d.ts.map +1 -1
  164. package/lib/components/screens/philosophy/components/PhilosophyTextOverlayHtml.d.ts +0 -1
  165. package/lib/components/screens/philosophy/components/PhilosophyTextOverlayHtml.d.ts.map +1 -1
  166. package/lib/components/screens/philosophy/components/TrigramSymbol3D.d.ts +0 -1
  167. package/lib/components/screens/philosophy/components/TrigramSymbol3D.d.ts.map +1 -1
  168. package/lib/components/screens/philosophy/components/TrigramVisualization3D.d.ts +0 -1
  169. package/lib/components/screens/philosophy/components/TrigramVisualization3D.d.ts.map +1 -1
  170. package/lib/components/screens/philosophy/hooks/usePhilosophyState.d.ts +0 -1
  171. package/lib/components/screens/philosophy/hooks/usePhilosophyState.d.ts.map +1 -1
  172. package/lib/components/screens/training/TrainingScreen3D.d.ts.map +1 -1
  173. package/lib/components/screens/training/TrainingScreen3D.js.map +1 -1
  174. package/lib/components/screens/training/components/AnatomyControlsOverlayHtml.d.ts.map +1 -1
  175. package/lib/components/screens/training/components/AnatomyControlsOverlayHtml.js.map +1 -1
  176. package/lib/components/screens/training/components/AnatomyOverlay3D.d.ts.map +1 -1
  177. package/lib/components/screens/training/components/AnatomyOverlay3D.js.map +1 -1
  178. package/lib/components/screens/training/components/DamageNumber3D.d.ts.map +1 -1
  179. package/lib/components/screens/training/components/FootPlacementMarkers3D.d.ts.map +1 -1
  180. package/lib/components/screens/training/components/FootPlacementMarkers3D.js.map +1 -1
  181. package/lib/components/screens/training/components/FootworkDrillsOverlayHtml.d.ts.map +1 -1
  182. package/lib/components/screens/training/components/FootworkDrillsOverlayHtml.js.map +1 -1
  183. package/lib/components/screens/training/components/HitFeedbackEffect3D.d.ts.map +1 -1
  184. package/lib/components/screens/training/components/HitFeedbackEffect3D.js.map +1 -1
  185. package/lib/components/screens/training/components/TrainingAICharacter3D.d.ts.map +1 -1
  186. package/lib/components/screens/training/components/TrainingArena3D.d.ts.map +1 -1
  187. package/lib/components/screens/training/components/TrainingControlsOverlayHtml.d.ts.map +1 -1
  188. package/lib/components/screens/training/components/TrainingControlsOverlayHtml.js.map +1 -1
  189. package/lib/components/screens/training/components/TrainingDummy3D.d.ts.map +1 -1
  190. package/lib/components/screens/training/components/TrainingDummy3D.js.map +1 -1
  191. package/lib/components/screens/training/components/TrainingFeedbackOverlayHtml.d.ts.map +1 -1
  192. package/lib/components/screens/training/components/TrainingFeedbackOverlayHtml.js.map +1 -1
  193. package/lib/components/screens/training/components/TrainingHitEffects3D.d.ts.map +1 -1
  194. package/lib/components/screens/training/components/TrainingModeSelectorOverlayHtml.d.ts.map +1 -1
  195. package/lib/components/screens/training/components/TrainingModeSelectorOverlayHtml.js.map +1 -1
  196. package/lib/components/screens/training/components/TrainingStatsOverlayHtml.d.ts.map +1 -1
  197. package/lib/components/screens/training/components/TrainingStatsOverlayHtml.js.map +1 -1
  198. package/lib/components/screens/training/components/VitalPointMarker3D.d.ts.map +1 -1
  199. package/lib/components/screens/training/components/VitalPointMarker3D.js.map +1 -1
  200. package/lib/components/screens/training/components/VitalPointTrainingOverlayHtml.d.ts.map +1 -1
  201. package/lib/components/screens/training/components/VitalPointTrainingOverlayHtml.js.map +1 -1
  202. package/lib/components/screens/training/components/hud/TrainingBottomHUD.d.ts.map +1 -1
  203. package/lib/components/screens/training/components/hud/TrainingBottomHUD.js.map +1 -1
  204. package/lib/components/screens/training/components/hud/TrainingLeftHUD.d.ts.map +1 -1
  205. package/lib/components/screens/training/components/hud/TrainingLeftHUD.js.map +1 -1
  206. package/lib/components/screens/training/components/hud/TrainingRightHUD.d.ts.map +1 -1
  207. package/lib/components/screens/training/components/hud/TrainingRightHUD.js.map +1 -1
  208. package/lib/components/screens/training/components/hud/TrainingTopHUD.d.ts.map +1 -1
  209. package/lib/components/screens/training/components/hud/TrainingTopHUD.js.map +1 -1
  210. package/lib/components/screens/training/components/index.d.ts.map +1 -1
  211. package/lib/components/screens/training/hooks/useAttackMovement.d.ts.map +1 -1
  212. package/lib/components/screens/training/hooks/useAttackMovement.js.map +1 -1
  213. package/lib/components/screens/training/hooks/useTrainingActions.d.ts.map +1 -1
  214. package/lib/components/screens/training/hooks/useTrainingActions.js.map +1 -1
  215. package/lib/components/screens/training/hooks/useTrainingLayout.d.ts.map +1 -1
  216. package/lib/components/screens/training/hooks/useTrainingLayout.js.map +1 -1
  217. package/lib/components/screens/training/hooks/useTrainingState.d.ts.map +1 -1
  218. package/lib/components/screens/training/hooks/useTrainingState.js.map +1 -1
  219. package/lib/components/shared/base/AccessibilityProvider.d.ts.map +1 -1
  220. package/lib/components/shared/base/BaseButton.d.ts.map +1 -1
  221. package/lib/components/shared/base/BaseButton.js.map +1 -1
  222. package/lib/components/shared/base/BaseButtonOverlayHtml.d.ts.map +1 -1
  223. package/lib/components/shared/base/BaseButtonOverlayHtml.js.map +1 -1
  224. package/lib/components/shared/base/BasePanel.d.ts.map +1 -1
  225. package/lib/components/shared/base/BasePanel.js.map +1 -1
  226. package/lib/components/shared/base/BaseText.d.ts.map +1 -1
  227. package/lib/components/shared/base/BaseText.js.map +1 -1
  228. package/lib/components/shared/base/ResponsiveContainer.d.ts.map +1 -1
  229. package/lib/components/shared/base/index.d.ts.map +1 -1
  230. package/lib/components/shared/base/useKoreanTheme.d.ts.map +1 -1
  231. package/lib/components/shared/base/useKoreanTheme.js.map +1 -1
  232. package/lib/components/shared/debug/PerformanceDebugOverlayHtml.d.ts.map +1 -1
  233. package/lib/components/shared/debug/PerformanceDebugOverlayHtml.js.map +1 -1
  234. package/lib/components/shared/effects/ScreenFlash.d.ts.map +1 -1
  235. package/lib/components/shared/mobile/ActionButtons.d.ts.map +1 -1
  236. package/lib/components/shared/mobile/ActionButtons.js +0 -1
  237. package/lib/components/shared/mobile/ActionButtons.js.map +1 -1
  238. package/lib/components/shared/mobile/GestureRecognizerPure.d.ts +0 -1
  239. package/lib/components/shared/mobile/GestureRecognizerPure.d.ts.map +1 -1
  240. package/lib/components/shared/mobile/GestureRecognizerPure.js +0 -1
  241. package/lib/components/shared/mobile/GestureRecognizerPure.js.map +1 -1
  242. package/lib/components/shared/mobile/HapticController.d.ts +0 -13
  243. package/lib/components/shared/mobile/HapticController.d.ts.map +1 -1
  244. package/lib/components/shared/mobile/HapticController.js +0 -10
  245. package/lib/components/shared/mobile/HapticController.js.map +1 -1
  246. package/lib/components/shared/mobile/MobileControlsPure.d.ts.map +1 -1
  247. package/lib/components/shared/mobile/MobileControlsPure.js.map +1 -1
  248. package/lib/components/shared/mobile/PerformanceMonitor.d.ts +0 -15
  249. package/lib/components/shared/mobile/PerformanceMonitor.d.ts.map +1 -1
  250. package/lib/components/shared/mobile/StanceWheelPure.d.ts +0 -1
  251. package/lib/components/shared/mobile/StanceWheelPure.d.ts.map +1 -1
  252. package/lib/components/shared/mobile/StanceWheelPure.js +0 -1
  253. package/lib/components/shared/mobile/StanceWheelPure.js.map +1 -1
  254. package/lib/components/shared/mobile/TouchOptimizer.d.ts +0 -4
  255. package/lib/components/shared/mobile/TouchOptimizer.d.ts.map +1 -1
  256. package/lib/components/shared/mobile/TouchOptimizer.js +0 -3
  257. package/lib/components/shared/mobile/TouchOptimizer.js.map +1 -1
  258. package/lib/components/shared/mobile/VirtualDPad.d.ts.map +1 -1
  259. package/lib/components/shared/mobile/VirtualDPad.js +0 -1
  260. package/lib/components/shared/mobile/VirtualDPad.js.map +1 -1
  261. package/lib/components/shared/mobile/index.d.ts.map +1 -1
  262. package/lib/components/shared/three/anatomy/BodySurface.d.ts.map +1 -1
  263. package/lib/components/shared/three/anatomy/BodySurface.js.map +1 -1
  264. package/lib/components/shared/three/anatomy/BoneAttachedMuscles.d.ts.map +1 -1
  265. package/lib/components/shared/three/anatomy/BoneAttachedMuscles.js.map +1 -1
  266. package/lib/components/shared/three/anatomy/BoneClothing.d.ts.map +1 -1
  267. package/lib/components/shared/three/anatomy/BoneClothing.js.map +1 -1
  268. package/lib/components/shared/three/anatomy/BoneRenderer.d.ts +0 -1
  269. package/lib/components/shared/three/anatomy/BoneRenderer.d.ts.map +1 -1
  270. package/lib/components/shared/three/anatomy/BoneRenderer.js.map +1 -1
  271. package/lib/components/shared/three/anatomy/Face3D.d.ts.map +1 -1
  272. package/lib/components/shared/three/anatomy/Face3D.js.map +1 -1
  273. package/lib/components/shared/three/anatomy/Foot3D.d.ts +0 -1
  274. package/lib/components/shared/three/anatomy/Foot3D.d.ts.map +1 -1
  275. package/lib/components/shared/three/anatomy/Foot3D.js.map +1 -1
  276. package/lib/components/shared/three/anatomy/Hand3D.d.ts +0 -1
  277. package/lib/components/shared/three/anatomy/Hand3D.d.ts.map +1 -1
  278. package/lib/components/shared/three/anatomy/Hand3D.js.map +1 -1
  279. package/lib/components/shared/three/effects/ActionFeedback.d.ts.map +1 -1
  280. package/lib/components/shared/three/effects/ActionFeedback.js.map +1 -1
  281. package/lib/components/shared/three/effects/DamageNumbers.d.ts.map +1 -1
  282. package/lib/components/shared/three/effects/DamageNumbers.js.map +1 -1
  283. package/lib/components/shared/three/effects/ExplosiveBurstEffect3D.d.ts.map +1 -1
  284. package/lib/components/shared/three/effects/GrapplingIndicator3D.d.ts.map +1 -1
  285. package/lib/components/shared/three/effects/HitEffects3D.d.ts.map +1 -1
  286. package/lib/components/shared/three/effects/HitEffects3D.js.map +1 -1
  287. package/lib/components/shared/three/effects/LimbExposureIndicator3D.d.ts.map +1 -1
  288. package/lib/components/shared/three/effects/NerveDisruptionEffect3D.d.ts.map +1 -1
  289. package/lib/components/shared/three/effects/PlayerStateIndicators.d.ts.map +1 -1
  290. package/lib/components/shared/three/effects/PlayerStateIndicators.js.map +1 -1
  291. package/lib/components/shared/three/effects/StanceSymbol3D.d.ts.map +1 -1
  292. package/lib/components/shared/three/effects/StanceSymbol3D.js.map +1 -1
  293. package/lib/components/shared/three/effects/StanceTransitionEffect.d.ts.map +1 -1
  294. package/lib/components/shared/three/effects/StanceTransitionEffect.js.map +1 -1
  295. package/lib/components/shared/three/effects/ThunderEffect3D.d.ts.map +1 -1
  296. package/lib/components/shared/three/effects/VitalPointMarkers3D.d.ts.map +1 -1
  297. package/lib/components/shared/three/effects/VitalPointMarkers3D.js.map +1 -1
  298. package/lib/components/shared/three/index.d.ts.map +1 -1
  299. package/lib/components/shared/three/indicators/ElementalColorSystem.d.ts +0 -6
  300. package/lib/components/shared/three/indicators/ElementalColorSystem.d.ts.map +1 -1
  301. package/lib/components/shared/three/indicators/ElementalColorSystem.js +0 -4
  302. package/lib/components/shared/three/indicators/ElementalColorSystem.js.map +1 -1
  303. package/lib/components/shared/three/indicators/GuardIndicator.d.ts +0 -1
  304. package/lib/components/shared/three/indicators/GuardIndicator.d.ts.map +1 -1
  305. package/lib/components/shared/three/indicators/GuardIndicator.js +0 -1
  306. package/lib/components/shared/three/indicators/GuardIndicator.js.map +1 -1
  307. package/lib/components/shared/three/indicators/HapticFeedback.d.ts +0 -7
  308. package/lib/components/shared/three/indicators/HapticFeedback.d.ts.map +1 -1
  309. package/lib/components/shared/three/indicators/HapticFeedback.js +0 -2
  310. package/lib/components/shared/three/indicators/HapticFeedback.js.map +1 -1
  311. package/lib/components/shared/three/indicators/StanceChangeIndicator.d.ts +0 -1
  312. package/lib/components/shared/three/indicators/StanceChangeIndicator.d.ts.map +1 -1
  313. package/lib/components/shared/three/indicators/StanceChangeIndicator.js +0 -1
  314. package/lib/components/shared/three/indicators/StanceChangeIndicator.js.map +1 -1
  315. package/lib/components/shared/three/indicators/TrigramSymbol3D.d.ts +0 -1
  316. package/lib/components/shared/three/indicators/TrigramSymbol3D.d.ts.map +1 -1
  317. package/lib/components/shared/three/models/Player3DWithTransitions.d.ts.map +1 -1
  318. package/lib/components/shared/three/models/Player3DWithTransitions.js.map +1 -1
  319. package/lib/components/shared/three/models/SkeletalPlayer3D.d.ts.map +1 -1
  320. package/lib/components/shared/three/models/SkeletalPlayer3D.js.map +1 -1
  321. package/lib/components/shared/three/optimization/AdaptiveQuality.d.ts.map +1 -1
  322. package/lib/components/shared/three/optimization/AdaptiveQuality.js.map +1 -1
  323. package/lib/components/shared/three/optimization/InstancedGeometry.d.ts.map +1 -1
  324. package/lib/components/shared/three/optimization/LODSystem.d.ts.map +1 -1
  325. package/lib/components/shared/three/scene/AtmosphericParticles3D.d.ts.map +1 -1
  326. package/lib/components/shared/three/scene/AtmosphericParticles3D.js.map +1 -1
  327. package/lib/components/shared/three/scene/BackgroundScene3D.d.ts.map +1 -1
  328. package/lib/components/shared/three/scene/BackgroundScene3D.js.map +1 -1
  329. package/lib/components/shared/three/scene/CombatArena3D.d.ts.map +1 -1
  330. package/lib/components/shared/three/scene/CombatArena3D.js.map +1 -1
  331. package/lib/components/shared/three/scene/DebugCollision.d.ts +0 -2
  332. package/lib/components/shared/three/scene/DebugCollision.d.ts.map +1 -1
  333. package/lib/components/shared/three/scene/KoreanSignage3D.d.ts.map +1 -1
  334. package/lib/components/shared/three/scene/KoreanSignage3D.js.map +1 -1
  335. package/lib/components/shared/three/ui/ArchetypeCard.d.ts.map +1 -1
  336. package/lib/components/shared/three/ui/ArchetypeCard.js.map +1 -1
  337. package/lib/components/shared/three/ui/BodyPartHealthDisplay.d.ts.map +1 -1
  338. package/lib/components/shared/three/ui/BodyPartHealthDisplay.js.map +1 -1
  339. package/lib/components/shared/three/ui/BreathingIndicator.d.ts.map +1 -1
  340. package/lib/components/shared/three/ui/BreathingIndicator2.js.map +1 -1
  341. package/lib/components/shared/three/ui/CombatReadinessBar.d.ts.map +1 -1
  342. package/lib/components/shared/three/ui/CombatReadinessBar.js.map +1 -1
  343. package/lib/components/shared/three/ui/ComboCounter.d.ts.map +1 -1
  344. package/lib/components/shared/three/ui/ComboCounter.js.map +1 -1
  345. package/lib/components/shared/three/ui/HealthBar.d.ts.map +1 -1
  346. package/lib/components/shared/three/ui/HealthBar.js.map +1 -1
  347. package/lib/components/shared/three/ui/KoreanButton.d.ts.map +1 -1
  348. package/lib/components/shared/three/ui/KoreanButton.js.map +1 -1
  349. package/lib/components/shared/three/ui/KoreanPanel.d.ts.map +1 -1
  350. package/lib/components/shared/three/ui/KoreanPanel.js.map +1 -1
  351. package/lib/components/shared/three/ui/KoreanText.d.ts.map +1 -1
  352. package/lib/components/shared/three/ui/KoreanText.js.map +1 -1
  353. package/lib/components/shared/three/ui/MenuList.d.ts.map +1 -1
  354. package/lib/components/shared/three/ui/MenuList.js.map +1 -1
  355. package/lib/components/shared/three/ui/PlayerHUD.d.ts.map +1 -1
  356. package/lib/components/shared/three/ui/PlayerHUD.js.map +1 -1
  357. package/lib/components/shared/three/ui/ProgressBar.d.ts.map +1 -1
  358. package/lib/components/shared/three/ui/ProgressBar.js.map +1 -1
  359. package/lib/components/shared/three/ui/SpeedIndicatorHUD.d.ts +0 -1
  360. package/lib/components/shared/three/ui/SpeedIndicatorHUD.d.ts.map +1 -1
  361. package/lib/components/shared/three/ui/SpeedIndicatorHUD.js +0 -1
  362. package/lib/components/shared/three/ui/SpeedIndicatorHUD.js.map +1 -1
  363. package/lib/components/shared/three/ui/StaminaBar.d.ts.map +1 -1
  364. package/lib/components/shared/three/ui/StaminaBar.js.map +1 -1
  365. package/lib/components/shared/three/ui/TechniqueBar.d.ts.map +1 -1
  366. package/lib/components/shared/three/ui/TechniqueBar.js.map +1 -1
  367. package/lib/components/shared/three/ui/TechniqueBarContainer.d.ts.map +1 -1
  368. package/lib/components/shared/three/ui/TechniqueCard.d.ts.map +1 -1
  369. package/lib/components/shared/three/ui/TechniqueCard.js.map +1 -1
  370. package/lib/components/shared/three/ui/VitalPointOverlayControlsHtml.d.ts.map +1 -1
  371. package/lib/components/shared/three/ui/VitalPointOverlayControlsHtml.js.map +1 -1
  372. package/lib/components/shared/three/ui/VulnerabilityWindowHUD.d.ts.map +1 -1
  373. package/lib/components/shared/ui/BaseHUDContainer.d.ts.map +1 -1
  374. package/lib/components/shared/ui/BaseHUDContainer.js.map +1 -1
  375. package/lib/components/shared/ui/CombatTimer.d.ts.map +1 -1
  376. package/lib/components/shared/ui/CombatTimer.js.map +1 -1
  377. package/lib/components/shared/ui/ErrorBoundary.d.ts.map +1 -1
  378. package/lib/components/shared/ui/ErrorModal.d.ts.map +1 -1
  379. package/lib/components/shared/ui/ErrorModal.js.map +1 -1
  380. package/lib/components/shared/ui/HUDSection.d.ts.map +1 -1
  381. package/lib/components/shared/ui/LoadingState.d.ts.map +1 -1
  382. package/lib/components/shared/ui/LoadingState.js.map +1 -1
  383. package/lib/components/shared/ui/MobileHUDLayout.d.ts +0 -1
  384. package/lib/components/shared/ui/MobileHUDLayout.d.ts.map +1 -1
  385. package/lib/components/shared/ui/ResponsiveContainer.d.ts +0 -1
  386. package/lib/components/shared/ui/ResponsiveContainer.d.ts.map +1 -1
  387. package/lib/components/shared/ui/SplashScreen.d.ts.map +1 -1
  388. package/lib/components/shared/ui/SplashScreen.js +2 -2
  389. package/lib/components/shared/ui/SplashScreen.js.map +1 -1
  390. package/lib/components/shared/ui/StyledHUDPanel.d.ts.map +1 -1
  391. package/lib/components/shared/ui/VitalPointOverlayControlsPure.d.ts.map +1 -1
  392. package/lib/components/shared/ui/VitalPointOverlayControlsPure.js.map +1 -1
  393. package/lib/components/shared/ui/VolumeControl.d.ts.map +1 -1
  394. package/lib/components/shared/ui/VolumeControl.js.map +1 -1
  395. package/lib/components/shared/ui/shared/ConfirmDialog.d.ts.map +1 -1
  396. package/lib/components/shared/ui/shared/ConfirmDialog.js.map +1 -1
  397. package/lib/components/test/Hello3D.d.ts.map +1 -1
  398. package/lib/components/ui/combat/BalanceIndicatorOverlayHtml.d.ts.map +1 -1
  399. package/lib/components/ui/combat/BalanceIndicatorOverlayHtml.js.map +1 -1
  400. package/lib/components/ui/combat/ComboCounter.d.ts.map +1 -1
  401. package/lib/components/ui/combat/PressureMeter.d.ts.map +1 -1
  402. package/lib/systems/CombatSystem.d.ts +0 -6
  403. package/lib/systems/CombatSystem.d.ts.map +1 -1
  404. package/lib/systems/CombatSystem.js +0 -6
  405. package/lib/systems/CombatSystem.js.map +1 -1
  406. package/lib/systems/EffectCalculator.d.ts +0 -7
  407. package/lib/systems/EffectCalculator.d.ts.map +1 -1
  408. package/lib/systems/EffectCalculator.js +0 -4
  409. package/lib/systems/EffectCalculator.js.map +1 -1
  410. package/lib/systems/LayoutSystem.d.ts +0 -1
  411. package/lib/systems/LayoutSystem.d.ts.map +1 -1
  412. package/lib/systems/LayoutSystem.js +0 -1
  413. package/lib/systems/LayoutSystem.js.map +1 -1
  414. package/lib/systems/PlayerEffectManager.d.ts +0 -10
  415. package/lib/systems/PlayerEffectManager.d.ts.map +1 -1
  416. package/lib/systems/PlayerEffectManager.js +0 -3
  417. package/lib/systems/PlayerEffectManager.js.map +1 -1
  418. package/lib/systems/ResponsiveScaling.d.ts +0 -12
  419. package/lib/systems/ResponsiveScaling.d.ts.map +1 -1
  420. package/lib/systems/ResponsiveScaling.js +0 -12
  421. package/lib/systems/ResponsiveScaling.js.map +1 -1
  422. package/lib/systems/TrigramSystem.d.ts +0 -13
  423. package/lib/systems/TrigramSystem.d.ts.map +1 -1
  424. package/lib/systems/TrigramSystem.js +0 -13
  425. package/lib/systems/TrigramSystem.js.map +1 -1
  426. package/lib/systems/VitalPointSystem.d.ts +0 -10
  427. package/lib/systems/VitalPointSystem.d.ts.map +1 -1
  428. package/lib/systems/VitalPointSystem.js +0 -10
  429. package/lib/systems/VitalPointSystem.js.map +1 -1
  430. package/lib/systems/animation/builders/KeyframeInterpolation.d.ts +0 -4
  431. package/lib/systems/animation/builders/KeyframeInterpolation.d.ts.map +1 -1
  432. package/lib/systems/animation/builders/KeyframeInterpolation.js +0 -1
  433. package/lib/systems/animation/builders/KeyframeInterpolation.js.map +1 -1
  434. package/lib/systems/animation/builders/SkeletonRig.d.ts +0 -4
  435. package/lib/systems/animation/builders/SkeletonRig.d.ts.map +1 -1
  436. package/lib/systems/animation/builders/SkeletonRig.js +0 -3
  437. package/lib/systems/animation/builders/SkeletonRig.js.map +1 -1
  438. package/lib/systems/animation/catalogs/RecoveryAnimations.d.ts +0 -5
  439. package/lib/systems/animation/catalogs/RecoveryAnimations.d.ts.map +1 -1
  440. package/lib/systems/animation/catalogs/RecoveryAnimations.js +0 -5
  441. package/lib/systems/animation/catalogs/RecoveryAnimations.js.map +1 -1
  442. package/lib/systems/animation/core/AnimationHitTiming.d.ts +0 -6
  443. package/lib/systems/animation/core/AnimationHitTiming.d.ts.map +1 -1
  444. package/lib/systems/animation/core/AnimationHitTiming.js +0 -4
  445. package/lib/systems/animation/core/AnimationHitTiming.js.map +1 -1
  446. package/lib/systems/animation/core/AnimationTransitions.d.ts +0 -3
  447. package/lib/systems/animation/core/AnimationTransitions.d.ts.map +1 -1
  448. package/lib/systems/animation/core/AnimationTransitions.js.map +1 -1
  449. package/lib/systems/animation/core/LateralityTransform.d.ts +0 -3
  450. package/lib/systems/animation/core/LateralityTransform.d.ts.map +1 -1
  451. package/lib/systems/animation/core/LateralityTransform.js +0 -1
  452. package/lib/systems/animation/core/LateralityTransform.js.map +1 -1
  453. package/lib/systems/animation/core/RecoveryPhaseEnhancer.d.ts +0 -1
  454. package/lib/systems/animation/core/RecoveryPhaseEnhancer.d.ts.map +1 -1
  455. package/lib/systems/animation/core/RecoveryPhaseEnhancer.js.map +1 -1
  456. package/lib/systems/animation/core/TechniqueAnimationMapper.d.ts +0 -10
  457. package/lib/systems/animation/core/TechniqueAnimationMapper.d.ts.map +1 -1
  458. package/lib/systems/animation/core/TechniqueAnimationMapper.js +0 -8
  459. package/lib/systems/animation/core/TechniqueAnimationMapper.js.map +1 -1
  460. package/lib/systems/animation/core/TrigramAnimationMapping.d.ts +0 -10
  461. package/lib/systems/animation/core/TrigramAnimationMapping.d.ts.map +1 -1
  462. package/lib/systems/animation/core/TrigramStanceTransitions.d.ts +0 -2
  463. package/lib/systems/animation/core/TrigramStanceTransitions.d.ts.map +1 -1
  464. package/lib/systems/animation/core/types.d.ts +0 -39
  465. package/lib/systems/animation/core/types.d.ts.map +1 -1
  466. package/lib/systems/animation/core/types.js +0 -9
  467. package/lib/systems/animation/core/types.js.map +1 -1
  468. package/lib/systems/animation/systems/AdvancedJointMovements.d.ts +0 -27
  469. package/lib/systems/animation/systems/AdvancedJointMovements.d.ts.map +1 -1
  470. package/lib/systems/animation/systems/AdvancedJointMovements.js +0 -1
  471. package/lib/systems/animation/systems/AdvancedJointMovements.js.map +1 -1
  472. package/lib/systems/animation/systems/BodyFacingSystem.d.ts +0 -19
  473. package/lib/systems/animation/systems/BodyFacingSystem.d.ts.map +1 -1
  474. package/lib/systems/animation/systems/BodyFacingSystem.js +0 -14
  475. package/lib/systems/animation/systems/BodyFacingSystem.js.map +1 -1
  476. package/lib/systems/animation/systems/FacialExpressions.d.ts +0 -10
  477. package/lib/systems/animation/systems/FacialExpressions.d.ts.map +1 -1
  478. package/lib/systems/animation/systems/FacialExpressions.js +0 -2
  479. package/lib/systems/animation/systems/FacialExpressions.js.map +1 -1
  480. package/lib/systems/animation/systems/FallAnimations.d.ts +0 -4
  481. package/lib/systems/animation/systems/FallAnimations.d.ts.map +1 -1
  482. package/lib/systems/animation/systems/FallAnimations.js +0 -2
  483. package/lib/systems/animation/systems/FallAnimations.js.map +1 -1
  484. package/lib/systems/animation/systems/HeadMovements.d.ts +0 -10
  485. package/lib/systems/animation/systems/HeadMovements.d.ts.map +1 -1
  486. package/lib/systems/bodypart/BodyPartDamageIntegration.d.ts +0 -7
  487. package/lib/systems/bodypart/BodyPartDamageIntegration.d.ts.map +1 -1
  488. package/lib/systems/bodypart/BodyPartDamageIntegration.js +0 -7
  489. package/lib/systems/bodypart/BodyPartDamageIntegration.js.map +1 -1
  490. package/lib/systems/bodypart/BodyPartHealthSystem.d.ts +0 -13
  491. package/lib/systems/bodypart/BodyPartHealthSystem.d.ts.map +1 -1
  492. package/lib/systems/bodypart/BodyPartHealthSystem.js +0 -13
  493. package/lib/systems/bodypart/BodyPartHealthSystem.js.map +1 -1
  494. package/lib/systems/bodypart/BodyPartPositionMapping.d.ts +0 -6
  495. package/lib/systems/bodypart/BodyPartPositionMapping.d.ts.map +1 -1
  496. package/lib/systems/bodypart/BodyPartPositionMapping.js +0 -6
  497. package/lib/systems/bodypart/BodyPartPositionMapping.js.map +1 -1
  498. package/lib/systems/bodypart/CombatInjuryIntegration.d.ts +0 -10
  499. package/lib/systems/bodypart/CombatInjuryIntegration.d.ts.map +1 -1
  500. package/lib/systems/bodypart/CombatInjuryIntegration.js +0 -8
  501. package/lib/systems/bodypart/CombatInjuryIntegration.js.map +1 -1
  502. package/lib/systems/bodypart/InjuryIntegration.d.ts +0 -2
  503. package/lib/systems/bodypart/InjuryIntegration.d.ts.map +1 -1
  504. package/lib/systems/bodypart/InjuryIntegration.js +0 -2
  505. package/lib/systems/bodypart/InjuryIntegration.js.map +1 -1
  506. package/lib/systems/bodypart/InjuryTracker.d.ts +0 -14
  507. package/lib/systems/bodypart/InjuryTracker.d.ts.map +1 -1
  508. package/lib/systems/bodypart/InjuryTracker.js +0 -12
  509. package/lib/systems/bodypart/InjuryTracker.js.map +1 -1
  510. package/lib/systems/bodypart/MovementPenaltySystem.d.ts +0 -8
  511. package/lib/systems/bodypart/MovementPenaltySystem.d.ts.map +1 -1
  512. package/lib/systems/bodypart/MovementPenaltySystem.js +0 -8
  513. package/lib/systems/bodypart/MovementPenaltySystem.js.map +1 -1
  514. package/lib/systems/bodypart/PlayerInjuryTrackingManager.d.ts +0 -8
  515. package/lib/systems/bodypart/PlayerInjuryTrackingManager.d.ts.map +1 -1
  516. package/lib/systems/bodypart/PlayerInjuryTrackingManager.js +0 -8
  517. package/lib/systems/bodypart/PlayerInjuryTrackingManager.js.map +1 -1
  518. package/lib/systems/bodypart/types.d.ts +0 -13
  519. package/lib/systems/bodypart/types.d.ts.map +1 -1
  520. package/lib/systems/bodypart/types.js +0 -5
  521. package/lib/systems/bodypart/types.js.map +1 -1
  522. package/lib/systems/breathing/BreathingDisruptionSystem.d.ts +0 -3
  523. package/lib/systems/breathing/BreathingDisruptionSystem.d.ts.map +1 -1
  524. package/lib/systems/breathing/BreathingDisruptionSystem.js +0 -2
  525. package/lib/systems/breathing/BreathingDisruptionSystem.js.map +1 -1
  526. package/lib/systems/combat/BalanceSystem.d.ts +0 -25
  527. package/lib/systems/combat/BalanceSystem.d.ts.map +1 -1
  528. package/lib/systems/combat/BalanceSystem.js +0 -25
  529. package/lib/systems/combat/BalanceSystem.js.map +1 -1
  530. package/lib/systems/combat/BreakingStatusEffects.d.ts +0 -4
  531. package/lib/systems/combat/BreakingStatusEffects.d.ts.map +1 -1
  532. package/lib/systems/combat/BreakingStatusEffects.js +0 -3
  533. package/lib/systems/combat/BreakingStatusEffects.js.map +1 -1
  534. package/lib/systems/combat/CombatStateSystem.d.ts +0 -9
  535. package/lib/systems/combat/CombatStateSystem.d.ts.map +1 -1
  536. package/lib/systems/combat/CombatStateSystem.js +0 -9
  537. package/lib/systems/combat/CombatStateSystem.js.map +1 -1
  538. package/lib/systems/combat/ConsciousnessSystem.d.ts +0 -16
  539. package/lib/systems/combat/ConsciousnessSystem.d.ts.map +1 -1
  540. package/lib/systems/combat/ConsciousnessSystem.js +0 -16
  541. package/lib/systems/combat/ConsciousnessSystem.js.map +1 -1
  542. package/lib/systems/combat/FallIntegration.d.ts +0 -3
  543. package/lib/systems/combat/FallIntegration.d.ts.map +1 -1
  544. package/lib/systems/combat/FallIntegration.js +0 -3
  545. package/lib/systems/combat/FallIntegration.js.map +1 -1
  546. package/lib/systems/combat/GrappleSystem.d.ts +0 -2
  547. package/lib/systems/combat/GrappleSystem.d.ts.map +1 -1
  548. package/lib/systems/combat/GrappleSystem.js +0 -2
  549. package/lib/systems/combat/GrappleSystem.js.map +1 -1
  550. package/lib/systems/combat/LimbExposureSystem.d.ts +0 -7
  551. package/lib/systems/combat/LimbExposureSystem.d.ts.map +1 -1
  552. package/lib/systems/combat/LimbExposureSystem.js +0 -7
  553. package/lib/systems/combat/LimbExposureSystem.js.map +1 -1
  554. package/lib/systems/combat/PainResponseSystem.d.ts +0 -11
  555. package/lib/systems/combat/PainResponseSystem.d.ts.map +1 -1
  556. package/lib/systems/combat/PainResponseSystem.js +0 -11
  557. package/lib/systems/combat/PainResponseSystem.js.map +1 -1
  558. package/lib/systems/combat/painConsciousnessUtils.d.ts +0 -7
  559. package/lib/systems/combat/painConsciousnessUtils.d.ts.map +1 -1
  560. package/lib/systems/combat/painConsciousnessUtils.js +0 -7
  561. package/lib/systems/combat/painConsciousnessUtils.js.map +1 -1
  562. package/lib/systems/effects.d.ts +11 -0
  563. package/lib/systems/effects.d.ts.map +1 -1
  564. package/lib/systems/effects.js +10 -0
  565. package/lib/systems/effects.js.map +1 -1
  566. package/lib/systems/game.d.ts +16 -0
  567. package/lib/systems/game.d.ts.map +1 -1
  568. package/lib/systems/game.js +1 -0
  569. package/lib/systems/game.js.map +1 -1
  570. package/lib/systems/index.d.ts +5 -1
  571. package/lib/systems/index.d.ts.map +1 -1
  572. package/lib/systems/index.js.map +1 -1
  573. package/lib/systems/movement/InjuryMovementModifier.d.ts +0 -10
  574. package/lib/systems/movement/InjuryMovementModifier.d.ts.map +1 -1
  575. package/lib/systems/movement/InjuryMovementModifier.js +0 -7
  576. package/lib/systems/movement/InjuryMovementModifier.js.map +1 -1
  577. package/lib/systems/movement/integration.d.ts +0 -3
  578. package/lib/systems/movement/integration.d.ts.map +1 -1
  579. package/lib/systems/movement/integration.js +0 -3
  580. package/lib/systems/movement/integration.js.map +1 -1
  581. package/lib/systems/physics/AttackMovementPhysics.d.ts +0 -9
  582. package/lib/systems/physics/AttackMovementPhysics.d.ts.map +1 -1
  583. package/lib/systems/physics/AttackMovementPhysics.js +0 -7
  584. package/lib/systems/physics/AttackMovementPhysics.js.map +1 -1
  585. package/lib/systems/physics/CollisionDetection.d.ts +0 -6
  586. package/lib/systems/physics/CollisionDetection.d.ts.map +1 -1
  587. package/lib/systems/physics/CollisionDetection.js +0 -6
  588. package/lib/systems/physics/CollisionDetection.js.map +1 -1
  589. package/lib/systems/physics/CoordinateMapper.d.ts +0 -1
  590. package/lib/systems/physics/CoordinateMapper.d.ts.map +1 -1
  591. package/lib/systems/physics/CoordinateMapper.js +0 -1
  592. package/lib/systems/physics/CoordinateMapper.js.map +1 -1
  593. package/lib/systems/physics/KnockbackPhysics.d.ts +0 -11
  594. package/lib/systems/physics/KnockbackPhysics.d.ts.map +1 -1
  595. package/lib/systems/physics/KnockbackPhysics.js +0 -8
  596. package/lib/systems/physics/KnockbackPhysics.js.map +1 -1
  597. package/lib/systems/physics/MovementPhysics.d.ts +0 -10
  598. package/lib/systems/physics/MovementPhysics.d.ts.map +1 -1
  599. package/lib/systems/physics/MovementPhysics.js +0 -8
  600. package/lib/systems/physics/MovementPhysics.js.map +1 -1
  601. package/lib/systems/physics/PhysicalReachCalculator.d.ts +0 -6
  602. package/lib/systems/physics/PhysicalReachCalculator.d.ts.map +1 -1
  603. package/lib/systems/physics/PhysicalReachCalculator.js +0 -5
  604. package/lib/systems/physics/PhysicalReachCalculator.js.map +1 -1
  605. package/lib/systems/physics/SpeedModifierSystem.d.ts +0 -5
  606. package/lib/systems/physics/SpeedModifierSystem.d.ts.map +1 -1
  607. package/lib/systems/physics/SpeedModifierSystem.js +0 -4
  608. package/lib/systems/physics/SpeedModifierSystem.js.map +1 -1
  609. package/lib/systems/player.d.ts +0 -5
  610. package/lib/systems/player.d.ts.map +1 -1
  611. package/lib/systems/trigram/TrigramCalculator.d.ts +0 -1
  612. package/lib/systems/trigram/TrigramCalculator.d.ts.map +1 -1
  613. package/lib/systems/trigram/TrigramCalculator.js +0 -1
  614. package/lib/systems/trigram/TrigramCalculator.js.map +1 -1
  615. package/lib/systems/trigram/types.d.ts +0 -4
  616. package/lib/systems/trigram/types.d.ts.map +1 -1
  617. package/lib/systems/trigram/types.js +0 -2
  618. package/lib/systems/trigram/types.js.map +1 -1
  619. package/lib/systems/types.d.ts +7 -2
  620. package/lib/systems/types.d.ts.map +1 -1
  621. package/lib/systems/types.js.map +1 -1
  622. package/lib/systems/vitalpoint/DamageCalculator.d.ts +0 -3
  623. package/lib/systems/vitalpoint/DamageCalculator.d.ts.map +1 -1
  624. package/lib/systems/vitalpoint/DamageCalculator.js +0 -3
  625. package/lib/systems/vitalpoint/DamageCalculator.js.map +1 -1
  626. package/lib/systems/vitalpoint/KoreanVitalPoints.d.ts +0 -8
  627. package/lib/systems/vitalpoint/KoreanVitalPoints.d.ts.map +1 -1
  628. package/lib/systems/vitalpoint/KoreanVitalPoints.js +0 -8
  629. package/lib/systems/vitalpoint/KoreanVitalPoints.js.map +1 -1
  630. package/lib/systems/vitalpoint/VitalPointsData.d.ts +0 -3
  631. package/lib/systems/vitalpoint/VitalPointsData.d.ts.map +1 -1
  632. package/lib/systems/vitalpoint/VitalPointsData.js +0 -1
  633. package/lib/systems/vitalpoint/VitalPointsData.js.map +1 -1
  634. package/lib/types/PhysicsTypes.d.ts +21 -78
  635. package/lib/types/PhysicsTypes.d.ts.map +1 -1
  636. package/lib/types/PhysicsTypes.js +17 -63
  637. package/lib/types/PhysicsTypes.js.map +1 -1
  638. package/lib/types/clothing.d.ts +0 -9
  639. package/lib/types/clothing.d.ts.map +1 -1
  640. package/lib/types/constants/animations.d.ts +35 -1
  641. package/lib/types/constants/animations.d.ts.map +1 -1
  642. package/lib/types/constants/animations.js +12 -1
  643. package/lib/types/constants/animations.js.map +1 -1
  644. package/lib/types/constants/colors.d.ts +28 -2
  645. package/lib/types/constants/colors.d.ts.map +1 -1
  646. package/lib/types/constants/colors.js +30 -4
  647. package/lib/types/constants/colors.js.map +1 -1
  648. package/lib/types/constants/index.d.ts +5 -1
  649. package/lib/types/constants/index.d.ts.map +1 -1
  650. package/lib/types/constants/index.js.map +1 -1
  651. package/lib/types/constants/performance.d.ts +0 -2
  652. package/lib/types/constants/performance.d.ts.map +1 -1
  653. package/lib/types/constants/performance.js +0 -2
  654. package/lib/types/constants/performance.js.map +1 -1
  655. package/lib/types/constants/typography.d.ts +40 -2
  656. package/lib/types/constants/typography.d.ts.map +1 -1
  657. package/lib/types/constants/typography.js +40 -2
  658. package/lib/types/constants/typography.js.map +1 -1
  659. package/lib/types/constants/ui.d.ts +89 -1
  660. package/lib/types/constants/ui.d.ts.map +1 -1
  661. package/lib/types/constants/ui.js +33 -1
  662. package/lib/types/constants/ui.js.map +1 -1
  663. package/lib/types/facial.d.ts +0 -15
  664. package/lib/types/facial.d.ts.map +1 -1
  665. package/lib/types/facial.js +0 -8
  666. package/lib/types/facial.js.map +1 -1
  667. package/lib/types/hand-animation.d.ts +34 -147
  668. package/lib/types/hand-animation.d.ts.map +1 -1
  669. package/lib/types/hand-animation.js +0 -2
  670. package/lib/types/hand-animation.js.map +1 -1
  671. package/lib/types/injury.d.ts +0 -2
  672. package/lib/types/injury.d.ts.map +1 -1
  673. package/lib/types/injury.js +0 -1
  674. package/lib/types/injury.js.map +1 -1
  675. package/lib/types/physics.d.ts +0 -21
  676. package/lib/types/physics.d.ts.map +1 -1
  677. package/lib/types/physics.js +0 -6
  678. package/lib/types/physics.js.map +1 -1
  679. package/lib/types/physicsConstants.d.ts +0 -12
  680. package/lib/types/physicsConstants.d.ts.map +1 -1
  681. package/lib/types/physicsConstants.js +0 -12
  682. package/lib/types/physicsConstants.js.map +1 -1
  683. package/lib/types/player-visual.d.ts +45 -189
  684. package/lib/types/player-visual.d.ts.map +1 -1
  685. package/lib/types/technique.d.ts +1 -5
  686. package/lib/types/technique.d.ts.map +1 -1
  687. package/lib/types/techniqueId.d.ts +0 -1
  688. package/lib/types/techniqueId.d.ts.map +1 -1
  689. package/lib/types/techniqueId.js +0 -1
  690. package/lib/types/techniqueId.js.map +1 -1
  691. package/lib/utils/arenaWorldDimensions.d.ts +0 -11
  692. package/lib/utils/arenaWorldDimensions.d.ts.map +1 -1
  693. package/lib/utils/arenaWorldDimensions.js +0 -6
  694. package/lib/utils/arenaWorldDimensions.js.map +1 -1
  695. package/lib/utils/controlMapping.d.ts +3 -4
  696. package/lib/utils/controlMapping.d.ts.map +1 -1
  697. package/lib/utils/controlMapping.js +1 -2
  698. package/lib/utils/controlMapping.js.map +1 -1
  699. package/lib/utils/deviceDetection.d.ts +0 -5
  700. package/lib/utils/deviceDetection.d.ts.map +1 -1
  701. package/lib/utils/deviceDetection.js +0 -5
  702. package/lib/utils/deviceDetection.js.map +1 -1
  703. package/lib/utils/hapticFeedback.d.ts +23 -95
  704. package/lib/utils/hapticFeedback.d.ts.map +1 -1
  705. package/lib/utils/hapticFeedback.js +9 -39
  706. package/lib/utils/hapticFeedback.js.map +1 -1
  707. package/lib/utils/haptics.d.ts +0 -3
  708. package/lib/utils/haptics.d.ts.map +1 -1
  709. package/lib/utils/haptics.js +0 -1
  710. package/lib/utils/haptics.js.map +1 -1
  711. package/lib/utils/math.d.ts +0 -3
  712. package/lib/utils/math.d.ts.map +1 -1
  713. package/lib/utils/math.js +0 -2
  714. package/lib/utils/math.js.map +1 -1
  715. package/lib/utils/mobileLayoutHelpers.d.ts +0 -3
  716. package/lib/utils/mobileLayoutHelpers.d.ts.map +1 -1
  717. package/lib/utils/mobileLayoutHelpers.js +0 -1
  718. package/lib/utils/mobileLayoutHelpers.js.map +1 -1
  719. package/lib/utils/mobileUIUtils.d.ts +5 -100
  720. package/lib/utils/mobileUIUtils.d.ts.map +1 -1
  721. package/lib/utils/mobileUIUtils.js +0 -9
  722. package/lib/utils/mobileUIUtils.js.map +1 -1
  723. package/lib/utils/physicalAttributeValidation.d.ts.map +1 -1
  724. package/lib/utils/player3DHelpers.d.ts.map +1 -1
  725. package/lib/utils/player3DHelpers.js.map +1 -1
  726. package/lib/utils/responsiveLayoutHelpers.d.ts +0 -65
  727. package/lib/utils/responsiveLayoutHelpers.d.ts.map +1 -1
  728. package/lib/utils/responsiveLayoutHelpers.js +0 -65
  729. package/lib/utils/responsiveLayoutHelpers.js.map +1 -1
  730. package/lib/utils/responsiveOrientationConstants.d.ts +0 -7
  731. package/lib/utils/responsiveOrientationConstants.d.ts.map +1 -1
  732. package/lib/utils/responsiveOrientationConstants.js +0 -7
  733. package/lib/utils/responsiveOrientationConstants.js.map +1 -1
  734. package/lib/utils/safeAreaUtils.d.ts +0 -6
  735. package/lib/utils/safeAreaUtils.d.ts.map +1 -1
  736. package/lib/utils/safeAreaUtils.js +0 -2
  737. package/lib/utils/safeAreaUtils.js.map +1 -1
  738. package/lib/utils/sharedPhysicsConfig.d.ts +0 -4
  739. package/lib/utils/sharedPhysicsConfig.d.ts.map +1 -1
  740. package/lib/utils/sharedPhysicsConfig.js +0 -2
  741. package/lib/utils/sharedPhysicsConfig.js.map +1 -1
  742. package/lib/utils/skeletonScaling.d.ts +0 -9
  743. package/lib/utils/skeletonScaling.d.ts.map +1 -1
  744. package/lib/utils/skeletonScaling.js +0 -1
  745. package/lib/utils/skeletonScaling.js.map +1 -1
  746. package/package.json +7 -7
@@ -16,7 +16,6 @@ import type { ScreenSize } from '../systems/ResponsiveScaling';
16
16
  * @param width - Viewport width in CSS pixels
17
17
  * @returns Width budget for the 4:3 desktop arena
18
18
  *
19
- * @public
20
19
  */
21
20
  export declare function getDesktopArenaWidthBudget(width: number): number;
22
21
  /**
@@ -25,13 +24,6 @@ export declare function getDesktopArenaWidthBudget(width: number): number;
25
24
  * @param screenSize - Current screen size category
26
25
  * @returns Calculated padding in pixels
27
26
  *
28
- * @example
29
- * ```typescript
30
- * const padding = getResponsivePadding('xlarge'); // 35
31
- * const padding = getResponsivePadding('mobile'); // 20
32
- * ```
33
- *
34
- * @public
35
27
  */
36
28
  export declare function getResponsivePadding(screenSize: ScreenSize): number;
37
29
  /**
@@ -40,13 +32,6 @@ export declare function getResponsivePadding(screenSize: ScreenSize): number;
40
32
  * @param screenSize - Current screen size category
41
33
  * @returns Calculated header height in pixels
42
34
  *
43
- * @example
44
- * ```typescript
45
- * const headerHeight = getResponsiveHeaderHeight('xlarge'); // 120
46
- * const headerHeight = getResponsiveHeaderHeight('mobile'); // 90
47
- * ```
48
- *
49
- * @public
50
35
  */
51
36
  export declare function getResponsiveHeaderHeight(screenSize: ScreenSize): number;
52
37
  /**
@@ -55,13 +40,6 @@ export declare function getResponsiveHeaderHeight(screenSize: ScreenSize): numbe
55
40
  * @param screenSize - Current screen size category
56
41
  * @returns Calculated footer height in pixels
57
42
  *
58
- * @example
59
- * ```typescript
60
- * const footerHeight = getResponsiveFooterHeight('xlarge'); // 100
61
- * const footerHeight = getResponsiveFooterHeight('mobile'); // 75
62
- * ```
63
- *
64
- * @public
65
43
  */
66
44
  export declare function getResponsiveFooterHeight(screenSize: ScreenSize): number;
67
45
  /**
@@ -70,13 +48,6 @@ export declare function getResponsiveFooterHeight(screenSize: ScreenSize): numbe
70
48
  * @param screenSize - Current screen size category
71
49
  * @returns Calculated section spacing in pixels
72
50
  *
73
- * @example
74
- * ```typescript
75
- * const spacing = getResponsiveSectionSpacing('xlarge'); // 25
76
- * const spacing = getResponsiveSectionSpacing('mobile'); // 15
77
- * ```
78
- *
79
- * @public
80
51
  */
81
52
  export declare function getResponsiveSectionSpacing(screenSize: ScreenSize): number;
82
53
  /**
@@ -85,13 +56,6 @@ export declare function getResponsiveSectionSpacing(screenSize: ScreenSize): num
85
56
  * @param screenSize - Current screen size category
86
57
  * @returns Calculated button area in pixels
87
58
  *
88
- * @example
89
- * ```typescript
90
- * const buttonArea = getResponsiveButtonArea('xlarge'); // 110
91
- * const buttonArea = getResponsiveButtonArea('mobile'); // 75
92
- * ```
93
- *
94
- * @public
95
59
  */
96
60
  export declare function getResponsiveButtonArea(screenSize: ScreenSize): number;
97
61
  /**
@@ -101,19 +65,6 @@ export declare function getResponsiveButtonArea(screenSize: ScreenSize): number;
101
65
  * @param width - Screen width in pixels
102
66
  * @returns Object with all layout constant values
103
67
  *
104
- * @example
105
- * ```typescript
106
- * const layout = getLayoutConstants(3840); // 4K display
107
- * // {
108
- * // padding: 35,
109
- * // headerHeight: 120,
110
- * // footerHeight: 100,
111
- * // sectionSpacing: 25,
112
- * // buttonArea: 110
113
- * // }
114
- * ```
115
- *
116
- * @public
117
68
  */
118
69
  export declare function getLayoutConstants(width: number): {
119
70
  padding: number;
@@ -137,22 +88,6 @@ export declare function getLayoutConstants(width: number): {
137
88
  * @param isMobile - Optional: Whether device is mobile (from user-agent detection)
138
89
  * @returns Object with combat layout constant values
139
90
  *
140
- * @example
141
- * ```typescript
142
- * // Extra-small mobile (iPhone SE)
143
- * const layout = getCombatLayoutConstants(375, true);
144
- * // { padding: 8, hudHeight: 85, controlsHeight: 150, ... }
145
- *
146
- * // High-res mobile (Motorola Edge 60 Pro)
147
- * const layoutHD = getCombatLayoutConstants(2712, true);
148
- * // { padding: 10, hudHeight: 95, controlsHeight: 160, ... } (mobile values!)
149
- *
150
- * // Desktop
151
- * const layoutDesktop = getCombatLayoutConstants(1920, false);
152
- * // { padding: 10, hudHeight: 135, controlsHeight: 175, ... } (desktop values)
153
- * ```
154
- *
155
- * @public
156
91
  */
157
92
  export declare function getCombatLayoutConstants(width: number, isMobile?: boolean): {
158
93
  padding: number;
@@ -1 +1 @@
1
- {"version":3,"file":"responsiveLayoutHelpers.d.ts","sourceRoot":"","sources":["../../src/utils/responsiveLayoutHelpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAa/D;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhE;AAiDD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAEnE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAExE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAExE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAE1E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAEtE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM;;;;;;EAU/C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO;;;;;;;EA8DzE"}
1
+ {"version":3,"file":"responsiveLayoutHelpers.d.ts","sourceRoot":"","sources":["../../src/utils/responsiveLayoutHelpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAa/D;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhE;AAiDD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAEnE;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAExE;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAExE;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAE1E;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAEtE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM;;;;;;EAU/C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO;;;;;;;EA8DzE"}
@@ -26,7 +26,6 @@ var DESKTOP_ARENA_MAX_WIDTH_PX = 2560;
26
26
  * @param width - Viewport width in CSS pixels
27
27
  * @returns Width budget for the 4:3 desktop arena
28
28
  *
29
- * @public
30
29
  */
31
30
  function getDesktopArenaWidthBudget(width) {
32
31
  return Math.min(width * DESKTOP_ARENA_WIDTH_RATIO, DESKTOP_ARENA_MAX_WIDTH_PX);
@@ -78,13 +77,6 @@ var BASE_LAYOUT_VALUES = {
78
77
  * @param screenSize - Current screen size category
79
78
  * @returns Calculated padding in pixels
80
79
  *
81
- * @example
82
- * ```typescript
83
- * const padding = getResponsivePadding('xlarge'); // 35
84
- * const padding = getResponsivePadding('mobile'); // 20
85
- * ```
86
- *
87
- * @public
88
80
  */
89
81
  function getResponsivePadding(screenSize) {
90
82
  return BASE_LAYOUT_VALUES.padding[screenSize];
@@ -95,13 +87,6 @@ function getResponsivePadding(screenSize) {
95
87
  * @param screenSize - Current screen size category
96
88
  * @returns Calculated header height in pixels
97
89
  *
98
- * @example
99
- * ```typescript
100
- * const headerHeight = getResponsiveHeaderHeight('xlarge'); // 120
101
- * const headerHeight = getResponsiveHeaderHeight('mobile'); // 90
102
- * ```
103
- *
104
- * @public
105
90
  */
106
91
  function getResponsiveHeaderHeight(screenSize) {
107
92
  return BASE_LAYOUT_VALUES.headerHeight[screenSize];
@@ -112,13 +97,6 @@ function getResponsiveHeaderHeight(screenSize) {
112
97
  * @param screenSize - Current screen size category
113
98
  * @returns Calculated footer height in pixels
114
99
  *
115
- * @example
116
- * ```typescript
117
- * const footerHeight = getResponsiveFooterHeight('xlarge'); // 100
118
- * const footerHeight = getResponsiveFooterHeight('mobile'); // 75
119
- * ```
120
- *
121
- * @public
122
100
  */
123
101
  function getResponsiveFooterHeight(screenSize) {
124
102
  return BASE_LAYOUT_VALUES.footerHeight[screenSize];
@@ -129,13 +107,6 @@ function getResponsiveFooterHeight(screenSize) {
129
107
  * @param screenSize - Current screen size category
130
108
  * @returns Calculated section spacing in pixels
131
109
  *
132
- * @example
133
- * ```typescript
134
- * const spacing = getResponsiveSectionSpacing('xlarge'); // 25
135
- * const spacing = getResponsiveSectionSpacing('mobile'); // 15
136
- * ```
137
- *
138
- * @public
139
110
  */
140
111
  function getResponsiveSectionSpacing(screenSize) {
141
112
  return BASE_LAYOUT_VALUES.sectionSpacing[screenSize];
@@ -146,13 +117,6 @@ function getResponsiveSectionSpacing(screenSize) {
146
117
  * @param screenSize - Current screen size category
147
118
  * @returns Calculated button area in pixels
148
119
  *
149
- * @example
150
- * ```typescript
151
- * const buttonArea = getResponsiveButtonArea('xlarge'); // 110
152
- * const buttonArea = getResponsiveButtonArea('mobile'); // 75
153
- * ```
154
- *
155
- * @public
156
120
  */
157
121
  function getResponsiveButtonArea(screenSize) {
158
122
  return BASE_LAYOUT_VALUES.buttonArea[screenSize];
@@ -164,19 +128,6 @@ function getResponsiveButtonArea(screenSize) {
164
128
  * @param width - Screen width in pixels
165
129
  * @returns Object with all layout constant values
166
130
  *
167
- * @example
168
- * ```typescript
169
- * const layout = getLayoutConstants(3840); // 4K display
170
- * // {
171
- * // padding: 35,
172
- * // headerHeight: 120,
173
- * // footerHeight: 100,
174
- * // sectionSpacing: 25,
175
- * // buttonArea: 110
176
- * // }
177
- * ```
178
- *
179
- * @public
180
131
  */
181
132
  function getLayoutConstants(width) {
182
133
  const screenSize = getScreenSize(width);
@@ -203,22 +154,6 @@ function getLayoutConstants(width) {
203
154
  * @param isMobile - Optional: Whether device is mobile (from user-agent detection)
204
155
  * @returns Object with combat layout constant values
205
156
  *
206
- * @example
207
- * ```typescript
208
- * // Extra-small mobile (iPhone SE)
209
- * const layout = getCombatLayoutConstants(375, true);
210
- * // { padding: 8, hudHeight: 85, controlsHeight: 150, ... }
211
- *
212
- * // High-res mobile (Motorola Edge 60 Pro)
213
- * const layoutHD = getCombatLayoutConstants(2712, true);
214
- * // { padding: 10, hudHeight: 95, controlsHeight: 160, ... } (mobile values!)
215
- *
216
- * // Desktop
217
- * const layoutDesktop = getCombatLayoutConstants(1920, false);
218
- * // { padding: 10, hudHeight: 135, controlsHeight: 175, ... } (desktop values)
219
- * ```
220
- *
221
- * @public
222
157
  */
223
158
  function getCombatLayoutConstants(width, isMobile) {
224
159
  const screenSize = isMobile ? "mobile" : getScreenSize(width);
@@ -1 +1 @@
1
- {"version":3,"file":"responsiveLayoutHelpers.js","names":[],"sources":["../../src/utils/responsiveLayoutHelpers.ts"],"sourcesContent":["/**\n * Responsive Layout Helpers\n * \n * Centralized utilities for calculating responsive layout constants\n * across different screen components. Uses the centralized ResponsiveScaling\n * system for consistent scaling patterns.\n * \n * @module utils/responsiveLayoutHelpers\n * @category Layout\n * @korean 반응형레이아웃도우미\n */\n\nimport { getScreenSize } from '../systems/ResponsiveScaling';\nimport type { ScreenSize } from '../systems/ResponsiveScaling';\n\n/** Desktop arena width as a proportion of viewport width. */\nconst DESKTOP_ARENA_WIDTH_RATIO = 0.8;\n\n/**\n * Maximum desktop arena width in CSS pixels.\n *\n * Caps ultra-wide/8K displays to protect WebGL fill-rate while preserving a\n * large, readable 4K desktop arena.\n */\nconst DESKTOP_ARENA_MAX_WIDTH_PX = 2560;\n\n/**\n * Calculate maximum desktop arena width for combat/training screens.\n *\n * @param width - Viewport width in CSS pixels\n * @returns Width budget for the 4:3 desktop arena\n *\n * @public\n */\nexport function getDesktopArenaWidthBudget(width: number): number {\n return Math.min(width * DESKTOP_ARENA_WIDTH_RATIO, DESKTOP_ARENA_MAX_WIDTH_PX);\n}\n\n/**\n * Base layout values for different screen sizes\n * These serve as reference values that scale proportionally\n */\nconst BASE_LAYOUT_VALUES = {\n // Base padding values (desktop reference)\n padding: {\n mobile: 20,\n tablet: 25,\n desktop: 30,\n large: 32,\n xlarge: 35,\n },\n // Base header height values\n headerHeight: {\n mobile: 90,\n tablet: 100,\n desktop: 110,\n large: 115,\n xlarge: 120,\n },\n // Base footer height values\n footerHeight: {\n mobile: 75,\n tablet: 85,\n desktop: 90,\n large: 95,\n xlarge: 100,\n },\n // Base section spacing values\n sectionSpacing: {\n mobile: 15,\n tablet: 18,\n desktop: 20,\n large: 22,\n xlarge: 25,\n },\n // Base button area values\n buttonArea: {\n mobile: 75,\n tablet: 85,\n desktop: 95,\n large: 102,\n xlarge: 110,\n },\n} as const;\n\n/**\n * Calculate responsive padding value\n * \n * @param screenSize - Current screen size category\n * @returns Calculated padding in pixels\n * \n * @example\n * ```typescript\n * const padding = getResponsivePadding('xlarge'); // 35\n * const padding = getResponsivePadding('mobile'); // 20\n * ```\n * \n * @public\n */\nexport function getResponsivePadding(screenSize: ScreenSize): number {\n return BASE_LAYOUT_VALUES.padding[screenSize];\n}\n\n/**\n * Calculate responsive header height value\n * \n * @param screenSize - Current screen size category\n * @returns Calculated header height in pixels\n * \n * @example\n * ```typescript\n * const headerHeight = getResponsiveHeaderHeight('xlarge'); // 120\n * const headerHeight = getResponsiveHeaderHeight('mobile'); // 90\n * ```\n * \n * @public\n */\nexport function getResponsiveHeaderHeight(screenSize: ScreenSize): number {\n return BASE_LAYOUT_VALUES.headerHeight[screenSize];\n}\n\n/**\n * Calculate responsive footer height value\n * \n * @param screenSize - Current screen size category\n * @returns Calculated footer height in pixels\n * \n * @example\n * ```typescript\n * const footerHeight = getResponsiveFooterHeight('xlarge'); // 100\n * const footerHeight = getResponsiveFooterHeight('mobile'); // 75\n * ```\n * \n * @public\n */\nexport function getResponsiveFooterHeight(screenSize: ScreenSize): number {\n return BASE_LAYOUT_VALUES.footerHeight[screenSize];\n}\n\n/**\n * Calculate responsive section spacing value\n * \n * @param screenSize - Current screen size category\n * @returns Calculated section spacing in pixels\n * \n * @example\n * ```typescript\n * const spacing = getResponsiveSectionSpacing('xlarge'); // 25\n * const spacing = getResponsiveSectionSpacing('mobile'); // 15\n * ```\n * \n * @public\n */\nexport function getResponsiveSectionSpacing(screenSize: ScreenSize): number {\n return BASE_LAYOUT_VALUES.sectionSpacing[screenSize];\n}\n\n/**\n * Calculate responsive button area value\n * \n * @param screenSize - Current screen size category\n * @returns Calculated button area in pixels\n * \n * @example\n * ```typescript\n * const buttonArea = getResponsiveButtonArea('xlarge'); // 110\n * const buttonArea = getResponsiveButtonArea('mobile'); // 75\n * ```\n * \n * @public\n */\nexport function getResponsiveButtonArea(screenSize: ScreenSize): number {\n return BASE_LAYOUT_VALUES.buttonArea[screenSize];\n}\n\n/**\n * Get all layout constants for a given screen size\n * Convenient helper that returns all layout values at once\n * \n * @param width - Screen width in pixels\n * @returns Object with all layout constant values\n * \n * @example\n * ```typescript\n * const layout = getLayoutConstants(3840); // 4K display\n * // {\n * // padding: 35,\n * // headerHeight: 120,\n * // footerHeight: 100,\n * // sectionSpacing: 25,\n * // buttonArea: 110\n * // }\n * ```\n * \n * @public\n */\nexport function getLayoutConstants(width: number) {\n const screenSize = getScreenSize(width);\n \n return {\n padding: getResponsivePadding(screenSize),\n headerHeight: getResponsiveHeaderHeight(screenSize),\n footerHeight: getResponsiveFooterHeight(screenSize),\n sectionSpacing: getResponsiveSectionSpacing(screenSize),\n buttonArea: getResponsiveButtonArea(screenSize),\n };\n}\n\n/**\n * Get combat-specific layout constants for a given screen size\n * \n * Optimized for narrow devices (<450px), with extra-small device support\n * explicitly tuned for ultra-small screens (<380px) like iPhone SE, old\n * Android phones, and budget smartphones.\n * \n * Now properly handles high-resolution mobile devices (2K+, Super HD) by\n * checking isMobile flag to ensure they get mobile-optimized layout values\n * regardless of pixel width.\n * \n * @param width - Screen width in pixels\n * @param isMobile - Optional: Whether device is mobile (from user-agent detection)\n * @returns Object with combat layout constant values\n * \n * @example\n * ```typescript\n * // Extra-small mobile (iPhone SE)\n * const layout = getCombatLayoutConstants(375, true);\n * // { padding: 8, hudHeight: 85, controlsHeight: 150, ... }\n * \n * // High-res mobile (Motorola Edge 60 Pro)\n * const layoutHD = getCombatLayoutConstants(2712, true);\n * // { padding: 10, hudHeight: 95, controlsHeight: 160, ... } (mobile values!)\n * \n * // Desktop\n * const layoutDesktop = getCombatLayoutConstants(1920, false);\n * // { padding: 10, hudHeight: 135, controlsHeight: 175, ... } (desktop values)\n * ```\n * \n * @public\n */\nexport function getCombatLayoutConstants(width: number, isMobile?: boolean) {\n // For mobile devices, force 'mobile' screen size regardless of pixel width\n // This ensures high-res mobile devices (2K+) get mobile-optimized layouts\n const screenSize = isMobile ? 'mobile' : getScreenSize(width);\n \n // Extra-small detection for low-end mobile devices (<380px)\n const isExtraSmall = isMobile && width < 380;\n \n // Combat screen uses different base values for compact HUD\n const hudHeightMap = {\n mobile: isExtraSmall ? 85 : 95,\n tablet: 100,\n desktop: 130,\n large: 135,\n xlarge: 140,\n };\n \n // Note: Tablet optimizations - controlsHeight and footerHeight are intentionally\n // smaller on tablets than mobile for better landscape orientation ergonomics.\n // Mobile (portrait) needs taller controls for thumb reach, while tablets\n // (often landscape) can use more compact controls with better screen utilization.\n const controlsHeightMap = {\n mobile: isExtraSmall ? 150 : 160, // Taller for portrait thumb reach\n tablet: 140, // Optimized for landscape - more compact\n desktop: 170,\n large: 175,\n xlarge: 180,\n };\n \n const footerHeightMap = {\n mobile: 34, // Adequate for portrait orientation\n tablet: 30, // Optimized for landscape - more compact\n desktop: 35,\n large: 37,\n xlarge: 40,\n };\n \n const healthBarHeightMap = {\n mobile: 48,\n tablet: 50,\n desktop: 65,\n large: 67,\n xlarge: 70,\n };\n \n // Touch target heights - WCAG AA compliance (minimum 44px)\n const buttonHeightMap = {\n mobile: isExtraSmall ? 48 : 55, // Minimum 48px for extra-small\n tablet: 55,\n desktop: 60,\n large: 60,\n xlarge: 60,\n };\n \n return {\n padding: isExtraSmall ? 8 : 10, // Reduced padding for extra-small\n hudHeight: hudHeightMap[screenSize],\n controlsHeight: controlsHeightMap[screenSize],\n footerHeight: footerHeightMap[screenSize],\n healthBarHeight: healthBarHeightMap[screenSize],\n buttonHeight: buttonHeightMap[screenSize],\n };\n}\n"],"mappings":";;;;;;;;;;;;;;AAgBA,IAAM,4BAA4B;;;;;;;AAQlC,IAAM,6BAA6B;;;;;;;;;AAUnC,SAAgB,2BAA2B,OAAuB;CAChE,OAAO,KAAK,IAAI,QAAQ,2BAA2B,2BAA2B;;;;;;AAOhF,IAAM,qBAAqB;CAEzB,SAAS;EACP,QAAQ;EACR,QAAQ;EACR,SAAS;EACT,OAAO;EACP,QAAQ;EACT;CAED,cAAc;EACZ,QAAQ;EACR,QAAQ;EACR,SAAS;EACT,OAAO;EACP,QAAQ;EACT;CAED,cAAc;EACZ,QAAQ;EACR,QAAQ;EACR,SAAS;EACT,OAAO;EACP,QAAQ;EACT;CAED,gBAAgB;EACd,QAAQ;EACR,QAAQ;EACR,SAAS;EACT,OAAO;EACP,QAAQ;EACT;CAED,YAAY;EACV,QAAQ;EACR,QAAQ;EACR,SAAS;EACT,OAAO;EACP,QAAQ;EACT;CACF;;;;;;;;;;;;;;;AAgBD,SAAgB,qBAAqB,YAAgC;CACnE,OAAO,mBAAmB,QAAQ;;;;;;;;;;;;;;;;AAiBpC,SAAgB,0BAA0B,YAAgC;CACxE,OAAO,mBAAmB,aAAa;;;;;;;;;;;;;;;;AAiBzC,SAAgB,0BAA0B,YAAgC;CACxE,OAAO,mBAAmB,aAAa;;;;;;;;;;;;;;;;AAiBzC,SAAgB,4BAA4B,YAAgC;CAC1E,OAAO,mBAAmB,eAAe;;;;;;;;;;;;;;;;AAiB3C,SAAgB,wBAAwB,YAAgC;CACtE,OAAO,mBAAmB,WAAW;;;;;;;;;;;;;;;;;;;;;;;AAwBvC,SAAgB,mBAAmB,OAAe;CAChD,MAAM,aAAa,cAAc,MAAM;CAEvC,OAAO;EACL,SAAS,qBAAqB,WAAW;EACzC,cAAc,0BAA0B,WAAW;EACnD,cAAc,0BAA0B,WAAW;EACnD,gBAAgB,4BAA4B,WAAW;EACvD,YAAY,wBAAwB,WAAW;EAChD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCH,SAAgB,yBAAyB,OAAe,UAAoB;CAG1E,MAAM,aAAa,WAAW,WAAW,cAAc,MAAM;CAG7D,MAAM,eAAe,YAAY,QAAQ;CAGzC,MAAM,eAAe;EACnB,QAAQ,eAAe,KAAK;EAC5B,QAAQ;EACR,SAAS;EACT,OAAO;EACP,QAAQ;EACT;CAMD,MAAM,oBAAoB;EACxB,QAAQ,eAAe,MAAM;EAC7B,QAAQ;EACR,SAAS;EACT,OAAO;EACP,QAAQ;EACT;CAED,MAAM,kBAAkB;EACtB,QAAQ;EACR,QAAQ;EACR,SAAS;EACT,OAAO;EACP,QAAQ;EACT;CAED,MAAM,qBAAqB;EACzB,QAAQ;EACR,QAAQ;EACR,SAAS;EACT,OAAO;EACP,QAAQ;EACT;CAGD,MAAM,kBAAkB;EACtB,QAAQ,eAAe,KAAK;EAC5B,QAAQ;EACR,SAAS;EACT,OAAO;EACP,QAAQ;EACT;CAED,OAAO;EACL,SAAS,eAAe,IAAI;EAC5B,WAAW,aAAa;EACxB,gBAAgB,kBAAkB;EAClC,cAAc,gBAAgB;EAC9B,iBAAiB,mBAAmB;EACpC,cAAc,gBAAgB;EAC/B"}
1
+ {"version":3,"file":"responsiveLayoutHelpers.js","names":[],"sources":["../../src/utils/responsiveLayoutHelpers.ts"],"sourcesContent":["/**\n * Responsive Layout Helpers\n * \n * Centralized utilities for calculating responsive layout constants\n * across different screen components. Uses the centralized ResponsiveScaling\n * system for consistent scaling patterns.\n * \n * @module utils/responsiveLayoutHelpers\n * @category Layout\n * @korean 반응형레이아웃도우미\n */\n\nimport { getScreenSize } from '../systems/ResponsiveScaling';\nimport type { ScreenSize } from '../systems/ResponsiveScaling';\n\n/** Desktop arena width as a proportion of viewport width. */\nconst DESKTOP_ARENA_WIDTH_RATIO = 0.8;\n\n/**\n * Maximum desktop arena width in CSS pixels.\n *\n * Caps ultra-wide/8K displays to protect WebGL fill-rate while preserving a\n * large, readable 4K desktop arena.\n */\nconst DESKTOP_ARENA_MAX_WIDTH_PX = 2560;\n\n/**\n * Calculate maximum desktop arena width for combat/training screens.\n *\n * @param width - Viewport width in CSS pixels\n * @returns Width budget for the 4:3 desktop arena\n *\n */\nexport function getDesktopArenaWidthBudget(width: number): number {\n return Math.min(width * DESKTOP_ARENA_WIDTH_RATIO, DESKTOP_ARENA_MAX_WIDTH_PX);\n}\n\n/**\n * Base layout values for different screen sizes\n * These serve as reference values that scale proportionally\n */\nconst BASE_LAYOUT_VALUES = {\n // Base padding values (desktop reference)\n padding: {\n mobile: 20,\n tablet: 25,\n desktop: 30,\n large: 32,\n xlarge: 35,\n },\n // Base header height values\n headerHeight: {\n mobile: 90,\n tablet: 100,\n desktop: 110,\n large: 115,\n xlarge: 120,\n },\n // Base footer height values\n footerHeight: {\n mobile: 75,\n tablet: 85,\n desktop: 90,\n large: 95,\n xlarge: 100,\n },\n // Base section spacing values\n sectionSpacing: {\n mobile: 15,\n tablet: 18,\n desktop: 20,\n large: 22,\n xlarge: 25,\n },\n // Base button area values\n buttonArea: {\n mobile: 75,\n tablet: 85,\n desktop: 95,\n large: 102,\n xlarge: 110,\n },\n} as const;\n\n/**\n * Calculate responsive padding value\n * \n * @param screenSize - Current screen size category\n * @returns Calculated padding in pixels\n * \n */\nexport function getResponsivePadding(screenSize: ScreenSize): number {\n return BASE_LAYOUT_VALUES.padding[screenSize];\n}\n\n/**\n * Calculate responsive header height value\n * \n * @param screenSize - Current screen size category\n * @returns Calculated header height in pixels\n * \n */\nexport function getResponsiveHeaderHeight(screenSize: ScreenSize): number {\n return BASE_LAYOUT_VALUES.headerHeight[screenSize];\n}\n\n/**\n * Calculate responsive footer height value\n * \n * @param screenSize - Current screen size category\n * @returns Calculated footer height in pixels\n * \n */\nexport function getResponsiveFooterHeight(screenSize: ScreenSize): number {\n return BASE_LAYOUT_VALUES.footerHeight[screenSize];\n}\n\n/**\n * Calculate responsive section spacing value\n * \n * @param screenSize - Current screen size category\n * @returns Calculated section spacing in pixels\n * \n */\nexport function getResponsiveSectionSpacing(screenSize: ScreenSize): number {\n return BASE_LAYOUT_VALUES.sectionSpacing[screenSize];\n}\n\n/**\n * Calculate responsive button area value\n * \n * @param screenSize - Current screen size category\n * @returns Calculated button area in pixels\n * \n */\nexport function getResponsiveButtonArea(screenSize: ScreenSize): number {\n return BASE_LAYOUT_VALUES.buttonArea[screenSize];\n}\n\n/**\n * Get all layout constants for a given screen size\n * Convenient helper that returns all layout values at once\n * \n * @param width - Screen width in pixels\n * @returns Object with all layout constant values\n * \n */\nexport function getLayoutConstants(width: number) {\n const screenSize = getScreenSize(width);\n \n return {\n padding: getResponsivePadding(screenSize),\n headerHeight: getResponsiveHeaderHeight(screenSize),\n footerHeight: getResponsiveFooterHeight(screenSize),\n sectionSpacing: getResponsiveSectionSpacing(screenSize),\n buttonArea: getResponsiveButtonArea(screenSize),\n };\n}\n\n/**\n * Get combat-specific layout constants for a given screen size\n * \n * Optimized for narrow devices (<450px), with extra-small device support\n * explicitly tuned for ultra-small screens (<380px) like iPhone SE, old\n * Android phones, and budget smartphones.\n * \n * Now properly handles high-resolution mobile devices (2K+, Super HD) by\n * checking isMobile flag to ensure they get mobile-optimized layout values\n * regardless of pixel width.\n * \n * @param width - Screen width in pixels\n * @param isMobile - Optional: Whether device is mobile (from user-agent detection)\n * @returns Object with combat layout constant values\n * \n */\nexport function getCombatLayoutConstants(width: number, isMobile?: boolean) {\n // For mobile devices, force 'mobile' screen size regardless of pixel width\n // This ensures high-res mobile devices (2K+) get mobile-optimized layouts\n const screenSize = isMobile ? 'mobile' : getScreenSize(width);\n \n // Extra-small detection for low-end mobile devices (<380px)\n const isExtraSmall = isMobile && width < 380;\n \n // Combat screen uses different base values for compact HUD\n const hudHeightMap = {\n mobile: isExtraSmall ? 85 : 95,\n tablet: 100,\n desktop: 130,\n large: 135,\n xlarge: 140,\n };\n \n // Note: Tablet optimizations - controlsHeight and footerHeight are intentionally\n // smaller on tablets than mobile for better landscape orientation ergonomics.\n // Mobile (portrait) needs taller controls for thumb reach, while tablets\n // (often landscape) can use more compact controls with better screen utilization.\n const controlsHeightMap = {\n mobile: isExtraSmall ? 150 : 160, // Taller for portrait thumb reach\n tablet: 140, // Optimized for landscape - more compact\n desktop: 170,\n large: 175,\n xlarge: 180,\n };\n \n const footerHeightMap = {\n mobile: 34, // Adequate for portrait orientation\n tablet: 30, // Optimized for landscape - more compact\n desktop: 35,\n large: 37,\n xlarge: 40,\n };\n \n const healthBarHeightMap = {\n mobile: 48,\n tablet: 50,\n desktop: 65,\n large: 67,\n xlarge: 70,\n };\n \n // Touch target heights - WCAG AA compliance (minimum 44px)\n const buttonHeightMap = {\n mobile: isExtraSmall ? 48 : 55, // Minimum 48px for extra-small\n tablet: 55,\n desktop: 60,\n large: 60,\n xlarge: 60,\n };\n \n return {\n padding: isExtraSmall ? 8 : 10, // Reduced padding for extra-small\n hudHeight: hudHeightMap[screenSize],\n controlsHeight: controlsHeightMap[screenSize],\n footerHeight: footerHeightMap[screenSize],\n healthBarHeight: healthBarHeightMap[screenSize],\n buttonHeight: buttonHeightMap[screenSize],\n };\n}\n"],"mappings":";;;;;;;;;;;;;;AAgBA,IAAM,4BAA4B;;;;;;;AAQlC,IAAM,6BAA6B;;;;;;;;AASnC,SAAgB,2BAA2B,OAAuB;CAChE,OAAO,KAAK,IAAI,QAAQ,2BAA2B,2BAA2B;;;;;;AAOhF,IAAM,qBAAqB;CAEzB,SAAS;EACP,QAAQ;EACR,QAAQ;EACR,SAAS;EACT,OAAO;EACP,QAAQ;EACT;CAED,cAAc;EACZ,QAAQ;EACR,QAAQ;EACR,SAAS;EACT,OAAO;EACP,QAAQ;EACT;CAED,cAAc;EACZ,QAAQ;EACR,QAAQ;EACR,SAAS;EACT,OAAO;EACP,QAAQ;EACT;CAED,gBAAgB;EACd,QAAQ;EACR,QAAQ;EACR,SAAS;EACT,OAAO;EACP,QAAQ;EACT;CAED,YAAY;EACV,QAAQ;EACR,QAAQ;EACR,SAAS;EACT,OAAO;EACP,QAAQ;EACT;CACF;;;;;;;;AASD,SAAgB,qBAAqB,YAAgC;CACnE,OAAO,mBAAmB,QAAQ;;;;;;;;;AAUpC,SAAgB,0BAA0B,YAAgC;CACxE,OAAO,mBAAmB,aAAa;;;;;;;;;AAUzC,SAAgB,0BAA0B,YAAgC;CACxE,OAAO,mBAAmB,aAAa;;;;;;;;;AAUzC,SAAgB,4BAA4B,YAAgC;CAC1E,OAAO,mBAAmB,eAAe;;;;;;;;;AAU3C,SAAgB,wBAAwB,YAAgC;CACtE,OAAO,mBAAmB,WAAW;;;;;;;;;;AAWvC,SAAgB,mBAAmB,OAAe;CAChD,MAAM,aAAa,cAAc,MAAM;CAEvC,OAAO;EACL,SAAS,qBAAqB,WAAW;EACzC,cAAc,0BAA0B,WAAW;EACnD,cAAc,0BAA0B,WAAW;EACnD,gBAAgB,4BAA4B,WAAW;EACvD,YAAY,wBAAwB,WAAW;EAChD;;;;;;;;;;;;;;;;;;AAmBH,SAAgB,yBAAyB,OAAe,UAAoB;CAG1E,MAAM,aAAa,WAAW,WAAW,cAAc,MAAM;CAG7D,MAAM,eAAe,YAAY,QAAQ;CAGzC,MAAM,eAAe;EACnB,QAAQ,eAAe,KAAK;EAC5B,QAAQ;EACR,SAAS;EACT,OAAO;EACP,QAAQ;EACT;CAMD,MAAM,oBAAoB;EACxB,QAAQ,eAAe,MAAM;EAC7B,QAAQ;EACR,SAAS;EACT,OAAO;EACP,QAAQ;EACT;CAED,MAAM,kBAAkB;EACtB,QAAQ;EACR,QAAQ;EACR,SAAS;EACT,OAAO;EACP,QAAQ;EACT;CAED,MAAM,qBAAqB;EACzB,QAAQ;EACR,QAAQ;EACR,SAAS;EACT,OAAO;EACP,QAAQ;EACT;CAGD,MAAM,kBAAkB;EACtB,QAAQ,eAAe,KAAK;EAC5B,QAAQ;EACR,SAAS;EACT,OAAO;EACP,QAAQ;EACT;CAED,OAAO;EACL,SAAS,eAAe,IAAI;EAC5B,WAAW,aAAa;EACxB,gBAAgB,kBAAkB;EAClC,cAAc,gBAAgB;EAC9B,iBAAiB,mBAAmB;EACpC,cAAc,gBAAgB;EAC/B"}
@@ -17,7 +17,6 @@
17
17
  * factor is < 1.0 so near-square viewports (e.g. `1024×1000`) settle into
18
18
  * one orientation and don't flap on every pixel of resize.
19
19
  *
20
- * @public
21
20
  */
22
21
  export declare const PORTRAIT_HYSTERESIS_FACTOR = 0.9;
23
22
  /**
@@ -28,7 +27,6 @@ export declare const PORTRAIT_HYSTERESIS_FACTOR = 0.9;
28
27
  * This makes devtools emulation of a rotated phone/tablet behave identically
29
28
  * to a real device.
30
29
  *
31
- * @public
32
30
  */
33
31
  export declare const PORTRAIT_FORCE_MAX_WIDTH_PX = 1024;
34
32
  /**
@@ -44,7 +42,6 @@ export declare const PORTRAIT_FORCE_MAX_WIDTH_PX = 1024;
44
42
  * D-Pad + action buttons + the persistent technique bar. Training uses
45
43
  * the smaller 180/140 band because its on-screen controls are lighter.
46
44
  *
47
- * @public
48
45
  */
49
46
  export declare const MOBILE_CONTROLS_RESERVED_HEIGHT_PX: {
50
47
  /** D-Pad + action buttons + technique bar on combat (standard phones) */
@@ -63,7 +60,6 @@ export declare const MOBILE_CONTROLS_RESERVED_HEIGHT_PX: {
63
60
  * compact values reserve only the visible bottom technique/control band while
64
61
  * still keeping the 3D arena above touch controls.
65
62
  *
66
- * @public
67
63
  */
68
64
  export declare const LANDSCAPE_MOBILE_CONTROLS_BOTTOM_CLEARANCE_PX: {
69
65
  /** Combat bottom band on landscape phones */
@@ -84,7 +80,6 @@ export declare const LANDSCAPE_MOBILE_CONTROLS_BOTTOM_CLEARANCE_PX: {
84
80
  * @param isExtraSmall - true when the viewport is < 380px wide
85
81
  * @param variant - "combat" or "training" (differs in control band size)
86
82
  *
87
- * @public
88
83
  */
89
84
  export declare function portraitMobileControlsBottomBand(controlsHeight: number, footerHeight: number, isExtraSmall: boolean, variant: "combat" | "training"): number;
90
85
  /**
@@ -93,7 +88,6 @@ export declare function portraitMobileControlsBottomBand(controlsHeight: number,
93
88
  * @param isExtraSmall - true when the viewport is < 380px wide
94
89
  * @param variant - "combat" or "training"
95
90
  *
96
- * @public
97
91
  */
98
92
  export declare function landscapeMobileControlsBottomClearance(isExtraSmall: boolean, variant: "combat" | "training"): number;
99
93
  /**
@@ -109,7 +103,6 @@ export declare function landscapeMobileControlsBottomClearance(isExtraSmall: boo
109
103
  * @param isPortrait - true for portrait orientation
110
104
  * @param variant - "combat" or "training"
111
105
  *
112
- * @public
113
106
  */
114
107
  export declare function mobileControlsBottomClearance(controlsHeight: number, footerHeight: number, isExtraSmall: boolean, isPortrait: boolean, variant: "combat" | "training"): number;
115
108
  //# sourceMappingURL=responsiveOrientationConstants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"responsiveOrientationConstants.d.ts","sourceRoot":"","sources":["../../src/utils/responsiveOrientationConstants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,kCAAkC;IAC7C,yEAAyE;;IAEzE,0DAA0D;;IAE1D,oDAAoD;;IAEpD,uDAAuD;;CAE/C,CAAC;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,6CAA6C;IACxD,6CAA6C;;IAE7C,yDAAyD;;IAEzD,+CAA+C;;IAE/C,2DAA2D;;CAEnD,CAAC;AAEX;;;;;;;;;;GAUG;AACH,wBAAgB,gCAAgC,CAC9C,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,OAAO,EACrB,OAAO,EAAE,QAAQ,GAAG,UAAU,GAC7B,MAAM,CAWR;AAED;;;;;;;GAOG;AACH,wBAAgB,sCAAsC,CACpD,YAAY,EAAE,OAAO,EACrB,OAAO,EAAE,QAAQ,GAAG,UAAU,GAC7B,MAAM,CAUR;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,6BAA6B,CAC3C,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,OAAO,EACnB,OAAO,EAAE,QAAQ,GAAG,UAAU,GAC7B,MAAM,CASR"}
1
+ {"version":3,"file":"responsiveOrientationConstants.d.ts","sourceRoot":"","sources":["../../src/utils/responsiveOrientationConstants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kCAAkC;IAC7C,yEAAyE;;IAEzE,0DAA0D;;IAE1D,oDAAoD;;IAEpD,uDAAuD;;CAE/C,CAAC;AAEX;;;;;;;GAOG;AACH,eAAO,MAAM,6CAA6C;IACxD,6CAA6C;;IAE7C,yDAAyD;;IAEzD,+CAA+C;;IAE/C,2DAA2D;;CAEnD,CAAC;AAEX;;;;;;;;;GASG;AACH,wBAAgB,gCAAgC,CAC9C,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,OAAO,EACrB,OAAO,EAAE,QAAQ,GAAG,UAAU,GAC7B,MAAM,CAWR;AAED;;;;;;GAMG;AACH,wBAAgB,sCAAsC,CACpD,YAAY,EAAE,OAAO,EACrB,OAAO,EAAE,QAAQ,GAAG,UAAU,GAC7B,MAAM,CAUR;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,6BAA6B,CAC3C,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,OAAO,EACnB,OAAO,EAAE,QAAQ,GAAG,UAAU,GAC7B,MAAM,CASR"}
@@ -18,7 +18,6 @@
18
18
  * factor is < 1.0 so near-square viewports (e.g. `1024×1000`) settle into
19
19
  * one orientation and don't flap on every pixel of resize.
20
20
  *
21
- * @public
22
21
  */
23
22
  var PORTRAIT_HYSTERESIS_FACTOR = .9;
24
23
  /**
@@ -29,7 +28,6 @@ var PORTRAIT_HYSTERESIS_FACTOR = .9;
29
28
  * This makes devtools emulation of a rotated phone/tablet behave identically
30
29
  * to a real device.
31
30
  *
32
- * @public
33
31
  */
34
32
  var PORTRAIT_FORCE_MAX_WIDTH_PX = 1024;
35
33
  /**
@@ -45,7 +43,6 @@ var PORTRAIT_FORCE_MAX_WIDTH_PX = 1024;
45
43
  * D-Pad + action buttons + the persistent technique bar. Training uses
46
44
  * the smaller 180/140 band because its on-screen controls are lighter.
47
45
  *
48
- * @public
49
46
  */
50
47
  var MOBILE_CONTROLS_RESERVED_HEIGHT_PX = {
51
48
  /** D-Pad + action buttons + technique bar on combat (standard phones) */
@@ -64,7 +61,6 @@ var MOBILE_CONTROLS_RESERVED_HEIGHT_PX = {
64
61
  * compact values reserve only the visible bottom technique/control band while
65
62
  * still keeping the 3D arena above touch controls.
66
63
  *
67
- * @public
68
64
  */
69
65
  var LANDSCAPE_MOBILE_CONTROLS_BOTTOM_CLEARANCE_PX = {
70
66
  /** Combat bottom band on landscape phones */
@@ -85,7 +81,6 @@ var LANDSCAPE_MOBILE_CONTROLS_BOTTOM_CLEARANCE_PX = {
85
81
  * @param isExtraSmall - true when the viewport is < 380px wide
86
82
  * @param variant - "combat" or "training" (differs in control band size)
87
83
  *
88
- * @public
89
84
  */
90
85
  function portraitMobileControlsBottomBand(controlsHeight, footerHeight, isExtraSmall, variant) {
91
86
  const band = variant === "combat" ? isExtraSmall ? MOBILE_CONTROLS_RESERVED_HEIGHT_PX.combatExtraSmall : MOBILE_CONTROLS_RESERVED_HEIGHT_PX.combatStandard : isExtraSmall ? MOBILE_CONTROLS_RESERVED_HEIGHT_PX.trainingExtraSmall : MOBILE_CONTROLS_RESERVED_HEIGHT_PX.trainingStandard;
@@ -97,7 +92,6 @@ function portraitMobileControlsBottomBand(controlsHeight, footerHeight, isExtraS
97
92
  * @param isExtraSmall - true when the viewport is < 380px wide
98
93
  * @param variant - "combat" or "training"
99
94
  *
100
- * @public
101
95
  */
102
96
  function landscapeMobileControlsBottomClearance(isExtraSmall, variant) {
103
97
  if (variant === "combat") return isExtraSmall ? LANDSCAPE_MOBILE_CONTROLS_BOTTOM_CLEARANCE_PX.combatExtraSmall : LANDSCAPE_MOBILE_CONTROLS_BOTTOM_CLEARANCE_PX.combatStandard;
@@ -116,7 +110,6 @@ function landscapeMobileControlsBottomClearance(isExtraSmall, variant) {
116
110
  * @param isPortrait - true for portrait orientation
117
111
  * @param variant - "combat" or "training"
118
112
  *
119
- * @public
120
113
  */
121
114
  function mobileControlsBottomClearance(controlsHeight, footerHeight, isExtraSmall, isPortrait, variant) {
122
115
  return isPortrait ? portraitMobileControlsBottomBand(controlsHeight, footerHeight, isExtraSmall, variant) : landscapeMobileControlsBottomClearance(isExtraSmall, variant);
@@ -1 +1 @@
1
- {"version":3,"file":"responsiveOrientationConstants.js","names":[],"sources":["../../src/utils/responsiveOrientationConstants.ts"],"sourcesContent":["/**\n * Shared constants for orientation-aware responsive layout.\n *\n * Extracted so that `useCombatLayout` and `useTrainingLayout` compute the\n * same portrait \"bottom band\" and share a single source of truth for the\n * portrait-forcing hysteresis and the reserved control-column heights.\n *\n * 반응형 레이아웃 상수\n *\n * @module utils/responsiveOrientationConstants\n * @category Layout\n */\n\n/**\n * Hysteresis factor for portrait detection.\n *\n * A viewport is treated as portrait when `height > width × FACTOR`. The\n * factor is < 1.0 so near-square viewports (e.g. `1024×1000`) settle into\n * one orientation and don't flap on every pixel of resize.\n *\n * @public\n */\nexport const PORTRAIT_HYSTERESIS_FACTOR = 0.9;\n\n/**\n * Maximum width at which a portrait viewport is force-promoted to the mobile\n * layout branch even if the user-agent reports a desktop browser. Matches the\n * tablet breakpoint used elsewhere in the codebase (1024px).\n *\n * This makes devtools emulation of a rotated phone/tablet behave identically\n * to a real device.\n *\n * @public\n */\nexport const PORTRAIT_FORCE_MAX_WIDTH_PX = 1024;\n\n/**\n * Height reserved at the bottom of a mobile portrait viewport for the\n * on-screen virtual controls (D-Pad + action buttons rendered by\n * `MobileControlsWrapper`). Used as a conservative upper bound so the\n * 3D arena never ends up drawn behind the controls.\n *\n * Two values are provided so that very small phones (iPhone SE class,\n * width < 380) can still fit a playable arena.\n *\n * Combat uses the larger 200/160 band because its Mobile controls stack\n * D-Pad + action buttons + the persistent technique bar. Training uses\n * the smaller 180/140 band because its on-screen controls are lighter.\n *\n * @public\n */\nexport const MOBILE_CONTROLS_RESERVED_HEIGHT_PX = {\n /** D-Pad + action buttons + technique bar on combat (standard phones) */\n combatStandard: 200,\n /** Combat controls on extra-small phones (width < 380) */\n combatExtraSmall: 160,\n /** Training on-screen controls (standard phones) */\n trainingStandard: 180,\n /** Training on-screen controls (extra-small phones) */\n trainingExtraSmall: 140,\n} as const;\n\n/**\n * Height reserved at the bottom of mobile landscape viewports.\n *\n * Landscape devices have less vertical room than portrait phones, so these\n * compact values reserve only the visible bottom technique/control band while\n * still keeping the 3D arena above touch controls.\n *\n * @public\n */\nexport const LANDSCAPE_MOBILE_CONTROLS_BOTTOM_CLEARANCE_PX = {\n /** Combat bottom band on landscape phones */\n combatStandard: 120,\n /** Combat bottom band on extra-small landscape phones */\n combatExtraSmall: 110,\n /** Training bottom band on landscape phones */\n trainingStandard: 120,\n /** Training bottom band on extra-small landscape phones */\n trainingExtraSmall: 110,\n} as const;\n\n/**\n * Total bottom clearance to reserve in portrait mode = control/technique\n * bar height + footer height + the on-screen virtual controls band.\n *\n * @param controlsHeight - layout constant for technique/control bar\n * @param footerHeight - layout constant for footer\n * @param isExtraSmall - true when the viewport is < 380px wide\n * @param variant - \"combat\" or \"training\" (differs in control band size)\n *\n * @public\n */\nexport function portraitMobileControlsBottomBand(\n controlsHeight: number,\n footerHeight: number,\n isExtraSmall: boolean,\n variant: \"combat\" | \"training\",\n): number {\n const band =\n variant === \"combat\"\n ? isExtraSmall\n ? MOBILE_CONTROLS_RESERVED_HEIGHT_PX.combatExtraSmall\n : MOBILE_CONTROLS_RESERVED_HEIGHT_PX.combatStandard\n : isExtraSmall\n ? MOBILE_CONTROLS_RESERVED_HEIGHT_PX.trainingExtraSmall\n : MOBILE_CONTROLS_RESERVED_HEIGHT_PX.trainingStandard;\n\n return controlsHeight + footerHeight + band;\n}\n\n/**\n * Bottom clearance for mobile landscape viewports.\n *\n * @param isExtraSmall - true when the viewport is < 380px wide\n * @param variant - \"combat\" or \"training\"\n *\n * @public\n */\nexport function landscapeMobileControlsBottomClearance(\n isExtraSmall: boolean,\n variant: \"combat\" | \"training\",\n): number {\n if (variant === \"combat\") {\n return isExtraSmall\n ? LANDSCAPE_MOBILE_CONTROLS_BOTTOM_CLEARANCE_PX.combatExtraSmall\n : LANDSCAPE_MOBILE_CONTROLS_BOTTOM_CLEARANCE_PX.combatStandard;\n }\n\n return isExtraSmall\n ? LANDSCAPE_MOBILE_CONTROLS_BOTTOM_CLEARANCE_PX.trainingExtraSmall\n : LANDSCAPE_MOBILE_CONTROLS_BOTTOM_CLEARANCE_PX.trainingStandard;\n}\n\n/**\n * Orientation-aware bottom clearance for mobile combat/training arenas.\n *\n * Keeps callers from duplicating portrait-vs-landscape clearance rules while\n * preserving the compact landscape band and the full portrait touch-control\n * reservation.\n *\n * @param controlsHeight - layout constant for technique/control bar\n * @param footerHeight - layout constant for footer\n * @param isExtraSmall - true when the viewport is < 380px wide\n * @param isPortrait - true for portrait orientation\n * @param variant - \"combat\" or \"training\"\n *\n * @public\n */\nexport function mobileControlsBottomClearance(\n controlsHeight: number,\n footerHeight: number,\n isExtraSmall: boolean,\n isPortrait: boolean,\n variant: \"combat\" | \"training\",\n): number {\n return isPortrait\n ? portraitMobileControlsBottomBand(\n controlsHeight,\n footerHeight,\n isExtraSmall,\n variant,\n )\n : landscapeMobileControlsBottomClearance(isExtraSmall, variant);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAsBA,IAAa,6BAA6B;;;;;;;;;;;AAY1C,IAAa,8BAA8B;;;;;;;;;;;;;;;;AAiB3C,IAAa,qCAAqC;;CAEhD,gBAAgB;;CAEhB,kBAAkB;;CAElB,kBAAkB;;CAElB,oBAAoB;CACrB;;;;;;;;;;AAWD,IAAa,gDAAgD;;CAE3D,gBAAgB;;CAEhB,kBAAkB;;CAElB,kBAAkB;;CAElB,oBAAoB;CACrB;;;;;;;;;;;;AAaD,SAAgB,iCACd,gBACA,cACA,cACA,SACQ;CACR,MAAM,OACJ,YAAY,WACR,eACE,mCAAmC,mBACnC,mCAAmC,iBACrC,eACE,mCAAmC,qBACnC,mCAAmC;CAE3C,OAAO,iBAAiB,eAAe;;;;;;;;;;AAWzC,SAAgB,uCACd,cACA,SACQ;CACR,IAAI,YAAY,UACd,OAAO,eACH,8CAA8C,mBAC9C,8CAA8C;CAGpD,OAAO,eACH,8CAA8C,qBAC9C,8CAA8C;;;;;;;;;;;;;;;;;AAkBpD,SAAgB,8BACd,gBACA,cACA,cACA,YACA,SACQ;CACR,OAAO,aACH,iCACE,gBACA,cACA,cACA,QACD,GACD,uCAAuC,cAAc,QAAQ"}
1
+ {"version":3,"file":"responsiveOrientationConstants.js","names":[],"sources":["../../src/utils/responsiveOrientationConstants.ts"],"sourcesContent":["/**\n * Shared constants for orientation-aware responsive layout.\n *\n * Extracted so that `useCombatLayout` and `useTrainingLayout` compute the\n * same portrait \"bottom band\" and share a single source of truth for the\n * portrait-forcing hysteresis and the reserved control-column heights.\n *\n * 반응형 레이아웃 상수\n *\n * @module utils/responsiveOrientationConstants\n * @category Layout\n */\n\n/**\n * Hysteresis factor for portrait detection.\n *\n * A viewport is treated as portrait when `height > width × FACTOR`. The\n * factor is < 1.0 so near-square viewports (e.g. `1024×1000`) settle into\n * one orientation and don't flap on every pixel of resize.\n *\n */\nexport const PORTRAIT_HYSTERESIS_FACTOR = 0.9;\n\n/**\n * Maximum width at which a portrait viewport is force-promoted to the mobile\n * layout branch even if the user-agent reports a desktop browser. Matches the\n * tablet breakpoint used elsewhere in the codebase (1024px).\n *\n * This makes devtools emulation of a rotated phone/tablet behave identically\n * to a real device.\n *\n */\nexport const PORTRAIT_FORCE_MAX_WIDTH_PX = 1024;\n\n/**\n * Height reserved at the bottom of a mobile portrait viewport for the\n * on-screen virtual controls (D-Pad + action buttons rendered by\n * `MobileControlsWrapper`). Used as a conservative upper bound so the\n * 3D arena never ends up drawn behind the controls.\n *\n * Two values are provided so that very small phones (iPhone SE class,\n * width < 380) can still fit a playable arena.\n *\n * Combat uses the larger 200/160 band because its Mobile controls stack\n * D-Pad + action buttons + the persistent technique bar. Training uses\n * the smaller 180/140 band because its on-screen controls are lighter.\n *\n */\nexport const MOBILE_CONTROLS_RESERVED_HEIGHT_PX = {\n /** D-Pad + action buttons + technique bar on combat (standard phones) */\n combatStandard: 200,\n /** Combat controls on extra-small phones (width < 380) */\n combatExtraSmall: 160,\n /** Training on-screen controls (standard phones) */\n trainingStandard: 180,\n /** Training on-screen controls (extra-small phones) */\n trainingExtraSmall: 140,\n} as const;\n\n/**\n * Height reserved at the bottom of mobile landscape viewports.\n *\n * Landscape devices have less vertical room than portrait phones, so these\n * compact values reserve only the visible bottom technique/control band while\n * still keeping the 3D arena above touch controls.\n *\n */\nexport const LANDSCAPE_MOBILE_CONTROLS_BOTTOM_CLEARANCE_PX = {\n /** Combat bottom band on landscape phones */\n combatStandard: 120,\n /** Combat bottom band on extra-small landscape phones */\n combatExtraSmall: 110,\n /** Training bottom band on landscape phones */\n trainingStandard: 120,\n /** Training bottom band on extra-small landscape phones */\n trainingExtraSmall: 110,\n} as const;\n\n/**\n * Total bottom clearance to reserve in portrait mode = control/technique\n * bar height + footer height + the on-screen virtual controls band.\n *\n * @param controlsHeight - layout constant for technique/control bar\n * @param footerHeight - layout constant for footer\n * @param isExtraSmall - true when the viewport is < 380px wide\n * @param variant - \"combat\" or \"training\" (differs in control band size)\n *\n */\nexport function portraitMobileControlsBottomBand(\n controlsHeight: number,\n footerHeight: number,\n isExtraSmall: boolean,\n variant: \"combat\" | \"training\",\n): number {\n const band =\n variant === \"combat\"\n ? isExtraSmall\n ? MOBILE_CONTROLS_RESERVED_HEIGHT_PX.combatExtraSmall\n : MOBILE_CONTROLS_RESERVED_HEIGHT_PX.combatStandard\n : isExtraSmall\n ? MOBILE_CONTROLS_RESERVED_HEIGHT_PX.trainingExtraSmall\n : MOBILE_CONTROLS_RESERVED_HEIGHT_PX.trainingStandard;\n\n return controlsHeight + footerHeight + band;\n}\n\n/**\n * Bottom clearance for mobile landscape viewports.\n *\n * @param isExtraSmall - true when the viewport is < 380px wide\n * @param variant - \"combat\" or \"training\"\n *\n */\nexport function landscapeMobileControlsBottomClearance(\n isExtraSmall: boolean,\n variant: \"combat\" | \"training\",\n): number {\n if (variant === \"combat\") {\n return isExtraSmall\n ? LANDSCAPE_MOBILE_CONTROLS_BOTTOM_CLEARANCE_PX.combatExtraSmall\n : LANDSCAPE_MOBILE_CONTROLS_BOTTOM_CLEARANCE_PX.combatStandard;\n }\n\n return isExtraSmall\n ? LANDSCAPE_MOBILE_CONTROLS_BOTTOM_CLEARANCE_PX.trainingExtraSmall\n : LANDSCAPE_MOBILE_CONTROLS_BOTTOM_CLEARANCE_PX.trainingStandard;\n}\n\n/**\n * Orientation-aware bottom clearance for mobile combat/training arenas.\n *\n * Keeps callers from duplicating portrait-vs-landscape clearance rules while\n * preserving the compact landscape band and the full portrait touch-control\n * reservation.\n *\n * @param controlsHeight - layout constant for technique/control bar\n * @param footerHeight - layout constant for footer\n * @param isExtraSmall - true when the viewport is < 380px wide\n * @param isPortrait - true for portrait orientation\n * @param variant - \"combat\" or \"training\"\n *\n */\nexport function mobileControlsBottomClearance(\n controlsHeight: number,\n footerHeight: number,\n isExtraSmall: boolean,\n isPortrait: boolean,\n variant: \"combat\" | \"training\",\n): number {\n return isPortrait\n ? portraitMobileControlsBottomBand(\n controlsHeight,\n footerHeight,\n isExtraSmall,\n variant,\n )\n : landscapeMobileControlsBottomClearance(isExtraSmall, variant);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA,IAAa,6BAA6B;;;;;;;;;;AAW1C,IAAa,8BAA8B;;;;;;;;;;;;;;;AAgB3C,IAAa,qCAAqC;;CAEhD,gBAAgB;;CAEhB,kBAAkB;;CAElB,kBAAkB;;CAElB,oBAAoB;CACrB;;;;;;;;;AAUD,IAAa,gDAAgD;;CAE3D,gBAAgB;;CAEhB,kBAAkB;;CAElB,kBAAkB;;CAElB,oBAAoB;CACrB;;;;;;;;;;;AAYD,SAAgB,iCACd,gBACA,cACA,cACA,SACQ;CACR,MAAM,OACJ,YAAY,WACR,eACE,mCAAmC,mBACnC,mCAAmC,iBACrC,eACE,mCAAmC,qBACnC,mCAAmC;CAE3C,OAAO,iBAAiB,eAAe;;;;;;;;;AAUzC,SAAgB,uCACd,cACA,SACQ;CACR,IAAI,YAAY,UACd,OAAO,eACH,8CAA8C,mBAC9C,8CAA8C;CAGpD,OAAO,eACH,8CAA8C,qBAC9C,8CAA8C;;;;;;;;;;;;;;;;AAiBpD,SAAgB,8BACd,gBACA,cACA,cACA,YACA,SACQ;CACR,OAAO,aACH,iCACE,gBACA,cACA,cACA,QACD,GACD,uCAAuC,cAAc,QAAQ"}
@@ -29,7 +29,6 @@ export type SafeAreaEdge = "top" | "bottom" | "left" | "right";
29
29
  * getSafeAreaInset('bottom', 20); // "env(safe-area-inset-bottom, 20px)"
30
30
  * ```
31
31
  *
32
- * @public
33
32
  * @korean 안전영역삽입얻기
34
33
  */
35
34
  export declare function getSafeAreaInset(edge: SafeAreaEdge, fallback?: number): string;
@@ -50,7 +49,6 @@ export declare function getSafeAreaInset(edge: SafeAreaEdge, fallback?: number):
50
49
  * // }
51
50
  * ```
52
51
  *
53
- * @public
54
52
  * @korean 안전영역패딩얻기
55
53
  */
56
54
  export declare function getSafeAreaPadding(edges: readonly SafeAreaEdge[], additionalPadding?: number): Partial<Record<`padding${Capitalize<SafeAreaEdge>}`, string>>;
@@ -68,7 +66,6 @@ export declare function getSafeAreaPadding(edges: readonly SafeAreaEdge[], addit
68
66
  * // "calc(20px + env(safe-area-inset-bottom, 34px))"
69
67
  * ```
70
68
  *
71
- * @public
72
69
  * @korean 안전영역위치얻기
73
70
  */
74
71
  export declare function getSafeAreaPosition(edge: SafeAreaEdge, baseOffset?: number): string;
@@ -85,7 +82,6 @@ export declare function getSafeAreaPosition(edge: SafeAreaEdge, baseOffset?: num
85
82
  * // "calc(100vh - env(safe-area-inset-top, 44px) - env(safe-area-inset-bottom, 34px))"
86
83
  * ```
87
84
  *
88
- * @public
89
85
  * @korean 안전영역높이얻기
90
86
  */
91
87
  export declare function getSafeAreaHeight(excludeEdges: readonly SafeAreaEdge[]): string;
@@ -102,7 +98,6 @@ export declare function getSafeAreaHeight(excludeEdges: readonly SafeAreaEdge[])
102
98
  * }
103
99
  * ```
104
100
  *
105
- * @public
106
101
  * @korean 안전영역삽입여부
107
102
  */
108
103
  export declare function hasSafeAreaInsets(): boolean;
@@ -122,7 +117,6 @@ export declare function hasSafeAreaInsets(): boolean;
122
117
  * });
123
118
  * ```
124
119
  *
125
- * @public
126
120
  * @korean 안전영역스타일얻기
127
121
  */
128
122
  export declare function getSafeAreaStyles(options: {
@@ -1 +1 @@
1
- {"version":3,"file":"safeAreaUtils.d.ts","sourceRoot":"","sources":["../../src/utils/safeAreaUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAE/D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,YAAY,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAYR;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,iBAAiB,SAAI,GACpB,OAAO,CAAC,MAAM,CAAC,UAAU,UAAU,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAa/D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,YAAY,EAClB,UAAU,SAAI,GACb,MAAM,CAER;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,SAAS,YAAY,EAAE,GACpC,MAAM,CAGR;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAgB3C;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAChD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;CACrD,GAAG,KAAK,CAAC,aAAa,CAStB"}
1
+ {"version":3,"file":"safeAreaUtils.d.ts","sourceRoot":"","sources":["../../src/utils/safeAreaUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAE/D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,YAAY,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAYR;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,iBAAiB,SAAI,GACpB,OAAO,CAAC,MAAM,CAAC,UAAU,UAAU,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAa/D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,YAAY,EAClB,UAAU,SAAI,GACb,MAAM,CAER;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,SAAS,YAAY,EAAE,GACpC,MAAM,CAGR;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAgB3C;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAChD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;CACrD,GAAG,KAAK,CAAC,aAAa,CAStB"}
@@ -24,7 +24,6 @@ import { SAFE_AREA_INSETS } from "../types/constants/ui.js";
24
24
  * getSafeAreaInset('bottom', 20); // "env(safe-area-inset-bottom, 20px)"
25
25
  * ```
26
26
  *
27
- * @public
28
27
  * @korean 안전영역삽입얻기
29
28
  */
30
29
  function getSafeAreaInset(edge, fallback) {
@@ -48,7 +47,6 @@ function getSafeAreaInset(edge, fallback) {
48
47
  * // }
49
48
  * ```
50
49
  *
51
- * @public
52
50
  * @korean 안전영역패딩얻기
53
51
  */
54
52
  function getSafeAreaPadding(edges, additionalPadding = 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"safeAreaUtils.js","names":[],"sources":["../../src/utils/safeAreaUtils.ts"],"sourcesContent":["/**\n * Safe area utilities for handling notched devices\n * \n * Provides CSS safe area inset helpers for iOS and Android devices\n * with notches, home indicators, and other screen intrusions.\n * \n * @module utils/safeAreaUtils\n * @category UI Utilities\n * @korean 안전영역유틸리티\n */\n\nimport { SAFE_AREA_INSETS } from \"../types/constants/ui\";\n\n/**\n * Safe area edge types\n * \n * @category Safe Area\n * @korean 안전영역가장자리타입\n */\nexport type SafeAreaEdge = \"top\" | \"bottom\" | \"left\" | \"right\";\n\n/**\n * Get CSS safe area inset with fallback\n * Returns CSS `env()` with fallback to constant values\n * \n * @param edge - Which edge to get inset for\n * @param fallback - Optional custom fallback value in pixels\n * @returns CSS string with env() and fallback\n * \n * @example\n * ```typescript\n * getSafeAreaInset('top'); // \"env(safe-area-inset-top, 44px)\"\n * getSafeAreaInset('bottom', 20); // \"env(safe-area-inset-bottom, 20px)\"\n * ```\n * \n * @public\n * @korean 안전영역삽입얻기\n */\nexport function getSafeAreaInset(\n edge: SafeAreaEdge,\n fallback?: number\n): string {\n const defaultFallback =\n edge === \"top\"\n ? SAFE_AREA_INSETS.TOP\n : edge === \"bottom\"\n ? SAFE_AREA_INSETS.BOTTOM\n : edge === \"left\"\n ? SAFE_AREA_INSETS.LEFT\n : SAFE_AREA_INSETS.RIGHT;\n\n const fallbackValue = fallback ?? defaultFallback;\n return `env(safe-area-inset-${edge}, ${fallbackValue}px)`;\n}\n\n/**\n * Get safe area padding for a container\n * Returns CSS padding object with safe area support\n * \n * @param edges - Which edges to apply safe area padding\n * @param additionalPadding - Additional padding to add (in pixels)\n * @returns CSS padding object\n * \n * @example\n * ```typescript\n * getSafeAreaPadding(['top', 'bottom'], 16);\n * // {\n * // paddingTop: \"max(16px, env(safe-area-inset-top))\",\n * // paddingBottom: \"max(16px, env(safe-area-inset-bottom))\"\n * // }\n * ```\n * \n * @public\n * @korean 안전영역패딩얻기\n */\nexport function getSafeAreaPadding(\n edges: readonly SafeAreaEdge[],\n additionalPadding = 0\n): Partial<Record<`padding${Capitalize<SafeAreaEdge>}`, string>> {\n const result: Partial<Record<`padding${Capitalize<SafeAreaEdge>}`, string>> =\n {};\n\n for (const edge of edges) {\n const capitalizedEdge =\n (edge.charAt(0).toUpperCase() + edge.slice(1)) as Capitalize<SafeAreaEdge>;\n const key = `padding${capitalizedEdge}` as const;\n\n result[key] = `max(${additionalPadding}px, ${getSafeAreaInset(edge)})`;\n }\n\n return result;\n}\n\n/**\n * Get safe area aware positioning styles\n * Useful for fixed/absolute positioned elements\n * \n * @param edge - Which edge to position from\n * @param baseOffset - Base offset in pixels\n * @returns CSS positioning string\n * \n * @example\n * ```typescript\n * getSafeAreaPosition('bottom', 20);\n * // \"calc(20px + env(safe-area-inset-bottom, 34px))\"\n * ```\n * \n * @public\n * @korean 안전영역위치얻기\n */\nexport function getSafeAreaPosition(\n edge: SafeAreaEdge,\n baseOffset = 0\n): string {\n return `calc(${baseOffset}px + ${getSafeAreaInset(edge)})`;\n}\n\n/**\n * Get safe area aware height calculation\n * Useful for full-height containers\n * \n * @param excludeEdges - Which edges to exclude from height\n * @returns CSS calc() string for height\n * \n * @example\n * ```typescript\n * getSafeAreaHeight(['top', 'bottom']);\n * // \"calc(100vh - env(safe-area-inset-top, 44px) - env(safe-area-inset-bottom, 34px))\"\n * ```\n * \n * @public\n * @korean 안전영역높이얻기\n */\nexport function getSafeAreaHeight(\n excludeEdges: readonly SafeAreaEdge[]\n): string {\n const insets = excludeEdges.map((edge) => getSafeAreaInset(edge)).join(\" - \");\n return `calc(100vh - ${insets})`;\n}\n\n/**\n * Check if device likely has safe area insets\n * Uses user agent detection (not perfect but useful)\n * \n * @returns Whether device likely has safe area insets\n * \n * @example\n * ```typescript\n * if (hasSafeAreaInsets()) {\n * // Apply safe area styles\n * }\n * ```\n * \n * @public\n * @korean 안전영역삽입여부\n */\nexport function hasSafeAreaInsets(): boolean {\n // Check if CSS env() is supported\n if (typeof CSS !== \"undefined\" && CSS.supports) {\n return CSS.supports(\"padding-top\", \"env(safe-area-inset-top)\");\n }\n\n // Fallback: Check for iPhone X+ user agents\n const ua = navigator.userAgent;\n return (\n /iPhone/.test(ua) &&\n ((screen.width === 375 && screen.height === 812) || // iPhone X, XS, 11 Pro\n (screen.width === 414 && screen.height === 896) || // iPhone XR, XS Max, 11, 11 Pro Max\n (screen.width === 390 && screen.height === 844) || // iPhone 12, 12 Pro, 13, 13 Pro, 14\n (screen.width === 393 && screen.height === 852) || // iPhone 14 Pro\n (screen.width === 428 && screen.height === 926)) // iPhone 12/13/14 Pro Max\n );\n}\n\n/**\n * Get comprehensive safe area styles for a container\n * Combines padding and positioning for complete safe area support\n * \n * @param options - Configuration options\n * @returns React CSSProperties object\n * \n * @example\n * ```typescript\n * const styles = getSafeAreaStyles({\n * applyPadding: ['top', 'bottom'],\n * additionalPadding: 16,\n * position: 'fixed'\n * });\n * ```\n * \n * @public\n * @korean 안전영역스타일얻기\n */\nexport function getSafeAreaStyles(options: {\n readonly applyPadding?: readonly SafeAreaEdge[];\n readonly additionalPadding?: number;\n readonly position?: \"fixed\" | \"absolute\" | \"sticky\";\n}): React.CSSProperties {\n const { applyPadding = [], additionalPadding = 0, position } = options;\n\n const paddingStyles = getSafeAreaPadding(applyPadding, additionalPadding);\n\n return {\n ...paddingStyles,\n ...(position && { position }),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCA,SAAgB,iBACd,MACA,UACQ;CACR,MAAM,kBACJ,SAAS,QACL,iBAAiB,MACjB,SAAS,WACT,iBAAiB,SACjB,SAAS,SACT,iBAAiB,OACjB,iBAAiB;CAGvB,OAAO,uBAAuB,KAAK,IADb,YAAY,gBACmB;;;;;;;;;;;;;;;;;;;;;;AAuBvD,SAAgB,mBACd,OACA,oBAAoB,GAC2C;CAC/D,MAAM,SACJ,EAAE;CAEJ,KAAK,MAAM,QAAQ,OAAO;EAGxB,MAAM,MAAM,UADT,KAAK,OAAO,EAAE,CAAC,aAAa,GAAG,KAAK,MAAM,EAAE;EAG/C,OAAO,OAAO,OAAO,kBAAkB,MAAM,iBAAiB,KAAK,CAAC;;CAGtE,OAAO"}
1
+ {"version":3,"file":"safeAreaUtils.js","names":[],"sources":["../../src/utils/safeAreaUtils.ts"],"sourcesContent":["/**\n * Safe area utilities for handling notched devices\n * \n * Provides CSS safe area inset helpers for iOS and Android devices\n * with notches, home indicators, and other screen intrusions.\n * \n * @module utils/safeAreaUtils\n * @category UI Utilities\n * @korean 안전영역유틸리티\n */\n\nimport { SAFE_AREA_INSETS } from \"../types/constants/ui\";\n\n/**\n * Safe area edge types\n * \n * @category Safe Area\n * @korean 안전영역가장자리타입\n */\nexport type SafeAreaEdge = \"top\" | \"bottom\" | \"left\" | \"right\";\n\n/**\n * Get CSS safe area inset with fallback\n * Returns CSS `env()` with fallback to constant values\n * \n * @param edge - Which edge to get inset for\n * @param fallback - Optional custom fallback value in pixels\n * @returns CSS string with env() and fallback\n * \n * @example\n * ```typescript\n * getSafeAreaInset('top'); // \"env(safe-area-inset-top, 44px)\"\n * getSafeAreaInset('bottom', 20); // \"env(safe-area-inset-bottom, 20px)\"\n * ```\n * \n * @korean 안전영역삽입얻기\n */\nexport function getSafeAreaInset(\n edge: SafeAreaEdge,\n fallback?: number\n): string {\n const defaultFallback =\n edge === \"top\"\n ? SAFE_AREA_INSETS.TOP\n : edge === \"bottom\"\n ? SAFE_AREA_INSETS.BOTTOM\n : edge === \"left\"\n ? SAFE_AREA_INSETS.LEFT\n : SAFE_AREA_INSETS.RIGHT;\n\n const fallbackValue = fallback ?? defaultFallback;\n return `env(safe-area-inset-${edge}, ${fallbackValue}px)`;\n}\n\n/**\n * Get safe area padding for a container\n * Returns CSS padding object with safe area support\n * \n * @param edges - Which edges to apply safe area padding\n * @param additionalPadding - Additional padding to add (in pixels)\n * @returns CSS padding object\n * \n * @example\n * ```typescript\n * getSafeAreaPadding(['top', 'bottom'], 16);\n * // {\n * // paddingTop: \"max(16px, env(safe-area-inset-top))\",\n * // paddingBottom: \"max(16px, env(safe-area-inset-bottom))\"\n * // }\n * ```\n * \n * @korean 안전영역패딩얻기\n */\nexport function getSafeAreaPadding(\n edges: readonly SafeAreaEdge[],\n additionalPadding = 0\n): Partial<Record<`padding${Capitalize<SafeAreaEdge>}`, string>> {\n const result: Partial<Record<`padding${Capitalize<SafeAreaEdge>}`, string>> =\n {};\n\n for (const edge of edges) {\n const capitalizedEdge =\n (edge.charAt(0).toUpperCase() + edge.slice(1)) as Capitalize<SafeAreaEdge>;\n const key = `padding${capitalizedEdge}` as const;\n\n result[key] = `max(${additionalPadding}px, ${getSafeAreaInset(edge)})`;\n }\n\n return result;\n}\n\n/**\n * Get safe area aware positioning styles\n * Useful for fixed/absolute positioned elements\n * \n * @param edge - Which edge to position from\n * @param baseOffset - Base offset in pixels\n * @returns CSS positioning string\n * \n * @example\n * ```typescript\n * getSafeAreaPosition('bottom', 20);\n * // \"calc(20px + env(safe-area-inset-bottom, 34px))\"\n * ```\n * \n * @korean 안전영역위치얻기\n */\nexport function getSafeAreaPosition(\n edge: SafeAreaEdge,\n baseOffset = 0\n): string {\n return `calc(${baseOffset}px + ${getSafeAreaInset(edge)})`;\n}\n\n/**\n * Get safe area aware height calculation\n * Useful for full-height containers\n * \n * @param excludeEdges - Which edges to exclude from height\n * @returns CSS calc() string for height\n * \n * @example\n * ```typescript\n * getSafeAreaHeight(['top', 'bottom']);\n * // \"calc(100vh - env(safe-area-inset-top, 44px) - env(safe-area-inset-bottom, 34px))\"\n * ```\n * \n * @korean 안전영역높이얻기\n */\nexport function getSafeAreaHeight(\n excludeEdges: readonly SafeAreaEdge[]\n): string {\n const insets = excludeEdges.map((edge) => getSafeAreaInset(edge)).join(\" - \");\n return `calc(100vh - ${insets})`;\n}\n\n/**\n * Check if device likely has safe area insets\n * Uses user agent detection (not perfect but useful)\n * \n * @returns Whether device likely has safe area insets\n * \n * @example\n * ```typescript\n * if (hasSafeAreaInsets()) {\n * // Apply safe area styles\n * }\n * ```\n * \n * @korean 안전영역삽입여부\n */\nexport function hasSafeAreaInsets(): boolean {\n // Check if CSS env() is supported\n if (typeof CSS !== \"undefined\" && CSS.supports) {\n return CSS.supports(\"padding-top\", \"env(safe-area-inset-top)\");\n }\n\n // Fallback: Check for iPhone X+ user agents\n const ua = navigator.userAgent;\n return (\n /iPhone/.test(ua) &&\n ((screen.width === 375 && screen.height === 812) || // iPhone X, XS, 11 Pro\n (screen.width === 414 && screen.height === 896) || // iPhone XR, XS Max, 11, 11 Pro Max\n (screen.width === 390 && screen.height === 844) || // iPhone 12, 12 Pro, 13, 13 Pro, 14\n (screen.width === 393 && screen.height === 852) || // iPhone 14 Pro\n (screen.width === 428 && screen.height === 926)) // iPhone 12/13/14 Pro Max\n );\n}\n\n/**\n * Get comprehensive safe area styles for a container\n * Combines padding and positioning for complete safe area support\n * \n * @param options - Configuration options\n * @returns React CSSProperties object\n * \n * @example\n * ```typescript\n * const styles = getSafeAreaStyles({\n * applyPadding: ['top', 'bottom'],\n * additionalPadding: 16,\n * position: 'fixed'\n * });\n * ```\n * \n * @korean 안전영역스타일얻기\n */\nexport function getSafeAreaStyles(options: {\n readonly applyPadding?: readonly SafeAreaEdge[];\n readonly additionalPadding?: number;\n readonly position?: \"fixed\" | \"absolute\" | \"sticky\";\n}): React.CSSProperties {\n const { applyPadding = [], additionalPadding = 0, position } = options;\n\n const paddingStyles = getSafeAreaPadding(applyPadding, additionalPadding);\n\n return {\n ...paddingStyles,\n ...(position && { position }),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,SAAgB,iBACd,MACA,UACQ;CACR,MAAM,kBACJ,SAAS,QACL,iBAAiB,MACjB,SAAS,WACT,iBAAiB,SACjB,SAAS,SACT,iBAAiB,OACjB,iBAAiB;CAGvB,OAAO,uBAAuB,KAAK,IADb,YAAY,gBACmB;;;;;;;;;;;;;;;;;;;;;AAsBvD,SAAgB,mBACd,OACA,oBAAoB,GAC2C;CAC/D,MAAM,SACJ,EAAE;CAEJ,KAAK,MAAM,QAAQ,OAAO;EAGxB,MAAM,MAAM,UADT,KAAK,OAAO,EAAE,CAAC,aAAa,GAAG,KAAK,MAAM,EAAE;EAG/C,OAAO,OAAO,OAAO,kBAAkB,MAAM,iBAAiB,KAAK,CAAC;;CAGtE,OAAO"}
@@ -27,7 +27,6 @@ import { type ArenaConfiguration } from "./arenaWorldDimensions";
27
27
  *
28
28
  * **Korean**: 카메라 설정
29
29
  *
30
- * @public
31
30
  */
32
31
  export interface CameraConfiguration {
33
32
  /** Field of view in degrees */
@@ -47,7 +46,6 @@ export interface CameraConfiguration {
47
46
  * Includes all parameters needed to ensure consistent physics
48
47
  * behavior across different screens and device types.
49
48
  *
50
- * @public
51
49
  */
52
50
  export interface PhysicsConfiguration {
53
51
  /** Arena configuration with pixel and meter dimensions */
@@ -84,7 +82,6 @@ export interface PhysicsConfiguration {
84
82
  * // { fov: 60, position: [0, 8, 12], near: 0.1, far: 1000 }
85
83
  * ```
86
84
  *
87
- * @public
88
85
  */
89
86
  export declare function createCameraConfig(isMobile: boolean): CameraConfiguration;
90
87
  /**
@@ -119,7 +116,6 @@ export declare function createCameraConfig(isMobile: boolean): CameraConfigurati
119
116
  * trainingPhysics.pixelsPerMeter === combatPhysics.pixelsPerMeter; // true
120
117
  * ```
121
118
  *
122
- * @public
123
119
  */
124
120
  export declare function createPhysicsConfig(screenWidth: number, screenHeight: number, topOffset: number, bottomOffset: number, isMobile: boolean): PhysicsConfiguration;
125
121
  //# sourceMappingURL=sharedPhysicsConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sharedPhysicsConfig.d.ts","sourceRoot":"","sources":["../../src/utils/sharedPhysicsConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAGL,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;AAEhC;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,+BAA+B;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,oBAAoB;IACnC,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,sDAAsD;IACtD,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C,sDAAsD;IACtD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,wCAAwC;IACxC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,8BAA8B;IAC9B,QAAQ,CAAC,YAAY,EAAE,OAAO,oBAAoB,CAAC;IACnD,oDAAoD;IACpD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,mBAAmB,CAgBzE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,OAAO,GAChB,oBAAoB,CAoBtB"}
1
+ {"version":3,"file":"sharedPhysicsConfig.d.ts","sourceRoot":"","sources":["../../src/utils/sharedPhysicsConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAGL,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;AAEhC;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,+BAA+B;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,sDAAsD;IACtD,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C,sDAAsD;IACtD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,wCAAwC;IACxC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,8BAA8B;IAC9B,QAAQ,CAAC,YAAY,EAAE,OAAO,oBAAoB,CAAC;IACnD,oDAAoD;IACpD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,mBAAmB,CAgBzE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,OAAO,GAChB,oBAAoB,CAoBtB"}
@@ -44,7 +44,6 @@ import { calculateArenaConfiguration } from "./arenaWorldDimensions.js";
44
44
  * // { fov: 60, position: [0, 8, 12], near: 0.1, far: 1000 }
45
45
  * ```
46
46
  *
47
- * @public
48
47
  */
49
48
  function createCameraConfig(isMobile) {
50
49
  if (isMobile) return {
@@ -100,7 +99,6 @@ function createCameraConfig(isMobile) {
100
99
  * trainingPhysics.pixelsPerMeter === combatPhysics.pixelsPerMeter; // true
101
100
  * ```
102
101
  *
103
- * @public
104
102
  */
105
103
  function createPhysicsConfig(screenWidth, screenHeight, topOffset, bottomOffset, isMobile) {
106
104
  const arenaConfig = calculateArenaConfiguration(screenWidth, screenHeight, topOffset, bottomOffset);
@@ -1 +1 @@
1
- {"version":3,"file":"sharedPhysicsConfig.js","names":[],"sources":["../../src/utils/sharedPhysicsConfig.ts"],"sourcesContent":["/**\n * Shared physics configuration for Black Trigram screens.\n *\n * **Korean**: 공유 물리 설정\n *\n * This module provides shared physics configuration utilities to ensure\n * consistent physics behavior, coordinate systems, and camera setup across\n * TrainingScreen3D and CombatScreen3D.\n *\n * ## Synchronization Guarantees\n *\n * All screens using these utilities will have:\n * - Identical camera FOV and positioning for same device types\n * - Consistent arena bounds calculations\n * - Same physics constants (acceleration, stamina regen, etc.)\n * - Unified coordinate system (meter-based)\n * - Matching movement speed and range calculations\n *\n * @module utils/sharedPhysicsConfig\n * @category Physics\n * @korean 공유물리설정\n */\n\nimport {\n BASE_STAMINA_REGEN_RATE,\n BASE_MOVEMENT_ACCELERATION,\n COMBAT_RANGES_METERS,\n} from \"@/types/physicsConstants\";\nimport {\n calculateArenaConfiguration,\n type ArenaConfiguration,\n} from \"./arenaWorldDimensions\";\n\n/**\n * Camera configuration for 3D rendering.\n *\n * **Korean**: 카메라 설정\n *\n * @public\n */\nexport interface CameraConfiguration {\n /** Field of view in degrees */\n readonly fov: number;\n /** Camera position [x, y, z] in meters */\n readonly position: readonly [number, number, number];\n /** Near clipping plane */\n readonly near: number;\n /** Far clipping plane */\n readonly far: number;\n}\n\n/**\n * Complete physics configuration for a game screen.\n *\n * **Korean**: 물리 설정\n *\n * Includes all parameters needed to ensure consistent physics\n * behavior across different screens and device types.\n *\n * @public\n */\nexport interface PhysicsConfiguration {\n /** Arena configuration with pixel and meter dimensions */\n readonly arenaConfig: ArenaConfiguration;\n /** Camera configuration for consistent perspective */\n readonly cameraConfig: CameraConfiguration;\n /** Base stamina regeneration rate (stamina/second) */\n readonly staminaRegenRate: number;\n /** Base movement acceleration (m/s²) */\n readonly movementAcceleration: number;\n /** Combat ranges in meters */\n readonly combatRanges: typeof COMBAT_RANGES_METERS;\n /** Pixels per meter ratio for this configuration */\n readonly pixelsPerMeter: number;\n}\n\n/**\n * Create camera configuration based on device type.\n *\n * Mobile devices get a tighter FOV and closer camera position\n * for better framing of the smaller arena. Desktop gets a wider\n * FOV and further camera for full arena view.\n *\n * **Korean**: 카메라 설정 생성\n *\n * @param isMobile - Whether the device is mobile\n * @returns Camera configuration for device type\n *\n * @example\n * ```typescript\n * const mobile = createCameraConfig(true);\n * // { fov: 55, position: [0, 6, 10], near: 0.1, far: 1000 }\n *\n * const desktop = createCameraConfig(false);\n * // { fov: 60, position: [0, 8, 12], near: 0.1, far: 1000 }\n * ```\n *\n * @public\n */\nexport function createCameraConfig(isMobile: boolean): CameraConfiguration {\n if (isMobile) {\n return {\n fov: 55, // Tighter FOV for smaller mobile arena\n position: [0, 6, 10], // Closer camera\n near: 0.1,\n far: 1000,\n };\n }\n\n return {\n fov: 60, // Standard FOV for desktop\n position: [0, 8, 12], // Further back for full view\n near: 0.1,\n far: 1000,\n };\n}\n\n/**\n * Create complete physics configuration for a screen.\n *\n * This is the primary function for setting up physics in both\n * TrainingScreen3D and CombatScreen3D. It ensures consistent\n * physics behavior by using the same calculations and constants.\n *\n * **Korean**: 물리 설정 생성\n *\n * @param screenWidth - Screen width in pixels\n * @param screenHeight - Screen height in pixels\n * @param topOffset - Pixels reserved at top (HUD, headers)\n * @param bottomOffset - Pixels reserved at bottom (controls, footer)\n * @param isMobile - Whether the device is mobile\n * @returns Complete physics configuration\n *\n * @example\n * ```typescript\n * // Training screen\n * const trainingPhysics = createPhysicsConfig(\n * 1920, 1080, 60, 100, false\n * );\n *\n * // Combat screen\n * const combatPhysics = createPhysicsConfig(\n * 1920, 1080, 60, 100, false\n * );\n *\n * // Both have identical physics configuration\n * trainingPhysics.pixelsPerMeter === combatPhysics.pixelsPerMeter; // true\n * ```\n *\n * @public\n */\nexport function createPhysicsConfig(\n screenWidth: number,\n screenHeight: number,\n topOffset: number,\n bottomOffset: number,\n isMobile: boolean,\n): PhysicsConfiguration {\n // Calculate arena dimensions (same for both screens)\n const arenaConfig = calculateArenaConfiguration(\n screenWidth,\n screenHeight,\n topOffset,\n bottomOffset,\n );\n\n // Create camera config based on device type\n const cameraConfig = createCameraConfig(isMobile);\n\n return {\n arenaConfig,\n cameraConfig,\n staminaRegenRate: BASE_STAMINA_REGEN_RATE,\n movementAcceleration: BASE_MOVEMENT_ACCELERATION,\n combatRanges: COMBAT_RANGES_METERS,\n pixelsPerMeter: arenaConfig.pixelsPerMeter,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmGA,SAAgB,mBAAmB,UAAwC;CACzE,IAAI,UACF,OAAO;EACL,KAAK;EACL,UAAU;GAAC;GAAG;GAAG;GAAG;EACpB,MAAM;EACN,KAAK;EACN;CAGH,OAAO;EACL,KAAK;EACL,UAAU;GAAC;GAAG;GAAG;GAAG;EACpB,MAAM;EACN,KAAK;EACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCH,SAAgB,oBACd,aACA,cACA,WACA,cACA,UACsB;CAEtB,MAAM,cAAc,4BAClB,aACA,cACA,WACA,aACD;CAKD,OAAO;EACL;EACA,cAJmB,mBAAmB,SAItC;EACA,kBAAA;EACA,sBAAA;EACA,cAAc;EACd,gBAAgB,YAAY;EAC7B"}
1
+ {"version":3,"file":"sharedPhysicsConfig.js","names":[],"sources":["../../src/utils/sharedPhysicsConfig.ts"],"sourcesContent":["/**\n * Shared physics configuration for Black Trigram screens.\n *\n * **Korean**: 공유 물리 설정\n *\n * This module provides shared physics configuration utilities to ensure\n * consistent physics behavior, coordinate systems, and camera setup across\n * TrainingScreen3D and CombatScreen3D.\n *\n * ## Synchronization Guarantees\n *\n * All screens using these utilities will have:\n * - Identical camera FOV and positioning for same device types\n * - Consistent arena bounds calculations\n * - Same physics constants (acceleration, stamina regen, etc.)\n * - Unified coordinate system (meter-based)\n * - Matching movement speed and range calculations\n *\n * @module utils/sharedPhysicsConfig\n * @category Physics\n * @korean 공유물리설정\n */\n\nimport {\n BASE_STAMINA_REGEN_RATE,\n BASE_MOVEMENT_ACCELERATION,\n COMBAT_RANGES_METERS,\n} from \"@/types/physicsConstants\";\nimport {\n calculateArenaConfiguration,\n type ArenaConfiguration,\n} from \"./arenaWorldDimensions\";\n\n/**\n * Camera configuration for 3D rendering.\n *\n * **Korean**: 카메라 설정\n *\n */\nexport interface CameraConfiguration {\n /** Field of view in degrees */\n readonly fov: number;\n /** Camera position [x, y, z] in meters */\n readonly position: readonly [number, number, number];\n /** Near clipping plane */\n readonly near: number;\n /** Far clipping plane */\n readonly far: number;\n}\n\n/**\n * Complete physics configuration for a game screen.\n *\n * **Korean**: 물리 설정\n *\n * Includes all parameters needed to ensure consistent physics\n * behavior across different screens and device types.\n *\n */\nexport interface PhysicsConfiguration {\n /** Arena configuration with pixel and meter dimensions */\n readonly arenaConfig: ArenaConfiguration;\n /** Camera configuration for consistent perspective */\n readonly cameraConfig: CameraConfiguration;\n /** Base stamina regeneration rate (stamina/second) */\n readonly staminaRegenRate: number;\n /** Base movement acceleration (m/s²) */\n readonly movementAcceleration: number;\n /** Combat ranges in meters */\n readonly combatRanges: typeof COMBAT_RANGES_METERS;\n /** Pixels per meter ratio for this configuration */\n readonly pixelsPerMeter: number;\n}\n\n/**\n * Create camera configuration based on device type.\n *\n * Mobile devices get a tighter FOV and closer camera position\n * for better framing of the smaller arena. Desktop gets a wider\n * FOV and further camera for full arena view.\n *\n * **Korean**: 카메라 설정 생성\n *\n * @param isMobile - Whether the device is mobile\n * @returns Camera configuration for device type\n *\n * @example\n * ```typescript\n * const mobile = createCameraConfig(true);\n * // { fov: 55, position: [0, 6, 10], near: 0.1, far: 1000 }\n *\n * const desktop = createCameraConfig(false);\n * // { fov: 60, position: [0, 8, 12], near: 0.1, far: 1000 }\n * ```\n *\n */\nexport function createCameraConfig(isMobile: boolean): CameraConfiguration {\n if (isMobile) {\n return {\n fov: 55, // Tighter FOV for smaller mobile arena\n position: [0, 6, 10], // Closer camera\n near: 0.1,\n far: 1000,\n };\n }\n\n return {\n fov: 60, // Standard FOV for desktop\n position: [0, 8, 12], // Further back for full view\n near: 0.1,\n far: 1000,\n };\n}\n\n/**\n * Create complete physics configuration for a screen.\n *\n * This is the primary function for setting up physics in both\n * TrainingScreen3D and CombatScreen3D. It ensures consistent\n * physics behavior by using the same calculations and constants.\n *\n * **Korean**: 물리 설정 생성\n *\n * @param screenWidth - Screen width in pixels\n * @param screenHeight - Screen height in pixels\n * @param topOffset - Pixels reserved at top (HUD, headers)\n * @param bottomOffset - Pixels reserved at bottom (controls, footer)\n * @param isMobile - Whether the device is mobile\n * @returns Complete physics configuration\n *\n * @example\n * ```typescript\n * // Training screen\n * const trainingPhysics = createPhysicsConfig(\n * 1920, 1080, 60, 100, false\n * );\n *\n * // Combat screen\n * const combatPhysics = createPhysicsConfig(\n * 1920, 1080, 60, 100, false\n * );\n *\n * // Both have identical physics configuration\n * trainingPhysics.pixelsPerMeter === combatPhysics.pixelsPerMeter; // true\n * ```\n *\n */\nexport function createPhysicsConfig(\n screenWidth: number,\n screenHeight: number,\n topOffset: number,\n bottomOffset: number,\n isMobile: boolean,\n): PhysicsConfiguration {\n // Calculate arena dimensions (same for both screens)\n const arenaConfig = calculateArenaConfiguration(\n screenWidth,\n screenHeight,\n topOffset,\n bottomOffset,\n );\n\n // Create camera config based on device type\n const cameraConfig = createCameraConfig(isMobile);\n\n return {\n arenaConfig,\n cameraConfig,\n staminaRegenRate: BASE_STAMINA_REGEN_RATE,\n movementAcceleration: BASE_MOVEMENT_ACCELERATION,\n combatRanges: COMBAT_RANGES_METERS,\n pixelsPerMeter: arenaConfig.pixelsPerMeter,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgGA,SAAgB,mBAAmB,UAAwC;CACzE,IAAI,UACF,OAAO;EACL,KAAK;EACL,UAAU;GAAC;GAAG;GAAG;GAAG;EACpB,MAAM;EACN,KAAK;EACN;CAGH,OAAO;EACL,KAAK;EACL,UAAU;GAAC;GAAG;GAAG;GAAG;EACpB,MAAM;EACN,KAAK;EACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCH,SAAgB,oBACd,aACA,cACA,WACA,cACA,UACsB;CAEtB,MAAM,cAAc,4BAClB,aACA,cACA,WACA,aACD;CAKD,OAAO;EACL;EACA,cAJmB,mBAAmB,SAItC;EACA,kBAAA;EACA,sBAAA;EACA,cAAc;EACd,gBAAgB,YAAY;EAC7B"}