@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
package/README.md ADDED
@@ -0,0 +1,203 @@
1
+ # @almadar/mobile
2
+
3
+ React Native UI components for the Almadar platform. This package provides mobile-optimized components that mirror the functionality of @almadar/ui while following React Native patterns and best practices.
4
+
5
+ ## Features
6
+
7
+ - **154 Components** - Comprehensive component library (100% of @almadar/ui)
8
+ - **Event Bus Architecture** - Declarative event-driven interactions
9
+ - **Closed Circuit Props** - Consistent loading, error, and entity states
10
+ - **Theme System** - Full light/dark theme support with CSS variable parity
11
+ - **TypeScript** - Full type safety
12
+
13
+ ## Installation
14
+
15
+ ```bash
16
+ npm install @almadar/mobile
17
+ # or
18
+ yarn add @almadar/mobile
19
+ # or
20
+ pnpm add @almadar/mobile
21
+ ```
22
+
23
+ ## Quick Start
24
+
25
+ ```tsx
26
+ import { ThemeProvider, Button, Card, VStack } from '@almadar/mobile';
27
+
28
+ function App() {
29
+ return (
30
+ <ThemeProvider>
31
+ <VStack spacing={16} style={{ padding: 16 }}>
32
+ <Card>
33
+ <Button
34
+ variant="primary"
35
+ action="SUBMIT_FORM"
36
+ actionPayload={{ formId: 'contact' }}
37
+ >
38
+ Submit
39
+ </Button>
40
+ </Card>
41
+ </VStack>
42
+ </ThemeProvider>
43
+ );
44
+ }
45
+ ```
46
+
47
+ ## Component Architecture
48
+
49
+ ### Closed Circuit Props
50
+
51
+ All components implement the closed circuit pattern:
52
+
53
+ ```tsx
54
+ interface ComponentProps {
55
+ // Visual state
56
+ isLoading?: boolean; // Shows LoadingState when true
57
+ error?: Error | null; // Shows ErrorState when present
58
+ entity?: string; // Entity name for auto-fetch
59
+
60
+ // Styling
61
+ style?: ViewStyle; // React Native styles
62
+ }
63
+ ```
64
+
65
+ ### Event Bus Pattern
66
+
67
+ Interactive components use the event bus for loose coupling:
68
+
69
+ ```tsx
70
+ <Button
71
+ action="SAVE_ITEM" // Emits 'UI:SAVE_ITEM'
72
+ actionPayload={{ id: 1 }} // Event payload
73
+ onPress={() => {}} // Optional callback
74
+ >
75
+ Save
76
+ </Button>
77
+ ```
78
+
79
+ Events follow the pattern: `UI:EVENT_NAME`
80
+
81
+ ## Component Categories
82
+
83
+ ### Atoms (16 components)
84
+ Basic building blocks:
85
+ - **Layout**: VStack, HStack, Box, Center
86
+ - **Typography**: Typography
87
+ - **Form**: Button, Input, Label, Checkbox, Radio, Switch, Textarea, Select, Spinner, ProgressBar
88
+ - **Display**: Card, Badge, Avatar, Divider, Icon
89
+
90
+ ### Molecules (18 components)
91
+ Composite components:
92
+ - **Feedback**: Alert, Toast, Skeleton, LoadingState, ErrorState, EmptyState
93
+ - **Form**: FormField, FormSectionHeader, InputGroup, SearchInput, ButtonGroup
94
+ - **Navigation**: Tabs, Breadcrumb
95
+ - **Overlay**: Modal, Drawer, Tooltip, Popover, Menu
96
+
97
+ ### Organisms (28 components)
98
+ Complex components:
99
+ - **Layout**: Header, PageHeader, DashboardLayout, AuthLayout
100
+ - **Data**: DataTable, StatCard, Timeline, EntityList, EntityCard, CardGrid
101
+ - **Form**: FormSection, WizardContainer, DetailPanel
102
+ - **Game**: BattleBoard, CastleBoard, WorldMapBoard, IsometricCanvas, GameCanvas3D, CombatLog, DialogueBox, GameHud, InventoryPanel, GameMenu, GameOverScreen, GameAudioProvider, GameAudioToggle, TraitSlot, TraitStateViewer, UncontrolledBattleBoard, CanvasEffect
103
+
104
+ ### Templates (2 components)
105
+ Page layouts:
106
+ - **DashboardLayout** - Main app layout with header
107
+ - **AuthLayout** - Login/register layouts with keyboard avoiding
108
+
109
+ ### Hooks (9 hooks)
110
+ - **useEventBus** - Event bus integration
111
+ - **useTheme** - Theme access
112
+ - **useThemeStyles** - Theme-aware StyleSheet
113
+ - **useNavigation** - Navigation helpers
114
+ - **useScrollHeader** - Collapsible headers
115
+ - **useSafeAreaInsets** - Safe area handling
116
+ - **usePullToRefresh** - Pull-to-refresh
117
+ - **useInfiniteScroll** - Infinite scroll
118
+
119
+ ## Theming
120
+
121
+ Themes match @almadar/ui CSS variables:
122
+
123
+ ```tsx
124
+ const theme = {
125
+ colors: {
126
+ primary: '#14b8a6',
127
+ 'primary-hover': '#0d9488',
128
+ 'primary-foreground': '#ffffff',
129
+ // ... all CSS variables mapped
130
+ },
131
+ borderRadius: {
132
+ sm: 6,
133
+ md: 10,
134
+ lg: 14,
135
+ xl: 20,
136
+ full: 9999,
137
+ },
138
+ shadows: {
139
+ sm: { shadowColor, shadowOffset, shadowOpacity, shadowRadius, elevation },
140
+ main: { ... },
141
+ lg: { ... },
142
+ },
143
+ };
144
+ ```
145
+
146
+ ## Phase Implementation Summary
147
+
148
+ | Phase | Components Added | Coverage |
149
+ |-------|------------------|----------|
150
+ | Phase 1: Foundation | +10 | Atoms: 19% → 52% |
151
+ | Phase 2: Navigation | +6 | Organisms: 5% → 11% |
152
+ | Phase 3: Data Display | +10 | Molecules: 15% → 44% |
153
+ | Phase 4: Advanced UI | +9 | Molecules: 36% → 50% |
154
+ | Phase 5: Game Systems | +17 | Organisms: 11% → 28% |
155
+ | Phase 6: Layout & Containers | +7 | Atoms/Molecules: expansion |
156
+ | Phase 7: UI Enhancement | +8 | Molecules: expansion |
157
+ | Phase 8: Data Display | +10 | Organisms: expansion |
158
+ | Phase 9: Form & Input | +6 | Molecules/Organisms: expansion |
159
+ | Phase 10: Layout Structure | +8 | Organisms: expansion |
160
+ | Phase 11: Slots & Layouts | +5 | Organisms: expansion |
161
+ | Phase 12: Book Components | +5 | Organisms: book/ |
162
+ | Phase 13: Game Templates | +9 | Templates: expansion |
163
+ | Phase 14: Puzzle Games | +16 | Organisms: puzzles/ |
164
+ | Phase 15: Physics Sim | +3 | Organisms: physics-sim/ |
165
+ | Phase 16: Specialized Views | +8 | Organisms: various |
166
+ | **Total** | **+132** | **13% → 100%** |
167
+
168
+ ## Migration from @almadar/ui
169
+
170
+ ### Web to Mobile Mapping
171
+
172
+ | Web (@almadar/ui) | Mobile (@almadar/mobile) |
173
+ |-------------------|--------------------------|
174
+ | `onClick` | `onPress` |
175
+ | `className` | `style` (ViewStyle) |
176
+ | `action` | `action` (same) |
177
+ | `eventBus.emit('EVENT')` | `eventBus.emit('UI:EVENT')` |
178
+
179
+ ### Example Migration
180
+
181
+ **Web:**
182
+ ```tsx
183
+ <Button
184
+ onClick={() => {}}
185
+ className="my-button"
186
+ >
187
+ Click
188
+ </Button>
189
+ ```
190
+
191
+ **Mobile:**
192
+ ```tsx
193
+ <Button
194
+ onPress={() => {}}
195
+ style={{ marginTop: 8 }}
196
+ >
197
+ Click
198
+ </Button>
199
+ ```
200
+
201
+ ## License
202
+
203
+ MIT
@@ -0,0 +1,167 @@
1
+ import {
2
+ useEventBus
3
+ } from "./chunk-YTVYMEKU.js";
4
+ import {
5
+ useTheme
6
+ } from "./chunk-CUAWHLEK.js";
7
+
8
+ // src/components/atoms/Label.tsx
9
+ import React from "react";
10
+ import { Text, StyleSheet } from "react-native";
11
+ var Label = ({
12
+ children,
13
+ required = false,
14
+ disabled = false,
15
+ style
16
+ }) => {
17
+ const theme = useTheme();
18
+ return /* @__PURE__ */ React.createElement(
19
+ Text,
20
+ {
21
+ style: [
22
+ styles.label,
23
+ {
24
+ color: disabled ? theme.colors["muted-foreground"] : theme.colors.foreground
25
+ },
26
+ style
27
+ ]
28
+ },
29
+ children,
30
+ required && /* @__PURE__ */ React.createElement(Text, { style: [styles.required, { color: theme.colors.error }] }, " *")
31
+ );
32
+ };
33
+ var styles = StyleSheet.create({
34
+ label: {
35
+ fontSize: 14,
36
+ fontWeight: "500",
37
+ marginBottom: 6
38
+ },
39
+ required: {
40
+ fontWeight: "400"
41
+ }
42
+ });
43
+ Label.displayName = "Label";
44
+
45
+ // src/components/atoms/game/ControlButton.tsx
46
+ import React2, { useState, useCallback } from "react";
47
+ import {
48
+ TouchableOpacity,
49
+ Text as Text2,
50
+ StyleSheet as StyleSheet2
51
+ } from "react-native";
52
+ var sizeMap = {
53
+ sm: { width: 40, height: 40, fontSize: 14 },
54
+ md: { width: 56, height: 56, fontSize: 16 },
55
+ lg: { width: 72, height: 72, fontSize: 20 },
56
+ xl: { width: 96, height: 96, fontSize: 24 }
57
+ };
58
+ var shapeMap = {
59
+ circle: 9999,
60
+ rounded: 12,
61
+ square: 4
62
+ };
63
+ var variantMap = {
64
+ primary: {
65
+ backgroundColor: "#2563eb",
66
+ borderColor: "#60a5fa",
67
+ textColor: "#ffffff"
68
+ },
69
+ secondary: {
70
+ backgroundColor: "#374151",
71
+ borderColor: "#6b7280",
72
+ textColor: "#ffffff"
73
+ },
74
+ ghost: {
75
+ backgroundColor: "transparent",
76
+ borderColor: "rgba(255,255,255,0.3)",
77
+ textColor: "#ffffff"
78
+ }
79
+ };
80
+ var ControlButton = ({
81
+ label,
82
+ icon,
83
+ size = "md",
84
+ shape = "circle",
85
+ variant = "secondary",
86
+ onPress,
87
+ onRelease,
88
+ pressEvent,
89
+ releaseEvent,
90
+ pressed,
91
+ disabled,
92
+ style
93
+ }) => {
94
+ useTheme();
95
+ const eventBus = useEventBus();
96
+ const [isPressed, setIsPressed] = useState(false);
97
+ const actualPressed = pressed ?? isPressed;
98
+ const sizeConfig = sizeMap[size] ?? sizeMap.md;
99
+ const borderRadius = shapeMap[shape] ?? shapeMap.circle;
100
+ const variantConfig = variantMap[variant] ?? variantMap.secondary;
101
+ const handlePressIn = useCallback(
102
+ (_e) => {
103
+ if (disabled) return;
104
+ setIsPressed(true);
105
+ if (pressEvent) eventBus.emit(`UI:${pressEvent}`, {});
106
+ onPress?.();
107
+ },
108
+ [disabled, pressEvent, eventBus, onPress]
109
+ );
110
+ const handlePressOut = useCallback(
111
+ (_e) => {
112
+ if (disabled) return;
113
+ setIsPressed(false);
114
+ if (releaseEvent) eventBus.emit(`UI:${releaseEvent}`, {});
115
+ onRelease?.();
116
+ },
117
+ [disabled, releaseEvent, eventBus, onRelease]
118
+ );
119
+ return /* @__PURE__ */ React2.createElement(
120
+ TouchableOpacity,
121
+ {
122
+ activeOpacity: 0.8,
123
+ disabled,
124
+ onPressIn: handlePressIn,
125
+ onPressOut: handlePressOut,
126
+ style: [
127
+ styles2.button,
128
+ {
129
+ width: sizeConfig.width,
130
+ height: sizeConfig.height,
131
+ borderRadius,
132
+ backgroundColor: variantConfig.backgroundColor,
133
+ borderColor: variantConfig.borderColor,
134
+ opacity: disabled ? 0.5 : 1,
135
+ transform: [{ scale: actualPressed ? 0.95 : 1 }]
136
+ },
137
+ style
138
+ ]
139
+ },
140
+ icon ? /* @__PURE__ */ React2.createElement(Text2, { style: { fontSize: sizeConfig.fontSize * 1.5 } }, icon) : label ? /* @__PURE__ */ React2.createElement(
141
+ Text2,
142
+ {
143
+ style: {
144
+ fontSize: sizeConfig.fontSize,
145
+ color: variantConfig.textColor,
146
+ fontWeight: "700"
147
+ }
148
+ },
149
+ label
150
+ ) : null
151
+ );
152
+ };
153
+ var styles2 = StyleSheet2.create({
154
+ button: {
155
+ justifyContent: "center",
156
+ alignItems: "center",
157
+ borderWidth: 2,
158
+ userSelect: "none"
159
+ }
160
+ });
161
+ ControlButton.displayName = "ControlButton";
162
+
163
+ export {
164
+ Label,
165
+ ControlButton
166
+ };
167
+ //# sourceMappingURL=chunk-6RVITGGH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/atoms/Label.tsx","../src/components/atoms/game/ControlButton.tsx"],"sourcesContent":["import React from 'react';\nimport { Text, StyleSheet, TextStyle } from 'react-native';\nimport { useTheme } from '../../providers/ThemeContext';\n\nexport interface LabelProps {\n children: React.ReactNode;\n required?: boolean;\n disabled?: boolean;\n style?: TextStyle;\n /** Entity name for schema-driven auto-fetch */\n entity?: string;\n}\n\nexport const Label: React.FC<LabelProps> = ({\n children,\n required = false,\n disabled = false,\n style,\n}) => {\n const theme = useTheme();\n\n return (\n <Text\n style={[\n styles.label,\n {\n color: disabled \n ? theme.colors['muted-foreground'] \n : theme.colors.foreground,\n },\n style,\n ]}\n >\n {children}\n {required && (\n <Text style={[styles.required, { color: theme.colors.error }]}>\n {' *'}\n </Text>\n )}\n </Text>\n );\n};\n\nconst styles = StyleSheet.create({\n label: {\n fontSize: 14,\n fontWeight: '500',\n marginBottom: 6,\n },\n required: {\n fontWeight: '400',\n },\n});\n\nLabel.displayName = 'Label';\n","import React, { useState, useCallback } from 'react';\nimport { \n TouchableOpacity, \n Text, \n StyleSheet, \n GestureResponderEvent,\n ViewStyle \n} from 'react-native';\nimport { useTheme } from '../../../providers/ThemeContext';\nimport { useEventBus } from '../../../hooks/useEventBus';\n\nexport interface ControlButtonProps {\n /** Button label text */\n label?: string;\n /** Icon component or emoji */\n icon?: React.ReactNode;\n /** Size variant */\n size?: 'sm' | 'md' | 'lg' | 'xl' | string;\n /** Shape variant */\n shape?: 'circle' | 'rounded' | 'square' | string;\n /** Visual variant */\n variant?: 'primary' | 'secondary' | 'ghost' | string;\n /** Called when button is pressed */\n onPress?: () => void;\n /** Called when button is released */\n onRelease?: () => void;\n /** Declarative event name emitted on press via useEventBus */\n pressEvent?: string;\n /** Declarative event name emitted on release via useEventBus */\n releaseEvent?: string;\n /** Whether the button is currently pressed */\n pressed?: boolean;\n /** Whether the button is disabled */\n disabled?: boolean;\n /** Additional styles */\n style?: ViewStyle;\n}\n\nconst sizeMap: Record<string, { width: number; height: number; fontSize: number }> = {\n sm: { width: 40, height: 40, fontSize: 14 },\n md: { width: 56, height: 56, fontSize: 16 },\n lg: { width: 72, height: 72, fontSize: 20 },\n xl: { width: 96, height: 96, fontSize: 24 },\n};\n\nconst shapeMap: Record<string, number> = {\n circle: 9999,\n rounded: 12,\n square: 4,\n};\n\nconst variantMap: Record<string, { backgroundColor: string; borderColor: string; textColor: string }> = {\n primary: { \n backgroundColor: '#2563eb', \n borderColor: '#60a5fa',\n textColor: '#ffffff',\n },\n secondary: { \n backgroundColor: '#374151', \n borderColor: '#6b7280',\n textColor: '#ffffff',\n },\n ghost: { \n backgroundColor: 'transparent', \n borderColor: 'rgba(255,255,255,0.3)',\n textColor: '#ffffff',\n },\n};\n\nexport const ControlButton: React.FC<ControlButtonProps> = ({\n label,\n icon,\n size = 'md',\n shape = 'circle',\n variant = 'secondary',\n onPress,\n onRelease,\n pressEvent,\n releaseEvent,\n pressed,\n disabled,\n style,\n}) => {\n useTheme(); // Theme hook required by pattern\n const eventBus = useEventBus();\n const [isPressed, setIsPressed] = useState(false);\n const actualPressed = pressed ?? isPressed;\n\n const sizeConfig = sizeMap[size] ?? sizeMap.md;\n const borderRadius = shapeMap[shape] ?? shapeMap.circle;\n const variantConfig = variantMap[variant] ?? variantMap.secondary;\n\n const handlePressIn = useCallback(\n (_e: GestureResponderEvent) => {\n if (disabled) return;\n setIsPressed(true);\n if (pressEvent) eventBus.emit(`UI:${pressEvent}`, {});\n onPress?.();\n },\n [disabled, pressEvent, eventBus, onPress]\n );\n\n const handlePressOut = useCallback(\n (_e: GestureResponderEvent) => {\n if (disabled) return;\n setIsPressed(false);\n if (releaseEvent) eventBus.emit(`UI:${releaseEvent}`, {});\n onRelease?.();\n },\n [disabled, releaseEvent, eventBus, onRelease]\n );\n\n return (\n <TouchableOpacity\n activeOpacity={0.8}\n disabled={disabled}\n onPressIn={handlePressIn}\n onPressOut={handlePressOut}\n style={[\n styles.button,\n {\n width: sizeConfig.width,\n height: sizeConfig.height,\n borderRadius,\n backgroundColor: variantConfig.backgroundColor,\n borderColor: variantConfig.borderColor,\n opacity: disabled ? 0.5 : 1,\n transform: [{ scale: actualPressed ? 0.95 : 1 }],\n },\n style as never,\n ]}\n >\n {icon ? (\n <Text style={{ fontSize: sizeConfig.fontSize * 1.5 }}>\n {icon as string}\n </Text>\n ) : label ? (\n <Text\n style={{\n fontSize: sizeConfig.fontSize,\n color: variantConfig.textColor,\n fontWeight: '700',\n }}\n >\n {label}\n </Text>\n ) : null}\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n button: {\n justifyContent: 'center',\n alignItems: 'center',\n borderWidth: 2,\n userSelect: 'none',\n },\n});\n\nControlButton.displayName = 'ControlButton';\n"],"mappings":"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","names":["React","Text","StyleSheet","React","styles","Text","StyleSheet"]}