@buoy-gg/shared-ui 7.0.33 → 7.0.35

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 (323) hide show
  1. package/lib/commonjs/JsModal.js +57 -22
  2. package/lib/commonjs/dataViewer/CyberpunkInput.js +3 -2
  3. package/lib/commonjs/dataViewer/DataTreeActionBar.js +3 -2
  4. package/lib/commonjs/dataViewer/DataTreeActionDock.js +2 -1
  5. package/lib/commonjs/dataViewer/DiffSummary.js +4 -3
  6. package/lib/commonjs/dataViewer/LiveExplorer.js +11 -10
  7. package/lib/commonjs/dataViewer/SplitDiffViewer.js +10 -9
  8. package/lib/commonjs/dataViewer/ThemedSplitView.js +12 -11
  9. package/lib/commonjs/dataViewer/ValueEditModal.js +6 -5
  10. package/lib/commonjs/dataViewer/VirtualizedDataExplorer.js +4 -3
  11. package/lib/commonjs/dataViewer/tree/TreeDiffViewer.js +15 -14
  12. package/lib/commonjs/hooks/index.js +26 -0
  13. package/lib/commonjs/hooks/safe-area-impl.js +1 -1
  14. package/lib/commonjs/hooks/useChangeLog.js +55 -0
  15. package/lib/commonjs/hooks/useEventStoreEvents.js +65 -0
  16. package/lib/commonjs/hooks/usePersistedState.js +45 -10
  17. package/lib/commonjs/icons/index.js +533 -1
  18. package/lib/commonjs/index.js +143 -0
  19. package/lib/commonjs/license/FreeAccountPrompt.js +2 -1
  20. package/lib/commonjs/license/LicenseEntryModal.js +2 -1
  21. package/lib/commonjs/storage/definePersistedSetting.js +67 -0
  22. package/lib/commonjs/storage/index.js +8 -1
  23. package/lib/commonjs/stores/ChangeLog.js +197 -0
  24. package/lib/commonjs/stores/createToolStore.js +175 -0
  25. package/lib/commonjs/stores/index.js +15 -1
  26. package/lib/commonjs/sync/toolSyncAdapter.js +63 -0
  27. package/lib/commonjs/sync/wireForm.js +172 -0
  28. package/lib/commonjs/tools/defineTool.js +79 -0
  29. package/lib/commonjs/ui/components/ChangeRow.js +111 -0
  30. package/lib/commonjs/ui/components/ChipStrip.js +94 -0
  31. package/lib/commonjs/ui/components/ClipboardHintBanner.js +2 -1
  32. package/lib/commonjs/ui/components/CompactRow.js +3 -2
  33. package/lib/commonjs/ui/components/DataInspector.js +3 -2
  34. package/lib/commonjs/ui/components/DetailView.js +2 -1
  35. package/lib/commonjs/ui/components/DetailViewToggle.js +130 -0
  36. package/lib/commonjs/ui/components/DevToolsCard.js +3 -1
  37. package/lib/commonjs/ui/components/DynamicFilterView.js +8 -7
  38. package/lib/commonjs/ui/components/EntityFilterView.js +355 -0
  39. package/lib/commonjs/ui/components/EventHistoryViewer/CompareBar.js +5 -4
  40. package/lib/commonjs/ui/components/EventHistoryViewer/DiffModeTabs.js +2 -1
  41. package/lib/commonjs/ui/components/EventHistoryViewer/EventPickerModal.js +5 -4
  42. package/lib/commonjs/ui/components/EventStepperFooter.js +4 -3
  43. package/lib/commonjs/ui/components/ExpandablePopover.js +12 -4
  44. package/lib/commonjs/ui/components/ExpandedInfoRow.js +3 -2
  45. package/lib/commonjs/ui/components/ExportPreview.js +174 -0
  46. package/lib/commonjs/ui/components/FilterComponents.js +2 -1
  47. package/lib/commonjs/ui/components/InfoRow.js +91 -0
  48. package/lib/commonjs/ui/components/ModalHeader.js +40 -7
  49. package/lib/commonjs/ui/components/Pill.js +115 -0
  50. package/lib/commonjs/ui/components/ToggleRow.js +116 -0
  51. package/lib/commonjs/ui/components/ToolFooter.js +205 -0
  52. package/lib/commonjs/ui/components/index.js +100 -1
  53. package/lib/commonjs/ui/console/CyberpunkSectionButton.js +3 -2
  54. package/lib/commonjs/ui/fonts.js +12 -0
  55. package/lib/commonjs/ui/gameUI/components/GameUICollapsibleSection.js +4 -3
  56. package/lib/commonjs/ui/gameUI/components/GameUICompactStats.js +12 -11
  57. package/lib/commonjs/ui/gameUI/components/GameUIIssuesList.js +9 -8
  58. package/lib/commonjs/ui/gameUI/components/GameUIStatusHeader.js +4 -3
  59. package/lib/commonjs/ui/index.js +32 -2
  60. package/lib/commonjs/ui/listPresets.js +43 -0
  61. package/lib/commonjs/ui/night/primitives.js +3 -1
  62. package/lib/commonjs/ui/toolTheme.js +4 -3
  63. package/lib/commonjs/utils/snapshotProviderKit.js +167 -0
  64. package/lib/commonjs/utils/stateTools.js +160 -0
  65. package/lib/module/JsModal.js +57 -22
  66. package/lib/module/dataViewer/CyberpunkInput.js +3 -2
  67. package/lib/module/dataViewer/DataTreeActionBar.js +3 -2
  68. package/lib/module/dataViewer/DataTreeActionDock.js +2 -1
  69. package/lib/module/dataViewer/DiffSummary.js +4 -3
  70. package/lib/module/dataViewer/LiveExplorer.js +11 -11
  71. package/lib/module/dataViewer/SplitDiffViewer.js +10 -9
  72. package/lib/module/dataViewer/ThemedSplitView.js +12 -11
  73. package/lib/module/dataViewer/ValueEditModal.js +6 -5
  74. package/lib/module/dataViewer/VirtualizedDataExplorer.js +5 -4
  75. package/lib/module/dataViewer/tree/TreeDiffViewer.js +15 -15
  76. package/lib/module/hooks/index.js +3 -1
  77. package/lib/module/hooks/safe-area-impl.js +1 -1
  78. package/lib/module/hooks/useChangeLog.js +50 -0
  79. package/lib/module/hooks/useEventStoreEvents.js +61 -0
  80. package/lib/module/hooks/usePersistedState.js +44 -10
  81. package/lib/module/icons/index.js +27 -2
  82. package/lib/module/index.js +11 -1
  83. package/lib/module/license/FreeAccountPrompt.js +2 -2
  84. package/lib/module/license/LicenseEntryModal.js +3 -3
  85. package/lib/module/storage/definePersistedSetting.js +63 -0
  86. package/lib/module/storage/index.js +2 -1
  87. package/lib/module/stores/ChangeLog.js +192 -0
  88. package/lib/module/stores/createToolStore.js +171 -0
  89. package/lib/module/stores/index.js +3 -1
  90. package/lib/module/sync/toolSyncAdapter.js +58 -0
  91. package/lib/module/sync/wireForm.js +159 -0
  92. package/lib/module/tools/defineTool.js +74 -0
  93. package/lib/module/ui/components/ChangeRow.js +106 -0
  94. package/lib/module/ui/components/ChipStrip.js +91 -0
  95. package/lib/module/ui/components/ClipboardHintBanner.js +2 -1
  96. package/lib/module/ui/components/CompactRow.js +3 -2
  97. package/lib/module/ui/components/DataInspector.js +3 -2
  98. package/lib/module/ui/components/DetailView.js +2 -1
  99. package/lib/module/ui/components/DetailViewToggle.js +125 -0
  100. package/lib/module/ui/components/DevToolsCard.js +3 -1
  101. package/lib/module/ui/components/DynamicFilterView.js +8 -7
  102. package/lib/module/ui/components/EntityFilterView.js +351 -0
  103. package/lib/module/ui/components/EventHistoryViewer/CompareBar.js +6 -5
  104. package/lib/module/ui/components/EventHistoryViewer/DiffModeTabs.js +3 -2
  105. package/lib/module/ui/components/EventHistoryViewer/EventPickerModal.js +6 -5
  106. package/lib/module/ui/components/EventStepperFooter.js +4 -3
  107. package/lib/module/ui/components/ExpandablePopover.js +12 -4
  108. package/lib/module/ui/components/ExpandedInfoRow.js +3 -2
  109. package/lib/module/ui/components/ExportPreview.js +169 -0
  110. package/lib/module/ui/components/FilterComponents.js +2 -2
  111. package/lib/module/ui/components/InfoRow.js +87 -0
  112. package/lib/module/ui/components/ModalHeader.js +40 -7
  113. package/lib/module/ui/components/Pill.js +111 -0
  114. package/lib/module/ui/components/ToggleRow.js +112 -0
  115. package/lib/module/ui/components/ToolFooter.js +197 -0
  116. package/lib/module/ui/components/index.js +10 -1
  117. package/lib/module/ui/console/CyberpunkSectionButton.js +3 -2
  118. package/lib/module/ui/fonts.js +8 -0
  119. package/lib/module/ui/gameUI/components/GameUICollapsibleSection.js +4 -3
  120. package/lib/module/ui/gameUI/components/GameUICompactStats.js +12 -11
  121. package/lib/module/ui/gameUI/components/GameUIIssuesList.js +9 -8
  122. package/lib/module/ui/gameUI/components/GameUIStatusHeader.js +4 -3
  123. package/lib/module/ui/index.js +7 -1
  124. package/lib/module/ui/listPresets.js +39 -0
  125. package/lib/module/ui/night/primitives.js +3 -1
  126. package/lib/module/ui/toolTheme.js +4 -4
  127. package/lib/module/utils/snapshotProviderKit.js +156 -0
  128. package/lib/module/utils/stateTools.js +154 -0
  129. package/lib/typescript/commonjs/JsModal.d.ts.map +1 -1
  130. package/lib/typescript/commonjs/dataViewer/CyberpunkInput.d.ts.map +1 -1
  131. package/lib/typescript/commonjs/dataViewer/DataTreeActionBar.d.ts.map +1 -1
  132. package/lib/typescript/commonjs/dataViewer/DataTreeActionDock.d.ts.map +1 -1
  133. package/lib/typescript/commonjs/dataViewer/DiffSummary.d.ts.map +1 -1
  134. package/lib/typescript/commonjs/dataViewer/LiveExplorer.d.ts.map +1 -1
  135. package/lib/typescript/commonjs/dataViewer/SplitDiffViewer.d.ts.map +1 -1
  136. package/lib/typescript/commonjs/dataViewer/ThemedSplitView.d.ts.map +1 -1
  137. package/lib/typescript/commonjs/dataViewer/ValueEditModal.d.ts.map +1 -1
  138. package/lib/typescript/commonjs/dataViewer/VirtualizedDataExplorer.d.ts.map +1 -1
  139. package/lib/typescript/commonjs/dataViewer/tree/TreeDiffViewer.d.ts.map +1 -1
  140. package/lib/typescript/commonjs/hooks/index.d.ts +3 -1
  141. package/lib/typescript/commonjs/hooks/index.d.ts.map +1 -1
  142. package/lib/typescript/commonjs/hooks/safe-area-impl.d.ts +1 -1
  143. package/lib/typescript/commonjs/hooks/useChangeLog.d.ts +38 -0
  144. package/lib/typescript/commonjs/hooks/useChangeLog.d.ts.map +1 -0
  145. package/lib/typescript/commonjs/hooks/useEventStoreEvents.d.ts +25 -0
  146. package/lib/typescript/commonjs/hooks/useEventStoreEvents.d.ts.map +1 -0
  147. package/lib/typescript/commonjs/hooks/usePersistedState.d.ts +34 -5
  148. package/lib/typescript/commonjs/hooks/usePersistedState.d.ts.map +1 -1
  149. package/lib/typescript/commonjs/icons/index.d.ts +4 -1
  150. package/lib/typescript/commonjs/icons/index.d.ts.map +1 -1
  151. package/lib/typescript/commonjs/index.d.ts +6 -1
  152. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  153. package/lib/typescript/commonjs/license/FreeAccountPrompt.d.ts.map +1 -1
  154. package/lib/typescript/commonjs/license/LicenseEntryModal.d.ts.map +1 -1
  155. package/lib/typescript/commonjs/storage/definePersistedSetting.d.ts +39 -0
  156. package/lib/typescript/commonjs/storage/definePersistedSetting.d.ts.map +1 -0
  157. package/lib/typescript/commonjs/storage/index.d.ts +1 -0
  158. package/lib/typescript/commonjs/storage/index.d.ts.map +1 -1
  159. package/lib/typescript/commonjs/stores/ChangeLog.d.ts +100 -0
  160. package/lib/typescript/commonjs/stores/ChangeLog.d.ts.map +1 -0
  161. package/lib/typescript/commonjs/stores/createToolStore.d.ts +92 -0
  162. package/lib/typescript/commonjs/stores/createToolStore.d.ts.map +1 -0
  163. package/lib/typescript/commonjs/stores/index.d.ts +2 -0
  164. package/lib/typescript/commonjs/stores/index.d.ts.map +1 -1
  165. package/lib/typescript/commonjs/sync/toolSyncAdapter.d.ts +66 -0
  166. package/lib/typescript/commonjs/sync/toolSyncAdapter.d.ts.map +1 -0
  167. package/lib/typescript/commonjs/sync/wireForm.d.ts +100 -0
  168. package/lib/typescript/commonjs/sync/wireForm.d.ts.map +1 -0
  169. package/lib/typescript/commonjs/tools/defineTool.d.ts +100 -0
  170. package/lib/typescript/commonjs/tools/defineTool.d.ts.map +1 -0
  171. package/lib/typescript/commonjs/ui/components/ChangeRow.d.ts +52 -0
  172. package/lib/typescript/commonjs/ui/components/ChangeRow.d.ts.map +1 -0
  173. package/lib/typescript/commonjs/ui/components/ChipStrip.d.ts +41 -0
  174. package/lib/typescript/commonjs/ui/components/ChipStrip.d.ts.map +1 -0
  175. package/lib/typescript/commonjs/ui/components/ClipboardHintBanner.d.ts.map +1 -1
  176. package/lib/typescript/commonjs/ui/components/CompactRow.d.ts.map +1 -1
  177. package/lib/typescript/commonjs/ui/components/DataInspector.d.ts.map +1 -1
  178. package/lib/typescript/commonjs/ui/components/DetailView.d.ts.map +1 -1
  179. package/lib/typescript/commonjs/ui/components/DetailViewToggle.d.ts +36 -0
  180. package/lib/typescript/commonjs/ui/components/DetailViewToggle.d.ts.map +1 -0
  181. package/lib/typescript/commonjs/ui/components/DevToolsCard.d.ts +8 -1
  182. package/lib/typescript/commonjs/ui/components/DevToolsCard.d.ts.map +1 -1
  183. package/lib/typescript/commonjs/ui/components/DynamicFilterView.d.ts.map +1 -1
  184. package/lib/typescript/commonjs/ui/components/EntityFilterView.d.ts +51 -0
  185. package/lib/typescript/commonjs/ui/components/EntityFilterView.d.ts.map +1 -0
  186. package/lib/typescript/commonjs/ui/components/EventHistoryViewer/CompareBar.d.ts.map +1 -1
  187. package/lib/typescript/commonjs/ui/components/EventHistoryViewer/DiffModeTabs.d.ts.map +1 -1
  188. package/lib/typescript/commonjs/ui/components/EventHistoryViewer/EventPickerModal.d.ts.map +1 -1
  189. package/lib/typescript/commonjs/ui/components/EventStepperFooter.d.ts.map +1 -1
  190. package/lib/typescript/commonjs/ui/components/ExpandablePopover.d.ts +5 -1
  191. package/lib/typescript/commonjs/ui/components/ExpandablePopover.d.ts.map +1 -1
  192. package/lib/typescript/commonjs/ui/components/ExpandedInfoRow.d.ts.map +1 -1
  193. package/lib/typescript/commonjs/ui/components/ExportPreview.d.ts +48 -0
  194. package/lib/typescript/commonjs/ui/components/ExportPreview.d.ts.map +1 -0
  195. package/lib/typescript/commonjs/ui/components/FilterComponents.d.ts.map +1 -1
  196. package/lib/typescript/commonjs/ui/components/InfoRow.d.ts +33 -0
  197. package/lib/typescript/commonjs/ui/components/InfoRow.d.ts.map +1 -0
  198. package/lib/typescript/commonjs/ui/components/ModalHeader.d.ts +31 -1
  199. package/lib/typescript/commonjs/ui/components/ModalHeader.d.ts.map +1 -1
  200. package/lib/typescript/commonjs/ui/components/Pill.d.ts +38 -0
  201. package/lib/typescript/commonjs/ui/components/Pill.d.ts.map +1 -0
  202. package/lib/typescript/commonjs/ui/components/ToggleRow.d.ts +33 -0
  203. package/lib/typescript/commonjs/ui/components/ToggleRow.d.ts.map +1 -0
  204. package/lib/typescript/commonjs/ui/components/ToolFooter.d.ts +69 -0
  205. package/lib/typescript/commonjs/ui/components/ToolFooter.d.ts.map +1 -0
  206. package/lib/typescript/commonjs/ui/components/index.d.ts +9 -0
  207. package/lib/typescript/commonjs/ui/components/index.d.ts.map +1 -1
  208. package/lib/typescript/commonjs/ui/console/CyberpunkSectionButton.d.ts.map +1 -1
  209. package/lib/typescript/commonjs/ui/fonts.d.ts +7 -0
  210. package/lib/typescript/commonjs/ui/fonts.d.ts.map +1 -0
  211. package/lib/typescript/commonjs/ui/gameUI/components/GameUICollapsibleSection.d.ts.map +1 -1
  212. package/lib/typescript/commonjs/ui/gameUI/components/GameUICompactStats.d.ts.map +1 -1
  213. package/lib/typescript/commonjs/ui/gameUI/components/GameUIIssuesList.d.ts.map +1 -1
  214. package/lib/typescript/commonjs/ui/gameUI/components/GameUIStatusHeader.d.ts.map +1 -1
  215. package/lib/typescript/commonjs/ui/index.d.ts +2 -0
  216. package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
  217. package/lib/typescript/commonjs/ui/listPresets.d.ts +28 -0
  218. package/lib/typescript/commonjs/ui/listPresets.d.ts.map +1 -0
  219. package/lib/typescript/commonjs/ui/night/primitives.d.ts +3 -1
  220. package/lib/typescript/commonjs/ui/night/primitives.d.ts.map +1 -1
  221. package/lib/typescript/commonjs/ui/toolTheme.d.ts.map +1 -1
  222. package/lib/typescript/commonjs/utils/snapshotProviderKit.d.ts +81 -0
  223. package/lib/typescript/commonjs/utils/snapshotProviderKit.d.ts.map +1 -0
  224. package/lib/typescript/commonjs/utils/stateTools.d.ts +44 -0
  225. package/lib/typescript/commonjs/utils/stateTools.d.ts.map +1 -0
  226. package/lib/typescript/module/JsModal.d.ts.map +1 -1
  227. package/lib/typescript/module/dataViewer/CyberpunkInput.d.ts.map +1 -1
  228. package/lib/typescript/module/dataViewer/DataTreeActionBar.d.ts.map +1 -1
  229. package/lib/typescript/module/dataViewer/DataTreeActionDock.d.ts.map +1 -1
  230. package/lib/typescript/module/dataViewer/DiffSummary.d.ts.map +1 -1
  231. package/lib/typescript/module/dataViewer/LiveExplorer.d.ts.map +1 -1
  232. package/lib/typescript/module/dataViewer/SplitDiffViewer.d.ts.map +1 -1
  233. package/lib/typescript/module/dataViewer/ThemedSplitView.d.ts.map +1 -1
  234. package/lib/typescript/module/dataViewer/ValueEditModal.d.ts.map +1 -1
  235. package/lib/typescript/module/dataViewer/VirtualizedDataExplorer.d.ts.map +1 -1
  236. package/lib/typescript/module/dataViewer/tree/TreeDiffViewer.d.ts.map +1 -1
  237. package/lib/typescript/module/hooks/index.d.ts +3 -1
  238. package/lib/typescript/module/hooks/index.d.ts.map +1 -1
  239. package/lib/typescript/module/hooks/safe-area-impl.d.ts +1 -1
  240. package/lib/typescript/module/hooks/useChangeLog.d.ts +38 -0
  241. package/lib/typescript/module/hooks/useChangeLog.d.ts.map +1 -0
  242. package/lib/typescript/module/hooks/useEventStoreEvents.d.ts +25 -0
  243. package/lib/typescript/module/hooks/useEventStoreEvents.d.ts.map +1 -0
  244. package/lib/typescript/module/hooks/usePersistedState.d.ts +34 -5
  245. package/lib/typescript/module/hooks/usePersistedState.d.ts.map +1 -1
  246. package/lib/typescript/module/icons/index.d.ts +4 -1
  247. package/lib/typescript/module/icons/index.d.ts.map +1 -1
  248. package/lib/typescript/module/index.d.ts +6 -1
  249. package/lib/typescript/module/index.d.ts.map +1 -1
  250. package/lib/typescript/module/license/FreeAccountPrompt.d.ts.map +1 -1
  251. package/lib/typescript/module/license/LicenseEntryModal.d.ts.map +1 -1
  252. package/lib/typescript/module/storage/definePersistedSetting.d.ts +39 -0
  253. package/lib/typescript/module/storage/definePersistedSetting.d.ts.map +1 -0
  254. package/lib/typescript/module/storage/index.d.ts +1 -0
  255. package/lib/typescript/module/storage/index.d.ts.map +1 -1
  256. package/lib/typescript/module/stores/ChangeLog.d.ts +100 -0
  257. package/lib/typescript/module/stores/ChangeLog.d.ts.map +1 -0
  258. package/lib/typescript/module/stores/createToolStore.d.ts +92 -0
  259. package/lib/typescript/module/stores/createToolStore.d.ts.map +1 -0
  260. package/lib/typescript/module/stores/index.d.ts +2 -0
  261. package/lib/typescript/module/stores/index.d.ts.map +1 -1
  262. package/lib/typescript/module/sync/toolSyncAdapter.d.ts +66 -0
  263. package/lib/typescript/module/sync/toolSyncAdapter.d.ts.map +1 -0
  264. package/lib/typescript/module/sync/wireForm.d.ts +100 -0
  265. package/lib/typescript/module/sync/wireForm.d.ts.map +1 -0
  266. package/lib/typescript/module/tools/defineTool.d.ts +100 -0
  267. package/lib/typescript/module/tools/defineTool.d.ts.map +1 -0
  268. package/lib/typescript/module/ui/components/ChangeRow.d.ts +52 -0
  269. package/lib/typescript/module/ui/components/ChangeRow.d.ts.map +1 -0
  270. package/lib/typescript/module/ui/components/ChipStrip.d.ts +41 -0
  271. package/lib/typescript/module/ui/components/ChipStrip.d.ts.map +1 -0
  272. package/lib/typescript/module/ui/components/ClipboardHintBanner.d.ts.map +1 -1
  273. package/lib/typescript/module/ui/components/CompactRow.d.ts.map +1 -1
  274. package/lib/typescript/module/ui/components/DataInspector.d.ts.map +1 -1
  275. package/lib/typescript/module/ui/components/DetailView.d.ts.map +1 -1
  276. package/lib/typescript/module/ui/components/DetailViewToggle.d.ts +36 -0
  277. package/lib/typescript/module/ui/components/DetailViewToggle.d.ts.map +1 -0
  278. package/lib/typescript/module/ui/components/DevToolsCard.d.ts +8 -1
  279. package/lib/typescript/module/ui/components/DevToolsCard.d.ts.map +1 -1
  280. package/lib/typescript/module/ui/components/DynamicFilterView.d.ts.map +1 -1
  281. package/lib/typescript/module/ui/components/EntityFilterView.d.ts +51 -0
  282. package/lib/typescript/module/ui/components/EntityFilterView.d.ts.map +1 -0
  283. package/lib/typescript/module/ui/components/EventHistoryViewer/CompareBar.d.ts.map +1 -1
  284. package/lib/typescript/module/ui/components/EventHistoryViewer/DiffModeTabs.d.ts.map +1 -1
  285. package/lib/typescript/module/ui/components/EventHistoryViewer/EventPickerModal.d.ts.map +1 -1
  286. package/lib/typescript/module/ui/components/EventStepperFooter.d.ts.map +1 -1
  287. package/lib/typescript/module/ui/components/ExpandablePopover.d.ts +5 -1
  288. package/lib/typescript/module/ui/components/ExpandablePopover.d.ts.map +1 -1
  289. package/lib/typescript/module/ui/components/ExpandedInfoRow.d.ts.map +1 -1
  290. package/lib/typescript/module/ui/components/ExportPreview.d.ts +48 -0
  291. package/lib/typescript/module/ui/components/ExportPreview.d.ts.map +1 -0
  292. package/lib/typescript/module/ui/components/FilterComponents.d.ts.map +1 -1
  293. package/lib/typescript/module/ui/components/InfoRow.d.ts +33 -0
  294. package/lib/typescript/module/ui/components/InfoRow.d.ts.map +1 -0
  295. package/lib/typescript/module/ui/components/ModalHeader.d.ts +31 -1
  296. package/lib/typescript/module/ui/components/ModalHeader.d.ts.map +1 -1
  297. package/lib/typescript/module/ui/components/Pill.d.ts +38 -0
  298. package/lib/typescript/module/ui/components/Pill.d.ts.map +1 -0
  299. package/lib/typescript/module/ui/components/ToggleRow.d.ts +33 -0
  300. package/lib/typescript/module/ui/components/ToggleRow.d.ts.map +1 -0
  301. package/lib/typescript/module/ui/components/ToolFooter.d.ts +69 -0
  302. package/lib/typescript/module/ui/components/ToolFooter.d.ts.map +1 -0
  303. package/lib/typescript/module/ui/components/index.d.ts +9 -0
  304. package/lib/typescript/module/ui/components/index.d.ts.map +1 -1
  305. package/lib/typescript/module/ui/console/CyberpunkSectionButton.d.ts.map +1 -1
  306. package/lib/typescript/module/ui/fonts.d.ts +7 -0
  307. package/lib/typescript/module/ui/fonts.d.ts.map +1 -0
  308. package/lib/typescript/module/ui/gameUI/components/GameUICollapsibleSection.d.ts.map +1 -1
  309. package/lib/typescript/module/ui/gameUI/components/GameUICompactStats.d.ts.map +1 -1
  310. package/lib/typescript/module/ui/gameUI/components/GameUIIssuesList.d.ts.map +1 -1
  311. package/lib/typescript/module/ui/gameUI/components/GameUIStatusHeader.d.ts.map +1 -1
  312. package/lib/typescript/module/ui/index.d.ts +2 -0
  313. package/lib/typescript/module/ui/index.d.ts.map +1 -1
  314. package/lib/typescript/module/ui/listPresets.d.ts +28 -0
  315. package/lib/typescript/module/ui/listPresets.d.ts.map +1 -0
  316. package/lib/typescript/module/ui/night/primitives.d.ts +3 -1
  317. package/lib/typescript/module/ui/night/primitives.d.ts.map +1 -1
  318. package/lib/typescript/module/ui/toolTheme.d.ts.map +1 -1
  319. package/lib/typescript/module/utils/snapshotProviderKit.d.ts +81 -0
  320. package/lib/typescript/module/utils/snapshotProviderKit.d.ts.map +1 -0
  321. package/lib/typescript/module/utils/stateTools.d.ts +44 -0
  322. package/lib/typescript/module/utils/stateTools.d.ts.map +1 -0
  323. package/package.json +4 -4
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * DetailViewToggle — the row of view cards at the top of a detail screen
5
+ * (ACTION · STATE · DIFF, CHANGE · STATE · DIFF, …).
6
+ *
7
+ * redux, zustand and jotai each shipped their own copy, differing only in
8
+ * the view keys, labels and testID prefix. The cards, the accent chrome,
9
+ * the disabled state (diff with nothing to compare) and the a11y contract
10
+ * are all one component now; tools pass their `views`.
11
+ */
12
+
13
+ import React, { memo } from "react";
14
+ import { StyleSheet, Text, TouchableOpacity, View } from "react-native";
15
+ import { night } from "../night/nightTheme.js";
16
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
+ function DetailViewToggleImpl({
18
+ views,
19
+ activeView,
20
+ onViewChange,
21
+ disabledKeys,
22
+ testIDPrefix
23
+ }) {
24
+ return /*#__PURE__*/_jsx(View, {
25
+ style: styles.container,
26
+ children: views.map(view => {
27
+ const isActive = activeView === view.key;
28
+ const isDisabled = disabledKeys?.includes(view.key) ?? false;
29
+ const activeColor = view.activeColor ?? night.color.accent;
30
+ const IconComponent = view.icon;
31
+ return /*#__PURE__*/_jsxs(TouchableOpacity, {
32
+ style: [styles.card, isActive && [styles.cardActive, {
33
+ borderColor: activeColor
34
+ }], isDisabled && styles.cardDisabled],
35
+ onPress: () => !isDisabled && onViewChange(view.key),
36
+ activeOpacity: isDisabled ? 1 : 0.8,
37
+ disabled: isDisabled,
38
+ testID: testIDPrefix ? `${testIDPrefix}-view-${view.key}` : undefined,
39
+ accessibilityRole: "button",
40
+ accessibilityLabel: view.label,
41
+ accessibilityState: {
42
+ selected: isActive,
43
+ disabled: isDisabled
44
+ },
45
+ children: [/*#__PURE__*/_jsxs(View, {
46
+ style: styles.cardContent,
47
+ children: [/*#__PURE__*/_jsx(IconComponent, {
48
+ size: 14,
49
+ color: isActive ? activeColor : isDisabled ? night.color.textTertiary : night.color.textSecondary
50
+ }), /*#__PURE__*/_jsx(Text, {
51
+ style: [styles.cardLabel, isActive && [styles.cardLabelActive, {
52
+ color: activeColor
53
+ }], isDisabled && styles.cardLabelDisabled],
54
+ children: view.label
55
+ })]
56
+ }), view.description ? /*#__PURE__*/_jsx(Text, {
57
+ style: [styles.cardDescription, isActive && styles.cardDescriptionActive, isDisabled && styles.cardDescriptionDisabled],
58
+ children: view.description
59
+ }) : null]
60
+ }, view.key);
61
+ })
62
+ });
63
+ }
64
+ export const DetailViewToggle = /*#__PURE__*/memo(DetailViewToggleImpl);
65
+ const styles = StyleSheet.create({
66
+ container: {
67
+ flexDirection: "row",
68
+ gap: 8,
69
+ padding: 14,
70
+ // Transparent so the night sheet's star field shows through.
71
+ backgroundColor: "transparent"
72
+ },
73
+ card: {
74
+ flex: 1,
75
+ backgroundColor: night.color.surface,
76
+ borderRadius: 12,
77
+ borderWidth: 1,
78
+ borderColor: night.color.border,
79
+ padding: 10,
80
+ gap: 4
81
+ },
82
+ cardActive: {
83
+ borderWidth: 1.5,
84
+ backgroundColor: night.color.accentSoft,
85
+ shadowColor: night.color.accent,
86
+ shadowOffset: {
87
+ width: 0,
88
+ height: 2
89
+ },
90
+ shadowOpacity: 0.1,
91
+ shadowRadius: 8,
92
+ elevation: 3
93
+ },
94
+ cardDisabled: {
95
+ opacity: 0.5
96
+ },
97
+ cardContent: {
98
+ flexDirection: "row",
99
+ alignItems: "center",
100
+ gap: 6
101
+ },
102
+ cardLabel: {
103
+ fontSize: 10,
104
+ fontWeight: "700",
105
+ letterSpacing: 0.5,
106
+ color: night.color.textSecondary
107
+ },
108
+ cardLabelActive: {
109
+ color: night.color.text
110
+ },
111
+ cardLabelDisabled: {
112
+ color: night.color.textTertiary
113
+ },
114
+ cardDescription: {
115
+ fontSize: 9,
116
+ color: night.color.textTertiary,
117
+ lineHeight: 12
118
+ },
119
+ cardDescriptionActive: {
120
+ color: night.color.textSecondary
121
+ },
122
+ cardDescriptionDisabled: {
123
+ color: night.color.textTertiary
124
+ }
125
+ });
@@ -45,7 +45,8 @@ export function DevToolsCard({
45
45
  style,
46
46
  contentStyle,
47
47
  testID,
48
- accessibilityLabel
48
+ accessibilityLabel,
49
+ accessible
49
50
  }) {
50
51
  const isInteractive = !!onPress || !!onLongPress;
51
52
 
@@ -54,6 +55,7 @@ export function DevToolsCard({
54
55
  return /*#__PURE__*/_jsx(View, {
55
56
  style: [styles.wrapper, style],
56
57
  testID: testID,
58
+ accessible: accessible,
57
59
  accessibilityLabel: accessibilityLabel,
58
60
  children: /*#__PURE__*/_jsx(View, {
59
61
  style: [styles.card, isSelected && styles.selectedCard, contentStyle],
@@ -8,6 +8,7 @@ import { FilterList, AddFilterInput, AddFilterButton } from "./FilterComponents.
8
8
  import { useFilterManager } from "../../hooks/useFilterManager.js";
9
9
  import { buoyColors } from "../gameUI/constants/gameUIColors.js";
10
10
  import { night } from "../night/nightTheme.js";
11
+ import { monoFont } from "../fonts.js";
11
12
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
12
13
  export function DynamicFilterView({
13
14
  sections = [],
@@ -489,7 +490,7 @@ const styles = StyleSheet.create({
489
490
  fontSize: 14,
490
491
  fontWeight: "700",
491
492
  color: night.color.text,
492
- fontFamily: "monospace",
493
+ fontFamily: monoFont,
493
494
  marginTop: 3,
494
495
  marginBottom: 1,
495
496
  textShadowColor: "rgba(0, 0, 0, 0.2)",
@@ -503,7 +504,7 @@ const styles = StyleSheet.create({
503
504
  fontSize: 11,
504
505
  fontWeight: "500",
505
506
  color: night.color.textTertiary,
506
- fontFamily: "monospace",
507
+ fontFamily: monoFont,
507
508
  marginTop: 3,
508
509
  marginBottom: 1
509
510
  },
@@ -547,7 +548,7 @@ const styles = StyleSheet.create({
547
548
  fontSize: 13,
548
549
  fontWeight: "700",
549
550
  letterSpacing: 0.3,
550
- fontFamily: "monospace"
551
+ fontFamily: monoFont
551
552
  },
552
553
  activeFiltersSection: {
553
554
  backgroundColor: night.color.surface,
@@ -686,7 +687,7 @@ const styles = StyleSheet.create({
686
687
  flex: 1,
687
688
  fontSize: 11,
688
689
  color: night.color.text,
689
- fontFamily: "monospace",
690
+ fontFamily: monoFont,
690
691
  marginRight: 8
691
692
  },
692
693
  howItWorksSection: {
@@ -705,7 +706,7 @@ const styles = StyleSheet.create({
705
706
  marginBottom: 12,
706
707
  marginTop: 8,
707
708
  paddingHorizontal: 16,
708
- fontFamily: "monospace"
709
+ fontFamily: monoFont
709
710
  },
710
711
  examplesContainer: {
711
712
  paddingTop: 8,
@@ -718,14 +719,14 @@ const styles = StyleSheet.create({
718
719
  fontSize: 10,
719
720
  fontWeight: "600",
720
721
  color: night.color.textTertiary,
721
- fontFamily: "monospace",
722
+ fontFamily: monoFont,
722
723
  letterSpacing: 0.5,
723
724
  marginBottom: 6
724
725
  },
725
726
  exampleItem: {
726
727
  fontSize: 10,
727
728
  color: night.color.textTertiary,
728
- fontFamily: "monospace",
729
+ fontFamily: monoFont,
729
730
  lineHeight: 16
730
731
  },
731
732
  previewSection: {
@@ -0,0 +1,351 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * EntityFilterView — the "hide these by name" filter screen the state tools
5
+ * share: a list of registered entities (stores, atoms) you can tap to hide,
6
+ * the active name patterns with a remove ✕, an add-pattern affordance, and
7
+ * a how-it-works card.
8
+ *
9
+ * zustand and jotai each shipped their own copy (~370 lines apiece). The
10
+ * tool supplies the entities, the nouns and the testID prefix; the screen
11
+ * is drawn once.
12
+ *
13
+ * testID convention (unchanged from zustand's):
14
+ * `${prefix}-filters-scroll`, `${prefix}-filters-${entityKey}-count`,
15
+ * `${prefix}-filters-${entityKey}-${slug(name)}`, `${prefix}-filters-count`,
16
+ * `${prefix}-filters-add-open`, `${prefix}-filters-add-input`,
17
+ * `${prefix}-filters-chip-${slug(pattern)}`.
18
+ */
19
+
20
+ import { useState } from "react";
21
+ import { ScrollView, StyleSheet, Text, TouchableOpacity, View } from "react-native";
22
+ import { Filter, X } from "../../icons/index.js";
23
+ import { night } from "../night/nightTheme.js";
24
+ import { SectionHeader } from "./SectionHeader.js";
25
+ import { AddFilterButton, AddFilterInput } from "./FilterComponents.js";
26
+ import { monoFont } from "../fonts.js";
27
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
28
+ /** True if any active pattern hides this entity. */
29
+ function isHidden(entity, ignoredPatterns) {
30
+ return Array.from(ignoredPatterns).some(p => entity.name.toLowerCase().includes(p.toLowerCase()));
31
+ }
32
+
33
+ /** The entity color for a pattern that exactly names a registered entity. */
34
+ function colorForPattern(pattern, entities) {
35
+ const match = entities.find(e => e.name.toLowerCase() === pattern.toLowerCase());
36
+ return match ? match.color : null;
37
+ }
38
+ export function EntityFilterView({
39
+ entities,
40
+ ignoredPatterns,
41
+ onTogglePattern,
42
+ onAddPattern,
43
+ entityNoun,
44
+ entitySingular,
45
+ entityKey,
46
+ testIDPrefix,
47
+ slug,
48
+ howItWorks,
49
+ examples,
50
+ addPlaceholder,
51
+ emptyMessage
52
+ }) {
53
+ const [showAddInput, setShowAddInput] = useState(false);
54
+ const [inputValue, setInputValue] = useState("");
55
+ const handleAddPattern = () => {
56
+ const trimmed = inputValue.trim();
57
+ if (trimmed) {
58
+ onAddPattern(trimmed);
59
+ setInputValue("");
60
+ setShowAddInput(false);
61
+ }
62
+ };
63
+ return /*#__PURE__*/_jsxs(ScrollView, {
64
+ style: styles.container,
65
+ contentContainerStyle: styles.scrollContent,
66
+ showsVerticalScrollIndicator: false,
67
+ nestedScrollEnabled: true,
68
+ testID: `${testIDPrefix}-filters-scroll`,
69
+ children: [entities.length === 0 && emptyMessage ? /*#__PURE__*/_jsxs(View, {
70
+ style: styles.section,
71
+ children: [/*#__PURE__*/_jsx(SectionHeader, {
72
+ children: /*#__PURE__*/_jsxs(SectionHeader.Title, {
73
+ children: ["REGISTERED ", entityNoun]
74
+ })
75
+ }), /*#__PURE__*/_jsx(Text, {
76
+ style: styles.emptyText,
77
+ testID: `${testIDPrefix}-filters-${entityKey}s-empty`,
78
+ children: emptyMessage
79
+ })]
80
+ }) : null, entities.length > 0 && /*#__PURE__*/_jsxs(View, {
81
+ style: styles.section,
82
+ children: [/*#__PURE__*/_jsxs(SectionHeader, {
83
+ children: [/*#__PURE__*/_jsxs(SectionHeader.Title, {
84
+ children: ["REGISTERED ", entityNoun]
85
+ }), /*#__PURE__*/_jsx(SectionHeader.Badge, {
86
+ count: entities.length,
87
+ color: night.color.accent,
88
+ testID: `${testIDPrefix}-filters-${entityKey}-count`
89
+ })]
90
+ }), /*#__PURE__*/_jsx(ScrollView, {
91
+ style: styles.entityList,
92
+ contentContainerStyle: styles.entityListContent,
93
+ showsVerticalScrollIndicator: true,
94
+ nestedScrollEnabled: true,
95
+ testID: `${testIDPrefix}-filters-${entityKey}-list`,
96
+ children: entities.map(entity => {
97
+ const hidden = isHidden(entity, ignoredPatterns);
98
+ return /*#__PURE__*/_jsxs(TouchableOpacity, {
99
+ style: [styles.entityRow, hidden && styles.entityRowHidden],
100
+ onPress: () => onAddPattern(entity.name),
101
+ disabled: hidden,
102
+ testID: `${testIDPrefix}-filters-${entityKey}-${slug(entity.name)}`,
103
+ accessibilityRole: "button",
104
+ accessibilityLabel: `Hide ${entity.name}`,
105
+ accessibilityState: {
106
+ disabled: hidden
107
+ },
108
+ children: [/*#__PURE__*/_jsx(View, {
109
+ style: [styles.dot, {
110
+ backgroundColor: hidden ? night.color.textTertiary : entity.color
111
+ }]
112
+ }), /*#__PURE__*/_jsx(Text, {
113
+ style: [styles.entityText, hidden ? styles.entityTextHidden : {
114
+ color: entity.color
115
+ }],
116
+ numberOfLines: 1,
117
+ children: entity.name
118
+ }), hidden ? /*#__PURE__*/_jsx(Text, {
119
+ style: styles.hiddenLabel,
120
+ children: "hidden"
121
+ }) : /*#__PURE__*/_jsx(Text, {
122
+ style: [styles.addLabel, {
123
+ color: entity.color + "99"
124
+ }],
125
+ children: "+ hide"
126
+ })]
127
+ }, entity.name);
128
+ })
129
+ })]
130
+ }), /*#__PURE__*/_jsxs(View, {
131
+ style: styles.section,
132
+ children: [/*#__PURE__*/_jsxs(SectionHeader, {
133
+ children: [/*#__PURE__*/_jsx(SectionHeader.Icon, {
134
+ icon: Filter,
135
+ color: night.color.accent,
136
+ size: 12
137
+ }), /*#__PURE__*/_jsxs(SectionHeader.Title, {
138
+ children: [entitySingular.toUpperCase(), " NAME FILTERS"]
139
+ }), ignoredPatterns.size > 0 && /*#__PURE__*/_jsx(SectionHeader.Badge, {
140
+ count: ignoredPatterns.size,
141
+ color: night.color.accent,
142
+ testID: `${testIDPrefix}-filters-count`
143
+ })]
144
+ }), /*#__PURE__*/_jsx(View, {
145
+ style: styles.addInputWrapper,
146
+ children: !showAddInput ? /*#__PURE__*/_jsx(AddFilterButton, {
147
+ onPress: () => setShowAddInput(true),
148
+ color: night.color.accent,
149
+ label: `Add ${entitySingular} name pattern`,
150
+ testID: `${testIDPrefix}-filters-add-open`
151
+ }) : /*#__PURE__*/_jsx(AddFilterInput, {
152
+ value: inputValue,
153
+ onChange: setInputValue,
154
+ onSubmit: handleAddPattern,
155
+ onCancel: () => {
156
+ setShowAddInput(false);
157
+ setInputValue("");
158
+ },
159
+ placeholder: addPlaceholder ?? `Enter ${entitySingular} name pattern to hide...`,
160
+ color: night.color.accent,
161
+ testID: `${testIDPrefix}-filters-add-input`
162
+ })
163
+ }), ignoredPatterns.size > 0 && /*#__PURE__*/_jsx(View, {
164
+ style: styles.patternList,
165
+ children: Array.from(ignoredPatterns).map(pattern => {
166
+ const color = colorForPattern(pattern, entities);
167
+ return /*#__PURE__*/_jsxs(TouchableOpacity, {
168
+ style: styles.patternRow,
169
+ onPress: () => onTogglePattern(pattern),
170
+ activeOpacity: 0.8,
171
+ testID: `${testIDPrefix}-filters-chip-${slug(pattern)}`,
172
+ accessibilityRole: "button",
173
+ accessibilityLabel: `Remove filter ${pattern}`,
174
+ children: [color ? /*#__PURE__*/_jsx(View, {
175
+ style: [styles.dot, {
176
+ backgroundColor: color
177
+ }]
178
+ }) : null, /*#__PURE__*/_jsx(Text, {
179
+ style: [styles.patternText, color ? {
180
+ color
181
+ } : null],
182
+ numberOfLines: 1,
183
+ children: pattern
184
+ }), /*#__PURE__*/_jsx(X, {
185
+ size: 12,
186
+ color: night.color.accent + "80"
187
+ })]
188
+ }, pattern);
189
+ })
190
+ })]
191
+ }), /*#__PURE__*/_jsxs(View, {
192
+ style: styles.section,
193
+ children: [/*#__PURE__*/_jsxs(SectionHeader, {
194
+ children: [/*#__PURE__*/_jsx(SectionHeader.Icon, {
195
+ icon: Filter,
196
+ color: night.color.textSecondary,
197
+ size: 12
198
+ }), /*#__PURE__*/_jsx(SectionHeader.Title, {
199
+ children: "HOW EVENT FILTERS WORK"
200
+ })]
201
+ }), /*#__PURE__*/_jsx(Text, {
202
+ style: styles.howItWorksText,
203
+ children: howItWorks
204
+ }), /*#__PURE__*/_jsxs(View, {
205
+ style: styles.examplesContainer,
206
+ children: [/*#__PURE__*/_jsx(Text, {
207
+ style: styles.examplesTitle,
208
+ children: "EXAMPLES:"
209
+ }), examples.map(ex => /*#__PURE__*/_jsx(Text, {
210
+ style: styles.exampleItem,
211
+ children: ex
212
+ }, ex))]
213
+ })]
214
+ })]
215
+ });
216
+ }
217
+ const styles = StyleSheet.create({
218
+ container: {
219
+ flex: 1,
220
+ // Transparent so the night sheet's star field shows through.
221
+ backgroundColor: "transparent"
222
+ },
223
+ scrollContent: {
224
+ paddingTop: 16,
225
+ paddingHorizontal: 16,
226
+ paddingBottom: 24,
227
+ gap: 16
228
+ },
229
+ section: {
230
+ backgroundColor: night.color.surface,
231
+ borderRadius: 16,
232
+ borderWidth: 1,
233
+ borderColor: night.color.border,
234
+ overflow: "hidden"
235
+ },
236
+ entityList: {
237
+ maxHeight: 180
238
+ },
239
+ entityListContent: {
240
+ paddingHorizontal: 16,
241
+ paddingTop: 8,
242
+ paddingBottom: 16,
243
+ gap: 10
244
+ },
245
+ entityRow: {
246
+ flexDirection: "row",
247
+ alignItems: "center",
248
+ gap: 10,
249
+ paddingVertical: 10,
250
+ paddingHorizontal: 12,
251
+ backgroundColor: night.color.surfaceElevated,
252
+ borderRadius: 8,
253
+ borderWidth: 1,
254
+ borderColor: night.color.border
255
+ },
256
+ entityRowHidden: {
257
+ opacity: 0.45
258
+ },
259
+ dot: {
260
+ width: 7,
261
+ height: 7,
262
+ borderRadius: 3.5
263
+ },
264
+ entityText: {
265
+ flex: 1,
266
+ fontSize: 12,
267
+ fontWeight: "600",
268
+ fontFamily: monoFont
269
+ },
270
+ entityTextHidden: {
271
+ color: night.color.textTertiary,
272
+ textDecorationLine: "line-through"
273
+ },
274
+ hiddenLabel: {
275
+ fontSize: 10,
276
+ fontWeight: "500",
277
+ color: night.color.textTertiary,
278
+ fontFamily: monoFont
279
+ },
280
+ addLabel: {
281
+ fontSize: 10,
282
+ fontWeight: "600",
283
+ fontFamily: monoFont
284
+ },
285
+ addInputWrapper: {
286
+ paddingHorizontal: 16,
287
+ paddingTop: 8,
288
+ paddingBottom: 8
289
+ },
290
+ patternList: {
291
+ paddingHorizontal: 16,
292
+ paddingBottom: 16,
293
+ gap: 8
294
+ },
295
+ patternRow: {
296
+ flexDirection: "row",
297
+ alignItems: "center",
298
+ justifyContent: "space-between",
299
+ paddingVertical: 10,
300
+ paddingHorizontal: 12,
301
+ backgroundColor: night.color.surfaceElevated,
302
+ borderRadius: 8,
303
+ borderWidth: 1,
304
+ borderColor: night.color.border,
305
+ gap: 8
306
+ },
307
+ patternText: {
308
+ flex: 1,
309
+ fontSize: 12,
310
+ fontFamily: monoFont,
311
+ color: night.color.text
312
+ },
313
+ emptyText: {
314
+ fontSize: 11,
315
+ color: night.color.textTertiary,
316
+ paddingHorizontal: 16,
317
+ paddingTop: 8,
318
+ paddingBottom: 16,
319
+ fontFamily: monoFont
320
+ },
321
+ howItWorksText: {
322
+ fontSize: 11,
323
+ color: night.color.textSecondary,
324
+ lineHeight: 16,
325
+ marginTop: 8,
326
+ paddingHorizontal: 16,
327
+ fontFamily: monoFont
328
+ },
329
+ examplesContainer: {
330
+ paddingTop: 8,
331
+ paddingHorizontal: 16,
332
+ paddingBottom: 16,
333
+ borderTopWidth: 1,
334
+ borderTopColor: night.color.border,
335
+ marginTop: 12
336
+ },
337
+ examplesTitle: {
338
+ fontSize: 10,
339
+ fontWeight: "600",
340
+ color: night.color.textTertiary,
341
+ fontFamily: monoFont,
342
+ letterSpacing: 0.5,
343
+ marginBottom: 6
344
+ },
345
+ exampleItem: {
346
+ fontSize: 10,
347
+ color: night.color.textTertiary,
348
+ fontFamily: monoFont,
349
+ lineHeight: 16
350
+ }
351
+ });
@@ -12,11 +12,12 @@ import React, { memo } from "react";
12
12
  import { View, Text, TouchableOpacity, StyleSheet } from "react-native";
13
13
  import { macOSColors } from "../../gameUI/constants/macOSDesignSystemColors.js";
14
14
  import { ChevronLeft, ChevronRight } from "../../../icons/lucide-icons.js";
15
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
+ import { monoFont } from "../../fonts.js";
16
16
  /**
17
17
  * CompareBar displays a side-by-side comparison of two events
18
18
  * with optional navigation controls for any-to-any compare mode.
19
19
  */
20
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
21
  export const CompareBar = /*#__PURE__*/memo(function CompareBar({
21
22
  leftEvent,
22
23
  rightEvent,
@@ -150,7 +151,7 @@ const styles = StyleSheet.create({
150
151
  },
151
152
  label: {
152
153
  fontSize: 10,
153
- fontFamily: "monospace",
154
+ fontFamily: monoFont,
154
155
  fontWeight: "700",
155
156
  letterSpacing: 0.5,
156
157
  textTransform: "uppercase"
@@ -185,17 +186,17 @@ const styles = StyleSheet.create({
185
186
  index: {
186
187
  fontSize: 10,
187
188
  color: macOSColors.text.secondary,
188
- fontFamily: "monospace"
189
+ fontFamily: monoFont
189
190
  },
190
191
  time: {
191
192
  fontSize: 11,
192
193
  color: macOSColors.text.primary,
193
- fontFamily: "monospace"
194
+ fontFamily: monoFont
194
195
  },
195
196
  relative: {
196
197
  fontSize: 10,
197
198
  color: macOSColors.text.secondary,
198
- fontFamily: "monospace"
199
+ fontFamily: monoFont
199
200
  },
200
201
  divider: {
201
202
  width: 1,
@@ -11,11 +11,12 @@
11
11
  import React, { memo } from "react";
12
12
  import { View, Text, TouchableOpacity, StyleSheet } from "react-native";
13
13
  import { macOSColors } from "../../gameUI/constants/macOSDesignSystemColors.js";
14
- import { jsx as _jsx } from "react/jsx-runtime";
14
+ import { monoFont } from "../../fonts.js";
15
15
  /**
16
16
  * DiffModeTabs displays a horizontal tab bar for switching
17
17
  * between different diff visualization modes.
18
18
  */
19
+ import { jsx as _jsx } from "react/jsx-runtime";
19
20
  export const DiffModeTabs = /*#__PURE__*/memo(function DiffModeTabs({
20
21
  tabs,
21
22
  activeTab,
@@ -79,7 +80,7 @@ const styles = StyleSheet.create({
79
80
  },
80
81
  tabText: {
81
82
  fontSize: 11,
82
- fontFamily: "monospace",
83
+ fontFamily: monoFont,
83
84
  fontWeight: "600",
84
85
  color: macOSColors.text.secondary,
85
86
  letterSpacing: 0.5
@@ -13,11 +13,12 @@ import { View, Text, TouchableOpacity, ScrollView, StyleSheet } from "react-nati
13
13
  import { absoluteFill } from "../../../utils/absoluteFill.js";
14
14
  import { macOSColors } from "../../gameUI/constants/macOSDesignSystemColors.js";
15
15
  import { X } from "../../../icons/lucide-icons.js";
16
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
+ import { monoFont } from "../../fonts.js";
17
17
  /**
18
18
  * EventPickerModal displays a modal for selecting events
19
19
  * with color-coded styling based on position (left/right).
20
20
  */
21
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
21
22
  export const EventPickerModal = /*#__PURE__*/memo(function EventPickerModal({
22
23
  isOpen,
23
24
  onClose,
@@ -118,7 +119,7 @@ const styles = StyleSheet.create({
118
119
  title: {
119
120
  fontSize: 13,
120
121
  fontWeight: "700",
121
- fontFamily: "monospace",
122
+ fontFamily: monoFont,
122
123
  textTransform: "uppercase",
123
124
  marginBottom: 8,
124
125
  letterSpacing: 0.6
@@ -185,18 +186,18 @@ const styles = StyleSheet.create({
185
186
  itemIndex: {
186
187
  fontSize: 10,
187
188
  color: macOSColors.text.secondary,
188
- fontFamily: "monospace",
189
+ fontFamily: monoFont,
189
190
  width: 40
190
191
  },
191
192
  itemTime: {
192
193
  fontSize: 11,
193
194
  color: macOSColors.text.primary,
194
- fontFamily: "monospace",
195
+ fontFamily: monoFont,
195
196
  flex: 1
196
197
  },
197
198
  itemRelative: {
198
199
  fontSize: 10,
199
200
  color: macOSColors.text.secondary,
200
- fontFamily: "monospace"
201
+ fontFamily: monoFont
201
202
  }
202
203
  });