@almadar/mobile 1.1.0

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 (433) hide show
  1. package/README.md +203 -0
  2. package/dist/chunk-6RVITGGH.js +167 -0
  3. package/dist/chunk-6RVITGGH.js.map +1 -0
  4. package/dist/chunk-7C5JCLLY.js +1125 -0
  5. package/dist/chunk-7C5JCLLY.js.map +1 -0
  6. package/dist/chunk-CA6Z3OTE.js +247 -0
  7. package/dist/chunk-CA6Z3OTE.js.map +1 -0
  8. package/dist/chunk-CUAWHLEK.js +119 -0
  9. package/dist/chunk-CUAWHLEK.js.map +1 -0
  10. package/dist/chunk-DMLYJFYQ.js +816 -0
  11. package/dist/chunk-DMLYJFYQ.js.map +1 -0
  12. package/dist/chunk-DY52O4T3.js +795 -0
  13. package/dist/chunk-DY52O4T3.js.map +1 -0
  14. package/dist/chunk-LFHVNHVA.js +176 -0
  15. package/dist/chunk-LFHVNHVA.js.map +1 -0
  16. package/dist/chunk-MFU7Q7LU.js +206 -0
  17. package/dist/chunk-MFU7Q7LU.js.map +1 -0
  18. package/dist/chunk-S2IT7WZT.js +71 -0
  19. package/dist/chunk-S2IT7WZT.js.map +1 -0
  20. package/dist/chunk-T77JPOTP.js +11789 -0
  21. package/dist/chunk-T77JPOTP.js.map +1 -0
  22. package/dist/chunk-VLUJ7BXN.js +36 -0
  23. package/dist/chunk-VLUJ7BXN.js.map +1 -0
  24. package/dist/chunk-YMJZLYLV.js +4086 -0
  25. package/dist/chunk-YMJZLYLV.js.map +1 -0
  26. package/dist/chunk-YTVYMEKU.js +7 -0
  27. package/dist/chunk-YTVYMEKU.js.map +1 -0
  28. package/dist/components/atoms/Avatar.d.ts +17 -0
  29. package/dist/components/atoms/Avatar.d.ts.map +1 -0
  30. package/dist/components/atoms/Badge.d.ts +18 -0
  31. package/dist/components/atoms/Badge.d.ts.map +1 -0
  32. package/dist/components/atoms/Button.d.ts +20 -0
  33. package/dist/components/atoms/Button.d.ts.map +1 -0
  34. package/dist/components/atoms/Card.d.ts +21 -0
  35. package/dist/components/atoms/Card.d.ts.map +1 -0
  36. package/dist/components/atoms/Center.d.ts +14 -0
  37. package/dist/components/atoms/Center.d.ts.map +1 -0
  38. package/dist/components/atoms/Checkbox.d.ts +21 -0
  39. package/dist/components/atoms/Checkbox.d.ts.map +1 -0
  40. package/dist/components/atoms/ConditionalWrapper.d.ts +34 -0
  41. package/dist/components/atoms/ConditionalWrapper.d.ts.map +1 -0
  42. package/dist/components/atoms/Divider.d.ts +11 -0
  43. package/dist/components/atoms/Divider.d.ts.map +1 -0
  44. package/dist/components/atoms/Icon.d.ts +11 -0
  45. package/dist/components/atoms/Icon.d.ts.map +1 -0
  46. package/dist/components/atoms/Input.d.ts +21 -0
  47. package/dist/components/atoms/Input.d.ts.map +1 -0
  48. package/dist/components/atoms/Label.d.ts +12 -0
  49. package/dist/components/atoms/Label.d.ts.map +1 -0
  50. package/dist/components/atoms/Overlay.d.ts +16 -0
  51. package/dist/components/atoms/Overlay.d.ts.map +1 -0
  52. package/dist/components/atoms/ProgressBar.d.ts +18 -0
  53. package/dist/components/atoms/ProgressBar.d.ts.map +1 -0
  54. package/dist/components/atoms/Radio.d.ts +21 -0
  55. package/dist/components/atoms/Radio.d.ts.map +1 -0
  56. package/dist/components/atoms/Select.d.ts +27 -0
  57. package/dist/components/atoms/Select.d.ts.map +1 -0
  58. package/dist/components/atoms/Spacer.d.ts +20 -0
  59. package/dist/components/atoms/Spacer.d.ts.map +1 -0
  60. package/dist/components/atoms/Spinner.d.ts +11 -0
  61. package/dist/components/atoms/Spinner.d.ts.map +1 -0
  62. package/dist/components/atoms/Stack.d.ts +45 -0
  63. package/dist/components/atoms/Stack.d.ts.map +1 -0
  64. package/dist/components/atoms/Switch.d.ts +21 -0
  65. package/dist/components/atoms/Switch.d.ts.map +1 -0
  66. package/dist/components/atoms/Textarea.d.ts +22 -0
  67. package/dist/components/atoms/Textarea.d.ts.map +1 -0
  68. package/dist/components/atoms/Typography.d.ts +20 -0
  69. package/dist/components/atoms/Typography.d.ts.map +1 -0
  70. package/dist/components/atoms/game/ControlButton.d.ts +30 -0
  71. package/dist/components/atoms/game/ControlButton.d.ts.map +1 -0
  72. package/dist/components/atoms/game/HealthBar.d.ts +18 -0
  73. package/dist/components/atoms/game/HealthBar.d.ts.map +1 -0
  74. package/dist/components/atoms/game/ScoreDisplay.d.ts +20 -0
  75. package/dist/components/atoms/game/ScoreDisplay.d.ts.map +1 -0
  76. package/dist/components/atoms/game/Sprite.d.ts +41 -0
  77. package/dist/components/atoms/game/Sprite.d.ts.map +1 -0
  78. package/dist/components/atoms/game/StateIndicator.d.ts +22 -0
  79. package/dist/components/atoms/game/StateIndicator.d.ts.map +1 -0
  80. package/dist/components/atoms/game/index.d.ts +11 -0
  81. package/dist/components/atoms/game/index.d.ts.map +1 -0
  82. package/dist/components/atoms/index.d.ts +45 -0
  83. package/dist/components/atoms/index.d.ts.map +1 -0
  84. package/dist/components/atoms/index.js +69 -0
  85. package/dist/components/atoms/index.js.map +1 -0
  86. package/dist/components/index.d.ts +4 -0
  87. package/dist/components/index.d.ts.map +1 -0
  88. package/dist/components/index.js +317 -0
  89. package/dist/components/index.js.map +1 -0
  90. package/dist/components/molecules/Alert.d.ts +22 -0
  91. package/dist/components/molecules/Alert.d.ts.map +1 -0
  92. package/dist/components/molecules/Breadcrumb.d.ts +16 -0
  93. package/dist/components/molecules/Breadcrumb.d.ts.map +1 -0
  94. package/dist/components/molecules/ButtonGroup.d.ts +23 -0
  95. package/dist/components/molecules/ButtonGroup.d.ts.map +1 -0
  96. package/dist/components/molecules/CodeBlock.d.ts +26 -0
  97. package/dist/components/molecules/CodeBlock.d.ts.map +1 -0
  98. package/dist/components/molecules/Container.d.ts +20 -0
  99. package/dist/components/molecules/Container.d.ts.map +1 -0
  100. package/dist/components/molecules/Drawer.d.ts +11 -0
  101. package/dist/components/molecules/Drawer.d.ts.map +1 -0
  102. package/dist/components/molecules/EmptyState.d.ts +7 -0
  103. package/dist/components/molecules/EmptyState.d.ts.map +1 -0
  104. package/dist/components/molecules/ErrorBoundary.d.ts +29 -0
  105. package/dist/components/molecules/ErrorBoundary.d.ts.map +1 -0
  106. package/dist/components/molecules/ErrorState.d.ts +7 -0
  107. package/dist/components/molecules/ErrorState.d.ts.map +1 -0
  108. package/dist/components/molecules/FilterGroup.d.ts +54 -0
  109. package/dist/components/molecules/FilterGroup.d.ts.map +1 -0
  110. package/dist/components/molecules/Flex.d.ts +31 -0
  111. package/dist/components/molecules/Flex.d.ts.map +1 -0
  112. package/dist/components/molecules/FloatingActionButton.d.ts +33 -0
  113. package/dist/components/molecules/FloatingActionButton.d.ts.map +1 -0
  114. package/dist/components/molecules/FormField.d.ts +12 -0
  115. package/dist/components/molecules/FormField.d.ts.map +1 -0
  116. package/dist/components/molecules/FormSectionHeader.d.ts +15 -0
  117. package/dist/components/molecules/FormSectionHeader.d.ts.map +1 -0
  118. package/dist/components/molecules/Grid.d.ts +24 -0
  119. package/dist/components/molecules/Grid.d.ts.map +1 -0
  120. package/dist/components/molecules/InputGroup.d.ts +18 -0
  121. package/dist/components/molecules/InputGroup.d.ts.map +1 -0
  122. package/dist/components/molecules/List.d.ts +16 -0
  123. package/dist/components/molecules/List.d.ts.map +1 -0
  124. package/dist/components/molecules/LoadingState.d.ts +6 -0
  125. package/dist/components/molecules/LoadingState.d.ts.map +1 -0
  126. package/dist/components/molecules/MarkdownContent.d.ts +18 -0
  127. package/dist/components/molecules/MarkdownContent.d.ts.map +1 -0
  128. package/dist/components/molecules/Menu.d.ts +19 -0
  129. package/dist/components/molecules/Menu.d.ts.map +1 -0
  130. package/dist/components/molecules/Meter.d.ts +58 -0
  131. package/dist/components/molecules/Meter.d.ts.map +1 -0
  132. package/dist/components/molecules/Modal.d.ts +22 -0
  133. package/dist/components/molecules/Modal.d.ts.map +1 -0
  134. package/dist/components/molecules/Navigation.d.ts +72 -0
  135. package/dist/components/molecules/Navigation.d.ts.map +1 -0
  136. package/dist/components/molecules/Pagination.d.ts +30 -0
  137. package/dist/components/molecules/Pagination.d.ts.map +1 -0
  138. package/dist/components/molecules/Popover.d.ts +11 -0
  139. package/dist/components/molecules/Popover.d.ts.map +1 -0
  140. package/dist/components/molecules/QuizBlock.d.ts +35 -0
  141. package/dist/components/molecules/QuizBlock.d.ts.map +1 -0
  142. package/dist/components/molecules/RelationSelect.d.ts +38 -0
  143. package/dist/components/molecules/RelationSelect.d.ts.map +1 -0
  144. package/dist/components/molecules/RepeatableFormSection.d.ts +46 -0
  145. package/dist/components/molecules/RepeatableFormSection.d.ts.map +1 -0
  146. package/dist/components/molecules/ScaledDiagram.d.ts +41 -0
  147. package/dist/components/molecules/ScaledDiagram.d.ts.map +1 -0
  148. package/dist/components/molecules/SearchInput.d.ts +22 -0
  149. package/dist/components/molecules/SearchInput.d.ts.map +1 -0
  150. package/dist/components/molecules/SidePanel.d.ts +49 -0
  151. package/dist/components/molecules/SidePanel.d.ts.map +1 -0
  152. package/dist/components/molecules/SimpleGrid.d.ts +17 -0
  153. package/dist/components/molecules/SimpleGrid.d.ts.map +1 -0
  154. package/dist/components/molecules/Skeleton.d.ts +12 -0
  155. package/dist/components/molecules/Skeleton.d.ts.map +1 -0
  156. package/dist/components/molecules/Tabs.d.ts +25 -0
  157. package/dist/components/molecules/Tabs.d.ts.map +1 -0
  158. package/dist/components/molecules/Toast.d.ts +18 -0
  159. package/dist/components/molecules/Toast.d.ts.map +1 -0
  160. package/dist/components/molecules/Tooltip.d.ts +11 -0
  161. package/dist/components/molecules/Tooltip.d.ts.map +1 -0
  162. package/dist/components/molecules/WizardNavigation.d.ts +36 -0
  163. package/dist/components/molecules/WizardNavigation.d.ts.map +1 -0
  164. package/dist/components/molecules/WizardProgress.d.ts +26 -0
  165. package/dist/components/molecules/WizardProgress.d.ts.map +1 -0
  166. package/dist/components/molecules/game/ActionButtons.d.ts +30 -0
  167. package/dist/components/molecules/game/ActionButtons.d.ts.map +1 -0
  168. package/dist/components/molecules/game/DPad.d.ts +19 -0
  169. package/dist/components/molecules/game/DPad.d.ts.map +1 -0
  170. package/dist/components/molecules/game/StatBadge.d.ts +26 -0
  171. package/dist/components/molecules/game/StatBadge.d.ts.map +1 -0
  172. package/dist/components/molecules/game/index.d.ts +7 -0
  173. package/dist/components/molecules/game/index.d.ts.map +1 -0
  174. package/dist/components/molecules/index.d.ts +79 -0
  175. package/dist/components/molecules/index.d.ts.map +1 -0
  176. package/dist/components/molecules/index.js +96 -0
  177. package/dist/components/molecules/index.js.map +1 -0
  178. package/dist/components/organisms/CardGrid.d.ts +16 -0
  179. package/dist/components/organisms/CardGrid.d.ts.map +1 -0
  180. package/dist/components/organisms/Chart.d.ts +26 -0
  181. package/dist/components/organisms/Chart.d.ts.map +1 -0
  182. package/dist/components/organisms/CodeViewer.d.ts +29 -0
  183. package/dist/components/organisms/CodeViewer.d.ts.map +1 -0
  184. package/dist/components/organisms/ComponentPatterns.d.ts +34 -0
  185. package/dist/components/organisms/ComponentPatterns.d.ts.map +1 -0
  186. package/dist/components/organisms/ConfirmDialog.d.ts +46 -0
  187. package/dist/components/organisms/ConfirmDialog.d.ts.map +1 -0
  188. package/dist/components/organisms/ContentRenderer.d.ts +37 -0
  189. package/dist/components/organisms/ContentRenderer.d.ts.map +1 -0
  190. package/dist/components/organisms/CustomPattern.d.ts +36 -0
  191. package/dist/components/organisms/CustomPattern.d.ts.map +1 -0
  192. package/dist/components/organisms/DataTable.d.ts +22 -0
  193. package/dist/components/organisms/DataTable.d.ts.map +1 -0
  194. package/dist/components/organisms/DetailPanel.d.ts +17 -0
  195. package/dist/components/organisms/DetailPanel.d.ts.map +1 -0
  196. package/dist/components/organisms/DocumentViewer.d.ts +34 -0
  197. package/dist/components/organisms/DocumentViewer.d.ts.map +1 -0
  198. package/dist/components/organisms/DrawerSlot.d.ts +38 -0
  199. package/dist/components/organisms/DrawerSlot.d.ts.map +1 -0
  200. package/dist/components/organisms/EntityCard.d.ts +11 -0
  201. package/dist/components/organisms/EntityCard.d.ts.map +1 -0
  202. package/dist/components/organisms/EntityList.d.ts +17 -0
  203. package/dist/components/organisms/EntityList.d.ts.map +1 -0
  204. package/dist/components/organisms/Form.d.ts +49 -0
  205. package/dist/components/organisms/Form.d.ts.map +1 -0
  206. package/dist/components/organisms/FormSection.d.ts +9 -0
  207. package/dist/components/organisms/FormSection.d.ts.map +1 -0
  208. package/dist/components/organisms/Header.d.ts +24 -0
  209. package/dist/components/organisms/Header.d.ts.map +1 -0
  210. package/dist/components/organisms/LayoutPatterns.d.ts +39 -0
  211. package/dist/components/organisms/LayoutPatterns.d.ts.map +1 -0
  212. package/dist/components/organisms/MasterDetail.d.ts +39 -0
  213. package/dist/components/organisms/MasterDetail.d.ts.map +1 -0
  214. package/dist/components/organisms/MediaGallery.d.ts +35 -0
  215. package/dist/components/organisms/MediaGallery.d.ts.map +1 -0
  216. package/dist/components/organisms/ModalSlot.d.ts +35 -0
  217. package/dist/components/organisms/ModalSlot.d.ts.map +1 -0
  218. package/dist/components/organisms/PageHeader.d.ts +15 -0
  219. package/dist/components/organisms/PageHeader.d.ts.map +1 -0
  220. package/dist/components/organisms/Section.d.ts +52 -0
  221. package/dist/components/organisms/Section.d.ts.map +1 -0
  222. package/dist/components/organisms/Sidebar.d.ts +54 -0
  223. package/dist/components/organisms/Sidebar.d.ts.map +1 -0
  224. package/dist/components/organisms/SignaturePad.d.ts +44 -0
  225. package/dist/components/organisms/SignaturePad.d.ts.map +1 -0
  226. package/dist/components/organisms/Split.d.ts +34 -0
  227. package/dist/components/organisms/Split.d.ts.map +1 -0
  228. package/dist/components/organisms/StatCard.d.ts +20 -0
  229. package/dist/components/organisms/StatCard.d.ts.map +1 -0
  230. package/dist/components/organisms/StateMachineView.d.ts +41 -0
  231. package/dist/components/organisms/StateMachineView.d.ts.map +1 -0
  232. package/dist/components/organisms/Table.d.ts +104 -0
  233. package/dist/components/organisms/Table.d.ts.map +1 -0
  234. package/dist/components/organisms/Timeline.d.ts +19 -0
  235. package/dist/components/organisms/Timeline.d.ts.map +1 -0
  236. package/dist/components/organisms/ToastSlot.d.ts +30 -0
  237. package/dist/components/organisms/ToastSlot.d.ts.map +1 -0
  238. package/dist/components/organisms/UISlotRenderer.d.ts +35 -0
  239. package/dist/components/organisms/UISlotRenderer.d.ts.map +1 -0
  240. package/dist/components/organisms/WizardContainer.d.ts +25 -0
  241. package/dist/components/organisms/WizardContainer.d.ts.map +1 -0
  242. package/dist/components/organisms/book/BookChapterView.d.ts +26 -0
  243. package/dist/components/organisms/book/BookChapterView.d.ts.map +1 -0
  244. package/dist/components/organisms/book/BookCoverPage.d.ts +38 -0
  245. package/dist/components/organisms/book/BookCoverPage.d.ts.map +1 -0
  246. package/dist/components/organisms/book/BookNavBar.d.ts +40 -0
  247. package/dist/components/organisms/book/BookNavBar.d.ts.map +1 -0
  248. package/dist/components/organisms/book/BookTableOfContents.d.ts +32 -0
  249. package/dist/components/organisms/book/BookTableOfContents.d.ts.map +1 -0
  250. package/dist/components/organisms/book/BookViewer.d.ts +36 -0
  251. package/dist/components/organisms/book/BookViewer.d.ts.map +1 -0
  252. package/dist/components/organisms/book/index.d.ts +11 -0
  253. package/dist/components/organisms/book/index.d.ts.map +1 -0
  254. package/dist/components/organisms/game/BattleBoard.d.ts +38 -0
  255. package/dist/components/organisms/game/BattleBoard.d.ts.map +1 -0
  256. package/dist/components/organisms/game/CanvasEffect.d.ts +26 -0
  257. package/dist/components/organisms/game/CanvasEffect.d.ts.map +1 -0
  258. package/dist/components/organisms/game/CastleBoard.d.ts +30 -0
  259. package/dist/components/organisms/game/CastleBoard.d.ts.map +1 -0
  260. package/dist/components/organisms/game/CombatLog.d.ts +23 -0
  261. package/dist/components/organisms/game/CombatLog.d.ts.map +1 -0
  262. package/dist/components/organisms/game/DialogueBox.d.ts +40 -0
  263. package/dist/components/organisms/game/DialogueBox.d.ts.map +1 -0
  264. package/dist/components/organisms/game/GameAudioProvider.d.ts +50 -0
  265. package/dist/components/organisms/game/GameAudioProvider.d.ts.map +1 -0
  266. package/dist/components/organisms/game/GameAudioToggle.d.ts +18 -0
  267. package/dist/components/organisms/game/GameAudioToggle.d.ts.map +1 -0
  268. package/dist/components/organisms/game/GameCanvas3D.d.ts +53 -0
  269. package/dist/components/organisms/game/GameCanvas3D.d.ts.map +1 -0
  270. package/dist/components/organisms/game/GameHud.d.ts +40 -0
  271. package/dist/components/organisms/game/GameHud.d.ts.map +1 -0
  272. package/dist/components/organisms/game/GameMenu.d.ts +34 -0
  273. package/dist/components/organisms/game/GameMenu.d.ts.map +1 -0
  274. package/dist/components/organisms/game/GameOverScreen.d.ts +36 -0
  275. package/dist/components/organisms/game/GameOverScreen.d.ts.map +1 -0
  276. package/dist/components/organisms/game/InventoryPanel.d.ts +38 -0
  277. package/dist/components/organisms/game/InventoryPanel.d.ts.map +1 -0
  278. package/dist/components/organisms/game/IsometricCanvas.d.ts +54 -0
  279. package/dist/components/organisms/game/IsometricCanvas.d.ts.map +1 -0
  280. package/dist/components/organisms/game/TraitSlot.d.ts +29 -0
  281. package/dist/components/organisms/game/TraitSlot.d.ts.map +1 -0
  282. package/dist/components/organisms/game/TraitStateViewer.d.ts +28 -0
  283. package/dist/components/organisms/game/TraitStateViewer.d.ts.map +1 -0
  284. package/dist/components/organisms/game/UncontrolledBattleBoard.d.ts +30 -0
  285. package/dist/components/organisms/game/UncontrolledBattleBoard.d.ts.map +1 -0
  286. package/dist/components/organisms/game/WorldMapBoard.d.ts +40 -0
  287. package/dist/components/organisms/game/WorldMapBoard.d.ts.map +1 -0
  288. package/dist/components/organisms/game/index.d.ts +37 -0
  289. package/dist/components/organisms/game/index.d.ts.map +1 -0
  290. package/dist/components/organisms/game/physics-sim/SimulationCanvas.d.ts +41 -0
  291. package/dist/components/organisms/game/physics-sim/SimulationCanvas.d.ts.map +1 -0
  292. package/dist/components/organisms/game/physics-sim/SimulationControls.d.ts +38 -0
  293. package/dist/components/organisms/game/physics-sim/SimulationControls.d.ts.map +1 -0
  294. package/dist/components/organisms/game/physics-sim/SimulationGraph.d.ts +35 -0
  295. package/dist/components/organisms/game/physics-sim/SimulationGraph.d.ts.map +1 -0
  296. package/dist/components/organisms/game/physics-sim/index.d.ts +7 -0
  297. package/dist/components/organisms/game/physics-sim/index.d.ts.map +1 -0
  298. package/dist/components/organisms/game/puzzles/builder/BuilderBoard.d.ts +55 -0
  299. package/dist/components/organisms/game/puzzles/builder/BuilderBoard.d.ts.map +1 -0
  300. package/dist/components/organisms/game/puzzles/builder/index.d.ts +3 -0
  301. package/dist/components/organisms/game/puzzles/builder/index.d.ts.map +1 -0
  302. package/dist/components/organisms/game/puzzles/classifier/ClassifierBoard.d.ts +56 -0
  303. package/dist/components/organisms/game/puzzles/classifier/ClassifierBoard.d.ts.map +1 -0
  304. package/dist/components/organisms/game/puzzles/classifier/index.d.ts +3 -0
  305. package/dist/components/organisms/game/puzzles/classifier/index.d.ts.map +1 -0
  306. package/dist/components/organisms/game/puzzles/debugger/DebuggerBoard.d.ts +48 -0
  307. package/dist/components/organisms/game/puzzles/debugger/DebuggerBoard.d.ts.map +1 -0
  308. package/dist/components/organisms/game/puzzles/debugger/index.d.ts +3 -0
  309. package/dist/components/organisms/game/puzzles/debugger/index.d.ts.map +1 -0
  310. package/dist/components/organisms/game/puzzles/event-handler/EventHandlerBoard.d.ts +56 -0
  311. package/dist/components/organisms/game/puzzles/event-handler/EventHandlerBoard.d.ts.map +1 -0
  312. package/dist/components/organisms/game/puzzles/event-handler/EventLog.d.ts +33 -0
  313. package/dist/components/organisms/game/puzzles/event-handler/EventLog.d.ts.map +1 -0
  314. package/dist/components/organisms/game/puzzles/event-handler/ObjectRulePanel.d.ts +41 -0
  315. package/dist/components/organisms/game/puzzles/event-handler/ObjectRulePanel.d.ts.map +1 -0
  316. package/dist/components/organisms/game/puzzles/event-handler/RuleEditor.d.ts +39 -0
  317. package/dist/components/organisms/game/puzzles/event-handler/RuleEditor.d.ts.map +1 -0
  318. package/dist/components/organisms/game/puzzles/event-handler/index.d.ts +9 -0
  319. package/dist/components/organisms/game/puzzles/event-handler/index.d.ts.map +1 -0
  320. package/dist/components/organisms/game/puzzles/index.d.ts +49 -0
  321. package/dist/components/organisms/game/puzzles/index.d.ts.map +1 -0
  322. package/dist/components/organisms/game/puzzles/negotiator/NegotiatorBoard.d.ts +54 -0
  323. package/dist/components/organisms/game/puzzles/negotiator/NegotiatorBoard.d.ts.map +1 -0
  324. package/dist/components/organisms/game/puzzles/negotiator/index.d.ts +3 -0
  325. package/dist/components/organisms/game/puzzles/negotiator/index.d.ts.map +1 -0
  326. package/dist/components/organisms/game/puzzles/sequencer/ActionPalette.d.ts +32 -0
  327. package/dist/components/organisms/game/puzzles/sequencer/ActionPalette.d.ts.map +1 -0
  328. package/dist/components/organisms/game/puzzles/sequencer/ActionTile.d.ts +27 -0
  329. package/dist/components/organisms/game/puzzles/sequencer/ActionTile.d.ts.map +1 -0
  330. package/dist/components/organisms/game/puzzles/sequencer/SequenceBar.d.ts +31 -0
  331. package/dist/components/organisms/game/puzzles/sequencer/SequenceBar.d.ts.map +1 -0
  332. package/dist/components/organisms/game/puzzles/sequencer/SequencerBoard.d.ts +67 -0
  333. package/dist/components/organisms/game/puzzles/sequencer/SequencerBoard.d.ts.map +1 -0
  334. package/dist/components/organisms/game/puzzles/sequencer/index.d.ts +3 -0
  335. package/dist/components/organisms/game/puzzles/sequencer/index.d.ts.map +1 -0
  336. package/dist/components/organisms/game/puzzles/simulator/SimulatorBoard.d.ts +55 -0
  337. package/dist/components/organisms/game/puzzles/simulator/SimulatorBoard.d.ts.map +1 -0
  338. package/dist/components/organisms/game/puzzles/simulator/index.d.ts +3 -0
  339. package/dist/components/organisms/game/puzzles/simulator/index.d.ts.map +1 -0
  340. package/dist/components/organisms/game/puzzles/state-architect/CodeView.d.ts +40 -0
  341. package/dist/components/organisms/game/puzzles/state-architect/CodeView.d.ts.map +1 -0
  342. package/dist/components/organisms/game/puzzles/state-architect/StateArchitectBoard.d.ts +78 -0
  343. package/dist/components/organisms/game/puzzles/state-architect/StateArchitectBoard.d.ts.map +1 -0
  344. package/dist/components/organisms/game/puzzles/state-architect/StateNode.d.ts +29 -0
  345. package/dist/components/organisms/game/puzzles/state-architect/StateNode.d.ts.map +1 -0
  346. package/dist/components/organisms/game/puzzles/state-architect/TransitionArrow.d.ts +33 -0
  347. package/dist/components/organisms/game/puzzles/state-architect/TransitionArrow.d.ts.map +1 -0
  348. package/dist/components/organisms/game/puzzles/state-architect/VariablePanel.d.ts +38 -0
  349. package/dist/components/organisms/game/puzzles/state-architect/VariablePanel.d.ts.map +1 -0
  350. package/dist/components/organisms/game/puzzles/state-architect/index.d.ts +3 -0
  351. package/dist/components/organisms/game/puzzles/state-architect/index.d.ts.map +1 -0
  352. package/dist/components/organisms/index.d.ts +68 -0
  353. package/dist/components/organisms/index.d.ts.map +1 -0
  354. package/dist/components/organisms/index.js +168 -0
  355. package/dist/components/organisms/index.js.map +1 -0
  356. package/dist/components/organisms/layout/DashboardGrid.d.ts +25 -0
  357. package/dist/components/organisms/layout/DashboardGrid.d.ts.map +1 -0
  358. package/dist/components/organisms/layout/SplitPane.d.ts +25 -0
  359. package/dist/components/organisms/layout/SplitPane.d.ts.map +1 -0
  360. package/dist/components/organisms/layout/TabbedContainer.d.ts +26 -0
  361. package/dist/components/organisms/layout/TabbedContainer.d.ts.map +1 -0
  362. package/dist/components/organisms/layout/index.d.ts +7 -0
  363. package/dist/components/organisms/layout/index.d.ts.map +1 -0
  364. package/dist/components/templates/AuthLayout.d.ts +20 -0
  365. package/dist/components/templates/AuthLayout.d.ts.map +1 -0
  366. package/dist/components/templates/BattleTemplate.d.ts +31 -0
  367. package/dist/components/templates/BattleTemplate.d.ts.map +1 -0
  368. package/dist/components/templates/CastleTemplate.d.ts +32 -0
  369. package/dist/components/templates/CastleTemplate.d.ts.map +1 -0
  370. package/dist/components/templates/CounterTemplate.d.ts +32 -0
  371. package/dist/components/templates/CounterTemplate.d.ts.map +1 -0
  372. package/dist/components/templates/DashboardLayout.d.ts +20 -0
  373. package/dist/components/templates/DashboardLayout.d.ts.map +1 -0
  374. package/dist/components/templates/GameShell.d.ts +29 -0
  375. package/dist/components/templates/GameShell.d.ts.map +1 -0
  376. package/dist/components/templates/GameTemplate.d.ts +55 -0
  377. package/dist/components/templates/GameTemplate.d.ts.map +1 -0
  378. package/dist/components/templates/WorldMapTemplate.d.ts +35 -0
  379. package/dist/components/templates/WorldMapTemplate.d.ts.map +1 -0
  380. package/dist/components/templates/index.d.ts +17 -0
  381. package/dist/components/templates/index.d.ts.map +1 -0
  382. package/dist/hooks/index.d.ts +17 -0
  383. package/dist/hooks/index.d.ts.map +1 -0
  384. package/dist/hooks/index.js +34 -0
  385. package/dist/hooks/index.js.map +1 -0
  386. package/dist/hooks/useEventBus.d.ts +2 -0
  387. package/dist/hooks/useEventBus.d.ts.map +1 -0
  388. package/dist/hooks/useInfiniteScroll.d.ts +32 -0
  389. package/dist/hooks/useInfiniteScroll.d.ts.map +1 -0
  390. package/dist/hooks/useKeyboard.d.ts +11 -0
  391. package/dist/hooks/useKeyboard.d.ts.map +1 -0
  392. package/dist/hooks/useNavigation.d.ts +41 -0
  393. package/dist/hooks/useNavigation.d.ts.map +1 -0
  394. package/dist/hooks/usePullToRefresh.d.ts +29 -0
  395. package/dist/hooks/usePullToRefresh.d.ts.map +1 -0
  396. package/dist/hooks/useSafeAreaInsets.d.ts +29 -0
  397. package/dist/hooks/useSafeAreaInsets.d.ts.map +1 -0
  398. package/dist/hooks/useScrollHeader.d.ts +33 -0
  399. package/dist/hooks/useScrollHeader.d.ts.map +1 -0
  400. package/dist/hooks/useThemeStyles.d.ts +26 -0
  401. package/dist/hooks/useThemeStyles.d.ts.map +1 -0
  402. package/dist/hooks/useTraitState.d.ts +11 -0
  403. package/dist/hooks/useTraitState.d.ts.map +1 -0
  404. package/dist/hooks/useUIEvents.d.ts +2 -0
  405. package/dist/hooks/useUIEvents.d.ts.map +1 -0
  406. package/dist/index.d.ts +15 -0
  407. package/dist/index.d.ts.map +1 -0
  408. package/dist/index.js +1264 -0
  409. package/dist/index.js.map +1 -0
  410. package/dist/lib/cn.d.ts +2 -0
  411. package/dist/lib/cn.d.ts.map +1 -0
  412. package/dist/lib/index.d.ts +6 -0
  413. package/dist/lib/index.d.ts.map +1 -0
  414. package/dist/lib/index.js +18 -0
  415. package/dist/lib/index.js.map +1 -0
  416. package/dist/lib/theme.d.ts +13 -0
  417. package/dist/lib/theme.d.ts.map +1 -0
  418. package/dist/providers/EventBusProvider.d.ts +2 -0
  419. package/dist/providers/EventBusProvider.d.ts.map +1 -0
  420. package/dist/providers/ThemeContext.d.ts +91 -0
  421. package/dist/providers/ThemeContext.d.ts.map +1 -0
  422. package/dist/providers/ThemeProvider.d.ts +10 -0
  423. package/dist/providers/ThemeProvider.d.ts.map +1 -0
  424. package/dist/providers/index.d.ts +6 -0
  425. package/dist/providers/index.d.ts.map +1 -0
  426. package/dist/providers/index.js +14 -0
  427. package/dist/providers/index.js.map +1 -0
  428. package/dist/themes/almadar.d.ts +8 -0
  429. package/dist/themes/almadar.d.ts.map +1 -0
  430. package/dist/themes/index.d.ts +90 -0
  431. package/dist/themes/index.d.ts.map +1 -0
  432. package/index.js +10 -0
  433. package/package.json +109 -0
