@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,795 @@
1
+ import {
2
+ Button,
3
+ Card,
4
+ ErrorState,
5
+ HStack,
6
+ HealthBar,
7
+ LoadingState,
8
+ ScoreDisplay,
9
+ Typography,
10
+ VStack
11
+ } from "./chunk-7C5JCLLY.js";
12
+ import {
13
+ useEventBus
14
+ } from "./chunk-YTVYMEKU.js";
15
+ import {
16
+ useTheme
17
+ } from "./chunk-CUAWHLEK.js";
18
+
19
+ // src/components/molecules/EmptyState.tsx
20
+ import React from "react";
21
+ import { StyleSheet } from "react-native";
22
+ var EmptyState = ({
23
+ message = "No data available",
24
+ icon
25
+ }) => {
26
+ return /* @__PURE__ */ React.createElement(VStack, { align: "center", spacing: 12, style: styles.container }, icon, /* @__PURE__ */ React.createElement(Typography, { variant: "body", color: "#6b7280" }, message));
27
+ };
28
+ var styles = StyleSheet.create({
29
+ container: {
30
+ padding: 32,
31
+ alignItems: "center",
32
+ justifyContent: "center"
33
+ }
34
+ });
35
+ EmptyState.displayName = "EmptyState";
36
+
37
+ // src/components/molecules/List.tsx
38
+ import React2 from "react";
39
+ import {
40
+ FlatList
41
+ } from "react-native";
42
+ function List({
43
+ data,
44
+ renderItem,
45
+ keyExtractor,
46
+ isLoading,
47
+ isError,
48
+ onRetry,
49
+ emptyMessage = "No items found",
50
+ ...flatListProps
51
+ }) {
52
+ if (isLoading) {
53
+ return /* @__PURE__ */ React2.createElement(LoadingState, null);
54
+ }
55
+ if (isError) {
56
+ return /* @__PURE__ */ React2.createElement(ErrorState, { onRetry });
57
+ }
58
+ if (!data || data.length === 0) {
59
+ return /* @__PURE__ */ React2.createElement(EmptyState, { message: emptyMessage });
60
+ }
61
+ return /* @__PURE__ */ React2.createElement(
62
+ FlatList,
63
+ {
64
+ data,
65
+ renderItem: ({ item }) => renderItem(item),
66
+ keyExtractor,
67
+ ...flatListProps
68
+ }
69
+ );
70
+ }
71
+ List.displayName = "List";
72
+
73
+ // src/components/molecules/Modal.tsx
74
+ import React3, { useCallback } from "react";
75
+ import {
76
+ Modal as RNModal,
77
+ View,
78
+ TouchableOpacity,
79
+ StyleSheet as StyleSheet2
80
+ } from "react-native";
81
+ var Modal = ({
82
+ isOpen,
83
+ onClose,
84
+ title,
85
+ children,
86
+ footer,
87
+ size = "md",
88
+ showCloseButton = true,
89
+ closeOnBackdrop = true,
90
+ animationType = "fade",
91
+ ...modalProps
92
+ }) => {
93
+ const handleBackdropPress = useCallback(() => {
94
+ if (closeOnBackdrop) {
95
+ onClose();
96
+ }
97
+ }, [closeOnBackdrop, onClose]);
98
+ const transparent = animationType !== "slide";
99
+ return /* @__PURE__ */ React3.createElement(
100
+ RNModal,
101
+ {
102
+ visible: isOpen,
103
+ animationType,
104
+ transparent,
105
+ onRequestClose: onClose,
106
+ ...modalProps
107
+ },
108
+ /* @__PURE__ */ React3.createElement(
109
+ TouchableOpacity,
110
+ {
111
+ style: styles2.overlay,
112
+ activeOpacity: 1,
113
+ onPress: handleBackdropPress
114
+ },
115
+ /* @__PURE__ */ React3.createElement(View, { style: styles2.centeredView }, /* @__PURE__ */ React3.createElement(TouchableOpacity, { activeOpacity: 1, onPress: (e) => e.stopPropagation() }, /* @__PURE__ */ React3.createElement(Card, { style: [styles2.modalCard, styles2[size]] }, /* @__PURE__ */ React3.createElement(VStack, { spacing: 16 }, title && /* @__PURE__ */ React3.createElement(HStack, { justify: "space-between", align: "center" }, /* @__PURE__ */ React3.createElement(Typography, { variant: "h4" }, title), showCloseButton && /* @__PURE__ */ React3.createElement(TouchableOpacity, { onPress: onClose }, /* @__PURE__ */ React3.createElement(Typography, { variant: "body", color: "#6b7280" }, "\u2715"))), /* @__PURE__ */ React3.createElement(View, null, children), footer && /* @__PURE__ */ React3.createElement(HStack, { justify: "flex-end", spacing: 12 }, footer)))))
116
+ )
117
+ );
118
+ };
119
+ var styles2 = StyleSheet2.create({
120
+ overlay: {
121
+ flex: 1,
122
+ backgroundColor: "rgba(0, 0, 0, 0.5)"
123
+ },
124
+ centeredView: {
125
+ flex: 1,
126
+ justifyContent: "center",
127
+ alignItems: "center",
128
+ padding: 20
129
+ },
130
+ modalCard: {
131
+ width: "100%",
132
+ maxWidth: 400
133
+ },
134
+ sm: {
135
+ maxWidth: 300
136
+ },
137
+ md: {
138
+ maxWidth: 400
139
+ },
140
+ lg: {
141
+ maxWidth: 600
142
+ }
143
+ });
144
+ Modal.displayName = "Modal";
145
+ var ConfirmModal = ({
146
+ isOpen,
147
+ onClose,
148
+ onConfirm,
149
+ title = "Confirm",
150
+ message = "Are you sure you want to proceed?",
151
+ confirmLabel = "Confirm",
152
+ cancelLabel = "Cancel"
153
+ }) => {
154
+ return /* @__PURE__ */ React3.createElement(
155
+ Modal,
156
+ {
157
+ isOpen,
158
+ onClose,
159
+ title,
160
+ footer: /* @__PURE__ */ React3.createElement(React3.Fragment, null, /* @__PURE__ */ React3.createElement(Typography, { variant: "body", color: "#6b7280", onPress: onClose }, cancelLabel), /* @__PURE__ */ React3.createElement(Typography, { variant: "body", color: "#ef4444", onPress: onConfirm }, confirmLabel))
161
+ },
162
+ /* @__PURE__ */ React3.createElement(Typography, { variant: "body" }, message)
163
+ );
164
+ };
165
+ ConfirmModal.displayName = "ConfirmModal";
166
+
167
+ // src/components/molecules/Drawer.tsx
168
+ import React4 from "react";
169
+ import {
170
+ View as View2,
171
+ StyleSheet as StyleSheet3,
172
+ TouchableOpacity as TouchableOpacity2,
173
+ Animated,
174
+ Dimensions
175
+ } from "react-native";
176
+ var { width: SCREEN_WIDTH } = Dimensions.get("window");
177
+ var Drawer = ({
178
+ isOpen,
179
+ onClose,
180
+ children,
181
+ title,
182
+ placement = "right",
183
+ width = SCREEN_WIDTH * 0.8
184
+ }) => {
185
+ const translateX = React4.useRef(
186
+ new Animated.Value(placement === "right" ? SCREEN_WIDTH : -SCREEN_WIDTH)
187
+ ).current;
188
+ React4.useEffect(() => {
189
+ Animated.timing(translateX, {
190
+ toValue: isOpen ? 0 : placement === "right" ? width : -width,
191
+ duration: 250,
192
+ useNativeDriver: true
193
+ }).start();
194
+ }, [isOpen, placement, translateX, width]);
195
+ if (!isOpen) return null;
196
+ return /* @__PURE__ */ React4.createElement(View2, { style: styles3.overlay }, /* @__PURE__ */ React4.createElement(
197
+ TouchableOpacity2,
198
+ {
199
+ style: styles3.backdrop,
200
+ activeOpacity: 1,
201
+ onPress: onClose
202
+ }
203
+ ), /* @__PURE__ */ React4.createElement(
204
+ Animated.View,
205
+ {
206
+ style: [
207
+ styles3.drawer,
208
+ {
209
+ width,
210
+ [placement]: 0,
211
+ transform: [{ translateX }]
212
+ }
213
+ ]
214
+ },
215
+ /* @__PURE__ */ React4.createElement(View2, { style: styles3.content }, (title || true) && /* @__PURE__ */ React4.createElement(View2, { style: styles3.header }, /* @__PURE__ */ React4.createElement(TouchableOpacity2, { onPress: onClose, style: styles3.closeButton }, /* @__PURE__ */ React4.createElement(Typography, { variant: "body", color: "#6b7280" }, "\u2715")), title && /* @__PURE__ */ React4.createElement(Typography, { variant: "h4" }, title)), /* @__PURE__ */ React4.createElement(VStack, { spacing: 0, style: styles3.children }, children))
216
+ ));
217
+ };
218
+ var styles3 = StyleSheet3.create({
219
+ overlay: {
220
+ ...StyleSheet3.absoluteFillObject,
221
+ zIndex: 1e3,
222
+ flexDirection: "row"
223
+ },
224
+ backdrop: {
225
+ ...StyleSheet3.absoluteFillObject,
226
+ backgroundColor: "rgba(0, 0, 0, 0.5)"
227
+ },
228
+ drawer: {
229
+ position: "absolute",
230
+ top: 0,
231
+ bottom: 0,
232
+ backgroundColor: "#ffffff",
233
+ shadowColor: "#000",
234
+ shadowOffset: { width: -2, height: 0 },
235
+ shadowOpacity: 0.25,
236
+ shadowRadius: 5,
237
+ elevation: 5
238
+ },
239
+ content: {
240
+ flex: 1
241
+ },
242
+ header: {
243
+ flexDirection: "row",
244
+ alignItems: "center",
245
+ padding: 16,
246
+ borderBottomWidth: 1,
247
+ borderBottomColor: "#e5e7eb",
248
+ gap: 12
249
+ },
250
+ closeButton: {
251
+ padding: 4
252
+ },
253
+ children: {
254
+ flex: 1,
255
+ padding: 16
256
+ }
257
+ });
258
+ Drawer.displayName = "Drawer";
259
+
260
+ // src/components/molecules/Tabs.tsx
261
+ import React5, { useState } from "react";
262
+ import {
263
+ View as View3,
264
+ TouchableOpacity as TouchableOpacity3,
265
+ StyleSheet as StyleSheet4,
266
+ ScrollView
267
+ } from "react-native";
268
+ var Tabs = ({
269
+ tabs,
270
+ activeTab,
271
+ onChange,
272
+ style,
273
+ variant = "default",
274
+ isLoading,
275
+ error,
276
+ changeEvent
277
+ }) => {
278
+ const theme = useTheme();
279
+ const eventBus = useEventBus();
280
+ const [internalActiveTab, setInternalActiveTab] = useState(tabs[0]?.id);
281
+ const currentTab = activeTab ?? internalActiveTab;
282
+ const handleTabPress = (tabId) => {
283
+ setInternalActiveTab(tabId);
284
+ if (changeEvent) {
285
+ eventBus.emit(`UI:${changeEvent}`, { tabId });
286
+ }
287
+ onChange?.(tabId);
288
+ };
289
+ if (isLoading) {
290
+ return /* @__PURE__ */ React5.createElement(View3, { style: [styles4.container, style] }, /* @__PURE__ */ React5.createElement(LoadingState, { message: "Loading..." }));
291
+ }
292
+ if (error) {
293
+ return /* @__PURE__ */ React5.createElement(View3, { style: [styles4.container, style] }, /* @__PURE__ */ React5.createElement(ErrorState, { message: error.message }));
294
+ }
295
+ const getTabStyle = (isActive) => {
296
+ switch (variant) {
297
+ case "pills":
298
+ return {
299
+ backgroundColor: isActive ? theme.colors.primary : "transparent",
300
+ borderRadius: theme.borderRadius.full
301
+ };
302
+ case "underlined":
303
+ return {
304
+ borderBottomWidth: 2,
305
+ borderBottomColor: isActive ? theme.colors.primary : "transparent",
306
+ backgroundColor: "transparent"
307
+ };
308
+ default:
309
+ return {
310
+ backgroundColor: isActive ? theme.colors.card : "transparent",
311
+ borderRadius: theme.borderRadius.md,
312
+ ...theme.shadows.sm
313
+ };
314
+ }
315
+ };
316
+ return /* @__PURE__ */ React5.createElement(View3, { style: [styles4.container, style] }, /* @__PURE__ */ React5.createElement(
317
+ ScrollView,
318
+ {
319
+ horizontal: true,
320
+ showsHorizontalScrollIndicator: false,
321
+ contentContainerStyle: styles4.scrollContent
322
+ },
323
+ /* @__PURE__ */ React5.createElement(HStack, { spacing: 8 }, tabs.map((tab) => {
324
+ const isActive = currentTab === tab.id;
325
+ return /* @__PURE__ */ React5.createElement(
326
+ TouchableOpacity3,
327
+ {
328
+ key: tab.id,
329
+ onPress: () => handleTabPress(tab.id),
330
+ style: [
331
+ styles4.tab,
332
+ getTabStyle(isActive)
333
+ ]
334
+ },
335
+ /* @__PURE__ */ React5.createElement(HStack, { spacing: 4, align: "center" }, tab.icon, /* @__PURE__ */ React5.createElement(
336
+ Typography,
337
+ {
338
+ variant: "body",
339
+ style: {
340
+ color: isActive && variant === "pills" ? theme.colors["primary-foreground"] : theme.colors.foreground
341
+ }
342
+ },
343
+ tab.label
344
+ ), tab.badge !== void 0 && tab.badge > 0 && /* @__PURE__ */ React5.createElement(View3, { style: [styles4.badge, { backgroundColor: theme.colors.error }] }, /* @__PURE__ */ React5.createElement(Typography, { variant: "caption", style: { color: theme.colors["error-foreground"] } }, tab.badge > 99 ? "99+" : tab.badge)))
345
+ );
346
+ }))
347
+ ));
348
+ };
349
+ var styles4 = StyleSheet4.create({
350
+ container: {
351
+ width: "100%"
352
+ },
353
+ scrollContent: {
354
+ paddingHorizontal: 16,
355
+ paddingVertical: 8
356
+ },
357
+ tab: {
358
+ paddingHorizontal: 16,
359
+ paddingVertical: 8
360
+ },
361
+ badge: {
362
+ minWidth: 18,
363
+ height: 18,
364
+ borderRadius: 9,
365
+ alignItems: "center",
366
+ justifyContent: "center",
367
+ paddingHorizontal: 4
368
+ }
369
+ });
370
+ Tabs.displayName = "Tabs";
371
+
372
+ // src/components/molecules/Toast.tsx
373
+ import React6, { useEffect } from "react";
374
+ import {
375
+ TouchableOpacity as TouchableOpacity4,
376
+ StyleSheet as StyleSheet5,
377
+ Animated as Animated2
378
+ } from "react-native";
379
+ var Toast = ({
380
+ id,
381
+ message,
382
+ variant = "info",
383
+ duration = 5e3,
384
+ onDismiss,
385
+ dismissAction,
386
+ style,
387
+ actionPayload
388
+ }) => {
389
+ const theme = useTheme();
390
+ const eventBus = useEventBus();
391
+ const translateY = React6.useRef(new Animated2.Value(-100)).current;
392
+ const opacity = React6.useRef(new Animated2.Value(0)).current;
393
+ useEffect(() => {
394
+ Animated2.parallel([
395
+ Animated2.timing(translateY, {
396
+ toValue: 0,
397
+ duration: 300,
398
+ useNativeDriver: true
399
+ }),
400
+ Animated2.timing(opacity, {
401
+ toValue: 1,
402
+ duration: 300,
403
+ useNativeDriver: true
404
+ })
405
+ ]).start();
406
+ if (duration > 0) {
407
+ const timer = setTimeout(() => {
408
+ handleDismiss();
409
+ }, duration);
410
+ return () => clearTimeout(timer);
411
+ }
412
+ }, [duration]);
413
+ const handleDismiss = () => {
414
+ Animated2.parallel([
415
+ Animated2.timing(translateY, {
416
+ toValue: -100,
417
+ duration: 200,
418
+ useNativeDriver: true
419
+ }),
420
+ Animated2.timing(opacity, {
421
+ toValue: 0,
422
+ duration: 200,
423
+ useNativeDriver: true
424
+ })
425
+ ]).start(() => {
426
+ if (dismissAction) {
427
+ eventBus.emit(`UI:${dismissAction}`, { ...actionPayload, toastId: id });
428
+ }
429
+ onDismiss?.(id);
430
+ });
431
+ };
432
+ const variantStyles = {
433
+ info: { bg: theme.colors.info },
434
+ success: { bg: theme.colors.success },
435
+ warning: { bg: theme.colors.warning },
436
+ error: { bg: theme.colors.error }
437
+ };
438
+ const { bg } = variantStyles[variant];
439
+ const textColor = variant === "warning" ? "#000000" : "#ffffff";
440
+ return /* @__PURE__ */ React6.createElement(
441
+ Animated2.View,
442
+ {
443
+ style: [
444
+ styles5.container,
445
+ { backgroundColor: bg },
446
+ { transform: [{ translateY }], opacity },
447
+ style
448
+ ]
449
+ },
450
+ /* @__PURE__ */ React6.createElement(HStack, { spacing: 12, align: "center", justify: "space-between" }, /* @__PURE__ */ React6.createElement(Typography, { variant: "body", style: { color: textColor, flex: 1 } }, message), /* @__PURE__ */ React6.createElement(TouchableOpacity4, { onPress: handleDismiss, style: styles5.dismiss }, /* @__PURE__ */ React6.createElement(Typography, { variant: "body", style: { color: textColor } }, "\u2715")))
451
+ );
452
+ };
453
+ var styles5 = StyleSheet5.create({
454
+ container: {
455
+ borderRadius: 8,
456
+ padding: 12,
457
+ marginHorizontal: 16,
458
+ marginVertical: 4,
459
+ shadowColor: "#000",
460
+ shadowOffset: { width: 0, height: 2 },
461
+ shadowOpacity: 0.2,
462
+ shadowRadius: 4,
463
+ elevation: 4
464
+ },
465
+ dismiss: {
466
+ padding: 4
467
+ }
468
+ });
469
+ Toast.displayName = "Toast";
470
+
471
+ // src/components/molecules/CodeBlock.tsx
472
+ import React7 from "react";
473
+ import { View as View4, ScrollView as ScrollView2, StyleSheet as StyleSheet6 } from "react-native";
474
+ var KEYWORDS = [
475
+ "const",
476
+ "let",
477
+ "var",
478
+ "function",
479
+ "return",
480
+ "if",
481
+ "else",
482
+ "for",
483
+ "while",
484
+ "import",
485
+ "export",
486
+ "from",
487
+ "class",
488
+ "interface",
489
+ "type",
490
+ "async",
491
+ "await",
492
+ "try",
493
+ "catch",
494
+ "throw",
495
+ "new",
496
+ "this",
497
+ "true",
498
+ "false",
499
+ "null",
500
+ "undefined"
501
+ ];
502
+ var TOKEN_COLORS = {
503
+ keyword: "#c678dd",
504
+ string: "#98c379",
505
+ comment: "#5c6370",
506
+ number: "#d19a66",
507
+ function: "#61afef",
508
+ default: "#abb2bf"
509
+ };
510
+ var tokenizeCode = (code) => {
511
+ const lines = code.split("\n");
512
+ return lines.map((line) => {
513
+ const tokens = [];
514
+ let remaining = line;
515
+ while (remaining.length > 0) {
516
+ let matched = false;
517
+ if (remaining.startsWith("//")) {
518
+ tokens.push({ text: remaining, style: "comment" });
519
+ break;
520
+ }
521
+ if (remaining.startsWith('"')) {
522
+ const endIndex = remaining.indexOf('"', 1);
523
+ if (endIndex > 0) {
524
+ tokens.push({ text: remaining.slice(0, endIndex + 1), style: "string" });
525
+ remaining = remaining.slice(endIndex + 1);
526
+ matched = true;
527
+ continue;
528
+ }
529
+ }
530
+ if (remaining.startsWith("'")) {
531
+ const endIndex = remaining.indexOf("'", 1);
532
+ if (endIndex > 0) {
533
+ tokens.push({ text: remaining.slice(0, endIndex + 1), style: "string" });
534
+ remaining = remaining.slice(endIndex + 1);
535
+ matched = true;
536
+ continue;
537
+ }
538
+ }
539
+ if (remaining.startsWith("`")) {
540
+ const endIndex = remaining.indexOf("`", 1);
541
+ if (endIndex > 0) {
542
+ tokens.push({ text: remaining.slice(0, endIndex + 1), style: "string" });
543
+ remaining = remaining.slice(endIndex + 1);
544
+ matched = true;
545
+ continue;
546
+ }
547
+ }
548
+ const numberMatch = remaining.match(/^\d+(\.\d+)?/);
549
+ if (numberMatch) {
550
+ tokens.push({ text: numberMatch[0], style: "number" });
551
+ remaining = remaining.slice(numberMatch[0].length);
552
+ matched = true;
553
+ continue;
554
+ }
555
+ const wordMatch = remaining.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);
556
+ if (wordMatch) {
557
+ const word = wordMatch[0];
558
+ const style = KEYWORDS.includes(word) ? "keyword" : "default";
559
+ tokens.push({ text: word, style });
560
+ remaining = remaining.slice(word.length);
561
+ matched = true;
562
+ continue;
563
+ }
564
+ const funcMatch = remaining.match(/^([a-zA-Z_][a-zA-Z0-9_]*)\s*\(/);
565
+ if (funcMatch && !KEYWORDS.includes(funcMatch[1])) {
566
+ tokens.pop();
567
+ tokens.push({ text: funcMatch[1], style: "function" });
568
+ tokens.push({ text: "(", style: "default" });
569
+ remaining = remaining.slice(funcMatch[0].length - 1);
570
+ matched = true;
571
+ continue;
572
+ }
573
+ if (!matched) {
574
+ tokens.push({ text: remaining[0], style: "default" });
575
+ remaining = remaining.slice(1);
576
+ }
577
+ }
578
+ return tokens;
579
+ });
580
+ };
581
+ var CodeBlock = ({
582
+ code,
583
+ language,
584
+ showLineNumbers = true,
585
+ showCopyButton = true,
586
+ scrollable = true,
587
+ style,
588
+ isLoading,
589
+ error,
590
+ copyEvent
591
+ }) => {
592
+ const theme = useTheme();
593
+ const eventBus = useEventBus();
594
+ const handleCopy = () => {
595
+ if (copyEvent) {
596
+ eventBus.emit(`UI:${copyEvent}`, { code, language });
597
+ }
598
+ };
599
+ if (isLoading) {
600
+ return /* @__PURE__ */ React7.createElement(Card, { style: [styles6.container, style || {}] }, /* @__PURE__ */ React7.createElement(LoadingState, { message: "Loading code..." }));
601
+ }
602
+ if (error) {
603
+ return /* @__PURE__ */ React7.createElement(Card, { style: [styles6.container, style || {}] }, /* @__PURE__ */ React7.createElement(ErrorState, { message: error.message }));
604
+ }
605
+ const tokenizedLines = tokenizeCode(code);
606
+ const lineNumberWidth = String(tokenizedLines.length).length * 10 + 16;
607
+ const CodeContent = /* @__PURE__ */ React7.createElement(View4, { style: styles6.codeContainer }, tokenizedLines.map((tokens, lineIndex) => /* @__PURE__ */ React7.createElement(View4, { key: lineIndex, style: styles6.line }, showLineNumbers && /* @__PURE__ */ React7.createElement(View4, { style: [styles6.lineNumber, { width: lineNumberWidth }] }, /* @__PURE__ */ React7.createElement(
608
+ Typography,
609
+ {
610
+ variant: "caption",
611
+ style: { color: theme.colors["muted-foreground"] }
612
+ },
613
+ lineIndex + 1
614
+ )), /* @__PURE__ */ React7.createElement(View4, { style: styles6.lineContent }, tokens.length === 0 ? /* @__PURE__ */ React7.createElement(Typography, { variant: "body" }, " ") : /* @__PURE__ */ React7.createElement(Typography, { variant: "body" }, tokens.map((token, tokenIndex) => /* @__PURE__ */ React7.createElement(
615
+ Typography,
616
+ {
617
+ key: tokenIndex,
618
+ variant: "body",
619
+ style: {
620
+ color: TOKEN_COLORS[token.style],
621
+ fontFamily: "monospace"
622
+ }
623
+ },
624
+ token.text
625
+ )))))));
626
+ return /* @__PURE__ */ React7.createElement(Card, { style: [styles6.container, style || {}], padding: "none" }, (language || showCopyButton) && /* @__PURE__ */ React7.createElement(
627
+ HStack,
628
+ {
629
+ spacing: 8,
630
+ align: "center",
631
+ justify: "space-between",
632
+ style: [
633
+ styles6.header,
634
+ { backgroundColor: theme.colors.muted, borderBottomColor: theme.colors.border }
635
+ ]
636
+ },
637
+ language ? /* @__PURE__ */ React7.createElement(
638
+ Typography,
639
+ {
640
+ variant: "caption",
641
+ style: {
642
+ color: theme.colors["muted-foreground"],
643
+ textTransform: "uppercase"
644
+ }
645
+ },
646
+ language
647
+ ) : /* @__PURE__ */ React7.createElement(View4, null),
648
+ showCopyButton && /* @__PURE__ */ React7.createElement(Button, { variant: "ghost", size: "sm", onPress: handleCopy }, "Copy")
649
+ ), scrollable ? /* @__PURE__ */ React7.createElement(ScrollView2, { horizontal: true, showsHorizontalScrollIndicator: true }, CodeContent) : CodeContent);
650
+ };
651
+ var styles6 = StyleSheet6.create({
652
+ container: {
653
+ overflow: "hidden"
654
+ },
655
+ header: {
656
+ paddingHorizontal: 16,
657
+ paddingVertical: 8,
658
+ borderBottomWidth: 1
659
+ },
660
+ codeContainer: {
661
+ padding: 16
662
+ },
663
+ line: {
664
+ flexDirection: "row"
665
+ },
666
+ lineNumber: {
667
+ alignItems: "flex-end",
668
+ paddingRight: 16,
669
+ opacity: 0.5
670
+ },
671
+ lineContent: {
672
+ flex: 1
673
+ }
674
+ });
675
+ CodeBlock.displayName = "CodeBlock";
676
+
677
+ // src/components/molecules/game/StatBadge.tsx
678
+ import React8 from "react";
679
+ import { View as View5, Text, StyleSheet as StyleSheet7 } from "react-native";
680
+ var sizeMap = {
681
+ sm: { padding: 8, fontSize: 12 },
682
+ md: { padding: 12, fontSize: 14 },
683
+ lg: { padding: 16, fontSize: 16 }
684
+ };
685
+ var variantMap = {
686
+ default: { backgroundColor: "rgba(31, 41, 55, 0.8)", borderColor: "#374151" },
687
+ primary: { backgroundColor: "rgba(30, 58, 138, 0.8)", borderColor: "#1d4ed8" },
688
+ success: { backgroundColor: "rgba(20, 83, 45, 0.8)", borderColor: "#15803d" },
689
+ warning: { backgroundColor: "rgba(113, 63, 18, 0.8)", borderColor: "#a16207" },
690
+ danger: { backgroundColor: "rgba(127, 29, 29, 0.8)", borderColor: "#b91c1c" }
691
+ };
692
+ var StatBadge = ({
693
+ label,
694
+ value = 0,
695
+ max,
696
+ format = "number",
697
+ icon,
698
+ size = "md",
699
+ variant = "default",
700
+ style,
701
+ // Ignored config props (used for schema binding)
702
+ source: _source,
703
+ field: _field
704
+ }) => {
705
+ const theme = useTheme();
706
+ const numValue = typeof value === "number" ? value : parseInt(String(value), 10) || 0;
707
+ const sizeStyles = sizeMap[size] ?? sizeMap.md;
708
+ const variantStyles = variantMap[variant] ?? variantMap.default;
709
+ return /* @__PURE__ */ React8.createElement(
710
+ View5,
711
+ {
712
+ style: [
713
+ styles7.container,
714
+ {
715
+ backgroundColor: variantStyles.backgroundColor,
716
+ borderColor: variantStyles.borderColor,
717
+ padding: sizeStyles.padding
718
+ },
719
+ style
720
+ ]
721
+ },
722
+ icon && /* @__PURE__ */ React8.createElement(Text, { style: { fontSize: 18, marginRight: 8 } }, icon),
723
+ /* @__PURE__ */ React8.createElement(
724
+ Text,
725
+ {
726
+ style: {
727
+ fontSize: sizeStyles.fontSize,
728
+ color: theme.colors["muted-foreground"],
729
+ fontWeight: "500",
730
+ marginRight: 8
731
+ }
732
+ },
733
+ label
734
+ ),
735
+ format === "hearts" && max && /* @__PURE__ */ React8.createElement(
736
+ HealthBar,
737
+ {
738
+ current: numValue,
739
+ max,
740
+ format: "hearts",
741
+ size: size === "lg" ? "md" : "sm"
742
+ }
743
+ ),
744
+ format === "bar" && max && /* @__PURE__ */ React8.createElement(
745
+ HealthBar,
746
+ {
747
+ current: numValue,
748
+ max,
749
+ format: "bar",
750
+ size: size === "lg" ? "md" : "sm"
751
+ }
752
+ ),
753
+ format === "number" && /* @__PURE__ */ React8.createElement(
754
+ ScoreDisplay,
755
+ {
756
+ value: numValue,
757
+ size: size === "lg" ? "md" : "sm",
758
+ animated: true
759
+ }
760
+ ),
761
+ format === "text" && /* @__PURE__ */ React8.createElement(
762
+ Text,
763
+ {
764
+ style: {
765
+ fontSize: sizeStyles.fontSize,
766
+ color: theme.colors["primary-foreground"],
767
+ fontWeight: "700"
768
+ }
769
+ },
770
+ value
771
+ )
772
+ );
773
+ };
774
+ var styles7 = StyleSheet7.create({
775
+ container: {
776
+ flexDirection: "row",
777
+ alignItems: "center",
778
+ borderRadius: 8,
779
+ borderWidth: 1
780
+ }
781
+ });
782
+ StatBadge.displayName = "StatBadge";
783
+
784
+ export {
785
+ EmptyState,
786
+ List,
787
+ Modal,
788
+ ConfirmModal,
789
+ Drawer,
790
+ Tabs,
791
+ Toast,
792
+ CodeBlock,
793
+ StatBadge
794
+ };
795
+ //# sourceMappingURL=chunk-DY52O4T3.js.map