tinybase 5.0.0-beta.10 → 5.0.0-beta.12

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 (343) hide show
  1. package/lib/cjs/mergeable-store.cjs +1 -1
  2. package/lib/cjs/mergeable-store.cjs.gz +0 -0
  3. package/lib/cjs/persisters/persister-automerge.cjs +1 -1
  4. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  5. package/lib/cjs/persisters/persister-browser.cjs +1 -1
  6. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  7. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  8. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  9. package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
  10. package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
  12. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  14. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-file.cjs +1 -1
  16. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  17. package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
  18. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  19. package/lib/cjs/persisters/persister-libsql.cjs +1 -1
  20. package/lib/cjs/persisters/persister-libsql.cjs.gz +0 -0
  21. package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
  22. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  23. package/lib/cjs/persisters/persister-powersync.cjs +1 -1
  24. package/lib/cjs/persisters/persister-powersync.cjs.gz +0 -0
  25. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  26. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  27. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  28. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  29. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  30. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  31. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  32. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  33. package/lib/cjs/persisters.cjs +1 -1
  34. package/lib/cjs/persisters.cjs.gz +0 -0
  35. package/lib/cjs/store.cjs +1 -1
  36. package/lib/cjs/store.cjs.gz +0 -0
  37. package/lib/cjs/synchronizers/synchronizer-local.cjs +1 -1
  38. package/lib/cjs/synchronizers/synchronizer-local.cjs.gz +0 -0
  39. package/lib/cjs/synchronizers/synchronizer-ws-client.cjs +1 -1
  40. package/lib/cjs/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
  41. package/lib/cjs/synchronizers/synchronizer-ws-server.cjs +1 -1
  42. package/lib/cjs/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
  43. package/lib/cjs/synchronizers.cjs +1 -1
  44. package/lib/cjs/synchronizers.cjs.gz +0 -0
  45. package/lib/cjs/tinybase.cjs +1 -1
  46. package/lib/cjs/tinybase.cjs.gz +0 -0
  47. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  48. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  49. package/lib/cjs/ui-react.cjs +1 -1
  50. package/lib/cjs/ui-react.cjs.gz +0 -0
  51. package/lib/cjs-es6/mergeable-store.cjs +1 -1
  52. package/lib/cjs-es6/mergeable-store.cjs.gz +0 -0
  53. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  54. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  55. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  56. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  57. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  58. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  59. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
  60. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  61. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
  62. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  63. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  64. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  65. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  66. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  67. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  68. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  69. package/lib/cjs-es6/persisters/persister-libsql.cjs +1 -1
  70. package/lib/cjs-es6/persisters/persister-libsql.cjs.gz +0 -0
  71. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
  72. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  73. package/lib/cjs-es6/persisters/persister-powersync.cjs +1 -1
  74. package/lib/cjs-es6/persisters/persister-powersync.cjs.gz +0 -0
  75. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  76. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  77. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  78. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  79. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  80. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  81. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  82. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  83. package/lib/cjs-es6/persisters.cjs +1 -1
  84. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  85. package/lib/cjs-es6/store.cjs +1 -1
  86. package/lib/cjs-es6/store.cjs.gz +0 -0
  87. package/lib/cjs-es6/synchronizers/synchronizer-local.cjs +1 -1
  88. package/lib/cjs-es6/synchronizers/synchronizer-local.cjs.gz +0 -0
  89. package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs +1 -1
  90. package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
  91. package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs +1 -1
  92. package/lib/cjs-es6/synchronizers/synchronizer-ws-server.cjs.gz +0 -0
  93. package/lib/cjs-es6/synchronizers.cjs +1 -1
  94. package/lib/cjs-es6/synchronizers.cjs.gz +0 -0
  95. package/lib/cjs-es6/tinybase.cjs +1 -1
  96. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  97. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  98. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  99. package/lib/cjs-es6/ui-react.cjs +1 -1
  100. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  101. package/lib/debug/mergeable-store.js +1 -1
  102. package/lib/debug/persisters/persister-automerge.js +113 -101
  103. package/lib/debug/persisters/persister-browser.js +113 -97
  104. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +113 -102
  105. package/lib/debug/persisters/persister-electric-sql.js +113 -102
  106. package/lib/debug/persisters/persister-expo-sqlite-next.js +113 -102
  107. package/lib/debug/persisters/persister-expo-sqlite.js +113 -102
  108. package/lib/debug/persisters/persister-file.js +108 -96
  109. package/lib/debug/persisters/persister-indexed-db.js +108 -96
  110. package/lib/debug/persisters/persister-libsql.js +113 -102
  111. package/lib/debug/persisters/persister-partykit-client.js +112 -100
  112. package/lib/debug/persisters/persister-powersync.js +113 -102
  113. package/lib/debug/persisters/persister-remote.js +108 -96
  114. package/lib/debug/persisters/persister-sqlite-wasm.js +113 -102
  115. package/lib/debug/persisters/persister-sqlite3.js +113 -102
  116. package/lib/debug/persisters/persister-yjs.js +113 -101
  117. package/lib/debug/persisters.js +107 -95
  118. package/lib/debug/store.js +1 -1
  119. package/lib/debug/synchronizers/synchronizer-local.js +114 -102
  120. package/lib/debug/synchronizers/synchronizer-ws-client.js +113 -101
  121. package/lib/debug/synchronizers/synchronizer-ws-server.js +151 -6
  122. package/lib/debug/synchronizers.js +113 -101
  123. package/lib/debug/tinybase.js +114 -102
  124. package/lib/debug/ui-react-dom.js +114 -98
  125. package/lib/debug/ui-react.js +10 -21
  126. package/lib/es6/mergeable-store.js +1 -1
  127. package/lib/es6/mergeable-store.js.gz +0 -0
  128. package/lib/es6/persisters/persister-automerge.js +1 -1
  129. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  130. package/lib/es6/persisters/persister-browser.js +1 -1
  131. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  132. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  133. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  134. package/lib/es6/persisters/persister-electric-sql.js +1 -1
  135. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  136. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
  137. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  138. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  139. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  140. package/lib/es6/persisters/persister-file.js +1 -1
  141. package/lib/es6/persisters/persister-file.js.gz +0 -0
  142. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  143. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  144. package/lib/es6/persisters/persister-libsql.js +1 -1
  145. package/lib/es6/persisters/persister-libsql.js.gz +0 -0
  146. package/lib/es6/persisters/persister-partykit-client.js +1 -1
  147. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  148. package/lib/es6/persisters/persister-powersync.js +1 -1
  149. package/lib/es6/persisters/persister-powersync.js.gz +0 -0
  150. package/lib/es6/persisters/persister-remote.js +1 -1
  151. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  152. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  153. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  154. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  155. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  156. package/lib/es6/persisters/persister-yjs.js +1 -1
  157. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  158. package/lib/es6/persisters.js +1 -1
  159. package/lib/es6/persisters.js.gz +0 -0
  160. package/lib/es6/store.js +1 -1
  161. package/lib/es6/store.js.gz +0 -0
  162. package/lib/es6/synchronizers/synchronizer-local.js +1 -1
  163. package/lib/es6/synchronizers/synchronizer-local.js.gz +0 -0
  164. package/lib/es6/synchronizers/synchronizer-ws-client.js +1 -1
  165. package/lib/es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
  166. package/lib/es6/synchronizers/synchronizer-ws-server.js +1 -1
  167. package/lib/es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
  168. package/lib/es6/synchronizers.js +1 -1
  169. package/lib/es6/synchronizers.js.gz +0 -0
  170. package/lib/es6/tinybase.js +1 -1
  171. package/lib/es6/tinybase.js.gz +0 -0
  172. package/lib/es6/ui-react-dom-debug.js +1 -1
  173. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  174. package/lib/es6/ui-react.js +1 -1
  175. package/lib/es6/ui-react.js.gz +0 -0
  176. package/lib/mergeable-store.js +1 -1
  177. package/lib/mergeable-store.js.gz +0 -0
  178. package/lib/persisters/persister-automerge.js +1 -1
  179. package/lib/persisters/persister-automerge.js.gz +0 -0
  180. package/lib/persisters/persister-browser.js +1 -1
  181. package/lib/persisters/persister-browser.js.gz +0 -0
  182. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  183. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  184. package/lib/persisters/persister-electric-sql.js +1 -1
  185. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  186. package/lib/persisters/persister-expo-sqlite-next.js +1 -1
  187. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  188. package/lib/persisters/persister-expo-sqlite.js +1 -1
  189. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  190. package/lib/persisters/persister-file.js +1 -1
  191. package/lib/persisters/persister-file.js.gz +0 -0
  192. package/lib/persisters/persister-indexed-db.js +1 -1
  193. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  194. package/lib/persisters/persister-libsql.js +1 -1
  195. package/lib/persisters/persister-libsql.js.gz +0 -0
  196. package/lib/persisters/persister-partykit-client.js +1 -1
  197. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  198. package/lib/persisters/persister-powersync.js +1 -1
  199. package/lib/persisters/persister-powersync.js.gz +0 -0
  200. package/lib/persisters/persister-remote.js +1 -1
  201. package/lib/persisters/persister-remote.js.gz +0 -0
  202. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  203. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  204. package/lib/persisters/persister-sqlite3.js +1 -1
  205. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  206. package/lib/persisters/persister-yjs.js +1 -1
  207. package/lib/persisters/persister-yjs.js.gz +0 -0
  208. package/lib/persisters.js +1 -1
  209. package/lib/persisters.js.gz +0 -0
  210. package/lib/store.js +1 -1
  211. package/lib/store.js.gz +0 -0
  212. package/lib/synchronizers/synchronizer-local.js +1 -1
  213. package/lib/synchronizers/synchronizer-local.js.gz +0 -0
  214. package/lib/synchronizers/synchronizer-ws-client.js +1 -1
  215. package/lib/synchronizers/synchronizer-ws-client.js.gz +0 -0
  216. package/lib/synchronizers/synchronizer-ws-server.js +1 -1
  217. package/lib/synchronizers/synchronizer-ws-server.js.gz +0 -0
  218. package/lib/synchronizers.js +1 -1
  219. package/lib/synchronizers.js.gz +0 -0
  220. package/lib/tinybase.js +1 -1
  221. package/lib/tinybase.js.gz +0 -0
  222. package/lib/types/persisters/persister-browser.d.ts +2 -2
  223. package/lib/types/persisters/persister-file.d.ts +1 -1
  224. package/lib/types/persisters/persister-partykit-client.d.ts +0 -1
  225. package/lib/types/persisters/persister-partykit-server.d.ts +0 -1
  226. package/lib/types/persisters.d.ts +73 -47
  227. package/lib/types/synchronizers/synchronizer-ws-client.d.ts +1 -0
  228. package/lib/types/synchronizers/synchronizer-ws-server.d.ts +25 -3
  229. package/lib/types/synchronizers.d.ts +1 -1
  230. package/lib/types/ui-react.d.ts +1 -19
  231. package/lib/types/with-schemas/persisters/persister-browser.d.ts +2 -2
  232. package/lib/types/with-schemas/persisters/persister-file.d.ts +1 -1
  233. package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +0 -1
  234. package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +0 -1
  235. package/lib/types/with-schemas/persisters.d.ts +99 -87
  236. package/lib/types/with-schemas/synchronizers/synchronizer-ws-client.d.ts +1 -0
  237. package/lib/types/with-schemas/synchronizers/synchronizer-ws-server.d.ts +25 -3
  238. package/lib/types/with-schemas/synchronizers.d.ts +1 -1
  239. package/lib/types/with-schemas/ui-react.d.ts +1 -21
  240. package/lib/ui-react.js +1 -1
  241. package/lib/ui-react.js.gz +0 -0
  242. package/lib/umd/mergeable-store.js +1 -1
  243. package/lib/umd/mergeable-store.js.gz +0 -0
  244. package/lib/umd/persisters/persister-automerge.js +1 -1
  245. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  246. package/lib/umd/persisters/persister-browser.js +1 -1
  247. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  248. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  249. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  250. package/lib/umd/persisters/persister-electric-sql.js +1 -1
  251. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  252. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
  253. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  254. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  255. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  256. package/lib/umd/persisters/persister-file.js +1 -1
  257. package/lib/umd/persisters/persister-file.js.gz +0 -0
  258. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  259. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  260. package/lib/umd/persisters/persister-libsql.js +1 -1
  261. package/lib/umd/persisters/persister-libsql.js.gz +0 -0
  262. package/lib/umd/persisters/persister-partykit-client.js +1 -1
  263. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  264. package/lib/umd/persisters/persister-powersync.js +1 -1
  265. package/lib/umd/persisters/persister-powersync.js.gz +0 -0
  266. package/lib/umd/persisters/persister-remote.js +1 -1
  267. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  268. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  269. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  270. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  271. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  272. package/lib/umd/persisters/persister-yjs.js +1 -1
  273. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  274. package/lib/umd/persisters.js +1 -1
  275. package/lib/umd/persisters.js.gz +0 -0
  276. package/lib/umd/store.js +1 -1
  277. package/lib/umd/store.js.gz +0 -0
  278. package/lib/umd/synchronizers/synchronizer-local.js +1 -1
  279. package/lib/umd/synchronizers/synchronizer-local.js.gz +0 -0
  280. package/lib/umd/synchronizers/synchronizer-ws-client.js +1 -1
  281. package/lib/umd/synchronizers/synchronizer-ws-client.js.gz +0 -0
  282. package/lib/umd/synchronizers/synchronizer-ws-server.js +1 -1
  283. package/lib/umd/synchronizers/synchronizer-ws-server.js.gz +0 -0
  284. package/lib/umd/synchronizers.js +1 -1
  285. package/lib/umd/synchronizers.js.gz +0 -0
  286. package/lib/umd/tinybase.js +1 -1
  287. package/lib/umd/tinybase.js.gz +0 -0
  288. package/lib/umd/ui-react-dom-debug.js +1 -1
  289. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  290. package/lib/umd/ui-react.js +1 -1
  291. package/lib/umd/ui-react.js.gz +0 -0
  292. package/lib/umd-es6/mergeable-store.js +1 -1
  293. package/lib/umd-es6/mergeable-store.js.gz +0 -0
  294. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  295. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  296. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  297. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  298. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  299. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  300. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
  301. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  302. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
  303. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  304. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  305. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  306. package/lib/umd-es6/persisters/persister-file.js +1 -1
  307. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  308. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  309. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  310. package/lib/umd-es6/persisters/persister-libsql.js +1 -1
  311. package/lib/umd-es6/persisters/persister-libsql.js.gz +0 -0
  312. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
  313. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  314. package/lib/umd-es6/persisters/persister-powersync.js +1 -1
  315. package/lib/umd-es6/persisters/persister-powersync.js.gz +0 -0
  316. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  317. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  318. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  319. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  320. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  321. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  322. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  323. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  324. package/lib/umd-es6/persisters.js +1 -1
  325. package/lib/umd-es6/persisters.js.gz +0 -0
  326. package/lib/umd-es6/store.js +1 -1
  327. package/lib/umd-es6/store.js.gz +0 -0
  328. package/lib/umd-es6/synchronizers/synchronizer-local.js +1 -1
  329. package/lib/umd-es6/synchronizers/synchronizer-local.js.gz +0 -0
  330. package/lib/umd-es6/synchronizers/synchronizer-ws-client.js +1 -1
  331. package/lib/umd-es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
  332. package/lib/umd-es6/synchronizers/synchronizer-ws-server.js +1 -1
  333. package/lib/umd-es6/synchronizers/synchronizer-ws-server.js.gz +0 -0
  334. package/lib/umd-es6/synchronizers.js +1 -1
  335. package/lib/umd-es6/synchronizers.js.gz +0 -0
  336. package/lib/umd-es6/tinybase.js +1 -1
  337. package/lib/umd-es6/tinybase.js.gz +0 -0
  338. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  339. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  340. package/lib/umd-es6/ui-react.js +1 -1
  341. package/lib/umd-es6/ui-react.js.gz +0 -0
  342. package/package.json +1 -1
  343. package/readme.md +2 -2