@@ -0,0 +1,1125 @@
1
+ import {
2
+ useEventBus
3
+ } from "./chunk-YTVYMEKU.js";
4
+ import {
5
+ useTheme
6
+ } from "./chunk-CUAWHLEK.js";
7
+
8
+ // src/components/atoms/Typography.tsx
9
+ import React from "react";
10
+ import { Text, StyleSheet } from "react-native";
11
+ function Typography({
12
+ variant = "body",
13
+ color,
14
+ align = "left",
15
+ children,
16
+ style,
17
+ isLoading,
18
+ error,
19
+ ...rest
20
+ }) {
21
+ const theme = useTheme();
22
+ if (isLoading) {
23
+ return /* @__PURE__ */ React.createElement(
24
+ Text,
25
+ {
26
+ style: [
27
+ styles.skeleton,
28
+ {
29
+ backgroundColor: theme.colors.muted,
30
+ width: "60%"
31
+ },
32
+ style
33
+ ],
34
+ ...rest
35
+ },
36
+ " "
37
+ );
38
+ }
39
+ const variantStyles = {
40
+ h1: {
41
+ fontSize: theme.typography.sizes["4xl"],
42
+ fontWeight: theme.typography.fontWeight.bold,
43
+ lineHeight: theme.typography.lineHeight * theme.typography.sizes["4xl"],
44
+ color: theme.colors.foreground
45
+ },
46
+ h2: {
47
+ fontSize: theme.typography.sizes["3xl"],
48
+ fontWeight: theme.typography.fontWeight.bold,
49
+ lineHeight: theme.typography.lineHeight * theme.typography.sizes["3xl"],
50
+ color: theme.colors.foreground
51
+ },
52
+ h3: {
53
+ fontSize: theme.typography.sizes["2xl"],
54
+ fontWeight: theme.typography.fontWeight.bold,
55
+ lineHeight: theme.typography.lineHeight * theme.typography.sizes["2xl"],
56
+ color: theme.colors.foreground
57
+ },
58
+ h4: {
59
+ fontSize: theme.typography.sizes.xl,
60
+ fontWeight: theme.typography.fontWeight.medium,
61
+ lineHeight: theme.typography.lineHeight * theme.typography.sizes.xl,
62
+ color: theme.colors.foreground
63
+ },
64
+ body: {
65
+ fontSize: theme.typography.sizes.base,
66
+ fontWeight: theme.typography.fontWeight.normal,
67
+ lineHeight: theme.typography.lineHeight * theme.typography.sizes.base,
68
+ color: theme.colors.foreground
69
+ },
70
+ caption: {
71
+ fontSize: theme.typography.sizes.sm,
72
+ fontWeight: theme.typography.fontWeight.normal,
73
+ lineHeight: theme.typography.lineHeight * theme.typography.sizes.sm,
74
+ color: theme.colors["muted-foreground"]
75
+ },
76
+ label: {
77
+ fontSize: theme.typography.sizes.xs,
78
+ fontWeight: theme.typography.fontWeight.medium,
79
+ lineHeight: theme.typography.lineHeight * theme.typography.sizes.xs,
80
+ color: theme.colors["muted-foreground"],
81
+ textTransform: "uppercase"
82
+ }
83
+ };
84
+ const textColor = error ? theme.colors.error : color || variantStyles[variant].color;
85
+ return /* @__PURE__ */ React.createElement(
86
+ Text,
87
+ {
88
+ style: [
89
+ variantStyles[variant],
90
+ { textAlign: align, color: textColor },
91
+ style
92
+ ],
93
+ ...rest
94
+ },
95
+ children
96
+ );
97
+ }
98
+ var styles = StyleSheet.create({
99
+ skeleton: {
100
+ borderRadius: 4
101
+ }
102
+ });
103
+ Typography.displayName = "Typography";
104
+
105
+ // src/components/molecules/LoadingState.tsx
106
+ import React5 from "react";
107
+ import { ActivityIndicator as ActivityIndicator2, StyleSheet as StyleSheet5 } from "react-native";
108
+
109
+ // src/components/atoms/Stack.tsx
110
+ import React4 from "react";
111
+ import { View, StyleSheet as StyleSheet4 } from "react-native";
112
+
113
+ // src/components/molecules/ErrorState.tsx
114
+ import React3 from "react";
115
+ import { StyleSheet as StyleSheet3 } from "react-native";
116
+
117
+ // src/components/atoms/Button.tsx
118
+ import React2 from "react";
119
+ import {
120
+ TouchableOpacity,
121
+ Text as Text2,
122
+ StyleSheet as StyleSheet2,
123
+ ActivityIndicator
124
+ } from "react-native";
125
+ var Button = ({
126
+ onPress,
127
+ children,
128
+ variant = "default",
129
+ size = "md",
130
+ disabled = false,
131
+ isLoading = false,
132
+ style,
133
+ textStyle,
134
+ action,
135
+ actionPayload
136
+ }) => {
137
+ const theme = useTheme();
138
+ const eventBus = useEventBus();
139
+ const handlePress = () => {
140
+ if (action) {
141
+ eventBus.emit(`UI:${action}`, actionPayload);
142
+ }
143
+ onPress?.();
144
+ };
145
+ const getVariantStyles = () => {
146
+ switch (variant) {
147
+ case "primary":
148
+ return {
149
+ container: {
150
+ backgroundColor: theme.colors.primary
151
+ },
152
+ text: {
153
+ color: theme.colors["primary-foreground"]
154
+ }
155
+ };
156
+ case "secondary":
157
+ return {
158
+ container: {
159
+ backgroundColor: theme.colors.secondary
160
+ },
161
+ text: {
162
+ color: theme.colors["secondary-foreground"]
163
+ }
164
+ };
165
+ case "ghost":
166
+ return {
167
+ container: {
168
+ backgroundColor: "transparent"
169
+ },
170
+ text: {
171
+ color: theme.colors.primary
172
+ }
173
+ };
174
+ case "destructive":
175
+ return {
176
+ container: {
177
+ backgroundColor: theme.colors.error
178
+ },
179
+ text: {
180
+ color: theme.colors["error-foreground"]
181
+ }
182
+ };
183
+ default:
184
+ return {
185
+ container: {
186
+ backgroundColor: theme.colors.card,
187
+ borderWidth: 1,
188
+ borderColor: theme.colors.border
189
+ },
190
+ text: {
191
+ color: theme.colors.foreground
192
+ }
193
+ };
194
+ }
195
+ };
196
+ const sizeStyles = {
197
+ sm: {
198
+ container: {
199
+ paddingVertical: theme.spacing[1],
200
+ paddingHorizontal: theme.spacing[3],
201
+ borderRadius: theme.borderRadius.md
202
+ },
203
+ text: {
204
+ fontSize: theme.typography.sizes.sm
205
+ }
206
+ },
207
+ md: {
208
+ container: {
209
+ paddingVertical: theme.spacing[2],
210
+ paddingHorizontal: theme.spacing[4],
211
+ borderRadius: theme.borderRadius.md
212
+ },
213
+ text: {
214
+ fontSize: theme.typography.sizes.base
215
+ }
216
+ },
217
+ lg: {
218
+ container: {
219
+ paddingVertical: theme.spacing[3],
220
+ paddingHorizontal: theme.spacing[6],
221
+ borderRadius: theme.borderRadius.lg
222
+ },
223
+ text: {
224
+ fontSize: theme.typography.sizes.lg
225
+ }
226
+ }
227
+ };
228
+ const variantStyle = getVariantStyles();
229
+ const sizeStyle = sizeStyles[size];
230
+ return /* @__PURE__ */ React2.createElement(
231
+ TouchableOpacity,
232
+ {
233
+ onPress: handlePress,
234
+ disabled: disabled || isLoading,
235
+ activeOpacity: 0.8,
236
+ style: [
237
+ styles2.button,
238
+ variantStyle.container,
239
+ sizeStyle.container,
240
+ (disabled || isLoading) && { opacity: 0.5 },
241
+ style
242
+ ]
243
+ },
244
+ isLoading ? /* @__PURE__ */ React2.createElement(ActivityIndicator, { color: variantStyle.text.color, size: "small" }) : /* @__PURE__ */ React2.createElement(Text2, { style: [styles2.text, variantStyle.text, sizeStyle.text, textStyle] }, children)
245
+ );
246
+ };
247
+ var styles2 = StyleSheet2.create({
248
+ button: {
249
+ alignItems: "center",
250
+ justifyContent: "center"
251
+ },
252
+ text: {
253
+ fontWeight: "500"
254
+ }
255
+ });
256
+ Button.displayName = "Button";
257
+
258
+ // src/components/molecules/ErrorState.tsx
259
+ var ErrorState = ({
260
+ message = "Something went wrong",
261
+ onRetry
262
+ }) => {
263
+ return /* @__PURE__ */ React3.createElement(VStack, { align: "center", spacing: 16, style: styles3.container }, /* @__PURE__ */ React3.createElement(Typography, { variant: "body", color: "#ef4444" }, message), onRetry && /* @__PURE__ */ React3.createElement(Button, { variant: "secondary", onPress: onRetry }, "Retry"));
264
+ };
265
+ var styles3 = StyleSheet3.create({
266
+ container: {
267
+ padding: 32,
268
+ alignItems: "center",
269
+ justifyContent: "center"
270
+ }
271
+ });
272
+ ErrorState.displayName = "ErrorState";
273
+
274
+ // src/components/atoms/Stack.tsx
275
+ var VStack = ({
276
+ spacing = 8,
277
+ align = "stretch",
278
+ justify = "flex-start",
279
+ children,
280
+ style,
281
+ testID,
282
+ isLoading,
283
+ error
284
+ }) => {
285
+ if (isLoading) {
286
+ return /* @__PURE__ */ React4.createElement(View, { style: [styles4.vstack, style] }, /* @__PURE__ */ React4.createElement(LoadingState, null));
287
+ }
288
+ if (error) {
289
+ return /* @__PURE__ */ React4.createElement(View, { style: [styles4.vstack, style] }, /* @__PURE__ */ React4.createElement(ErrorState, { message: error.message }));
290
+ }
291
+ const stackStyles = [
292
+ styles4.vstack,
293
+ { gap: spacing, alignItems: align, justifyContent: justify }
294
+ ];
295
+ if (Array.isArray(style)) {
296
+ stackStyles.push(...style);
297
+ } else if (style) {
298
+ stackStyles.push(style);
299
+ }
300
+ return /* @__PURE__ */ React4.createElement(View, { testID, style: stackStyles }, children);
301
+ };
302
+ var HStack = ({
303
+ spacing = 8,
304
+ align = "center",
305
+ justify = "flex-start",
306
+ children,
307
+ style,
308
+ testID,
309
+ isLoading,
310
+ error
311
+ }) => {
312
+ if (isLoading) {
313
+ return /* @__PURE__ */ React4.createElement(View, { style: [styles4.hstack, style] }, /* @__PURE__ */ React4.createElement(LoadingState, null));
314
+ }
315
+ if (error) {
316
+ return /* @__PURE__ */ React4.createElement(View, { style: [styles4.hstack, style] }, /* @__PURE__ */ React4.createElement(ErrorState, { message: error.message }));
317
+ }
318
+ const stackStyles = [
319
+ styles4.hstack,
320
+ { gap: spacing, alignItems: align, justifyContent: justify }
321
+ ];
322
+ if (Array.isArray(style)) {
323
+ stackStyles.push(...style);
324
+ } else if (style) {
325
+ stackStyles.push(style);
326
+ }
327
+ return /* @__PURE__ */ React4.createElement(View, { testID, style: stackStyles }, children);
328
+ };
329
+ var Box = ({
330
+ children,
331
+ style,
332
+ testID,
333
+ isLoading,
334
+ error
335
+ }) => {
336
+ if (isLoading) {
337
+ return /* @__PURE__ */ React4.createElement(View, { style: [styles4.box, style] }, /* @__PURE__ */ React4.createElement(LoadingState, null));
338
+ }
339
+ if (error) {
340
+ return /* @__PURE__ */ React4.createElement(View, { style: [styles4.box, style] }, /* @__PURE__ */ React4.createElement(ErrorState, { message: error.message }));
341
+ }
342
+ const boxStyles = [styles4.box];
343
+ if (Array.isArray(style)) {
344
+ boxStyles.push(...style);
345
+ } else if (style) {
346
+ boxStyles.push(style);
347
+ }
348
+ return /* @__PURE__ */ React4.createElement(View, { testID, style: boxStyles }, children);
349
+ };
350
+ var styles4 = StyleSheet4.create({
351
+ vstack: {
352
+ flexDirection: "column"
353
+ },
354
+ hstack: {
355
+ flexDirection: "row"
356
+ },
357
+ box: {
358
+ // Base box styles - mostly empty to allow full customization
359
+ }
360
+ });
361
+ VStack.displayName = "VStack";
362
+ HStack.displayName = "HStack";
363
+ Box.displayName = "Box";
364
+
365
+ // src/components/molecules/LoadingState.tsx
366
+ var LoadingState = ({
367
+ message = "Loading..."
368
+ }) => {
369
+ return /* @__PURE__ */ React5.createElement(VStack, { align: "center", spacing: 12, style: styles5.container }, /* @__PURE__ */ React5.createElement(ActivityIndicator2, { size: "large", color: "#6366f1" }), /* @__PURE__ */ React5.createElement(Typography, { variant: "body", color: "#6b7280" }, message));
370
+ };
371
+ var styles5 = StyleSheet5.create({
372
+ container: {
373
+ padding: 32,
374
+ alignItems: "center",
375
+ justifyContent: "center"
376
+ }
377
+ });
378
+ LoadingState.displayName = "LoadingState";
379
+
380
+ // src/components/atoms/Input.tsx
381
+ import React6 from "react";
382
+ import {
383
+ TextInput,
384
+ StyleSheet as StyleSheet6,
385
+ View as View2,
386
+ Text as Text3
387
+ } from "react-native";
388
+ var Input = ({
389
+ label,
390
+ errorMessage,
391
+ helperText,
392
+ containerStyle,
393
+ style,
394
+ isLoading,
395
+ error,
396
+ changeEvent,
397
+ focusEvent,
398
+ onChangeText,
399
+ onFocus,
400
+ onBlur,
401
+ ...textInputProps
402
+ }) => {
403
+ const theme = useTheme();
404
+ const eventBus = useEventBus();
405
+ const handleChangeText = (text) => {
406
+ if (changeEvent) {
407
+ eventBus.emit(`UI:${changeEvent}`, { value: text });
408
+ }
409
+ onChangeText?.(text);
410
+ };
411
+ const handleFocus = () => {
412
+ if (focusEvent) {
413
+ eventBus.emit(`UI:${focusEvent}`);
414
+ }
415
+ onFocus?.({});
416
+ };
417
+ if (isLoading) {
418
+ return /* @__PURE__ */ React6.createElement(View2, { style: [styles6.container, containerStyle] }, label && /* @__PURE__ */ React6.createElement(Text3, { style: [styles6.label, { color: theme.colors.foreground }] }, label), /* @__PURE__ */ React6.createElement(LoadingState, { message: "Loading..." }));
419
+ }
420
+ const errorText = error?.message || errorMessage;
421
+ return /* @__PURE__ */ React6.createElement(View2, { style: [styles6.container, containerStyle] }, label && /* @__PURE__ */ React6.createElement(Text3, { style: [styles6.label, { color: theme.colors.foreground }] }, label), /* @__PURE__ */ React6.createElement(
422
+ TextInput,
423
+ {
424
+ style: [
425
+ styles6.input,
426
+ {
427
+ borderColor: errorText ? theme.colors.error : theme.colors.border,
428
+ backgroundColor: theme.colors.card,
429
+ color: theme.colors.foreground
430
+ },
431
+ style
432
+ ],
433
+ placeholderTextColor: theme.colors["muted-foreground"],
434
+ onChangeText: handleChangeText,
435
+ onFocus: handleFocus,
436
+ onBlur,
437
+ ...textInputProps
438
+ }
439
+ ), errorText ? /* @__PURE__ */ React6.createElement(Text3, { style: [styles6.errorText, { color: theme.colors.error }] }, errorText) : helperText ? /* @__PURE__ */ React6.createElement(Text3, { style: [styles6.helperText, { color: theme.colors["muted-foreground"] }] }, helperText) : null);
440
+ };
441
+ var styles6 = StyleSheet6.create({
442
+ container: {
443
+ width: "100%"
444
+ },
445
+ label: {
446
+ fontSize: 14,
447
+ fontWeight: "500",
448
+ marginBottom: 6
449
+ },
450
+ input: {
451
+ borderWidth: 1,
452
+ borderRadius: 8,
453
+ paddingHorizontal: 12,
454
+ paddingVertical: 10,
455
+ fontSize: 16
456
+ },
457
+ errorText: {
458
+ fontSize: 12,
459
+ marginTop: 4
460
+ },
461
+ helperText: {
462
+ fontSize: 12,
463
+ marginTop: 4
464
+ }
465
+ });
466
+ Input.displayName = "Input";
467
+
468
+ // src/components/atoms/Select.tsx
469
+ import React7, { useState } from "react";
470
+ import {
471
+ TouchableOpacity as TouchableOpacity2,
472
+ View as View3,
473
+ Text as Text4,
474
+ StyleSheet as StyleSheet7,
475
+ Modal,
476
+ FlatList,
477
+ SafeAreaView
478
+ } from "react-native";
479
+ var Select = ({
480
+ options,
481
+ value,
482
+ onChange,
483
+ placeholder = "Select...",
484
+ disabled = false,
485
+ style,
486
+ textStyle,
487
+ isLoading,
488
+ error,
489
+ changeEvent,
490
+ actionPayload
491
+ }) => {
492
+ const theme = useTheme();
493
+ const eventBus = useEventBus();
494
+ const [isOpen, setIsOpen] = useState(false);
495
+ const selectedOption = options.find((opt) => opt.value === value);
496
+ const handleSelect = (selectedValue) => {
497
+ if (changeEvent) {
498
+ eventBus.emit(`UI:${changeEvent}`, { ...actionPayload, value: selectedValue });
499
+ }
500
+ onChange?.(selectedValue);
501
+ setIsOpen(false);
502
+ };
503
+ const handleOpen = () => {
504
+ if (!disabled && !isLoading) {
505
+ setIsOpen(true);
506
+ }
507
+ };
508
+ if (isLoading) {
509
+ return /* @__PURE__ */ React7.createElement(View3, { style: [styles7.container, style] }, /* @__PURE__ */ React7.createElement(LoadingState, { message: "Loading..." }));
510
+ }
511
+ if (error) {
512
+ return /* @__PURE__ */ React7.createElement(View3, { style: [styles7.container, style] }, /* @__PURE__ */ React7.createElement(ErrorState, { message: error.message }));
513
+ }
514
+ return /* @__PURE__ */ React7.createElement(React7.Fragment, null, /* @__PURE__ */ React7.createElement(
515
+ TouchableOpacity2,
516
+ {
517
+ onPress: handleOpen,
518
+ disabled,
519
+ activeOpacity: 0.8,
520
+ style: [
521
+ styles7.button,
522
+ {
523
+ borderColor: theme.colors.border,
524
+ backgroundColor: theme.colors.card,
525
+ opacity: disabled ? 0.5 : 1
526
+ },
527
+ style
528
+ ]
529
+ },
530
+ /* @__PURE__ */ React7.createElement(
531
+ Text4,
532
+ {
533
+ style: [
534
+ styles7.buttonText,
535
+ {
536
+ color: selectedOption ? theme.colors.foreground : theme.colors["muted-foreground"]
537
+ },
538
+ textStyle
539
+ ],
540
+ numberOfLines: 1
541
+ },
542
+ selectedOption?.label || placeholder
543
+ ),
544
+ /* @__PURE__ */ React7.createElement(Text4, { style: [styles7.chevron, { color: theme.colors["muted-foreground"] }] }, "\u25BC")
545
+ ), /* @__PURE__ */ React7.createElement(
546
+ Modal,
547
+ {
548
+ visible: isOpen,
549
+ transparent: true,
550
+ animationType: "slide",
551
+ onRequestClose: () => setIsOpen(false)
552
+ },
553
+ /* @__PURE__ */ React7.createElement(SafeAreaView, { style: [styles7.modalContainer, { backgroundColor: theme.colors.background }] }, /* @__PURE__ */ React7.createElement(View3, { style: styles7.modalHeader }, /* @__PURE__ */ React7.createElement(TouchableOpacity2, { onPress: () => setIsOpen(false) }, /* @__PURE__ */ React7.createElement(Text4, { style: [styles7.closeButton, { color: theme.colors.primary }] }, "Close"))), /* @__PURE__ */ React7.createElement(
554
+ FlatList,
555
+ {
556
+ data: options,
557
+ keyExtractor: (item) => item.value,
558
+ renderItem: ({ item }) => /* @__PURE__ */ React7.createElement(
559
+ TouchableOpacity2,
560
+ {
561
+ style: [
562
+ styles7.option,
563
+ {
564
+ backgroundColor: item.value === value ? theme.colors.primary : theme.colors.card,
565
+ borderBottomColor: theme.colors.border
566
+ }
567
+ ],
568
+ onPress: () => handleSelect(item.value)
569
+ },
570
+ /* @__PURE__ */ React7.createElement(
571
+ Text4,
572
+ {
573
+ style: {
574
+ color: item.value === value ? theme.colors["primary-foreground"] : theme.colors.foreground
575
+ }
576
+ },
577
+ item.label
578
+ )
579
+ )
580
+ }
581
+ ))
582
+ ));
583
+ };
584
+ var styles7 = StyleSheet7.create({
585
+ container: {
586
+ width: "100%"
587
+ },
588
+ button: {
589
+ flexDirection: "row",
590
+ alignItems: "center",
591
+ justifyContent: "space-between",
592
+ borderWidth: 1,
593
+ borderRadius: 8,
594
+ paddingHorizontal: 12,
595
+ paddingVertical: 10
596
+ },
597
+ buttonText: {
598
+ fontSize: 16,
599
+ flex: 1
600
+ },
601
+ chevron: {
602
+ fontSize: 12,
603
+ marginLeft: 8
604
+ },
605
+ modalContainer: {
606
+ flex: 1
607
+ },
608
+ modalHeader: {
609
+ flexDirection: "row",
610
+ justifyContent: "flex-end",
611
+ padding: 16,
612
+ borderBottomWidth: 1,
613
+ borderBottomColor: "#e2e8f0"
614
+ },
615
+ closeButton: {
616
+ fontSize: 16,
617
+ fontWeight: "500"
618
+ },
619
+ option: {
620
+ padding: 16,
621
+ borderBottomWidth: 1
622
+ }
623
+ });
624
+ Select.displayName = "Select";
625
+
626
+ // src/components/atoms/Card.tsx
627
+ import React8 from "react";
628
+ import { View as View4, StyleSheet as StyleSheet8, TouchableOpacity as TouchableOpacity3 } from "react-native";
629
+ var Card = ({
630
+ children,
631
+ onPress,
632
+ style,
633
+ padding = "md",
634
+ variant = "default",
635
+ isLoading,
636
+ error,
637
+ action,
638
+ actionPayload
639
+ }) => {
640
+ const theme = useTheme();
641
+ const eventBus = useEventBus();
642
+ const handlePress = () => {
643
+ if (action) {
644
+ eventBus.emit(`UI:${action}`, actionPayload);
645
+ }
646
+ onPress?.();
647
+ };
648
+ if (isLoading) {
649
+ return /* @__PURE__ */ React8.createElement(View4, { style: [styles8.card, style] }, /* @__PURE__ */ React8.createElement(LoadingState, null));
650
+ }
651
+ if (error) {
652
+ return /* @__PURE__ */ React8.createElement(View4, { style: [styles8.card, style] }, /* @__PURE__ */ React8.createElement(ErrorState, { message: error.message }));
653
+ }
654
+ const paddingStyles = {
655
+ none: { padding: 0 },
656
+ sm: { padding: theme.spacing[3] },
657
+ md: { padding: theme.spacing[4] },
658
+ lg: { padding: theme.spacing[6] }
659
+ };
660
+ const variantStyles = {
661
+ default: {
662
+ backgroundColor: theme.colors.card,
663
+ ...theme.shadows.main
664
+ },
665
+ elevated: {
666
+ backgroundColor: theme.colors.card,
667
+ ...theme.shadows.lg
668
+ },
669
+ outlined: {
670
+ backgroundColor: theme.colors.card,
671
+ borderWidth: 1,
672
+ borderColor: theme.colors.border,
673
+ ...theme.shadows.none
674
+ }
675
+ };
676
+ const cardStyles = [
677
+ styles8.card,
678
+ variantStyles[variant],
679
+ paddingStyles[padding]
680
+ ];
681
+ if (Array.isArray(style)) {
682
+ cardStyles.push(...style);
683
+ } else if (style) {
684
+ cardStyles.push(style);
685
+ }
686
+ const content = /* @__PURE__ */ React8.createElement(View4, { style: cardStyles }, children);
687
+ if (onPress || action) {
688
+ return /* @__PURE__ */ React8.createElement(TouchableOpacity3, { onPress: handlePress, activeOpacity: 0.9 }, content);
689
+ }
690
+ return content;
691
+ };
692
+ var styles8 = StyleSheet8.create({
693
+ card: {
694
+ borderRadius: 12
695
+ }
696
+ });
697
+ Card.displayName = "Card";
698
+
699
+ // src/components/atoms/Badge.tsx
700
+ import React9 from "react";
701
+ import { View as View5, Text as Text5, StyleSheet as StyleSheet9 } from "react-native";
702
+ var Badge = ({
703
+ children,
704
+ variant = "default",
705
+ size = "md",
706
+ style,
707
+ isLoading,
708
+ error
709
+ }) => {
710
+ const theme = useTheme();
711
+ if (isLoading) {
712
+ return /* @__PURE__ */ React9.createElement(View5, { style: [styles9.badge, style] }, /* @__PURE__ */ React9.createElement(LoadingState, { message: "Loading..." }));
713
+ }
714
+ if (error) {
715
+ return /* @__PURE__ */ React9.createElement(View5, { style: [styles9.badge, style] }, /* @__PURE__ */ React9.createElement(ErrorState, { message: error.message }));
716
+ }
717
+ const variantStyles = {
718
+ default: {
719
+ container: {
720
+ backgroundColor: theme.colors.secondary
721
+ },
722
+ text: {
723
+ color: theme.colors["secondary-foreground"]
724
+ }
725
+ },
726
+ primary: {
727
+ container: {
728
+ backgroundColor: theme.colors.primary
729
+ },
730
+ text: {
731
+ color: theme.colors["primary-foreground"]
732
+ }
733
+ },
734
+ secondary: {
735
+ container: {
736
+ backgroundColor: theme.colors["secondary-hover"]
737
+ },
738
+ text: {
739
+ color: theme.colors["secondary-foreground"]
740
+ }
741
+ },
742
+ success: {
743
+ container: {
744
+ backgroundColor: theme.colors.success
745
+ },
746
+ text: {
747
+ color: theme.colors["success-foreground"]
748
+ }
749
+ },
750
+ warning: {
751
+ container: {
752
+ backgroundColor: theme.colors.warning
753
+ },
754
+ text: {
755
+ color: theme.colors["warning-foreground"]
756
+ }
757
+ },
758
+ error: {
759
+ container: {
760
+ backgroundColor: theme.colors.error
761
+ },
762
+ text: {
763
+ color: theme.colors["error-foreground"]
764
+ }
765
+ }
766
+ };
767
+ const sizeStyles = {
768
+ sm: {
769
+ container: {
770
+ paddingHorizontal: theme.spacing[2],
771
+ paddingVertical: 2,
772
+ borderRadius: theme.borderRadius.full
773
+ },
774
+ text: {
775
+ fontSize: theme.typography.sizes.xs
776
+ }
777
+ },
778
+ md: {
779
+ container: {
780
+ paddingHorizontal: theme.spacing[3],
781
+ paddingVertical: theme.spacing[1],
782
+ borderRadius: theme.borderRadius.full
783
+ },
784
+ text: {
785
+ fontSize: theme.typography.sizes.sm
786
+ }
787
+ }
788
+ };
789
+ const variantStyle = variantStyles[variant];
790
+ const sizeStyle = sizeStyles[size];
791
+ return /* @__PURE__ */ React9.createElement(View5, { style: [styles9.badge, variantStyle.container, sizeStyle.container, style] }, /* @__PURE__ */ React9.createElement(Text5, { style: [styles9.text, variantStyle.text, sizeStyle.text] }, children));
792
+ };
793
+ var styles9 = StyleSheet9.create({
794
+ badge: {
795
+ alignSelf: "flex-start"
796
+ },
797
+ text: {
798
+ fontWeight: "500"
799
+ }
800
+ });
801
+ Badge.displayName = "Badge";
802
+
803
+ // src/components/atoms/ProgressBar.tsx
804
+ import React10 from "react";
805
+ import { View as View6, StyleSheet as StyleSheet10, Text as Text6 } from "react-native";
806
+ var ProgressBar = ({
807
+ progress,
808
+ showLabel = false,
809
+ size = "md",
810
+ style,
811
+ trackStyle,
812
+ fillStyle,
813
+ isLoading,
814
+ error
815
+ }) => {
816
+ const theme = useTheme();
817
+ const clampedProgress = Math.max(0, Math.min(100, progress));
818
+ if (isLoading) {
819
+ return /* @__PURE__ */ React10.createElement(View6, { style: [styles10.container, style] }, /* @__PURE__ */ React10.createElement(LoadingState, { message: "Loading..." }));
820
+ }
821
+ if (error) {
822
+ return /* @__PURE__ */ React10.createElement(View6, { style: [styles10.container, style] }, /* @__PURE__ */ React10.createElement(ErrorState, { message: error.message }));
823
+ }
824
+ const heightMap = {
825
+ sm: 4,
826
+ md: 8,
827
+ lg: 12
828
+ };
829
+ const height = heightMap[size];
830
+ return /* @__PURE__ */ React10.createElement(View6, { style: [styles10.container, style] }, /* @__PURE__ */ React10.createElement(
831
+ View6,
832
+ {
833
+ style: [
834
+ styles10.track,
835
+ {
836
+ height,
837
+ backgroundColor: theme.colors.muted,
838
+ borderRadius: height / 2
839
+ },
840
+ trackStyle
841
+ ]
842
+ },
843
+ /* @__PURE__ */ React10.createElement(
844
+ View6,
845
+ {
846
+ style: [
847
+ styles10.fill,
848
+ {
849
+ width: `${clampedProgress}%`,
850
+ height: "100%",
851
+ backgroundColor: theme.colors.primary,
852
+ borderRadius: height / 2
853
+ },
854
+ fillStyle
855
+ ]
856
+ }
857
+ )
858
+ ), showLabel && /* @__PURE__ */ React10.createElement(Text6, { style: [styles10.label, { color: theme.colors.foreground }] }, Math.round(clampedProgress), "%"));
859
+ };
860
+ var styles10 = StyleSheet10.create({
861
+ container: {
862
+ width: "100%"
863
+ },
864
+ track: {
865
+ width: "100%",
866
+ overflow: "hidden"
867
+ },
868
+ fill: {
869
+ // Animated fill
870
+ },
871
+ label: {
872
+ marginTop: 4,
873
+ fontSize: 12,
874
+ fontWeight: "500",
875
+ textAlign: "right"
876
+ }
877
+ });
878
+ ProgressBar.displayName = "ProgressBar";
879
+
880
+ // src/components/atoms/game/HealthBar.tsx
881
+ import React11 from "react";
882
+ import { View as View7, Text as Text7, StyleSheet as StyleSheet11 } from "react-native";
883
+ var sizeMap = {
884
+ sm: { heart: 16, bar: 8, text: 12 },
885
+ md: { heart: 24, bar: 12, text: 16 },
886
+ lg: { heart: 32, bar: 16, text: 20 }
887
+ };
888
+ var HeartIcon = ({
889
+ filled,
890
+ size,
891
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
892
+ color
893
+ }) => /* @__PURE__ */ React11.createElement(
894
+ View7,
895
+ {
896
+ style: {
897
+ width: size,
898
+ height: size,
899
+ justifyContent: "center",
900
+ alignItems: "center"
901
+ }
902
+ },
903
+ /* @__PURE__ */ React11.createElement(
904
+ Text7,
905
+ {
906
+ style: {
907
+ fontSize: size * 0.8,
908
+ color: filled ? "#ef4444" : "#9ca3af"
909
+ }
910
+ },
911
+ filled ? "\u2665" : "\u2661"
912
+ )
913
+ );
914
+ var HealthBar = ({
915
+ current,
916
+ max,
917
+ format = "hearts",
918
+ size = "md",
919
+ style,
920
+ animated = true
921
+ }) => {
922
+ const theme = useTheme();
923
+ const sizes = sizeMap[size];
924
+ const percentage = Math.max(0, Math.min(100, current / max * 100));
925
+ if (format === "hearts") {
926
+ return /* @__PURE__ */ React11.createElement(View7, { style: [styles11.heartsContainer, style] }, Array.from({ length: max }).map((_, i) => /* @__PURE__ */ React11.createElement(
927
+ View7,
928
+ {
929
+ key: i,
930
+ style: [
931
+ animated && styles11.animatedHeart
932
+ ]
933
+ },
934
+ /* @__PURE__ */ React11.createElement(
935
+ HeartIcon,
936
+ {
937
+ filled: i < current,
938
+ size: sizes.heart,
939
+ color: theme.colors.error
940
+ }
941
+ )
942
+ )));
943
+ }
944
+ if (format === "bar") {
945
+ const barColor = percentage > 66 ? "#22c55e" : percentage > 33 ? "#eab308" : "#ef4444";
946
+ return /* @__PURE__ */ React11.createElement(
947
+ View7,
948
+ {
949
+ style: [
950
+ styles11.barContainer,
951
+ {
952
+ height: sizes.bar,
953
+ backgroundColor: theme.colors.muted
954
+ },
955
+ style
956
+ ]
957
+ },
958
+ /* @__PURE__ */ React11.createElement(
959
+ View7,
960
+ {
961
+ style: [
962
+ styles11.barFill,
963
+ {
964
+ width: `${percentage}%`,
965
+ backgroundColor: barColor
966
+ },
967
+ animated && styles11.animatedBar
968
+ ]
969
+ }
970
+ )
971
+ );
972
+ }
973
+ return /* @__PURE__ */ React11.createElement(
974
+ Text7,
975
+ {
976
+ style: [
977
+ styles11.numericText,
978
+ {
979
+ fontSize: sizes.text,
980
+ color: theme.colors.foreground
981
+ },
982
+ style
983
+ ]
984
+ },
985
+ current,
986
+ "/",
987
+ max
988
+ );
989
+ };
990
+ var styles11 = StyleSheet11.create({
991
+ heartsContainer: {
992
+ flexDirection: "row",
993
+ alignItems: "center",
994
+ gap: 4
995
+ },
996
+ animatedHeart: {
997
+ // React Native transform animation could be added here
998
+ },
999
+ barContainer: {
1000
+ width: 96,
1001
+ borderRadius: 9999,
1002
+ overflow: "hidden"
1003
+ },
1004
+ barFill: {
1005
+ height: "100%",
1006
+ borderRadius: 9999
1007
+ },
1008
+ animatedBar: {
1009
+ // LayoutAnimation could be configured
1010
+ },
1011
+ numericText: {
1012
+ fontFamily: "monospace",
1013
+ fontWeight: "700"
1014
+ }
1015
+ });
1016
+ HealthBar.displayName = "HealthBar";
1017
+
1018
+ // src/components/atoms/game/ScoreDisplay.tsx
1019
+ import React12, { useState as useState2, useEffect } from "react";
1020
+ import { View as View8, Text as Text8, StyleSheet as StyleSheet12 } from "react-native";
1021
+ var sizeMap2 = {
1022
+ sm: { fontSize: 14 },
1023
+ md: { fontSize: 18 },
1024
+ lg: { fontSize: 24 },
1025
+ xl: { fontSize: 36 }
1026
+ };
1027
+ var ScoreDisplay = ({
1028
+ value,
1029
+ label,
1030
+ icon,
1031
+ size = "md",
1032
+ style,
1033
+ animated = true,
1034
+ locale = "en-US"
1035
+ }) => {
1036
+ const theme = useTheme();
1037
+ const [displayValue, setDisplayValue] = useState2(value);
1038
+ const [isAnimating, setIsAnimating] = useState2(false);
1039
+ const sizeConfig = sizeMap2[size] ?? sizeMap2.md;
1040
+ useEffect(() => {
1041
+ if (!animated || displayValue === value) {
1042
+ setDisplayValue(value);
1043
+ return;
1044
+ }
1045
+ setIsAnimating(true);
1046
+ const diff = value - displayValue;
1047
+ const steps = Math.min(Math.abs(diff), 20);
1048
+ const increment = diff / steps;
1049
+ let current = displayValue;
1050
+ let step = 0;
1051
+ const timer = setInterval(() => {
1052
+ step++;
1053
+ current += increment;
1054
+ setDisplayValue(Math.round(current));
1055
+ if (step >= steps) {
1056
+ clearInterval(timer);
1057
+ setDisplayValue(value);
1058
+ setIsAnimating(false);
1059
+ }
1060
+ }, 50);
1061
+ return () => clearInterval(timer);
1062
+ }, [value, animated]);
1063
+ const formattedValue = new Intl.NumberFormat(locale).format(displayValue);
1064
+ return /* @__PURE__ */ React12.createElement(
1065
+ View8,
1066
+ {
1067
+ style: [
1068
+ styles12.container,
1069
+ {
1070
+ opacity: isAnimating ? 0.7 : 1
1071
+ },
1072
+ style
1073
+ ]
1074
+ },
1075
+ icon && /* @__PURE__ */ React12.createElement(Text8, { style: { fontSize: sizeConfig.fontSize, marginRight: 8 } }, icon),
1076
+ label && /* @__PURE__ */ React12.createElement(
1077
+ Text8,
1078
+ {
1079
+ style: {
1080
+ fontSize: sizeConfig.fontSize,
1081
+ color: theme.colors["muted-foreground"],
1082
+ marginRight: 8
1083
+ }
1084
+ },
1085
+ label
1086
+ ),
1087
+ /* @__PURE__ */ React12.createElement(
1088
+ Text8,
1089
+ {
1090
+ style: {
1091
+ fontSize: sizeConfig.fontSize,
1092
+ color: theme.colors.foreground,
1093
+ fontWeight: "700",
1094
+ fontVariant: ["tabular-nums"]
1095
+ }
1096
+ },
1097
+ formattedValue
1098
+ )
1099
+ );
1100
+ };
1101
+ var styles12 = StyleSheet12.create({
1102
+ container: {
1103
+ flexDirection: "row",
1104
+ alignItems: "center"
1105
+ }
1106
+ });
1107
+ ScoreDisplay.displayName = "ScoreDisplay";
1108
+
1109
+ export {
1110
+ Typography,
1111
+ LoadingState,
1112
+ Button,
1113
+ ErrorState,
1114
+ VStack,
1115
+ HStack,
1116
+ Box,
1117
+ Input,
1118
+ Select,
1119
+ Card,
1120
+ Badge,
1121
+ ProgressBar,
1122
+ HealthBar,
1123
+ ScoreDisplay
1124
+ };
1125
+ //# sourceMappingURL=chunk-7C5JCLLY.js.map