atom.io 0.32.3 → 0.33.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 (362) hide show
  1. package/dist/chunk-Cl8Af3a2.js +11 -0
  2. package/dist/data/index.d.ts +28 -0
  3. package/dist/data/index.d.ts.map +1 -0
  4. package/dist/data/index.js +66 -0
  5. package/dist/data/index.js.map +1 -0
  6. package/dist/devtools-CAg2k57t.js +0 -0
  7. package/dist/devtools-Jyn42mZm.css +311 -0
  8. package/dist/devtools-Jyn42mZm.css.map +1 -0
  9. package/dist/eslint-plugin/index.d.ts +36 -0
  10. package/dist/eslint-plugin/index.d.ts.map +1 -0
  11. package/dist/eslint-plugin/index.js +196 -0
  12. package/dist/eslint-plugin/index.js.map +1 -0
  13. package/{internal/dist → dist/internal}/index.d.ts +497 -377
  14. package/dist/internal/index.d.ts.map +1 -0
  15. package/dist/internal/index.js +3213 -0
  16. package/dist/internal/index.js.map +1 -0
  17. package/dist/introspection/index.d.ts +153 -0
  18. package/dist/introspection/index.d.ts.map +1 -0
  19. package/dist/introspection/index.js +520 -0
  20. package/dist/introspection/index.js.map +1 -0
  21. package/{json/dist → dist/json}/index.d.ts +38 -32
  22. package/dist/json/index.d.ts.map +1 -0
  23. package/dist/json/index.js +75 -0
  24. package/dist/json/index.js.map +1 -0
  25. package/dist/main/index.d.ts +691 -0
  26. package/dist/main/index.d.ts.map +1 -0
  27. package/dist/main/index.js +237 -0
  28. package/dist/main/index.js.map +1 -0
  29. package/{react/dist → dist/react}/index.d.ts +22 -11
  30. package/dist/react/index.d.ts.map +1 -0
  31. package/dist/react/index.js +91 -0
  32. package/dist/react/index.js.map +1 -0
  33. package/dist/react-devtools/index.d.ts +194 -0
  34. package/dist/react-devtools/index.d.ts.map +1 -0
  35. package/dist/react-devtools/index.js +1274 -0
  36. package/dist/react-devtools/index.js.map +1 -0
  37. package/dist/realtime/index.d.ts +55 -0
  38. package/dist/realtime/index.d.ts.map +1 -0
  39. package/dist/realtime/index.js +113 -0
  40. package/dist/realtime/index.js.map +1 -0
  41. package/dist/realtime-client/index.d.ts +81 -0
  42. package/dist/realtime-client/index.d.ts.map +1 -0
  43. package/dist/realtime-client/index.js +376 -0
  44. package/dist/realtime-client/index.js.map +1 -0
  45. package/dist/realtime-react/index.d.ts +68 -0
  46. package/dist/realtime-react/index.d.ts.map +1 -0
  47. package/dist/realtime-react/index.js +182 -0
  48. package/dist/realtime-react/index.js.map +1 -0
  49. package/dist/realtime-server/index.d.ts +190 -0
  50. package/dist/realtime-server/index.d.ts.map +1 -0
  51. package/dist/realtime-server/index.js +795 -0
  52. package/dist/realtime-server/index.js.map +1 -0
  53. package/dist/realtime-testing/index.d.ts +60 -0
  54. package/dist/realtime-testing/index.d.ts.map +1 -0
  55. package/dist/realtime-testing/index.js +181 -0
  56. package/dist/realtime-testing/index.js.map +1 -0
  57. package/dist/transceivers/set-rtx/index.d.ts +44 -0
  58. package/dist/transceivers/set-rtx/index.d.ts.map +1 -0
  59. package/dist/transceivers/set-rtx/index.js +204 -0
  60. package/dist/transceivers/set-rtx/index.js.map +1 -0
  61. package/dist/web/index.d.ts +15 -0
  62. package/dist/web/index.d.ts.map +1 -0
  63. package/dist/web/index.js +16 -0
  64. package/dist/web/index.js.map +1 -0
  65. package/package.json +70 -122
  66. package/{data/src → src/data}/struct.ts +1 -0
  67. package/{eslint-plugin/src → src/eslint-plugin}/index.ts +3 -1
  68. package/{eslint-plugin/src → src/eslint-plugin}/rules/explicit-state-types.ts +6 -1
  69. package/{eslint-plugin/src → src/eslint-plugin}/rules/synchronous-selector-dependencies.ts +14 -1
  70. package/{internal/src → src/internal}/families/create-writable-selector-family.ts +4 -2
  71. package/{internal/src → src/internal}/families/index.ts +2 -0
  72. package/{internal/src → src/internal}/index.ts +1 -0
  73. package/{internal/src → src/internal}/join/find-relations-in-store.ts +12 -0
  74. package/{internal/src → src/internal}/junction.ts +3 -2
  75. package/{internal/src → src/internal}/lazy-map.ts +1 -1
  76. package/{internal/src → src/internal}/mutable/tracker-family.ts +2 -5
  77. package/{internal/src → src/internal}/mutable/tracker.ts +15 -9
  78. package/{internal/src → src/internal}/selector/register-selector.ts +2 -1
  79. package/{internal/src → src/internal}/store/store.ts +68 -53
  80. package/{internal/src → src/internal}/subject.ts +1 -1
  81. package/{internal/src → src/internal}/transaction/build-transaction.ts +2 -1
  82. package/{introspection/src → src/introspection}/auditor.ts +1 -1
  83. package/{introspection/src → src/introspection}/differ.ts +12 -1
  84. package/{introspection/src → src/introspection}/refinery.ts +18 -3
  85. package/{json/src → src/json}/entries.ts +1 -1
  86. package/{json/src → src/json}/select-json-family.ts +1 -1
  87. package/src/{realm.ts → main/realm.ts} +1 -1
  88. package/src/{silo.ts → main/silo.ts} +1 -1
  89. package/src/{transaction.ts → main/transaction.ts} +1 -1
  90. package/{react/src → src/react}/store-context.tsx +3 -1
  91. package/{react/src → src/react}/use-i.ts +3 -5
  92. package/{react-devtools/src → src/react-devtools}/AtomIODevtools.tsx +1 -1
  93. package/{react-devtools/src → src/react-devtools}/Button.tsx +3 -1
  94. package/{react-devtools/src → src/react-devtools}/Updates.tsx +5 -1
  95. package/src/react-devtools/devtools.css +308 -0
  96. package/{react-devtools/src → src/react-devtools}/json-editor/developer-interface.tsx +2 -2
  97. package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/utilities/cast-json.ts +2 -2
  98. package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/utilities/object-properties.ts +3 -3
  99. package/{react-devtools/src → src/react-devtools}/json-editor/json-editor-internal.tsx +4 -2
  100. package/{react-devtools/src → src/react-devtools}/store.ts +3 -2
  101. package/{realtime/src → src/realtime}/shared-room-store.ts +28 -5
  102. package/src/realtime-client/realtime-client-stores/client-main-store.ts +23 -0
  103. package/src/realtime-client/realtime-client-stores/client-sync-store.ts +15 -0
  104. package/{realtime-react/src → src/realtime-react}/index.ts +1 -0
  105. package/{realtime-react/src → src/realtime-react}/on-mount.ts +1 -1
  106. package/{realtime-react/src → src/realtime-react}/realtime-context.tsx +5 -4
  107. package/{realtime-react/src → src/realtime-react}/use-single-effect.ts +3 -2
  108. package/{realtime-server/src → src/realtime-server}/ipc-sockets/child-socket.ts +1 -1
  109. package/{realtime-server/src → src/realtime-server}/realtime-server-stores/server-room-external-actions.ts +20 -19
  110. package/{realtime-server/src → src/realtime-server}/realtime-server-stores/server-room-external-store.ts +12 -7
  111. package/{realtime-server/src → src/realtime-server}/realtime-server-stores/server-sync-store.ts +13 -4
  112. package/{realtime-server/src → src/realtime-server}/realtime-server-stores/server-user-store.ts +26 -8
  113. package/{transceivers/set-rtx/src → src/transceivers/set-rtx}/set-rtx.ts +2 -2
  114. package/data/dist/index.d.ts +0 -31
  115. package/data/dist/index.js +0 -69
  116. package/data/package.json +0 -13
  117. package/dist/chunk-2XDFCXGB.js +0 -109
  118. package/dist/chunk-35NB2XZU.js +0 -4501
  119. package/dist/chunk-4LWKCEW3.js +0 -14
  120. package/dist/chunk-EF4S7H42.js +0 -526
  121. package/dist/chunk-LTLDKXDN.js +0 -153
  122. package/dist/chunk-MENOYVPP.js +0 -83
  123. package/dist/chunk-RGUNRT72.js +0 -634
  124. package/dist/chunk-TS76LQVD.js +0 -1035
  125. package/dist/chunk-XWL6SNVU.js +0 -7
  126. package/dist/index.d.ts +0 -701
  127. package/dist/index.js +0 -2
  128. package/eslint-plugin/dist/index.d.ts +0 -64
  129. package/eslint-plugin/dist/index.js +0 -238
  130. package/eslint-plugin/package.json +0 -13
  131. package/internal/dist/index.js +0 -2
  132. package/internal/package.json +0 -13
  133. package/introspection/dist/index.d.ts +0 -149
  134. package/introspection/dist/index.js +0 -3
  135. package/introspection/package.json +0 -13
  136. package/json/dist/index.js +0 -2
  137. package/json/package.json +0 -13
  138. package/react/dist/index.js +0 -3
  139. package/react/package.json +0 -13
  140. package/react-devtools/dist/index.css +0 -309
  141. package/react-devtools/dist/index.d.ts +0 -160
  142. package/react-devtools/dist/index.js +0 -1481
  143. package/react-devtools/package.json +0 -13
  144. package/react-devtools/src/devtools.scss +0 -309
  145. package/realtime/dist/index.d.ts +0 -51
  146. package/realtime/dist/index.js +0 -3
  147. package/realtime/package.json +0 -13
  148. package/realtime-client/dist/index.d.ts +0 -41
  149. package/realtime-client/dist/index.js +0 -4
  150. package/realtime-client/package.json +0 -13
  151. package/realtime-client/src/realtime-client-stores/client-main-store.ts +0 -20
  152. package/realtime-client/src/realtime-client-stores/client-sync-store.ts +0 -15
  153. package/realtime-react/dist/index.d.ts +0 -39
  154. package/realtime-react/dist/index.js +0 -6
  155. package/realtime-react/package.json +0 -13
  156. package/realtime-server/dist/index.d.ts +0 -139
  157. package/realtime-server/dist/index.js +0 -4
  158. package/realtime-server/package.json +0 -13
  159. package/realtime-testing/dist/index.d.ts +0 -59
  160. package/realtime-testing/dist/index.js +0 -198
  161. package/realtime-testing/package.json +0 -13
  162. package/transceivers/set-rtx/dist/index.d.ts +0 -41
  163. package/transceivers/set-rtx/dist/index.js +0 -2
  164. package/transceivers/set-rtx/package.json +0 -13
  165. package/web/dist/index.d.ts +0 -9
  166. package/web/dist/index.js +0 -2
  167. package/web/package.json +0 -13
  168. /package/{data/src → src/data}/dict.ts +0 -0
  169. /package/{data/src → src/data}/index.ts +0 -0
  170. /package/{data/src → src/data}/struct-family.ts +0 -0
  171. /package/{eslint-plugin/src → src/eslint-plugin}/rules/index.ts +0 -0
  172. /package/{eslint-plugin/src → src/eslint-plugin}/walk.ts +0 -0
  173. /package/{internal/src → src/internal}/arbitrary.ts +0 -0
  174. /package/{internal/src → src/internal}/atom/create-regular-atom.ts +0 -0
  175. /package/{internal/src → src/internal}/atom/create-standalone-atom.ts +0 -0
  176. /package/{internal/src → src/internal}/atom/dispose-atom.ts +0 -0
  177. /package/{internal/src → src/internal}/atom/index.ts +0 -0
  178. /package/{internal/src → src/internal}/atom/is-default.ts +0 -0
  179. /package/{internal/src → src/internal}/caching.ts +0 -0
  180. /package/{internal/src → src/internal}/capitalize.ts +0 -0
  181. /package/{internal/src → src/internal}/families/create-atom-family.ts +0 -0
  182. /package/{internal/src → src/internal}/families/create-readonly-selector-family.ts +0 -0
  183. /package/{internal/src → src/internal}/families/create-regular-atom-family.ts +0 -0
  184. /package/{internal/src → src/internal}/families/create-selector-family.ts +0 -0
  185. /package/{internal/src → src/internal}/families/dispose-from-store.ts +0 -0
  186. /package/{internal/src → src/internal}/families/find-in-store.ts +0 -0
  187. /package/{internal/src → src/internal}/families/get-family-of-token.ts +0 -0
  188. /package/{internal/src → src/internal}/families/init-family-member.ts +0 -0
  189. /package/{internal/src → src/internal}/families/seek-in-store.ts +0 -0
  190. /package/{internal/src → src/internal}/future.ts +0 -0
  191. /package/{internal/src → src/internal}/get-environment-data.ts +0 -0
  192. /package/{internal/src → src/internal}/get-state/get-from-store.ts +0 -0
  193. /package/{internal/src → src/internal}/get-state/index.ts +0 -0
  194. /package/{internal/src → src/internal}/get-state/read-or-compute-value.ts +0 -0
  195. /package/{internal/src → src/internal}/get-trace.ts +0 -0
  196. /package/{internal/src → src/internal}/ingest-updates/index.ts +0 -0
  197. /package/{internal/src → src/internal}/ingest-updates/ingest-atom-update.ts +0 -0
  198. /package/{internal/src → src/internal}/ingest-updates/ingest-creation-disposal.ts +0 -0
  199. /package/{internal/src → src/internal}/ingest-updates/ingest-selector-update.ts +0 -0
  200. /package/{internal/src → src/internal}/ingest-updates/ingest-transaction-update.ts +0 -0
  201. /package/{internal/src → src/internal}/install-into-store.ts +0 -0
  202. /package/{internal/src → src/internal}/join/edit-relations-in-store.ts +0 -0
  203. /package/{internal/src → src/internal}/join/get-internal-relations-from-store.ts +0 -0
  204. /package/{internal/src → src/internal}/join/get-join.ts +0 -0
  205. /package/{internal/src → src/internal}/join/index.ts +0 -0
  206. /package/{internal/src → src/internal}/join/join-internal.ts +0 -0
  207. /package/{internal/src → src/internal}/keys.ts +0 -0
  208. /package/{internal/src → src/internal}/lineage.ts +0 -0
  209. /package/{internal/src → src/internal}/molecule.ts +0 -0
  210. /package/{internal/src → src/internal}/mutable/create-mutable-atom-family.ts +0 -0
  211. /package/{internal/src → src/internal}/mutable/create-mutable-atom.ts +0 -0
  212. /package/{internal/src → src/internal}/mutable/get-json-family.ts +0 -0
  213. /package/{internal/src → src/internal}/mutable/get-json-token.ts +0 -0
  214. /package/{internal/src → src/internal}/mutable/get-update-family.ts +0 -0
  215. /package/{internal/src → src/internal}/mutable/get-update-token.ts +0 -0
  216. /package/{internal/src → src/internal}/mutable/index.ts +0 -0
  217. /package/{internal/src → src/internal}/mutable/transceiver.ts +0 -0
  218. /package/{internal/src → src/internal}/not-found-error.ts +0 -0
  219. /package/{internal/src → src/internal}/operation.ts +0 -0
  220. /package/{internal/src → src/internal}/pretty-print.ts +0 -0
  221. /package/{internal/src → src/internal}/reserved-keys.ts +0 -0
  222. /package/{internal/src → src/internal}/selector/create-readonly-selector.ts +0 -0
  223. /package/{internal/src → src/internal}/selector/create-standalone-selector.ts +0 -0
  224. /package/{internal/src → src/internal}/selector/create-writable-selector.ts +0 -0
  225. /package/{internal/src → src/internal}/selector/dispose-selector.ts +0 -0
  226. /package/{internal/src → src/internal}/selector/get-selector-dependency-keys.ts +0 -0
  227. /package/{internal/src → src/internal}/selector/index.ts +0 -0
  228. /package/{internal/src → src/internal}/selector/trace-selector-atoms.ts +0 -0
  229. /package/{internal/src → src/internal}/selector/update-selector-atoms.ts +0 -0
  230. /package/{internal/src → src/internal}/set-state/become.ts +0 -0
  231. /package/{internal/src → src/internal}/set-state/copy-mutable-if-needed.ts +0 -0
  232. /package/{internal/src → src/internal}/set-state/emit-update.ts +0 -0
  233. /package/{internal/src → src/internal}/set-state/evict-downstream.ts +0 -0
  234. /package/{internal/src → src/internal}/set-state/index.ts +0 -0
  235. /package/{internal/src → src/internal}/set-state/set-atom-or-selector.ts +0 -0
  236. /package/{internal/src → src/internal}/set-state/set-atom.ts +0 -0
  237. /package/{internal/src → src/internal}/set-state/set-into-store.ts +0 -0
  238. /package/{internal/src → src/internal}/store/circular-buffer.ts +0 -0
  239. /package/{internal/src → src/internal}/store/counterfeit.ts +0 -0
  240. /package/{internal/src → src/internal}/store/deposit.ts +0 -0
  241. /package/{internal/src → src/internal}/store/index.ts +0 -0
  242. /package/{internal/src → src/internal}/store/withdraw.ts +0 -0
  243. /package/{internal/src → src/internal}/subscribe/index.ts +0 -0
  244. /package/{internal/src → src/internal}/subscribe/recall-state.ts +0 -0
  245. /package/{internal/src → src/internal}/subscribe/subscribe-in-store.ts +0 -0
  246. /package/{internal/src → src/internal}/subscribe/subscribe-to-root-atoms.ts +0 -0
  247. /package/{internal/src → src/internal}/subscribe/subscribe-to-state.ts +0 -0
  248. /package/{internal/src → src/internal}/subscribe/subscribe-to-timeline.ts +0 -0
  249. /package/{internal/src → src/internal}/subscribe/subscribe-to-transaction.ts +0 -0
  250. /package/{internal/src → src/internal}/timeline/create-timeline.ts +0 -0
  251. /package/{internal/src → src/internal}/timeline/index.ts +0 -0
  252. /package/{internal/src → src/internal}/timeline/time-travel.ts +0 -0
  253. /package/{internal/src → src/internal}/transaction/abort-transaction.ts +0 -0
  254. /package/{internal/src → src/internal}/transaction/act-upon-store.ts +0 -0
  255. /package/{internal/src → src/internal}/transaction/apply-transaction.ts +0 -0
  256. /package/{internal/src → src/internal}/transaction/assign-transaction-to-continuity.ts +0 -0
  257. /package/{internal/src → src/internal}/transaction/create-transaction.ts +0 -0
  258. /package/{internal/src → src/internal}/transaction/get-epoch-number.ts +0 -0
  259. /package/{internal/src → src/internal}/transaction/index.ts +0 -0
  260. /package/{internal/src → src/internal}/transaction/is-root-store.ts +0 -0
  261. /package/{internal/src → src/internal}/transaction/set-epoch-number.ts +0 -0
  262. /package/{internal/src → src/internal}/utility-types.ts +0 -0
  263. /package/{introspection/src → src/introspection}/attach-atom-index.ts +0 -0
  264. /package/{introspection/src → src/introspection}/attach-introspection-states.ts +0 -0
  265. /package/{introspection/src → src/introspection}/attach-selector-index.ts +0 -0
  266. /package/{introspection/src → src/introspection}/attach-timeline-family.ts +0 -0
  267. /package/{introspection/src → src/introspection}/attach-timeline-index.ts +0 -0
  268. /package/{introspection/src → src/introspection}/attach-transaction-index.ts +0 -0
  269. /package/{introspection/src → src/introspection}/attach-transaction-logs.ts +0 -0
  270. /package/{introspection/src → src/introspection}/attach-type-selectors.ts +0 -0
  271. /package/{introspection/src → src/introspection}/index.ts +0 -0
  272. /package/{introspection/src → src/introspection}/sprawl.ts +0 -0
  273. /package/{json/src → src/json}/index.ts +0 -0
  274. /package/{json/src → src/json}/select-json.ts +0 -0
  275. /package/src/{atom.ts → main/atom.ts} +0 -0
  276. /package/src/{dispose-state.ts → main/dispose-state.ts} +0 -0
  277. /package/src/{find-state.ts → main/find-state.ts} +0 -0
  278. /package/src/{get-state.ts → main/get-state.ts} +0 -0
  279. /package/src/{index.ts → main/index.ts} +0 -0
  280. /package/src/{join.ts → main/join.ts} +0 -0
  281. /package/src/{logger.ts → main/logger.ts} +0 -0
  282. /package/src/{selector.ts → main/selector.ts} +0 -0
  283. /package/src/{set-state.ts → main/set-state.ts} +0 -0
  284. /package/src/{subscribe.ts → main/subscribe.ts} +0 -0
  285. /package/src/{timeline.ts → main/timeline.ts} +0 -0
  286. /package/src/{validators.ts → main/validators.ts} +0 -0
  287. /package/{react/src → src/react}/index.ts +0 -0
  288. /package/{react/src → src/react}/parse-state-overloads.ts +0 -0
  289. /package/{react/src → src/react}/use-json.ts +0 -0
  290. /package/{react/src → src/react}/use-o.ts +0 -0
  291. /package/{react/src → src/react}/use-tl.ts +0 -0
  292. /package/{react-devtools/src → src/react-devtools}/StateEditor.tsx +0 -0
  293. /package/{react-devtools/src → src/react-devtools}/StateIndex.tsx +0 -0
  294. /package/{react-devtools/src → src/react-devtools}/TimelineIndex.tsx +0 -0
  295. /package/{react-devtools/src → src/react-devtools}/TransactionIndex.tsx +0 -0
  296. /package/{react-devtools/src → src/react-devtools}/elastic-input/ElasticInput.tsx +0 -0
  297. /package/{react-devtools/src → src/react-devtools}/elastic-input/NumberInput.tsx +0 -0
  298. /package/{react-devtools/src → src/react-devtools}/elastic-input/TextInput.tsx +0 -0
  299. /package/{react-devtools/src → src/react-devtools}/elastic-input/index.ts +0 -0
  300. /package/{react-devtools/src → src/react-devtools}/error-boundary/DefaultFallback.tsx +0 -0
  301. /package/{react-devtools/src → src/react-devtools}/error-boundary/ReactErrorBoundary.tsx +0 -0
  302. /package/{react-devtools/src → src/react-devtools}/error-boundary/index.ts +0 -0
  303. /package/{react-devtools/src → src/react-devtools}/index.ts +0 -0
  304. /package/{react-devtools/src → src/react-devtools}/json-editor/default-components.tsx +0 -0
  305. /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/array-editor.tsx +0 -0
  306. /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/non-json.tsx +0 -0
  307. /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/object-editor.tsx +0 -0
  308. /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/primitive-editors.tsx +0 -0
  309. /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/utilities/array-elements.ts +0 -0
  310. /package/{react-devtools/src → src/react-devtools}/json-editor/editors-by-type/utilities/cast-to-json.ts +0 -0
  311. /package/{react-devtools/src → src/react-devtools}/json-editor/index.ts +0 -0
  312. /package/{react-devtools/src → src/react-devtools}/json-editor/todo.md +0 -0
  313. /package/{realtime/src → src/realtime}/index.ts +0 -0
  314. /package/{realtime/src → src/realtime}/realtime-continuity.ts +0 -0
  315. /package/{realtime-client/src → src/realtime-client}/continuity/index.ts +0 -0
  316. /package/{realtime-client/src → src/realtime-client}/continuity/register-and-attempt-confirmed-update.ts +0 -0
  317. /package/{realtime-client/src → src/realtime-client}/continuity/use-conceal-state.ts +0 -0
  318. /package/{realtime-client/src → src/realtime-client}/continuity/use-reveal-state.ts +0 -0
  319. /package/{realtime-client/src → src/realtime-client}/index.ts +0 -0
  320. /package/{realtime-client/src → src/realtime-client}/pull-atom-family-member.ts +0 -0
  321. /package/{realtime-client/src → src/realtime-client}/pull-atom.ts +0 -0
  322. /package/{realtime-client/src → src/realtime-client}/pull-mutable-atom-family-member.ts +0 -0
  323. /package/{realtime-client/src → src/realtime-client}/pull-mutable-atom.ts +0 -0
  324. /package/{realtime-client/src → src/realtime-client}/pull-selector-family-member.ts +0 -0
  325. /package/{realtime-client/src → src/realtime-client}/pull-selector.ts +0 -0
  326. /package/{realtime-client/src → src/realtime-client}/push-state.ts +0 -0
  327. /package/{realtime-client/src → src/realtime-client}/realtime-client-stores/index.ts +0 -0
  328. /package/{realtime-client/src → src/realtime-client}/server-action.ts +0 -0
  329. /package/{realtime-client/src → src/realtime-client}/sync-continuity.ts +0 -0
  330. /package/{realtime-react/src → src/realtime-react}/use-pull-atom-family-member.ts +0 -0
  331. /package/{realtime-react/src → src/realtime-react}/use-pull-atom.ts +0 -0
  332. /package/{realtime-react/src → src/realtime-react}/use-pull-mutable-atom.ts +0 -0
  333. /package/{realtime-react/src → src/realtime-react}/use-pull-mutable-family-member.ts +0 -0
  334. /package/{realtime-react/src → src/realtime-react}/use-pull-selector-family-member.ts +0 -0
  335. /package/{realtime-react/src → src/realtime-react}/use-pull-selector.ts +0 -0
  336. /package/{realtime-react/src → src/realtime-react}/use-push.ts +0 -0
  337. /package/{realtime-react/src → src/realtime-react}/use-realtime-service.ts +0 -0
  338. /package/{realtime-react/src → src/realtime-react}/use-server-action.ts +0 -0
  339. /package/{realtime-react/src → src/realtime-react}/use-sync-continuity.ts +0 -0
  340. /package/{realtime-server/src → src/realtime-server}/README.md +0 -0
  341. /package/{realtime-server/src → src/realtime-server}/continuity/prepare-to-send-initial-payload.ts +0 -0
  342. /package/{realtime-server/src → src/realtime-server}/continuity/prepare-to-serve-transaction-request.ts +0 -0
  343. /package/{realtime-server/src → src/realtime-server}/continuity/prepare-to-sync-realtime-continuity.ts +0 -0
  344. /package/{realtime-server/src → src/realtime-server}/continuity/prepare-to-track-client-acknowledgement.ts +0 -0
  345. /package/{realtime-server/src → src/realtime-server}/continuity/subscribe-to-continuity-actions.ts +0 -0
  346. /package/{realtime-server/src → src/realtime-server}/continuity/subscribe-to-continuity-perpectives.ts +0 -0
  347. /package/{realtime-server/src → src/realtime-server}/index.ts +0 -0
  348. /package/{realtime-server/src → src/realtime-server}/ipc-sockets/custom-socket.ts +0 -0
  349. /package/{realtime-server/src → src/realtime-server}/ipc-sockets/index.ts +0 -0
  350. /package/{realtime-server/src → src/realtime-server}/ipc-sockets/parent-socket.ts +0 -0
  351. /package/{realtime-server/src → src/realtime-server}/realtime-action-receiver.ts +0 -0
  352. /package/{realtime-server/src → src/realtime-server}/realtime-family-provider.ts +0 -0
  353. /package/{realtime-server/src → src/realtime-server}/realtime-mutable-family-provider.ts +0 -0
  354. /package/{realtime-server/src → src/realtime-server}/realtime-mutable-provider.ts +0 -0
  355. /package/{realtime-server/src → src/realtime-server}/realtime-server-stores/index.ts +0 -0
  356. /package/{realtime-server/src → src/realtime-server}/realtime-state-provider.ts +0 -0
  357. /package/{realtime-server/src → src/realtime-server}/realtime-state-receiver.ts +0 -0
  358. /package/{realtime-testing/src → src/realtime-testing}/index.ts +0 -0
  359. /package/{realtime-testing/src → src/realtime-testing}/setup-realtime-test.tsx +0 -0
  360. /package/{transceivers/set-rtx/src → src/transceivers/set-rtx}/index.ts +0 -0
  361. /package/{web/src → src/web}/index.ts +0 -0
  362. /package/{web/src → src/web}/persist-sync.ts +0 -0
