@rainlanguage/ui-components 0.0.1-alpha.24 → 0.0.1-alpha.241

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 (299) hide show
  1. package/README.md +14 -6
  2. package/dist/__fixtures__/settings.yaml +123 -0
  3. package/dist/__mocks__/CodeMirrorRainlang.svelte +4 -0
  4. package/dist/__mocks__/CodeMirrorRainlang.svelte.d.ts +18 -0
  5. package/dist/__mocks__/MockCodeMirrorEditor.svelte +17 -0
  6. package/dist/__mocks__/MockCodeMirrorEditor.svelte.d.ts +21 -0
  7. package/dist/__mocks__/MockComponent.js +1 -1
  8. package/dist/__mocks__/MockComponent.svelte +10 -2
  9. package/dist/__mocks__/MockComponent.svelte.d.ts +4 -1
  10. package/dist/__mocks__/mockWeb3Config.d.ts +1 -1
  11. package/dist/__mocks__/mockWeb3Config.js +10 -7
  12. package/dist/__mocks__/queries.js +9 -9
  13. package/dist/__mocks__/stores.d.ts +55 -45
  14. package/dist/__mocks__/stores.js +85 -68
  15. package/dist/app.css +3 -3
  16. package/dist/components/ButtonDarkMode.svelte +7 -1
  17. package/dist/components/ButtonLoading.svelte +1 -1
  18. package/dist/components/ButtonScrub.svelte +22 -0
  19. package/dist/components/ButtonScrub.svelte.d.ts +25 -0
  20. package/dist/components/ButtonVaultLink.svelte +12 -11
  21. package/dist/components/ButtonVaultLink.svelte.d.ts +4 -3
  22. package/dist/components/CheckboxInactiveOrdersVault.svelte +20 -0
  23. package/dist/components/CheckboxInactiveOrdersVault.svelte.d.ts +19 -0
  24. package/dist/components/CheckboxZeroBalanceVault.svelte.d.ts +2 -2
  25. package/dist/components/CodeMirrorDotrain.svelte +4 -0
  26. package/dist/components/CodeMirrorDotrain.svelte.d.ts +1 -0
  27. package/dist/components/CodeMirrorRainlang.svelte +20 -12
  28. package/dist/components/CodeMirrorRainlang.svelte.d.ts +3 -2
  29. package/dist/components/EditableSpan.svelte +3 -14
  30. package/dist/components/EditableSpan.svelte.d.ts +0 -1
  31. package/dist/components/Hash.svelte +6 -5
  32. package/dist/components/License.svelte +5 -4
  33. package/dist/components/ListViewRaindexFilters.svelte +64 -0
  34. package/dist/components/ListViewRaindexFilters.svelte.d.ts +32 -0
  35. package/dist/components/LocalDbStatusBadge.svelte +27 -0
  36. package/dist/components/LocalDbStatusBadge.svelte.d.ts +19 -0
  37. package/dist/components/LocalDbStatusCard.svelte +43 -0
  38. package/dist/components/LocalDbStatusCard.svelte.d.ts +20 -0
  39. package/dist/components/LocalDbStatusModal.svelte +105 -0
  40. package/dist/components/LocalDbStatusModal.svelte.d.ts +21 -0
  41. package/dist/components/OrderOrVaultHash.svelte +12 -12
  42. package/dist/components/OrderOrVaultHash.svelte.d.ts +4 -4
  43. package/dist/components/PageHeader.svelte +1 -1
  44. package/dist/components/Sensitive.svelte +16 -0
  45. package/dist/components/Sensitive.svelte.d.ts +28 -0
  46. package/dist/components/TanstackAppTable.svelte +270 -60
  47. package/dist/components/TanstackAppTable.svelte.d.ts +15 -9
  48. package/dist/components/ToastDetail.svelte +42 -0
  49. package/dist/components/ToastDetail.svelte.d.ts +20 -0
  50. package/dist/components/Tooltip.svelte +8 -0
  51. package/dist/components/Tooltip.svelte.d.ts +21 -0
  52. package/dist/components/VaultBalanceChangeTypeFilter.svelte +23 -0
  53. package/dist/components/VaultBalanceChangeTypeFilter.svelte.d.ts +19 -0
  54. package/dist/components/VaultCard.svelte +18 -0
  55. package/dist/components/VaultCard.svelte.d.ts +19 -0
  56. package/dist/components/charts/LightweightChart.svelte +1 -1
  57. package/dist/components/charts/LightweightChart.svelte.d.ts +5 -5
  58. package/dist/components/charts/OrderTradesChart.svelte +319 -28
  59. package/dist/components/charts/OrderTradesChart.svelte.d.ts +4 -4
  60. package/dist/components/charts/TanstackLightweightChartLine.svelte +5 -9
  61. package/dist/components/charts/VaultBalanceChart.svelte +8 -26
  62. package/dist/components/charts/VaultBalanceChart.svelte.d.ts +1 -7
  63. package/dist/components/charts/transformAndSortData.d.ts +24 -0
  64. package/dist/components/charts/transformAndSortData.js +111 -0
  65. package/dist/components/checkbox/CheckboxActiveOrders.svelte +11 -0
  66. package/dist/components/checkbox/CheckboxActiveOrders.svelte.d.ts +19 -0
  67. package/dist/components/deployment/ButtonSelectOption.svelte +2 -0
  68. package/dist/components/deployment/ButtonSelectOption.svelte.d.ts +1 -0
  69. package/dist/components/deployment/ComposedRainlangModal.svelte +3 -2
  70. package/dist/components/deployment/ComposedRainlangModal.svelte.d.ts +1 -4
  71. package/dist/components/deployment/DeploymentSectionHeader.svelte +7 -4
  72. package/dist/components/deployment/DeploymentSteps.svelte +196 -221
  73. package/dist/components/deployment/DeploymentSteps.svelte.d.ts +6 -12
  74. package/dist/components/deployment/DeploymentTile.svelte +2 -2
  75. package/dist/components/deployment/DeploymentTile.svelte.d.ts +1 -1
  76. package/dist/components/deployment/DeploymentsSection.svelte +15 -22
  77. package/dist/components/deployment/DeploymentsSection.svelte.d.ts +3 -2
  78. package/dist/components/deployment/DepositInput.svelte +10 -11
  79. package/dist/components/deployment/DepositInput.svelte.d.ts +2 -3
  80. package/dist/components/deployment/DisclaimerModal.svelte +6 -7
  81. package/dist/components/deployment/FieldDefinitionInput.svelte +10 -14
  82. package/dist/components/deployment/FieldDefinitionInput.svelte.d.ts +2 -3
  83. package/dist/components/deployment/InvalidOrdersSection.svelte +17 -0
  84. package/dist/components/deployment/InvalidOrdersSection.svelte.d.ts +19 -0
  85. package/dist/components/deployment/{StrategyPage.svelte → OrderPage.svelte} +15 -24
  86. package/dist/components/deployment/OrderPage.svelte.d.ts +21 -0
  87. package/dist/components/deployment/SelectToken.svelte +127 -50
  88. package/dist/components/deployment/SelectToken.svelte.d.ts +5 -4
  89. package/dist/components/deployment/TokenBalance.svelte +19 -0
  90. package/dist/components/deployment/TokenBalance.svelte.d.ts +19 -0
  91. package/dist/components/deployment/TokenIOInput.svelte +27 -17
  92. package/dist/components/deployment/TokenIOInput.svelte.d.ts +3 -3
  93. package/dist/components/deployment/TokenSelectionModal.svelte +148 -0
  94. package/dist/components/deployment/TokenSelectionModal.svelte.d.ts +20 -0
  95. package/dist/components/deployment/{ValidStrategiesSection.svelte → ValidOrdersSection.svelte} +7 -7
  96. package/dist/components/deployment/ValidOrdersSection.svelte.d.ts +19 -0
  97. package/dist/components/deployment/VaultIdInformation.svelte +17 -0
  98. package/dist/components/deployment/VaultIdInformation.svelte.d.ts +21 -0
  99. package/dist/components/detail/OrderDetail.svelte +220 -82
  100. package/dist/components/detail/OrderDetail.svelte.d.ts +21 -15
  101. package/dist/components/detail/TanstackOrderQuote.svelte +114 -46
  102. package/dist/components/detail/TanstackOrderQuote.svelte.d.ts +14 -16
  103. package/dist/components/detail/VaultDetail.svelte +82 -79
  104. package/dist/components/detail/VaultDetail.svelte.d.ts +12 -18
  105. package/dist/components/dropdown/DropdownActiveNetworks.svelte +44 -0
  106. package/dist/components/dropdown/DropdownActiveNetworks.svelte.d.ts +19 -0
  107. package/dist/components/dropdown/DropdownCheckbox.svelte +4 -4
  108. package/dist/components/dropdown/DropdownRaindexesFilter.svelte +172 -0
  109. package/dist/components/dropdown/DropdownRaindexesFilter.svelte.d.ts +25 -0
  110. package/dist/components/dropdown/DropdownTokensFilter.svelte +152 -0
  111. package/dist/components/dropdown/DropdownTokensFilter.svelte.d.ts +28 -0
  112. package/dist/components/icon/Refresh.svelte +4 -2
  113. package/dist/components/icon/Refresh.svelte.d.ts +2 -0
  114. package/dist/components/input/InputOrderHash.svelte +1 -1
  115. package/dist/components/input/InputOrderHash.svelte.d.ts +3 -3
  116. package/dist/components/input/InputOwnerFilter.svelte +48 -0
  117. package/dist/components/input/InputOwnerFilter.svelte.d.ts +19 -0
  118. package/dist/components/input/InputRegistryUrl.svelte +36 -14
  119. package/dist/components/input/InputToken.svelte +2 -2
  120. package/dist/components/input/InputTokenAmount.svelte +30 -20
  121. package/dist/components/input/InputTokenAmount.svelte.d.ts +3 -3
  122. package/dist/components/tables/OrderAPY.svelte +6 -33
  123. package/dist/components/tables/OrderAPY.svelte.d.ts +1 -4
  124. package/dist/components/tables/OrderTradesListTable.svelte +132 -124
  125. package/dist/components/tables/OrderTradesListTable.svelte.d.ts +4 -4
  126. package/dist/components/tables/OrderVaultsVolTable.svelte +17 -22
  127. package/dist/components/tables/OrderVaultsVolTable.svelte.d.ts +2 -2
  128. package/dist/components/tables/OrdersListTable.svelte +206 -115
  129. package/dist/components/tables/OrdersListTable.svelte.d.ts +18 -23
  130. package/dist/components/tables/VaultBalanceChangesTable.svelte +83 -43
  131. package/dist/components/tables/VaultBalanceChangesTable.svelte.d.ts +13 -11
  132. package/dist/components/tables/VaultsListTable.svelte +275 -150
  133. package/dist/components/tables/VaultsListTable.svelte.d.ts +24 -33
  134. package/dist/components/transactions/FixedBottomTransaction.svelte +64 -0
  135. package/dist/components/transactions/FixedBottomTransaction.svelte.d.ts +16 -0
  136. package/dist/components/transactions/TransactionDetail.svelte +31 -0
  137. package/dist/components/transactions/TransactionDetail.svelte.d.ts +20 -0
  138. package/dist/components/transactions/TransactionList.svelte +17 -0
  139. package/dist/components/transactions/TransactionList.svelte.d.ts +16 -0
  140. package/dist/components/transactions/getStatusEmoji.d.ts +2 -0
  141. package/dist/components/transactions/getStatusEmoji.js +20 -0
  142. package/dist/components/wallet/WalletConnect.svelte +5 -4
  143. package/dist/components/wallet/WalletConnect.svelte.d.ts +0 -1
  144. package/dist/consts.d.ts +1 -0
  145. package/dist/consts.js +1 -0
  146. package/dist/errors/DeploymentStepsError.d.ts +11 -5
  147. package/dist/errors/DeploymentStepsError.js +13 -7
  148. package/dist/errors/index.d.ts +1 -1
  149. package/dist/errors/index.js +1 -1
  150. package/dist/hooks/useLocalDb.d.ts +3 -0
  151. package/dist/hooks/useLocalDb.js +10 -0
  152. package/dist/hooks/useRaindexClient.d.ts +3 -0
  153. package/dist/hooks/useRaindexClient.js +11 -0
  154. package/dist/hooks/useRaindexOrderBuilder.d.ts +3 -0
  155. package/dist/hooks/useRaindexOrderBuilder.js +11 -0
  156. package/dist/index.d.ts +122 -91
  157. package/dist/index.js +118 -87
  158. package/dist/models/Transaction.d.ts +75 -0
  159. package/dist/models/Transaction.js +100 -0
  160. package/dist/providers/LocalDbProvider.svelte +8 -0
  161. package/dist/providers/LocalDbProvider.svelte.d.ts +21 -0
  162. package/dist/providers/RaindexClientProvider.svelte +8 -0
  163. package/dist/providers/RaindexClientProvider.svelte.d.ts +21 -0
  164. package/dist/providers/RaindexOrderBuilderProvider.svelte +8 -0
  165. package/dist/providers/RaindexOrderBuilderProvider.svelte.d.ts +21 -0
  166. package/dist/providers/dotrainRegistry/DotrainRegistryProvider.svelte +8 -0
  167. package/dist/providers/dotrainRegistry/DotrainRegistryProvider.svelte.d.ts +24 -0
  168. package/dist/providers/dotrainRegistry/context.d.ts +9 -0
  169. package/dist/providers/dotrainRegistry/context.js +43 -0
  170. package/dist/providers/dotrainRegistry/useDotrainRegistry.d.ts +5 -0
  171. package/dist/providers/dotrainRegistry/useDotrainRegistry.js +35 -0
  172. package/dist/providers/registry/RegistryManager.d.ts +65 -0
  173. package/dist/providers/registry/RegistryManager.js +134 -0
  174. package/dist/providers/registry/RegistryProvider.svelte +6 -0
  175. package/dist/providers/registry/RegistryProvider.svelte.d.ts +21 -0
  176. package/dist/providers/registry/context.d.ts +10 -0
  177. package/dist/providers/registry/context.js +46 -0
  178. package/dist/providers/registry/useRegistry.d.ts +7 -0
  179. package/dist/providers/registry/useRegistry.js +29 -0
  180. package/dist/providers/toasts/ToastProvider.svelte +17 -0
  181. package/dist/providers/toasts/ToastProvider.svelte.d.ts +18 -0
  182. package/dist/providers/toasts/context.d.ts +14 -0
  183. package/dist/providers/toasts/context.js +22 -0
  184. package/dist/providers/toasts/useToasts.d.ts +16 -0
  185. package/dist/providers/toasts/useToasts.js +63 -0
  186. package/dist/providers/transactions/TransactionManager.d.ts +234 -0
  187. package/dist/providers/transactions/TransactionManager.js +509 -0
  188. package/dist/providers/transactions/TransactionProvider.svelte +11 -0
  189. package/dist/providers/transactions/TransactionProvider.svelte.d.ts +24 -0
  190. package/dist/providers/transactions/context.d.ts +19 -0
  191. package/dist/providers/transactions/context.js +28 -0
  192. package/dist/providers/transactions/useTransactions.d.ts +13 -0
  193. package/dist/providers/transactions/useTransactions.js +18 -0
  194. package/dist/providers/wallet/WalletProvider.svelte +7 -0
  195. package/dist/providers/wallet/WalletProvider.svelte.d.ts +21 -0
  196. package/dist/providers/wallet/context.d.ts +10 -0
  197. package/dist/providers/wallet/context.js +47 -0
  198. package/dist/providers/wallet/useAccount.d.ts +8 -0
  199. package/dist/providers/wallet/useAccount.js +148 -0
  200. package/dist/queries/keys.d.ts +1 -0
  201. package/dist/queries/keys.js +10 -9
  202. package/dist/queries/queryClient.d.ts +2 -2
  203. package/dist/queries/queryClient.js +16 -11
  204. package/dist/services/awaitTransactionIndexing.d.ts +107 -0
  205. package/dist/services/awaitTransactionIndexing.js +60 -0
  206. package/dist/services/getExplorerLink.d.ts +1 -1
  207. package/dist/services/getExplorerLink.js +3 -5
  208. package/dist/services/handleShareChoices.d.ts +2 -2
  209. package/dist/services/handleShareChoices.js +6 -5
  210. package/dist/services/historicalOrderCharts.d.ts +3 -3
  211. package/dist/services/historicalOrderCharts.js +364 -371
  212. package/dist/services/index.d.ts +5 -2
  213. package/dist/services/index.js +3 -1
  214. package/dist/services/loadRegistryUrl.d.ts +2 -0
  215. package/dist/services/loadRegistryUrl.js +22 -0
  216. package/dist/services/pairTradesChartData.d.ts +47 -0
  217. package/dist/services/pairTradesChartData.js +194 -0
  218. package/dist/services/registry.d.ts +5 -5
  219. package/dist/services/registry.js +17 -217
  220. package/dist/services/time.d.ts +12 -0
  221. package/dist/services/time.js +88 -6
  222. package/dist/services/validateAmount.d.ts +30 -0
  223. package/dist/services/validateAmount.js +53 -0
  224. package/dist/storesGeneric/cachedWritableStore.d.ts +57 -0
  225. package/dist/storesGeneric/cachedWritableStore.js +93 -0
  226. package/dist/storesGeneric/scrub.d.ts +14 -0
  227. package/dist/storesGeneric/scrub.js +22 -0
  228. package/dist/test/matchers.d.ts +2 -2
  229. package/dist/test/matchers.js +2 -2
  230. package/dist/types/account.d.ts +3 -0
  231. package/dist/types/appStores.d.ts +9 -16
  232. package/dist/types/modal.d.ts +26 -14
  233. package/dist/types/order.d.ts +10 -0
  234. package/dist/types/order.js +1 -0
  235. package/dist/types/toast.d.ts +11 -0
  236. package/dist/types/toast.js +1 -0
  237. package/dist/types/tokenBalance.d.ts +6 -0
  238. package/dist/types/tokenBalance.js +1 -0
  239. package/dist/types/transaction.d.ts +67 -22
  240. package/dist/types/transaction.js +31 -1
  241. package/dist/utils/breadcrumbs.js +2 -2
  242. package/dist/utils/codeMirrorThemes.js +80 -74
  243. package/dist/utils/configHelpers.d.ts +4 -0
  244. package/dist/utils/configHelpers.js +21 -0
  245. package/dist/utils/constructHashLink.d.ts +24 -0
  246. package/dist/utils/constructHashLink.js +117 -0
  247. package/dist/utils/getNetworkName.d.ts +1 -0
  248. package/dist/utils/getNetworkName.js +13 -0
  249. package/dist/utils/hex.js +1 -1
  250. package/dist/utils/lightweightChartsThemes.d.ts +1 -1
  251. package/dist/utils/lightweightChartsThemes.js +11 -11
  252. package/dist/utils/localDbStatus.d.ts +26 -0
  253. package/dist/utils/localDbStatus.js +22 -0
  254. package/dist/utils/number.d.ts +0 -7
  255. package/dist/utils/number.js +5 -30
  256. package/dist/utils/stripTrailingWhitespace.d.ts +16 -0
  257. package/dist/utils/stripTrailingWhitespace.js +22 -0
  258. package/dist/utils/tokens.d.ts +2 -0
  259. package/dist/utils/tokens.js +3 -0
  260. package/dist/utils/vaultBalanceChangeLabels.d.ts +4 -0
  261. package/dist/utils/vaultBalanceChangeLabels.js +18 -0
  262. package/package.json +89 -84
  263. package/dist/__fixtures__/orderDetail.d.ts +0 -99
  264. package/dist/__fixtures__/orderDetail.js +0 -204
  265. package/dist/__fixtures__/settings-12-11-24.json +0 -160
  266. package/dist/__mocks__/mockTransactionStore.d.ts +0 -22
  267. package/dist/__mocks__/mockTransactionStore.js +0 -56
  268. package/dist/__mocks__/settings.d.ts +0 -3
  269. package/dist/__mocks__/settings.js +0 -37
  270. package/dist/components/CheckboxMyItemsOnly.svelte +0 -23
  271. package/dist/components/CheckboxMyItemsOnly.svelte.d.ts +0 -21
  272. package/dist/components/ListViewOrderbookFilters.svelte +0 -58
  273. package/dist/components/ListViewOrderbookFilters.svelte.d.ts +0 -28
  274. package/dist/components/deployment/InvalidStrategiesSection.svelte +0 -19
  275. package/dist/components/deployment/InvalidStrategiesSection.svelte.d.ts +0 -19
  276. package/dist/components/deployment/StrategyPage.svelte.d.ts +0 -19
  277. package/dist/components/deployment/ValidStrategiesSection.svelte.d.ts +0 -19
  278. package/dist/components/deployment/getDeploymentTransactionArgs.d.ts +0 -17
  279. package/dist/components/deployment/getDeploymentTransactionArgs.js +0 -28
  280. package/dist/components/detail/DepositOrWithdrawButtons.svelte +0 -44
  281. package/dist/components/detail/DepositOrWithdrawButtons.svelte.d.ts +0 -26
  282. package/dist/components/dropdown/DropdownActiveSubgraphs.svelte +0 -38
  283. package/dist/components/dropdown/DropdownActiveSubgraphs.svelte.d.ts +0 -21
  284. package/dist/components/dropdown/DropdownOrderListAccounts.svelte +0 -15
  285. package/dist/components/dropdown/DropdownOrderListAccounts.svelte.d.ts +0 -20
  286. package/dist/components/dropdown/DropdownOrderStatus.svelte +0 -31
  287. package/dist/components/dropdown/DropdownOrderStatus.svelte.d.ts +0 -19
  288. package/dist/hooks/useGui.d.ts +0 -3
  289. package/dist/hooks/useGui.js +0 -11
  290. package/dist/providers/GuiProvider.svelte +0 -8
  291. package/dist/providers/GuiProvider.svelte.d.ts +0 -21
  292. package/dist/stores/transactionStore.d.ts +0 -98
  293. package/dist/stores/transactionStore.js +0 -303
  294. package/dist/types/strategy.d.ts +0 -10
  295. package/dist/utils/time.d.ts +0 -12
  296. package/dist/utils/time.js +0 -27
  297. package/dist/utils/vault.d.ts +0 -2
  298. package/dist/utils/vault.js +0 -29
  299. /package/dist/types/{strategy.js → account.js} +0 -0