@@ -1 +1 @@
1
- var e,l;e=this,l=function(e,l,t){"use strict";const n=e=>typeof e,s="",r=n(s),a=n(!0),o=n(0),i=n(n),u="type",d="default",c="Has",h="Ids",m="Table",b=m+"s",p=m+h,g="Row",v=g+"Count",f=g+h,I="Cell",y=I+h,w="Value",C=w+"s",k=w+h,T="currentTarget",S="value",x=e=>s+e,V=Math.floor,R=isFinite,O=e=>null==e,q=(e,l,t)=>O(e)?null==t?void 0:t():l(e),P=e=>e==r||e==a,N=e=>n(e)==i,M=e=>Array.isArray(e),L=(e,l,t)=>e.slice(l,t),E=e=>e.length,{PureComponent:j,Fragment:z,createElement:$,useCallback:A,useLayoutEffect:J,useRef:D,useState:F}=l,H=(e,...l)=>O(e)?{}:e(...l),B=(e,l)=>e.sort(l),Q=(e,l)=>e.forEach(l),W=(e,l)=>e.map(l),U=e=>0==E(e),G=(e,...l)=>e.push(...l),K=e=>e.shift(),X=Object,Y=e=>X.getPrototypeOf(e),Z=X.entries,_=X.isFrozen,ee=e=>!O(e)&&q(Y(e),(e=>e==X.prototype||O(Y(e))),(()=>!0)),le=X.keys,te=X.freeze,ne=(e=[])=>X.fromEntries(e),se=(e,l)=>l in e,re=(e,l)=>(delete e[l],e),ae=(e,l)=>W(Z(e),(([e,t])=>l(t,e))),oe=e=>ee(e)&&0==(e=>E(le(e)))(e),ie=(e,l,t,n=0)=>O(e)||!ee(e)||!n&&oe(e)||_(e)?(null==t||t(),!1):(ae(e,((t,n)=>{l(t,n)||re(e,n)})),!!n||!oe(e)),ue=e=>JSON.stringify(e,((e,l)=>l instanceof Map?X.fromEntries([...l]):l)),de=JSON.parse,ce="tinybaseStoreInspector",he="TinyBase Store Inspector",me=["left","top","bottom","right","full"],be="state",pe="sort",ge="open",ve="position",fe=ge,Ie="editable",ye=(...e)=>ue(e),we=(e,l)=>W(B(e),l),Ce=(e,l)=>[!!t.useCell(be,e,Ie,l),A((t=>{l.setCell(be,e,Ie,(e=>!e)),t.preventDefault()}),[l,e])],ke="M20 80l5-15l40-40l10 10l-40 40l-15 5m5-15l10 10",Te='content:url("',Se=Te+"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' stroke-width='4' stroke='white' fill='none'>",xe='</svg>")',Ve=Te+"data:image/svg+xml,%3csvg viewBox='0 0 680 680' xmlns='http://www.w3.org/2000/svg' style='width:680px%3bheight:680px'%3e %3cpath stroke='white' stroke-width='80' fill='none' d='M340 617a84 241 90 11.01 0zM131 475a94 254 70 10428-124 114 286 70 01-428 124zm0-140a94 254 70 10428-124 114 286 70 01-428 124zm-12-127a94 254 70 00306 38 90 260 90 01-306-38zm221 3a74 241 90 11.01 0z' /%3e %3cpath fill='%23d81b60' d='M131 475a94 254 70 10428-124 114 286 70 01-428 124zm0-140a94 254 70 10428-124 114 286 70 01-428 124z' /%3e %3cpath d='M249 619a94 240 90 00308-128 114 289 70 01-308 128zM119 208a94 254 70 00306 38 90 260 90 01-306-38zm221 3a74 241 90 11.01 0z' /%3e%3c/svg%3e\")",Re=W([[20,20,20,60],[20,20,60,20],[20,60,60,20],[60,20,20,60],[30,30,40,40]],(([e,l,t,n])=>Se+`<rect x='20' y='20' width='60' height='60' fill='grey'/><rect x='${e}' y='${l}' width='${t}' height='${n}' fill='white'/>`+xe)),Oe=Se+"<path d='M20 20l60 60M20 80l60-60' />"+xe,qe=Se+`<path d='${ke}' />`+xe,Pe=Se+`<path d='${ke}M20 20l60 60' />`+xe;var Ne=Object.defineProperty,Me=Object.defineProperties,Le=Object.getOwnPropertyDescriptors,Ee=Object.getOwnPropertySymbols,je=Object.prototype.hasOwnProperty,ze=Object.prototype.propertyIsEnumerable,$e=(e,l,t)=>l in e?Ne(e,l,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[l]=t,Ae=(e,l)=>{for(var t in l||(l={}))je.call(l,t)&&$e(e,t,l[t]);if(Ee)for(var t of Ee(l))ze.call(l,t)&&$e(e,t,l[t]);return e},Je=(e,l)=>Me(e,Le(l));const De="*::-webkit-scrollbar",Fe=((e,l="")=>e.join(l))(ae(Je(Ae(Je(Ae(Je(Ae({"":"all:initial;font-family:sans-serif;font-size:0.75rem;position:fixed;z-index:999999","*":"all:revert","*::before":"all:revert","*::after":"all:revert",[De]:"width:0.5rem;height:0.5rem;",[De+"-track"]:"background:#111",[De+"-thumb"]:"background:#999;border:1px solid #111",[De+"-thumb:hover"]:"background:#fff",[De+"-corner"]:"background:#111",img:"width:1rem;height:1rem;background:#111;border:0;vertical-align:text-bottom",">img":"padding:0.25rem;bottom:0;right:0;position:fixed;"+Ve},ne(W(["bottom:0;left:0","top:0;right:0"],((e,l)=>[`>img[data-position='${l}']`,e])))),{main:"display:flex;flex-direction:column;background:#111d;color:#fff;position:fixed;"}),ne(W(["bottom:0;left:0;width:35vw;height:100vh","top:0;right:0;width:100vw;height:30vh","bottom:0;left:0;width:100vw;height:30vh","top:0;right:0;width:35vw;height:100vh","top:0;right:0;width:100vw;height:100vh"],((e,l)=>[`main[data-position='${l}']`,e])))),{header:"display:flex;padding:0.25rem;background:#000;align-items:center","header>img:nth-of-type(1)":Ve,"header>img:nth-of-type(6)":Oe}),ne(W(Re,((e,l)=>[`header>img[data-id='${l}']`,e])))),{"header>span":"flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-left:0.25rem",article:"padding:0.25rem 0.25rem 0.25rem 0.5rem;overflow:auto;flex:1",details:"margin-left:0.75rem;width:fit-content;","details img":"display:none","details[open]>summary img":"display:unset;background:none;margin-left:0.25rem","details[open]>summary img.edit":qe,"details[open]>summary img.done":Pe,summary:"margin-left:-0.75rem;line-height:1.25rem;user-select:none;width:fit-content",table:"border-collapse:collapse;table-layout:fixed;margin-bottom:0.5rem","table input":"background:#111;color:unset;padding:0 0.25rem;border:0;font-size:unset;vertical-align:top;margin:0",'table input[type="number"]':"width:4rem","table tbody button":"font-size:0;background:#fff;border-radius:50%;margin:0 0.125rem 0 0;width:0.85rem;color:#111","table button:first-letter":"font-size:0.75rem",thead:"background:#222","th:nth-of-type(1)":"min-width:2rem;","th.sorted":"background:#000","table caption":"text-align:left;white-space:nowrap;line-height:1.25rem",button:"width:1.5rem;border:none;background:none;color:#fff;padding:0","button[disabled]":"color:#777","button.next":"margin-right:0.5rem",[`th,#${ce} td`]:"overflow:hidden;text-overflow:ellipsis;padding:0.25rem 0.5rem;max-width:12rem;white-space:nowrap;border-width:1px 0;border-style:solid;border-color:#777;text-align:left","span.warn":"margin:0.25rem;color:#d81b60"}),((e,l)=>e?`#${ce} ${l}{${e}}`:""))),He=({s:e})=>{var l;const n=null!=(l=t.useValue(ve,e))?l:1,s=t.useSetValueCallback(fe,(()=>!0),[],e);return t.useValue(fe,e)?null:$("img",{onClick:s,title:he,"data-position":n})},Be=({uniqueId:e,summary:l,editable:n,handleEditable:s,children:r,s:a})=>{const o=!!t.useCell(be,e,ge,a),i=t.useSetCellCallback(be,e,ge,(e=>e[T].open),[],a);return $("details",{open:o,onToggle:i},$("summary",null,l,s?$("img",{onClick:s,className:n?"done":"edit"}):null),r)},Qe=e=>{const l=n(e);return P(l)||l==o&&R(e)?l:void 0},We=(e,l,t,n,s)=>O(s)?e.delCell(l,t,n,!0):e.setCell(l,t,n,s),Ue=(e,l,t)=>O(t)?e.delValue(l):e.setValue(l,t),Ge=(e,l,t,n)=>e==r?l:e==o?t:n;var Ke=Object.defineProperty,Xe=Object.defineProperties,Ye=Object.getOwnPropertyDescriptors,Ze=Object.getOwnPropertySymbols,_e=Object.prototype.hasOwnProperty,el=Object.prototype.propertyIsEnumerable,ll=(e,l,t)=>l in e?Ke(e,l,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[l]=t,tl=(e,l)=>{for(var t in l||(l={}))_e.call(l,t)&&ll(e,t,l[t]);if(Ze)for(var t of Ze(l))el.call(l,t)&&ll(e,t,l[t]);return e},nl=(e,l)=>Xe(e,Ye(l)),sl=(e,l)=>{var t={};for(var n in e)_e.call(e,n)&&l.indexOf(n)<0&&(t[n]=e[n]);if(null!=e&&Ze)for(var n of Ze(e))l.indexOf(n)<0&&el.call(e,n)&&(t[n]=e[n]);return t};const{useCallback:rl,useMemo:al,useState:ol}=l,il="editable",ul=(e,l)=>W(t.useTableCellIds(e,l),(l=>e+"."+l)),dl=(e,l,t)=>{const n=rl(e,l);return t?n:void 0},cl=(...e)=>al((()=>e),e),hl=(e,l)=>al((()=>({store:e,tableId:l})),[e,l]),ml=(e,l)=>al((()=>({queries:e,queryId:l})),[e,l]),bl=(e,l=!1,t,n=0,s,r,a,o)=>{const[[i,u,d],c]=ol([e,l,n]),h=rl((e=>{c(e),null==o||o(e)}),[o]),m=dl((e=>h([e,e==i&&!u,d])),[h,i,u,d],t),b=rl((e=>h([i,u,e])),[h,i,u]),p=!0===a?Vl:a;return[[i,u,d],m,al((()=>!1===a?null:$(p,{offset:d,limit:s,total:r,onChange:b})),[a,p,d,s,r,b])]},pl=(e,l,t)=>al((()=>{const s=null!=l?l:e;return a=M(s)?ne(W(s,(e=>[e,e]))):s,o=(e,l)=>tl(tl({},{label:l,component:t}),n(e)==r?{label:e}:e),ne(ae(a,((e,l)=>[l,o(e,l)])));var a,o}),[l,t,e]),gl=({className:e,headerRow:l,idColumn:t,params:[n,s,r,a,o,i]})=>$("table",{className:e},i?$("caption",null,i):null,!1===l?null:$("thead",null,$("tr",null,!1===t?null:$(vl,{sort:null!=a?a:[],label:"Id",onClick:o}),ae(n,(({label:e},l)=>$(vl,{key:l,cellId:l,label:e,sort:null!=a?a:[],onClick:o}))))),$("tbody",null,W(r,(e=>$("tr",{key:e},!1===t?null:$("th",null,e),ae(n,(({component:l,getComponentProps:t},n)=>$("td",{key:n},$(l,nl(tl(tl({},H(t,e,n)),s),{rowId:e,cellId:n})))))))))),vl=({cellId:e,sort:[l,t],label:n=(null!=e?e:s),onClick:r})=>$("th",{onClick:dl((()=>null==r?void 0:r(e)),[r,e],r),className:O(t)||l!=e?void 0:`sorted ${t?"de":"a"}scending`},O(t)||l!=e?null:(t?"↓":"↑")+" ",n),fl=({localRowId:e,params:[n,s,r,a,o,i,u]})=>{const d=t.useRemoteRowId(o,e,i);return $("tr",null,!1===n?null:$(l.Fragment,null,$("th",null,e),$("th",null,d)),ae(s,(({component:l,getComponentProps:t},n)=>{const[s,o]=n.split(".",2),i=s===r?e:s===a?d:null;return O(i)?null:$("td",{key:n},$(l,nl(tl({},H(t,i,o)),{store:u,tableId:s,rowId:i,cellId:o})))})))},Il=({thing:e,onThingChange:l,className:t,hasSchema:n,showType:s=!0})=>{const[i,u]=ol(),[d,c]=ol(),[h,m]=ol(),[b,p]=ol(),[g,v]=ol();d!==e&&(u(Qe(e)),c(e),m(e+""),p(Number(e)||0),v(!!e));const f=rl(((e,t)=>{t(e),c(e),l(e)}),[l]),I=rl((()=>{if(!(null==n?void 0:n())){const e=Ge(i,o,a,r),t=Ge(e,h,b,g);u(e),c(t),l(t)}}),[n,l,h,b,g,i]);return $("div",{className:t},s?$("button",{className:i,onClick:I},i):null,Ge(i,$("input",{key:i,value:h,onChange:rl((e=>f(e[T][S]+"",m)),[f])}),$("input",{key:i,type:"number",value:b,onChange:rl((e=>f(Number(e[T][S]||0),p)),[f])}),$("input",{key:i,type:"checkbox",checked:g,onChange:rl((e=>f(!!e[T].checked,v)),[f])})))},yl=e=>{var l=e,{tableId:n,cellId:s,descending:r,offset:a,limit:o,store:i,editable:u,sortOnClick:d,paginator:c=!1,onChange:h,customCells:m}=l,b=sl(l,["tableId","cellId","descending","offset","limit","store","editable","sortOnClick","paginator","onChange","customCells"]);const[p,g,v]=bl(s,r,d,a,o,t.useRowCount(n,i),c,h);return $(gl,nl(tl({},b),{params:cl(pl(t.useTableCellIds(n,i),m,u?Sl:t.CellView),hl(i,n),t.useSortedRowIds(n,...p,o,i),p,g,v)}))},wl=({store:e,editable:l=!1,valueComponent:n=(l?xl:t.ValueView),getValueComponentProps:s,className:r,headerRow:a,idColumn:o})=>$("table",{className:r},!1===a?null:$("thead",null,$("tr",null,!1===o?null:$("th",null,"Id"),$("th",null,w))),$("tbody",null,W(t.useValueIds(e),(l=>$("tr",{key:l},!1===o?null:$("th",null,l),$("td",null,$(n,nl(tl({},H(s,l)),{valueId:l,store:e})))))))),Cl=e=>{var l=e,{indexId:n,sliceId:s,indexes:r,editable:a,customCells:o}=l,i=sl(l,["indexId","sliceId","indexes","editable","customCells"]);const[u,d,c]=((e,l)=>[e,null==e?void 0:e.getStore(),null==e?void 0:e.getTableId(l)])(t.useIndexesOrIndexesById(r),n);return $(gl,nl(tl({},i),{params:cl(pl(t.useTableCellIds(c,d),o,a?Sl:t.CellView),hl(d,c),t.useSliceRowIds(n,s,u))}))},kl=({relationshipId:e,relationships:n,editable:s,customCells:r,className:a,headerRow:o,idColumn:i=!0})=>{const[u,d,c,h]=((e,l)=>[e,null==e?void 0:e.getStore(),null==e?void 0:e.getLocalTableId(l),null==e?void 0:e.getRemoteTableId(l)])(t.useRelationshipsOrRelationshipsById(n),e),m=pl([...ul(c,d),...ul(h,d)],r,s?Sl:t.CellView),b=cl(i,m,c,h,e,u,d);return $("table",{className:a},!1===o?null:$("thead",null,$("tr",null,!1===i?null:$(l.Fragment,null,$("th",null,c,".Id"),$("th",null,h,".Id")),ae(m,(({label:e},l)=>$("th",{key:l},e))))),$("tbody",null,W(t.useRowIds(c,d),(e=>$(fl,{key:e,localRowId:e,params:b})))))},Tl=e=>{var l=e,{queryId:n,cellId:s,descending:r,offset:a,limit:o,queries:i,sortOnClick:u,paginator:d=!1,customCells:c,onChange:h}=l,m=sl(l,["queryId","cellId","descending","offset","limit","queries","sortOnClick","paginator","customCells","onChange"]);const[b,p,g]=bl(s,r,u,a,o,t.useResultRowCount(n,i),d,h);return $(gl,nl(tl({},m),{params:cl(pl(t.useResultTableCellIds(n,i),c,t.ResultCellView),ml(i,n),t.useResultSortedRowIds(n,...b,o,i),b,p,g)}))},Sl=({tableId:e,rowId:l,cellId:n,store:s,className:r,showType:a})=>{var o;return $(Il,{thing:t.useCell(e,l,n,s),onThingChange:t.useSetCellCallback(e,l,n,(e=>e),[],s),className:null!=r?r:il+I,showType:a,hasSchema:null==(o=t.useStoreOrStoreById(s))?void 0:o.hasTablesSchema})},xl=({valueId:e,store:l,className:n,showType:s})=>{var r;return $(Il,{thing:t.useValue(e,l),onThingChange:t.useSetValueCallback(e,(e=>e),[],l),className:null!=n?n:il+w,showType:s,hasSchema:null==(r=t.useStoreOrStoreById(l))?void 0:r.hasValuesSchema})},Vl=({onChange:e,total:t,offset:n=0,limit:s=t,singular:r="row",plural:a=r+"s"})=>{(n>t||n<0)&&(n=0,e(0));const o=dl((()=>e(n-s)),[e,n,s],n>0),i=dl((()=>e(n+s)),[e,n,s],n+s<t);return $(l.Fragment,null,t>s&&$(l.Fragment,null,$("button",{className:"previous",disabled:0==n,onClick:o},"←"),$("button",{className:"next",disabled:n+s>=t,onClick:i},"→"),n+1," to ",Math.min(t,n+s)," of "),t," ",1!=t?a:r)},Rl=({indexes:e,indexesId:l,indexId:n,s:s})=>$(Be,{uniqueId:ye("i",l,n),summary:"Index: "+n,s:s},W(t.useSliceIds(n,e),(t=>$(Ol,{indexes:e,indexesId:l,indexId:n,sliceId:t,s:s,key:t})))),Ol=({indexes:e,indexesId:l,indexId:t,sliceId:n,s:s})=>{const r=ye("i",l,t,n),[a,o]=Ce(r,s);return $(Be,{uniqueId:r,summary:"Slice: "+n,editable:a,handleEditable:o,s:s},$(Cl,{sliceId:n,indexId:t,indexes:e,editable:a}))},ql=({indexesId:e,s:l})=>{const n=t.useIndexes(e),s=t.useIndexIds(n);return O(n)?null:$(Be,{uniqueId:ye("i",e),summary:"Indexes: "+(null!=e?e:d),s:l},U(s)?"No indexes defined":we(s,(t=>$(Rl,{indexes:n,indexesId:e,indexId:t,s:l,key:t}))))},Pl=({metrics:e,metricId:l})=>$("tr",null,$("th",null,l),$("td",null,null==e?void 0:e.getTableId(l)),$("td",null,t.useMetric(l,e))),Nl=({metricsId:e,s:l})=>{const n=t.useMetrics(e),s=t.useMetricIds(n);return O(n)?null:$(Be,{uniqueId:ye("m",e),summary:"Metrics: "+(null!=e?e:d),s:l},U(s)?"No metrics defined":$("table",null,$("thead",null,$("th",null,"Metric Id"),$("th",null,"Table Id"),$("th",null,"Metric")),$("tbody",null,W(s,(e=>$(Pl,{metrics:n,metricId:e,key:e}))))))},Ml=({queries:e,queriesId:l,queryId:n,s:s})=>{var r;const a=ye("q",l,n),[o,i,u]=de(null!=(r=t.useCell(be,a,pe,s))?r:"[]"),d=t.useSetCellCallback(be,a,pe,ue,[],s);return $(Be,{uniqueId:a,summary:"Query: "+n,s:s},$(Tl,{queryId:n,queries:e,cellId:o,descending:i,offset:u,limit:10,paginator:!0,sortOnClick:!0,onChange:d}))},Ll=({queriesId:e,s:l})=>{const n=t.useQueries(e),s=t.useQueryIds(n);return O(n)?null:$(Be,{uniqueId:ye("q",e),summary:"Queries: "+(null!=e?e:d),s:l},U(s)?"No queries defined":we(s,(t=>$(Ml,{queries:n,queriesId:e,queryId:t,s:l,key:t}))))},El=({relationships:e,relationshipsId:l,relationshipId:t,s:n})=>{const s=ye("r",l,t),[r,a]=Ce(s,n);return $(Be,{uniqueId:s,summary:"Relationship: "+t,editable:r,handleEditable:a,s:n},$(kl,{relationshipId:t,relationships:e,editable:r}))},jl=({relationshipsId:e,s:l})=>{const n=t.useRelationships(e),s=t.useRelationshipIds(n);return O(n)?null:$(Be,{uniqueId:ye("r",e),summary:"Relationships: "+(null!=e?e:d),s:l},U(s)?"No relationships defined":we(s,(t=>$(El,{relationships:n,relationshipsId:e,relationshipId:t,s:l,key:t}))))},zl=({tableId:e,store:l,storeId:n,s:s})=>{var r;const a=ye("t",n,e),[o,i,u]=de(null!=(r=t.useCell(be,a,pe,s))?r:"[]"),d=t.useSetCellCallback(be,a,pe,ue,[],s),[c,h]=Ce(a,s);return $(Be,{uniqueId:a,summary:m+": "+e,editable:c,handleEditable:h,s:s},$(yl,{tableId:e,store:l,cellId:o,descending:i,offset:u,limit:10,paginator:!0,sortOnClick:!0,onChange:d,editable:c}))},$l=({store:e,storeId:l,s:n})=>{const s=ye("v",l),[r,a]=Ce(s,n);return U(t.useValueIds(e))?null:$(Be,{uniqueId:s,summary:C,editable:r,handleEditable:a,s:n},$(wl,{store:e,editable:r}))},Al=({storeId:e,s:l})=>{const n=t.useStore(e),s=t.useTableIds(n);return O(n)?null:$(Be,{uniqueId:ye("s",e),summary:"Store: "+(null!=e?e:d),s:l},$($l,{storeId:e,store:n,s:l}),we(s,(t=>$(zl,{store:n,storeId:e,tableId:t,s:l,key:t}))))},Jl=({s:e})=>{const l=D(null),n=D(0),[s,r]=F(!1),{scrollLeft:a,scrollTop:o}=t.useValues(e);J((()=>{const e=l.current;if(e&&!s){const l=new MutationObserver((()=>{e.scrollWidth>=V(a)+e.clientWidth&&e.scrollHeight>=V(o)+e.clientHeight&&e.scrollTo(a,o)}));return l.observe(e,{childList:!0,subtree:!0}),()=>l.disconnect()}}),[s,a,o]);const i=A((l=>{const{scrollLeft:t,scrollTop:s}=l[T];cancelIdleCallback(n.current),n.current=requestIdleCallback((()=>{r(!0),e.setPartialValues({scrollLeft:t,scrollTop:s})}))}),[e]),u=t.useStore(),d=t.useStoreIds(),c=t.useMetrics(),h=t.useMetricsIds(),m=t.useIndexes(),b=t.useIndexesIds(),p=t.useRelationships(),g=t.useRelationshipsIds(),v=t.useQueries(),f=t.useQueriesIds();return O(u)&&U(d)&&O(c)&&U(h)&&O(m)&&U(b)&&O(p)&&U(g)&&O(v)&&U(f)?$("span",{className:"warn"},"There are no Stores or other objects to inspect. Make sure you placed the StoreInspector inside a Provider component."):$("article",{ref:l,onScroll:i},$(Al,{s:e}),W(d,(l=>$(Al,{storeId:l,s:e,key:l}))),$(Nl,{s:e}),W(h,(l=>$(Nl,{metricsId:l,s:e,key:l}))),$(ql,{s:e}),W(b,(l=>$(ql,{indexesId:l,s:e,key:l}))),$(jl,{s:e}),W(g,(l=>$(jl,{relationshipsId:l,s:e,key:l}))),$(Ll,{s:e}),W(f,(l=>$(Ll,{queriesId:l,s:e,key:l}))))};class Dl extends j{constructor(e){super(e),this.componentDidCatch=(e,l)=>console.error(e,l.componentStack),this.state={e:0}}static getDerivedStateFromError(){return{e:1}}render(){return this.state.e?$("span",{className:"warn"},"Inspector error: please see console for details."):this.props.children}}const Fl=({s:e})=>{var l;const n=null!=(l=t.useValue(ve,e))?l:1,s=t.useSetValueCallback(fe,(()=>!1),[],e),r=t.useSetValueCallback(ve,(e=>Number(e[T].dataset.id)),[],e);return $("header",null,$("img",{title:he}),$("span",null,he),W(me,((e,l)=>l==n?null:$("img",{onClick:r,"data-id":l,title:"Dock to "+e,key:l}))),$("img",{onClick:s,title:"Close"}))},Hl=({s:e})=>{var l;const n=null!=(l=t.useValue(ve,e))?l:1;return t.useValue(fe,e)?$("main",{"data-position":n},$(Fl,{s:e}),$(Dl,null,$(Jl,{s:e}))):null},Bl=e=>l=>{return t=(l,t)=>l+e(t),Yl(l).reduce(t,0);var t},Ql=e=>{var l;return null!=(l=null==e?void 0:e.size)?l:0},Wl=Bl(Ql),Ul=Bl(Wl),Gl=Bl(Ul),Kl=(e,l)=>{var t;return null!=(t=null==e?void 0:e.has(l))&&t},Xl=e=>O(e)||0==Ql(e),Yl=e=>{var l;return[...null!=(l=null==e?void 0:e.values())?l:[]]},Zl=e=>e.clear(),_l=(e,l)=>null==e?void 0:e.forEach(l),et=(e,l)=>null==e?void 0:e.delete(l),lt=e=>new Map(e),tt=e=>{var l;return[...null!=(l=null==e?void 0:e.keys())?l:[]]},nt=(e,l)=>null==e?void 0:e.get(l),st=(e,l)=>_l(e,((e,t)=>l(t,e))),rt=(e,l,t)=>O(t)?(et(e,l),e):null==e?void 0:e.set(l,t),at=(e,l,t,n)=>(Kl(e,l)?null==n||n(nt(e,l)):rt(e,l,t()),nt(e,l)),ot=(e,l,t,n=rt)=>(ae(l,((l,n)=>t(e,n,l))),st(e,(t=>se(l,t)?0:n(e,t))),e),it=(e,l,t,n)=>{const s={};return _l(e,((e,r)=>{if(!(null==t?void 0:t(e,r))){const t=l?l(e,r):e;!(null==n?void 0:n(t))&&(s[r]=t)}})),s},ut=(e,l,t)=>it(e,(e=>it(e,l,t)),Xl,oe),dt=(e,l,t)=>it(e,(e=>ut(e,l,t)),Xl,oe),ct=(e,l)=>{const t=lt();return _l(e,((e,n)=>{var s;return t.set(n,null!=(s=null==l?void 0:l(e))?s:e)})),t},ht=e=>ct(e,ct),mt=e=>ct(e,ht),bt=(e,l,t,n,s=0)=>q((t?at:nt)(e,l[s],s>E(l)-2?t:lt),(r=>{if(s>E(l)-2)return(null==n?void 0:n(r))&&rt(e,l[s]),r;const a=bt(r,l,t,n,s+1);return Xl(r)&&rt(e,l[s]),a}));var pt=Object.defineProperty,gt=Object.getOwnPropertySymbols,vt=Object.prototype.hasOwnProperty,ft=Object.prototype.propertyIsEnumerable,It=(e,l,t)=>l in e?pt(e,l,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[l]=t,yt=(e,l,t)=>new Promise(((n,s)=>{var r=e=>{try{o(t.next(e))}catch(e){s(e)}},a=e=>{try{o(t.throw(e))}catch(e){s(e)}},o=e=>e.done?n(e.value):Promise.resolve(e.value).then(r,a);o((t=t.apply(e,l)).next())}));const wt=lt(),Ct=lt();var kt=(e,l,t)=>new Promise(((n,s)=>{var r=e=>{try{o(t.next(e))}catch(e){s(e)}},a=e=>{try{o(t.throw(e))}catch(e){s(e)}},o=e=>e.done?n(e.value):Promise.resolve(e.value).then(r,a);o((t=t.apply(e,l)).next())}));const Tt="storage",St=globalThis.window,xt=e=>new Set(M(e)||O(e)?e:[e]),Vt=(e,l)=>null==e?void 0:e.add(l),Rt=/^\d+$/,Ot=()=>{const e=[];let l=0;return[t=>{var n;return null!=(n=t?K(e):null)?n:s+l++},l=>{Rt.test(l)&&E(e)<1e3&&G(e,l)}]},qt=e=>[e,e],Pt=(e,l=Wl)=>l(e[0])+l(e[1]),Nt=()=>[lt(),lt()],Mt=e=>[...e],Lt=([e,l])=>e===l,Et=(e,l,t)=>rt(e,l,nt(e,l)==-t?void 0:t),jt=()=>{let e,l,t=!1,n=!1,r=0,a=[];const i=lt(),h=lt(),T=lt(),S=lt(),V=lt(),R=lt(),M=lt(),j=lt(),z=lt(),$=lt(),A=lt(),J=lt(),D=lt(),F=lt(),H=xt(),U=lt(),K=lt(),X=lt(),Y=lt(),Z=Nt(),_=Nt(),ee=Nt(),le=Nt(),ne=Nt(),ce=Nt(),he=Nt(),me=Nt(),be=Nt(),pe=Nt(),ge=Nt(),ve=Nt(),fe=Nt(),Ie=Nt(),ye=Nt(),we=Nt(),Ce=Nt(),ke=Nt(),Te=Nt(),Se=Nt(),xe=Nt(),Ve=Nt(),Re=lt(),Oe=Nt(),[qe,Pe,Ne,Me]=(e=>{let l;const[t,n]=Ot(),r=lt();return[(e,n,a,o=[],i=(()=>[]))=>{null!=l||(l=St);const u=t(1);return rt(r,u,[e,n,a,o,i]),Vt(bt(n,null!=a?a:[s],xt),u),u},(e,t,...n)=>Q(((e,l=[s])=>{const t=[],n=(e,s)=>s==E(l)?G(t,e):null===l[s]?_l(e,(e=>n(e,s+1))):Q([l[s],null],(l=>n(nt(e,l),s+1)));return n(e,0),t})(e,t),(e=>_l(e,(e=>nt(r,e)[0](l,...null!=t?t:[],...n))))),e=>q(nt(r,e),(([,l,t])=>(bt(l,null!=t?t:[s],void 0,(l=>(et(l,e),Xl(l)?1:0))),rt(r,e),n(e),t))),e=>q(nt(r,e),(([e,,t=[],n,s])=>{const r=(...a)=>{var o,i;const u=E(a);u==E(t)?e(l,...a,...s(a)):O(t[u])?Q(null!=(i=null==(o=n[u])?void 0:o.call(n,...a))?i:[],(e=>r(...a,e))):r(...a,t[u])};r()}))]})(),Le=e=>{if(!ie(e,((e,l)=>[u,d].includes(l))))return!1;const l=e[u];return!(!P(l)&&l!=o||(Qe(e[d])!=l&&re(e,d),0))},Ee=(l,t)=>(!e||Kl(A,t)||bl(t))&&ie(l,((e,l)=>je(t,l,e)),(()=>bl(t))),je=(e,l,t,n)=>ie(n?t:Je(t,e,l),((n,s)=>q(ze(e,l,s,n),(e=>(t[s]=e,!0)),(()=>!1))),(()=>bl(e,l))),ze=(l,t,n,s)=>e?q(nt(nt(A,l),n),(e=>Qe(s)!=e[u]?bl(l,t,n,s,e[d]):s),(()=>bl(l,t,n,s))):O(Qe(s))?bl(l,t,n,s):s,$e=(e,l)=>ie(l?e:De(e),((l,t)=>q(Ae(t,l),(l=>(e[t]=l,!0)),(()=>!1))),(()=>pl())),Ae=(e,t)=>l?q(nt(D,e),(l=>Qe(t)!=l[u]?pl(e,t,l[d]):t),(()=>pl(e,t))):O(Qe(t))?pl(e,t):t,Je=(e,l,t)=>(q(nt(J,l),(([n,s])=>{_l(n,((l,t)=>{se(e,t)||(e[t]=l)})),_l(s,(n=>{se(e,n)||bl(l,t,n)}))})),e),De=e=>(l&&(_l(F,((l,t)=>{se(e,t)||(e[t]=l)})),_l(H,(l=>{se(e,l)||pl(l)}))),e),Fe=e=>ot(A,e,((e,l,t)=>{const n=lt(),s=xt();ot(at(A,l,lt),t,((e,l,t)=>{rt(e,l,t),q(t[d],(e=>rt(n,l,e)),(()=>Vt(s,l)))})),rt(J,l,[n,s])}),((e,l)=>{rt(A,l),rt(J,l)})),He=e=>ot(D,e,((e,l,t)=>{rt(D,l,t),q(t[d],(e=>rt(F,l,e)),(()=>Vt(H,l)))}),((e,l)=>{rt(D,l),rt(F,l),et(H,l)})),Be=e=>oe(e)?gt():Fl(e),Ge=e=>ot(X,e,((e,l,t)=>Ke(l,t)),((e,l)=>sl(l))),Ke=(e,l)=>ot(at(X,e,(()=>(il(e,1),rt(U,e,Ot()),rt(K,e,lt()),lt()))),l,((l,t,n)=>Xe(e,l,t,n)),((l,t)=>rl(e,l,t))),Xe=(e,l,t,n,s)=>ot(at(l,t,(()=>(ul(e,t,1),lt()))),n,((l,n,s)=>Ye(e,t,l,n,s)),((n,r)=>al(e,l,t,n,r,s))),Ye=(e,l,t,n,s)=>{Kl(t,n)||dl(e,l,n,1);const r=nt(t,n);s!==r&&(cl(e,l,n,r,s),rt(t,n,s))},Ze=(e,l,t,n,s)=>q(nt(l,t),(l=>Ye(e,t,l,n,s)),(()=>Xe(e,l,t,Je({[n]:s},e,t)))),_e=e=>oe(e)?It():Hl(e),el=e=>ot(Y,e,((e,l,t)=>ll(l,t)),((e,l)=>ol(l))),ll=(e,l)=>{Kl(Y,e)||hl(e,1);const t=nt(Y,e);l!==t&&(ml(e,t,l),rt(Y,e,l))},tl=(e,l)=>{const[t]=nt(U,e),n=t(l);return Kl(nt(X,e),n)?tl(e,l):n},nl=e=>{var l;return null!=(l=nt(X,e))?l:Ke(e,{})},sl=e=>Ke(e,{}),rl=(e,l,t)=>{const[,n]=nt(U,e);n(t),Xe(e,l,t,{},!0)},al=(e,l,t,n,s,r)=>{var a;const o=nt(null==(a=nt(J,e))?void 0:a[0],s);if(!O(o)&&!r)return Ye(e,t,n,s,o);const i=l=>{cl(e,t,l,nt(n,l)),dl(e,t,l,-1),rt(n,l)};O(o)?i(s):st(n,i),Xl(n)&&(ul(e,t,-1),Xl(rt(l,t))&&(il(e,-1),rt(X,e),rt(U,e),rt(K,e)))},ol=e=>{const l=nt(F,e);if(!O(l))return ll(e,l);ml(e,nt(Y,e)),hl(e,-1),rt(Y,e)},il=(e,l)=>Et(i,e,l),ul=(e,l,t)=>Et(at(S,e,lt),l,t)&&rt(T,e,at(T,e,(()=>0))+t),dl=(e,l,t,n)=>{var s;const r=nt(K,e),a=null!=(s=nt(r,t))?s:0;(0==a&&1==n||1==a&&-1==n)&&Et(at(h,e,lt),t,n),rt(r,t,a!=-n?a+n:null),Et(at(at(V,e,lt),l,lt),t,n)},cl=(e,l,t,n,s)=>{var r;at(at(at(R,e,lt),l,lt),t,(()=>[n,0]))[1]=s,null==(r=a[3])||r.call(a,e,l,t,s)},hl=(e,l)=>Et(M,e,l),ml=(e,l,t)=>{var n;at(j,e,(()=>[l,0]))[1]=t,null==(n=a[4])||n.call(a,e,t)},bl=(e,l,t,n,s)=>(G(at(at(at(z,e,lt),l,lt),t,(()=>[])),n),s),pl=(e,l,t)=>(G(at($,e,(()=>[])),l),t),gl=(e,l,t)=>q(nt(nt(nt(R,e),l),t),(([e,l])=>[!0,e,l]),(()=>[!1,...qt(Pl(e,l,t))])),vl=e=>q(nt(j,e),(([e,l])=>[!0,e,l]),(()=>[!1,...qt(Ll(e))])),fl=e=>Xl(z)||Xl(we[e])?0:_l(e?mt(z):z,((l,t)=>_l(l,((l,n)=>_l(l,((l,s)=>Pe(we[e],[t,n,s],l))))))),Il=e=>Xl($)||Xl(Ce[e])?0:_l(e?ct($):$,((l,t)=>Pe(Ce[e],[t],l))),yl=(e,l,t,n)=>{if(!Xl(e))return Pe(l,n,(()=>it(e))),st(e,((e,l)=>Pe(t,[...null!=n?n:[],e],1==l))),1},wl=e=>{const l=El();l!=t&&Pe(Z[e],void 0,l);const n=Xl(pe[e]),s=Xl(fe[e])&&Xl(Ie[e])&&Xl(be[e])&&Xl(ge[e])&&Xl(ce[e])&&Xl(he[e])&&Xl(me[e])&&n&&Xl(ee[e])&&Xl(le[e]),r=Xl(ye[e])&&Xl(ve[e])&&Xl(ne[e])&&Xl(_[e]);if(!s||!r){const l=e?[ct(i),ht(h),ct(T),ht(S),mt(V),mt(R)]:[i,h,T,S,V,R];if(!s){yl(l[0],ee[e],le[e]),_l(l[1],((l,t)=>yl(l,ce[e],he[e],[t]))),_l(l[2],((l,t)=>{0!=l&&Pe(me[e],[t],Vl(t))}));const t=xt();_l(l[3],((l,s)=>{yl(l,be[e],ge[e],[s])&&!n&&(Pe(pe[e],[s,null]),Vt(t,s))})),n||_l(l[5],((l,n)=>{if(!Kl(t,n)){const t=xt();_l(l,(e=>_l(e,(([l,n],s)=>n!==l?Vt(t,s):et(e,s))))),_l(t,(l=>Pe(pe[e],[n,l])))}})),_l(l[4],((l,t)=>_l(l,((l,n)=>yl(l,fe[e],Ie[e],[t,n])))))}if(!r){let t;_l(l[5],((l,n)=>{let s;_l(l,((l,r)=>{let a;_l(l,(([l,o],i)=>{o!==l&&(Pe(ye[e],[n,r,i],o,l,gl),t=s=a=1)})),a&&Pe(ve[e],[n,r],gl)})),s&&Pe(ne[e],[n],gl)})),t&&Pe(_[e],void 0,gl)}}},Cl=e=>{const l=Jl();l!=n&&Pe(ke[e],void 0,l);const t=Xl(Se[e])&&Xl(xe[e]),s=Xl(Ve[e])&&Xl(Te[e]);if(!t||!s){const l=e?[ct(M),ct(j)]:[M,j];if(t||yl(l[0],Se[e],xe[e]),!s){let t;_l(l[1],(([l,n],s)=>{n!==l&&(Pe(Ve[e],[s],n,l,vl),t=1)})),t&&Pe(Te[e],void 0,vl)}}},kl=(e,...l)=>(Ct((()=>e(...W(l,x)))),St),Tl=()=>dt(X),Sl=()=>tt(X),xl=e=>tt(nt(K,x(e))),Vl=e=>Ql(nt(X,x(e))),Rl=e=>tt(nt(X,x(e))),Ol=(e,l,t,n=0,s)=>{return W(L(B((r=nt(X,x(e)),a=(e,t)=>[O(l)?t:nt(e,x(l)),t],W([...null!=(o=null==r?void 0:r.entries())?o:[]],(([e,l])=>a(l,e)))),(([e],[l])=>{return((null!=(n=e)?n:0)<(null!=(s=l)?s:0)?-1:1)*(t?-1:1);var n,s})),n,O(s)?s:n+s),(([,e])=>e));var r,a,o},ql=(e,l)=>tt(nt(nt(X,x(e)),x(l))),Pl=(e,l,t)=>nt(nt(nt(X,x(e)),x(l)),x(t)),Nl=()=>it(Y),Ml=()=>tt(Y),Ll=e=>nt(Y,x(e)),El=()=>!Xl(X),jl=e=>Kl(X,x(e)),zl=(e,l)=>Kl(nt(K,x(e)),x(l)),$l=(e,l)=>Kl(nt(X,x(e)),x(l)),Al=(e,l,t)=>Kl(nt(nt(X,x(e)),x(l)),x(t)),Jl=()=>!Xl(Y),Dl=e=>Kl(Y,x(e)),Fl=e=>kl((()=>(e=>ie(e,Ee,bl))(e)?Ge(e):0)),Hl=e=>kl((()=>$e(e)?el(e):0)),Bl=e=>{try{Be(de(e))}catch(e){}return St},Yl=l=>kl((()=>{if((e=ie(l,(e=>ie(e,Le))))&&(Fe(l),!Xl(X))){const e=Tl();gt(),Fl(e)}})),pt=e=>kl((()=>{if(l=(e=>ie(e,Le))(e)){const t=Nl();wt(),It(),l=!0,He(e),Hl(t)}})),gt=()=>kl((()=>Ge({}))),vt=e=>kl((e=>Kl(X,e)?sl(e):0),e),ft=(e,l)=>kl(((e,l)=>q(nt(X,e),(t=>Kl(t,l)?rl(e,t,l):0))),e,l),It=()=>kl((()=>el({}))),yt=()=>kl((()=>{Fe({}),e=!1})),wt=()=>kl((()=>{He({}),l=!1})),Ct=(e,l)=>{if(-1!=r){kt();const t=e();return Tt(l),t}},kt=()=>{var e;return-1!=r&&r++,1==r&&(null==(e=a[0])||e.call(a),Pe(Re,void 0)),St},Tt=e=>{var l,s;return r>0&&(r--,0==r&&(r=1,fl(1),Xl(R)||wl(1),Il(1),Xl(j)||Cl(1),(null==e?void 0:e(St))&&(_l(R,((e,l)=>_l(e,((e,t)=>_l(e,(([e],n)=>We(St,l,t,n,e))))))),Zl(R),_l(j,(([e],l)=>Ue(St,l,e))),Zl(j)),Pe(Oe[0],void 0),r=-1,fl(0),Xl(R)||wl(0),Il(0),Xl(j)||Cl(0),null==(l=a[1])||l.call(a),Pe(Oe[1],void 0),null==(s=a[2])||s.call(a),r=0,t=El(),n=Jl(),Q([i,h,T,S,V,R,z,M,j,$],Zl))),St},St={getContent:()=>[Tl(),Nl()],getTables:Tl,getTableIds:Sl,getTable:e=>ut(nt(X,x(e))),getTableCellIds:xl,getRowCount:Vl,getRowIds:Rl,getSortedRowIds:Ol,getRow:(e,l)=>it(nt(nt(X,x(e)),x(l))),getCellIds:ql,getCell:Pl,getValues:Nl,getValueIds:Ml,getValue:Ll,hasTables:El,hasTable:jl,hasTableCell:zl,hasRow:$l,hasCell:Al,hasValues:Jl,hasValue:Dl,getTablesJson:()=>ue(X),getValuesJson:()=>ue(Y),getJson:()=>ue([X,Y]),getTablesSchemaJson:()=>ue(A),getValuesSchemaJson:()=>ue(D),getSchemaJson:()=>ue([A,D]),hasTablesSchema:()=>e,hasValuesSchema:()=>l,setContent:([e,l])=>kl((()=>{(oe(e)?gt:Fl)(e),(oe(l)?It:Hl)(l)})),setTables:Fl,setTable:(e,l)=>kl((e=>Ee(l,e)?Ke(e,l):0),e),setRow:(e,l,t)=>kl(((e,l)=>je(e,l,t)?Xe(e,nl(e),l,t):0),e,l),addRow:(e,l,t=!0)=>Ct((()=>{let n;return je(e,n,l)&&(e=x(e),Xe(e,nl(e),n=tl(e,t?1:0),l)),n})),setPartialRow:(e,l,t)=>kl(((e,l)=>{if(je(e,l,t,1)){const n=nl(e);ae(t,((t,s)=>Ze(e,n,l,s,t)))}}),e,l),setCell:(e,l,t,n)=>kl(((e,l,t)=>q(ze(e,l,t,N(n)?n(Pl(e,l,t)):n),(n=>Ze(e,nl(e),l,t,n)))),e,l,t),setValues:Hl,setPartialValues:e=>kl((()=>$e(e,1)?ae(e,((e,l)=>ll(l,e))):0)),setValue:(e,l)=>kl((e=>q(Ae(e,N(l)?l(Ll(e)):l),(l=>ll(e,l)))),e),applyChanges:e=>kl((()=>{ae(e[0],((e,l)=>O(e)?vt(l):ae(e,((e,t)=>O(e)?ft(l,t):ae(e,((e,n)=>We(St,l,t,n,e))))))),ae(e[1],((e,l)=>Ue(St,l,e)))})),setTablesJson:Bl,setValuesJson:e=>{try{_e(de(e))}catch(e){}return St},setJson:e=>kl((()=>{try{const[l,t]=de(e);Be(l),_e(t)}catch(l){Bl(e)}})),setTablesSchema:Yl,setValuesSchema:pt,setSchema:(e,l)=>kl((()=>{Yl(e),pt(l)})),delTables:gt,delTable:vt,delRow:ft,delCell:(e,l,t,n)=>kl(((e,l,t)=>q(nt(X,e),(s=>q(nt(s,l),(r=>Kl(r,t)?al(e,s,l,r,t,n):0))))),e,l,t),delValues:It,delValue:e=>kl((e=>Kl(Y,e)?ol(e):0),e),delTablesSchema:yt,delValuesSchema:wt,delSchema:()=>kl((()=>{yt(),wt()})),transaction:Ct,startTransaction:kt,getTransactionChanges:()=>[it(R,((e,l)=>-1===nt(i,l)?void 0:it(e,((e,t)=>-1===nt(nt(S,l),t)?void 0:it(e,(([,e])=>e),(e=>Lt(e)))),Xl,oe)),Xl,oe),it(j,(([,e])=>e),(e=>Lt(e))),1],getTransactionLog:()=>[!Xl(R),!Xl(j),dt(R,Mt,Lt),dt(z),it(j,Mt,Lt),it($),it(i),ut(S),dt(V),it(M)],finishTransaction:Tt,forEachTable:e=>_l(X,((l,t)=>e(t,(e=>_l(l,((l,t)=>e(t,(e=>st(l,e))))))))),forEachTableCell:(e,l)=>st(nt(K,x(e)),l),forEachRow:(e,l)=>_l(nt(X,x(e)),((e,t)=>l(t,(l=>st(e,l))))),forEachCell:(e,l,t)=>st(nt(nt(X,x(e)),x(l)),t),forEachValue:e=>st(Y,e),addSortedRowIdsListener:(e,l,t,n,s,r,a)=>{let o=Ol(e,l,t,n,s);return qe((()=>{const a=Ol(e,l,t,n,s);var i,u,d;u=o,E(i=a)===E(u)&&(d=(e,l)=>u[l]===e,i.every(d))||(o=a,r(St,e,l,t,n,s,o))}),pe[a?1:0],[e,l],[Sl])},addStartTransactionListener:e=>qe(e,Re),addWillFinishTransactionListener:e=>qe(e,Oe[0]),addDidFinishTransactionListener:e=>qe(e,Oe[1]),callListener:e=>(Me(e),St),delListener:e=>(Ne(e),St),getListenerStats:()=>({hasTables:Pt(Z),tables:Pt(_),tableIds:Pt(ee),hasTable:Pt(le),table:Pt(ne),tableCellIds:Pt(ce),hasTableCell:Pt(he,Ul),rowCount:Pt(me),rowIds:Pt(be),sortedRowIds:Pt(pe),hasRow:Pt(ge,Ul),row:Pt(ve,Ul),cellIds:Pt(fe,Ul),hasCell:Pt(Ie,Gl),cell:Pt(ye,Gl),invalidCell:Pt(we,Gl),hasValues:Pt(ke),values:Pt(Te),valueIds:Pt(Se),hasValue:Pt(xe),value:Pt(Ve),invalidValue:Pt(Ce),transaction:Wl(Re)+Pt(Oe)}),createStore:jt,addListener:qe,callListeners:Pe,setInternalListeners:(e,l,t,n,s)=>a=[e,l,t,n,s]};return ae({[c+b]:[0,Z,[],()=>[El()]],[b]:[0,_],[p]:[0,ee],[c+m]:[1,le,[Sl],e=>[jl(...e)]],[m]:[1,ne,[Sl]],[m+y]:[1,ce,[Sl]],[c+m+I]:[2,he,[Sl,xl],e=>[zl(...e)]],[v]:[1,me,[Sl]],[f]:[1,be,[Sl]],[c+g]:[2,ge,[Sl,Rl],e=>[$l(...e)]],[g]:[2,ve,[Sl,Rl]],[y]:[2,fe,[Sl,Rl]],[c+I]:[3,Ie,[Sl,Rl,ql],e=>[Al(...e)]],[I]:[3,ye,[Sl,Rl,ql],e=>qt(Pl(...e))],InvalidCell:[3,we],[c+C]:[0,ke,[],()=>[Jl()]],[C]:[0,Te],[k]:[0,Se],[c+w]:[1,xe,[Ml],e=>[Dl(...e)]],[w]:[1,Ve,[Ml],e=>qt(Ll(e[0]))],InvalidValue:[1,Ce]},(([e,l,t,n],s)=>{St["add"+s+"Listener"]=(...s)=>qe(s[e],l[s[e+1]?1:0],e>0?L(s,0,e):void 0,t,n)})),te(St)},zt=({position:e="right",open:l=!1})=>{const n=t.useCreateStore(jt),s=me.indexOf(e);return t.useCreatePersister(n,(e=>{return l=ce,t=sessionStorage,((e,l,t,n,s,r,a,o={},i=[])=>{let u,d,c,h=0,m=0,b=0;at(wt,i,(()=>0)),at(Ct,i,(()=>[]));const[p,g,v,f,I]=((e,l)=>!e||O(l.getMergeableContent)?[0,l.getContent,l.getTransactionChanges,([e,l])=>!oe(e)||!oe(l),l.setContent]:[1,l.getMergeableContent,l.getTransactionMergeableChanges,([[e],[l]])=>!oe(e)||!oe(l),l.setDefaultContent])(a,e),y=e=>yt(void 0,null,(function*(){return 2!=h&&(h=1,m++,yield C.schedule((()=>yt(void 0,null,(function*(){yield e(),h=0}))))),C})),w=l=>{(p&&M(null==l?void 0:l[0])?1===(null==l?void 0:l[2])?e.applyMergeableChanges:e.setMergeableContent:1===(null==l?void 0:l[2])?e.applyChanges:e.setContent)(l)},C=((e,l)=>{for(var t in l||(l={}))vt.call(l,t)&&It(e,t,l[t]);if(gt)for(var t of gt(l))ft.call(l,t)&&It(e,t,l[t]);return e})({load:e=>yt(void 0,null,(function*(){return yield y((()=>yt(void 0,null,(function*(){try{w(yield l())}catch(l){null==r||r(l),e&&I(e)}}))))})),startAutoLoad:e=>yt(void 0,null,(function*(){return yield C.stopAutoLoad().load(e),d=n(((e,t)=>yt(void 0,null,(function*(){const n=null==t?void 0:t();yield y((()=>yt(void 0,null,(function*(){var t;try{w(null!=(t=null!=n?n:null==e?void 0:e())?t:yield l())}catch(e){null==r||r(e)}}))))})))),C})),stopAutoLoad:()=>(d&&(s(d),d=void 0),C),isAutoLoading:()=>!O(d),save:e=>yt(void 0,null,(function*(){return 1!=h&&(h=2,b++,yield C.schedule((()=>yt(void 0,null,(function*(){try{yield t(g,e)}catch(e){null==r||r(e)}h=0}))))),C})),startAutoSave:()=>yt(void 0,null,(function*(){return yield C.stopAutoSave().save(),c=e.addDidFinishTransactionListener((()=>{const e=v();f(e)&&C.save((()=>e))})),C})),stopAutoSave:()=>(q(c,e.delListener),c=void 0,C),isAutoSaving:()=>!O(c),schedule:(...e)=>yt(void 0,null,(function*(){return G(nt(Ct,i),...e),yield yt(void 0,null,(function*(){if(!nt(wt,i)){for(rt(wt,i,1);!O(u=K(nt(Ct,i)));)try{yield u()}catch(e){null==r||r(e)}rt(wt,i,0)}})),C})),getStore:()=>e,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({loads:m,saves:b})},o);return te(C)})(e,(()=>kt(void 0,null,(function*(){return e=t.getItem(l),JSON.parse(e,((e,l)=>""===l?void 0:l));var e}))),(e=>kt(void 0,null,(function*(){return t.setItem(l,(n=e(),JSON.stringify(n,((e,l)=>void 0===l?"":l))));var n}))),(e=>{const n=n=>{n.storageArea===t&&n.key===l&&e((()=>de(n.newValue)))};return St.addEventListener(Tt,n),n}),(e=>St.removeEventListener(Tt,e)),void 0,!0,{getStorageName:()=>l});var l,t}),void 0,(e=>{return t=function*(){yield e.load([{},{position:-1==s?1:s,open:!!l}]),yield e.startAutoSave()},new Promise(((e,l)=>{var n=e=>{try{r(t.next(e))}catch(e){l(e)}},s=e=>{try{r(t.throw(e))}catch(e){l(e)}},r=l=>l.done?e(l.value):Promise.resolve(l.value).then(n,s);r((t=t.apply(void 0,null)).next())}));var t})),$(z,null,$("aside",{id:ce},$(He,{s:n}),$(Hl,{s:n})),$("style",null,Fe))};var $t=Object.defineProperty,At=Object.getOwnPropertySymbols,Jt=Object.prototype.hasOwnProperty,Dt=Object.prototype.propertyIsEnumerable,Ft=(e,l,t)=>l in e?$t(e,l,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[l]=t;e.EditableCellView=Sl,e.EditableValueView=xl,e.RelationshipInHtmlTable=kl,e.ResultSortedTableInHtmlTable=Tl,e.ResultTableInHtmlTable=e=>{var l=e,{queryId:n,queries:s,customCells:r}=l,a=sl(l,["queryId","queries","customCells"]);return $(gl,nl(tl({},a),{params:cl(pl(t.useResultTableCellIds(n,s),r,t.ResultCellView),ml(s,n),t.useResultRowIds(n,s))}))},e.SliceInHtmlTable=Cl,e.SortedTableInHtmlTable=yl,e.SortedTablePaginator=Vl,e.StoreInspector=e=>$(zt,((e,l)=>{for(var t in l||(l={}))Jt.call(l,t)&&Ft(e,t,l[t]);if(At)for(var t of At(l))Dt.call(l,t)&&Ft(e,t,l[t]);return e})({},e)),e.TableInHtmlTable=e=>{var l=e,{tableId:n,store:s,editable:r,customCells:a}=l,o=sl(l,["tableId","store","editable","customCells"]);return $(gl,nl(tl({},o),{params:cl(pl(t.useTableCellIds(n,s),a,r?Sl:t.CellView),hl(s,n),t.useRowIds(n,s))}))},e.ValuesInHtmlTable=wl},"object"==typeof exports&&"undefined"!=typeof module?l(exports,require("react"),require("./ui-react")):"function"==typeof define&&define.amd?define(["exports","react","./ui-react"],l):l((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseUiReactDomDebug={},e.React,e.TinyBaseUiReact);
1
+ var e,t;e=this,t=function(e,t,l){"use strict";const n=e=>typeof e,s="",r=n(s),a=n(!0),o=n(0),i=n(n),u="type",d="default",c="Has",h="Ids",m="Table",b=m+"s",p=m+h,g="Row",v=g+"Count",f=g+h,I="Cell",y=I+h,w="Value",C=w+"s",k=w+h,T="currentTarget",S="value",x=e=>s+e,V=Math.floor,R=isFinite,O=e=>null==e,q=(e,t,l)=>O(e)?null==l?void 0:l():t(e),P=e=>e==r||e==a,N=e=>n(e)==i,M=e=>Array.isArray(e),E=(e,t,l)=>e.slice(t,l),L=e=>e.length,{PureComponent:j,Fragment:z,createElement:$,useCallback:J,useLayoutEffect:A,useRef:D,useState:F}=t,H=(e,...t)=>O(e)?{}:e(...t),B=(e,t)=>e.sort(t),Q=(e,t)=>e.forEach(t),W=(e,t)=>e.map(t),U=e=>0==L(e),G=(e,...t)=>e.push(...t),K=e=>e.shift(),X=Object,Y=e=>X.getPrototypeOf(e),Z=X.entries,_=X.isFrozen,ee=e=>!O(e)&&q(Y(e),(e=>e==X.prototype||O(Y(e))),(()=>!0)),te=X.keys,le=X.freeze,ne=(e=[])=>X.fromEntries(e),se=(e,t)=>t in e,re=(e,t)=>(delete e[t],e),ae=(e,t)=>W(Z(e),(([e,l])=>t(l,e))),oe=e=>ee(e)&&0==(e=>L(te(e)))(e),ie=(e,t,l,n=0)=>O(e)||!ee(e)||!n&&oe(e)||_(e)?(null==l||l(),!1):(ae(e,((l,n)=>{t(l,n)||re(e,n)})),!!n||!oe(e)),ue=e=>JSON.stringify(e,((e,t)=>t instanceof Map?X.fromEntries([...t]):t)),de=JSON.parse,ce="tinybaseStoreInspector",he="TinyBase Store Inspector",me=["left","top","bottom","right","full"],be="state",pe="sort",ge="open",ve="position",fe=ge,Ie="editable",ye=(...e)=>ue(e),we=(e,t)=>W(B(e),t),Ce=(e,t)=>[!!l.useCell(be,e,Ie,t),J((l=>{t.setCell(be,e,Ie,(e=>!e)),l.preventDefault()}),[t,e])],ke="M20 80l5-15l40-40l10 10l-40 40l-15 5m5-15l10 10",Te='content:url("',Se=Te+"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' stroke-width='4' stroke='white' fill='none'>",xe='</svg>")',Ve=Te+"data:image/svg+xml,%3csvg viewBox='0 0 680 680' xmlns='http://www.w3.org/2000/svg' style='width:680px%3bheight:680px'%3e %3cpath stroke='white' stroke-width='80' fill='none' d='M340 617a84 241 90 11.01 0zM131 475a94 254 70 10428-124 114 286 70 01-428 124zm0-140a94 254 70 10428-124 114 286 70 01-428 124zm-12-127a94 254 70 00306 38 90 260 90 01-306-38zm221 3a74 241 90 11.01 0z' /%3e %3cpath fill='%23d81b60' d='M131 475a94 254 70 10428-124 114 286 70 01-428 124zm0-140a94 254 70 10428-124 114 286 70 01-428 124z' /%3e %3cpath d='M249 619a94 240 90 00308-128 114 289 70 01-308 128zM119 208a94 254 70 00306 38 90 260 90 01-306-38zm221 3a74 241 90 11.01 0z' /%3e%3c/svg%3e\")",Re=W([[20,20,20,60],[20,20,60,20],[20,60,60,20],[60,20,20,60],[30,30,40,40]],(([e,t,l,n])=>Se+`<rect x='20' y='20' width='60' height='60' fill='grey'/><rect x='${e}' y='${t}' width='${l}' height='${n}' fill='white'/>`+xe)),Oe=Se+"<path d='M20 20l60 60M20 80l60-60' />"+xe,qe=Se+`<path d='${ke}' />`+xe,Pe=Se+`<path d='${ke}M20 20l60 60' />`+xe;var Ne=Object.defineProperty,Me=Object.defineProperties,Ee=Object.getOwnPropertyDescriptors,Le=Object.getOwnPropertySymbols,je=Object.prototype.hasOwnProperty,ze=Object.prototype.propertyIsEnumerable,$e=(e,t,l)=>t in e?Ne(e,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[t]=l,Je=(e,t)=>{for(var l in t||(t={}))je.call(t,l)&&$e(e,l,t[l]);if(Le)for(var l of Le(t))ze.call(t,l)&&$e(e,l,t[l]);return e},Ae=(e,t)=>Me(e,Ee(t));const De="*::-webkit-scrollbar",Fe=((e,t="")=>e.join(t))(ae(Ae(Je(Ae(Je(Ae(Je({"":"all:initial;font-family:sans-serif;font-size:0.75rem;position:fixed;z-index:999999","*":"all:revert","*::before":"all:revert","*::after":"all:revert",[De]:"width:0.5rem;height:0.5rem;",[De+"-track"]:"background:#111",[De+"-thumb"]:"background:#999;border:1px solid #111",[De+"-thumb:hover"]:"background:#fff",[De+"-corner"]:"background:#111",img:"width:1rem;height:1rem;background:#111;border:0;vertical-align:text-bottom",">img":"padding:0.25rem;bottom:0;right:0;position:fixed;"+Ve},ne(W(["bottom:0;left:0","top:0;right:0"],((e,t)=>[`>img[data-position='${t}']`,e])))),{main:"display:flex;flex-direction:column;background:#111d;color:#fff;position:fixed;"}),ne(W(["bottom:0;left:0;width:35vw;height:100vh","top:0;right:0;width:100vw;height:30vh","bottom:0;left:0;width:100vw;height:30vh","top:0;right:0;width:35vw;height:100vh","top:0;right:0;width:100vw;height:100vh"],((e,t)=>[`main[data-position='${t}']`,e])))),{header:"display:flex;padding:0.25rem;background:#000;align-items:center","header>img:nth-of-type(1)":Ve,"header>img:nth-of-type(6)":Oe}),ne(W(Re,((e,t)=>[`header>img[data-id='${t}']`,e])))),{"header>span":"flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-left:0.25rem",article:"padding:0.25rem 0.25rem 0.25rem 0.5rem;overflow:auto;flex:1",details:"margin-left:0.75rem;width:fit-content;","details img":"display:none","details[open]>summary img":"display:unset;background:none;margin-left:0.25rem","details[open]>summary img.edit":qe,"details[open]>summary img.done":Pe,summary:"margin-left:-0.75rem;line-height:1.25rem;user-select:none;width:fit-content",table:"border-collapse:collapse;table-layout:fixed;margin-bottom:0.5rem","table input":"background:#111;color:unset;padding:0 0.25rem;border:0;font-size:unset;vertical-align:top;margin:0",'table input[type="number"]':"width:4rem","table tbody button":"font-size:0;background:#fff;border-radius:50%;margin:0 0.125rem 0 0;width:0.85rem;color:#111","table button:first-letter":"font-size:0.75rem",thead:"background:#222","th:nth-of-type(1)":"min-width:2rem;","th.sorted":"background:#000","table caption":"text-align:left;white-space:nowrap;line-height:1.25rem",button:"width:1.5rem;border:none;background:none;color:#fff;padding:0","button[disabled]":"color:#777","button.next":"margin-right:0.5rem",[`th,#${ce} td`]:"overflow:hidden;text-overflow:ellipsis;padding:0.25rem 0.5rem;max-width:12rem;white-space:nowrap;border-width:1px 0;border-style:solid;border-color:#777;text-align:left","span.warn":"margin:0.25rem;color:#d81b60"}),((e,t)=>e?`#${ce} ${t}{${e}}`:""))),He=({s:e})=>{var t;const n=null!=(t=l.useValue(ve,e))?t:1,s=l.useSetValueCallback(fe,(()=>!0),[],e);return l.useValue(fe,e)?null:$("img",{onClick:s,title:he,"data-position":n})},Be=({uniqueId:e,summary:t,editable:n,handleEditable:s,children:r,s:a})=>{const o=!!l.useCell(be,e,ge,a),i=l.useSetCellCallback(be,e,ge,(e=>e[T].open),[],a);return $("details",{open:o,onToggle:i},$("summary",null,t,s?$("img",{onClick:s,className:n?"done":"edit"}):null),r)},Qe=e=>{const t=n(e);return P(t)||t==o&&R(e)?t:void 0},We=(e,t,l,n,s)=>O(s)?e.delCell(t,l,n,!0):e.setCell(t,l,n,s),Ue=(e,t,l)=>O(l)?e.delValue(t):e.setValue(t,l),Ge=(e,t,l,n)=>e==r?t:e==o?l:n;var Ke=Object.defineProperty,Xe=Object.defineProperties,Ye=Object.getOwnPropertyDescriptors,Ze=Object.getOwnPropertySymbols,_e=Object.prototype.hasOwnProperty,et=Object.prototype.propertyIsEnumerable,tt=(e,t,l)=>t in e?Ke(e,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[t]=l,lt=(e,t)=>{for(var l in t||(t={}))_e.call(t,l)&&tt(e,l,t[l]);if(Ze)for(var l of Ze(t))et.call(t,l)&&tt(e,l,t[l]);return e},nt=(e,t)=>Xe(e,Ye(t)),st=(e,t)=>{var l={};for(var n in e)_e.call(e,n)&&t.indexOf(n)<0&&(l[n]=e[n]);if(null!=e&&Ze)for(var n of Ze(e))t.indexOf(n)<0&&et.call(e,n)&&(l[n]=e[n]);return l};const{useCallback:rt,useMemo:at,useState:ot}=t,it="editable",ut=(e,t)=>W(l.useTableCellIds(e,t),(t=>e+"."+t)),dt=(e,t,l)=>{const n=rt(e,t);return l?n:void 0},ct=(...e)=>at((()=>e),e),ht=(e,t)=>at((()=>({store:e,tableId:t})),[e,t]),mt=(e,t)=>at((()=>({queries:e,queryId:t})),[e,t]),bt=(e,t=!1,l,n=0,s,r,a,o)=>{const[[i,u,d],c]=ot([e,t,n]),h=rt((e=>{c(e),null==o||o(e)}),[o]),m=dt((e=>h([e,e==i&&!u,d])),[h,i,u,d],l),b=rt((e=>h([i,u,e])),[h,i,u]),p=!0===a?Vt:a;return[[i,u,d],m,at((()=>!1===a?null:$(p,{offset:d,limit:s,total:r,onChange:b})),[a,p,d,s,r,b])]},pt=(e,t,l)=>at((()=>{const s=null!=t?t:e;return a=M(s)?ne(W(s,(e=>[e,e]))):s,o=(e,t)=>lt(lt({},{label:t,component:l}),n(e)==r?{label:e}:e),ne(ae(a,((e,t)=>[t,o(e,t)])));var a,o}),[t,l,e]),gt=({className:e,headerRow:t,idColumn:l,params:[n,s,r,a,o,i]})=>$("table",{className:e},i?$("caption",null,i):null,!1===t?null:$("thead",null,$("tr",null,!1===l?null:$(vt,{sort:null!=a?a:[],label:"Id",onClick:o}),ae(n,(({label:e},t)=>$(vt,{key:t,cellId:t,label:e,sort:null!=a?a:[],onClick:o}))))),$("tbody",null,W(r,(e=>$("tr",{key:e},!1===l?null:$("th",null,e),ae(n,(({component:t,getComponentProps:l},n)=>$("td",{key:n},$(t,nt(lt(lt({},H(l,e,n)),s),{rowId:e,cellId:n})))))))))),vt=({cellId:e,sort:[t,l],label:n=(null!=e?e:s),onClick:r})=>$("th",{onClick:dt((()=>null==r?void 0:r(e)),[r,e],r),className:O(l)||t!=e?void 0:`sorted ${l?"de":"a"}scending`},O(l)||t!=e?null:(l?"↓":"↑")+" ",n),ft=({localRowId:e,params:[n,s,r,a,o,i,u]})=>{const d=l.useRemoteRowId(o,e,i);return $("tr",null,!1===n?null:$(t.Fragment,null,$("th",null,e),$("th",null,d)),ae(s,(({component:t,getComponentProps:l},n)=>{const[s,o]=n.split(".",2),i=s===r?e:s===a?d:null;return O(i)?null:$("td",{key:n},$(t,nt(lt({},H(l,i,o)),{store:u,tableId:s,rowId:i,cellId:o})))})))},It=({thing:e,onThingChange:t,className:l,hasSchema:n,showType:s=!0})=>{const[i,u]=ot(),[d,c]=ot(),[h,m]=ot(),[b,p]=ot(),[g,v]=ot();d!==e&&(u(Qe(e)),c(e),m(e+""),p(Number(e)||0),v(!!e));const f=rt(((e,l)=>{l(e),c(e),t(e)}),[t]),I=rt((()=>{if(!(null==n?void 0:n())){const e=Ge(i,o,a,r),l=Ge(e,h,b,g);u(e),c(l),t(l)}}),[n,t,h,b,g,i]);return $("div",{className:l},s?$("button",{className:i,onClick:I},i):null,Ge(i,$("input",{key:i,value:h,onChange:rt((e=>f(e[T][S]+"",m)),[f])}),$("input",{key:i,type:"number",value:b,onChange:rt((e=>f(Number(e[T][S]||0),p)),[f])}),$("input",{key:i,type:"checkbox",checked:g,onChange:rt((e=>f(!!e[T].checked,v)),[f])})))},yt=e=>{var t=e,{tableId:n,cellId:s,descending:r,offset:a,limit:o,store:i,editable:u,sortOnClick:d,paginator:c=!1,onChange:h,customCells:m}=t,b=st(t,["tableId","cellId","descending","offset","limit","store","editable","sortOnClick","paginator","onChange","customCells"]);const[p,g,v]=bt(s,r,d,a,o,l.useRowCount(n,i),c,h);return $(gt,nt(lt({},b),{params:ct(pt(l.useTableCellIds(n,i),m,u?St:l.CellView),ht(i,n),l.useSortedRowIds(n,...p,o,i),p,g,v)}))},wt=({store:e,editable:t=!1,valueComponent:n=(t?xt:l.ValueView),getValueComponentProps:s,className:r,headerRow:a,idColumn:o})=>$("table",{className:r},!1===a?null:$("thead",null,$("tr",null,!1===o?null:$("th",null,"Id"),$("th",null,w))),$("tbody",null,W(l.useValueIds(e),(t=>$("tr",{key:t},!1===o?null:$("th",null,t),$("td",null,$(n,nt(lt({},H(s,t)),{valueId:t,store:e})))))))),Ct=e=>{var t=e,{indexId:n,sliceId:s,indexes:r,editable:a,customCells:o}=t,i=st(t,["indexId","sliceId","indexes","editable","customCells"]);const[u,d,c]=((e,t)=>[e,null==e?void 0:e.getStore(),null==e?void 0:e.getTableId(t)])(l.useIndexesOrIndexesById(r),n);return $(gt,nt(lt({},i),{params:ct(pt(l.useTableCellIds(c,d),o,a?St:l.CellView),ht(d,c),l.useSliceRowIds(n,s,u))}))},kt=({relationshipId:e,relationships:n,editable:s,customCells:r,className:a,headerRow:o,idColumn:i=!0})=>{const[u,d,c,h]=((e,t)=>[e,null==e?void 0:e.getStore(),null==e?void 0:e.getLocalTableId(t),null==e?void 0:e.getRemoteTableId(t)])(l.useRelationshipsOrRelationshipsById(n),e),m=pt([...ut(c,d),...ut(h,d)],r,s?St:l.CellView),b=ct(i,m,c,h,e,u,d);return $("table",{className:a},!1===o?null:$("thead",null,$("tr",null,!1===i?null:$(t.Fragment,null,$("th",null,c,".Id"),$("th",null,h,".Id")),ae(m,(({label:e},t)=>$("th",{key:t},e))))),$("tbody",null,W(l.useRowIds(c,d),(e=>$(ft,{key:e,localRowId:e,params:b})))))},Tt=e=>{var t=e,{queryId:n,cellId:s,descending:r,offset:a,limit:o,queries:i,sortOnClick:u,paginator:d=!1,customCells:c,onChange:h}=t,m=st(t,["queryId","cellId","descending","offset","limit","queries","sortOnClick","paginator","customCells","onChange"]);const[b,p,g]=bt(s,r,u,a,o,l.useResultRowCount(n,i),d,h);return $(gt,nt(lt({},m),{params:ct(pt(l.useResultTableCellIds(n,i),c,l.ResultCellView),mt(i,n),l.useResultSortedRowIds(n,...b,o,i),b,p,g)}))},St=({tableId:e,rowId:t,cellId:n,store:s,className:r,showType:a})=>{var o;return $(It,{thing:l.useCell(e,t,n,s),onThingChange:l.useSetCellCallback(e,t,n,(e=>e),[],s),className:null!=r?r:it+I,showType:a,hasSchema:null==(o=l.useStoreOrStoreById(s))?void 0:o.hasTablesSchema})},xt=({valueId:e,store:t,className:n,showType:s})=>{var r;return $(It,{thing:l.useValue(e,t),onThingChange:l.useSetValueCallback(e,(e=>e),[],t),className:null!=n?n:it+w,showType:s,hasSchema:null==(r=l.useStoreOrStoreById(t))?void 0:r.hasValuesSchema})},Vt=({onChange:e,total:l,offset:n=0,limit:s=l,singular:r="row",plural:a=r+"s"})=>{(n>l||n<0)&&(n=0,e(0));const o=dt((()=>e(n-s)),[e,n,s],n>0),i=dt((()=>e(n+s)),[e,n,s],n+s<l);return $(t.Fragment,null,l>s&&$(t.Fragment,null,$("button",{className:"previous",disabled:0==n,onClick:o},"←"),$("button",{className:"next",disabled:n+s>=l,onClick:i},"→"),n+1," to ",Math.min(l,n+s)," of "),l," ",1!=l?a:r)},Rt=({indexes:e,indexesId:t,indexId:n,s:s})=>$(Be,{uniqueId:ye("i",t,n),summary:"Index: "+n,s:s},W(l.useSliceIds(n,e),(l=>$(Ot,{indexes:e,indexesId:t,indexId:n,sliceId:l,s:s,key:l})))),Ot=({indexes:e,indexesId:t,indexId:l,sliceId:n,s:s})=>{const r=ye("i",t,l,n),[a,o]=Ce(r,s);return $(Be,{uniqueId:r,summary:"Slice: "+n,editable:a,handleEditable:o,s:s},$(Ct,{sliceId:n,indexId:l,indexes:e,editable:a}))},qt=({indexesId:e,s:t})=>{const n=l.useIndexes(e),s=l.useIndexIds(n);return O(n)?null:$(Be,{uniqueId:ye("i",e),summary:"Indexes: "+(null!=e?e:d),s:t},U(s)?"No indexes defined":we(s,(l=>$(Rt,{indexes:n,indexesId:e,indexId:l,s:t,key:l}))))},Pt=({metrics:e,metricId:t})=>$("tr",null,$("th",null,t),$("td",null,null==e?void 0:e.getTableId(t)),$("td",null,l.useMetric(t,e))),Nt=({metricsId:e,s:t})=>{const n=l.useMetrics(e),s=l.useMetricIds(n);return O(n)?null:$(Be,{uniqueId:ye("m",e),summary:"Metrics: "+(null!=e?e:d),s:t},U(s)?"No metrics defined":$("table",null,$("thead",null,$("th",null,"Metric Id"),$("th",null,"Table Id"),$("th",null,"Metric")),$("tbody",null,W(s,(e=>$(Pt,{metrics:n,metricId:e,key:e}))))))},Mt=({queries:e,queriesId:t,queryId:n,s:s})=>{var r;const a=ye("q",t,n),[o,i,u]=de(null!=(r=l.useCell(be,a,pe,s))?r:"[]"),d=l.useSetCellCallback(be,a,pe,ue,[],s);return $(Be,{uniqueId:a,summary:"Query: "+n,s:s},$(Tt,{queryId:n,queries:e,cellId:o,descending:i,offset:u,limit:10,paginator:!0,sortOnClick:!0,onChange:d}))},Et=({queriesId:e,s:t})=>{const n=l.useQueries(e),s=l.useQueryIds(n);return O(n)?null:$(Be,{uniqueId:ye("q",e),summary:"Queries: "+(null!=e?e:d),s:t},U(s)?"No queries defined":we(s,(l=>$(Mt,{queries:n,queriesId:e,queryId:l,s:t,key:l}))))},Lt=({relationships:e,relationshipsId:t,relationshipId:l,s:n})=>{const s=ye("r",t,l),[r,a]=Ce(s,n);return $(Be,{uniqueId:s,summary:"Relationship: "+l,editable:r,handleEditable:a,s:n},$(kt,{relationshipId:l,relationships:e,editable:r}))},jt=({relationshipsId:e,s:t})=>{const n=l.useRelationships(e),s=l.useRelationshipIds(n);return O(n)?null:$(Be,{uniqueId:ye("r",e),summary:"Relationships: "+(null!=e?e:d),s:t},U(s)?"No relationships defined":we(s,(l=>$(Lt,{relationships:n,relationshipsId:e,relationshipId:l,s:t,key:l}))))},zt=({tableId:e,store:t,storeId:n,s:s})=>{var r;const a=ye("t",n,e),[o,i,u]=de(null!=(r=l.useCell(be,a,pe,s))?r:"[]"),d=l.useSetCellCallback(be,a,pe,ue,[],s),[c,h]=Ce(a,s);return $(Be,{uniqueId:a,summary:m+": "+e,editable:c,handleEditable:h,s:s},$(yt,{tableId:e,store:t,cellId:o,descending:i,offset:u,limit:10,paginator:!0,sortOnClick:!0,onChange:d,editable:c}))},$t=({store:e,storeId:t,s:n})=>{const s=ye("v",t),[r,a]=Ce(s,n);return U(l.useValueIds(e))?null:$(Be,{uniqueId:s,summary:C,editable:r,handleEditable:a,s:n},$(wt,{store:e,editable:r}))},Jt=({storeId:e,s:t})=>{const n=l.useStore(e),s=l.useTableIds(n);return O(n)?null:$(Be,{uniqueId:ye("s",e),summary:"Store: "+(null!=e?e:d),s:t},$($t,{storeId:e,store:n,s:t}),we(s,(l=>$(zt,{store:n,storeId:e,tableId:l,s:t,key:l}))))},At=({s:e})=>{const t=D(null),n=D(0),[s,r]=F(!1),{scrollLeft:a,scrollTop:o}=l.useValues(e);A((()=>{const e=t.current;if(e&&!s){const t=new MutationObserver((()=>{e.scrollWidth>=V(a)+e.clientWidth&&e.scrollHeight>=V(o)+e.clientHeight&&e.scrollTo(a,o)}));return t.observe(e,{childList:!0,subtree:!0}),()=>t.disconnect()}}),[s,a,o]);const i=J((t=>{const{scrollLeft:l,scrollTop:s}=t[T];cancelIdleCallback(n.current),n.current=requestIdleCallback((()=>{r(!0),e.setPartialValues({scrollLeft:l,scrollTop:s})}))}),[e]),u=l.useStore(),d=l.useStoreIds(),c=l.useMetrics(),h=l.useMetricsIds(),m=l.useIndexes(),b=l.useIndexesIds(),p=l.useRelationships(),g=l.useRelationshipsIds(),v=l.useQueries(),f=l.useQueriesIds();return O(u)&&U(d)&&O(c)&&U(h)&&O(m)&&U(b)&&O(p)&&U(g)&&O(v)&&U(f)?$("span",{className:"warn"},"There are no Stores or other objects to inspect. Make sure you placed the StoreInspector inside a Provider component."):$("article",{ref:t,onScroll:i},$(Jt,{s:e}),W(d,(t=>$(Jt,{storeId:t,s:e,key:t}))),$(Nt,{s:e}),W(h,(t=>$(Nt,{metricsId:t,s:e,key:t}))),$(qt,{s:e}),W(b,(t=>$(qt,{indexesId:t,s:e,key:t}))),$(jt,{s:e}),W(g,(t=>$(jt,{relationshipsId:t,s:e,key:t}))),$(Et,{s:e}),W(f,(t=>$(Et,{queriesId:t,s:e,key:t}))))};class Dt extends j{constructor(e){super(e),this.componentDidCatch=(e,t)=>console.error(e,t.componentStack),this.state={e:0}}static getDerivedStateFromError(){return{e:1}}render(){return this.state.e?$("span",{className:"warn"},"Inspector error: please see console for details."):this.props.children}}const Ft=({s:e})=>{var t;const n=null!=(t=l.useValue(ve,e))?t:1,s=l.useSetValueCallback(fe,(()=>!1),[],e),r=l.useSetValueCallback(ve,(e=>Number(e[T].dataset.id)),[],e);return $("header",null,$("img",{title:he}),$("span",null,he),W(me,((e,t)=>t==n?null:$("img",{onClick:r,"data-id":t,title:"Dock to "+e,key:t}))),$("img",{onClick:s,title:"Close"}))},Ht=({s:e})=>{var t;const n=null!=(t=l.useValue(ve,e))?t:1;return l.useValue(fe,e)?$("main",{"data-position":n},$(Ft,{s:e}),$(Dt,null,$(At,{s:e}))):null},Bt=e=>t=>{return l=(t,l)=>t+e(l),Yt(t).reduce(l,0);var l},Qt=e=>{var t;return null!=(t=null==e?void 0:e.size)?t:0},Wt=Bt(Qt),Ut=Bt(Wt),Gt=Bt(Ut),Kt=(e,t)=>{var l;return null!=(l=null==e?void 0:e.has(t))&&l},Xt=e=>O(e)||0==Qt(e),Yt=e=>{var t;return[...null!=(t=null==e?void 0:e.values())?t:[]]},Zt=e=>e.clear(),_t=(e,t)=>null==e?void 0:e.forEach(t),el=(e,t)=>null==e?void 0:e.delete(t),tl=e=>new Map(e),ll=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},nl=(e,t)=>null==e?void 0:e.get(t),sl=(e,t)=>_t(e,((e,l)=>t(l,e))),rl=(e,t,l)=>O(l)?(el(e,t),e):null==e?void 0:e.set(t,l),al=(e,t,l,n)=>(Kt(e,t)?null==n||n(nl(e,t)):rl(e,t,l()),nl(e,t)),ol=(e,t,l,n=rl)=>(ae(t,((t,n)=>l(e,n,t))),sl(e,(l=>se(t,l)?0:n(e,l))),e),il=(e,t,l,n)=>{const s={};return _t(e,((e,r)=>{if(!(null==l?void 0:l(e,r))){const l=t?t(e,r):e;!(null==n?void 0:n(l))&&(s[r]=l)}})),s},ul=(e,t,l)=>il(e,(e=>il(e,t,l)),Xt,oe),dl=(e,t,l)=>il(e,(e=>ul(e,t,l)),Xt,oe),cl=(e,t)=>{const l=tl();return _t(e,((e,n)=>{var s;return l.set(n,null!=(s=null==t?void 0:t(e))?s:e)})),l},hl=e=>cl(e,cl),ml=e=>cl(e,hl),bl=(e,t,l,n,s=0)=>q((l?al:nl)(e,t[s],s>L(t)-2?l:tl),(r=>{if(s>L(t)-2)return(null==n?void 0:n(r))&&rl(e,t[s]),r;const a=bl(r,t,l,n,s+1);return Xt(r)&&rl(e,t[s]),a}));var pl=Object.defineProperty,gl=Object.getOwnPropertySymbols,vl=Object.prototype.hasOwnProperty,fl=Object.prototype.propertyIsEnumerable,Il=(e,t,l)=>t in e?pl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[t]=l,yl=(e,t,l)=>new Promise(((n,s)=>{var r=e=>{try{o(l.next(e))}catch(e){s(e)}},a=e=>{try{o(l.throw(e))}catch(e){s(e)}},o=e=>e.done?n(e.value):Promise.resolve(e.value).then(r,a);o((l=l.apply(e,t)).next())}));const wl=tl(),Cl=tl();var kl=(e,t,l)=>new Promise(((n,s)=>{var r=e=>{try{o(l.next(e))}catch(e){s(e)}},a=e=>{try{o(l.throw(e))}catch(e){s(e)}},o=e=>e.done?n(e.value):Promise.resolve(e.value).then(r,a);o((l=l.apply(e,t)).next())}));const Tl="storage",Sl=globalThis.window,xl=e=>new Set(M(e)||O(e)?e:[e]),Vl=(e,t)=>null==e?void 0:e.add(t),Rl=/^\d+$/,Ol=()=>{const e=[];let t=0;return[l=>{var n;return null!=(n=l?K(e):null)?n:s+t++},t=>{Rl.test(t)&&L(e)<1e3&&G(e,t)}]},ql=e=>[e,e],Pl=(e,t=Wt)=>t(e[0])+t(e[1]),Nl=()=>[tl(),tl()],Ml=e=>[...e],El=([e,t])=>e===t,Ll=(e,t,l)=>rl(e,t,nl(e,t)==-l?void 0:l),jl=()=>{let e,t,l=!1,n=!1,r=0,a=[];const i=tl(),h=tl(),T=tl(),S=tl(),V=tl(),R=tl(),M=tl(),j=tl(),z=tl(),$=tl(),J=tl(),A=tl(),D=tl(),F=tl(),H=xl(),U=tl(),K=tl(),X=tl(),Y=tl(),Z=Nl(),_=Nl(),ee=Nl(),te=Nl(),ne=Nl(),ce=Nl(),he=Nl(),me=Nl(),be=Nl(),pe=Nl(),ge=Nl(),ve=Nl(),fe=Nl(),Ie=Nl(),ye=Nl(),we=Nl(),Ce=Nl(),ke=Nl(),Te=Nl(),Se=Nl(),xe=Nl(),Ve=Nl(),Re=tl(),Oe=Nl(),[qe,Pe,Ne,Me]=(e=>{let t;const[l,n]=Ol(),r=tl();return[(e,n,a,o=[],i=(()=>[]))=>{null!=t||(t=Sl);const u=l(1);return rl(r,u,[e,n,a,o,i]),Vl(bl(n,null!=a?a:[s],xl),u),u},(e,l,...n)=>Q(((e,t=[s])=>{const l=[],n=(e,s)=>s==L(t)?G(l,e):null===t[s]?_t(e,(e=>n(e,s+1))):Q([t[s],null],(t=>n(nl(e,t),s+1)));return n(e,0),l})(e,l),(e=>_t(e,(e=>nl(r,e)[0](t,...null!=l?l:[],...n))))),e=>q(nl(r,e),(([,t,l])=>(bl(t,null!=l?l:[s],void 0,(t=>(el(t,e),Xt(t)?1:0))),rl(r,e),n(e),l))),e=>q(nl(r,e),(([e,,l=[],n,s])=>{const r=(...a)=>{var o,i;const u=L(a);u==L(l)?e(t,...a,...s(a)):O(l[u])?Q(null!=(i=null==(o=n[u])?void 0:o.call(n,...a))?i:[],(e=>r(...a,e))):r(...a,l[u])};r()}))]})(),Ee=e=>{if(!ie(e,((e,t)=>[u,d].includes(t))))return!1;const t=e[u];return!(!P(t)&&t!=o||(Qe(e[d])!=t&&re(e,d),0))},Le=(t,l)=>(!e||Kt(J,l)||bt(l))&&ie(t,((e,t)=>je(l,t,e)),(()=>bt(l))),je=(e,t,l,n)=>ie(n?l:Ae(l,e,t),((n,s)=>q(ze(e,t,s,n),(e=>(l[s]=e,!0)),(()=>!1))),(()=>bt(e,t))),ze=(t,l,n,s)=>e?q(nl(nl(J,t),n),(e=>Qe(s)!=e[u]?bt(t,l,n,s,e[d]):s),(()=>bt(t,l,n,s))):O(Qe(s))?bt(t,l,n,s):s,$e=(e,t)=>ie(t?e:De(e),((t,l)=>q(Je(l,t),(t=>(e[l]=t,!0)),(()=>!1))),(()=>pt())),Je=(e,l)=>t?q(nl(D,e),(t=>Qe(l)!=t[u]?pt(e,l,t[d]):l),(()=>pt(e,l))):O(Qe(l))?pt(e,l):l,Ae=(e,t,l)=>(q(nl(A,t),(([n,s])=>{_t(n,((t,l)=>{se(e,l)||(e[l]=t)})),_t(s,(n=>{se(e,n)||bt(t,l,n)}))})),e),De=e=>(t&&(_t(F,((t,l)=>{se(e,l)||(e[l]=t)})),_t(H,(t=>{se(e,t)||pt(t)}))),e),Fe=e=>ol(J,e,((e,t,l)=>{const n=tl(),s=xl();ol(al(J,t,tl),l,((e,t,l)=>{rl(e,t,l),q(l[d],(e=>rl(n,t,e)),(()=>Vl(s,t)))})),rl(A,t,[n,s])}),((e,t)=>{rl(J,t),rl(A,t)})),He=e=>ol(D,e,((e,t,l)=>{rl(D,t,l),q(l[d],(e=>rl(F,t,e)),(()=>Vl(H,t)))}),((e,t)=>{rl(D,t),rl(F,t),el(H,t)})),Be=e=>oe(e)?gl():Ft(e),Ge=e=>ol(X,e,((e,t,l)=>Ke(t,l)),((e,t)=>st(t))),Ke=(e,t)=>ol(al(X,e,(()=>(it(e,1),rl(U,e,Ol()),rl(K,e,tl()),tl()))),t,((t,l,n)=>Xe(e,t,l,n)),((t,l)=>rt(e,t,l))),Xe=(e,t,l,n,s)=>ol(al(t,l,(()=>(ut(e,l,1),tl()))),n,((t,n,s)=>Ye(e,l,t,n,s)),((n,r)=>at(e,t,l,n,r,s))),Ye=(e,t,l,n,s)=>{Kt(l,n)||dt(e,t,n,1);const r=nl(l,n);s!==r&&(ct(e,t,n,r,s),rl(l,n,s))},Ze=(e,t,l,n,s)=>q(nl(t,l),(t=>Ye(e,l,t,n,s)),(()=>Xe(e,t,l,Ae({[n]:s},e,l)))),_e=e=>oe(e)?Il():Ht(e),et=e=>ol(Y,e,((e,t,l)=>tt(t,l)),((e,t)=>ot(t))),tt=(e,t)=>{Kt(Y,e)||ht(e,1);const l=nl(Y,e);t!==l&&(mt(e,l,t),rl(Y,e,t))},lt=(e,t)=>{const[l]=nl(U,e),n=l(t);return Kt(nl(X,e),n)?lt(e,t):n},nt=e=>{var t;return null!=(t=nl(X,e))?t:Ke(e,{})},st=e=>Ke(e,{}),rt=(e,t,l)=>{const[,n]=nl(U,e);n(l),Xe(e,t,l,{},!0)},at=(e,t,l,n,s,r)=>{var a;const o=nl(null==(a=nl(A,e))?void 0:a[0],s);if(!O(o)&&!r)return Ye(e,l,n,s,o);const i=t=>{ct(e,l,t,nl(n,t)),dt(e,l,t,-1),rl(n,t)};O(o)?i(s):sl(n,i),Xt(n)&&(ut(e,l,-1),Xt(rl(t,l))&&(it(e,-1),rl(X,e),rl(U,e),rl(K,e)))},ot=e=>{const t=nl(F,e);if(!O(t))return tt(e,t);mt(e,nl(Y,e)),ht(e,-1),rl(Y,e)},it=(e,t)=>Ll(i,e,t),ut=(e,t,l)=>Ll(al(S,e,tl),t,l)&&rl(T,e,al(T,e,(()=>0))+l),dt=(e,t,l,n)=>{var s;const r=nl(K,e),a=null!=(s=nl(r,l))?s:0;(0==a&&1==n||1==a&&-1==n)&&Ll(al(h,e,tl),l,n),rl(r,l,a!=-n?a+n:null),Ll(al(al(V,e,tl),t,tl),l,n)},ct=(e,t,l,n,s)=>{var r;al(al(al(R,e,tl),t,tl),l,(()=>[n,0]))[1]=s,null==(r=a[3])||r.call(a,e,t,l,s)},ht=(e,t)=>Ll(M,e,t),mt=(e,t,l)=>{var n;al(j,e,(()=>[t,0]))[1]=l,null==(n=a[4])||n.call(a,e,l)},bt=(e,t,l,n,s)=>(G(al(al(al(z,e,tl),t,tl),l,(()=>[])),n),s),pt=(e,t,l)=>(G(al($,e,(()=>[])),t),l),gt=(e,t,l)=>q(nl(nl(nl(R,e),t),l),(([e,t])=>[!0,e,t]),(()=>[!1,...ql(Pt(e,t,l))])),vt=e=>q(nl(j,e),(([e,t])=>[!0,e,t]),(()=>[!1,...ql(Et(e))])),ft=e=>Xt(z)||Xt(we[e])?0:_t(e?ml(z):z,((t,l)=>_t(t,((t,n)=>_t(t,((t,s)=>Pe(we[e],[l,n,s],t))))))),It=e=>Xt($)||Xt(Ce[e])?0:_t(e?cl($):$,((t,l)=>Pe(Ce[e],[l],t))),yt=(e,t,l,n)=>{if(!Xt(e))return Pe(t,n,(()=>il(e))),sl(e,((e,t)=>Pe(l,[...null!=n?n:[],e],1==t))),1},wt=e=>{const t=Lt();t!=l&&Pe(Z[e],void 0,t);const n=Xt(pe[e]),s=Xt(fe[e])&&Xt(Ie[e])&&Xt(be[e])&&Xt(ge[e])&&Xt(ce[e])&&Xt(he[e])&&Xt(me[e])&&n&&Xt(ee[e])&&Xt(te[e]),r=Xt(ye[e])&&Xt(ve[e])&&Xt(ne[e])&&Xt(_[e]);if(!s||!r){const t=e?[cl(i),hl(h),cl(T),hl(S),ml(V),ml(R)]:[i,h,T,S,V,R];if(!s){yt(t[0],ee[e],te[e]),_t(t[1],((t,l)=>yt(t,ce[e],he[e],[l]))),_t(t[2],((t,l)=>{0!=t&&Pe(me[e],[l],Vt(l))}));const l=xl();_t(t[3],((t,s)=>{yt(t,be[e],ge[e],[s])&&!n&&(Pe(pe[e],[s,null]),Vl(l,s))})),n||_t(t[5],((t,n)=>{if(!Kt(l,n)){const l=xl();_t(t,(e=>_t(e,(([t,n],s)=>n!==t?Vl(l,s):el(e,s))))),_t(l,(t=>Pe(pe[e],[n,t])))}})),_t(t[4],((t,l)=>_t(t,((t,n)=>yt(t,fe[e],Ie[e],[l,n])))))}if(!r){let l;_t(t[5],((t,n)=>{let s;_t(t,((t,r)=>{let a;_t(t,(([t,o],i)=>{o!==t&&(Pe(ye[e],[n,r,i],o,t,gt),l=s=a=1)})),a&&Pe(ve[e],[n,r],gt)})),s&&Pe(ne[e],[n],gt)})),l&&Pe(_[e],void 0,gt)}}},Ct=e=>{const t=At();t!=n&&Pe(ke[e],void 0,t);const l=Xt(Se[e])&&Xt(xe[e]),s=Xt(Ve[e])&&Xt(Te[e]);if(!l||!s){const t=e?[cl(M),cl(j)]:[M,j];if(l||yt(t[0],Se[e],xe[e]),!s){let l;_t(t[1],(([t,n],s)=>{n!==t&&(Pe(Ve[e],[s],n,t,vt),l=1)})),l&&Pe(Te[e],void 0,vt)}}},kt=(e,...t)=>(Cl((()=>e(...W(t,x)))),Sl),Tt=()=>dl(X),St=()=>ll(X),xt=e=>ll(nl(K,x(e))),Vt=e=>Qt(nl(X,x(e))),Rt=e=>ll(nl(X,x(e))),Ot=(e,t,l,n=0,s)=>{return W(E(B((r=nl(X,x(e)),a=(e,l)=>[O(t)?l:nl(e,x(t)),l],W([...null!=(o=null==r?void 0:r.entries())?o:[]],(([e,t])=>a(t,e)))),(([e],[t])=>{return((null!=(n=e)?n:0)<(null!=(s=t)?s:0)?-1:1)*(l?-1:1);var n,s})),n,O(s)?s:n+s),(([,e])=>e));var r,a,o},qt=(e,t)=>ll(nl(nl(X,x(e)),x(t))),Pt=(e,t,l)=>nl(nl(nl(X,x(e)),x(t)),x(l)),Nt=()=>il(Y),Mt=()=>ll(Y),Et=e=>nl(Y,x(e)),Lt=()=>!Xt(X),jt=e=>Kt(X,x(e)),zt=(e,t)=>Kt(nl(K,x(e)),x(t)),$t=(e,t)=>Kt(nl(X,x(e)),x(t)),Jt=(e,t,l)=>Kt(nl(nl(X,x(e)),x(t)),x(l)),At=()=>!Xt(Y),Dt=e=>Kt(Y,x(e)),Ft=e=>kt((()=>(e=>ie(e,Le,bt))(e)?Ge(e):0)),Ht=e=>kt((()=>$e(e)?et(e):0)),Bt=e=>{try{Be(de(e))}catch(e){}return Sl},Yt=t=>kt((()=>{if((e=ie(t,(e=>ie(e,Ee))))&&(Fe(t),!Xt(X))){const e=Tt();gl(),Ft(e)}})),pl=e=>kt((()=>{if(t=(e=>ie(e,Ee))(e)){const l=Nt();wl(),Il(),t=!0,He(e),Ht(l)}})),gl=()=>kt((()=>Ge({}))),vl=e=>kt((e=>Kt(X,e)?st(e):0),e),fl=(e,t)=>kt(((e,t)=>q(nl(X,e),(l=>Kt(l,t)?rt(e,l,t):0))),e,t),Il=()=>kt((()=>et({}))),yl=()=>kt((()=>{Fe({}),e=!1})),wl=()=>kt((()=>{He({}),t=!1})),Cl=(e,t)=>{if(-1!=r){kl();const l=e();return Tl(t),l}},kl=()=>{var e;return-1!=r&&r++,1==r&&(null==(e=a[0])||e.call(a),Pe(Re)),Sl},Tl=e=>{var t,s;return r>0&&(r--,0==r&&(r=1,ft(1),Xt(R)||wt(1),It(1),Xt(j)||Ct(1),(null==e?void 0:e(Sl))&&(_t(R,((e,t)=>_t(e,((e,l)=>_t(e,(([e],n)=>We(Sl,t,l,n,e))))))),Zt(R),_t(j,(([e],t)=>Ue(Sl,t,e))),Zt(j)),Pe(Oe[0],void 0),r=-1,ft(0),Xt(R)||wt(0),It(0),Xt(j)||Ct(0),null==(t=a[1])||t.call(a),Pe(Oe[1],void 0),null==(s=a[2])||s.call(a),r=0,l=Lt(),n=At(),Q([i,h,T,S,V,R,z,M,j,$],Zt))),Sl},Sl={getContent:()=>[Tt(),Nt()],getTables:Tt,getTableIds:St,getTable:e=>ul(nl(X,x(e))),getTableCellIds:xt,getRowCount:Vt,getRowIds:Rt,getSortedRowIds:Ot,getRow:(e,t)=>il(nl(nl(X,x(e)),x(t))),getCellIds:qt,getCell:Pt,getValues:Nt,getValueIds:Mt,getValue:Et,hasTables:Lt,hasTable:jt,hasTableCell:zt,hasRow:$t,hasCell:Jt,hasValues:At,hasValue:Dt,getTablesJson:()=>ue(X),getValuesJson:()=>ue(Y),getJson:()=>ue([X,Y]),getTablesSchemaJson:()=>ue(J),getValuesSchemaJson:()=>ue(D),getSchemaJson:()=>ue([J,D]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,t])=>kt((()=>{(oe(e)?gl:Ft)(e),(oe(t)?Il:Ht)(t)})),setTables:Ft,setTable:(e,t)=>kt((e=>Le(t,e)?Ke(e,t):0),e),setRow:(e,t,l)=>kt(((e,t)=>je(e,t,l)?Xe(e,nt(e),t,l):0),e,t),addRow:(e,t,l=!0)=>Cl((()=>{let n;return je(e,n,t)&&(e=x(e),Xe(e,nt(e),n=lt(e,l?1:0),t)),n})),setPartialRow:(e,t,l)=>kt(((e,t)=>{if(je(e,t,l,1)){const n=nt(e);ae(l,((l,s)=>Ze(e,n,t,s,l)))}}),e,t),setCell:(e,t,l,n)=>kt(((e,t,l)=>q(ze(e,t,l,N(n)?n(Pt(e,t,l)):n),(n=>Ze(e,nt(e),t,l,n)))),e,t,l),setValues:Ht,setPartialValues:e=>kt((()=>$e(e,1)?ae(e,((e,t)=>tt(t,e))):0)),setValue:(e,t)=>kt((e=>q(Je(e,N(t)?t(Et(e)):t),(t=>tt(e,t)))),e),applyChanges:e=>kt((()=>{ae(e[0],((e,t)=>O(e)?vl(t):ae(e,((e,l)=>O(e)?fl(t,l):ae(e,((e,n)=>We(Sl,t,l,n,e))))))),ae(e[1],((e,t)=>Ue(Sl,t,e)))})),setTablesJson:Bt,setValuesJson:e=>{try{_e(de(e))}catch(e){}return Sl},setJson:e=>kt((()=>{try{const[t,l]=de(e);Be(t),_e(l)}catch(t){Bt(e)}})),setTablesSchema:Yt,setValuesSchema:pl,setSchema:(e,t)=>kt((()=>{Yt(e),pl(t)})),delTables:gl,delTable:vl,delRow:fl,delCell:(e,t,l,n)=>kt(((e,t,l)=>q(nl(X,e),(s=>q(nl(s,t),(r=>Kt(r,l)?at(e,s,t,r,l,n):0))))),e,t,l),delValues:Il,delValue:e=>kt((e=>Kt(Y,e)?ot(e):0),e),delTablesSchema:yl,delValuesSchema:wl,delSchema:()=>kt((()=>{yl(),wl()})),transaction:Cl,startTransaction:kl,getTransactionChanges:()=>[il(R,((e,t)=>-1===nl(i,t)?void 0:il(e,((e,l)=>-1===nl(nl(S,t),l)?void 0:il(e,(([,e])=>e),(e=>El(e)))),Xt,oe)),Xt,oe),il(j,(([,e])=>e),(e=>El(e))),1],getTransactionLog:()=>[!Xt(R),!Xt(j),dl(R,Ml,El),dl(z),il(j,Ml,El),il($),il(i),ul(S),dl(V),il(M)],finishTransaction:Tl,forEachTable:e=>_t(X,((t,l)=>e(l,(e=>_t(t,((t,l)=>e(l,(e=>sl(t,e))))))))),forEachTableCell:(e,t)=>sl(nl(K,x(e)),t),forEachRow:(e,t)=>_t(nl(X,x(e)),((e,l)=>t(l,(t=>sl(e,t))))),forEachCell:(e,t,l)=>sl(nl(nl(X,x(e)),x(t)),l),forEachValue:e=>sl(Y,e),addSortedRowIdsListener:(e,t,l,n,s,r,a)=>{let o=Ot(e,t,l,n,s);return qe((()=>{const a=Ot(e,t,l,n,s);var i,u,d;u=o,L(i=a)===L(u)&&(d=(e,t)=>u[t]===e,i.every(d))||(o=a,r(Sl,e,t,l,n,s,o))}),pe[a?1:0],[e,t],[St])},addStartTransactionListener:e=>qe(e,Re),addWillFinishTransactionListener:e=>qe(e,Oe[0]),addDidFinishTransactionListener:e=>qe(e,Oe[1]),callListener:e=>(Me(e),Sl),delListener:e=>(Ne(e),Sl),getListenerStats:()=>({hasTables:Pl(Z),tables:Pl(_),tableIds:Pl(ee),hasTable:Pl(te),table:Pl(ne),tableCellIds:Pl(ce),hasTableCell:Pl(he,Ut),rowCount:Pl(me),rowIds:Pl(be),sortedRowIds:Pl(pe),hasRow:Pl(ge,Ut),row:Pl(ve,Ut),cellIds:Pl(fe,Ut),hasCell:Pl(Ie,Gt),cell:Pl(ye,Gt),invalidCell:Pl(we,Gt),hasValues:Pl(ke),values:Pl(Te),valueIds:Pl(Se),hasValue:Pl(xe),value:Pl(Ve),invalidValue:Pl(Ce),transaction:Wt(Re)+Pl(Oe)}),createStore:jl,addListener:qe,callListeners:Pe,setInternalListeners:(e,t,l,n,s)=>a=[e,t,l,n,s]};return ae({[c+b]:[0,Z,[],()=>[Lt()]],[b]:[0,_],[p]:[0,ee],[c+m]:[1,te,[St],e=>[jt(...e)]],[m]:[1,ne,[St]],[m+y]:[1,ce,[St]],[c+m+I]:[2,he,[St,xt],e=>[zt(...e)]],[v]:[1,me,[St]],[f]:[1,be,[St]],[c+g]:[2,ge,[St,Rt],e=>[$t(...e)]],[g]:[2,ve,[St,Rt]],[y]:[2,fe,[St,Rt]],[c+I]:[3,Ie,[St,Rt,qt],e=>[Jt(...e)]],[I]:[3,ye,[St,Rt,qt],e=>ql(Pt(...e))],InvalidCell:[3,we],[c+C]:[0,ke,[],()=>[At()]],[C]:[0,Te],[k]:[0,Se],[c+w]:[1,xe,[Mt],e=>[Dt(...e)]],[w]:[1,Ve,[Mt],e=>ql(Et(e[0]))],InvalidValue:[1,Ce]},(([e,t,l,n],s)=>{Sl["add"+s+"Listener"]=(...s)=>qe(s[e],t[s[e+1]?1:0],e>0?E(s,0,e):void 0,l,n)})),le(Sl)},zl=({position:e="right",open:t=!1})=>{const n=l.useCreateStore(jl),s=me.indexOf(e);return l.useCreatePersister(n,(e=>{return t=ce,l=sessionStorage,((e,t,l,n,s,r,a,o={},i=[])=>{let u,d,c,h=0,m=0,b=0;al(wl,i,(()=>0)),al(Cl,i,(()=>[]));const[p,g,v,f,I]=((e=1,t)=>e>1&&"getMergeableContent"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!oe(e)||!oe(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!oe(e)||!oe(t),t.setContent]:0)(a,e),y=t=>{(p&&M(null==t?void 0:t[0])?1===(null==t?void 0:t[2])?e.applyMergeableChanges:e.setMergeableContent:1===(null==t?void 0:t[2])?e.applyChanges:e.setContent)(t)},w=e=>yl(void 0,null,(function*(){return 2!=h&&(h=1,m++,yield S((()=>yl(void 0,null,(function*(){try{y(yield t())}catch(t){null==r||r(t),e&&I(e)}h=0}))))),x})),C=()=>(d&&(s(d),d=void 0),x),k=e=>yl(void 0,null,(function*(){return 1!=h&&(h=2,b++,yield S((()=>yl(void 0,null,(function*(){try{yield l(g,e)}catch(e){null==r||r(e)}h=0}))))),x})),T=()=>(q(c,e.delListener),c=void 0,x),S=(...e)=>yl(void 0,null,(function*(){return G(nl(Cl,i),...e),yield yl(void 0,null,(function*(){if(!nl(wl,i)){for(rl(wl,i,1);!O(u=K(nl(Cl,i)));)try{yield u()}catch(e){null==r||r(e)}rl(wl,i,0)}})),x})),x=((e,t)=>{for(var l in t||(t={}))vl.call(t,l)&&Il(e,l,t[l]);if(gl)for(var l of gl(t))fl.call(t,l)&&Il(e,l,t[l]);return e})({load:w,startAutoLoad:e=>yl(void 0,null,(function*(){return yield C().load(e),d=n(((e,t)=>yl(void 0,null,(function*(){t||e?2!=h&&(h=1,m++,y(null!=t?t:e),h=0):yield w()})))),x})),stopAutoLoad:C,isAutoLoading:()=>!O(d),save:k,startAutoSave:()=>yl(void 0,null,(function*(){return yield T().save(),c=e.addDidFinishTransactionListener((()=>{const e=v();f(e)&&k(e)})),x})),stopAutoSave:T,isAutoSaving:()=>!O(c),schedule:S,getStore:()=>e,destroy:()=>C().stopAutoSave(),getStats:()=>({loads:m,saves:b})},o);return le(x)})(e,(()=>kl(void 0,null,(function*(){return e=l.getItem(t),JSON.parse(e,((e,t)=>""===t?void 0:t));var e}))),(e=>kl(void 0,null,(function*(){return l.setItem(t,(n=e(),JSON.stringify(n,((e,t)=>void 0===t?"":t))));var n}))),(e=>{const n=n=>{if(n.storageArea===l&&n.key===t)try{e(de(n.newValue))}catch(t){e()}};return Sl.addEventListener(Tl,n),n}),(e=>Sl.removeEventListener(Tl,e)),void 0,3,{getStorageName:()=>t});var t,l}),void 0,(e=>{return l=function*(){yield e.load([{},{position:-1==s?1:s,open:!!t}]),yield e.startAutoSave()},new Promise(((e,t)=>{var n=e=>{try{r(l.next(e))}catch(e){t(e)}},s=e=>{try{r(l.throw(e))}catch(e){t(e)}},r=t=>t.done?e(t.value):Promise.resolve(t.value).then(n,s);r((l=l.apply(void 0,null)).next())}));var l})),$(z,null,$("aside",{id:ce},$(He,{s:n}),$(Ht,{s:n})),$("style",null,Fe))};var $l=Object.defineProperty,Jl=Object.getOwnPropertySymbols,Al=Object.prototype.hasOwnProperty,Dl=Object.prototype.propertyIsEnumerable,Fl=(e,t,l)=>t in e?$l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[t]=l;e.EditableCellView=St,e.EditableValueView=xt,e.RelationshipInHtmlTable=kt,e.ResultSortedTableInHtmlTable=Tt,e.ResultTableInHtmlTable=e=>{var t=e,{queryId:n,queries:s,customCells:r}=t,a=st(t,["queryId","queries","customCells"]);return $(gt,nt(lt({},a),{params:ct(pt(l.useResultTableCellIds(n,s),r,l.ResultCellView),mt(s,n),l.useResultRowIds(n,s))}))},e.SliceInHtmlTable=Ct,e.SortedTableInHtmlTable=yt,e.SortedTablePaginator=Vt,e.StoreInspector=e=>$(zl,((e,t)=>{for(var l in t||(t={}))Al.call(t,l)&&Fl(e,l,t[l]);if(Jl)for(var l of Jl(t))Dl.call(t,l)&&Fl(e,l,t[l]);return e})({},e)),e.TableInHtmlTable=e=>{var t=e,{tableId:n,store:s,editable:r,customCells:a}=t,o=st(t,["tableId","store","editable","customCells"]);return $(gt,nt(lt({},o),{params:ct(pt(l.useTableCellIds(n,s),a,r?St:l.CellView),ht(s,n),l.useRowIds(n,s))}))},e.ValuesInHtmlTable=wt},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("./ui-react")):"function"==typeof define&&define.amd?define(["exports","react","./ui-react"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseUiReactDomDebug={},e.React,e.TinyBaseUiReact);
@@ -1 +1 @@
1
- var e,s;e=this,s=function(e,s){"use strict";const t=e=>typeof e,l="",o=t(l),r=t(t),u="Listener",n="Result",d="Has",i="Ids",a="Table",c=a+"s",I=a+i,p="Row",C=p+"Count",b=p+i,w="Sorted"+p+i,R="Cell",k=R+i,y="Value",g=y+"s",v=y+i,h=e=>null==e,m=(e,s,t)=>h(e)?null==t?void 0:t():s(e),L=e=>t(e)==o,f=e=>t(e)==r,S=e=>e.length,T=()=>{},V=(e,s)=>e.every(s),P=(e,s)=>S(e)===S(s)&&V(e,((e,t)=>s[t]===e)),x=(e,s)=>e.map(s),O=Object,q=e=>O.getPrototypeOf(e),B=O.entries,H=e=>!h(e)&&m(q(e),(e=>e==O.prototype||h(q(e))),(()=>!0)),M=O.keys,D=(e,s)=>m(e,(e=>e[s])),j=(e,s)=>{const t=B(e);return S(t)===S(M(s))&&V(t,(([e,t])=>H(t)?!!H(s[e])&&j(s[e],t):s[e]===t))},{createContext:F,useContext:E,useEffect:Q}=s,A=F([]),G=(e,s)=>{var t;const l=E(A);return h(e)?l[s]:L(e)?D(null!=(t=l[s+1])?t:{},e):e},U=(e,s)=>{const t=G(e,s);return h(e)||L(e)?t:e},W=e=>{var s;return M(null!=(s=E(A)[e])?s:{})},z=e=>U(e,0),J=e=>U(e,2),K=e=>U(e,4),N=e=>U(e,6),X=e=>U(e,8),Y=e=>U(e,10),Z=e=>e.toLowerCase();Z(u);const $="Transaction";Z($);var _=(e,s,t)=>new Promise(((l,o)=>{var r=e=>{try{n(t.next(e))}catch(e){o(e)}},u=e=>{try{n(t.throw(e))}catch(e){o(e)}},n=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,u);n((t=t.apply(e,s)).next())}));const{useCallback:ee,useEffect:se,useMemo:te,useLayoutEffect:le,useRef:oe,useState:re,useSyncExternalStore:ue}=s,ne=[],de=[{},[],[ne,void 0,ne],void 0,!1,0],ie=(e,s)=>e===s,ae=[j,P,([e,s,t],[l,o,r])=>s===o&&P(e,l)&&P(t,r)],ce=(e,s,t=ne)=>{const[,l]=re(),[o,r]=re();return se((()=>{const t=s(e);return r(t),l([]),t.destroy}),[e,...t]),o},Ie=(e,s,...t)=>{var l;const o=null==(l=null==e?void 0:e["add"+s+u])?void 0:l.call(e,...t);return()=>null==e?void 0:e.delListener(o)},pe=(e,s,t,o=ne)=>{const r=oe(de[t]),u=ee((()=>{var l,u,n;const d=null!=(u=null==(l=null==s?void 0:s[(4==t?"has":"get")+e])?void 0:l.call(s,...o))?u:de[t];return(null!=(n=ae[t])?n:ie)(d,r.current)?r.current:r.current=d}),[s,t,e,...o]),n=ee((r=>Ie(s,(4==t?d:l)+e,...o,r)),[s,t,e,...o]);return ue(n,u)},Ce=(e,s,t,l=ne,o=ne,...r)=>le((()=>Ie(s,e,...o,t,...r)),[s,e,...o,...l,...r]),be=(e,s,t,l=ne,o=T,r=ne,...u)=>{const n=z(e);return ee((e=>m(n,(l=>m(t(e,l),(t=>o(l["set"+s](...x(u,(s=>f(s)?s(e,l):s)),t),t)))))),[n,s,...l,...r,...u])},we=(e,s,t=T,l=ne,...o)=>{const r=z(e);return ee((()=>t(null==r?void 0:r["del"+s](...o))),[r,s,...l,...o])},Re=(e,s,t)=>{const l=Y(e);return ee((()=>null==l?void 0:l[s](t)),[l,s,t])},ke=e=>pe(I,z(e),1),ye=(e,s)=>pe(b,z(s),1,[e]),ge=(e,s,t,l=0,o,r)=>pe(w,z(r),1,[e,s,t,l,o]),ve=(e,s,t)=>pe(k,z(t),1,[e,s]),he=(e,s,t,l)=>pe(R,z(l),3,[e,s,t]),me=e=>pe(v,z(e),1),Le=(e,s)=>pe(y,z(s),3,[e]),fe=(e,s)=>pe("Metric",J(s),3,[e]),Se=(e,s)=>pe("SliceIds",K(s),1,[e]),Te=(e,s,t)=>pe("Slice"+b,K(t),1,[e,s]),Ve=(e,s,t)=>pe("RemoteRowId",N(t),3,[e,s]),Pe=(e,s,t)=>pe("Local"+b,N(t),1,[e,s]),xe=(e,s,t)=>pe("Linked"+b,N(t),1,[e,s]),Oe=(e,s)=>pe(n+b,X(s),1,[e]),qe=(e,s,t,l=0,o,r)=>pe(n+w,X(r),1,[e,s,t,l,o]),Be=(e,s,t)=>pe(n+k,X(t),1,[e,s]),He=(e,s,t,l)=>pe(n+R,X(l),3,[e,s,t]),Me=e=>pe("CheckpointIds",Y(e),2),De=(e,s)=>pe("Checkpoint",Y(s),3,[e]),je=e=>Re(e,"goBackward"),Fe=e=>Re(e,"goForward"),{PureComponent:Ee,Fragment:Qe,createElement:Ae,useCallback:Ge,useLayoutEffect:Ue,useRef:We,useState:ze}=s,Je=(e,...s)=>h(e)?{}:e(...s),Ke=(e,s)=>[e,null==e?void 0:e.getStore(),null==e?void 0:e.getLocalTableId(s),null==e?void 0:e.getRemoteTableId(s)];var Ne=Object.defineProperty,Xe=Object.defineProperties,Ye=Object.getOwnPropertyDescriptors,Ze=Object.getOwnPropertySymbols,$e=Object.prototype.hasOwnProperty,_e=Object.prototype.propertyIsEnumerable,es=(e,s,t)=>s in e?Ne(e,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[s]=t,ss=(e,s)=>{for(var t in s||(s={}))$e.call(s,t)&&es(e,t,s[t]);if(Ze)for(var t of Ze(s))_e.call(s,t)&&es(e,t,s[t]);return e},ts=(e,s)=>Xe(e,Ye(s)),ls=(e,s)=>{var t={};for(var l in e)$e.call(e,l)&&s.indexOf(l)<0&&(t[l]=e[l]);if(null!=e&&Ze)for(var l of Ze(e))s.indexOf(l)<0&&_e.call(e,l)&&(t[l]=e[l]);return t};const{useCallback:os,useContext:rs,useMemo:us,useState:ns}=s,ds=({tableId:e,store:s,rowComponent:t=Cs,getRowComponentProps:l,customCellIds:o,separator:r,debugIds:u},n)=>Is(x(n,(r=>Ae(t,ts(ss({},Je(l,r)),{key:r,tableId:e,rowId:r,customCellIds:o,store:s,debugIds:u})))),r,u,e),is=({queryId:e,queries:s,resultRowComponent:t=ys,getResultRowComponentProps:l,separator:o,debugIds:r},u)=>Is(x(u,(o=>Ae(t,ts(ss({},Je(l,o)),{key:o,queryId:e,rowId:o,queries:s,debugIds:r})))),o,r,e),as=({relationshipId:e,relationships:s,rowComponent:t=Cs,getRowComponentProps:l,separator:o,debugIds:r},u,n)=>{const[d,i,a]=Ke(N(s),e),c=u(e,n,d);return Is(x(c,(e=>Ae(t,ts(ss({},Je(l,e)),{key:e,tableId:a,rowId:e,store:i,debugIds:r})))),o,r,n)},cs=e=>({checkpoints:s,checkpointComponent:t=gs,getCheckpointComponentProps:l,separator:o,debugIds:r})=>{const u=Y(s);return Is(x(e(Me(u)),(e=>Ae(t,ts(ss({},Je(l,e)),{key:e,checkpoints:u,checkpointId:e,debugIds:r})))),o)},Is=(e,s,t,l)=>{const o=h(s)||!Array.isArray(e)?e:x(e,((e,t)=>t>0?[s,e]:e));return t?[l,":{",o,"}"]:o},ps=({tableId:e,rowId:s,cellId:t,store:o,debugIds:r})=>{var u;return Is(l+(null!=(u=he(e,s,t,o))?u:l),void 0,r,t)},Cs=({tableId:e,rowId:s,store:t,cellComponent:l=ps,getCellComponentProps:o,customCellIds:r,separator:u,debugIds:n})=>Is(x(((e,s,t,l)=>{const o=ve(s,t,l);return null!=e?e:o})(r,e,s,t),(r=>Ae(l,ts(ss({},Je(o,r)),{key:r,tableId:e,rowId:s,cellId:r,store:t,debugIds:n})))),u,n,s),bs=e=>ds(e,ye(e.tableId,e.store)),ws=({valueId:e,store:s,debugIds:t})=>{var o;return Is(l+(null!=(o=Le(e,s))?o:l),void 0,t,e)},Rs=({indexId:e,sliceId:s,indexes:t,rowComponent:l=Cs,getRowComponentProps:o,separator:r,debugIds:u})=>{const[n,d,i]=((e,s)=>[e,null==e?void 0:e.getStore(),null==e?void 0:e.getTableId(s)])(K(t),e),a=Te(e,s,n);return Is(x(a,(e=>Ae(l,ts(ss({},Je(o,e)),{key:e,tableId:i,rowId:e,store:d,debugIds:u})))),r,u,s)},ks=({queryId:e,rowId:s,cellId:t,queries:o,debugIds:r})=>{var u;return Is(l+(null!=(u=He(e,s,t,o))?u:l),void 0,r,t)},ys=({queryId:e,rowId:s,queries:t,resultCellComponent:l=ks,getResultCellComponentProps:o,separator:r,debugIds:u})=>Is(x(Be(e,s,t),(r=>Ae(l,ts(ss({},Je(o,r)),{key:r,queryId:e,rowId:s,cellId:r,queries:t,debugIds:u})))),r,u,s),gs=({checkpoints:e,checkpointId:s,debugIds:t})=>{var o;return Is(null!=(o=De(s,e))?o:l,void 0,t,s)},vs=cs((e=>e[0])),hs=cs((e=>h(e[1])?[]:[e[1]])),ms=cs((e=>e[2]));e.BackwardCheckpointsView=vs,e.CellView=ps,e.CheckpointView=gs,e.CurrentCheckpointView=hs,e.ForwardCheckpointsView=ms,e.IndexView=({indexId:e,indexes:s,sliceComponent:t=Rs,getSliceComponentProps:l,separator:o,debugIds:r})=>Is(x(Se(e,s),(o=>Ae(t,ts(ss({},Je(l,o)),{key:o,indexId:e,sliceId:o,indexes:s,debugIds:r})))),o,r,e),e.LinkedRowsView=e=>as(e,xe,e.firstRowId),e.LocalRowsView=e=>as(e,Pe,e.remoteRowId),e.MetricView=({metricId:e,metrics:s,debugIds:t})=>{var o;return Is(null!=(o=fe(e,s))?o:l,void 0,t,e)},e.Provider=({store:e,storesById:s,metrics:t,metricsById:l,indexes:o,indexesById:r,relationships:u,relationshipsById:n,queries:d,queriesById:i,checkpoints:a,checkpointsById:c,children:I})=>{const p=rs(A),[C,b]=ns({}),w=os(((e,s)=>b((t=>D(t,e)==s?t:ts(ss({},t),{[e]:s})))),[]),R=os((e=>b((s=>ss({},((e,s)=>(delete e[s],e))(s,e))))),[]);return Ae(A.Provider,{value:us((()=>[null!=e?e:p[0],ss(ss(ss({},p[1]),s),C),null!=t?t:p[2],ss(ss({},p[3]),l),null!=o?o:p[4],ss(ss({},p[5]),r),null!=u?u:p[6],ss(ss({},p[7]),n),null!=d?d:p[8],ss(ss({},p[9]),i),null!=a?a:p[10],ss(ss({},p[11]),c),w,R]),[e,s,C,t,l,o,r,u,n,d,i,a,c,p,w,R])},I)},e.RemoteRowView=({relationshipId:e,localRowId:s,relationships:t,rowComponent:l=Cs,getRowComponentProps:o,debugIds:r})=>{const[u,n,,d]=Ke(N(t),e),i=Ve(e,s,u);return Is(h(d)||h(i)?null:Ae(l,ts(ss({},Je(o,i)),{key:i,tableId:d,rowId:i,store:n,debugIds:r})),void 0,r,s)},e.ResultCellView=ks,e.ResultRowView=ys,e.ResultSortedTableView=e=>{var s=e,{cellId:t,descending:l,offset:o,limit:r}=s,u=ls(s,["cellId","descending","offset","limit"]);return is(u,qe(u.queryId,t,l,o,r,u.queries))},e.ResultTableView=e=>is(e,Oe(e.queryId,e.queries)),e.RowView=Cs,e.SliceView=Rs,e.SortedTableView=e=>{var s=e,{cellId:t,descending:l,offset:o,limit:r}=s,u=ls(s,["cellId","descending","offset","limit"]);return ds(u,ge(u.tableId,t,l,o,r,u.store))},e.TableView=bs,e.TablesView=({store:e,tableComponent:s=bs,getTableComponentProps:t,separator:l,debugIds:o})=>Is(x(ke(e),(l=>Ae(s,ts(ss({},Je(t,l)),{key:l,tableId:l,store:e,debugIds:o})))),l),e.ValueView=ws,e.ValuesView=({store:e,valueComponent:s=ws,getValueComponentProps:t,separator:l,debugIds:o})=>Is(x(me(e),(l=>Ae(s,ts(ss({},Je(t,l)),{key:l,valueId:l,store:e,debugIds:o})))),l),e.useAddRowCallback=(e,s,t=ne,l,o=T,r=ne,u=!0)=>{const n=z(l);return ee((t=>m(n,(l=>m(s(t,l),(s=>o(l.addRow(f(e)?e(t,l):e,s,u),l,s)))))),[n,e,...t,...r,u])},e.useCell=he,e.useCellIds=ve,e.useCellIdsListener=(e,s,t,l,o,r)=>Ce(k,z(r),t,l,[e,s],o),e.useCellListener=(e,s,t,l,o,r,u)=>Ce(R,z(u),l,o,[e,s,t],r),e.useCheckpoint=De,e.useCheckpointIds=Me,e.useCheckpointIdsListener=(e,s,t)=>Ce("CheckpointIds",Y(t),e,s),e.useCheckpointListener=(e,s,t,l)=>Ce("Checkpoint",Y(l),s,t,[e]),e.useCheckpoints=e=>G(e,10),e.useCheckpointsIds=()=>W(11),e.useCheckpointsOrCheckpointsById=Y,e.useCreateCheckpoints=(e,s,t)=>ce(e,s,t),e.useCreateIndexes=(e,s,t)=>ce(e,s,t),e.useCreateMergeableStore=(e,s=ne)=>te(e,s),e.useCreateMetrics=(e,s,t)=>ce(e,s,t),e.useCreatePersister=(e,s,t=ne,l,o=ne,r,u=ne)=>{const[,n]=re(),[d,i]=re();return se((()=>{const t=s(e);i(t),t&&l&&_(void 0,null,(function*(){yield l(t),n([])}))}),[e,...t,...o]),se((()=>()=>{d&&(d.destroy(),null==r||r(d))}),[d,...u]),d},e.useCreateQueries=(e,s,t)=>ce(e,s,t),e.useCreateRelationships=(e,s,t)=>ce(e,s,t),e.useCreateStore=(e,s=ne)=>te(e,s),e.useCreateSynchronizer=(e,s,t=ne,l,o=ne,r,u=ne)=>{const[,n]=re(),[d,i]=re();return se((()=>{_(void 0,null,(function*(){const t=yield s(e);i(t),t&&l&&_(void 0,null,(function*(){yield l(t),n([])}))}))}),[e,...t,...o]),se((()=>()=>{d&&(d.destroy(),null==r||r(d))}),[d,...u]),d},e.useDelCellCallback=(e,s,t,l,o,r,u)=>we(o,R,r,u,e,s,t,l),e.useDelRowCallback=(e,s,t,l,o)=>we(t,p,l,o,e,s),e.useDelTableCallback=(e,s,t,l)=>we(s,a,t,l,e),e.useDelTablesCallback=(e,s,t)=>we(e,c,s,t),e.useDelValueCallback=(e,s,t,l)=>we(s,y,t,l,e),e.useDelValuesCallback=(e,s,t)=>we(e,g,s,t),e.useDidFinishTransactionListener=(e,s,t)=>Ce("DidFinish"+$,z(t),e,s),e.useGoBackwardCallback=je,e.useGoForwardCallback=Fe,e.useGoToCallback=(e,s=ne,t,l=T,o=ne)=>{const r=Y(t);return ee((s=>m(r,(t=>m(e(s),(e=>l(t.goTo(e),e)))))),[r,...s,...o])},e.useHasCell=(e,s,t,l)=>pe(R,z(l),4,[e,s,t]),e.useHasCellListener=(e,s,t,l,o,r,u)=>Ce(d+R,z(u),l,o,[e,s,t],r),e.useHasRow=(e,s,t)=>pe(p,z(t),4,[e,s]),e.useHasRowListener=(e,s,t,l,o,r)=>Ce(d+p,z(r),t,l,[e,s],o),e.useHasTable=(e,s)=>pe(a,z(s),4,[e]),e.useHasTableCell=(e,s,t)=>pe(a+R,z(t),4,[e,s]),e.useHasTableCellListener=(e,s,t,l,o,r)=>Ce(d+a+R,z(r),t,l,[e,s],o),e.useHasTableListener=(e,s,t,l,o)=>Ce(d+a,z(o),s,t,[e],l),e.useHasTables=e=>pe(c,z(e),4,[]),e.useHasTablesListener=(e,s,t,l)=>Ce(d+c,z(l),e,s,[],t),e.useHasValue=(e,s)=>pe(y,z(s),4,[e]),e.useHasValueListener=(e,s,t,l,o)=>Ce(d+y,z(o),s,t,[e],l),e.useHasValues=e=>pe(g,z(e),4,[]),e.useHasValuesListener=(e,s,t,l)=>Ce(d+g,z(l),e,s,[],t),e.useIndexIds=e=>pe("IndexIds",K(e),1),e.useIndexes=e=>G(e,4),e.useIndexesIds=()=>W(5),e.useIndexesOrIndexesById=K,e.useLinkedRowIds=xe,e.useLinkedRowIdsListener=(e,s,t,l,o)=>Ce("Linked"+b,N(o),t,l,[e,s]),e.useLocalRowIds=Pe,e.useLocalRowIdsListener=(e,s,t,l,o)=>Ce("Local"+b,N(o),t,l,[e,s]),e.useMetric=fe,e.useMetricIds=e=>pe("MetricIds",J(e),1),e.useMetricListener=(e,s,t,l)=>Ce("Metric",J(l),s,t,[e]),e.useMetrics=e=>G(e,2),e.useMetricsIds=()=>W(3),e.useMetricsOrMetricsById=J,e.useProvideStore=(e,s)=>{const{12:t,13:l}=E(A);Q((()=>(null==t||t(e,s),()=>null==l?void 0:l(e))),[t,e,s,l])},e.useQueries=e=>G(e,8),e.useQueriesIds=()=>W(9),e.useQueriesOrQueriesById=X,e.useQueryIds=e=>pe("QueryIds",X(e),1),e.useRedoInformation=e=>{var s;const t=Y(e),[,,[o]]=Me(t);return[!h(o),Fe(t),o,null!=(s=m(o,(e=>null==t?void 0:t.getCheckpoint(e))))?s:l]},e.useRelationshipIds=e=>pe("RelationshipIds",N(e),1),e.useRelationships=e=>G(e,6),e.useRelationshipsIds=()=>W(7),e.useRelationshipsOrRelationshipsById=N,e.useRemoteRowId=Ve,e.useRemoteRowIdListener=(e,s,t,l,o)=>Ce("RemoteRowId",N(o),t,l,[e,s]),e.useResultCell=He,e.useResultCellIds=Be,e.useResultCellIdsListener=(e,s,t,l,o)=>Ce(n+k,X(o),t,l,[e,s]),e.useResultCellListener=(e,s,t,l,o,r)=>Ce(n+R,X(r),l,o,[e,s,t]),e.useResultRow=(e,s,t)=>pe(n+p,X(t),0,[e,s]),e.useResultRowCount=(e,s)=>pe(n+C,X(s),5,[e]),e.useResultRowCountListener=(e,s,t,l)=>Ce(n+C,X(l),s,t,[e]),e.useResultRowIds=Oe,e.useResultRowIdsListener=(e,s,t,l)=>Ce(n+b,X(l),s,t,[e]),e.useResultRowListener=(e,s,t,l,o)=>Ce(n+p,X(o),t,l,[e,s]),e.useResultSortedRowIds=qe,e.useResultSortedRowIdsListener=(e,s,t,l,o,r,u,d)=>Ce(n+w,X(d),r,u,[e,s,t,l,o]),e.useResultTable=(e,s)=>pe(n+a,X(s),0,[e]),e.useResultTableCellIds=(e,s)=>pe(n+a+k,X(s),1,[e]),e.useResultTableCellIdsListener=(e,s,t,l)=>Ce(n+a+k,X(l),s,t,[e]),e.useResultTableListener=(e,s,t,l)=>Ce(n+a,X(l),s,t,[e]),e.useRow=(e,s,t)=>pe(p,z(t),0,[e,s]),e.useRowCount=(e,s)=>pe(C,z(s),5,[e]),e.useRowCountListener=(e,s,t,l,o)=>Ce(C,z(o),s,t,[e],l),e.useRowIds=ye,e.useRowIdsListener=(e,s,t,l,o)=>Ce(b,z(o),s,t,[e],l),e.useRowListener=(e,s,t,l,o,r)=>Ce(p,z(r),t,l,[e,s],o),e.useSetCellCallback=(e,s,t,l,o,r,u,n)=>be(r,R,l,o,u,n,e,s,t),e.useSetCheckpointCallback=(e=T,s=ne,t,l=T,o=ne)=>{const r=Y(t);return ee((s=>m(r,(t=>{const o=e(s);l(t.addCheckpoint(o),t,o)}))),[r,...s,...o])},e.useSetPartialRowCallback=(e,s,t,l,o,r,u)=>be(o,"PartialRow",t,l,r,u,e,s),e.useSetPartialValuesCallback=(e,s,t,l,o)=>be(t,"PartialValues",e,s,l,o),e.useSetRowCallback=(e,s,t,l,o,r,u)=>be(o,p,t,l,r,u,e,s),e.useSetTableCallback=(e,s,t,l,o,r)=>be(l,a,s,t,o,r,e),e.useSetTablesCallback=(e,s,t,l,o)=>be(t,c,e,s,l,o),e.useSetValueCallback=(e,s,t,l,o,r)=>be(l,y,s,t,o,r,e),e.useSetValuesCallback=(e,s,t,l,o)=>be(t,g,e,s,l,o),e.useSliceIds=Se,e.useSliceIdsListener=(e,s,t,l)=>Ce("SliceIds",K(l),s,t,[e]),e.useSliceRowIds=Te,e.useSliceRowIdsListener=(e,s,t,l,o)=>Ce("Slice"+b,K(o),t,l,[e,s]),e.useSortedRowIds=ge,e.useSortedRowIdsListener=(e,s,t,l,o,r,u,n,d)=>Ce(w,z(d),r,u,[e,s,t,l,o],n),e.useStartTransactionListener=(e,s,t)=>Ce("Start"+$,z(t),e,s),e.useStore=e=>G(e,0),e.useStoreIds=()=>W(1),e.useStoreOrStoreById=z,e.useTable=(e,s)=>pe(a,z(s),0,[e]),e.useTableCellIds=(e,s)=>pe(a+k,z(s),1,[e]),e.useTableCellIdsListener=(e,s,t,l,o)=>Ce(a+k,z(o),s,t,[e],l),e.useTableIds=ke,e.useTableIdsListener=(e,s,t,l)=>Ce(I,z(l),e,s,ne,t),e.useTableListener=(e,s,t,l,o)=>Ce(a,z(o),s,t,[e],l),e.useTables=e=>pe(c,z(e),0),e.useTablesListener=(e,s,t,l)=>Ce(c,z(l),e,s,ne,t),e.useUndoInformation=e=>{var s;const t=Y(e),[o,r]=Me(t);return[(u=o,!(0==S(u))),je(t),r,null!=(s=m(r,(e=>null==t?void 0:t.getCheckpoint(e))))?s:l];var u},e.useValue=Le,e.useValueIds=me,e.useValueIdsListener=(e,s,t,l)=>Ce(v,z(l),e,s,ne,t),e.useValueListener=(e,s,t,l,o)=>Ce(y,z(o),s,t,[e],l),e.useValues=e=>pe(g,z(e),0),e.useValuesListener=(e,s,t,l)=>Ce(g,z(l),e,s,ne,t),e.useWillFinishTransactionListener=(e,s,t)=>Ce("WillFinish"+$,z(t),e,s)},"object"==typeof exports&&"undefined"!=typeof module?s(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],s):s((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseUiReact={},e.React);
1
+ var e,s;e=this,s=function(e,s){"use strict";const t=e=>typeof e,l="",o=t(l),r=t(t),u="Listener",n="Result",d="Has",i="Ids",a="Table",c=a+"s",I=a+i,p="Row",C=p+"Count",b=p+i,w="Sorted"+p+i,R="Cell",k=R+i,y="Value",g=y+"s",v=y+i,h=e=>null==e,m=(e,s,t)=>h(e)?null==t?void 0:t():s(e),L=e=>t(e)==o,f=e=>t(e)==r,S=e=>e.length,T=()=>{},V=(e,s)=>e.every(s),P=(e,s)=>S(e)===S(s)&&V(e,((e,t)=>s[t]===e)),x=(e,s)=>e.map(s),O=Object,q=e=>O.getPrototypeOf(e),B=O.entries,H=e=>!h(e)&&m(q(e),(e=>e==O.prototype||h(q(e))),(()=>!0)),M=O.keys,D=(e,s)=>m(e,(e=>e[s])),j=(e,s)=>{const t=B(e);return S(t)===S(M(s))&&V(t,(([e,t])=>H(t)?!!H(s[e])&&j(s[e],t):s[e]===t))},{createContext:F,useContext:E,useEffect:Q}=s,A=F([]),G=(e,s)=>{var t;const l=E(A);return h(e)?l[s]:L(e)?D(null!=(t=l[s+1])?t:{},e):e},U=(e,s)=>{const t=G(e,s);return h(e)||L(e)?t:e},W=e=>{var s;return M(null!=(s=E(A)[e])?s:{})},z=e=>U(e,0),J=e=>U(e,2),K=e=>U(e,4),N=e=>U(e,6),X=e=>U(e,8),Y=e=>U(e,10),Z=e=>e.toLowerCase();Z(u);const $="Transaction";Z($);var _=(e,s,t)=>new Promise(((l,o)=>{var r=e=>{try{n(t.next(e))}catch(e){o(e)}},u=e=>{try{n(t.throw(e))}catch(e){o(e)}},n=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,u);n((t=t.apply(e,s)).next())}));const{useCallback:ee,useEffect:se,useMemo:te,useLayoutEffect:le,useRef:oe,useState:re,useSyncExternalStore:ue}=s,ne=[],de=[{},[],[ne,void 0,ne],void 0,!1,0],ie=(e,s)=>e===s,ae=[j,P,([e,s,t],[l,o,r])=>s===o&&P(e,l)&&P(t,r)],ce=(e,s,t=ne)=>{const[,l]=re(),[o,r]=re();return se((()=>{const t=s(e);return r(t),l([]),t.destroy}),[e,...t]),o},Ie=(e,s,...t)=>{var l;const o=null==(l=null==e?void 0:e["add"+s+u])?void 0:l.call(e,...t);return()=>null==e?void 0:e.delListener(o)},pe=(e,s,t,o=ne)=>{const r=oe(de[t]),u=ee((()=>{var l,u,n;const d=null!=(u=null==(l=null==s?void 0:s[(4==t?"has":"get")+e])?void 0:l.call(s,...o))?u:de[t];return(null!=(n=ae[t])?n:ie)(d,r.current)?r.current:r.current=d}),[s,t,e,...o]),n=ee((r=>Ie(s,(4==t?d:l)+e,...o,r)),[s,t,e,...o]);return ue(n,u)},Ce=(e,s,t,l=ne,o=ne,...r)=>le((()=>Ie(s,e,...o,t,...r)),[s,e,...o,...l,...r]),be=(e,s,t,l=ne,o=T,r=ne,...u)=>{const n=z(e);return ee((e=>m(n,(l=>m(t(e,l),(t=>o(l["set"+s](...x(u,(s=>f(s)?s(e,l):s)),t),t)))))),[n,s,...l,...r,...u])},we=(e,s,t=T,l=ne,...o)=>{const r=z(e);return ee((()=>t(null==r?void 0:r["del"+s](...o))),[r,s,...l,...o])},Re=(e,s,t)=>{const l=Y(e);return ee((()=>null==l?void 0:l[s](t)),[l,s,t])},ke=e=>pe(I,z(e),1),ye=(e,s)=>pe(b,z(s),1,[e]),ge=(e,s,t,l=0,o,r)=>pe(w,z(r),1,[e,s,t,l,o]),ve=(e,s,t)=>pe(k,z(t),1,[e,s]),he=(e,s,t,l)=>pe(R,z(l),3,[e,s,t]),me=e=>pe(v,z(e),1),Le=(e,s)=>pe(y,z(s),3,[e]),fe=(e,s)=>pe("Metric",J(s),3,[e]),Se=(e,s)=>pe("SliceIds",K(s),1,[e]),Te=(e,s,t)=>pe("Slice"+b,K(t),1,[e,s]),Ve=(e,s,t)=>pe("RemoteRowId",N(t),3,[e,s]),Pe=(e,s,t)=>pe("Local"+b,N(t),1,[e,s]),xe=(e,s,t)=>pe("Linked"+b,N(t),1,[e,s]),Oe=(e,s)=>pe(n+b,X(s),1,[e]),qe=(e,s,t,l=0,o,r)=>pe(n+w,X(r),1,[e,s,t,l,o]),Be=(e,s,t)=>pe(n+k,X(t),1,[e,s]),He=(e,s,t,l)=>pe(n+R,X(l),3,[e,s,t]),Me=e=>pe("CheckpointIds",Y(e),2),De=(e,s)=>pe("Checkpoint",Y(s),3,[e]),je=e=>Re(e,"goBackward"),Fe=e=>Re(e,"goForward"),{PureComponent:Ee,Fragment:Qe,createElement:Ae,useCallback:Ge,useLayoutEffect:Ue,useRef:We,useState:ze}=s,Je=(e,...s)=>h(e)?{}:e(...s),Ke=(e,s)=>[e,null==e?void 0:e.getStore(),null==e?void 0:e.getLocalTableId(s),null==e?void 0:e.getRemoteTableId(s)];var Ne=Object.defineProperty,Xe=Object.defineProperties,Ye=Object.getOwnPropertyDescriptors,Ze=Object.getOwnPropertySymbols,$e=Object.prototype.hasOwnProperty,_e=Object.prototype.propertyIsEnumerable,es=(e,s,t)=>s in e?Ne(e,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[s]=t,ss=(e,s)=>{for(var t in s||(s={}))$e.call(s,t)&&es(e,t,s[t]);if(Ze)for(var t of Ze(s))_e.call(s,t)&&es(e,t,s[t]);return e},ts=(e,s)=>Xe(e,Ye(s)),ls=(e,s)=>{var t={};for(var l in e)$e.call(e,l)&&s.indexOf(l)<0&&(t[l]=e[l]);if(null!=e&&Ze)for(var l of Ze(e))s.indexOf(l)<0&&_e.call(e,l)&&(t[l]=e[l]);return t};const{useCallback:os,useContext:rs,useMemo:us,useState:ns}=s,ds=({tableId:e,store:s,rowComponent:t=Cs,getRowComponentProps:l,customCellIds:o,separator:r,debugIds:u},n)=>Is(x(n,(r=>Ae(t,ts(ss({},Je(l,r)),{key:r,tableId:e,rowId:r,customCellIds:o,store:s,debugIds:u})))),r,u,e),is=({queryId:e,queries:s,resultRowComponent:t=ys,getResultRowComponentProps:l,separator:o,debugIds:r},u)=>Is(x(u,(o=>Ae(t,ts(ss({},Je(l,o)),{key:o,queryId:e,rowId:o,queries:s,debugIds:r})))),o,r,e),as=({relationshipId:e,relationships:s,rowComponent:t=Cs,getRowComponentProps:l,separator:o,debugIds:r},u,n)=>{const[d,i,a]=Ke(N(s),e),c=u(e,n,d);return Is(x(c,(e=>Ae(t,ts(ss({},Je(l,e)),{key:e,tableId:a,rowId:e,store:i,debugIds:r})))),o,r,n)},cs=e=>({checkpoints:s,checkpointComponent:t=gs,getCheckpointComponentProps:l,separator:o,debugIds:r})=>{const u=Y(s);return Is(x(e(Me(u)),(e=>Ae(t,ts(ss({},Je(l,e)),{key:e,checkpoints:u,checkpointId:e,debugIds:r})))),o)},Is=(e,s,t,l)=>{const o=h(s)||!Array.isArray(e)?e:x(e,((e,t)=>t>0?[s,e]:e));return t?[l,":{",o,"}"]:o},ps=({tableId:e,rowId:s,cellId:t,store:o,debugIds:r})=>{var u;return Is(l+(null!=(u=he(e,s,t,o))?u:l),void 0,r,t)},Cs=({tableId:e,rowId:s,store:t,cellComponent:l=ps,getCellComponentProps:o,customCellIds:r,separator:u,debugIds:n})=>Is(x(((e,s,t,l)=>{const o=ve(s,t,l);return null!=e?e:o})(r,e,s,t),(r=>Ae(l,ts(ss({},Je(o,r)),{key:r,tableId:e,rowId:s,cellId:r,store:t,debugIds:n})))),u,n,s),bs=e=>ds(e,ye(e.tableId,e.store)),ws=({valueId:e,store:s,debugIds:t})=>{var o;return Is(l+(null!=(o=Le(e,s))?o:l),void 0,t,e)},Rs=({indexId:e,sliceId:s,indexes:t,rowComponent:l=Cs,getRowComponentProps:o,separator:r,debugIds:u})=>{const[n,d,i]=((e,s)=>[e,null==e?void 0:e.getStore(),null==e?void 0:e.getTableId(s)])(K(t),e),a=Te(e,s,n);return Is(x(a,(e=>Ae(l,ts(ss({},Je(o,e)),{key:e,tableId:i,rowId:e,store:d,debugIds:u})))),r,u,s)},ks=({queryId:e,rowId:s,cellId:t,queries:o,debugIds:r})=>{var u;return Is(l+(null!=(u=He(e,s,t,o))?u:l),void 0,r,t)},ys=({queryId:e,rowId:s,queries:t,resultCellComponent:l=ks,getResultCellComponentProps:o,separator:r,debugIds:u})=>Is(x(Be(e,s,t),(r=>Ae(l,ts(ss({},Je(o,r)),{key:r,queryId:e,rowId:s,cellId:r,queries:t,debugIds:u})))),r,u,s),gs=({checkpoints:e,checkpointId:s,debugIds:t})=>{var o;return Is(null!=(o=De(s,e))?o:l,void 0,t,s)},vs=cs((e=>e[0])),hs=cs((e=>h(e[1])?[]:[e[1]])),ms=cs((e=>e[2]));e.BackwardCheckpointsView=vs,e.CellView=ps,e.CheckpointView=gs,e.CurrentCheckpointView=hs,e.ForwardCheckpointsView=ms,e.IndexView=({indexId:e,indexes:s,sliceComponent:t=Rs,getSliceComponentProps:l,separator:o,debugIds:r})=>Is(x(Se(e,s),(o=>Ae(t,ts(ss({},Je(l,o)),{key:o,indexId:e,sliceId:o,indexes:s,debugIds:r})))),o,r,e),e.LinkedRowsView=e=>as(e,xe,e.firstRowId),e.LocalRowsView=e=>as(e,Pe,e.remoteRowId),e.MetricView=({metricId:e,metrics:s,debugIds:t})=>{var o;return Is(null!=(o=fe(e,s))?o:l,void 0,t,e)},e.Provider=({store:e,storesById:s,metrics:t,metricsById:l,indexes:o,indexesById:r,relationships:u,relationshipsById:n,queries:d,queriesById:i,checkpoints:a,checkpointsById:c,children:I})=>{const p=rs(A),[C,b]=ns({}),w=os(((e,s)=>b((t=>D(t,e)==s?t:ts(ss({},t),{[e]:s})))),[]),R=os((e=>b((s=>ss({},((e,s)=>(delete e[s],e))(s,e))))),[]);return Ae(A.Provider,{value:us((()=>[null!=e?e:p[0],ss(ss(ss({},p[1]),s),C),null!=t?t:p[2],ss(ss({},p[3]),l),null!=o?o:p[4],ss(ss({},p[5]),r),null!=u?u:p[6],ss(ss({},p[7]),n),null!=d?d:p[8],ss(ss({},p[9]),i),null!=a?a:p[10],ss(ss({},p[11]),c),w,R]),[e,s,C,t,l,o,r,u,n,d,i,a,c,p,w,R])},I)},e.RemoteRowView=({relationshipId:e,localRowId:s,relationships:t,rowComponent:l=Cs,getRowComponentProps:o,debugIds:r})=>{const[u,n,,d]=Ke(N(t),e),i=Ve(e,s,u);return Is(h(d)||h(i)?null:Ae(l,ts(ss({},Je(o,i)),{key:i,tableId:d,rowId:i,store:n,debugIds:r})),void 0,r,s)},e.ResultCellView=ks,e.ResultRowView=ys,e.ResultSortedTableView=e=>{var s=e,{cellId:t,descending:l,offset:o,limit:r}=s,u=ls(s,["cellId","descending","offset","limit"]);return is(u,qe(u.queryId,t,l,o,r,u.queries))},e.ResultTableView=e=>is(e,Oe(e.queryId,e.queries)),e.RowView=Cs,e.SliceView=Rs,e.SortedTableView=e=>{var s=e,{cellId:t,descending:l,offset:o,limit:r}=s,u=ls(s,["cellId","descending","offset","limit"]);return ds(u,ge(u.tableId,t,l,o,r,u.store))},e.TableView=bs,e.TablesView=({store:e,tableComponent:s=bs,getTableComponentProps:t,separator:l,debugIds:o})=>Is(x(ke(e),(l=>Ae(s,ts(ss({},Je(t,l)),{key:l,tableId:l,store:e,debugIds:o})))),l),e.ValueView=ws,e.ValuesView=({store:e,valueComponent:s=ws,getValueComponentProps:t,separator:l,debugIds:o})=>Is(x(me(e),(l=>Ae(s,ts(ss({},Je(t,l)),{key:l,valueId:l,store:e,debugIds:o})))),l),e.useAddRowCallback=(e,s,t=ne,l,o=T,r=ne,u=!0)=>{const n=z(l);return ee((t=>m(n,(l=>m(s(t,l),(s=>o(l.addRow(f(e)?e(t,l):e,s,u),l,s)))))),[n,e,...t,...r,u])},e.useCell=he,e.useCellIds=ve,e.useCellIdsListener=(e,s,t,l,o,r)=>Ce(k,z(r),t,l,[e,s],o),e.useCellListener=(e,s,t,l,o,r,u)=>Ce(R,z(u),l,o,[e,s,t],r),e.useCheckpoint=De,e.useCheckpointIds=Me,e.useCheckpointIdsListener=(e,s,t)=>Ce("CheckpointIds",Y(t),e,s),e.useCheckpointListener=(e,s,t,l)=>Ce("Checkpoint",Y(l),s,t,[e]),e.useCheckpoints=e=>G(e,10),e.useCheckpointsIds=()=>W(11),e.useCheckpointsOrCheckpointsById=Y,e.useCreateCheckpoints=(e,s,t)=>ce(e,s,t),e.useCreateIndexes=(e,s,t)=>ce(e,s,t),e.useCreateMergeableStore=(e,s=ne)=>te(e,s),e.useCreateMetrics=(e,s,t)=>ce(e,s,t),e.useCreatePersister=(e,s,t=ne,l,o=ne,r,u=ne)=>{const[,n]=re(),[d,i]=re();return se((()=>{const t=s(e);i(t),t&&l&&_(void 0,null,(function*(){yield l(t),n([])}))}),[e,...t,...o]),se((()=>()=>{d&&(d.destroy(),null==r||r(d))}),[d,...u]),d},e.useCreateQueries=(e,s,t)=>ce(e,s,t),e.useCreateRelationships=(e,s,t)=>ce(e,s,t),e.useCreateStore=(e,s=ne)=>te(e,s),e.useCreateSynchronizer=(e,s,t=ne,l,o=ne)=>{const[r,u]=re();return se((()=>{_(void 0,null,(function*(){const t=yield s(e);u(t)}))}),[e,...t]),se((()=>()=>{r&&(r.destroy(),null==l||l(r))}),[r,...o]),r},e.useDelCellCallback=(e,s,t,l,o,r,u)=>we(o,R,r,u,e,s,t,l),e.useDelRowCallback=(e,s,t,l,o)=>we(t,p,l,o,e,s),e.useDelTableCallback=(e,s,t,l)=>we(s,a,t,l,e),e.useDelTablesCallback=(e,s,t)=>we(e,c,s,t),e.useDelValueCallback=(e,s,t,l)=>we(s,y,t,l,e),e.useDelValuesCallback=(e,s,t)=>we(e,g,s,t),e.useDidFinishTransactionListener=(e,s,t)=>Ce("DidFinish"+$,z(t),e,s),e.useGoBackwardCallback=je,e.useGoForwardCallback=Fe,e.useGoToCallback=(e,s=ne,t,l=T,o=ne)=>{const r=Y(t);return ee((s=>m(r,(t=>m(e(s),(e=>l(t.goTo(e),e)))))),[r,...s,...o])},e.useHasCell=(e,s,t,l)=>pe(R,z(l),4,[e,s,t]),e.useHasCellListener=(e,s,t,l,o,r,u)=>Ce(d+R,z(u),l,o,[e,s,t],r),e.useHasRow=(e,s,t)=>pe(p,z(t),4,[e,s]),e.useHasRowListener=(e,s,t,l,o,r)=>Ce(d+p,z(r),t,l,[e,s],o),e.useHasTable=(e,s)=>pe(a,z(s),4,[e]),e.useHasTableCell=(e,s,t)=>pe(a+R,z(t),4,[e,s]),e.useHasTableCellListener=(e,s,t,l,o,r)=>Ce(d+a+R,z(r),t,l,[e,s],o),e.useHasTableListener=(e,s,t,l,o)=>Ce(d+a,z(o),s,t,[e],l),e.useHasTables=e=>pe(c,z(e),4,[]),e.useHasTablesListener=(e,s,t,l)=>Ce(d+c,z(l),e,s,[],t),e.useHasValue=(e,s)=>pe(y,z(s),4,[e]),e.useHasValueListener=(e,s,t,l,o)=>Ce(d+y,z(o),s,t,[e],l),e.useHasValues=e=>pe(g,z(e),4,[]),e.useHasValuesListener=(e,s,t,l)=>Ce(d+g,z(l),e,s,[],t),e.useIndexIds=e=>pe("IndexIds",K(e),1),e.useIndexes=e=>G(e,4),e.useIndexesIds=()=>W(5),e.useIndexesOrIndexesById=K,e.useLinkedRowIds=xe,e.useLinkedRowIdsListener=(e,s,t,l,o)=>Ce("Linked"+b,N(o),t,l,[e,s]),e.useLocalRowIds=Pe,e.useLocalRowIdsListener=(e,s,t,l,o)=>Ce("Local"+b,N(o),t,l,[e,s]),e.useMetric=fe,e.useMetricIds=e=>pe("MetricIds",J(e),1),e.useMetricListener=(e,s,t,l)=>Ce("Metric",J(l),s,t,[e]),e.useMetrics=e=>G(e,2),e.useMetricsIds=()=>W(3),e.useMetricsOrMetricsById=J,e.useProvideStore=(e,s)=>{const{12:t,13:l}=E(A);Q((()=>(null==t||t(e,s),()=>null==l?void 0:l(e))),[t,e,s,l])},e.useQueries=e=>G(e,8),e.useQueriesIds=()=>W(9),e.useQueriesOrQueriesById=X,e.useQueryIds=e=>pe("QueryIds",X(e),1),e.useRedoInformation=e=>{var s;const t=Y(e),[,,[o]]=Me(t);return[!h(o),Fe(t),o,null!=(s=m(o,(e=>null==t?void 0:t.getCheckpoint(e))))?s:l]},e.useRelationshipIds=e=>pe("RelationshipIds",N(e),1),e.useRelationships=e=>G(e,6),e.useRelationshipsIds=()=>W(7),e.useRelationshipsOrRelationshipsById=N,e.useRemoteRowId=Ve,e.useRemoteRowIdListener=(e,s,t,l,o)=>Ce("RemoteRowId",N(o),t,l,[e,s]),e.useResultCell=He,e.useResultCellIds=Be,e.useResultCellIdsListener=(e,s,t,l,o)=>Ce(n+k,X(o),t,l,[e,s]),e.useResultCellListener=(e,s,t,l,o,r)=>Ce(n+R,X(r),l,o,[e,s,t]),e.useResultRow=(e,s,t)=>pe(n+p,X(t),0,[e,s]),e.useResultRowCount=(e,s)=>pe(n+C,X(s),5,[e]),e.useResultRowCountListener=(e,s,t,l)=>Ce(n+C,X(l),s,t,[e]),e.useResultRowIds=Oe,e.useResultRowIdsListener=(e,s,t,l)=>Ce(n+b,X(l),s,t,[e]),e.useResultRowListener=(e,s,t,l,o)=>Ce(n+p,X(o),t,l,[e,s]),e.useResultSortedRowIds=qe,e.useResultSortedRowIdsListener=(e,s,t,l,o,r,u,d)=>Ce(n+w,X(d),r,u,[e,s,t,l,o]),e.useResultTable=(e,s)=>pe(n+a,X(s),0,[e]),e.useResultTableCellIds=(e,s)=>pe(n+a+k,X(s),1,[e]),e.useResultTableCellIdsListener=(e,s,t,l)=>Ce(n+a+k,X(l),s,t,[e]),e.useResultTableListener=(e,s,t,l)=>Ce(n+a,X(l),s,t,[e]),e.useRow=(e,s,t)=>pe(p,z(t),0,[e,s]),e.useRowCount=(e,s)=>pe(C,z(s),5,[e]),e.useRowCountListener=(e,s,t,l,o)=>Ce(C,z(o),s,t,[e],l),e.useRowIds=ye,e.useRowIdsListener=(e,s,t,l,o)=>Ce(b,z(o),s,t,[e],l),e.useRowListener=(e,s,t,l,o,r)=>Ce(p,z(r),t,l,[e,s],o),e.useSetCellCallback=(e,s,t,l,o,r,u,n)=>be(r,R,l,o,u,n,e,s,t),e.useSetCheckpointCallback=(e=T,s=ne,t,l=T,o=ne)=>{const r=Y(t);return ee((s=>m(r,(t=>{const o=e(s);l(t.addCheckpoint(o),t,o)}))),[r,...s,...o])},e.useSetPartialRowCallback=(e,s,t,l,o,r,u)=>be(o,"PartialRow",t,l,r,u,e,s),e.useSetPartialValuesCallback=(e,s,t,l,o)=>be(t,"PartialValues",e,s,l,o),e.useSetRowCallback=(e,s,t,l,o,r,u)=>be(o,p,t,l,r,u,e,s),e.useSetTableCallback=(e,s,t,l,o,r)=>be(l,a,s,t,o,r,e),e.useSetTablesCallback=(e,s,t,l,o)=>be(t,c,e,s,l,o),e.useSetValueCallback=(e,s,t,l,o,r)=>be(l,y,s,t,o,r,e),e.useSetValuesCallback=(e,s,t,l,o)=>be(t,g,e,s,l,o),e.useSliceIds=Se,e.useSliceIdsListener=(e,s,t,l)=>Ce("SliceIds",K(l),s,t,[e]),e.useSliceRowIds=Te,e.useSliceRowIdsListener=(e,s,t,l,o)=>Ce("Slice"+b,K(o),t,l,[e,s]),e.useSortedRowIds=ge,e.useSortedRowIdsListener=(e,s,t,l,o,r,u,n,d)=>Ce(w,z(d),r,u,[e,s,t,l,o],n),e.useStartTransactionListener=(e,s,t)=>Ce("Start"+$,z(t),e,s),e.useStore=e=>G(e,0),e.useStoreIds=()=>W(1),e.useStoreOrStoreById=z,e.useTable=(e,s)=>pe(a,z(s),0,[e]),e.useTableCellIds=(e,s)=>pe(a+k,z(s),1,[e]),e.useTableCellIdsListener=(e,s,t,l,o)=>Ce(a+k,z(o),s,t,[e],l),e.useTableIds=ke,e.useTableIdsListener=(e,s,t,l)=>Ce(I,z(l),e,s,ne,t),e.useTableListener=(e,s,t,l,o)=>Ce(a,z(o),s,t,[e],l),e.useTables=e=>pe(c,z(e),0),e.useTablesListener=(e,s,t,l)=>Ce(c,z(l),e,s,ne,t),e.useUndoInformation=e=>{var s;const t=Y(e),[o,r]=Me(t);return[(u=o,!(0==S(u))),je(t),r,null!=(s=m(r,(e=>null==t?void 0:t.getCheckpoint(e))))?s:l];var u},e.useValue=Le,e.useValueIds=me,e.useValueIdsListener=(e,s,t,l)=>Ce(v,z(l),e,s,ne,t),e.useValueListener=(e,s,t,l,o)=>Ce(y,z(o),s,t,[e],l),e.useValues=e=>pe(g,z(e),0),e.useValuesListener=(e,s,t,l)=>Ce(g,z(l),e,s,ne,t),e.useWillFinishTransactionListener=(e,s,t)=>Ce("WillFinish"+$,z(t),e,s)},"object"==typeof exports&&"undefined"!=typeof module?s(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],s):s((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseUiReact={},e.React);
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tinybase",
3
- "version": "5.0.0-beta.10",
3
+ "version": "5.0.0-beta.12",
4
4
  "author": "jamesgpearce",
5
5
  "repository": "github:tinyplex/tinybase",
6
6
  "license": "MIT",
package/readme.md CHANGED
@@ -1,4 +1,4 @@
1
- <section id="hero"><h2 id="the-reactive-data-store-for-local-first-apps">The <em>reactive</em> data store for <span>local-first apps</span>.</h2><p id="copy">Build blisteringly fast web apps that work both online and offline. Manage your state locally, synchronize it to the cloud when you need to, or even make it collaborative. But, most importantly... have fun building stuff again!</p></section><p><a href="https://beta.tinybase.org/guides/releases/#v5-0"><em>NEW!</em> v5.0 release</a> <span id="one-with">&quot;The One You Can Sync&quot;</span></p><p><a class="start" href="https://beta.tinybase.org/guides/the-basics/getting-started/">Get started</a></p><p><a href="https://beta.tinybase.org/demos/">Try the demos</a></p><p><a href="https://beta.tinybase.org/api/store/interfaces/store/store/">Read the docs</a></p><hr><ul><li>Manage <a href="#start-with-a-simple-key-value-store">key-value data</a>, <a href="#level-up-to-use-tabular-data">tabular data</a> - or both - with optional <a href="#apply-schemas-to-tables-values">schematization</a> to model your app&#x27;s data structures.</li><li><a href="#register-granular-listeners">Flexibly reactive</a> to reconciled updates, so you only spend rendering cycles on things that change.</li><li><a href="#build-complex-queries-with-tinyql">Powerful query engine</a> to select, join, filter, group, sort and paginate data - reactively - and without SQL.</li><li>Built-in <a href="#create-indexes-for-fast-lookups">indexing</a>, <a href="#define-metrics-and-aggregations">metric aggregation</a>, <a href="#model-table-relationships">tabular relationships</a> - and even an <a href="#set-checkpoints-for-an-undo-stack">undo stack</a> for your app state.</li><li>Create <a href="#type-definitions-orm-like-apis">type definitions &amp; ORM-like APIs</a>, from schema or inference. <a href="#an-inspector-for-your-data">Inspect your data</a> (<em>new!</em>) directly in the browser.</li><li>Easily <a href="#persist-to-storage-sqlite-crdts">sync your data</a> to browser <a href="https://beta.tinybase.org/api/persister-browser">storage</a>, <a href="https://beta.tinybase.org/api/persister-indexed-db/">IndexedDB</a>, <a href="https://beta.tinybase.org/guides/schemas-and-persistence/database-persistence/">SQLite</a>, <a href="https://beta.tinybase.org/guides/schemas-and-persistence/synchronizing-data/">CRDTs</a>; and (<em>new!</em>) <a href="https://beta.tinybase.org/api/persister-partykit-client/">PartyKit</a> and <a href="https://electric-sql.com/">ElectricSQL</a>.</li><li>Optional <a href="#call-hooks-to-bind-to-data">bindings to React</a> and (<em>new!</em>) <a href="#pre-built-reactive-components">pre-built components</a> that let you easily build fully reactive user interfaces.</li><li>Tiny by name, tiny by nature: <a href="#did-we-say-tiny">5.0kB - 12.1kB</a>, no dependencies. <a href="#well-tested-and-documented">100% tested</a>, <a href="https://beta.tinybase.org/guides/the-basics/getting-started/">fully documented</a>, and of course, <a href="https://github.com/tinyplex/tinybase">open source</a>!</li></ul><hr><section id="friends"><h2 id="tinybase-works-great-on-its-own-but-also-plays-well-with-friends">TinyBase works great on its own, but also plays well with friends!</h2><div><a href="https://beta.tinybase.org/guides/building-uis/getting-started-with-ui-react"><img width="48" src="https://beta.tinybase.org/react.svg"> React</a></div><div><a href="https://beta.tinybase.org/api/persister-partykit-client"><img width="48" src="https://beta.tinybase.org/partykit.svg"> PartyKit</a></div><div><a href="https://beta.tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://beta.tinybase.org/expo.svg">Expo SQLite</a></div><div><a href="https://beta.tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://beta.tinybase.org/electric.svg">ElectricSQL</a></div><div><a href="https://beta.tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://beta.tinybase.org/sqlite.svg"> SQLite</a></div><div><a href="https://beta.tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://beta.tinybase.org/turso.svg">Turso</a></div><div><a href="https://beta.tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://beta.tinybase.org/powersync.svg">PowerSync</a></div><div><a href="https://beta.tinybase.org/api/persister-indexed-db/functions/creation/createindexeddbpersister"><img width="48" src="https://beta.tinybase.org/indexeddb.svg"> IndexedDB</a></div><div><a href="https://beta.tinybase.org/api/persister-yjs/functions/creation/createyjspersister"><img width="48" src="https://beta.tinybase.org/yjs.svg"> YJS</a></div><div><a href="https://beta.tinybase.org/api/persister-cr-sqlite-wasm"><img width="48" src="https://beta.tinybase.org/crsqlite.png"> CR-SQLite</a></div><div><a href="https://beta.tinybase.org/api/persister-automerge"><img width="48" src="https://beta.tinybase.org/automerge.svg"> Automerge</a></div></section><hr><section id="follow"><a href="https://github.com/tinyplex/tinybase" target="_blank"><img src="https://img.shields.io/github/stars/tinyplex/tinybase?style=for-the-badge&amp;logo=GitHub&amp;logoColor=%23fff&amp;label=GitHub&amp;labelColor=%23d81b60&amp;color=%23333"> </a><a href="https://discord.com/invite/mGz3mevwP8" target="_blank"><img src="https://img.shields.io/discord/1027918215323590676?style=for-the-badge&amp;logo=discord&amp;logoColor=%23fff&amp;label=Discord&amp;labelColor=%233131e8&amp;color=%23333"> </a><a href="https://twitter.com/tinybasejs" target="_blank"><img src="https://img.shields.io/twitter/follow/tinybasejs?style=for-the-badge&amp;logo=x&amp;logoColor=%23fff&amp;label=Twitter&amp;labelColor=%23333&amp;color=%23333"></a><br><a href="https://github.com/tinyplex/tinybase/discussions" target="_blank"><img src="https://img.shields.io/github/discussions/tinyplex/tinybase?style=for-the-badge&amp;logo=GitHub&amp;logoColor=%23fff&amp;label=Ideas&amp;labelColor=%23d81b60&amp;color=%23333"> </a><a href="https://github.com/tinyplex/tinybase/issues" target="_blank"><img src="https://img.shields.io/github/issues/tinyplex/tinybase?style=for-the-badge&amp;logo=GitHub&amp;logoColor=%23fff&amp;label=Issues&amp;labelColor=%23d81b60&amp;color=%23333"> </a><a href="#well-tested-and-documented"><img src="https://img.shields.io/badge/Tests-100%25-green?style=for-the-badge&amp;logo=jest&amp;logoColor=%23fff&amp;color=%23333&amp;labelColor=%2387c305"> </a><a href="https://www.npmjs.com/package/tinybase/v/5.0.0-beta.10" target="_blank"><img src="https://img.shields.io/npm/v/tinybase?style=for-the-badge&amp;logo=npm&amp;logoColor=%23fff&amp;labelColor=%23bd0005&amp;color=%23333"></a></section><hr><section><h2 id="start-with-a-simple-key-value-store">Start with a simple key-value store.</h2><p>Creating a <a href="https://beta.tinybase.org/api/store/interfaces/store/store/"><code>Store</code></a> requires just a simple call to the <a href="https://beta.tinybase.org/api/store/functions/creation/createstore/"><code>createStore</code></a> function. Once you have one, you can easily set <a href="https://beta.tinybase.org/api/store/type-aliases/store/values/"><code>Values</code></a> in it by unique <a href="https://beta.tinybase.org/api/common/type-aliases/identity/id/"><code>Id</code></a>. And of course you can easily get them back out again.</p><p>Read more about using keyed value data in <a href="https://beta.tinybase.org/guides/the-basics/">The Basics</a> guide.</p></section>
1
+ <section id="hero"><h2 id="the-reactive-data-store-for-local-first-apps">The <em>reactive</em> data store for <span>local-first apps</span>.</h2><p id="copy">Build blisteringly fast web apps that work both online and offline. Manage your state locally, synchronize it to the cloud when you need to, or even make it collaborative. But, most importantly... have fun building stuff again!</p></section><p><a href="https://beta.tinybase.org/guides/releases/#v5-0"><em>NEW!</em> v5.0 release</a> <span id="one-with">&quot;The One You Can Sync&quot;</span></p><p><a class="start" href="https://beta.tinybase.org/guides/the-basics/getting-started/">Get started</a></p><p><a href="https://beta.tinybase.org/demos/">Try the demos</a></p><p><a href="https://beta.tinybase.org/api/store/interfaces/store/store/">Read the docs</a></p><hr><ul><li>Manage <a href="#start-with-a-simple-key-value-store">key-value data</a>, <a href="#level-up-to-use-tabular-data">tabular data</a> - or both - with optional <a href="#apply-schemas-to-tables-values">schematization</a> to model your app&#x27;s data structures.</li><li><a href="#register-granular-listeners">Flexibly reactive</a> to reconciled updates, so you only spend rendering cycles on things that change.</li><li><a href="#build-complex-queries-with-tinyql">Powerful query engine</a> to select, join, filter, group, sort and paginate data - reactively - and without SQL.</li><li>Built-in <a href="#create-indexes-for-fast-lookups">indexing</a>, <a href="#define-metrics-and-aggregations">metric aggregation</a>, <a href="#model-table-relationships">tabular relationships</a> - and even an <a href="#set-checkpoints-for-an-undo-stack">undo stack</a> for your app state.</li><li>Create <a href="#type-definitions-orm-like-apis">type definitions &amp; ORM-like APIs</a>, from schema or inference. <a href="#an-inspector-for-your-data">Inspect your data</a> (<em>new!</em>) directly in the browser.</li><li>Easily <a href="#persist-to-storage-sqlite-crdts">sync your data</a> to browser <a href="https://beta.tinybase.org/api/persister-browser">storage</a>, <a href="https://beta.tinybase.org/api/persister-indexed-db/">IndexedDB</a>, <a href="https://beta.tinybase.org/guides/schemas-and-persistence/database-persistence/">SQLite</a>, <a href="https://beta.tinybase.org/guides/schemas-and-persistence/synchronizing-data/">CRDTs</a>; and (<em>new!</em>) <a href="https://beta.tinybase.org/api/persister-partykit-client/">PartyKit</a> and <a href="https://electric-sql.com/">ElectricSQL</a>.</li><li>Optional <a href="#call-hooks-to-bind-to-data">bindings to React</a> and (<em>new!</em>) <a href="#pre-built-reactive-components">pre-built components</a> that let you easily build fully reactive user interfaces.</li><li>Tiny by name, tiny by nature: <a href="#did-we-say-tiny">5.0kB - 12.1kB</a>, no dependencies. <a href="#well-tested-and-documented">100% tested</a>, <a href="https://beta.tinybase.org/guides/the-basics/getting-started/">fully documented</a>, and of course, <a href="https://github.com/tinyplex/tinybase">open source</a>!</li></ul><hr><section id="friends"><h2 id="tinybase-works-great-on-its-own-but-also-plays-well-with-friends">TinyBase works great on its own, but also plays well with friends!</h2><div><a href="https://beta.tinybase.org/guides/building-uis/getting-started-with-ui-react"><img width="48" src="https://beta.tinybase.org/react.svg"> React</a></div><div><a href="https://beta.tinybase.org/api/persister-partykit-client"><img width="48" src="https://beta.tinybase.org/partykit.svg"> PartyKit</a></div><div><a href="https://beta.tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://beta.tinybase.org/expo.svg">Expo SQLite</a></div><div><a href="https://beta.tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://beta.tinybase.org/electric.svg">ElectricSQL</a></div><div><a href="https://beta.tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://beta.tinybase.org/sqlite.svg"> SQLite</a></div><div><a href="https://beta.tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://beta.tinybase.org/turso.svg">Turso</a></div><div><a href="https://beta.tinybase.org/guides/schemas-and-persistence/database-persistence"><img width="48" src="https://beta.tinybase.org/powersync.svg">PowerSync</a></div><div><a href="https://beta.tinybase.org/api/persister-indexed-db/functions/creation/createindexeddbpersister"><img width="48" src="https://beta.tinybase.org/indexeddb.svg"> IndexedDB</a></div><div><a href="https://beta.tinybase.org/api/persister-yjs/functions/creation/createyjspersister"><img width="48" src="https://beta.tinybase.org/yjs.svg"> YJS</a></div><div><a href="https://beta.tinybase.org/api/persister-cr-sqlite-wasm"><img width="48" src="https://beta.tinybase.org/crsqlite.png"> CR-SQLite</a></div><div><a href="https://beta.tinybase.org/api/persister-automerge"><img width="48" src="https://beta.tinybase.org/automerge.svg"> Automerge</a></div></section><hr><section id="follow"><a href="https://github.com/tinyplex/tinybase" target="_blank"><img src="https://img.shields.io/github/stars/tinyplex/tinybase?style=for-the-badge&amp;logo=GitHub&amp;logoColor=%23fff&amp;label=GitHub&amp;labelColor=%23d81b60&amp;color=%23333"> </a><a href="https://discord.com/invite/mGz3mevwP8" target="_blank"><img src="https://img.shields.io/discord/1027918215323590676?style=for-the-badge&amp;logo=discord&amp;logoColor=%23fff&amp;label=Discord&amp;labelColor=%233131e8&amp;color=%23333"> </a><a href="https://twitter.com/tinybasejs" target="_blank"><img src="https://img.shields.io/twitter/follow/tinybasejs?style=for-the-badge&amp;logo=x&amp;logoColor=%23fff&amp;label=Twitter&amp;labelColor=%23333&amp;color=%23333"></a><br><a href="https://github.com/tinyplex/tinybase/discussions" target="_blank"><img src="https://img.shields.io/github/discussions/tinyplex/tinybase?style=for-the-badge&amp;logo=GitHub&amp;logoColor=%23fff&amp;label=Ideas&amp;labelColor=%23d81b60&amp;color=%23333"> </a><a href="https://github.com/tinyplex/tinybase/issues" target="_blank"><img src="https://img.shields.io/github/issues/tinyplex/tinybase?style=for-the-badge&amp;logo=GitHub&amp;logoColor=%23fff&amp;label=Issues&amp;labelColor=%23d81b60&amp;color=%23333"> </a><a href="#well-tested-and-documented"><img src="https://img.shields.io/badge/Tests-100%25-green?style=for-the-badge&amp;logo=jest&amp;logoColor=%23fff&amp;color=%23333&amp;labelColor=%2387c305"> </a><a href="https://www.npmjs.com/package/tinybase/v/5.0.0-beta.12" target="_blank"><img src="https://img.shields.io/npm/v/tinybase?style=for-the-badge&amp;logo=npm&amp;logoColor=%23fff&amp;labelColor=%23bd0005&amp;color=%23333"></a></section><hr><section><h2 id="start-with-a-simple-key-value-store">Start with a simple key-value store.</h2><p>Creating a <a href="https://beta.tinybase.org/api/store/interfaces/store/store/"><code>Store</code></a> requires just a simple call to the <a href="https://beta.tinybase.org/api/store/functions/creation/createstore/"><code>createStore</code></a> function. Once you have one, you can easily set <a href="https://beta.tinybase.org/api/store/type-aliases/store/values/"><code>Values</code></a> in it by unique <a href="https://beta.tinybase.org/api/common/type-aliases/identity/id/"><code>Id</code></a>. And of course you can easily get them back out again.</p><p>Read more about using keyed value data in <a href="https://beta.tinybase.org/guides/the-basics/">The Basics</a> guide.</p></section>
2
2
 
3
3
  ```js
4
4
  const store = createStore()
@@ -247,4 +247,4 @@ export const createShop: typeof createShopDecl = () => {
247
247
  };
248
248
  ```
249
249
 
250
- <section><h2 id="did-we-say-tiny">Did we say tiny?</h2><p>If you use the basic <a href="https://beta.tinybase.org/api/store/"><code>store</code></a> module alone, you&#x27;ll only add a gzipped <em>5.0kB</em> to your app. Incrementally add the other modules as you need more functionality, or get it all for <em>12.1kB</em>.</p><p>The optional <a href="https://beta.tinybase.org/api/ui-react/"><code>ui-react</code></a> module is just another <em>4.6kB</em>, the auxiliary <a href="https://beta.tinybase.org/api/tools/"><code>tools</code></a> module is <em>11.1kB</em>, and everything is super fast. Life&#x27;s easy when you have zero dependencies!</p><p>Read more about how TinyBase is structured and packaged in the <a href="https://beta.tinybase.org/guides/how-tinybase-is-built/architecture/">Architecture</a> guide.</p></section><div class="table"><table class="fixed"><tbody><tr><th width="30%"> </th><th>.js.gz</th><th>.js</th><th>debug.js</th><th>.d.ts</th></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/store/">store</a></th><td>5.0kB</td><td>12.0kB</td><td>52.1kB</td><td>255.3kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/metrics/">metrics</a></th><td>1.8kB</td><td>3.7kB</td><td>15.3kB</td><td>30.9kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/indexes/">indexes</a></th><td>1.9kB</td><td>3.8kB</td><td>17.1kB</td><td>35.6kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/relationships/">relationships</a></th><td>1.9kB</td><td>3.8kB</td><td>17.3kB</td><td>44.2kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/queries/">queries</a></th><td>2.8kB</td><td>5.7kB</td><td>25.8kB</td><td>126.0kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/checkpoints/">checkpoints</a></th><td>1.6kB</td><td>3.2kB</td><td>13.5kB</td><td>35.1kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/mergeable-store/">mergeable-store</a></th><td>7.0kB</td><td>16.9kB</td><td>72.0kB</td><td>4.5kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/persisters/">persisters</a></th><td>0.9kB</td><td>1.8kB</td><td>6.3kB</td><td>46.3kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/synchronizers/">synchronizers</a></th><td>2.0kB</td><td>4.3kB</td><td>16.0kB</td><td>3.6kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/common/">common</a></th><td>0.1kB</td><td>0.1kB</td><td>0.1kB</td><td>3.5kB</td></tr><tr><th class="right">tinybase (all)</th><td>12.1kB</td><td>30.0kB</td><td>129.1kB</td><td>0.4kB</td></tr></tbody></table></div><section><h2 id="well-tested-and-documented">Well tested and documented.</h2><p>TinyBase has <em>100.0%</em> test coverage, including the code throughout the documentation - even on this page! The guides, demos, and API examples are designed to make it as easy as possible for you to get your TinyBase-powered app up and running.</p><p>Read more about how TinyBase is tested in the Unit <a href="https://beta.tinybase.org/guides/how-tinybase-is-built/testing/">Testing</a> guide.</p></section><div class="table"><table class="fixed"><tbody><tr><th width="30%"> </th><th>Total</th><th>Tested</th><th>Coverage</th></tr><tr><th class="right">Lines</th><td>2,362</td><td>2,362</td><td>100.0%</td></tr><tr><th class="right">Statements</th><td>2,545</td><td>2,545</td><td>100.0%</td></tr><tr><th class="right">Functions</th><td>1,000</td><td>1,000</td><td>100.0%</td></tr><tr><th class="right">Branches</th><td>934</td><td>934</td><td>100.0%</td></tr><tr><th class="right">Tests</th><td colspan="3">6,614</td></tr><tr><th class="right">Assertions</th><td colspan="3">31,159</td></tr></tbody></table></div><hr><section id="sponsors"><h2 id="proud-to-be-sponsored-by">Proud to be sponsored by:</h2><a href="https://github.com/expo" target="_blank"><img title="expo" src="https://github.com/expo.png?size=48" width="48" height="48"></a><a href="https://github.com/beekeeb" target="_blank"><img title="beekeeb" src="https://github.com/beekeeb.png?size=48" width="48" height="48"></a><a href="https://github.com/cancelself" target="_blank"><img title="cancelself" src="https://github.com/cancelself.png?size=48" width="48" height="48"></a><a href="https://github.com/WonderPanda" target="_blank"><img title="WonderPanda" src="https://github.com/WonderPanda.png?size=48" width="48" height="48"></a><a href="https://github.com/arpitBhalla" target="_blank"><img title="arpitBhalla" src="https://github.com/arpitBhalla.png?size=48" width="48" height="48"></a></section><section id="users"><h2 id="excited-to-be-used-by">Excited to be used by:</h2><a href="https://github.com/Apocalypsor" target="_blank"><img title="Apocalypsor" src="https://github.com/Apocalypsor.png?size=48" width="48" height="48"></a><a href="https://github.com/brentvatne" target="_blank"><img title="brentvatne" src="https://github.com/brentvatne.png?size=48" width="48" height="48"></a><a href="https://github.com/circadian-risk" target="_blank"><img title="circadian-risk" src="https://github.com/circadian-risk.png?size=48" width="48" height="48"></a><a href="https://github.com/cubecull" target="_blank"><img title="cubecull" src="https://github.com/cubecull.png?size=48" width="48" height="48"></a><a href="https://github.com/erwinkn" target="_blank"><img title="erwinkn" src="https://github.com/erwinkn.png?size=48" width="48" height="48"></a><a href="https://github.com/expo" target="_blank"><img title="expo" src="https://github.com/expo.png?size=48" width="48" height="48"></a><a href="https://github.com/ezra-en" target="_blank"><img title="ezra-en" src="https://github.com/ezra-en.png?size=48" width="48" height="48"></a><a href="https://github.com/fdfontes" target="_blank"><img title="fdfontes" src="https://github.com/fdfontes.png?size=48" width="48" height="48"></a><a href="https://github.com/feychenie" target="_blank"><img title="feychenie" src="https://github.com/feychenie.png?size=48" width="48" height="48"></a><a href="https://github.com/flaming-codes" target="_blank"><img title="flaming-codes" src="https://github.com/flaming-codes.png?size=48" width="48" height="48"></a><a href="https://github.com/fostertheweb" target="_blank"><img title="fostertheweb" src="https://github.com/fostertheweb.png?size=48" width="48" height="48"></a><a href="https://github.com/fostertheweb" target="_blank"><img title="fostertheweb" src="https://github.com/fostertheweb.png?size=48" width="48" height="48"></a><a href="https://github.com/generates" target="_blank"><img title="generates" src="https://github.com/generates.png?size=48" width="48" height="48"></a><a href="https://github.com/Giulio987" target="_blank"><img title="Giulio987" src="https://github.com/Giulio987.png?size=48" width="48" height="48"></a><a href="https://github.com/itsdevcoffee" target="_blank"><img title="itsdevcoffee" src="https://github.com/itsdevcoffee.png?size=48" width="48" height="48"></a><a href="https://github.com/jaysc" target="_blank"><img title="jaysc" src="https://github.com/jaysc.png?size=48" width="48" height="48"></a><a href="https://github.com/jbolda" target="_blank"><img title="jbolda" src="https://github.com/jbolda.png?size=48" width="48" height="48"></a><a href="https://github.com/Kayoo-asso" target="_blank"><img title="Kayoo-asso" src="https://github.com/Kayoo-asso.png?size=48" width="48" height="48"></a><a href="https://github.com/kotofurumiya" target="_blank"><img title="kotofurumiya" src="https://github.com/kotofurumiya.png?size=48" width="48" height="48"></a><a href="https://github.com/Kudo" target="_blank"><img title="Kudo" src="https://github.com/Kudo.png?size=48" width="48" height="48"></a><a href="https://github.com/learn-anything" target="_blank"><img title="learn-anything" src="https://github.com/learn-anything.png?size=48" width="48" height="48"></a><a href="https://github.com/lluc" target="_blank"><img title="lluc" src="https://github.com/lluc.png?size=48" width="48" height="48"></a><a href="https://github.com/marksteve" target="_blank"><img title="marksteve" src="https://github.com/marksteve.png?size=48" width="48" height="48"></a><a href="https://github.com/miking-the-viking" target="_blank"><img title="miking-the-viking" src="https://github.com/miking-the-viking.png?size=48" width="48" height="48"></a><a href="https://github.com/mjamesderocher" target="_blank"><img title="mjamesderocher" src="https://github.com/mjamesderocher.png?size=48" width="48" height="48"></a><a href="https://github.com/nikitavoloboev" target="_blank"><img title="nikitavoloboev" src="https://github.com/nikitavoloboev.png?size=48" width="48" height="48"></a><a href="https://github.com/palerdot" target="_blank"><img title="palerdot" src="https://github.com/palerdot.png?size=48" width="48" height="48"></a><a href="https://github.com/PorcoRosso85" target="_blank"><img title="PorcoRosso85" src="https://github.com/PorcoRosso85.png?size=48" width="48" height="48"></a><a href="https://github.com/shaneosullivan" target="_blank"><img title="shaneosullivan" src="https://github.com/shaneosullivan.png?size=48" width="48" height="48"></a><a href="https://github.com/sudo-self" target="_blank"><img title="sudo-self" src="https://github.com/sudo-self.png?size=48" width="48" height="48"></a><a href="https://github.com/SuperSonicHub1" target="_blank"><img title="SuperSonicHub1" src="https://github.com/SuperSonicHub1.png?size=48" width="48" height="48"></a><a href="https://github.com/threepointone" target="_blank"><img title="threepointone" src="https://github.com/threepointone.png?size=48" width="48" height="48"></a><a href="https://github.com/uptonking" target="_blank"><img title="uptonking" src="https://github.com/uptonking.png?size=48" width="48" height="48"></a><a href="https://github.com/WonderPanda" target="_blank"><img title="WonderPanda" src="https://github.com/WonderPanda.png?size=48" width="48" height="48"></a></section><hr><p><a class="start" href="https://beta.tinybase.org/guides/the-basics/getting-started/">Get started</a></p><p><a href="https://beta.tinybase.org/demos/">Try the demos</a></p><p><a href="https://beta.tinybase.org/api/store/interfaces/store/store/">Read the docs</a></p><hr><section id="about"><h2 id="about">About</h2><p>Modern apps deserve better. Why trade reactive user experiences to be able to use relational data? Or sacrifice features for bundle size? And why does the cloud do all the work <a href="https://localfirstweb.dev/" target="_blank">anyway</a>?</p><p>Building TinyBase was originally an interesting exercise for <a rel="me" href="https://tripleodeon.com">me</a> in API design, minification, and documentation. But now it has taken on a life of its own, and has grown beyond my wildest expectations.</p><p>It could not have been built without these great <a href="https://beta.tinybase.org/guides/how-tinybase-is-built/credits/#giants">projects</a> and <a href="https://beta.tinybase.org/guides/how-tinybase-is-built/credits/#and-friends">friends</a>, and I hope you enjoy using it as much as I do building it!</p></section><section id="story"><h2 id="the-story">The story</h2><a href="https://youtu.be/hXL7OkW-Prk?t=1232" target="_blank"><img src="https://beta.tinybase.org/youtube.webp"></a></section>
250
+ <section><h2 id="did-we-say-tiny">Did we say tiny?</h2><p>If you use the basic <a href="https://beta.tinybase.org/api/store/"><code>store</code></a> module alone, you&#x27;ll only add a gzipped <em>5.0kB</em> to your app. Incrementally add the other modules as you need more functionality, or get it all for <em>12.1kB</em>.</p><p>The optional <a href="https://beta.tinybase.org/api/ui-react/"><code>ui-react</code></a> module is just another <em>4.6kB</em>, the auxiliary <a href="https://beta.tinybase.org/api/tools/"><code>tools</code></a> module is <em>11.1kB</em>, and everything is super fast. Life&#x27;s easy when you have zero dependencies!</p><p>Read more about how TinyBase is structured and packaged in the <a href="https://beta.tinybase.org/guides/how-tinybase-is-built/architecture/">Architecture</a> guide.</p></section><div class="table"><table class="fixed"><tbody><tr><th width="30%"> </th><th>.js.gz</th><th>.js</th><th>debug.js</th><th>.d.ts</th></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/store/">store</a></th><td>5.0kB</td><td>12.0kB</td><td>52.1kB</td><td>255.3kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/metrics/">metrics</a></th><td>1.8kB</td><td>3.7kB</td><td>15.3kB</td><td>30.9kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/indexes/">indexes</a></th><td>1.9kB</td><td>3.8kB</td><td>17.1kB</td><td>35.6kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/relationships/">relationships</a></th><td>1.9kB</td><td>3.8kB</td><td>17.3kB</td><td>44.2kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/queries/">queries</a></th><td>2.8kB</td><td>5.7kB</td><td>25.8kB</td><td>126.0kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/checkpoints/">checkpoints</a></th><td>1.6kB</td><td>3.2kB</td><td>13.5kB</td><td>35.1kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/mergeable-store/">mergeable-store</a></th><td>7.0kB</td><td>16.9kB</td><td>72.0kB</td><td>4.5kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/persisters/">persisters</a></th><td>0.9kB</td><td>1.7kB</td><td>6.3kB</td><td>46.7kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/synchronizers/">synchronizers</a></th><td>2.0kB</td><td>4.2kB</td><td>16.0kB</td><td>3.6kB</td></tr><tr><th class="right"><a href="https://beta.tinybase.org/api/common/">common</a></th><td>0.1kB</td><td>0.1kB</td><td>0.1kB</td><td>3.5kB</td></tr><tr><th class="right">tinybase (all)</th><td>12.1kB</td><td>29.9kB</td><td>129.1kB</td><td>0.4kB</td></tr></tbody></table></div><section><h2 id="well-tested-and-documented">Well tested and documented.</h2><p>TinyBase has <em>100.0%</em> test coverage, including the code throughout the documentation - even on this page! The guides, demos, and API examples are designed to make it as easy as possible for you to get your TinyBase-powered app up and running.</p><p>Read more about how TinyBase is tested in the Unit <a href="https://beta.tinybase.org/guides/how-tinybase-is-built/testing/">Testing</a> guide.</p></section><div class="table"><table class="fixed"><tbody><tr><th width="30%"> </th><th>Total</th><th>Tested</th><th>Coverage</th></tr><tr><th class="right">Lines</th><td>2,362</td><td>2,362</td><td>100.0%</td></tr><tr><th class="right">Statements</th><td>2,547</td><td>2,547</td><td>100.0%</td></tr><tr><th class="right">Functions</th><td>993</td><td>993</td><td>100.0%</td></tr><tr><th class="right">Branches</th><td>935</td><td>935</td><td>100.0%</td></tr><tr><th class="right">Tests</th><td colspan="3">6,616</td></tr><tr><th class="right">Assertions</th><td colspan="3">31,177</td></tr></tbody></table></div><hr><section id="sponsors"><h2 id="proud-to-be-sponsored-by">Proud to be sponsored by:</h2><a href="https://github.com/expo" target="_blank"><img title="expo" src="https://github.com/expo.png?size=48" width="48" height="48"></a><a href="https://github.com/beekeeb" target="_blank"><img title="beekeeb" src="https://github.com/beekeeb.png?size=48" width="48" height="48"></a><a href="https://github.com/cancelself" target="_blank"><img title="cancelself" src="https://github.com/cancelself.png?size=48" width="48" height="48"></a><a href="https://github.com/WonderPanda" target="_blank"><img title="WonderPanda" src="https://github.com/WonderPanda.png?size=48" width="48" height="48"></a><a href="https://github.com/arpitBhalla" target="_blank"><img title="arpitBhalla" src="https://github.com/arpitBhalla.png?size=48" width="48" height="48"></a></section><section id="users"><h2 id="excited-to-be-used-by">Excited to be used by:</h2><a href="https://github.com/Apocalypsor" target="_blank"><img title="Apocalypsor" src="https://github.com/Apocalypsor.png?size=48" width="48" height="48"></a><a href="https://github.com/brentvatne" target="_blank"><img title="brentvatne" src="https://github.com/brentvatne.png?size=48" width="48" height="48"></a><a href="https://github.com/circadian-risk" target="_blank"><img title="circadian-risk" src="https://github.com/circadian-risk.png?size=48" width="48" height="48"></a><a href="https://github.com/cubecull" target="_blank"><img title="cubecull" src="https://github.com/cubecull.png?size=48" width="48" height="48"></a><a href="https://github.com/erwinkn" target="_blank"><img title="erwinkn" src="https://github.com/erwinkn.png?size=48" width="48" height="48"></a><a href="https://github.com/expo" target="_blank"><img title="expo" src="https://github.com/expo.png?size=48" width="48" height="48"></a><a href="https://github.com/ezra-en" target="_blank"><img title="ezra-en" src="https://github.com/ezra-en.png?size=48" width="48" height="48"></a><a href="https://github.com/fdfontes" target="_blank"><img title="fdfontes" src="https://github.com/fdfontes.png?size=48" width="48" height="48"></a><a href="https://github.com/feychenie" target="_blank"><img title="feychenie" src="https://github.com/feychenie.png?size=48" width="48" height="48"></a><a href="https://github.com/flaming-codes" target="_blank"><img title="flaming-codes" src="https://github.com/flaming-codes.png?size=48" width="48" height="48"></a><a href="https://github.com/fostertheweb" target="_blank"><img title="fostertheweb" src="https://github.com/fostertheweb.png?size=48" width="48" height="48"></a><a href="https://github.com/fostertheweb" target="_blank"><img title="fostertheweb" src="https://github.com/fostertheweb.png?size=48" width="48" height="48"></a><a href="https://github.com/generates" target="_blank"><img title="generates" src="https://github.com/generates.png?size=48" width="48" height="48"></a><a href="https://github.com/Giulio987" target="_blank"><img title="Giulio987" src="https://github.com/Giulio987.png?size=48" width="48" height="48"></a><a href="https://github.com/itsdevcoffee" target="_blank"><img title="itsdevcoffee" src="https://github.com/itsdevcoffee.png?size=48" width="48" height="48"></a><a href="https://github.com/jaysc" target="_blank"><img title="jaysc" src="https://github.com/jaysc.png?size=48" width="48" height="48"></a><a href="https://github.com/jbolda" target="_blank"><img title="jbolda" src="https://github.com/jbolda.png?size=48" width="48" height="48"></a><a href="https://github.com/Kayoo-asso" target="_blank"><img title="Kayoo-asso" src="https://github.com/Kayoo-asso.png?size=48" width="48" height="48"></a><a href="https://github.com/kotofurumiya" target="_blank"><img title="kotofurumiya" src="https://github.com/kotofurumiya.png?size=48" width="48" height="48"></a><a href="https://github.com/Kudo" target="_blank"><img title="Kudo" src="https://github.com/Kudo.png?size=48" width="48" height="48"></a><a href="https://github.com/learn-anything" target="_blank"><img title="learn-anything" src="https://github.com/learn-anything.png?size=48" width="48" height="48"></a><a href="https://github.com/lluc" target="_blank"><img title="lluc" src="https://github.com/lluc.png?size=48" width="48" height="48"></a><a href="https://github.com/marksteve" target="_blank"><img title="marksteve" src="https://github.com/marksteve.png?size=48" width="48" height="48"></a><a href="https://github.com/miking-the-viking" target="_blank"><img title="miking-the-viking" src="https://github.com/miking-the-viking.png?size=48" width="48" height="48"></a><a href="https://github.com/mjamesderocher" target="_blank"><img title="mjamesderocher" src="https://github.com/mjamesderocher.png?size=48" width="48" height="48"></a><a href="https://github.com/nikitavoloboev" target="_blank"><img title="nikitavoloboev" src="https://github.com/nikitavoloboev.png?size=48" width="48" height="48"></a><a href="https://github.com/palerdot" target="_blank"><img title="palerdot" src="https://github.com/palerdot.png?size=48" width="48" height="48"></a><a href="https://github.com/PorcoRosso85" target="_blank"><img title="PorcoRosso85" src="https://github.com/PorcoRosso85.png?size=48" width="48" height="48"></a><a href="https://github.com/shaneosullivan" target="_blank"><img title="shaneosullivan" src="https://github.com/shaneosullivan.png?size=48" width="48" height="48"></a><a href="https://github.com/sudo-self" target="_blank"><img title="sudo-self" src="https://github.com/sudo-self.png?size=48" width="48" height="48"></a><a href="https://github.com/SuperSonicHub1" target="_blank"><img title="SuperSonicHub1" src="https://github.com/SuperSonicHub1.png?size=48" width="48" height="48"></a><a href="https://github.com/threepointone" target="_blank"><img title="threepointone" src="https://github.com/threepointone.png?size=48" width="48" height="48"></a><a href="https://github.com/uptonking" target="_blank"><img title="uptonking" src="https://github.com/uptonking.png?size=48" width="48" height="48"></a><a href="https://github.com/WonderPanda" target="_blank"><img title="WonderPanda" src="https://github.com/WonderPanda.png?size=48" width="48" height="48"></a></section><hr><p><a class="start" href="https://beta.tinybase.org/guides/the-basics/getting-started/">Get started</a></p><p><a href="https://beta.tinybase.org/demos/">Try the demos</a></p><p><a href="https://beta.tinybase.org/api/store/interfaces/store/store/">Read the docs</a></p><hr><section id="about"><h2 id="about">About</h2><p>Modern apps deserve better. Why trade reactive user experiences to be able to use relational data? Or sacrifice features for bundle size? And why does the cloud do all the work <a href="https://localfirstweb.dev/" target="_blank">anyway</a>?</p><p>Building TinyBase was originally an interesting exercise for <a rel="me" href="https://tripleodeon.com">me</a> in API design, minification, and documentation. But now it has taken on a life of its own, and has grown beyond my wildest expectations.</p><p>It could not have been built without these great <a href="https://beta.tinybase.org/guides/how-tinybase-is-built/credits/#giants">projects</a> and <a href="https://beta.tinybase.org/guides/how-tinybase-is-built/credits/#and-friends">friends</a>, and I hope you enjoy using it as much as I do building it!</p></section><section id="story"><h2 id="the-story">The story</h2><a href="https://youtu.be/hXL7OkW-Prk?t=1232" target="_blank"><img src="https://beta.tinybase.org/youtube.webp"></a></section>