@@ -1,1481 +0,0 @@
1
- import { persistSync } from '../../dist/chunk-4LWKCEW3.js';
2
- import { attachIntrospectionStates, jsonRefinery, primitiveRefinery, discoverType, prettyJson } from '../../dist/chunk-RGUNRT72.js';
3
- import { StoreContext, useI, useO } from '../../dist/chunk-MENOYVPP.js';
4
- import { IMPLICIT, createStandaloneAtom, createAtomFamily, fromEntries, become, isJson, toEntries, JSON_DEFAULTS, findInStore, undo, redo, getState, stringifyJson } from '../../dist/chunk-35NB2XZU.js';
5
- import '../../dist/chunk-XWL6SNVU.js';
6
- import { motion, spring, LayoutGroup } from 'motion/react';
7
- import { forwardRef, useRef, useState, useImperativeHandle, useLayoutEffect, createContext, useId, Component, useContext, Fragment as Fragment$1 } from 'react';
8
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
9
-
10
- var OpenClose = ({ isOpen, setIsOpen, disabled, testid }) => {
11
- return /* @__PURE__ */ jsx(
12
- "button",
13
- {
14
- type: "button",
15
- "data-testid": testid,
16
- className: `carat ${isOpen ? `open` : `closed`}`,
17
- onClick: () => {
18
- setIsOpen((prev) => !prev);
19
- },
20
- disabled,
21
- children: "\u25B6"
22
- }
23
- );
24
- };
25
- var button = {
26
- OpenClose
27
- };
28
- var ElasticInput = forwardRef(function ElasticInputFC(props, ref) {
29
- const inputRef = useRef(null);
30
- const spanRef = useRef(null);
31
- const [inputWidth, setInputWidth] = useState(`auto`);
32
- useImperativeHandle(
33
- ref,
34
- () => ({
35
- focus: () => {
36
- inputRef.current?.focus();
37
- }
38
- })
39
- );
40
- const extraWidth = props.type === `number` ? 15 : 0;
41
- useLayoutEffect(() => {
42
- if (spanRef.current) {
43
- setInputWidth(`${spanRef.current.offsetWidth + extraWidth}px`);
44
- const interval = setInterval(() => {
45
- if (spanRef.current) {
46
- setInputWidth(`${spanRef.current.offsetWidth + extraWidth}px`);
47
- }
48
- }, 1e3);
49
- return () => {
50
- clearInterval(interval);
51
- };
52
- }
53
- }, [inputRef.current?.value, props.value]);
54
- return /* @__PURE__ */ jsxs("div", { style: { display: `inline-block`, position: `relative` }, children: [
55
- /* @__PURE__ */ jsx(
56
- "input",
57
- {
58
- ...props,
59
- ref: inputRef,
60
- style: {
61
- padding: 0,
62
- borderRadius: 0,
63
- border: `none`,
64
- fontFamily: `inherit`,
65
- fontSize: `inherit`,
66
- width: inputWidth,
67
- ...props.style
68
- }
69
- }
70
- ),
71
- /* @__PURE__ */ jsx(
72
- "span",
73
- {
74
- ref: spanRef,
75
- style: {
76
- padding: props.style?.padding,
77
- position: `absolute`,
78
- visibility: `hidden`,
79
- // color: `red`,
80
- whiteSpace: `pre`,
81
- fontFamily: props.style?.fontFamily ?? `inherit`,
82
- fontSize: props.style?.fontSize ?? `inherit`
83
- },
84
- children: props.value
85
- }
86
- )
87
- ] });
88
- });
89
- function clampInto(min, max) {
90
- return (value) => value < min ? min : value > max ? max : value;
91
- }
92
- function round(value, decimalPlaces) {
93
- if (decimalPlaces === void 0) return value;
94
- const factor = 10 ** decimalPlaces;
95
- return Math.round(value * factor) / factor;
96
- }
97
- var VALID_NON_NUMBERS = [``, `-`, `.`, `-.`];
98
- var isValidNonNumber = (input) => VALID_NON_NUMBERS.includes(input);
99
- var VALID_NON_NUMBER_INTERPRETATIONS = {
100
- "": null,
101
- "-": 0,
102
- ".": 0,
103
- "-.": 0
104
- };
105
- var isDecimalInProgress = (input) => input === `0` || !Number.isNaN(Number(input)) && input.includes(`.`);
106
- var textToValue = (input, allowDecimal) => {
107
- if (isValidNonNumber(input)) return VALID_NON_NUMBER_INTERPRETATIONS[input];
108
- return allowDecimal ? Number.parseFloat(input) : Math.round(Number.parseFloat(input));
109
- };
110
- var DEFAULT_NUMBER_CONSTRAINTS = {
111
- max: Number.POSITIVE_INFINITY,
112
- min: Number.NEGATIVE_INFINITY,
113
- decimalPlaces: 100,
114
- nullable: true
115
- };
116
- var initRefinery = (constraints) => (input) => {
117
- if (input === null && constraints.nullable === true) {
118
- return null;
119
- }
120
- const { max, min, decimalPlaces } = {
121
- ...DEFAULT_NUMBER_CONSTRAINTS,
122
- ...constraints
123
- };
124
- let constrained = clampInto(min, max)(input ?? 0);
125
- if (decimalPlaces) {
126
- constrained = round(constrained, decimalPlaces);
127
- }
128
- return constrained;
129
- };
130
- var valueToText = (numericValue) => {
131
- if (numericValue === null || numericValue === void 0) {
132
- return ``;
133
- }
134
- return numericValue.toString();
135
- };
136
- var NumberInput = ({
137
- autoSize = false,
138
- decimalPlaces,
139
- disabled = false,
140
- label,
141
- max,
142
- min,
143
- name,
144
- onChange,
145
- onClick,
146
- placeholder = ``,
147
- set = () => null,
148
- testid,
149
- value = null
150
- }) => {
151
- const htmlId = useId();
152
- const [temporaryEntry, setTemporaryEntry] = useState(null);
153
- const userHasMadeDeliberateChange = useRef(false);
154
- const refine = initRefinery({ max, min, decimalPlaces, nullable: true });
155
- const allowDecimal = decimalPlaces === void 0 || decimalPlaces > 0;
156
- const handleBlur = () => {
157
- if (userHasMadeDeliberateChange.current) {
158
- set(refine(value ?? null));
159
- setTemporaryEntry(null);
160
- }
161
- userHasMadeDeliberateChange.current = false;
162
- };
163
- const handleChange = (event) => {
164
- if (onChange) onChange(event);
165
- if (set === void 0) return;
166
- userHasMadeDeliberateChange.current = true;
167
- const input = event.target.value;
168
- if (isValidNonNumber(input) || isDecimalInProgress(input)) {
169
- setTemporaryEntry(input);
170
- const textInterpretation = isDecimalInProgress(input) ? input : min?.toString() ?? `0`;
171
- const newValue = textToValue(textInterpretation, allowDecimal);
172
- set(refine(newValue));
173
- return;
174
- }
175
- setTemporaryEntry(null);
176
- const inputIsNumeric = !Number.isNaN(Number(input)) && !input.includes(` `) || allowDecimal && input === `.` || allowDecimal && input === `-.` || input === `` || input === `-`;
177
- const numericValue = textToValue(input, allowDecimal);
178
- if (inputIsNumeric) {
179
- set(refine(numericValue));
180
- }
181
- };
182
- const displayValue = temporaryEntry ?? valueToText(value ? refine(value) : value);
183
- return /* @__PURE__ */ jsxs("span", { children: [
184
- label ? /* @__PURE__ */ jsx("label", { htmlFor: htmlId, children: label }) : null,
185
- autoSize ? /* @__PURE__ */ jsx(
186
- ElasticInput,
187
- {
188
- type: "text",
189
- value: displayValue,
190
- placeholder: placeholder ?? `-`,
191
- onChange: handleChange,
192
- onBlur: handleBlur,
193
- disabled,
194
- name: name ?? htmlId,
195
- id: htmlId,
196
- onClick,
197
- "data-testid": testid
198
- }
199
- ) : /* @__PURE__ */ jsx(
200
- "input",
201
- {
202
- type: "text",
203
- value: displayValue,
204
- placeholder: placeholder ?? `-`,
205
- onChange: handleChange,
206
- onBlur: handleBlur,
207
- disabled,
208
- name: name ?? htmlId,
209
- id: htmlId,
210
- onClick,
211
- "data-testid": testid
212
- }
213
- )
214
- ] });
215
- };
216
- var TextInput = ({
217
- value,
218
- set,
219
- label,
220
- placeholder,
221
- autoSize = false,
222
- testid
223
- }) => {
224
- const htmlId = useId();
225
- return /* @__PURE__ */ jsxs("span", { children: [
226
- label ? /* @__PURE__ */ jsx("label", { htmlFor: htmlId, children: label }) : null,
227
- autoSize ? /* @__PURE__ */ jsx(
228
- ElasticInput,
229
- {
230
- id: htmlId,
231
- type: "text",
232
- value,
233
- onChange: (e) => set?.(e.target.value),
234
- disabled: set === void 0,
235
- placeholder,
236
- "data-testid": testid
237
- }
238
- ) : /* @__PURE__ */ jsx(
239
- "input",
240
- {
241
- id: htmlId,
242
- type: "text",
243
- value,
244
- onChange: (e) => set?.(e.target.value),
245
- disabled: set === void 0,
246
- placeholder,
247
- "data-testid": testid
248
- }
249
- )
250
- ] });
251
- };
252
- var NonJsonEditor = ({
253
- data,
254
- testid
255
- }) => {
256
- return data === void 0 ? /* @__PURE__ */ jsx(
257
- ElasticInput,
258
- {
259
- disabled: true,
260
- value: "undefined",
261
- "data-testid": `${testid}-undefined`
262
- }
263
- ) : /* @__PURE__ */ jsx(
264
- ElasticInput,
265
- {
266
- disabled: true,
267
- value: Object.getPrototypeOf(data).constructor.name + ` ` + JSON.stringify(data),
268
- "data-testid": `${testid}-non-json-${Object.getPrototypeOf(data).constructor.name}`
269
- }
270
- );
271
- };
272
- var JsonEditor_INTERNAL = ({
273
- data,
274
- set,
275
- name,
276
- rename,
277
- remove,
278
- recast,
279
- path = [],
280
- isReadonly = () => false,
281
- isHidden = () => false,
282
- className,
283
- style,
284
- Header: HeaderDisplay,
285
- Components,
286
- testid
287
- }) => {
288
- const dataIsJson = isJson(data);
289
- const refined = jsonRefinery.refine(data) ?? {
290
- type: `non-json`,
291
- data
292
- };
293
- const SubEditor = dataIsJson ? SubEditors[refined.type] : NonJsonEditor;
294
- const disabled = isReadonly(path);
295
- return isHidden(path) ? null : /* @__PURE__ */ jsx(Components.ErrorBoundary, { children: /* @__PURE__ */ jsxs(
296
- Components.EditorWrapper,
297
- {
298
- className,
299
- style,
300
- testid,
301
- children: [
302
- remove ? disabled ? /* @__PURE__ */ jsx(Components.Button, { disabled: true, testid: `${testid}-delete`, children: /* @__PURE__ */ jsx(Components.DeleteIcon, {}) }) : /* @__PURE__ */ jsx(
303
- Components.Button,
304
- {
305
- testid: `${testid}-delete`,
306
- onClick: () => {
307
- remove();
308
- },
309
- children: /* @__PURE__ */ jsx(Components.DeleteIcon, {})
310
- }
311
- ) : null,
312
- HeaderDisplay && /* @__PURE__ */ jsx(HeaderDisplay, { data }),
313
- rename && /* @__PURE__ */ jsx(Components.KeyWrapper, { children: /* @__PURE__ */ jsx(
314
- ElasticInput,
315
- {
316
- value: name,
317
- onChange: disabled ? void 0 : (e) => {
318
- rename(e.target.value);
319
- },
320
- disabled,
321
- "data-testid": `${testid}-rename`
322
- }
323
- ) }),
324
- /* @__PURE__ */ jsx(
325
- SubEditor,
326
- {
327
- data: refined.data,
328
- set,
329
- remove,
330
- rename,
331
- path,
332
- isReadonly,
333
- isHidden,
334
- Components,
335
- testid
336
- }
337
- ),
338
- recast && dataIsJson ? /* @__PURE__ */ jsx(
339
- "select",
340
- {
341
- onChange: disabled ? void 0 : (e) => {
342
- recast(e.target.value);
343
- },
344
- value: refined.type,
345
- disabled,
346
- "data-testid": `${testid}-recast`,
347
- children: Object.keys(SubEditors).map((type) => /* @__PURE__ */ jsx("option", { value: type, children: type }, type))
348
- }
349
- ) : null
350
- ]
351
- }
352
- ) });
353
- };
354
-
355
- // react-devtools/src/json-editor/editors-by-type/utilities/array-elements.ts
356
- var makeElementSetters = (data, set) => data.map((value, index) => (newValue) => {
357
- set(() => {
358
- const newData = [...data];
359
- newData[index] = become(newValue)(value);
360
- return newData;
361
- });
362
- });
363
- var ArrayEditor = ({
364
- path = [],
365
- isReadonly = () => false,
366
- isHidden = () => false,
367
- data,
368
- set,
369
- Components,
370
- testid
371
- }) => {
372
- const setElement = makeElementSetters(data, set);
373
- return /* @__PURE__ */ jsx(Fragment, { children: data.map((element, index) => {
374
- const newPath = [...path, index];
375
- return /* @__PURE__ */ jsx(
376
- JsonEditor_INTERNAL,
377
- {
378
- path: newPath,
379
- isReadonly,
380
- isHidden,
381
- data: element,
382
- set: setElement[index],
383
- Components,
384
- className: "json_editor_element",
385
- testid: `${testid}-element-${index}`
386
- },
387
- newPath.join(``)
388
- );
389
- }) });
390
- };
391
-
392
- // react-devtools/src/json-editor/editors-by-type/utilities/cast-json.ts
393
- var stringToBoolean = (str) => str === `true`;
394
- var stringToNumber = (str) => Number(str);
395
- var stringToArray = (str) => str.split(`,`);
396
- var stringToObject = (str) => {
397
- try {
398
- return JSON.parse(str);
399
- } catch (e) {
400
- return { [str]: str };
401
- }
402
- };
403
- var objectToString = (obj) => JSON.stringify(obj);
404
- var objectToBoolean = (obj) => obj.true === true;
405
- var objectToNumber = (obj) => Number(obj.number ?? obj.size ?? obj.count ?? 0);
406
- var objectToArray = (obj) => Object.entries(obj);
407
- var booleanToString = (bool) => bool.toString();
408
- var booleanToNumber = (bool) => +bool;
409
- var booleanToObject = (bool) => ({
410
- [bool.toString()]: bool
411
- });
412
- var booleanToArray = (bool) => [bool];
413
- var numberToString = (num) => num.toString();
414
- var numberToBoolean = (num) => num === 1;
415
- var numberToObject = (num) => ({
416
- number: num
417
- });
418
- var numberToArray = (num) => Array(num).fill(null);
419
- var arrayToString = (arr) => arr.join(`,`);
420
- var arrayToNumber = (arr) => arr.length;
421
- var arrayToBoolean = (arr) => typeof arr[0] === `boolean` ? arr[0] : arr.length > 0;
422
- var arrayToObject = (arr) => arr.reduce(
423
- (acc, cur, idx) => {
424
- acc[`${idx}`] = cur;
425
- return acc;
426
- },
427
- {}
428
- );
429
- var nullToString = () => ``;
430
- var nullToNumber = () => 0;
431
- var nullToBoolean = () => false;
432
- var nullToArray = () => [];
433
- var nullToObject = () => ({});
434
-
435
- // react-devtools/src/json-editor/editors-by-type/utilities/cast-to-json.ts
436
- var castToJson = (input) => {
437
- const refined = jsonRefinery.refine(input);
438
- switch (refined?.type) {
439
- case `array`: {
440
- const data = refined.data;
441
- return {
442
- get array() {
443
- return data;
444
- },
445
- get boolean() {
446
- return arrayToBoolean(data);
447
- },
448
- get number() {
449
- return arrayToNumber(data);
450
- },
451
- get object() {
452
- return arrayToObject(data);
453
- },
454
- get string() {
455
- return arrayToString(data);
456
- },
457
- get null() {
458
- return null;
459
- }
460
- };
461
- }
462
- case `boolean`: {
463
- const data = refined.data;
464
- return {
465
- get array() {
466
- return booleanToArray(data);
467
- },
468
- get boolean() {
469
- return data;
470
- },
471
- get number() {
472
- return booleanToNumber(data);
473
- },
474
- get object() {
475
- return booleanToObject(data);
476
- },
477
- get string() {
478
- return booleanToString(data);
479
- },
480
- get null() {
481
- return null;
482
- }
483
- };
484
- }
485
- case `number`: {
486
- const data = refined.data;
487
- return {
488
- get array() {
489
- return numberToArray(data);
490
- },
491
- get boolean() {
492
- return numberToBoolean(data);
493
- },
494
- get number() {
495
- return data;
496
- },
497
- get object() {
498
- return numberToObject(data);
499
- },
500
- get string() {
501
- return numberToString(data);
502
- },
503
- get null() {
504
- return null;
505
- }
506
- };
507
- }
508
- case `object`: {
509
- const data = refined.data;
510
- return {
511
- get array() {
512
- return objectToArray(data);
513
- },
514
- get boolean() {
515
- return objectToBoolean(data);
516
- },
517
- get number() {
518
- return objectToNumber(data);
519
- },
520
- get object() {
521
- return data;
522
- },
523
- get string() {
524
- return objectToString(data);
525
- },
526
- get null() {
527
- return null;
528
- }
529
- };
530
- }
531
- case `string`: {
532
- const data = refined.data;
533
- return {
534
- get array() {
535
- return stringToArray(data);
536
- },
537
- get boolean() {
538
- return stringToBoolean(data);
539
- },
540
- get number() {
541
- return stringToNumber(data);
542
- },
543
- get object() {
544
- return stringToObject(data);
545
- },
546
- get string() {
547
- return data;
548
- },
549
- get null() {
550
- return null;
551
- }
552
- };
553
- }
554
- case `null`:
555
- case void 0: {
556
- return {
557
- get array() {
558
- return nullToArray();
559
- },
560
- get boolean() {
561
- return nullToBoolean();
562
- },
563
- get number() {
564
- return nullToNumber();
565
- },
566
- get object() {
567
- return nullToObject();
568
- },
569
- get string() {
570
- return nullToString();
571
- },
572
- get null() {
573
- return null;
574
- }
575
- };
576
- }
577
- }
578
- };
579
-
580
- // react-devtools/src/json-editor/editors-by-type/utilities/object-properties.ts
581
- var makePropertySetters = (data, set) => fromEntries(
582
- toEntries(data).map(([key, value]) => [
583
- key,
584
- (newValue) => {
585
- set({ ...data, [key]: become(newValue)(value) });
586
- }
587
- ])
588
- );
589
- var makePropertyRenamers = (data, set, stableKeyMapRef) => fromEntries(
590
- toEntries(data).map(([key, value]) => [
591
- key,
592
- (newKey) => {
593
- if (!Object.hasOwn(data, newKey)) {
594
- set(() => {
595
- const entries = Object.entries(data);
596
- const index = entries.findIndex(([k]) => k === key);
597
- entries[index] = [newKey, value];
598
- const stableKeyMap = stableKeyMapRef.current;
599
- stableKeyMapRef.current = {
600
- ...stableKeyMap,
601
- [newKey]: stableKeyMap[key]
602
- };
603
- return Object.fromEntries(entries);
604
- });
605
- }
606
- }
607
- ])
608
- );
609
- var makePropertyRemovers = (data, set) => fromEntries(
610
- toEntries(data).map(([key]) => [
611
- key,
612
- () => {
613
- set(() => {
614
- const { [key]: _, ...rest } = data;
615
- return rest;
616
- });
617
- }
618
- ])
619
- );
620
- var makePropertyRecasters = (data, set) => fromEntries(
621
- toEntries(data).map(([key, value]) => [
622
- key,
623
- (newType) => {
624
- set(() => ({
625
- ...data,
626
- [key]: castToJson(value)[newType]
627
- }));
628
- }
629
- ])
630
- );
631
- var makePropertyCreationInterface = (data, set) => (key, type) => (value) => {
632
- set({ ...data, [key]: value ?? JSON_DEFAULTS[type] });
633
- };
634
- var makePropertySorter = (data, set, sortFn) => () => {
635
- const sortedKeys = Object.keys(data).sort(sortFn);
636
- const sortedObj = {};
637
- for (const key of sortedKeys) {
638
- sortedObj[key] = data[key];
639
- }
640
- set(sortedObj);
641
- };
642
- var ObjectEditor = ({
643
- path = [],
644
- isReadonly = () => false,
645
- isHidden = () => false,
646
- data,
647
- set,
648
- Components,
649
- testid
650
- }) => {
651
- const disabled = isReadonly(path);
652
- const stableKeyMap = useRef(
653
- Object.keys(data).reduce(
654
- (acc, key) => {
655
- acc[key] = key;
656
- return acc;
657
- },
658
- {}
659
- )
660
- );
661
- const setProperty = makePropertySetters(data, set);
662
- const renameProperty = makePropertyRenamers(data, set, stableKeyMap);
663
- const removeProperty = makePropertyRemovers(data, set);
664
- const recastProperty = makePropertyRecasters(data, set);
665
- const sortProperties = makePropertySorter(data, set);
666
- const makePropertyAdder = makePropertyCreationInterface(data, set);
667
- return /* @__PURE__ */ jsxs(Fragment, { children: [
668
- /* @__PURE__ */ jsx(
669
- Components.Button,
670
- {
671
- testid: `${testid}-sort-properties`,
672
- onClick: () => {
673
- sortProperties();
674
- },
675
- disabled,
676
- children: "Sort"
677
- }
678
- ),
679
- /* @__PURE__ */ jsxs(Components.ObjectWrapper, { children: [
680
- /* @__PURE__ */ jsx("div", { className: "json_editor_properties", children: Object.keys(data).map((key) => {
681
- const originalKey = stableKeyMap.current[key];
682
- const newPath = [...path, key];
683
- const originalPath = [...path, originalKey];
684
- return /* @__PURE__ */ jsx(
685
- JsonEditor_INTERNAL,
686
- {
687
- path: newPath,
688
- name: key,
689
- isReadonly,
690
- isHidden,
691
- data: data[key],
692
- set: setProperty[key],
693
- rename: renameProperty[key],
694
- remove: removeProperty[key],
695
- recast: recastProperty[key],
696
- className: "json_editor_property",
697
- Components,
698
- testid: `${testid}-property-${key}`
699
- },
700
- originalPath.join(`.`)
701
- );
702
- }) }),
703
- disabled ? /* @__PURE__ */ jsx(Components.Button, { disabled: true, testid: `${testid}-add-property`, children: "+" }) : /* @__PURE__ */ jsx(
704
- Components.Button,
705
- {
706
- testid: `${testid}-add-property`,
707
- onClick: () => {
708
- makePropertyAdder(`new_property`, `string`)();
709
- },
710
- children: "+"
711
- }
712
- )
713
- ] })
714
- ] });
715
- };
716
- var BooleanEditor = ({
717
- data,
718
- set,
719
- Components,
720
- testid
721
- }) => /* @__PURE__ */ jsx(Components.BooleanWrapper, { children: /* @__PURE__ */ jsx(
722
- "input",
723
- {
724
- "data-testid": `${testid}-boolean-input`,
725
- type: "checkbox",
726
- checked: data,
727
- onChange: (event) => {
728
- set(event.target.checked);
729
- }
730
- }
731
- ) });
732
- var NullEditor = ({
733
- Components,
734
- testid
735
- }) => /* @__PURE__ */ jsx(Components.Null, { testid: `${testid}-null` });
736
- var NumberEditor = ({
737
- path = [],
738
- isReadonly = () => false,
739
- data,
740
- set,
741
- Components,
742
- testid
743
- }) => /* @__PURE__ */ jsx(Components.NumberWrapper, { children: /* @__PURE__ */ jsx(
744
- NumberInput,
745
- {
746
- testid: `${testid}-number-input`,
747
- value: data,
748
- set: isReadonly(path) ? void 0 : (newValue) => {
749
- set(Number(newValue));
750
- },
751
- autoSize: true
752
- }
753
- ) });
754
- var StringEditor = ({
755
- path = [],
756
- isReadonly = () => false,
757
- data,
758
- set,
759
- Components,
760
- testid
761
- }) => {
762
- return /* @__PURE__ */ jsx(Components.StringWrapper, { children: /* @__PURE__ */ jsx(
763
- TextInput,
764
- {
765
- testid: `${testid}-string-input`,
766
- value: data,
767
- set: isReadonly(path) ? void 0 : set,
768
- autoSize: true
769
- }
770
- ) });
771
- };
772
- var DefaultFallback = ({ error, errorInfo }) => {
773
- const component = errorInfo?.componentStack?.split(` `).filter(Boolean)[2];
774
- const message = error?.toString() ?? errorInfo?.componentStack ?? `Unknown error`;
775
- return /* @__PURE__ */ jsx(
776
- "div",
777
- {
778
- "data-testid": "error-boundary",
779
- style: {
780
- flex: `1`,
781
- background: `black`,
782
- backgroundImage: `url(./src/assets/kablooey.gif)`,
783
- backgroundPosition: `center`,
784
- // backgroundRepeat: `no-repeat`,
785
- backgroundSize: `overlay`
786
- },
787
- children: /* @__PURE__ */ jsx(
788
- "div",
789
- {
790
- style: {
791
- margin: `50px`,
792
- marginTop: `0`,
793
- padding: `50px`,
794
- border: `1px solid dashed`
795
- },
796
- children: /* @__PURE__ */ jsxs(
797
- "span",
798
- {
799
- style: {
800
- background: `black`,
801
- color: `white`,
802
- padding: 10,
803
- paddingTop: 5
804
- },
805
- children: [
806
- `\u26A0\uFE0F `,
807
- /* @__PURE__ */ jsx("span", { style: { color: `#fc0`, fontWeight: 700 }, children: component }),
808
- ` \u26A0\uFE0F `,
809
- message
810
- ]
811
- }
812
- )
813
- }
814
- )
815
- }
816
- );
817
- };
818
- var ErrorBoundary = class extends Component {
819
- constructor(props) {
820
- super(props);
821
- this.state = {};
822
- }
823
- componentDidCatch(error, errorInfo) {
824
- this.props.onError?.(error, errorInfo);
825
- this.setState({
826
- error,
827
- errorInfo
828
- });
829
- }
830
- render() {
831
- const { error, errorInfo } = this.state;
832
- const { children, Fallback = DefaultFallback } = this.props;
833
- return errorInfo ? /* @__PURE__ */ jsx(Fallback, { error, errorInfo }) : children;
834
- }
835
- };
836
- var DEFAULT_JSON_EDITOR_COMPONENTS = {
837
- ErrorBoundary: ({ children }) => /* @__PURE__ */ jsx(ErrorBoundary, { children }),
838
- Button: ({ onClick, children, disabled, testid }) => /* @__PURE__ */ jsx(
839
- "button",
840
- {
841
- type: "button",
842
- className: "json_editor_button",
843
- onClick,
844
- disabled,
845
- "data-testid": testid,
846
- children
847
- }
848
- ),
849
- EditorWrapper: ({ children, className, testid }) => /* @__PURE__ */ jsx(
850
- "div",
851
- {
852
- className: `json_editor` + (className ? ` ${className}` : ``),
853
- "data-testid": testid,
854
- children
855
- }
856
- ),
857
- ArrayWrapper: ({ children, testid }) => /* @__PURE__ */ jsx("div", { className: "json_editor_array", "data-testid": testid, children }),
858
- ObjectWrapper: ({ children, testid }) => /* @__PURE__ */ jsx("div", { className: "json_editor_object", "data-testid": testid, children }),
859
- StringWrapper: ({ children, testid }) => /* @__PURE__ */ jsx("span", { className: "json_editor_string", "data-testid": testid, children }),
860
- NumberWrapper: ({ children, testid }) => /* @__PURE__ */ jsx("span", { className: "json_editor_number", "data-testid": testid, children }),
861
- BooleanWrapper: ({ children, testid }) => /* @__PURE__ */ jsx("span", { className: "json_editor_boolean", "data-testid": testid, children }),
862
- Null: ({ testid }) => /* @__PURE__ */ jsx("span", { className: "json_editor_null", "data-testid": testid }),
863
- DeleteIcon: () => /* @__PURE__ */ jsx("span", { className: "json_editor_icon json_editor_delete", children: "x" }),
864
- MissingPropertyWrapper: ({ children, testid }) => /* @__PURE__ */ jsx("span", { className: "json_editor_missing_property", "data-testid": testid, children }),
865
- KeyWrapper: ({ children, testid }) => /* @__PURE__ */ jsx("span", { className: "json_editor_key", "data-testid": testid, children })
866
- };
867
- var JsonEditor = ({
868
- data,
869
- set,
870
- name,
871
- rename,
872
- remove,
873
- isReadonly = () => false,
874
- isHidden = () => false,
875
- className,
876
- Header,
877
- style,
878
- Components: CustomComponents = {},
879
- testid
880
- }) => {
881
- const Components = {
882
- ...DEFAULT_JSON_EDITOR_COMPONENTS,
883
- ...CustomComponents
884
- };
885
- return /* @__PURE__ */ jsx(
886
- JsonEditor_INTERNAL,
887
- {
888
- data,
889
- set,
890
- name,
891
- rename,
892
- remove,
893
- path: [],
894
- isReadonly,
895
- isHidden,
896
- className,
897
- Header,
898
- style,
899
- Components,
900
- testid
901
- }
902
- );
903
- };
904
-
905
- // react-devtools/src/json-editor/index.ts
906
- var SubEditors = {
907
- array: ArrayEditor,
908
- boolean: BooleanEditor,
909
- null: NullEditor,
910
- number: NumberEditor,
911
- object: ObjectEditor,
912
- string: StringEditor
913
- };
914
- var StateEditor = ({ token }) => {
915
- const set = useI(token);
916
- const data = useO(token);
917
- return /* @__PURE__ */ jsx(JsonEditor, { testid: `${token.key}-state-editor`, data, set });
918
- };
919
- var ReadonlySelectorViewer = ({ token }) => {
920
- const data = useO(token);
921
- return /* @__PURE__ */ jsx(
922
- JsonEditor,
923
- {
924
- testid: `${token.key}-state-editor`,
925
- data,
926
- set: () => null,
927
- isReadonly: () => true
928
- }
929
- );
930
- };
931
- var StoreEditor = ({ token }) => {
932
- if (token.type === `readonly_selector`) {
933
- return /* @__PURE__ */ jsx(ReadonlySelectorViewer, { token });
934
- }
935
- return /* @__PURE__ */ jsx(StateEditor, { token });
936
- };
937
- function attachDevtoolsStates(store) {
938
- const introspectionStates = attachIntrospectionStates(store);
939
- const devtoolsAreOpenState = createStandaloneAtom(store, {
940
- key: `\u{1F50D} Devtools Are Open`,
941
- default: true,
942
- effects: typeof window === `undefined` ? [] : [persistSync(window.localStorage, JSON, `\u{1F50D} Devtools Are Open`)]
943
- });
944
- const devtoolsViewSelectionState = createStandaloneAtom(store, {
945
- key: `\u{1F50D} Devtools View Selection`,
946
- default: `atoms`,
947
- effects: typeof window === `undefined` ? [] : [persistSync(window.localStorage, JSON, `\u{1F50D} Devtools View`)]
948
- });
949
- const devtoolsViewOptionsState = createStandaloneAtom(store, {
950
- key: `\u{1F50D} Devtools View Options`,
951
- default: [`atoms`, `selectors`, `transactions`, `timelines`],
952
- effects: typeof window === `undefined` ? [] : [persistSync(window.localStorage, JSON, `\u{1F50D} Devtools View Options`)]
953
- });
954
- const viewIsOpenAtoms = createAtomFamily(store, {
955
- key: `\u{1F50D} Devtools View Is Open`,
956
- default: false,
957
- effects: (key) => typeof window === `undefined` ? [] : [persistSync(window.localStorage, JSON, key + `:view-is-open`)]
958
- });
959
- return {
960
- ...introspectionStates,
961
- devtoolsAreOpenState,
962
- devtoolsViewSelectionState,
963
- devtoolsViewOptionsState,
964
- viewIsOpenAtoms,
965
- store
966
- };
967
- }
968
- var DevtoolsContext = createContext(attachDevtoolsStates(IMPLICIT.STORE));
969
- var StateIndexLeafNode = ({ node, isOpenState, typeState }) => {
970
- const setIsOpen = useI(isOpenState);
971
- const isOpen = useO(isOpenState);
972
- const state = useO(node);
973
- const stateType = useO(typeState);
974
- const isPrimitive = Boolean(primitiveRefinery.refine(state));
975
- return /* @__PURE__ */ jsxs(Fragment, { children: [
976
- /* @__PURE__ */ jsxs("header", { children: [
977
- /* @__PURE__ */ jsx(
978
- button.OpenClose,
979
- {
980
- isOpen: isOpen && !isPrimitive,
981
- testid: `open-close-state-${node.key}`,
982
- setIsOpen,
983
- disabled: isPrimitive
984
- }
985
- ),
986
- /* @__PURE__ */ jsxs(
987
- "main",
988
- {
989
- onClick: () => {
990
- console.log(node, getState(node));
991
- },
992
- onKeyUp: () => {
993
- console.log(node, getState(node));
994
- },
995
- children: [
996
- /* @__PURE__ */ jsx("h2", { children: node.family?.subKey ?? node.key }),
997
- /* @__PURE__ */ jsxs("span", { className: "type detail", children: [
998
- "(",
999
- stateType,
1000
- ")"
1001
- ] })
1002
- ]
1003
- }
1004
- ),
1005
- /* @__PURE__ */ jsx(StoreEditor, { token: node })
1006
- ] }),
1007
- isOpen && !isPrimitive ? /* @__PURE__ */ jsx("main", { children: /* @__PURE__ */ jsx(StoreEditor, { token: node }) }) : null
1008
- ] });
1009
- };
1010
- var StateIndexTreeNode = ({ node, isOpenState }) => {
1011
- const setIsOpen = useI(isOpenState);
1012
- const isOpen = useO(isOpenState);
1013
- const { typeSelectors, viewIsOpenAtoms, store } = useContext(DevtoolsContext);
1014
- for (const [key, childNode] of node.familyMembers) {
1015
- findInStore(store, viewIsOpenAtoms, key);
1016
- findInStore(store, typeSelectors, childNode.key);
1017
- }
1018
- return /* @__PURE__ */ jsxs(Fragment, { children: [
1019
- /* @__PURE__ */ jsxs("header", { children: [
1020
- /* @__PURE__ */ jsx(
1021
- button.OpenClose,
1022
- {
1023
- isOpen,
1024
- testid: `open-close-state-family-${node.key}`,
1025
- setIsOpen
1026
- }
1027
- ),
1028
- /* @__PURE__ */ jsxs("main", { children: [
1029
- /* @__PURE__ */ jsx("h2", { children: node.key }),
1030
- /* @__PURE__ */ jsx("span", { className: "type detail", children: " (family)" })
1031
- ] })
1032
- ] }),
1033
- isOpen ? [...node.familyMembers.entries()].map(([key, childNode]) => /* @__PURE__ */ jsx(
1034
- StateIndexNode,
1035
- {
1036
- node: childNode,
1037
- isOpenState: findInStore(store, viewIsOpenAtoms, childNode.key),
1038
- typeState: findInStore(store, typeSelectors, childNode.key)
1039
- },
1040
- key
1041
- )) : null
1042
- ] });
1043
- };
1044
- var StateIndexNode = ({ node, isOpenState, typeState }) => {
1045
- return /* @__PURE__ */ jsx("section", { className: "node state", "data-testid": `state-${node.key}`, children: `type` in node ? /* @__PURE__ */ jsx(
1046
- StateIndexLeafNode,
1047
- {
1048
- node,
1049
- isOpenState,
1050
- typeState
1051
- }
1052
- ) : /* @__PURE__ */ jsx(StateIndexTreeNode, { node, isOpenState }) });
1053
- };
1054
- var StateIndex = ({ tokenIndex }) => {
1055
- const tokenIds = useO(tokenIndex);
1056
- const { typeSelectors, viewIsOpenAtoms, store } = useContext(DevtoolsContext);
1057
- return /* @__PURE__ */ jsx("article", { className: "index state_index", "data-testid": "state-index", children: [...tokenIds.entries()].filter(([key]) => !key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)).sort().map(([key, node]) => {
1058
- return /* @__PURE__ */ jsx(
1059
- StateIndexNode,
1060
- {
1061
- node,
1062
- isOpenState: findInStore(store, viewIsOpenAtoms, node.key),
1063
- typeState: findInStore(store, typeSelectors, node.key)
1064
- },
1065
- key
1066
- );
1067
- }) });
1068
- };
1069
- var AtomUpdateFC = ({ atomUpdate }) => {
1070
- return /* @__PURE__ */ jsxs(
1071
- "article",
1072
- {
1073
- className: "node atom_update",
1074
- onClick: () => {
1075
- console.log(atomUpdate);
1076
- },
1077
- onKeyUp: () => {
1078
- console.log(atomUpdate);
1079
- },
1080
- children: [
1081
- /* @__PURE__ */ jsxs("span", { className: "detail", children: [
1082
- atomUpdate.key,
1083
- ": "
1084
- ] }),
1085
- /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx("span", { className: "summary", children: prettyJson.diff(atomUpdate.oldValue, atomUpdate.newValue).summary }) })
1086
- ]
1087
- },
1088
- atomUpdate.key
1089
- );
1090
- };
1091
- var TransactionUpdateFC = ({ serialNumber, transactionUpdate }) => {
1092
- return /* @__PURE__ */ jsxs(
1093
- "article",
1094
- {
1095
- className: "node transaction_update",
1096
- "data-testid": `transaction-update-${transactionUpdate.key}-${serialNumber}`,
1097
- children: [
1098
- /* @__PURE__ */ jsx("header", { children: /* @__PURE__ */ jsx("h4", { children: serialNumber }) }),
1099
- /* @__PURE__ */ jsxs("main", { children: [
1100
- /* @__PURE__ */ jsxs("section", { className: "transaction_params", children: [
1101
- /* @__PURE__ */ jsx("span", { className: "detail", children: "params: " }),
1102
- transactionUpdate.params.map((param, index) => {
1103
- return /* @__PURE__ */ jsxs(
1104
- "article",
1105
- {
1106
- className: "node transaction_param",
1107
- onClick: () => {
1108
- console.log(transactionUpdate);
1109
- },
1110
- onKeyUp: () => {
1111
- console.log(transactionUpdate);
1112
- },
1113
- children: [
1114
- /* @__PURE__ */ jsxs("span", { className: "detail", children: [
1115
- discoverType(param),
1116
- ": "
1117
- ] }),
1118
- /* @__PURE__ */ jsx("span", { className: "summary", children: typeof param === `object` && param !== null && `type` in param && `target` in param ? /* @__PURE__ */ jsx(Fragment, { children: JSON.stringify(param.type) }) : /* @__PURE__ */ jsx(Fragment, { children: JSON.stringify(param) }) })
1119
- ]
1120
- },
1121
- `param` + index
1122
- );
1123
- })
1124
- ] }),
1125
- /* @__PURE__ */ jsxs("section", { className: "node transaction_output", children: [
1126
- /* @__PURE__ */ jsx("span", { className: "detail", children: "output: " }),
1127
- /* @__PURE__ */ jsx("span", { className: "detail", children: discoverType(transactionUpdate.output) }),
1128
- transactionUpdate.output ? /* @__PURE__ */ jsxs("span", { className: "summary", children: [
1129
- ": ",
1130
- JSON.stringify(transactionUpdate.output)
1131
- ] }) : null
1132
- ] }),
1133
- /* @__PURE__ */ jsxs("section", { className: "transaction_impact", children: [
1134
- /* @__PURE__ */ jsx("span", { className: "detail", children: "impact: " }),
1135
- transactionUpdate.updates.filter(
1136
- (token) => token.type !== `molecule_creation` && token.type !== `molecule_disposal` && token.type !== `molecule_transfer` && token.type !== `state_creation` && token.type !== `state_disposal` && !token.key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)
1137
- ).map((update, index) => {
1138
- switch (update.type) {
1139
- case `atom_update`:
1140
- case `selector_update`:
1141
- return /* @__PURE__ */ jsx(
1142
- article.AtomUpdate,
1143
- {
1144
- serialNumber: index,
1145
- atomUpdate: update
1146
- },
1147
- `${transactionUpdate.key}:${index}:${update.key}`
1148
- );
1149
- case `transaction_update`:
1150
- return /* @__PURE__ */ jsx(
1151
- TransactionUpdateFC,
1152
- {
1153
- serialNumber: index,
1154
- transactionUpdate: update
1155
- },
1156
- `${transactionUpdate.key}:${index}:${update.key}`
1157
- );
1158
- case `molecule_creation`:
1159
- case `molecule_disposal`:
1160
- case `molecule_transfer`:
1161
- case `state_creation`:
1162
- case `state_disposal`:
1163
- return null;
1164
- }
1165
- })
1166
- ] })
1167
- ] })
1168
- ]
1169
- }
1170
- );
1171
- };
1172
- var TimelineUpdateFC = ({ timelineUpdate, serialNumber }) => {
1173
- return `key` in timelineUpdate ? /* @__PURE__ */ jsxs(
1174
- "article",
1175
- {
1176
- className: "node timeline_update",
1177
- "data-testid": `timeline-update-${typeof timelineUpdate.key === `string` ? timelineUpdate.key : stringifyJson(timelineUpdate.key)}-${serialNumber}`,
1178
- children: [
1179
- /* @__PURE__ */ jsx("header", { children: /* @__PURE__ */ jsxs("h4", { children: [
1180
- timelineUpdate.timestamp,
1181
- ": ",
1182
- timelineUpdate.type,
1183
- " (",
1184
- timelineUpdate.key,
1185
- ")"
1186
- ] }) }),
1187
- /* @__PURE__ */ jsx("main", { children: timelineUpdate.type === `transaction_update` ? timelineUpdate.updates.filter(
1188
- (token) => token.type !== `molecule_creation` && token.type !== `molecule_disposal` && token.type !== `molecule_transfer` && token.type !== `state_creation` && token.type !== `state_disposal` && !token.key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)
1189
- ).map((update, index) => {
1190
- switch (update.type) {
1191
- case `atom_update`:
1192
- case `selector_update`:
1193
- return /* @__PURE__ */ jsx(
1194
- article.AtomUpdate,
1195
- {
1196
- serialNumber: index,
1197
- atomUpdate: update
1198
- },
1199
- `${timelineUpdate.key}:${index}:${update.key}`
1200
- );
1201
- case `transaction_update`:
1202
- return /* @__PURE__ */ jsx(
1203
- TransactionUpdateFC,
1204
- {
1205
- serialNumber: index,
1206
- transactionUpdate: update
1207
- },
1208
- `${timelineUpdate.key}:${index}:${update.key}`
1209
- );
1210
- case `molecule_creation`:
1211
- case `molecule_disposal`:
1212
- case `molecule_transfer`:
1213
- case `state_creation`:
1214
- case `state_disposal`:
1215
- return null;
1216
- }
1217
- }) : timelineUpdate.type === `selector_update` ? timelineUpdate.atomUpdates.filter((token) => !token.key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)).map((atomUpdate, index) => {
1218
- return /* @__PURE__ */ jsx(
1219
- article.AtomUpdate,
1220
- {
1221
- serialNumber: index,
1222
- atomUpdate
1223
- },
1224
- `${timelineUpdate.key}:${index}:${atomUpdate.key}`
1225
- );
1226
- }) : timelineUpdate.type === `atom_update` ? /* @__PURE__ */ jsx(
1227
- article.AtomUpdate,
1228
- {
1229
- serialNumber: timelineUpdate.timestamp,
1230
- atomUpdate: timelineUpdate
1231
- }
1232
- ) : null })
1233
- ]
1234
- }
1235
- ) : null;
1236
- };
1237
- var article = {
1238
- AtomUpdate: AtomUpdateFC,
1239
- TransactionUpdate: TransactionUpdateFC,
1240
- TimelineUpdate: TimelineUpdateFC
1241
- };
1242
- var YouAreHere = () => {
1243
- return /* @__PURE__ */ jsx("span", { className: "you_are_here", children: "you are here" });
1244
- };
1245
- var TimelineLog = ({ token, isOpenState, timelineState }) => {
1246
- const timeline = useO(timelineState);
1247
- const isOpen = useO(isOpenState);
1248
- const setIsOpen = useI(isOpenState);
1249
- return /* @__PURE__ */ jsxs("section", { className: "node timeline_log", "data-testid": `timeline-${token.key}`, children: [
1250
- /* @__PURE__ */ jsxs("header", { children: [
1251
- /* @__PURE__ */ jsx(
1252
- button.OpenClose,
1253
- {
1254
- isOpen,
1255
- testid: `open-close-timeline-${token.key}`,
1256
- setIsOpen
1257
- }
1258
- ),
1259
- /* @__PURE__ */ jsxs("main", { children: [
1260
- /* @__PURE__ */ jsx("h2", { children: token.key }),
1261
- /* @__PURE__ */ jsxs("span", { className: "detail length", children: [
1262
- "(",
1263
- timeline.at,
1264
- "/",
1265
- timeline.history.length,
1266
- ")"
1267
- ] }),
1268
- /* @__PURE__ */ jsx("span", { className: "gap" }),
1269
- /* @__PURE__ */ jsxs("nav", { children: [
1270
- /* @__PURE__ */ jsx(
1271
- "button",
1272
- {
1273
- type: "button",
1274
- onClick: () => {
1275
- undo(token);
1276
- },
1277
- disabled: timeline.at === 0,
1278
- children: "undo"
1279
- }
1280
- ),
1281
- /* @__PURE__ */ jsx(
1282
- "button",
1283
- {
1284
- type: "button",
1285
- onClick: () => {
1286
- redo(token);
1287
- },
1288
- disabled: timeline.at === timeline.history.length,
1289
- children: "redo"
1290
- }
1291
- )
1292
- ] })
1293
- ] })
1294
- ] }),
1295
- isOpen ? /* @__PURE__ */ jsx("main", { children: timeline.history.map(
1296
- (update, index) => update.type !== `molecule_creation` && update.type !== `molecule_disposal` && update.type !== `state_creation` && update.type !== `state_disposal` ? /* @__PURE__ */ jsxs(Fragment$1, { children: [
1297
- index === timeline.at ? /* @__PURE__ */ jsx(YouAreHere, {}) : null,
1298
- /* @__PURE__ */ jsx(
1299
- article.TimelineUpdate,
1300
- {
1301
- timelineUpdate: update,
1302
- serialNumber: index
1303
- }
1304
- ),
1305
- index === timeline.history.length - 1 && timeline.at === timeline.history.length ? /* @__PURE__ */ jsx(YouAreHere, {}) : null
1306
- ] }, update.key + index + timeline.at) : null
1307
- ) }) : null
1308
- ] });
1309
- };
1310
- var TimelineIndex = () => {
1311
- const { timelineIndex, timelineSelectors, viewIsOpenAtoms, store } = useContext(DevtoolsContext);
1312
- const tokenIds = useO(timelineIndex);
1313
- return /* @__PURE__ */ jsx("article", { className: "index timeline_index", "data-testid": "timeline-index", children: tokenIds.filter((token) => !token.key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)).map((token) => {
1314
- return /* @__PURE__ */ jsx(
1315
- TimelineLog,
1316
- {
1317
- token,
1318
- isOpenState: findInStore(store, viewIsOpenAtoms, token.key),
1319
- timelineState: findInStore(store, timelineSelectors, token.key)
1320
- },
1321
- token.key
1322
- );
1323
- }) });
1324
- };
1325
- var TransactionLog = ({ token, isOpenState, logState }) => {
1326
- const log = useO(logState);
1327
- const isOpen = useO(isOpenState);
1328
- const setIsOpen = useI(isOpenState);
1329
- return /* @__PURE__ */ jsxs(
1330
- "section",
1331
- {
1332
- className: "node transaction_log",
1333
- "data-testid": `transaction-${token.key}`,
1334
- children: [
1335
- /* @__PURE__ */ jsxs("header", { children: [
1336
- /* @__PURE__ */ jsx(
1337
- button.OpenClose,
1338
- {
1339
- isOpen,
1340
- testid: `open-close-transaction-${token.key}`,
1341
- setIsOpen
1342
- }
1343
- ),
1344
- /* @__PURE__ */ jsxs("main", { children: [
1345
- /* @__PURE__ */ jsx("h2", { children: token.key }),
1346
- /* @__PURE__ */ jsxs("span", { className: "detail length", children: [
1347
- "(",
1348
- log.length,
1349
- ")"
1350
- ] })
1351
- ] })
1352
- ] }),
1353
- isOpen ? /* @__PURE__ */ jsx("main", { children: log.map((update, index) => /* @__PURE__ */ jsx(
1354
- article.TransactionUpdate,
1355
- {
1356
- serialNumber: index,
1357
- transactionUpdate: update
1358
- },
1359
- update.key + index
1360
- )) }) : null
1361
- ]
1362
- }
1363
- );
1364
- };
1365
- var TransactionIndex = () => {
1366
- const { transactionIndex, transactionLogSelectors, viewIsOpenAtoms, store } = useContext(DevtoolsContext);
1367
- const tokenIds = useO(transactionIndex);
1368
- return /* @__PURE__ */ jsx("article", { className: "index transaction_index", "data-testid": "transaction-index", children: tokenIds.filter((token) => !token.key.startsWith(`\u{1F50D}`)).map((token) => {
1369
- return /* @__PURE__ */ jsx(
1370
- TransactionLog,
1371
- {
1372
- token,
1373
- isOpenState: findInStore(store, viewIsOpenAtoms, token.key),
1374
- logState: findInStore(store, transactionLogSelectors, token.key)
1375
- },
1376
- token.key
1377
- );
1378
- }) });
1379
- };
1380
- var AtomIODevtools = () => {
1381
- const store = useContext(StoreContext);
1382
- return /* @__PURE__ */ jsx(DevtoolsContext.Provider, { value: attachDevtoolsStates(store), children: /* @__PURE__ */ jsx(AtomIODevtoolsInternal, {}) });
1383
- };
1384
- var AtomIODevtoolsInternal = () => {
1385
- const constraintsRef = useRef(null);
1386
- const {
1387
- atomIndex,
1388
- selectorIndex,
1389
- devtoolsAreOpenState,
1390
- devtoolsViewSelectionState,
1391
- devtoolsViewOptionsState
1392
- } = useContext(DevtoolsContext);
1393
- const setDevtoolsAreOpen = useI(devtoolsAreOpenState);
1394
- const devtoolsAreOpen = useO(devtoolsAreOpenState);
1395
- const setDevtoolsView = useI(devtoolsViewSelectionState);
1396
- const devtoolsView = useO(devtoolsViewSelectionState);
1397
- const devtoolsViewOptions = useO(devtoolsViewOptionsState);
1398
- const mouseHasMoved = useRef(false);
1399
- return /* @__PURE__ */ jsxs(
1400
- "span",
1401
- {
1402
- style: {
1403
- position: `fixed`,
1404
- top: 0,
1405
- left: 0,
1406
- right: 0,
1407
- bottom: 0
1408
- },
1409
- children: [
1410
- /* @__PURE__ */ jsx(
1411
- motion.span,
1412
- {
1413
- ref: constraintsRef,
1414
- "data-css": "atom_io_devtools_zone",
1415
- style: {
1416
- position: `fixed`,
1417
- top: 0,
1418
- left: 0,
1419
- right: 0,
1420
- bottom: 0,
1421
- pointerEvents: `none`
1422
- }
1423
- }
1424
- ),
1425
- /* @__PURE__ */ jsxs(
1426
- motion.main,
1427
- {
1428
- drag: true,
1429
- dragConstraints: constraintsRef,
1430
- "data-css": "atom_io_devtools",
1431
- transition: spring,
1432
- style: devtoolsAreOpen ? {} : {
1433
- backgroundColor: `#0000`,
1434
- borderColor: `#0000`,
1435
- maxHeight: 28,
1436
- maxWidth: 33
1437
- },
1438
- children: [
1439
- devtoolsAreOpen ? /* @__PURE__ */ jsxs(Fragment, { children: [
1440
- /* @__PURE__ */ jsxs(motion.header, { children: [
1441
- /* @__PURE__ */ jsx("h1", { children: "atom.io" }),
1442
- /* @__PURE__ */ jsx("nav", { children: devtoolsViewOptions.map((viewOption) => /* @__PURE__ */ jsx(
1443
- "button",
1444
- {
1445
- type: "button",
1446
- "data-testid": `view-${viewOption}`,
1447
- className: viewOption === devtoolsView ? `active` : ``,
1448
- onClick: () => {
1449
- setDevtoolsView(viewOption);
1450
- },
1451
- disabled: viewOption === devtoolsView,
1452
- children: viewOption
1453
- },
1454
- viewOption
1455
- )) })
1456
- ] }),
1457
- /* @__PURE__ */ jsx(motion.main, { children: /* @__PURE__ */ jsx(LayoutGroup, { children: devtoolsView === `atoms` ? /* @__PURE__ */ jsx(StateIndex, { tokenIndex: atomIndex }) : devtoolsView === `selectors` ? /* @__PURE__ */ jsx(StateIndex, { tokenIndex: selectorIndex }) : devtoolsView === `transactions` ? /* @__PURE__ */ jsx(TransactionIndex, {}) : /* @__PURE__ */ jsx(TimelineIndex, {}) }) })
1458
- ] }) : null,
1459
- /* @__PURE__ */ jsx("footer", { children: /* @__PURE__ */ jsx(
1460
- "button",
1461
- {
1462
- type: "button",
1463
- onMouseDown: () => mouseHasMoved.current = false,
1464
- onMouseMove: () => mouseHasMoved.current = true,
1465
- onMouseUp: () => {
1466
- if (!mouseHasMoved.current) {
1467
- setDevtoolsAreOpen((open) => !open);
1468
- }
1469
- },
1470
- children: "\u{1F50D}"
1471
- }
1472
- ) })
1473
- ]
1474
- }
1475
- )
1476
- ]
1477
- }
1478
- );
1479
- };
1480
-
1481
- export { AtomIODevtools, DEFAULT_JSON_EDITOR_COMPONENTS, DEFAULT_NUMBER_CONSTRAINTS, DefaultFallback, ElasticInput, ErrorBoundary, JsonEditor, NumberInput, SubEditors, TextInput, VALID_NON_NUMBERS, VALID_NON_NUMBER_INTERPRETATIONS, castToJson, clampInto, isDecimalInProgress, isValidNonNumber };