@@ -0,0 +1,64 @@
1
+ <script>import { useRaindexClient } from "../hooks/useRaindexClient";
2
+ import DropdownActiveNetworks from "./dropdown/DropdownActiveNetworks.svelte";
3
+ import { page } from "$app/stores";
4
+ import { isEmpty } from "lodash";
5
+ import { Alert } from "flowbite-svelte";
6
+ import CheckboxActiveOrders from "./checkbox/CheckboxActiveOrders.svelte";
7
+ import DropdownTokensFilter from "./dropdown/DropdownTokensFilter.svelte";
8
+ import DropdownRaindexesFilter from "./dropdown/DropdownRaindexesFilter.svelte";
9
+ import InputOrderHash from "./input/InputOrderHash.svelte";
10
+ import InputOwnerFilter from "./input/InputOwnerFilter.svelte";
11
+ import CheckboxZeroBalanceVault from "./CheckboxZeroBalanceVault.svelte";
12
+ import CheckboxInactiveOrdersVault from "./CheckboxInactiveOrdersVault.svelte";
13
+ export let hideZeroBalanceVaults;
14
+ export let hideInactiveOrdersVaults;
15
+ export let selectedChainIds;
16
+ export let showInactiveOrders;
17
+ export let orderHash;
18
+ export let activeTokens;
19
+ export let selectedTokens;
20
+ export let tokensQuery;
21
+ export let activeRaindexAddresses;
22
+ export let selectedRaindexAddresses;
23
+ export let ownerFilter;
24
+ $: isVaultsPage = $page.url.pathname === "/vaults";
25
+ $: isOrdersPage = $page.url.pathname === "/orders";
26
+ const raindexClient = useRaindexClient();
27
+ $: networks = raindexClient.getAllNetworks();
28
+ </script>
29
+
30
+ <div
31
+ class="grid w-full items-center gap-4 md:flex md:justify-end lg:min-w-[600px]"
32
+ style="grid-template-columns: repeat(2, minmax(0, 1fr));"
33
+ >
34
+ {#if networks.error || isEmpty(networks.value)}
35
+ <Alert color="gray" data-testid="no-networks-alert" class="w-full">
36
+ No networks added to <a class="underline" href="/settings">settings</a>
37
+ </Alert>
38
+ {:else}
39
+ {#if isVaultsPage}
40
+ <div class="mt-4 w-full lg:w-auto">
41
+ <CheckboxZeroBalanceVault {hideZeroBalanceVaults} />
42
+ </div>
43
+ <div class="mt-4 w-full lg:w-auto">
44
+ <CheckboxInactiveOrdersVault {hideInactiveOrdersVaults} />
45
+ </div>
46
+ {/if}
47
+
48
+ {#if isOrdersPage}
49
+ <InputOrderHash {orderHash} />
50
+ <div class="mt-4">
51
+ <CheckboxActiveOrders {showInactiveOrders} />
52
+ </div>
53
+ {/if}
54
+ <InputOwnerFilter {ownerFilter} />
55
+ <DropdownTokensFilter {tokensQuery} {activeTokens} {selectedTokens} label="Tokens" />
56
+ <DropdownRaindexesFilter
57
+ {activeRaindexAddresses}
58
+ {selectedRaindexAddresses}
59
+ selectedChainIds={$selectedChainIds}
60
+ label="Raindexes"
61
+ />
62
+ <DropdownActiveNetworks {selectedChainIds} />
63
+ {/if}
64
+ </div>
@@ -0,0 +1,32 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { QueryObserverResult } from '@tanstack/svelte-query';
3
+ import type { Readable } from 'svelte/store';
4
+ import type { Address, RaindexVaultToken } from '@rainlanguage/raindex';
5
+ import type { AppStoresInterface } from '../types/appStores';
6
+ declare const __propDef: {
7
+ props: {
8
+ hideZeroBalanceVaults: AppStoresInterface["hideZeroBalanceVaults"];
9
+ hideInactiveOrdersVaults: AppStoresInterface["hideInactiveOrdersVaults"];
10
+ selectedChainIds: AppStoresInterface["selectedChainIds"];
11
+ showInactiveOrders: AppStoresInterface["showInactiveOrders"];
12
+ orderHash: AppStoresInterface["orderHash"];
13
+ activeTokens: AppStoresInterface["activeTokens"];
14
+ selectedTokens: Address[];
15
+ tokensQuery: Readable<QueryObserverResult<RaindexVaultToken[], Error>>;
16
+ activeRaindexAddresses: AppStoresInterface["activeRaindexAddresses"];
17
+ selectedRaindexAddresses: Address[];
18
+ ownerFilter: AppStoresInterface["ownerFilter"];
19
+ };
20
+ events: {
21
+ [evt: string]: CustomEvent<any>;
22
+ };
23
+ slots: {};
24
+ exports?: {} | undefined;
25
+ bindings?: string | undefined;
26
+ };
27
+ export type ListViewRaindexFiltersProps = typeof __propDef.props;
28
+ export type ListViewRaindexFiltersEvents = typeof __propDef.events;
29
+ export type ListViewRaindexFiltersSlots = typeof __propDef.slots;
30
+ export default class ListViewRaindexFilters extends SvelteComponent<ListViewRaindexFiltersProps, ListViewRaindexFiltersEvents, ListViewRaindexFiltersSlots> {
31
+ }
32
+ export {};
@@ -0,0 +1,27 @@
1
+ <script>const STATUS_LABELS = {
2
+ active: "Active",
3
+ syncing: "Syncing",
4
+ failure: "Failure"
5
+ };
6
+ const DOT_CLASSES = {
7
+ active: "bg-emerald-400",
8
+ syncing: "bg-sky-400",
9
+ failure: "bg-red-500"
10
+ };
11
+ const TEXT_CLASSES = {
12
+ active: "text-emerald-400",
13
+ syncing: "text-sky-400",
14
+ failure: "text-red-400"
15
+ };
16
+ export let status = "active";
17
+ </script>
18
+
19
+ <span
20
+ class="inline-flex items-center gap-2 rounded-full border border-gray-200 bg-gray-100 px-3 py-1 text-xs font-semibold uppercase tracking-wide text-gray-600 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-300"
21
+ data-testid="local-db-status"
22
+ >
23
+ <span class={`h-2 w-2 rounded-full ${DOT_CLASSES[status]}`} aria-hidden="true" />
24
+ <span class={TEXT_CLASSES[status]}>
25
+ {STATUS_LABELS[status]}
26
+ </span>
27
+ </span>
@@ -0,0 +1,19 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { LocalDbStatus } from '@rainlanguage/raindex';
3
+ declare const __propDef: {
4
+ props: {
5
+ status?: LocalDbStatus;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {};
11
+ exports?: {} | undefined;
12
+ bindings?: string | undefined;
13
+ };
14
+ export type LocalDbStatusBadgeProps = typeof __propDef.props;
15
+ export type LocalDbStatusBadgeEvents = typeof __propDef.events;
16
+ export type LocalDbStatusBadgeSlots = typeof __propDef.slots;
17
+ export default class LocalDbStatusBadge extends SvelteComponent<LocalDbStatusBadgeProps, LocalDbStatusBadgeEvents, LocalDbStatusBadgeSlots> {
18
+ }
19
+ export {};
@@ -0,0 +1,43 @@
1
+ <script>import LocalDbStatusBadge from "./LocalDbStatusBadge.svelte";
2
+ import LocalDbStatusModal from "./LocalDbStatusModal.svelte";
3
+ import { aggregateLocalDbStatus } from "../utils/localDbStatus";
4
+ import { ChevronRightOutline } from "flowbite-svelte-icons";
5
+ export let networkStatuses = /* @__PURE__ */ new Map();
6
+ export let raindexStatuses = /* @__PURE__ */ new Map();
7
+ let modalOpen = false;
8
+ $: networkList = Array.from(networkStatuses.values());
9
+ $: hasNetworks = networkList.length > 0;
10
+ $: displayStatus = aggregateLocalDbStatus([
11
+ ...networkList,
12
+ ...Array.from(raindexStatuses.values())
13
+ ]).status;
14
+ function openModal() {
15
+ modalOpen = true;
16
+ }
17
+ </script>
18
+
19
+ <div
20
+ class="rounded-lg border border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-900"
21
+ data-testid="local-db-status-card"
22
+ >
23
+ <button
24
+ type="button"
25
+ class="flex w-full items-center justify-between px-3 py-3 text-left transition hover:bg-gray-50 dark:hover:bg-gray-800"
26
+ on:click={openModal}
27
+ data-testid="local-db-status-header"
28
+ >
29
+ <div class="flex items-center gap-2">
30
+ <span class="text-xs font-semibold uppercase tracking-wide text-gray-500 dark:text-gray-400"
31
+ >LocalDB</span
32
+ >
33
+ </div>
34
+ <div class="flex items-center gap-2">
35
+ <LocalDbStatusBadge status={displayStatus} />
36
+ {#if hasNetworks}
37
+ <ChevronRightOutline class="h-3 w-3 shrink-0" />
38
+ {/if}
39
+ </div>
40
+ </button>
41
+ </div>
42
+
43
+ <LocalDbStatusModal bind:open={modalOpen} {networkStatuses} {raindexStatuses} />
@@ -0,0 +1,20 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { NetworkSyncStatus, RaindexSyncStatus } from '@rainlanguage/raindex';
3
+ declare const __propDef: {
4
+ props: {
5
+ networkStatuses?: Map<number, NetworkSyncStatus>;
6
+ raindexStatuses?: Map<string, RaindexSyncStatus>;
7
+ };
8
+ events: {
9
+ [evt: string]: CustomEvent<any>;
10
+ };
11
+ slots: {};
12
+ exports?: {} | undefined;
13
+ bindings?: string | undefined;
14
+ };
15
+ export type LocalDbStatusCardProps = typeof __propDef.props;
16
+ export type LocalDbStatusCardEvents = typeof __propDef.events;
17
+ export type LocalDbStatusCardSlots = typeof __propDef.slots;
18
+ export default class LocalDbStatusCard extends SvelteComponent<LocalDbStatusCardProps, LocalDbStatusCardEvents, LocalDbStatusCardSlots> {
19
+ }
20
+ export {};
@@ -0,0 +1,105 @@
1
+ <script>import { Modal } from "flowbite-svelte";
2
+ import LocalDbStatusBadge from "./LocalDbStatusBadge.svelte";
3
+ import { getNetworkName } from "../utils/getNetworkName";
4
+ export let open = false;
5
+ export let networkStatuses = /* @__PURE__ */ new Map();
6
+ export let raindexStatuses = /* @__PURE__ */ new Map();
7
+ $: networkList = Array.from(networkStatuses.values());
8
+ $: raindexList = Array.from(raindexStatuses.values());
9
+ $: networkGroups = buildNetworkGroups(networkList, raindexList);
10
+ function buildNetworkGroups(networks, raindexes) {
11
+ const groups = [];
12
+ for (const network of networks) {
13
+ const networkRaindexes = raindexes.filter(
14
+ (raindex) => raindex.raindexId.chainId === network.chainId
15
+ );
16
+ groups.push({
17
+ chainId: network.chainId,
18
+ networkName: getNetworkName(network.chainId) ?? `Chain ${network.chainId}`,
19
+ status: network,
20
+ raindexes: networkRaindexes
21
+ });
22
+ }
23
+ return groups;
24
+ }
25
+ </script>
26
+
27
+ <Modal
28
+ bind:open
29
+ size="lg"
30
+ class="dark:border dark:border-gray-700 dark:bg-gray-900"
31
+ dialogClass="fixed top-0 start-0 end-1 h-modal md:inset-0 md:h-full z-50 w-full p-4 flex justify-center items-center h-full"
32
+ data-testid="local-db-status-modal"
33
+ >
34
+ <div class="flex flex-col gap-4" slot="header">
35
+ <h3 class="text-lg font-semibold text-gray-900 dark:text-white">Database Sync Status</h3>
36
+ </div>
37
+
38
+ <div class="max-h-[60vh] overflow-y-auto">
39
+ {#if networkList.length === 0}
40
+ <p class="text-sm text-gray-500 dark:text-gray-400">No networks are being synced.</p>
41
+ {:else}
42
+ <div class="space-y-4">
43
+ {#each networkGroups as group (group.chainId)}
44
+ <div
45
+ class="rounded-lg border border-gray-200 dark:border-gray-700"
46
+ data-testid="network-group-{group.chainId}"
47
+ >
48
+ <div
49
+ class="flex items-center justify-between border-b border-gray-200 bg-gray-50 px-4 py-3 dark:border-gray-700 dark:bg-gray-800"
50
+ >
51
+ <div class="flex items-center gap-2">
52
+ <span class="font-medium text-gray-900 dark:text-white">{group.networkName}</span>
53
+ {#if group.status.schedulerState === 'notLeader'}
54
+ <span
55
+ class="rounded bg-amber-100 px-1.5 py-0.5 text-[10px] font-medium uppercase text-amber-700 dark:bg-amber-900/30 dark:text-amber-400"
56
+ >
57
+ Observing
58
+ </span>
59
+ {/if}
60
+ </div>
61
+ <LocalDbStatusBadge status={group.status.status} />
62
+ </div>
63
+
64
+ {#if group.raindexes.length > 0}
65
+ <ul class="divide-y divide-gray-100 dark:divide-gray-800">
66
+ {#each group.raindexes as raindexStatus (raindexStatus.raindexId.raindexAddress)}
67
+ <li class="px-4 py-3">
68
+ <div class="flex items-start justify-between gap-4">
69
+ <div class="min-w-0 flex-1">
70
+ <span
71
+ class="font-mono text-sm text-gray-700 dark:text-gray-300"
72
+ title={raindexStatus.raindexId.raindexAddress}
73
+ >
74
+ {raindexStatus.raindexId.raindexAddress}
75
+ </span>
76
+ {#if raindexStatus.status === 'syncing' && raindexStatus.phaseMessage && raindexStatus.schedulerState !== 'notLeader'}
77
+ <div class="mt-2 text-sm text-sky-600 dark:text-sky-400">
78
+ {raindexStatus.phaseMessage}
79
+ </div>
80
+ {/if}
81
+ {#if raindexStatus.status === 'failure' && raindexStatus.error}
82
+ <div class="mt-2 text-sm text-red-600 dark:text-red-400">
83
+ {raindexStatus.error}
84
+ </div>
85
+ {/if}
86
+ </div>
87
+ </div>
88
+ </li>
89
+ {/each}
90
+ </ul>
91
+ {/if}
92
+
93
+ {#if group.status.status === 'failure' && group.status.error}
94
+ <div class="border-t border-gray-200 px-4 py-3 dark:border-gray-700">
95
+ <div class="text-sm text-red-600 dark:text-red-400">
96
+ {group.status.error}
97
+ </div>
98
+ </div>
99
+ {/if}
100
+ </div>
101
+ {/each}
102
+ </div>
103
+ {/if}
104
+ </div>
105
+ </Modal>
@@ -0,0 +1,21 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { NetworkSyncStatus, RaindexSyncStatus } from '@rainlanguage/raindex';
3
+ declare const __propDef: {
4
+ props: {
5
+ open?: boolean;
6
+ networkStatuses?: Map<number, NetworkSyncStatus>;
7
+ raindexStatuses?: Map<string, RaindexSyncStatus>;
8
+ };
9
+ events: {
10
+ [evt: string]: CustomEvent<any>;
11
+ };
12
+ slots: {};
13
+ exports?: {} | undefined;
14
+ bindings?: string | undefined;
15
+ };
16
+ export type LocalDbStatusModalProps = typeof __propDef.props;
17
+ export type LocalDbStatusModalEvents = typeof __propDef.events;
18
+ export type LocalDbStatusModalSlots = typeof __propDef.slots;
19
+ export default class LocalDbStatusModal extends SvelteComponent<LocalDbStatusModalProps, LocalDbStatusModalEvents, LocalDbStatusModalSlots> {
20
+ }
21
+ export {};
@@ -1,24 +1,24 @@
1
1
  <script>import { Button } from "flowbite-svelte";
2
2
  import Hash, { HashType } from "./Hash.svelte";
3
+ import {
4
+ constructHashLink,
5
+ isOrderOrVaultActive,
6
+ extractHash
7
+ } from "../utils/constructHashLink";
3
8
  export let orderOrVault;
4
9
  export let type;
5
- export let network;
6
- export let updateActiveNetworkAndOrderbook;
7
- let hash;
8
- $: isOrder = "orderHash" in (orderOrVault || {});
9
- $: slug = isOrder ? orderOrVault.orderHash : orderOrVault?.id;
10
- $: hash = isOrder ? orderOrVault.orderHash : orderOrVault?.id || "";
11
- $: isActive = isOrder ? orderOrVault.active : false;
10
+ export let chainId;
11
+ export let raindexAddress;
12
+ $: hash = extractHash(orderOrVault);
13
+ $: isActive = isOrderOrVaultActive(orderOrVault);
14
+ $: linkPath = constructHashLink(orderOrVault, type, chainId, raindexAddress);
12
15
  </script>
13
16
 
14
- <a href={`/${type}/${network}-${slug}`}>
17
+ <a data-testid="order-or-vault-hash" href={linkPath}>
15
18
  <Button
16
19
  class="mr-1 mt-1 px-2 py-1 text-sm"
17
20
  color={isActive ? 'green' : 'yellow'}
18
21
  data-testid="vault-order-input"
19
- data-id={slug}
20
- on:click={() => {
21
- updateActiveNetworkAndOrderbook(network);
22
- }}><Hash type={HashType.Identifier} value={hash} copyOnClick={false} /></Button
22
+ data-id={hash}><Hash type={HashType.Identifier} value={hash} copyOnClick={false} /></Button
23
23
  >
24
24
  </a>
@@ -1,11 +1,11 @@
1
1
  import { SvelteComponent } from "svelte";
2
- import type { SgOrderAsIO, SgOrder, SgVault } from '@rainlanguage/orderbook/js_api';
2
+ import type { Address, RaindexOrder, RaindexOrderAsIO, RaindexVault } from '@rainlanguage/raindex';
3
3
  declare const __propDef: {
4
4
  props: {
5
- orderOrVault: SgOrder | SgVault | SgOrderAsIO;
5
+ orderOrVault: RaindexVault | RaindexOrder | RaindexOrderAsIO;
6
6
  type: "orders" | "vaults";
7
- network: string;
8
- updateActiveNetworkAndOrderbook: (subgraphName: string) => void;
7
+ chainId: number;
8
+ raindexAddress: Address;
9
9
  };
10
10
  events: {
11
11
  [evt: string]: CustomEvent<any>;
@@ -5,7 +5,7 @@ export let pathname;
5
5
  $: breadcrumbs = generateBreadcrumbs(pathname);
6
6
  </script>
7
7
 
8
- <div class="mb-4 flex w-full items-center justify-between">
8
+ <div class="mb-4 flex w-full items-center justify-between" data-testid="page-header">
9
9
  <Breadcrumb
10
10
  olClass="inline-flex items-center rtl:space-x-reverse"
11
11
  aria-label="Default breadcrumb example"
@@ -0,0 +1,16 @@
1
+ <script>import { scrub as scrubStore } from "../storesGeneric/scrub";
2
+ export let scrub = scrubStore;
3
+ </script>
4
+
5
+ <span class="relative inline-block align-bottom" data-testid="sensitive">
6
+ <span class:invisible={$scrub} data-testid="sensitive-content">
7
+ <slot />
8
+ </span>
9
+ {#if $scrub}
10
+ <span
11
+ class="absolute inset-0 rounded bg-gray-400 dark:bg-gray-600"
12
+ data-testid="sensitive-mask"
13
+ aria-hidden="true"
14
+ ></span>
15
+ {/if}
16
+ </span>
@@ -0,0 +1,28 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import type { Writable } from 'svelte/store';
3
+ declare const __propDef: {
4
+ props: {
5
+ /**
6
+ * Wrap any content that may reveal an address or transaction hash. When the
7
+ * global `scrub` toggle is on, an opaque grey box is laid over the slotted
8
+ * content so it can't be read in a screenshot. Purely presentational - the
9
+ * underlying value is untouched.
10
+ *
11
+ * The store is injectable for testing; it defaults to the global scrub store.
12
+ */ scrub?: Writable<boolean>;
13
+ };
14
+ events: {
15
+ [evt: string]: CustomEvent<any>;
16
+ };
17
+ slots: {
18
+ default: {};
19
+ };
20
+ exports?: {} | undefined;
21
+ bindings?: string | undefined;
22
+ };
23
+ export type SensitiveProps = typeof __propDef.props;
24
+ export type SensitiveEvents = typeof __propDef.events;
25
+ export type SensitiveSlots = typeof __propDef.slots;
26
+ export default class Sensitive extends SvelteComponent<SensitiveProps, SensitiveEvents, SensitiveSlots> {
27
+ }
28
+ export {};