zframes 0.8.2 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (519) hide show
  1. package/dist/index.js +524 -5
  2. package/package.json +6 -6
  3. package/runtime/assets/bar-chart-CMWrEpFm.js +1 -0
  4. package/runtime/assets/bitcoin-dominance-CDZbSLQ9.js +1 -0
  5. package/runtime/assets/breakeven-N9JfaLs2.js +1 -0
  6. package/runtime/assets/breathing-CSiaHH2d.js +1 -0
  7. package/runtime/assets/btc-block-size-bars-BwGQm2NA.js +1 -0
  8. package/runtime/assets/btc-blocks-CFz6DrIF.js +1 -0
  9. package/runtime/assets/btc-difficulty-bSLdWqGX.js +1 -0
  10. package/runtime/assets/btc-difficulty-chart-D6il3x9b.js +1 -0
  11. package/runtime/assets/btc-fees-CwRPq2S2.js +1 -0
  12. package/runtime/assets/btc-hashrate-_PbwOOj4.js +1 -0
  13. package/runtime/assets/btc-in-gold-JNXTU7sM.js +1 -0
  14. package/runtime/assets/btc-mempool-DivYz6mX.js +1 -0
  15. package/runtime/assets/btc-shared-BC2IjkCh.js +1 -0
  16. package/runtime/assets/bubbles-shared-BgKUWrak.js +1 -0
  17. package/runtime/assets/calculator-F474oCeb.js +1 -0
  18. package/runtime/assets/capital-structure-bars-BHtcggyu.js +1 -0
  19. package/runtime/assets/chain-activity-Db-zx6eG.js +1 -0
  20. package/runtime/assets/chain-activity-bars-CPhHE6lU.js +1 -0
  21. package/runtime/assets/chain-activity-scatter-CU7D3Nx9.js +1 -0
  22. package/runtime/assets/chain-price-movers-Vym50Lcy.js +1 -0
  23. package/runtime/assets/chart-utils-Ba8AFSZR.js +1 -0
  24. package/runtime/assets/checklist-BSCOZLJ-.js +1 -0
  25. package/runtime/assets/clock-C5hPRu82.js +1 -0
  26. package/runtime/assets/coin-momentum-heatmap-DbHsWjP2.js +1 -0
  27. package/runtime/assets/coin-momentum-scatter-5wS64urM.js +1 -0
  28. package/runtime/assets/coin-movers-BPifHhH2.js +1 -0
  29. package/runtime/assets/content-shared-CrVCFeOp.js +1 -0
  30. package/runtime/assets/countdown-9cgAKml3.js +1 -0
  31. package/runtime/assets/custom-data-A7UR4hIt.js +1 -0
  32. package/runtime/assets/cycle-shared-D8LQcBSw.js +1 -0
  33. package/runtime/assets/cycle-signals-CmEenZJE.js +1 -0
  34. package/runtime/assets/cycle-valuation-composite-olTWmWgj.js +1 -0
  35. package/runtime/assets/d3-BDRmnSFu.js +1 -0
  36. package/runtime/assets/daily-analysis-DmNxxfsL.js +1 -0
  37. package/runtime/assets/day-meter-DYYqZgFQ.js +1 -0
  38. package/runtime/assets/defi-revenue-BwnWnaOl.js +1 -0
  39. package/runtime/assets/dex-hot-pools-5sl00AOK.js +1 -0
  40. package/runtime/assets/dex-pool-bubbles-KyBmXb-u.js +1 -0
  41. package/runtime/assets/dex-pool-liquidity-scatter-Cczoa7F0.js +1 -0
  42. package/runtime/assets/dex-pool-treemap-DmoYWG3V.js +1 -0
  43. package/runtime/assets/dex-volume-bubbles-lLAheaQp.js +1 -0
  44. package/runtime/assets/dex-volume-chart-CGCkffrp.js +1 -0
  45. package/runtime/assets/dex-volume-share-area-figZ1USz.js +1 -0
  46. package/runtime/assets/dex-volume-treemap-CXXZ330C.js +1 -0
  47. package/runtime/assets/dice-BRHGwsSK.js +1 -0
  48. package/runtime/assets/dino-game-DkbgStXN.js +1 -0
  49. package/runtime/assets/divider-B_ScYYo5.js +1 -0
  50. package/runtime/assets/dominance-bars-CwFTP6Sh.js +1 -0
  51. package/runtime/assets/dominance-gauge-DL_JjphD.js +1 -0
  52. package/runtime/assets/drawdy-Bqx6Qs9j.js +1 -0
  53. package/runtime/assets/dxy-EDEcDqHS.js +1 -0
  54. package/runtime/assets/dxy-chart-DZ9Q_k9j.js +1 -0
  55. package/runtime/assets/editor-DNWRDAc5.css +1 -0
  56. package/runtime/assets/editor-DchM45os.js +2 -0
  57. package/runtime/assets/etf-flow-bars-BdLldRsx.js +1 -0
  58. package/runtime/assets/etf-flow-calendar-QeCVgCXm.js +1 -0
  59. package/runtime/assets/etf-flows-BokfCz94.js +1 -0
  60. package/runtime/assets/etf-flows-chart-B7vXhlo1.js +1 -0
  61. package/runtime/assets/etf-issuer-bars-ZWR-71DZ.js +1 -0
  62. package/runtime/assets/etf-issuer-treemap-zM5ZN913.js +1 -0
  63. package/runtime/assets/eth-issuance-impact-C0dbmsYs.js +1 -0
  64. package/runtime/assets/eth-staking-DhS4t_di.js +1 -0
  65. package/runtime/assets/eth-supply-BDXv32cs.js +1 -0
  66. package/runtime/assets/fear-greed-Db3YYSrb.js +1 -0
  67. package/runtime/assets/fear-greed-chart-BUaJVaqb.js +1 -0
  68. package/runtime/assets/feed-row-qDN72CXa.js +1 -0
  69. package/runtime/assets/filings-feed-CNEQhc4S.js +1 -0
  70. package/runtime/assets/filings-mix-BycrOiTn.js +1 -0
  71. package/runtime/assets/financial-stress-CtL4d_BQ.js +1 -0
  72. package/runtime/assets/flappy-bird-OADt73RX.js +1 -0
  73. package/runtime/assets/format-DWMrfgke.js +1 -0
  74. package/runtime/assets/fundamentals-DeZ9OQCp.js +1 -0
  75. package/runtime/assets/funding-bars-CZicqsRm.js +1 -0
  76. package/runtime/assets/funding-carry-area-B9WKPWmT.js +1 -0
  77. package/runtime/assets/funding-comparison-TSJiamEF.js +1 -0
  78. package/runtime/assets/funding-crowding-scatter-DfPN294N.js +1 -0
  79. package/runtime/assets/funding-heatmap-BiW7ZLwp.js +1 -0
  80. package/runtime/assets/funding-leaderboard-bars-C6PF11ps.js +1 -0
  81. package/runtime/assets/funding-rate-chart-MWU01Uib.js +1 -0
  82. package/runtime/assets/funding-spread-bars-Br7XsS11.js +1 -0
  83. package/runtime/assets/funding-venue-heatmap-sPFQ1fzo.js +1 -0
  84. package/runtime/assets/fx-board-CXrfSPfH.js +1 -0
  85. package/runtime/assets/fx-cross-heatmap-CHJIg4cN.js +1 -0
  86. package/runtime/assets/fx-movers-bars-DpD5YR28.js +1 -0
  87. package/runtime/assets/fx-trend-chart-DXS0-OTV.js +1 -0
  88. package/runtime/assets/game-ui-DRuW9syP.js +1 -0
  89. package/runtime/assets/gold-silver-ratio-C1AEhktf.js +1 -0
  90. package/runtime/assets/gridstack-BJOLV-iY.js +3 -0
  91. package/runtime/assets/gridstack-Chv4ms9g.css +1 -0
  92. package/runtime/assets/heading-DMvjA_mI.js +1 -0
  93. package/runtime/assets/heatmap-chart-CXN9d41C.js +1 -0
  94. package/runtime/assets/hero-number-BFIUUm5q.js +1 -0
  95. package/runtime/assets/holiday-calendar-s6CQYrht.js +1 -0
  96. package/runtime/assets/hooks-CLLchjg6.js +1 -0
  97. package/runtime/assets/image-Dx6lzZxo.js +1 -0
  98. package/runtime/assets/image-gallery-DlvoKVqh.js +1 -0
  99. package/runtime/assets/index-9oCCAb1t.js +1106 -0
  100. package/runtime/assets/index-tGx-fhSL.css +1 -0
  101. package/runtime/assets/indicators-YksbfYtF.js +1 -0
  102. package/runtime/assets/inflation-pulse-DFjPkATF.js +1 -0
  103. package/runtime/assets/journal-log-DllO3-3Q.js +1 -0
  104. package/runtime/assets/journal-open-49eapsYs.js +1 -0
  105. package/runtime/assets/journal-results-CYsmiD33.js +1 -0
  106. package/runtime/assets/journal-score-BvJ7YMEp.js +1 -0
  107. package/runtime/assets/journal-store-DcqepoPT.js +1 -0
  108. package/runtime/assets/journal-ui-CR7uxhyO.js +1 -0
  109. package/runtime/assets/labor-force-flow-BIAQjzra.js +1 -0
  110. package/runtime/assets/labor-market-D_4TsgBi.js +1 -0
  111. package/runtime/assets/lightning-stats-DqM9rjwr.js +1 -0
  112. package/runtime/assets/link-grid-DUGgdBCS.js +1 -0
  113. package/runtime/assets/liquidity-basis-bars-BBthK657.js +1 -0
  114. package/runtime/assets/live-tick-S-lWTthW.js +1 -0
  115. package/runtime/assets/liveline-BV-xqAVq.js +1 -0
  116. package/runtime/assets/ma-multiplier-0NdXDf5j.js +1 -0
  117. package/runtime/assets/macro-calendar-BtFBeUX9.js +1 -0
  118. package/runtime/assets/market-bubbles-B4CW9pwK.js +1 -0
  119. package/runtime/assets/market-cap-treemap-ydmUhoNY.js +1 -0
  120. package/runtime/assets/market-data-BeuX48f-.js +1 -0
  121. package/runtime/assets/market-hours-B_bTdanw.js +1 -0
  122. package/runtime/assets/market-scatter-FTzDpslF.js +1 -0
  123. package/runtime/assets/marquee-sW0gA0u_.js +28 -0
  124. package/runtime/assets/mayer-multiple-D6T_kVDR.js +1 -0
  125. package/runtime/assets/mempool-fee-curve-DUsgJQRe.js +1 -0
  126. package/runtime/assets/metal-annual-returns-CsZDcJs4.js +1 -0
  127. package/runtime/assets/metal-ath-ChqiN4O-.js +1 -0
  128. package/runtime/assets/metal-compare-chart-CiOT1Su2.js +1 -0
  129. package/runtime/assets/metal-cot-breakdown-B83N5bkN.js +1 -0
  130. package/runtime/assets/metal-cot-gauge-DK-PBRRk.js +1 -0
  131. package/runtime/assets/metal-cot-net-B5BW2stR.js +1 -0
  132. package/runtime/assets/metal-drawdown-DZ7uOHIc.js +1 -0
  133. package/runtime/assets/metal-fix-table-ChbUOgVu.js +1 -0
  134. package/runtime/assets/metal-milestones-BpfRvE7K.js +1 -0
  135. package/runtime/assets/metal-open-interest-BFYrS2KP.js +1 -0
  136. package/runtime/assets/metal-performance-CBD6oX6f.js +1 -0
  137. package/runtime/assets/metal-positioning-vs-price-BPxrZcR9.js +1 -0
  138. package/runtime/assets/metal-price-CIZRcE2_.js +1 -0
  139. package/runtime/assets/metal-price-chart-BX5tGnIt.js +1 -0
  140. package/runtime/assets/metal-ratio-chart-D99QH7nv.js +1 -0
  141. package/runtime/assets/metal-return-distribution-B0AAXxe0.js +1 -0
  142. package/runtime/assets/metal-seasonality-BuQKG4Gi.js +1 -0
  143. package/runtime/assets/metal-value-CTPzpBvh.js +1 -0
  144. package/runtime/assets/metal-volatility-g94-b7hn.js +1 -0
  145. package/runtime/assets/metals-board-DPfkH3Vj.js +1 -0
  146. package/runtime/assets/metals-correlation-BjZHMzKY.js +1 -0
  147. package/runtime/assets/metals-shared-CN6-LtS3.js +1 -0
  148. package/runtime/assets/metric-row-CqsjSvCI.js +1 -0
  149. package/runtime/assets/mini-line-chart-B0Ixv2kC.js +1 -0
  150. package/runtime/assets/mining-pools-BpaMCs0f.js +1 -0
  151. package/runtime/assets/mining-pools-share-CrfTxNKr.js +1 -0
  152. package/runtime/assets/misery-index-BU2requD.js +1 -0
  153. package/runtime/assets/money-BHiVNo0u.js +1 -0
  154. package/runtime/assets/mover-row-DmmszLhN.js +1 -0
  155. package/runtime/assets/movers-bars-Bp8o2qzk.js +1 -0
  156. package/runtime/assets/movers-bubbles-BidtAeZE.js +1 -0
  157. package/runtime/assets/multi-series-line-chart-DyOsZlI2.css +1 -0
  158. package/runtime/assets/multi-series-line-chart-XRttVKf5.js +1 -0
  159. package/runtime/assets/mvrv-CrYk75Yb.js +1 -0
  160. package/runtime/assets/mvrv-zscore-chart-0m51ohsV.js +1 -0
  161. package/runtime/assets/national-debt-BExrnkxj.js +1 -0
  162. package/runtime/assets/news-feed-BHQ8VVq_.js +1 -0
  163. package/runtime/assets/nft-activity-bars-BjGU2vJF.js +1 -0
  164. package/runtime/assets/nft-bubbles-BU8EpLxc.js +1 -0
  165. package/runtime/assets/nft-collections-BED52ibd.js +1 -0
  166. package/runtime/assets/nft-scatter-CGhED2cB.js +1 -0
  167. package/runtime/assets/nft-treemap-PO55tL6W.js +1 -0
  168. package/runtime/assets/note-Dgl6DLv8.js +3 -0
  169. package/runtime/assets/nupl-DglP-qbC.js +1 -0
  170. package/runtime/assets/nupl-cycle-chart-S9yflXUB.js +1 -0
  171. package/runtime/assets/nyfed-fed-funds-band-gauge-CFMKcqEc.js +1 -0
  172. package/runtime/assets/nyfed-reference-rate-bars-C_3KkqpO.js +1 -0
  173. package/runtime/assets/nyfed-sofr-term-averages-bars-Dqaa52Pl.js +1 -0
  174. package/runtime/assets/ofr-stress-category-area-DnEjZbRo.js +1 -0
  175. package/runtime/assets/ohlcv-volume-bars-Bi83GPWW.js +1 -0
  176. package/runtime/assets/oi-treemap-BbPekPJp.js +1 -0
  177. package/runtime/assets/onchain-oscillator-overlay-Ck_7aTc_.js +1 -0
  178. package/runtime/assets/open-interest-B5119LVQ.js +1 -0
  179. package/runtime/assets/options-flow-skew-Cj0v65sh.js +1 -0
  180. package/runtime/assets/options-iv-Bbopuw_Z.js +1 -0
  181. package/runtime/assets/options-max-pain-DkUoBRmq.js +1 -0
  182. package/runtime/assets/options-max-pain-multi-BZq8vuHy.js +1 -0
  183. package/runtime/assets/options-oi-ladder-heatmap-BMFAQkEI.js +1 -0
  184. package/runtime/assets/options-oi-skew-B3eQqfLD.js +1 -0
  185. package/runtime/assets/options-oi-strike-D1ZtVHSn.js +1 -0
  186. package/runtime/assets/options-put-call-lwGRvlsC.js +1 -0
  187. package/runtime/assets/options-vol-smile-zdzBnvMN.js +1 -0
  188. package/runtime/assets/options-vol-spread-CnZEubR3.js +1 -0
  189. package/runtime/assets/order-book-depth-CeFNsjv3.js +1 -0
  190. package/runtime/assets/payrolls-bars-T0e6cyjh.js +1 -0
  191. package/runtime/assets/pi-cycle-CqX0lAu1.js +1 -0
  192. package/runtime/assets/pie-chart-cmDhECET.js +1 -0
  193. package/runtime/assets/pomodoro-BstwVCqa.js +1 -0
  194. package/runtime/assets/portfolio-allocation-DzjS0F9u.js +1 -0
  195. package/runtime/assets/portfolio-common-CcbzaPrv.js +1 -0
  196. package/runtime/assets/portfolio-holdings-1d7jT_Dv.js +1 -0
  197. package/runtime/assets/portfolio-movers-vdVKKjAL.js +1 -0
  198. package/runtime/assets/portfolio-value-C2hCsXwG.js +1 -0
  199. package/runtime/assets/portfolio-value-bars-Bkh18oxT.js +1 -0
  200. package/runtime/assets/prediction-market-bars-WOea9YlB.js +1 -0
  201. package/runtime/assets/prediction-market-scatter-Bg8Hp9YU.js +1 -0
  202. package/runtime/assets/prediction-markets-bubble-DUFbL6ZL.js +1 -0
  203. package/runtime/assets/prediction-markets-vrOoZGTG.js +1 -0
  204. package/runtime/assets/price-chart-NGnXyEwF.js +1 -0
  205. package/runtime/assets/price-compare-D0cu78Tg.js +1 -0
  206. package/runtime/assets/price-liveline-B_6-t2eO.js +1 -0
  207. package/runtime/assets/price-ticker-DpNG6jQF.js +1 -0
  208. package/runtime/assets/protocol-fees-bubbles-CfMsdfGV.js +1 -0
  209. package/runtime/assets/protocol-fees-treemap-b4z8_0dU.js +1 -0
  210. package/runtime/assets/protocol-fees-vs-tvl-scatter-D-REm65e.js +1 -0
  211. package/runtime/assets/protocol-tvl-bubbles-BDAUSzkE.js +1 -0
  212. package/runtime/assets/protocol-tvl-by-category-fw6ADU1F.js +1 -0
  213. package/runtime/assets/protocol-tvl-chart-Q1hGvfby.js +1 -0
  214. package/runtime/assets/protocol-tvl-share-area-DXQzexAL.js +1 -0
  215. package/runtime/assets/protocol-tvl-treemap-DC_qfwIF.js +1 -0
  216. package/runtime/assets/puell-multiple-uc0NZXdh.js +1 -0
  217. package/runtime/assets/put-call-gauge-DtlDFtDZ.js +1 -0
  218. package/runtime/assets/quote-CuEE1U0a.js +1 -0
  219. package/runtime/assets/radial-gauge-DUhIBGcM.js +1 -0
  220. package/runtime/assets/rates-board-Byz3erIf.js +1 -0
  221. package/runtime/assets/react-DdM8gsnR.js +9 -0
  222. package/runtime/assets/real-wages-BU2XSTAC.js +1 -0
  223. package/runtime/assets/realized-price-D91T6q7P.js +1 -0
  224. package/runtime/assets/reserve-risk-CuRuMPUz.js +1 -0
  225. package/runtime/assets/returns-projector-DvVTUgZa.js +1 -0
  226. package/runtime/assets/risk-reward-Brde1Qql.js +1 -0
  227. package/runtime/assets/rolldown-runtime-Bh1tDfsg.js +1 -0
  228. package/runtime/assets/rsi-momentum-DFARJhwN.js +1 -0
  229. package/runtime/assets/rules-card-CDgHHXtE.js +1 -0
  230. package/runtime/assets/scatter-chart-tjlc1NWO.js +1 -0
  231. package/runtime/assets/scene-DgXljRUS.js +1 -0
  232. package/runtime/assets/sector-bars-D0A6Sj3C.js +1 -0
  233. package/runtime/assets/sector-bubbles-C5lQoTi9.js +1 -0
  234. package/runtime/assets/sector-performance-CVVJ-VGu.js +1 -0
  235. package/runtime/assets/sector-treemap-lyftrGDF.js +1 -0
  236. package/runtime/assets/sentiment-gauge-CdnbFwyn.js +1 -0
  237. package/runtime/assets/session-progress-BfuN5Ilt.js +1 -0
  238. package/runtime/assets/short-volume-B2TiqLCD.js +1 -0
  239. package/runtime/assets/short-volume-bars-Cm-TnzY-.js +1 -0
  240. package/runtime/assets/snake-D0Secq9I.js +1 -0
  241. package/runtime/assets/sopr-j5kMKG03.js +1 -0
  242. package/runtime/assets/spotify-embed-BJIW3cBK.js +1 -0
  243. package/runtime/assets/stablecoin-chains-jLxaRE9T.js +1 -0
  244. package/runtime/assets/stablecoin-supply-6Q2kIHWN.js +1 -0
  245. package/runtime/assets/stacked-area-chart-B3ayMBfx.js +1 -0
  246. package/runtime/assets/stopwatch-DKtBGcQd.js +1 -0
  247. package/runtime/assets/timeframe-DUDLPk23.js +1 -0
  248. package/runtime/assets/tokenized-gold-B6KMvUVf.js +1 -0
  249. package/runtime/assets/top-movers-Bzz7lloh.js +1 -0
  250. package/runtime/assets/treasury-auction-demand-scatter-CUoIYkrP.js +1 -0
  251. package/runtime/assets/treasury-auction-size-bars-DXMJ0a9C.js +1 -0
  252. package/runtime/assets/treasury-auctions-ChsX0OUJ.js +1 -0
  253. package/runtime/assets/treasury-avg-rate-bars-DQ_HgQ0U.js +1 -0
  254. package/runtime/assets/treasury-debt-composition-area-C3sBaNNX.js +1 -0
  255. package/runtime/assets/treemap-leaf-f-vE1hUM.js +1 -0
  256. package/runtime/assets/trending-bars-DtgWzD_x.js +1 -0
  257. package/runtime/assets/trending-bubbles-DRJqfQqK.js +1 -0
  258. package/runtime/assets/trending-coins-n7mmU4mL.js +1 -0
  259. package/runtime/assets/tvl-bars-5IQ6zz2M.js +1 -0
  260. package/runtime/assets/tvl-bubbles-DU2M5Zl1.js +1 -0
  261. package/runtime/assets/tvl-treemap-qsmpeeAB.js +1 -0
  262. package/runtime/assets/ui-CYz5SGgR.js +1 -0
  263. package/runtime/assets/us-gold-reserve-8L2oYWV_.js +1 -0
  264. package/runtime/assets/us-gold-vaults-TuTFtr2T.js +1 -0
  265. package/runtime/assets/use-countdown-DSLbwkPl.js +1 -0
  266. package/runtime/assets/utils-BsB3-B7h.js +1 -0
  267. package/runtime/assets/video-CYH3El1X.js +1 -0
  268. package/runtime/assets/volume-movers-scatter-B8dYI1EZ.js +1 -0
  269. package/runtime/assets/volume-profile-W44vUguI.js +1 -0
  270. package/runtime/assets/volume-share-donut-CLbp38ek.js +1 -0
  271. package/runtime/assets/yield-composition-scatter-BinG9C4D.js +1 -0
  272. package/runtime/assets/yield-curve-DHeqDdBV.js +1 -0
  273. package/runtime/assets/yield-momentum-bars-D4ToH0Fp.js +1 -0
  274. package/runtime/assets/yield-risk-pie-C73G7WqW.js +1 -0
  275. package/runtime/assets/yield-scanner-uR4S_OrU.js +1 -0
  276. package/runtime/assets/yield-scatter-CnZQ7naG.js +1 -0
  277. package/runtime/index.html +7 -3
  278. package/runtime/assets/bar-chart-DCMbxUJx.js +0 -1
  279. package/runtime/assets/bitcoin-dominance-DQ6fUOfp.js +0 -1
  280. package/runtime/assets/breakeven-BiMfl0NU.js +0 -1
  281. package/runtime/assets/breathing-BQamMTOy.js +0 -1
  282. package/runtime/assets/btc-block-size-bars-DbwVb3YX.js +0 -1
  283. package/runtime/assets/btc-blocks-UZJqCEtB.js +0 -1
  284. package/runtime/assets/btc-difficulty-BtNgUCRS.js +0 -1
  285. package/runtime/assets/btc-difficulty-chart-BNT2fdwu.js +0 -1
  286. package/runtime/assets/btc-fees-CJhybpGO.js +0 -1
  287. package/runtime/assets/btc-hashrate-CtKkSA37.js +0 -1
  288. package/runtime/assets/btc-mempool-Dvlm6Uqk.js +0 -1
  289. package/runtime/assets/btc-shared-yOWoU9Im.js +0 -1
  290. package/runtime/assets/bubbles-shared-DlmjtiIA.js +0 -1
  291. package/runtime/assets/calculator-vMXfcXI8.js +0 -1
  292. package/runtime/assets/capital-structure-bars-B8-6gPY8.js +0 -1
  293. package/runtime/assets/chain-activity-Dj-2gNmT.js +0 -1
  294. package/runtime/assets/chain-activity-bars-BKvgXG2Z.js +0 -1
  295. package/runtime/assets/chain-activity-scatter-BQHleuZR.js +0 -1
  296. package/runtime/assets/chain-price-movers-Brvxvf8U.js +0 -1
  297. package/runtime/assets/chart-utils-DGogNvJT.js +0 -1
  298. package/runtime/assets/checklist-CNXEkmSt.js +0 -1
  299. package/runtime/assets/clock-Cygi_7Rq.js +0 -1
  300. package/runtime/assets/coin-momentum-heatmap-1twNsb0f.js +0 -1
  301. package/runtime/assets/coin-momentum-scatter-DPsgGLFi.js +0 -1
  302. package/runtime/assets/coin-movers-CVT1PPyM.js +0 -1
  303. package/runtime/assets/content-shared-BZ1XzrJx.js +0 -1
  304. package/runtime/assets/countdown-DSGwZS9O.js +0 -1
  305. package/runtime/assets/custom-data-eTpLXe-p.js +0 -1
  306. package/runtime/assets/cycle-shared-XoGVsOjC.js +0 -1
  307. package/runtime/assets/cycle-signals-DjvuKoAs.js +0 -1
  308. package/runtime/assets/cycle-valuation-composite-D2lAreTy.js +0 -1
  309. package/runtime/assets/d3-ibrLIlQc.js +0 -1
  310. package/runtime/assets/daily-analysis-00KQOxaw.js +0 -1
  311. package/runtime/assets/day-meter-VL3CbmZ4.js +0 -1
  312. package/runtime/assets/defi-revenue-DWs3X1sr.js +0 -1
  313. package/runtime/assets/dex-hot-pools-Btjw9uOK.js +0 -1
  314. package/runtime/assets/dex-pool-bubbles-DOWGPgDC.js +0 -1
  315. package/runtime/assets/dex-pool-liquidity-scatter-DBqKeUjl.js +0 -1
  316. package/runtime/assets/dex-pool-treemap-Dev3WsvG.js +0 -1
  317. package/runtime/assets/dex-volume-bubbles-C9INGAs-.js +0 -1
  318. package/runtime/assets/dex-volume-chart-CdhI9ySp.js +0 -1
  319. package/runtime/assets/dex-volume-share-area-DblxtqOC.js +0 -1
  320. package/runtime/assets/dex-volume-treemap-LweUYNfn.js +0 -1
  321. package/runtime/assets/dice-CRJFRdlS.js +0 -1
  322. package/runtime/assets/dino-game-DIj8Xqmq.js +0 -1
  323. package/runtime/assets/divider-C0PhyAZz.js +0 -1
  324. package/runtime/assets/dominance-bars-CNztOXI9.js +0 -1
  325. package/runtime/assets/dominance-gauge-BSlVu-kG.js +0 -1
  326. package/runtime/assets/drawdy-UVwx54Tz.js +0 -1
  327. package/runtime/assets/dxy-DDnItBY-.js +0 -1
  328. package/runtime/assets/dxy-chart-CbyyyRdn.js +0 -1
  329. package/runtime/assets/editor-C9dj6xX0.css +0 -1
  330. package/runtime/assets/editor-CpgNu0wu.js +0 -68
  331. package/runtime/assets/etf-flow-bars-Dknb70p4.js +0 -1
  332. package/runtime/assets/etf-flow-calendar-DXTg-p2v.js +0 -1
  333. package/runtime/assets/etf-flows-D7WwvrYS.js +0 -1
  334. package/runtime/assets/etf-flows-chart-D_Ts_7Bc.js +0 -1
  335. package/runtime/assets/etf-issuer-bars-B5q3WXIk.js +0 -1
  336. package/runtime/assets/etf-issuer-treemap-hdTKUL3C.js +0 -1
  337. package/runtime/assets/eth-issuance-impact-CSucvUy4.js +0 -1
  338. package/runtime/assets/eth-staking-Yp_RzOHD.js +0 -1
  339. package/runtime/assets/eth-supply-jf4tRC80.js +0 -1
  340. package/runtime/assets/fear-greed-BrDutlol.js +0 -1
  341. package/runtime/assets/fear-greed-chart-BPAfnROs.js +0 -1
  342. package/runtime/assets/feed-row-mVg1d5Zj.js +0 -1
  343. package/runtime/assets/filings-feed-BrtWoUaf.js +0 -1
  344. package/runtime/assets/filings-mix-D8Z-fvzY.js +0 -1
  345. package/runtime/assets/financial-stress-DaxcQDnz.js +0 -1
  346. package/runtime/assets/flappy-bird-M38jNjAd.js +0 -1
  347. package/runtime/assets/format-DxkEZcwQ.js +0 -1
  348. package/runtime/assets/fundamentals-TlBRBKFV.js +0 -1
  349. package/runtime/assets/funding-bars-BPDrsC0K.js +0 -1
  350. package/runtime/assets/funding-carry-area-BZRpyy3L.js +0 -1
  351. package/runtime/assets/funding-comparison-C1OOzJw-.js +0 -1
  352. package/runtime/assets/funding-crowding-scatter-DDjzoq8v.js +0 -1
  353. package/runtime/assets/funding-heatmap-DqnJJPw0.js +0 -1
  354. package/runtime/assets/funding-leaderboard-bars-CrQMBbY7.js +0 -1
  355. package/runtime/assets/funding-rate-chart-dYIjvTBt.js +0 -1
  356. package/runtime/assets/funding-spread-bars-CRoG-zHf.js +0 -1
  357. package/runtime/assets/funding-venue-heatmap-DA0JsXzA.js +0 -1
  358. package/runtime/assets/fx-board-C_h1IJJy.js +0 -1
  359. package/runtime/assets/fx-cross-heatmap-CLHkKvsB.js +0 -1
  360. package/runtime/assets/fx-movers-bars-_U6XrETl.js +0 -1
  361. package/runtime/assets/fx-trend-chart-Cdi-lmjx.js +0 -1
  362. package/runtime/assets/game-ui-BiMS2KJf.js +0 -1
  363. package/runtime/assets/gridstack-BxxvPIFU.js +0 -9
  364. package/runtime/assets/gridstack-FIb_WQSt.css +0 -1
  365. package/runtime/assets/heading-BS9IhuAM.js +0 -1
  366. package/runtime/assets/hero-number-R-27T2n_.js +0 -1
  367. package/runtime/assets/holiday-calendar-BxcU0Y64.js +0 -1
  368. package/runtime/assets/image-HcDu9YKF.js +0 -1
  369. package/runtime/assets/image-gallery-BCXhCjqj.js +0 -1
  370. package/runtime/assets/index-BJ1Zyy42.js +0 -1108
  371. package/runtime/assets/index-BXLwJuoo.css +0 -1
  372. package/runtime/assets/index-BpPIfN5S.js +0 -1
  373. package/runtime/assets/index-Bw1aFtyx.js +0 -1
  374. package/runtime/assets/index-DuNO-RcB.js +0 -1
  375. package/runtime/assets/index-yv-SCb9g.css +0 -1
  376. package/runtime/assets/indicators-Cw7CVPn4.js +0 -1
  377. package/runtime/assets/inflation-pulse-BDmh42Nq.js +0 -1
  378. package/runtime/assets/journal-log-BKsmm4ZL.js +0 -1
  379. package/runtime/assets/journal-open-CQtXIVzV.js +0 -1
  380. package/runtime/assets/journal-results-BBhWJDi4.js +0 -1
  381. package/runtime/assets/journal-score-DRmD6tOH.js +0 -1
  382. package/runtime/assets/journal-store-DVDSxNMj.js +0 -1
  383. package/runtime/assets/journal-ui-YZ5om8r6.js +0 -1
  384. package/runtime/assets/labor-force-flow-B-8gZXZw.js +0 -1
  385. package/runtime/assets/labor-market-C6nbrubk.js +0 -1
  386. package/runtime/assets/lightning-stats-cbygNRrq.js +0 -1
  387. package/runtime/assets/link-grid-C0BQkbQ9.js +0 -1
  388. package/runtime/assets/liquidity-basis-bars-Dd5FSjDX.js +0 -1
  389. package/runtime/assets/live-tick-9Q3ubPF9.js +0 -1
  390. package/runtime/assets/liveline-bcaEuskN.js +0 -1
  391. package/runtime/assets/ma-multiplier-CrY1aFKX.js +0 -1
  392. package/runtime/assets/macro-calendar-D9MJ74wW.js +0 -1
  393. package/runtime/assets/market-bubbles-BKLV2VSd.js +0 -1
  394. package/runtime/assets/market-cap-treemap-B9af5p9K.js +0 -1
  395. package/runtime/assets/market-data-CvmpLFSo.js +0 -1
  396. package/runtime/assets/market-hours-jJUnunAF.js +0 -1
  397. package/runtime/assets/market-scatter-_f6FvF2I.js +0 -1
  398. package/runtime/assets/marquee-CJGebjBa.js +0 -28
  399. package/runtime/assets/mayer-multiple-DcxCnx6X.js +0 -1
  400. package/runtime/assets/mempool-fee-curve-yI10fMrE.js +0 -1
  401. package/runtime/assets/metric-row-BVVhjsjK.js +0 -1
  402. package/runtime/assets/mini-line-chart-DyG55cVW.js +0 -1
  403. package/runtime/assets/mining-pools-SIhc1qJ_.js +0 -1
  404. package/runtime/assets/mining-pools-share-DQSjhlWH.js +0 -1
  405. package/runtime/assets/misery-index-p5iEl6PS.js +0 -1
  406. package/runtime/assets/mover-row-_czAON2U.js +0 -1
  407. package/runtime/assets/movers-bars-clMvsESM.js +0 -1
  408. package/runtime/assets/movers-bubbles-CnHOfNZx.js +0 -1
  409. package/runtime/assets/mvrv-x4gyjhWx.js +0 -1
  410. package/runtime/assets/mvrv-zscore-chart-BT3IGmGY.js +0 -1
  411. package/runtime/assets/national-debt-DNtVgcl5.js +0 -1
  412. package/runtime/assets/news-feed-BVfKqSh7.js +0 -1
  413. package/runtime/assets/nft-activity-bars-lFRednN3.js +0 -1
  414. package/runtime/assets/nft-bubbles-ClNH9-_X.js +0 -1
  415. package/runtime/assets/nft-collections-B9RW4PJG.js +0 -1
  416. package/runtime/assets/nft-scatter--MbPsUx4.js +0 -1
  417. package/runtime/assets/nft-treemap-DBkTmq6-.js +0 -1
  418. package/runtime/assets/note-BhUZxKk8.js +0 -3
  419. package/runtime/assets/nupl-D3l-QZE3.js +0 -1
  420. package/runtime/assets/nupl-cycle-chart-BskEKMiX.js +0 -1
  421. package/runtime/assets/nyfed-fed-funds-band-gauge-CyShM9Rb.js +0 -1
  422. package/runtime/assets/nyfed-reference-rate-bars-WKmIeI9B.js +0 -1
  423. package/runtime/assets/nyfed-sofr-term-averages-bars-BXymij4O.js +0 -1
  424. package/runtime/assets/ofr-stress-category-area-Cq2zYtm9.js +0 -1
  425. package/runtime/assets/ohlcv-volume-bars-BqgMyH4V.js +0 -1
  426. package/runtime/assets/oi-treemap-Bu6FQGPf.js +0 -1
  427. package/runtime/assets/onchain-oscillator-overlay-BETEO4VQ.js +0 -1
  428. package/runtime/assets/open-interest-DPwK2Vft.js +0 -1
  429. package/runtime/assets/options-flow-skew-CLWqzUM0.js +0 -1
  430. package/runtime/assets/options-iv-tjSjFT91.js +0 -1
  431. package/runtime/assets/options-max-pain-multi-bMgyJ7e8.js +0 -1
  432. package/runtime/assets/options-max-pain-v6hCUt4V.js +0 -1
  433. package/runtime/assets/options-oi-ladder-heatmap-M34leT_q.js +0 -1
  434. package/runtime/assets/options-oi-skew-DxGLV4Co.js +0 -1
  435. package/runtime/assets/options-oi-strike-CoVTVWcx.js +0 -1
  436. package/runtime/assets/options-put-call-fRylJJIM.js +0 -1
  437. package/runtime/assets/options-vol-smile-DsHa2Bug.js +0 -1
  438. package/runtime/assets/options-vol-spread-BB1X9lml.js +0 -1
  439. package/runtime/assets/payrolls-bars-CQOZQEvE.js +0 -1
  440. package/runtime/assets/pi-cycle-BTdRfEfm.js +0 -1
  441. package/runtime/assets/pie-chart-BIxKuHm-.js +0 -1
  442. package/runtime/assets/pomodoro-lYAXlnH5.js +0 -1
  443. package/runtime/assets/portfolio-allocation-CJCJ-fv5.js +0 -1
  444. package/runtime/assets/portfolio-common-BMRwgiXd.js +0 -1
  445. package/runtime/assets/portfolio-holdings-BwUpyolL.js +0 -1
  446. package/runtime/assets/portfolio-movers-CGcHyyU9.js +0 -1
  447. package/runtime/assets/portfolio-value--mB-D1zn.js +0 -1
  448. package/runtime/assets/portfolio-value-bars-C1sg3z_9.js +0 -1
  449. package/runtime/assets/prediction-market-bars-CV7qn0TK.js +0 -1
  450. package/runtime/assets/prediction-market-scatter-vvAyUSMc.js +0 -1
  451. package/runtime/assets/prediction-markets-Dj5pUGQ9.js +0 -1
  452. package/runtime/assets/prediction-markets-bubble-Dy58nx5D.js +0 -1
  453. package/runtime/assets/price-chart-BWVJKy6l.js +0 -1
  454. package/runtime/assets/price-compare-X_somRkJ.js +0 -1
  455. package/runtime/assets/price-liveline-BcfvYH4i.js +0 -1
  456. package/runtime/assets/price-ticker-Dp5X5iEE.js +0 -1
  457. package/runtime/assets/protocol-fees-bubbles-cOlmopfM.js +0 -1
  458. package/runtime/assets/protocol-fees-treemap-k3DCqpib.js +0 -1
  459. package/runtime/assets/protocol-fees-vs-tvl-scatter-DE0XqWUP.js +0 -1
  460. package/runtime/assets/protocol-tvl-bubbles-C_y8RNpr.js +0 -1
  461. package/runtime/assets/protocol-tvl-by-category-CU3EhtYv.js +0 -1
  462. package/runtime/assets/protocol-tvl-chart-BSjYp87K.js +0 -1
  463. package/runtime/assets/protocol-tvl-share-area-A9uUDjqD.js +0 -1
  464. package/runtime/assets/protocol-tvl-treemap-DK99PI9E.js +0 -1
  465. package/runtime/assets/puell-multiple-DUwx8WAi.js +0 -1
  466. package/runtime/assets/put-call-gauge-wPFbaG0I.js +0 -1
  467. package/runtime/assets/quote-BEXrdAL4.js +0 -1
  468. package/runtime/assets/radial-gauge-0BzRQ6fO.js +0 -1
  469. package/runtime/assets/rates-board-Bo-1vZL3.js +0 -1
  470. package/runtime/assets/react-qoZPGuNy.js +0 -49
  471. package/runtime/assets/real-wages-DFbQjlXf.js +0 -1
  472. package/runtime/assets/realized-price-C7sCYZ-5.js +0 -1
  473. package/runtime/assets/reserve-risk-CYWr6Bnu.js +0 -1
  474. package/runtime/assets/returns-projector-Bitu8mA2.js +0 -1
  475. package/runtime/assets/risk-reward-5CA4dPWK.js +0 -1
  476. package/runtime/assets/rsi-momentum-BdScXy4t.js +0 -1
  477. package/runtime/assets/rules-card-BxdIuORn.js +0 -1
  478. package/runtime/assets/scatter-chart-B78EA7lD.js +0 -1
  479. package/runtime/assets/scene-uwfOGek1.js +0 -1
  480. package/runtime/assets/sector-bars-B4Nabix2.js +0 -1
  481. package/runtime/assets/sector-bubbles-D_s1FnKb.js +0 -1
  482. package/runtime/assets/sector-performance-C8K8FBsp.js +0 -1
  483. package/runtime/assets/sector-treemap-DOn3li5j.js +0 -1
  484. package/runtime/assets/sentiment-gauge-D-TyqTrT.js +0 -1
  485. package/runtime/assets/session-progress-2uZKU_tb.js +0 -1
  486. package/runtime/assets/short-volume-DrAqZxL_.js +0 -1
  487. package/runtime/assets/short-volume-bars-D0tDnbRp.js +0 -1
  488. package/runtime/assets/snake-CPrCYXRC.js +0 -1
  489. package/runtime/assets/sopr-CL-DcV9H.js +0 -1
  490. package/runtime/assets/spotify-embed-Cuyo3WcD.js +0 -1
  491. package/runtime/assets/stablecoin-chains-BNyBP4r7.js +0 -1
  492. package/runtime/assets/stablecoin-supply-CDoJSW65.js +0 -1
  493. package/runtime/assets/stopwatch-C5UbM7BR.js +0 -1
  494. package/runtime/assets/top-movers-n7gjNCAB.js +0 -1
  495. package/runtime/assets/treasury-auction-demand-scatter-B2GgfweB.js +0 -1
  496. package/runtime/assets/treasury-auction-size-bars-RSKrqPZN.js +0 -1
  497. package/runtime/assets/treasury-auctions-DmhLNhux.js +0 -1
  498. package/runtime/assets/treasury-avg-rate-bars-CHo7_TZ6.js +0 -1
  499. package/runtime/assets/treasury-debt-composition-area-D9TIg2Fu.js +0 -1
  500. package/runtime/assets/treemap-leaf-QG-L-SIG.js +0 -1
  501. package/runtime/assets/trending-bars-CFUOf_2T.js +0 -1
  502. package/runtime/assets/trending-bubbles-CWixlrYZ.js +0 -1
  503. package/runtime/assets/trending-coins-XmlyMu9W.js +0 -1
  504. package/runtime/assets/tvl-bars-CMr0p3wy.js +0 -1
  505. package/runtime/assets/tvl-bubbles-CBwy6njm.js +0 -1
  506. package/runtime/assets/tvl-treemap-Df9Sw5pQ.js +0 -1
  507. package/runtime/assets/ui-Bq3RQsdJ.js +0 -1
  508. package/runtime/assets/use-countdown-BmcF-qdL.js +0 -1
  509. package/runtime/assets/utils-DxneYyA_.js +0 -1
  510. package/runtime/assets/video-Cb7G8kra.js +0 -1
  511. package/runtime/assets/volume-movers-scatter-MwF5sr-K.js +0 -1
  512. package/runtime/assets/volume-profile-DM349em1.js +0 -1
  513. package/runtime/assets/volume-share-donut-FMessqoh.js +0 -1
  514. package/runtime/assets/yield-composition-scatter-51jp_MgP.js +0 -1
  515. package/runtime/assets/yield-curve-WOaDSVNR.js +0 -1
  516. package/runtime/assets/yield-momentum-bars-0hhg35dJ.js +0 -1
  517. package/runtime/assets/yield-risk-pie-mBxQGJN1.js +0 -1
  518. package/runtime/assets/yield-scanner-DTDsWH9C.js +0 -1
  519. package/runtime/assets/yield-scatter-BkeRhOK4.js +0 -1
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{M as r}from"./hooks-CLLchjg6.js";import{n as i,t as a}from"./ui-CYz5SGgR.js";import{t as o}from"./metric-row-CqsjSvCI.js";import{a as s,h as c,p as l}from"./metals-shared-CN6-LtS3.js";import{Ai as u,Ri as d,rn as f}from"./index-9oCCAb1t.js";var p=e(n(),1),m=t();f.schema;var h=[1,2,5,10,20,30,50,100,200,300,500,1e3,1500,2e3,2500,3e3,4e3,5e3,7500,1e4];function g(e){if(e.length===0)return[];let t=e[0].value,n=s(e)?.value??0,r=h.filter(e=>e>t&&e<=n),i=[],a=0,o=null;for(let t of e){for(;a<r.length&&t.value>=r[a];)i.push({level:r[a],time:t.time,leg:o===null?null:l(o,t.time)}),o=t.time,a+=1;if(a>=r.length)break}return i}var _=e=>new Date(e).toLocaleDateString(`en-US`,{year:`numeric`,month:`short`,day:`numeric`});function v({config:e}){let t=u(),{histories:n,isLoading:s}=r([e.symbol]),l=n[0]?.points,d=(0,p.useMemo)(()=>{let t=g(l??[]);return e.newestFirst?t.reverse():t},[l,e.newestFirst]),f=(l?.length??0)>0;return s&&!f?(0,m.jsx)(a,{loading:!0,children:`loading fix history…`}):f?d.length===0?(0,m.jsxs)(a,{children:[c(e.symbol),` has never crossed a round-number level`]}):(0,m.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-2`,children:[(0,m.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3`,children:[(0,m.jsxs)(`div`,{className:`caption text-soft uppercase`,children:[c(e.symbol),` first close above`]}),(0,m.jsx)(`div`,{className:`caption text-soft shrink-0`,children:`leg`})]}),(0,m.jsx)(`div`,{className:i,children:d.map(e=>(0,m.jsx)(o,{label:t.price(e.level),meta:_(e.time),value:e.leg??`first`},e.level))})]}):(0,m.jsx)(a,{children:`no fix history yet`})}var y=d({...f,component:v});export{y as metalMilestonesFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{N as r,P as i}from"./hooks-CLLchjg6.js";import{a,c as o,s}from"./format-DWMrfgke.js";import{t as c}from"./ui-CYz5SGgR.js";import{t as l}from"./multi-series-line-chart-XRttVKf5.js";import{t as u}from"./chart-utils-Ba8AFSZR.js";import{D as d,E as f,T as p,d as m,h,p as g,t as _,v}from"./metals-shared-CN6-LtS3.js";import{Ai as y,Ri as b,in as x}from"./index-9oCCAb1t.js";var S=e(n(),1),C=t();x.schema;function w(e,t,n){return e===`contracts`||t<=0||e===`notional`&&(n===null||n<=0)?`contracts`:e}function T({config:e}){let t=y(),{positioning:n,isLoading:b}=r(e.symbol),{metals:x}=i([e.symbol]),T=(0,S.useMemo)(()=>x.find(t=>t.symbol===e.symbol)?.price??null,[x,e.symbol]),E=n?.weeks,D=n?.contractSize??0,O=w(e.unit,D,T),k=O!==e.unit,{chartData:A,latest:j,lastReport:M}=(0,S.useMemo)(()=>{let t=p((E??[]).map(e=>({time:e.time,value:e.openInterest})),e.years),n=O===`contracts`?1:O===`ounces`?D:D*(T??0),r=t.map(e=>({time:e.time,value:e.value*n}));return{chartData:d(m(r)),latest:r.length>0?r[r.length-1].value:null,lastReport:r.length>0?r[r.length-1].time:null}},[E,e.years,O,D,T]),N=(0,S.useMemo)(()=>{let e=E??[];return e.length<2?null:v(e[e.length-2].openInterest,e[e.length-1].openInterest)},[E]),P=(0,S.useMemo)(()=>[{id:`oi`,name:`${h(e.symbol)} OI`,color:u[0],data:A}],[A,e.symbol]);if(b&&A.length===0)return(0,C.jsx)(c,{loading:!0,children:`loading open interest…`});if(A.length===0||j===null)return(0,C.jsx)(c,{children:`no COT open-interest data yet`});let F=_[e.symbol]??`oz`,I=O===`notional`?t.compact(j):o(j),L=O===`contracts`?`contracts`:O===`ounces`?F:null,R=O===`notional`&&T!==null?`at ${t.price(T)}/${F} spot`:`${o(D)} ${F} per contract`;return(0,C.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-2`,children:[(0,C.jsxs)(`div`,{className:`flex items-end justify-between gap-3`,children:[(0,C.jsxs)(`div`,{className:`min-w-0`,children:[(0,C.jsxs)(`div`,{className:`caption text-soft truncate uppercase`,children:[h(e.symbol),` open interest`]}),(0,C.jsxs)(`div`,{className:`flex items-baseline gap-1.5`,children:[(0,C.jsx)(`span`,{className:`metric-lg text-strong leading-none tabular-nums`,children:I}),L&&(0,C.jsx)(`span`,{className:`body-sm text-soft`,children:L})]}),D>0&&(0,C.jsx)(`div`,{className:`caption text-soft mt-0.5`,children:R})]}),(0,C.jsxs)(`div`,{className:`shrink-0 text-right`,children:[(0,C.jsx)(`div`,{className:`caption text-soft`,children:`week over week`}),N===null?(0,C.jsx)(`div`,{className:`body-md text-disabled`,children:`—`}):(0,C.jsx)(`div`,{className:`body-md font-bold tabular-nums`,style:{color:a(N)},children:s(N)}),M!==null&&(0,C.jsxs)(`div`,{className:`caption text-soft`,children:[`reported `,g(M),` ago`]})]})]}),(0,C.jsx)(l,{series:P,timeframe:f(e.years),height:170,formatValue:O===`notional`?t.compact:o}),k&&(0,C.jsxs)(`div`,{className:`caption text-soft text-center`,children:[`no `,D>0?`spot quote`:`contract size`,` yet — showing contracts`]})]})}var E=b({...x,component:T});export{E as metalOpenInterestFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{M as r}from"./hooks-CLLchjg6.js";import{s as i}from"./format-DWMrfgke.js";import{t as a}from"./ui-CYz5SGgR.js";import{t as o}from"./bar-chart-CMWrEpFm.js";import{h as s,k as c,s as l,u,v as d}from"./metals-shared-CN6-LtS3.js";import{Ri as f,an as p}from"./index-9oCCAb1t.js";var m=e(n(),1),h=t();p.schema;var g=[{label:`1M`,months:1,years:1/12},{label:`3M`,months:3,years:.25},{label:`6M`,months:6,years:.5},{label:`YTD`,years:0},{label:`1Y`,months:12,years:1},{label:`5Y`,months:60,years:5},{label:`10Y`,months:120,years:10},{label:`20Y`,months:240,years:20}];function _(e,t){let n=new Date(e),r=n.getUTCDate();n.setUTCDate(1),n.setUTCMonth(n.getUTCMonth()-t);let i=new Date(Date.UTC(n.getUTCFullYear(),n.getUTCMonth()+1,0)).getUTCDate();return n.setUTCDate(Math.min(r,i)),n.getTime()}function v(e){return Date.UTC(new Date(e).getUTCFullYear()-1,11,31,23,59,59)}function y({config:e}){let{histories:t,isLoading:n}=r([e.symbol]),f=e.mode===`annualized`,p=(0,m.useMemo)(()=>{let e=t[0]?.points??[];if(e.length===0)return[];let n=e[e.length-1],r=[];for(let t of g){if(f&&t.years<1)continue;let i=c(e,t.months===void 0?v(n.time):_(n.time,t.months));i===null||i<=0||r.push({label:t.label,value:f?l(i,n.value,t.years):d(i,n.value)})}return u(r)},[t,f]);return n&&p.length===0?(0,h.jsx)(a,{loading:!0,children:`loading fix history…`}):p.length===0?(0,h.jsx)(a,{children:`not enough fix history yet`}):(0,h.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col justify-center gap-1.5 text-normal`,children:[(0,h.jsx)(o,{data:p,orientation:`horizontal`,height:Math.max(p.length*21,96),formatValue:i}),(0,h.jsxs)(`div`,{className:`caption text-soft text-center`,children:[s(e.symbol),` ·`,` `,f?`compound annual rate · horizons under 1Y omitted`:`total return per horizon`]})]})}var b=f({...p,component:y});export{b as metalPerformanceFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{M as r,N as i}from"./hooks-CLLchjg6.js";import{s as a}from"./format-DWMrfgke.js";import{t as o}from"./ui-CYz5SGgR.js";import{t as s}from"./multi-series-line-chart-XRttVKf5.js";import{t as c}from"./chart-utils-Ba8AFSZR.js";import{D as l,E as u,S as d,T as f,c as p,d as m,h,k as g,l as _}from"./metals-shared-CN6-LtS3.js";import{Ri as v,on as y}from"./index-9oCCAb1t.js";var b=e(n(),1),x=t();y.schema;function S(e){let t=d(e);return e.length===0||e[0].value>=0?t:t.map(e=>({time:e.time,value:-e.value}))}function C(e){return e>=.6?`moving together`:e>=.2?`loosely linked`:e>-.2?`unrelated`:e>-.6?`leaning apart`:`moving opposite`}function w({config:e}){let{positioning:t,isLoading:n}=i(e.symbol),{histories:v,isLoading:y}=r([e.symbol]),w=t?.weeks,T=(0,b.useMemo)(()=>v.find(t=>t.symbol===e.symbol)?.points??[],[v,e.symbol]),{series:E,corr:D,netBase:O}=(0,b.useMemo)(()=>{let t={series:[],corr:0,netBase:0},n=f((w??[]).map(e=>({time:e.time,value:_(e)})),e.years).flatMap(e=>{let t=g(T,e.time);return t===null||t<=0?[]:[{time:e.time,net:e.value,price:t}]});if(n.length<2)return t;let r=m(n),i=S(r.map(e=>({time:e.time,value:e.net}))),a=d(r.map(e=>({time:e.time,value:e.price})));return{series:[{id:`price`,name:`${h(e.symbol)} fix`,color:c[2],data:l(a)},{id:`net`,name:`Net spec position`,color:c[0],data:l(i)}],corr:p(n.map(e=>e.net),n.map(e=>e.price)),netBase:r[0].net}},[w,T,e.years,e.symbol]);return(n||y)&&E.length===0?(0,x.jsx)(o,{loading:!0,children:`loading positioning vs price…`}):E.length===0?(0,x.jsx)(o,{children:`no overlapping COT and fix data yet`}):(0,x.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-2`,children:[(0,x.jsx)(s,{series:E,timeframe:u(e.years),height:230,formatValue:a}),(0,x.jsxs)(`div`,{className:`caption text-soft text-center leading-snug`,children:[`corr `,D.toFixed(2),` over `,e.years,`y —`,` `,C(D),(0,x.jsx)(`br`,{}),`COT is weekly, published Friday for the prior Tuesday`,O<0&&` · specs opened the window net short, so their line reads against the size of that short`]})]})}var T=v({...y,component:w});export{T as metalPositioningVsPriceFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./liveline-BV-xqAVq.js";import{P as t}from"./hooks-CLLchjg6.js";import{a as n,s as r}from"./format-DWMrfgke.js";import{t as i}from"./ui-CYz5SGgR.js";import{b as a,h as o,r as s,t as c}from"./metals-shared-CN6-LtS3.js";import{Ai as l,Ri as u,cn as d}from"./index-9oCCAb1t.js";var f=e();d.schema;function p({config:e}){let u=l(),{metals:d,isLoading:p}=t([e.symbol]),m=d.find(t=>t.symbol===e.symbol)??d[0];if(p)return(0,f.jsx)(i,{loading:!0,children:`loading spot price…`});if(!m)return(0,f.jsx)(i,{children:`no spot quote yet`});let h=c[m.symbol]===`lb`,g=h?`lb`:s[e.unit],_=h?m.price:a(m.price,e.unit),v=m.prevFix===void 0?void 0:h?m.prevFix:a(m.prevFix,e.unit);return(0,f.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col items-center justify-center gap-1 text-center`,children:[(0,f.jsxs)(`div`,{className:`caption text-soft uppercase`,children:[o(m.symbol),` spot`]}),(0,f.jsxs)(`div`,{className:`flex items-baseline gap-1.5`,children:[(0,f.jsx)(`span`,{className:`metric-lg text-strong leading-none tabular-nums`,children:u.price(_)}),(0,f.jsxs)(`span`,{className:`body-sm text-soft`,children:[`/`,g]})]}),m.changePct===void 0?(0,f.jsx)(`div`,{className:`caption text-disabled`,children:`—`}):(0,f.jsxs)(`div`,{className:`body-sm font-bold tabular-nums`,style:{color:n(m.changePct)},children:[r(m.changePct),` vs fix`]}),e.showFix&&v!==void 0&&(0,f.jsxs)(`div`,{className:`caption text-soft tabular-nums`,children:[`fix `,u.price(v),`/`,g]})]})}var m=u({...d,component:p});export{m as metalPriceFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{M as r}from"./hooks-CLLchjg6.js";import{t as i}from"./ui-CYz5SGgR.js";import{t as a}from"./multi-series-line-chart-XRttVKf5.js";import{t as o}from"./chart-utils-Ba8AFSZR.js";import{D as s,E as c,T as l,_ as u,d,h as f,m as p}from"./metals-shared-CN6-LtS3.js";import{Ai as m,Ri as h,sn as g}from"./index-9oCCAb1t.js";var _=e(n(),1),v=t();g.schema;function y({config:e}){let t=m(),{histories:n,isLoading:h}=r(e.symbols,e.currency),g=(0,_.useMemo)(()=>{let t=u(n.map(t=>l(t.points,e.years))),r=[];return t.forEach((t,i)=>{let a=d(t),c=e.logScale?a.filter(e=>e.value>0).map(e=>({time:e.time,value:Math.log10(e.value)})):a;c.length<2||r.push({id:n[i].symbol,name:f(n[i].symbol),color:o[i%o.length],data:s(c)})}),r},[n,e.years,e.logScale]),y=(0,_.useMemo)(()=>{let n=e.currency;return e.logScale?e=>p(10**e,n,t):e=>p(e,n,t)},[e.currency,e.logScale,t]);return h&&g.length===0?(0,v.jsx)(i,{loading:!0,children:`loading London fix history…`}):g.length===0?(0,v.jsx)(i,{children:n.length>1?`no fix days these metals share in this window`:`no London fix history yet`}):(0,v.jsx)(a,{series:g,timeframe:c(e.years),height:250,formatValue:y})}var b=h({...g,component:y});export{b as metalPriceChartFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{M as r}from"./hooks-CLLchjg6.js";import{a as i,s as a}from"./format-DWMrfgke.js";import{t as o}from"./ui-CYz5SGgR.js";import{t as s}from"./multi-series-line-chart-XRttVKf5.js";import{t as c}from"./chart-utils-Ba8AFSZR.js";import{D as l,E as u,T as d,d as f,h as p,v as m,x as h}from"./metals-shared-CN6-LtS3.js";import{Ri as g,ln as _}from"./index-9oCCAb1t.js";var v=e(n(),1),y=t();_.schema;var b=e=>e>=100?e.toFixed(1):e>=1?e.toFixed(2):e.toPrecision(3);function x({config:e}){let t=e.numerator===e.denominator,{histories:n,isLoading:g}=r(t?[e.numerator]:[e.numerator,e.denominator]),_=(0,v.useMemo)(()=>{let t=n.find(t=>t.symbol===e.numerator)?.points??[],r=n.find(t=>t.symbol===e.denominator)?.points??[],i=h(d(t,e.years),d(r,e.years));if(i.length<2)return null;let a=f(i),o=i[i.length-1].value;return{series:[{id:`ratio`,name:`${p(e.numerator)} / ${p(e.denominator)}`,color:c[0],data:l(a)}],current:o,changePct:m(i[0].value,o)}},[n,e.numerator,e.denominator,e.years]);return t?(0,y.jsx)(o,{children:`a ratio needs two different metals — pick a different numerator or denominator`}):g?(0,y.jsx)(o,{loading:!0,children:`loading fix history…`}):_?(0,y.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-2`,children:[(0,y.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3`,children:[(0,y.jsxs)(`span`,{className:`caption text-soft truncate uppercase`,children:[p(e.numerator),` / `,p(e.denominator)]}),(0,y.jsxs)(`span`,{className:`flex shrink-0 items-baseline gap-2`,children:[(0,y.jsx)(`span`,{className:`body-md text-strong font-bold tabular-nums`,children:b(_.current)}),(0,y.jsx)(`span`,{className:`body-sm font-bold tabular-nums`,style:{color:i(_.changePct)},children:a(_.changePct)})]})]}),(0,y.jsx)(s,{series:_.series,timeframe:u(e.years),height:200,formatValue:b})]}):(0,y.jsxs)(o,{children:[`no overlapping `,p(e.numerator),` /`,` `,p(e.denominator),` fixes yet`]})}var S=g({..._,component:x});export{S as metalRatioChartFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{M as r}from"./hooks-CLLchjg6.js";import{a as i,c as a,f as o,r as s,s as c,t as l}from"./format-DWMrfgke.js";import{t as u}from"./ui-CYz5SGgR.js";import{t as d}from"./bar-chart-CMWrEpFm.js";import{T as f,g as p,h as m,w as h}from"./metals-shared-CN6-LtS3.js";import{Ri as g,un as _}from"./index-9oCCAb1t.js";var v=e(n(),1),y=t();_.schema;var b=[1,1.5,2,2.5,5],x=18,S=21,C=.005;function w(e,t){let n=(e.length-1)*t,r=Math.floor(n),i=e[r+1];return i===void 0?e[r]:e[r]+(n-r)*(i-e[r])}function T(e,t,n){return Math.floor(t/n)-Math.floor(e/n)+1}function E(e,t){let n=Math.max(t-e,1e-9),r=Math.floor(Math.log10(n/x))-1,i=[];for(let e=r;e<=r+4;e+=1)for(let t of b)i.push(t*10**e);i.sort((e,t)=>e-t);let a=i[i.length-1],o=1/0;for(let n of i){let r=T(e,t,n);if(r>S||r<2)continue;let i=Math.abs(r-x);i<o&&(o=i,a=n)}return a}function D({label:e,value:t,color:n}){return(0,y.jsxs)(`div`,{className:`min-w-0`,children:[(0,y.jsx)(`div`,{className:`caption text-soft truncate uppercase`,children:e}),(0,y.jsx)(`div`,{className:`body-sm truncate font-bold tabular-nums`,style:n?{color:n}:void 0,children:t})]})}function O({config:e}){let{histories:t,isLoading:n}=r([e.symbol]),g=(0,v.useMemo)(()=>{let n=f(t[0]?.points??[],e.years),r=e.period===`daily`?h(n):p(n).map(e=>e.pct);if(r.length<2)return null;let i=[...r].sort((e,t)=>e-t),a=i[0],o=i[i.length-1],u=Math.min(w(i,C),0),d=Math.max(w(i,1-C),0),m=E(u,d),g=Math.floor(u/m),_=Math.floor(d/m),v=Array(_-g+1).fill(0),y=0;for(let e of r){y+=e;let t=Math.min(Math.max(Math.floor(e/m)-g,0),v.length-1);v[t]+=1}let b=y/r.length,x=0;for(let e of r)x+=(e-b)**2;return{bars:v.map((e,t)=>{let n=(g+t)*m;return{label:t===0&&a<n?`< ${c(n+m)}`:t===v.length-1&&o>=n+m?`≥ ${c(n)}`:c(n),value:e,color:n<0?l:s}}),mean:b,stdev:Math.sqrt(x/(r.length-1)),best:o,worst:a,count:r.length,span:`${new Date(n[0].time).getUTCFullYear()}–${new Date(n[n.length-1].time).getUTCFullYear()}`}},[t,e.period,e.years]);return n&&!g?(0,y.jsx)(u,{loading:!0,children:`loading return history…`}):g?(0,y.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col justify-center gap-1.5 text-normal`,children:[(0,y.jsx)(d,{data:g.bars,orientation:`vertical`,height:140,formatValue:a,showValues:!1,maxTickLabels:7}),(0,y.jsxs)(`div`,{className:`caption text-soft text-center`,children:[m(e.symbol),` · `,a(g.count),` `,e.period,` returns · `,g.span]}),(0,y.jsxs)(`div`,{className:`grid grid-cols-4 gap-2 border-t border-white/[0.08] pt-1.5`,children:[(0,y.jsx)(D,{label:`mean`,value:c(g.mean),color:i(g.mean)}),(0,y.jsx)(D,{label:`std dev`,value:o(g.stdev)}),(0,y.jsx)(D,{label:`best`,value:c(g.best),color:s}),(0,y.jsx)(D,{label:`worst`,value:c(g.worst),color:l})]})]}):(0,y.jsx)(u,{children:`not enough fix history yet`})}var k=g({..._,component:O});export{k as metalReturnDistributionFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{M as r}from"./hooks-CLLchjg6.js";import{a as i,r as a,s as o,t as s}from"./format-DWMrfgke.js";import{t as c}from"./ui-CYz5SGgR.js";import{t as l}from"./heatmap-chart-CXN9d41C.js";import{T as u,g as d,h as f,n as p}from"./metals-shared-CN6-LtS3.js";import{Ri as m,dn as h}from"./index-9oCCAb1t.js";var g=e(n(),1),_=t();h.schema;var v=44,y=3,b=46,x=13;function S({data:e,width:t,height:n,colorIntensity:r,isPositive:i}){return(0,_.jsxs)(`div`,{className:`relative h-full w-full`,children:[(0,_.jsx)(`span`,{className:`absolute inset-0 rounded`,style:{background:i?a:s,opacity:.18+r*.82}}),t>=b&&n>=x&&(0,_.jsx)(`span`,{className:`absolute inset-0 flex items-center justify-center`,children:(0,_.jsx)(`span`,{className:`caption text-strong tabular-nums`,children:o(e.value)})})]})}function C({config:e}){let{histories:t,isLoading:n}=r([e.symbol]),{cells:a,months:s,monthMeans:m,rowCount:h}=(0,g.useMemo)(()=>{let n=d(u(t[0]?.points??[],e.years)),r=new Map;for(let e of n){let t=r.get(e.year)??new Map;t.set(e.month,e.pct),r.set(e.year,t)}let i=[...r.keys()].sort((e,t)=>e-t);i.length>1&&(r.get(i[0])?.size??0)<12&&i.shift();let a=p.map((e,t)=>i.some(e=>r.get(e)?.has(t))),o=p.map((e,t)=>t).filter(e=>a[e]),s=n[n.length-1],c=[],l=[];for(let e of o){let t=0,n=0;for(let a of i){let i=r.get(a)?.get(e);i!==void 0&&(c.push({id:`${a}-${e}`,row:String(a),column:p[e],value:i}),!(s&&s.year===a&&s.month===e)&&(t+=i,n+=1))}l.push({label:p[e],pct:n>0?t/n:null})}return{cells:c,months:o.length,monthMeans:l,rowCount:i.length}},[t,e.years]);return n?(0,_.jsx)(c,{loading:!0,children:`loading monthly returns…`}):a.length===0?(0,_.jsx)(c,{children:`no monthly returns yet`}):(0,_.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-1.5`,children:[(0,_.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,_.jsx)(l,{data:a,CellComponent:S,gap:y,showLabels:!0,rowLabelWidth:v,columnLabelHeight:18})}),(0,_.jsxs)(`div`,{className:`flex items-center border-t border-white/[0.08] pt-1.5`,children:[(0,_.jsx)(`span`,{className:`caption text-soft shrink-0 pr-2 text-right`,style:{width:v},children:`avg`}),(0,_.jsx)(`div`,{className:`grid min-w-0 flex-1`,style:{gap:y,gridTemplateColumns:`repeat(${s}, minmax(0, 1fr))`},children:m.map(e=>(0,_.jsx)(`span`,{className:`caption truncate text-center tabular-nums${e.pct===null?` text-soft`:``}`,style:e.pct===null?void 0:{color:i(e.pct)},children:e.pct===null?`–`:o(e.pct)},e.label))})]}),(0,_.jsxs)(`div`,{className:`caption text-soft text-center`,children:[f(e.symbol),` · monthly returns · `,h,`y`]})]})}var w=m({...h,component:C});export{w as metalSeasonalityFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./liveline-BV-xqAVq.js";import{P as t}from"./hooks-CLLchjg6.js";import{t as n}from"./ui-CYz5SGgR.js";import{O as r,h as i,r as a,t as o}from"./metals-shared-CN6-LtS3.js";import{Ai as s,Ri as c,fn as l}from"./index-9oCCAb1t.js";var u=e();l.schema;var d=1e6,f=453.59237/31.1034768;function p(e){return e.toLocaleString(`en-US`,{maximumFractionDigits:4})}function m({config:e}){let c=s(),{metals:l,isLoading:m}=t([e.symbol]),h=l.find(t=>t.symbol===e.symbol)??l[0];if(m)return(0,u.jsx)(n,{loading:!0,children:`loading spot price…`});if(!h)return(0,u.jsx)(n,{children:`no spot quote yet`});let g=o[h.symbol]??`oz`,_=r(e.weight,e.unit),v=g===`lb`?_/f:_,y=a[e.unit],b=v*h.price;return(0,u.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col items-center justify-center gap-1 text-center`,children:[(0,u.jsx)(`div`,{className:`caption text-soft uppercase`,children:`holding value`}),(0,u.jsx)(`div`,{className:`metric-lg text-strong leading-none tabular-nums`,children:b>=d?c.compact(b):c.price(b)}),(0,u.jsxs)(`div`,{className:`body-sm text-normal`,children:[p(e.weight),` `,y,` of `,i(h.symbol)]}),(0,u.jsxs)(`div`,{className:`caption text-soft tabular-nums`,children:[`at `,c.price(h.price),`/`,g,` spot`]})]})}var h=c({...l,component:m});export{h as metalValueFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{M as r}from"./hooks-CLLchjg6.js";import{f as i,r as a,t as o}from"./format-DWMrfgke.js";import{t as s}from"./ui-CYz5SGgR.js";import{t as c}from"./multi-series-line-chart-XRttVKf5.js";import{t as l}from"./chart-utils-Ba8AFSZR.js";import{C as u,D as d,E as f,T as p,d as m,h,y as g}from"./metals-shared-CN6-LtS3.js";import{Ri as _,pn as v}from"./index-9oCCAb1t.js";var y=e(n(),1),b=t();v.schema;var x=e=>i(e,0);function S(e){let t=e%100;return t>=11&&t<=13?`${e}th`:e%10==1?`${e}st`:e%10==2?`${e}nd`:e%10==3?`${e}rd`:`${e}th`}function C(e){if(e>=70)return o;if(e<=30)return a}function w({config:e}){let{histories:t,isLoading:n}=r([e.symbol]),{series:a,current:o,percentile:_}=(0,y.useMemo)(()=>{let n=p(u(t[0]?.points??[],e.window),e.years);if(n.length===0)return{series:[],current:0,percentile:0};let r=n.map(e=>e.value),i=r[r.length-1];return{series:[{id:e.symbol,name:`${h(e.symbol)} ${e.window}d`,color:l[0],data:d(m(n))}],current:i,percentile:g(r,i)}},[t,e.symbol,e.window,e.years]);if(n)return(0,b.jsx)(s,{loading:!0,children:`loading fix history…`});if(a.length===0)return(0,b.jsx)(s,{children:`not enough fix history yet`});let v=Math.min(100,Math.max(1,Math.round(_)));return(0,b.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-1.5`,children:[(0,b.jsxs)(`div`,{className:`flex items-end justify-between gap-3`,children:[(0,b.jsxs)(`div`,{children:[(0,b.jsx)(`div`,{className:`metric-md text-strong leading-none`,style:{color:C(_)},children:i(o,1)}),(0,b.jsxs)(`div`,{className:`caption text-soft mt-1`,children:[h(e.symbol),` · `,e.window,`d realised, annualised`]})]}),(0,b.jsxs)(`div`,{className:`text-right`,children:[(0,b.jsxs)(`div`,{className:`body-md text-strong tabular-nums`,children:[S(v),` pctile`]}),(0,b.jsxs)(`div`,{className:`caption text-soft`,children:[`of the last `,e.years,`y`]})]})]}),(0,b.jsx)(c,{series:a,timeframe:f(e.years),height:180,formatValue:x})]})}var T=_({...v,component:w});export{T as metalVolatilityFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./liveline-BV-xqAVq.js";import{P as t}from"./hooks-CLLchjg6.js";import{a as n,s as r}from"./format-DWMrfgke.js";import{n as i,t as a}from"./ui-CYz5SGgR.js";import{h as o,t as s}from"./metals-shared-CN6-LtS3.js";import{Ai as c,Ri as l,mn as u}from"./index-9oCCAb1t.js";var d=e();u.schema;function f({config:e}){let l=c(),{metals:u,isLoading:f}=t(e.symbols),p=new Map(u.map(e=>[e.symbol,e])),m=e.symbols.map(e=>p.get(e)).filter(e=>!!e);if(f)return(0,d.jsx)(a,{loading:!0,children:`loading metal quotes…`});if(!m.length)return(0,d.jsx)(a,{children:`no metal quotes yet`});let h=m.some(e=>e.changePct!==void 0);return(0,d.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[(0,d.jsx)(`div`,{className:i,children:m.map(t=>(0,d.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b border-white/[0.06] py-2 last:border-b-0`,children:[(0,d.jsxs)(`div`,{className:`min-w-0`,children:[(0,d.jsx)(`div`,{className:`body-sm text-strong truncate font-bold`,children:o(t.symbol)}),(0,d.jsx)(`div`,{className:`caption text-soft`,children:t.symbol})]}),(0,d.jsxs)(`div`,{className:`text-right whitespace-nowrap tabular-nums`,children:[(0,d.jsxs)(`div`,{className:`body-md text-strong`,children:[l.price(t.price),(0,d.jsxs)(`span`,{className:`caption text-soft ml-1`,children:[`/`,s[t.symbol]??`oz`]})]}),e.showChange&&(t.changePct===void 0?(0,d.jsx)(`div`,{className:`caption text-disabled`,children:`—`}):(0,d.jsx)(`div`,{className:`caption font-bold`,style:{color:n(t.changePct)},children:r(t.changePct)}))]})]},t.symbol))}),e.showChange&&h&&(0,d.jsx)(`div`,{className:`caption text-soft mt-1.5 shrink-0`,children:`change vs latest London fix`})]})}var p=l({...u,component:f});export{p as metalsBoardFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{M as r}from"./hooks-CLLchjg6.js";import{r as i,t as a}from"./format-DWMrfgke.js";import{t as o}from"./ui-CYz5SGgR.js";import{t as s}from"./heatmap-chart-CXN9d41C.js";import{T as c,c as l,h as u,i as d,w as f}from"./metals-shared-CN6-LtS3.js";import{Ri as p,hn as m}from"./index-9oCCAb1t.js";var h=e(n(),1),g=t();m.schema;var _=[`XAU`,`XAG`,`XPT`,`XPD`],v=30,y=365.25*24*60*60*1e3,b=e=>e.toFixed(2);function x({data:e,width:t,colorIntensity:n,isPositive:r}){return(0,g.jsxs)(`div`,{className:`relative h-full w-full`,children:[e.measured?(0,g.jsx)(`span`,{className:`absolute inset-0 rounded`,style:{background:r?i:a,opacity:.18+n*.82}}):(0,g.jsx)(`span`,{className:`absolute inset-0 rounded bg-black/55`}),t>=v&&(0,g.jsx)(`span`,{className:`absolute inset-0 flex items-center justify-center`,children:(0,g.jsx)(`span`,{className:`caption tabular-nums ${e.measured?`text-strong`:`text-soft`}`,children:e.measured?b(e.value):`–`})})]})}function S(e,t){let n=d(e,t);return n.length<3?null:l(f(n.map(e=>({time:e.time,value:e.a}))),f(n.map(e=>({time:e.time,value:e.b}))))}function C({config:e}){let{histories:t,isLoading:n}=r(_),{cells:i,spanYears:a}=(0,h.useMemo)(()=>{let n=new Map;for(let r of t){let t=c(r.points,e.years);t.length>2&&n.set(r.symbol,t)}let r=_.filter(e=>n.has(e));if(r.length<2)return{cells:[],spanYears:0};let i=-1/0,a=-1/0;for(let e of r){let t=n.get(e);!t||t.length===0||(i=Math.max(i,t[0].time),a=Math.max(a,t[t.length-1].time))}let o=new Map,s=[];for(let e of r){let t=n.get(e)??[];for(let i of r){let r=1;if(e!==i){let a=[e,i].sort().join(`|`);r=o.has(a)?o.get(a)??null:S(t,n.get(i)??[]),o.set(a,r)}s.push({id:`${e}-${i}`,row:u(e),column:u(i),value:r??0,measured:r!==null})}}return{cells:s,spanYears:Math.max(1,Math.round((a-i)/y))}},[t,e.years]);return n?(0,g.jsx)(o,{loading:!0,children:`loading fix history…`}):i.length===0?(0,g.jsx)(o,{children:`not enough fix history yet`}):(0,g.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-1.5`,children:[(0,g.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,g.jsx)(s,{data:i,CellComponent:x,gap:3,showLabels:!0,rowLabelWidth:62,columnLabelHeight:18})}),(0,g.jsxs)(`div`,{className:`caption text-soft text-center`,children:[`daily-return correlation · `,a,`y window`]})]})}var w=p({...m,component:C});export{w as metalsCorrelationFrame};
@@ -0,0 +1 @@
1
+ import{p as e,r as t,t as n}from"./format-DWMrfgke.js";import{t as r}from"./timeframe-DUDLPk23.js";var i={XAU:`Gold`,XAG:`Silver`,XPT:`Platinum`,XPD:`Palladium`,HG:`Copper`},a={XAU:`oz`,XAG:`oz`,XPT:`oz`,XPD:`oz`,HG:`lb`};function o(e){return i[e]??e}var s={ounce:1,gram:31.1034768,kilogram:.0311034768,tola:31.1034768/11.6638},c={ounce:`oz`,gram:`g`,kilogram:`kg`,tola:`tola`};function l(e,t){return e/s[t]}function u(e,t){return e/s[t]}var d=864e5,f=365.25*d;function p(e,t){if(e.length===0)return[];let n=e[e.length-1].time-t*f;return e.filter(e=>e.time>=n)}function m(e,t=400){if(e.length<=t)return[...e];let n=Math.ceil(e.length/t),r=[];for(let t=0;t<e.length;t+=n)r.push(e[t]);let i=e[e.length-1];return r[r.length-1]!==i&&r.push(i),r}function h(e){return e.map(e=>({date:new Date(e.time).toISOString(),value:e.value}))}function g(e){return e<=.25?r[`1M`]:e<=1?r.YTD:e<=6?r[`1Y`]:r[`5Y`]}function _(e,t){return e>0?(t-e)/e*100:0}function v(e,t,n){return e<=0||t<=0||n<=0?0:((t/e)**(1/n)-1)*100}function y(e,t){let n=null;for(let r of e){if(r.time>t)break;n=r.value}return n}function b(e){let t=new Map;for(let n of e)t.set(new Date(n.time).getUTCFullYear(),n.value);let n=[...t.keys()].sort((e,t)=>e-t),r=[];for(let e=1;e<n.length;e+=1){let i=t.get(n[e-1]),a=t.get(n[e]);i===void 0||a===void 0||n[e]-n[e-1]!==1||r.push({year:n[e],pct:_(i,a)})}return r}function x(e){let t=new Map;for(let n of e){let e=new Date(n.time);t.set(`${e.getUTCFullYear()}-${e.getUTCMonth()}`,{time:n.time,value:n.value})}let n=[...t.values()].sort((e,t)=>e.time-t.time),r=[];for(let e=1;e<n.length;e+=1){let t=new Date(n[e].time);r.push({year:t.getUTCFullYear(),month:t.getUTCMonth(),pct:_(n[e-1].value,n[e].value)})}return r}var S=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`];function C(e){let t=0;return e.map(e=>(e.value>t&&(t=e.value),{time:e.time,value:t>0?(e.value-t)/t*100:0}))}function w(e){let t=null;for(let n of e)(!t||n.value>t.value)&&(t=n);return t}function T(e,t){if(e.length<t+1)return[];let n=[];for(let t=1;t<e.length;t+=1){let r=e[t-1].value,i=e[t].value;r>0&&i>0&&n.push({time:e[t].time,value:Math.log(i/r)})}let r=[];for(let e=t-1;e<n.length;e+=1){let i=n.slice(e-t+1,e+1),a=i.reduce((e,t)=>e+t.value,0)/i.length,o=i.reduce((e,t)=>e+(t.value-a)**2,0)/(i.length-1);r.push({time:n[e].time,value:Math.sqrt(o)*Math.sqrt(252)*100})}return r}function E(e){let t=[];for(let n=1;n<e.length;n+=1)t.push(_(e[n-1].value,e[n].value));return t}function D(e,t){return e.length===0?0:e.filter(e=>e<=t).length/e.length*100}function O(e,t){let n=Math.min(e.length,t.length);if(n<2)return 0;let r=0,i=0;for(let a=0;a<n;a+=1)r+=e[a],i+=t[a];let a=r/n,o=i/n,s=0,c=0,l=0;for(let r=0;r<n;r+=1){let n=e[r]-a,i=t[r]-o;s+=n*i,c+=n*n,l+=i*i}let u=Math.sqrt(c*l);return u>0?s/u:0}var k={USD:`$`,GBP:`£`,EUR:`€`};function A(t,n,r){return n===`USD`?r.price(t):e(t).replace(`$`,k[n]??`$`)}function j(e){if(e.length<2)return e.map(e=>[...e]);let t=new Map;for(let n of e)for(let e of n)t.set(e.time,(t.get(e.time)??0)+1);return e.map(n=>n.filter(n=>t.get(n.time)===e.length))}function M(e){return Math.floor(e/d)*d}function N(e,t){let n=new Map;for(let e of t)n.set(M(e.time),e.value);let r=[];for(let t of e){let e=n.get(M(t.time));e!==void 0&&r.push({time:t.time,a:t.value,b:e})}return r}function P(e,t){return N(e,t).filter(e=>e.b>0).map(e=>({time:e.time,value:e.a/e.b}))}function F(e){if(e.length===0)return[];let t=e[0].value;return t===0?e.map(e=>({time:e.time,value:0})):e.map(e=>({time:e.time,value:(e.value-t)/t*100}))}function I(e){return e.map(e=>({label:e.label,value:e.value,color:e.value>=0?t:n}))}function L(e){return e.noncommercialLong-e.noncommercialShort}function R(e,t=Date.now()){let n=Math.max(0,Math.round((t-e)/d));if(n<45)return`${n}d`;let r=Math.round(n/30.44);if(r<24)return`${r}mo`;let i=Math.floor(n/365.25),a=Math.round((n-i*365.25)/30.44);return a>0?`${i}y ${a}mo`:`${i}y`}export{T as C,h as D,g as E,u as O,F as S,p as T,j as _,w as a,l as b,O as c,m as d,C as f,x as g,o as h,N as i,y as k,L as l,A as m,S as n,b as o,R as p,c as r,v as s,a as t,I as u,_ as v,E as w,P as x,D as y};
@@ -0,0 +1 @@
1
+ import{n as e}from"./liveline-BV-xqAVq.js";var t=e();function n({label:e,meta:n,value:r}){return(0,t.jsxs)(`div`,{className:`flex min-w-0 items-center justify-between gap-3 border-b border-white/[0.06] py-1.5 last:border-b-0`,children:[(0,t.jsxs)(`div`,{className:`min-w-0`,children:[(0,t.jsx)(`div`,{className:`body-sm text-normal truncate font-semibold`,children:e}),n!=null&&(0,t.jsx)(`div`,{className:`caption text-soft truncate`,children:n})]}),(0,t.jsx)(`div`,{className:`metric-sm text-strong shrink-0`,children:r})]})}export{n as t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{W as r,_ as i,b as a,g as o,p as s,w as c,z as l}from"./d3-BDRmnSFu.js";import{t as u}from"./utils-BsB3-B7h.js";var d=e(n(),1),f=t(),p=(0,d.memo)(({data:e,width:t=120,height:n=40,color:p,className:m,variant:h=`default`})=>{let g=(0,d.useRef)(null),_=`mini-chart-gradient-${(0,d.useId)().replace(/:/g,``)}`,{strokeColor:v,isPositive:y,variantType:b,customColor:x}=(0,d.useMemo)(()=>{if(p)return{strokeColor:p,isPositive:!0,variantType:`custom`,customColor:p};if(h===`auto`&&e.length>0){let t=e[0]?.value??0,n=(e[e.length-1]?.value??0)>=t;return{strokeColor:n?`var(--color-green-500)`:`var(--color-red-500)`,isPositive:n,variantType:n?`green`:`red`,customColor:void 0}}switch(h){case`green`:return{strokeColor:`var(--color-green-500)`,isPositive:!0,variantType:`green`,customColor:void 0};case`red`:return{strokeColor:`var(--color-red-500)`,isPositive:!1,variantType:`red`,customColor:void 0};case`blue`:return{strokeColor:`#75A3FF`,isPositive:!0,variantType:`blue`,customColor:void 0};default:return{strokeColor:`var(--color-blue-600)`,isPositive:!0,variantType:`blue`,customColor:void 0}}},[p,h,e]),S=(0,d.useMemo)(()=>{if(!e||e.length===0)return[];let n=e.map(e=>({...e,date:new Date(e.date)})),r=Math.max(30,Math.floor(t/4));if(n.length<=r)return n;let i=Math.floor(n.length/r),a=[];for(let e=0;e<n.length;e+=i)a.push(n[e]);return a[a.length-1]!==n[n.length-1]&&a.push(n[n.length-1]),a},[e,t]);return(0,d.useEffect)(()=>{if(!g.current||!S.length)return;let e=l(g.current),u={top:2,right:0,bottom:2,left:0},d=t-u.left-u.right,f=n-u.top-u.bottom;e.selectAll(`*`).remove();let p=a().domain(r(S,e=>e.date)).range([0,d]),[m,h]=r(S,e=>e.value),C=(h-m)*.4,w=c().domain([m-C,h]).range([f,0]),T=i().x(e=>p(e.date)).y(e=>w(e.value)).curve(s),E=e.append(`g`).attr(`transform`,`translate(${u.left},${u.top})`),D=o().x(e=>p(e.date)).y0(f).y1(e=>w(e.value)).curve(s),O=e.append(`defs`).append(`linearGradient`).attr(`id`,_).attr(`x1`,`0%`).attr(`y1`,`0%`).attr(`x2`,`0%`).attr(`y2`,`100%`),k=(e,t)=>{if(e.startsWith(`var(`))return e.includes(`blue`)?`rgba(59, 130, 246, ${t})`:e.includes(`green`)?`rgba(37, 255, 205, ${t})`:e.includes(`red`)?`rgba(239, 68, 68, ${t})`:`rgba(59, 130, 246, ${t})`;if(e.startsWith(`#`)){let n=e.slice(1);return`rgba(${n.length===3?parseInt(n[0]+n[0],16):parseInt(n.slice(0,2),16)}, ${n.length===3?parseInt(n[1]+n[1],16):parseInt(n.slice(2,4),16)}, ${n.length===3?parseInt(n[2]+n[2],16):parseInt(n.slice(4,6),16)}, ${t})`}if(e.startsWith(`rgb`)){let n=e.match(/\d+/g);if(n&&n.length>=3)return`rgba(${n[0]}, ${n[1]}, ${n[2]}, ${t})`}return`rgba(59, 130, 246, ${t})`};b===`custom`&&x?(O.append(`stop`).attr(`offset`,`45.9%`).attr(`stop-color`,k(x,.16)),O.append(`stop`).attr(`offset`,`96.67%`).attr(`stop-color`,k(x,0))):b===`blue`?(O.append(`stop`).attr(`offset`,`45.9%`).attr(`stop-color`,`rgba(7, 77, 215, 0.3)`),O.append(`stop`).attr(`offset`,`96.67%`).attr(`stop-color`,`rgba(7, 77, 215, 0.3)`)):b===`green`||y&&b!==`red`?(O.append(`stop`).attr(`offset`,`45.9%`).attr(`stop-color`,`rgba(63, 194, 167, 0.1)`),O.append(`stop`).attr(`offset`,`96.67%`).attr(`stop-color`,`rgba(63, 194, 167, 0)`)):(O.append(`stop`).attr(`offset`,`0%`).attr(`stop-color`,`rgba(255, 93, 127, 0.1)`),O.append(`stop`).attr(`offset`,`91.8%`).attr(`stop-color`,`rgba(255, 63, 105, 0)`)),E.append(`path`).datum(S).attr(`fill`,`url(#${_})`).attr(`d`,D),E.append(`path`).datum(S).attr(`fill`,`none`).attr(`stroke`,v).attr(`stroke-width`,1).attr(`stroke-linecap`,`round`).attr(`stroke-linejoin`,`round`).attr(`d`,T)},[S,t,n,v,y,b,x]),!e||e.length===0?(0,f.jsx)(f.Fragment,{}):(0,f.jsx)(`svg`,{ref:g,width:t,height:n,viewBox:`0 0 ${t} ${n}`,className:u(`h-auto max-w-full`,m),style:{width:t,height:`auto`}})});export{p as t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{L as r}from"./hooks-CLLchjg6.js";import{f as i}from"./format-DWMrfgke.js";import{t as a}from"./ui-CYz5SGgR.js";import{n as o,t as s}from"./treemap-leaf-f-vE1hUM.js";import{Ri as c,gn as l}from"./index-9oCCAb1t.js";var u=e(n(),1),d=t();l.schema;function f({width:e,height:t,data:n}){let r=i(n.sharePct,1);return(0,d.jsx)(s,{width:e,height:t,label:n.id,secondary:r,title:`${n.id} · ${r} of blocks`})}function p({config:e}){let{pools:t,isLoading:n}=r(e.window),i=(0,u.useMemo)(()=>{let n=t?.pools??[],r=n.slice(0,e.topN).map(e=>({id:e.name,value:e.blockCount,sharePct:e.sharePct})),i=n.slice(e.topN);if(i.length>0){let e=i.reduce((e,t)=>e+t.blockCount,0),t=i.reduce((e,t)=>e+t.sharePct,0);e>0&&r.push({id:`Other`,value:e,sharePct:t})}return r},[t,e.topN]);return n?(0,d.jsx)(a,{loading:!0,children:`loading pools…`}):i.length===0?(0,d.jsx)(a,{children:`no mining data yet`}):(0,d.jsx)(o,{data:i,LeafComponent:f,getColorValue:e=>e.sharePct})}var m=c({...l,component:p});export{m as miningPoolsFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{L as r}from"./hooks-CLLchjg6.js";import{f as i}from"./format-DWMrfgke.js";import{t as a}from"./ui-CYz5SGgR.js";import{t as o}from"./chart-utils-Ba8AFSZR.js";import{t as s}from"./pie-chart-cmDhECET.js";import{Ri as c,_n as l}from"./index-9oCCAb1t.js";var u=e(n(),1),d=t();l.schema;function f({config:e}){let{pools:t,isLoading:n}=r(e.window),c=(0,u.useMemo)(()=>{let n=t?.pools??[],r=n.slice(0,e.topN),i=n.slice(e.topN),a=r.map(e=>({name:e.name,value:e.blockCount,sharePct:e.sharePct})),s=i.reduce((e,t)=>e+t.blockCount,0);return s>0&&a.push({name:`Other`,value:s,sharePct:i.reduce((e,t)=>e+t.sharePct,0)}),a.map((e,t)=>({...e,color:o[t%o.length]}))},[t,e.topN]),l=(0,u.useMemo)(()=>[...c].filter(e=>e.name!==`Other`).sort((e,t)=>t.sharePct-e.sharePct).slice(0,3).reduce((e,t)=>e+t.sharePct,0),[c]);return n?(0,d.jsx)(a,{loading:!0,children:`loading pools…`}):c.length===0?(0,d.jsx)(a,{children:`no mining data yet`}):(0,d.jsxs)(`div`,{className:`flex h-full w-full flex-col items-center justify-center gap-4`,children:[(0,d.jsx)(s,{data:c,width:188,height:188,innerRadius:54,outerRadius:86,colors:c.map(e=>e.color),children:(0,d.jsxs)(`div`,{className:`flex flex-col items-center gap-0.5`,children:[(0,d.jsx)(`span`,{className:`caption text-soft uppercase`,children:`top 3`}),(0,d.jsx)(`span`,{className:`metric-lg text-strong leading-none`,children:i(l,0)})]})}),(0,d.jsx)(`div`,{className:`flex w-full max-w-xs flex-wrap justify-center gap-x-4 gap-y-1.5`,children:c.map(e=>(0,d.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,d.jsx)(`span`,{className:`h-2 w-2 flex-shrink-0 rounded-full`,style:{background:e.color}}),(0,d.jsx)(`span`,{className:`body-sm text-soft`,children:e.name}),(0,d.jsx)(`span`,{className:`body-sm text-normal font-bold tabular-nums`,children:i(e.sharePct,1)})]},e.name))})]})}var p=c({...l,component:f});export{p as miningPoolsShareFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{A as r}from"./hooks-CLLchjg6.js";import{f as i}from"./format-DWMrfgke.js";import{t as a}from"./ui-CYz5SGgR.js";import{t as o}from"./chart-utils-Ba8AFSZR.js";import{t as s}from"./stacked-area-chart-B3ayMBfx.js";import{Ri as c,vn as l}from"./index-9oCCAb1t.js";var u=e(n(),1),d=t();l.schema;var f=`CUUR0000SA0`,p=`LNS14000000`;function m(e){let t=new Map(e.map(e=>[e.time,e.value]));return e.flatMap(e=>{let n=new Date(e.time),r=Date.UTC(n.getUTCFullYear()-1,n.getUTCMonth(),1),i=t.get(r);return i===void 0||i<=0?[]:[{...e,value:(e.value/i-1)*100}]})}function h(e){return e.toLocaleDateString(`en-US`,{month:`short`,year:`2-digit`,timeZone:`UTC`})}function g({config:e}){let t=new Date().getUTCFullYear(),n=t-3,{series:c,isLoading:l}=r(f,n,t),{series:g,isLoading:_}=r(p,n,t),v=(0,u.useMemo)(()=>{if(!c||!g)return[];let t=new Map(m(c.points).map(e=>[e.time,e.value]));return g.points.flatMap(e=>{let n=t.get(e.time);return n===void 0?[]:[{time:e.time,date:e.date,cpiYoy:n,unemploymentRate:e.value}]}).slice(-e.months)},[c,g,e.months]);if((l||_)&&v.length===0)return(0,d.jsx)(a,{loading:!0,children:`loading misery index…`});if(v.length===0)return(0,d.jsx)(a,{children:`no misery-index data yet`});let y=v.at(-1),b=y.cpiYoy+y.unemploymentRate,x=[{id:`unemployment`,name:`Unemployment`,color:o[0],data:v.map(e=>({date:new Date(e.time).toISOString(),value:e.unemploymentRate}))},{id:`cpi`,name:`CPI YoY`,color:o[2],data:v.map(e=>({date:new Date(e.time).toISOString(),value:e.cpiYoy}))}];return(0,d.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-2`,children:[(0,d.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`div`,{className:`caption text-soft uppercase`,children:`misery index`}),(0,d.jsx)(`div`,{className:`body-sm text-normal`,children:y.date})]}),(0,d.jsxs)(`div`,{className:`text-right`,children:[(0,d.jsx)(`div`,{className:`metric-lg text-strong leading-none`,children:i(b,1)}),(0,d.jsx)(`div`,{className:`caption text-soft mt-1`,children:`CPI YoY + unemployment`})]})]}),(0,d.jsx)(s,{series:x,height:200,formatXAxis:h,formatYAxis:e=>i(e,0),formatValue:e=>i(e,1)}),(0,d.jsxs)(`div`,{className:`caption text-soft text-center`,children:[`BLS CPI-U + unemployment · `,v.length,` monthly observations`]})]})}var _=c({...l,component:g});export{_ as miseryIndexFrame};
@@ -0,0 +1 @@
1
+ var e={USD:`$`,THB:`฿`,EUR:`€`,GBP:`£`,JPY:`¥`,CNY:`CN¥`,KRW:`₩`,SGD:`S$`,AUD:`A$`,CAD:`C$`,CHF:`CHF `,INR:`₹`,IDR:`Rp`,MYR:`RM`,PHP:`₱`,HKD:`HK$`,BRL:`R$`,MXN:`MX$`,ZAR:`R`};function t(t){return e[t]??`$`}function n(e){let t=Math.abs(e),n=e<0?`-`:``;return t>=0xe8d4a51000?`${n}${(t/0xe8d4a51000).toFixed(2)}T`:t>=1e9?`${n}${(t/1e9).toFixed(2)}B`:t>=1e6?`${n}${(t/1e6).toFixed(2)}M`:t>=1e3?`${n}${(t/1e3).toFixed(1)}K`:`${n}${t.toFixed(0)}`}function r(e){return e>=1e3?e.toLocaleString(`en-US`,{maximumFractionDigits:0}):e>=1?e.toLocaleString(`en-US`,{maximumFractionDigits:2}):e.toPrecision(4)}function i(e,n){return`${t(n)}${r(e)}`}function a(e,r){let i=t(r);return e<0?`-${i}${n(-e)}`:`${i}${n(e)}`}export{a as i,n,i as r,t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./liveline-BV-xqAVq.js";import{a as t,p as n,s as r}from"./format-DWMrfgke.js";import{t as i}from"./index-9oCCAb1t.js";var a=e();function o({symbol:e,label:o,price:s,changePct:c,logoSize:l=16,gap:u=`gap-2`,formatValue:d=n}){return(0,a.jsxs)(`div`,{className:`grid grid-cols-[auto_minmax(0,1fr)_auto_auto] items-center ${u}`,title:s===void 0?o:`${o} · ${d(s)}`,children:[(0,a.jsx)(i,{symbol:e,size:l}),(0,a.jsx)(`span`,{className:`body-sm truncate font-bold text-strong`,children:o}),(0,a.jsx)(`span`,{className:`caption text-soft text-right tabular-nums`,children:s===void 0?`—`:d(s)}),(0,a.jsx)(`span`,{className:`caption text-right font-bold tabular-nums${c===void 0?` text-disabled`:``}`,style:c===void 0?void 0:{color:t(c)},children:c===void 0?`…`:r(c)})]})}export{o as t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{c as r}from"./hooks-CLLchjg6.js";import{r as i,s as a,t as o}from"./format-DWMrfgke.js";import{t as s}from"./ui-CYz5SGgR.js";import{t as c}from"./bar-chart-CMWrEpFm.js";import{Ri as l,yn as u}from"./index-9oCCAb1t.js";var d=e(n(),1),f=t();u.schema;function p({config:e}){let{entries:t,isLoading:n}=r(),l=e.window,u=(0,d.useMemo)(()=>{let n=t.filter(e=>Number.isFinite(e.changePct?.[l])&&e.volume24hUsd>0).sort((e,t)=>t.changePct[l]-e.changePct[l]),r=Math.floor(e.limit/2);return(n.length<=e.limit?n:[...n.slice(0,r),...n.slice(-r)]).map(e=>({label:e.symbol,value:e.changePct[l]}))},[t,l,e.limit]);return n?(0,f.jsx)(s,{loading:!0,children:`loading movers…`}):u.length===0?(0,f.jsx)(s,{children:`no mover data yet`}):(0,f.jsxs)(`div`,{className:`flex h-full flex-col justify-center gap-1 text-normal`,children:[(0,f.jsx)(c,{data:u,orientation:`horizontal`,color:i,negativeColor:o,height:Math.max(u.length*22,96),formatValue:a}),(0,f.jsxs)(`div`,{className:`caption text-soft text-center`,children:[`top movers · `,l,` change`]})]})}var m=l({...u,component:p});export{m as moversBarsFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{c as r}from"./hooks-CLLchjg6.js";import{a as i,s as a}from"./format-DWMrfgke.js";import{t as o}from"./bubbles-shared-BgKUWrak.js";import{Ri as s,bn as c,n as l}from"./index-9oCCAb1t.js";var u=e(n(),1),d=t();c.schema;function f({config:e}){let{entries:t,isLoading:n}=r(),s=e.window;return(0,d.jsx)(o,{nodes:(0,u.useMemo)(()=>{let n=t.filter(e=>Number.isFinite(e.changePct?.[s])&&e.volume24hUsd>0).sort((e,t)=>t.changePct[s]-e.changePct[s]),r=Math.floor(e.limit/2);return(n.length<=e.limit?n:[...n.slice(0,r),...n.slice(-r)]).map(e=>({id:e.symbol,label:e.symbol,value:Math.max(Math.abs(e.changePct[s]),.05),imageUrl:l(e.symbol),color:i(e.changePct[s]),borderColor:i(e.changePct[s]),changePct:e.changePct[s]}))},[t,s,e.limit]),isLoading:n,loadingText:`loading movers…`,emptyText:`no mover data yet`,caption:`area by ${s} move · green gainers / red losers`,formatTitle:e=>`${e.label} · ${a(e.changePct)} ${s}`})}var p=s({...c,component:f});export{p as moversBubblesFrame};
@@ -0,0 +1 @@
1
+ @keyframes dnaStrand1Move{0%,to{translate:0}50%{translate:0 18px}}@keyframes dnaStrand1Scale{0%,to{scale:.7}25%{scale:1}50%{scale:.7}75%{scale:.7}}@keyframes dnaStrand1Color{0%,to{background-color:hsl(var(--zf-accent-hue,242) 100% 68%)}25%{background-color:hsl(calc(var(--zf-accent-hue,242) + 21) 83% 75%)}50%{background-color:#fff6}75%{background-color:#ffffff4d}}@keyframes dnaStrand2Move{0%,to{translate:0 18px}50%{translate:0}}@keyframes dnaStrand2Scale{0%,to{scale:.7}25%{scale:.7}50%{scale:1}75%{scale:1}}@keyframes dnaStrand2Color{0%,to{background-color:#fff6}25%{background-color:#ffffff4d}50%{background-color:hsl(var(--zf-accent-hue,242) 100% 68%)}75%{background-color:hsl(calc(var(--zf-accent-hue,242) + 21) 83% 75%)}}@keyframes dnaPulse{0%,to{opacity:.35}50%{opacity:.8}}@media (prefers-reduced-motion:reduce){.loading-orb-dot{background-color:hsl(var(--zf-accent-hue,242) 100% 68%);animation:2s ease-in-out infinite dnaPulse!important}}
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{B as r,F as i,G as a,M as o,N as s,P as c,R as l,V as u,W as d,_ as f,b as p,p as m,w as h,x as g,z as _}from"./d3-BDRmnSFu.js";import{n as v,t as y}from"./utils-BsB3-B7h.js";import{n as b,r as x}from"./chart-utils-Ba8AFSZR.js";var S=e(n(),1),C={top:20,right:110,bottom:40,left:50},w={sm:640},T={width:1200,height:400,yAxisPadding:15,fontSize:12},E={rectHeight:22,paddingX:4,iconSize:16,fontSize:11},D={offsetX:80,minMargin:10},O={ticks:6,opacity:.05,color:`#FFFFFF`},k={xTicks:5,xSubTicks:36,yTicks:5,tickSize:10,subTickSize:6,tickColor:`#404146`,domainColor:`#FFFFFF`,domainOpacity:.05,textOpacity:.5},A=0xe8d4a51000,j=1e9,M=1e6,N=e=>e==null?`-`:e===0?`0`:e<.001?F(e):e<1||e<10?parseFloat(e.toPrecision(4)).toString():e<M?e.toLocaleString(`en-US`,{minimumFractionDigits:0,maximumFractionDigits:2}):e>A?`${(e/A).toLocaleString(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2})}T`:e>j?`${(e/j).toLocaleString(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2})}B`:e>M?`${(e/M).toLocaleString(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2})}M`:e.toLocaleString(`en-US`,{minimumFractionDigits:0,maximumFractionDigits:0}),P=e=>{let t=[`₀`,`₁`,`₂`,`₃`,`₄`,`₅`,`₆`,`₇`,`₈`,`₉`];return e.toString().split(``).map(e=>t[parseInt(e)]).join(``)},F=e=>{let t=e<0,n=Math.abs(e).toFixed(20).replace(/\.?0+$/,``),r=n.match(/^0\.0+/);if(r){let e=r[0].length-2,i=n.slice(r[0].length).slice(0,3).replace(/0+$/,``),a=`0.${P(e)}${i}`;return t?`-${a}`:a}return String(Number.isInteger(e)?e:Math.round(e*100)/100)},I,L=e=>(I===void 0&&(I=typeof document<`u`?document.createElement(`canvas`).getContext(`2d`):null,I&&(I.font=`700 ${T.fontSize}px "DM Sans", sans-serif`)),I?I.measureText(e).width:e.length*T.fontSize*.62),R=({width:e,height:t=T.height,yDomain:n,formatValue:r,containerRef:i})=>{let[a,o]=(0,S.useState)(e);(0,S.useLayoutEffect)(()=>{let e=()=>{if(i.current){let e=i.current.getBoundingClientRect();o(t=>t!==void 0&&Math.abs(t-e.width)<.5?t:e.width)}};e();let t=typeof ResizeObserver<`u`?new ResizeObserver(e):null;return t&&i.current&&t.observe(i.current),window.addEventListener(`resize`,e),()=>{t?.disconnect(),window.removeEventListener(`resize`,e)}},[i]);let s=e=>{let[t,n]=e.domain(),i=0;for(let e=0;e<5;e++){let a=t+(n-t)/4*e,o=r?r(a):N(a);i=Math.max(i,L(o))}return Math.ceil(i)+T.yAxisPadding},c=a??null;if(!c&&i.current){let e=i.current.getBoundingClientRect();e.width>0&&(c=e.width)}c=c||e||null;let l=t-C.top-C.bottom,u=h().domain(n).range([l,0]),d=c&&c>0?s(u):null,f=c&&c>0&&d&&d>0?c-d-(c>640?C.right:20):null;return{width:c,height:t,innerWidth:f,innerHeight:l,dynamicLeftMargin:d}},z=e=>{let t=(0,S.useMemo)(()=>{let t=new Set;return e.forEach(e=>{e.seriesGroup&&t.add(e.seriesGroup)}),Array.from(t)},[e]),[n,r]=(0,S.useState)(()=>new Set(t));return(0,S.useEffect)(()=>{r(e=>{let n=new Set(e);return t.forEach(e=>{n.has(e)||n.add(e)}),n})},[t]),{seriesGroups:t,visibleGroups:n,filteredSeries:(0,S.useMemo)(()=>e.filter(e=>!e.seriesGroup||n.has(e.seriesGroup)),[e,n]),toggleGroup:e=>{r(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}}},B=e=>({seriesColors:(0,S.useMemo)(()=>e.reduce((e,t)=>(e[t.id]=t.color,e),{}),[e]),isColorLoading:!1}),V=t(),H=({group:e,isVisible:t,onClick:n})=>(0,V.jsxs)(`button`,{onClick:n,className:y(`flex cursor-pointer items-center justify-center gap-2 text-xs font-semibold`,t?`text-white`:`text-white/30`),children:[(0,V.jsx)(`div`,{className:y(`h-3 w-3`,t?`bg-white/80`:`bg-white/30`)}),e]}),U=(e,t)=>x(e,t),W=(e,t)=>`rgba(${parseInt(e.slice(1,3),16)}, ${parseInt(e.slice(3,5),16)}, ${parseInt(e.slice(5,7),16)}, ${t})`,G=e=>b(e.flatMap(e=>e.data)),K=e=>{let t=new Set;return e.forEach(e=>{e.data.forEach(e=>t.add(e.date))}),Array.from(t).sort()},q=(e,t)=>e.map(e=>{let n={};return t.forEach(t=>{let r=t.data.find(t=>t.date===e);n[t.id]=r?r.value:0}),{date:new Date(e),values:n}}),J=(e,t,n)=>{let r=t.invert(e),i=a(e=>e.date).left,o=i(n,r,1),s=n[o-1],c=n[o];return!s||!c?null:r.getTime()-s.date.getTime()>c.date.getTime()-r.getTime()?c:s},Y=(e,t)=>t===e?1:t!==null&&t!==e?.3:1,X=({legendItems:e,containerWidth:t,hoveredSeriesId:n,onSeriesHover:r,onLabelClick:i,unitPrefix:a,unitSuffix:o,legendRef:s})=>t&&t>w.sm?(0,V.jsx)(`div`,{className:y(`pointer-events-none absolute left-0 top-0 w-full flex-wrap items-center gap-2 max-sm:overflow-hidden`),children:e.map(e=>(0,V.jsx)(`div`,{className:y(`pointer-events-auto absolute flex h-[22px] w-fit cursor-pointer items-center justify-center gap-1 rounded-[11px] px-[5px] py-1 transition-opacity duration-200 ease-out`),style:{left:`${e.left}px`,top:`${e.top}px`,backgroundColor:W(e.color,.3),opacity:Y(e.id,n)},onClick:()=>i?.(e.id),onPointerEnter:t=>{t.preventDefault(),t.stopPropagation(),r(e.id)},onPointerLeave:e=>{e.preventDefault(),e.stopPropagation(),r(null)},children:(0,V.jsxs)(`div`,{className:`relative flex select-none items-center justify-center gap-1`,children:[e.seriesData.iconImageUrl&&(0,V.jsx)(`div`,{className:`size-4 rounded-full`,children:(0,V.jsx)(`img`,{src:e.seriesData.iconImageUrl,width:16,height:16,alt:e.seriesData.name,className:`size-4 rounded-full`,draggable:!1})}),(0,V.jsxs)(`div`,{className:`text-normal relative flex items-center justify-center whitespace-nowrap text-[11px] font-semibold leading-4`,children:[(0,V.jsx)(`span`,{className:y(`mr-1 max-w-12 truncate`,e.seriesData.iconImageUrl?`max-w-10`:`max-w-12`),children:e.displayText}),a&&(0,V.jsx)(`span`,{className:`mr-0.5 [&_svg]:!text-white/70`,children:a}),(0,V.jsx)(`span`,{children:e.value}),o&&(0,V.jsx)(`span`,{children:o})]})]})},e.id))}):(0,V.jsx)(`div`,{className:y(`pointer-events-none left-0 top-0 flex w-full flex-wrap items-center gap-1 max-sm:overflow-hidden`),ref:s,children:e.map(e=>(0,V.jsx)(`div`,{className:y(`pointer-events-auto flex h-[22px] w-fit min-w-[112px] cursor-pointer items-center gap-1 rounded-[11px] px-[5px] py-1 transition-opacity duration-200 ease-out`),style:{backgroundColor:W(e.color,.3),opacity:Y(e.id,n)},onClick:()=>i?.(e.id),onPointerEnter:t=>{t.preventDefault(),t.stopPropagation(),r(e.id)},onPointerLeave:e=>{e.preventDefault(),e.stopPropagation(),r(null)},children:(0,V.jsxs)(`div`,{className:`relative flex select-none items-center gap-1`,children:[e.seriesData.iconImageUrl&&(0,V.jsx)(`div`,{className:`size-4 rounded-full`,children:(0,V.jsx)(`img`,{src:e.seriesData.iconImageUrl,width:16,height:16,alt:e.seriesData.name,className:`size-4 rounded-full`,draggable:!1})}),(0,V.jsxs)(`div`,{className:`text-normal relative flex items-center whitespace-nowrap text-[11px] font-semibold leading-none`,children:[(0,V.jsx)(`span`,{className:y(`mr-1 max-w-12 truncate`,e.seriesData.iconImageUrl?`max-w-10`:`max-w-12`),children:e.displayText}),(0,V.jsx)(`span`,{"data-legend-value":e.id,children:e.value}),o&&(0,V.jsx)(`span`,{children:o})]})]})},e.id))}),Z=({containerWidth:e,tooltipRef:t,series:n,seriesColors:r,unitPrefix:i,unitSuffix:a})=>e&&e>w.sm?(0,V.jsx)(`div`,{ref:t,className:`pointer-events-none absolute left-0 top-0 z-50 rounded-md bg-slate-700 px-6 py-3 text-xs text-white opacity-0 transition-opacity duration-150 ease-out`,children:(0,V.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,V.jsx)(`div`,{className:`body-md font-semibold text-white/50`,"data-tooltip-date":!0}),(0,V.jsx)(`div`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1.5`,children:n.map(e=>(0,V.jsxs)(S.Fragment,{children:[(0,V.jsxs)(`span`,{className:`text-soft flex max-w-[126px] items-center gap-1`,children:[(0,V.jsx)(`div`,{className:`h-full w-0.5 rounded-full`,style:{backgroundColor:r[e.id]}}),e.iconImageUrl&&(0,V.jsx)(`img`,{src:e.iconImageUrl,width:20,height:20,alt:e.name,className:`rounded-full`}),(0,V.jsx)(`span`,{className:`text-normal body-sm font-bold capitalize`,children:e.name})]}),(0,V.jsxs)(`div`,{className:`font-dmsans text-normal flex flex-row items-center font-bold`,children:[(0,V.jsx)(`div`,{className:`mr-1`,children:i}),(0,V.jsx)(`span`,{className:`text-normal text-right text-xs font-bold`,"data-tooltip-value":e.id}),a]})]},e.id))})]})}):(0,V.jsx)(`div`,{ref:t,className:`pointer-events-none absolute left-0 top-0 z-50 min-w-[130px] rounded-md bg-slate-700 px-2 py-1 text-xs text-white opacity-0 transition-opacity duration-150 ease-out`,children:(0,V.jsx)(`div`,{className:`flex flex-col items-center justify-center gap-3`,children:(0,V.jsx)(`div`,{className:`caption font-semibold text-white/50`,"data-tooltip-date":!0})})}),Q=(e,t,n,r)=>({xScale:p().domain(d(e,e=>e.date)).range([0,n]),yScale:h().domain(t).range([r,0])}),$=(e,t,n)=>{let[r,i]=t.domain(),a=[];if(O.ticks<=1)a.push((r+i)/2);else for(let e=0;e<O.ticks;e++){let t=r+(i-r)/(O.ticks-1)*e;a.push(t)}e.append(`g`).attr(`class`,`grid`).call(u(t).tickValues(a).tickSize(-n).tickFormat(()=>``)).call(e=>e.select(`.domain`).remove()).selectAll(`line`).attr(`stroke`,O.color).attr(`stroke-opacity`,O.opacity)},ee=(e,t,n,i,a,o,s)=>{let c=s===void 0?k.xTicks:Math.max(2,Math.min(k.xTicks,Math.floor(s/72))),l=t.ticks(c),d=Math.max(1,Math.ceil(l.length/c)),f=l.filter((e,t)=>t%d===0),p=e.append(`g`).attr(`transform`,`translate(0,${i})`).call(r(t).tickValues(f).tickSize(k.tickSize).tickFormat(e=>e instanceof Date?U(e.toISOString(),a):String(e))).style(`font-size`,`12px`).style(`font-weight`,`700`).style(`font-family`,`var(--font-manrope)`);p.select(`.domain`).attr(`stroke`,k.domainColor).attr(`stroke-width`,1).attr(`stroke-opacity`,k.domainOpacity),p.selectAll(`.tick line`).attr(`stroke`,k.tickColor).attr(`transform`,`translate(0, 4)`),p.selectAll(`.tick text`).attr(`dy`,`1.2em`).style(`fill`,k.domainColor).style(`opacity`,k.textOpacity);let m=e.append(`g`).attr(`transform`,`translate(0,${i})`).call(r(t).ticks(k.xSubTicks).tickSize(k.subTickSize).tickFormat(()=>``));m.select(`.domain`).remove(),m.selectAll(`.tick line`).attr(`stroke`,k.tickColor).attr(`transform`,`translate(0, 4)`);let[h,g]=n.domain(),_=[];for(let e=0;e<5;e++){let t=h+(g-h)/4*e;_.push(t)}let v=e.append(`g`).call(u(n).tickValues(_).tickSize(k.yTicks).tickFormat(e=>o?o(e):N(e))).style(`font-size`,`12px`).style(`color`,k.domainColor).style(`font-family`,`var(--font-dmsans)`).style(`opacity`,k.textOpacity).style(`font-weight`,`700`);v.select(`.domain`).attr(`stroke`,`none`),v.selectAll(`.tick line`).attr(`stroke`,`none`)},te=(e,t,n,r,i,a=!0)=>{let o=f().x(e=>r(e.date)).y(e=>i(e.value)).curve(m);t.forEach(t=>{let r=t.data.map(e=>({date:new Date(e.date),value:e.value})),i=n[t.id],c=e.append(`path`).datum(r).attr(`fill`,`none`).attr(`stroke`,i).attr(`stroke-width`,1.2).attr(`opacity`,1).attr(`data-series-id`,t.id).attr(`d`,o);if(!a){c.attr(`stroke-dasharray`,null).attr(`stroke-dashoffset`,null);return}let l=c.node().getTotalLength();c.attr(`stroke-dasharray`,l+` `+l).attr(`stroke-dashoffset`,l),c.transition(`draw`).duration(1200).ease(s).attr(`stroke-dashoffset`,0).on(`end`,function(){_(this).attr(`stroke-dasharray`,null)})})},ne=({g:e,containerWidth:t,innerWidth:n,innerHeight:r,xScale:a,yScale:s,combinedData:u,filteredSeries:d,tooltipRef:f,containerRef:p,legendRef:m,highestValue:h,formatValue:y})=>{let b=e.append(`line`).attr(`class`,`hover-line`).attr(`stroke`,`white`).attr(`stroke-width`,1).attr(`stroke-dasharray`,`4,4`).attr(`stroke-opacity`,.6).attr(`x1`,0).attr(`y1`,0).attr(`x2`,0).attr(`y2`,r).attr(`opacity`,0),x=e.append(`g`).attr(`class`,`hover-dots`),S=!0,T=p.current?.getBoundingClientRect().width||n,E=0,O=0,k=e=>{S?(b.attr(`x1`,e-.75),b.attr(`x2`,e-.75),b.transition().duration(150).ease(c).attr(`opacity`,1),S=!1):b.transition().duration(100).ease(i).attr(`x1`,e-.75).attr(`x2`,e-.75).attr(`opacity`,1)},A=(e,t)=>{let n=x.selectAll(`g.hover-circle-group`).data(d.filter(t=>e.values[t.id]!==void 0));n.exit().remove();let r=n.enter().append(`g`).attr(`class`,`hover-circle-group`).style(`opacity`,0);r.append(`circle`).attr(`class`,`hover-dot-glow`).attr(`r`,9).attr(`fill`,`white`).attr(`fill-opacity`,.18),r.append(`circle`).attr(`class`,`hover-dot-core`).attr(`r`,4.5).attr(`fill`,`white`).attr(`stroke`,`rgba(10, 12, 20, 0.55)`).attr(`stroke-width`,1.5),r.attr(`transform`,n=>{let r=e.values[n.id];return`translate(${t}, ${s(r)}) scale(0.5)`}).style(`opacity`,1).transition().duration(v()?0:200).ease(o).attr(`transform`,n=>{let r=e.values[n.id];return`translate(${t}, ${s(r)}) scale(1)`}),n.transition().duration(100).ease(i).attr(`transform`,n=>{let r=e.values[n.id];return`translate(${t}, ${s(r)})`})},j=(e,t)=>{f.current&&E===0&&O===0&&(E=f.current.getBoundingClientRect().height,O=f.current.getBoundingClientRect().width);let n=e+D.offsetX;return n+O>T&&(n=e-O),n<0&&(n=0),{x:n,y:t-E/2+20}},M=e=>{let t=e-130/2+C.left,n=s(h);return e+130/2>T-C.left&&(t=T-130),t<0&&(t=0),{x:t,y:n}},P=(e,t)=>{if(!f.current)return;let n=f.current.querySelector(`[data-tooltip-date]`);n&&n.textContent!==e&&(n.textContent=e),d.forEach(e=>{let n=t[e.id];if(n===void 0)return;let r=f.current?.querySelector(`[data-tooltip-value="${e.id}"]`),i=y?y(n):N(n);r&&r.textContent!==i&&(r.textContent=i)})},F=e=>{if(!f.current)return;let t=f.current.querySelector(`[data-tooltip-date]`);t&&t.textContent!==e&&(t.textContent=e)},I=e=>{m.current&&d.forEach(t=>{let n=e[t.id];if(n===void 0)return;let r=m.current?.querySelector(`[data-legend-value="${t.id}"]`);r&&(r.textContent=y?y(n):N(n))})},L=(e,t)=>{f.current&&(f.current.style.opacity=`1`,f.current.style.transform=`translate3d(${e}px, ${t}px, 0)`)},R=n=>{let[r,i]=l(window.TouchEvent&&n instanceof TouchEvent?n.touches[0]:n,e.node()),o=J(r,a,u);if(!o)return;let s=a(o.date),c=g(`%b %d, %Y - %H:%M`)(o.date);if(t>w.sm){let e=j(r,i);L(e.x,e.y),P(c,o.values)}else{let e=M(r);L(e.x,e.y),F(c),I(o.values)}k(s),A(o,s)},z=()=>{b.transition().duration(150).ease(c).attr(`opacity`,0),S=!0,f.current&&(f.current.style.opacity=`0`),x.selectAll(`g`).transition().duration(v()?0:120).ease(c).style(`opacity`,0).attr(`transform`,(e,t,n)=>{let r=_(n[t]).attr(`transform`),i=r.match(/translate\(([^,]+),\s*([^)]+)\)/);return i?`translate(${parseFloat(i[1])}, ${parseFloat(i[2])}) scale(0.3)`:r}).remove()},B=new ResizeObserver(()=>{p.current&&(T=p.current.getBoundingClientRect().width)});return p.current&&B.observe(p.current),{onMouseMove:R,onMouseLeave:z,destroy:()=>B.disconnect()}},re=(e,t,{xScale:n,yScale:r},i,a,o)=>{let s=E.rectHeight,c=E.paddingX,l=[];return e.forEach(e=>{let t=e.data.map(e=>({date:new Date(e.date),value:e.value}));if(t.length>0){let i=t[t.length-1],a=n(i.date)+8,o=r(i.value),u=a-c,d=o-s/2,f=l.findLast(e=>d+s>=e.top&&d<=e.bottom);f&&(d=f.top+s),l.push({top:d,bottom:d+s,id:e.id,left:u})}}),l.reverse().reduce((e,t)=>{let n=e.find(e=>t.top+s>=e.top&&t.top<=e.bottom&&e.id!==t.id);return n&&(t.top=n.top-s),[t,...e]},[]),l.map(n=>{let r=e.find(e=>e.id===n.id);if(!r)return null;let s=t[n.id],c=o?o(r.data.at(-1)?.value??0):N(r.data.at(-1)?.value??0);return{id:n.id,left:n.left+i,top:n.top+a,seriesData:r,color:s,value:c,displayText:r.name}}).filter(Boolean)},ie=({className:e})=>(0,V.jsx)(`div`,{className:y(`relative size-8`,e),children:(0,V.jsx)(`div`,{className:`absolute left-1/2 top-1/2 flex size-12 -translate-x-1/2 -translate-y-1/2 items-center justify-center`,children:(0,V.jsxs)(`div`,{className:`relative h-6 w-full`,children:[Array.from({length:5}).map((e,t)=>(0,V.jsx)(`div`,{className:`loading-orb-dot absolute size-1.5 rounded-full will-change-transform`,style:{left:`${t/6*100}%`,animation:`dnaStrand1Move 2s infinite ease-in-out ${-t*.2}s, dnaStrand1Scale 2s infinite ease-in-out ${-t*.2}s, dnaStrand1Color 2s infinite ease-in-out ${-t*.2}s`}},`strand1-${t}`)),Array.from({length:5}).map((e,t)=>(0,V.jsx)(`div`,{className:`loading-orb-dot absolute size-1.5 rounded-full`,style:{left:`${t/6*100}%`,animation:`dnaStrand2Move 2s infinite ease-in-out ${-t*.2}s, dnaStrand2Scale 2s infinite ease-in-out ${-t*.2}s, dnaStrand2Color 2s infinite ease-in-out ${-t*.2}s`}},`strand2-${t}`))]})})}),ae=(0,S.memo)(({series:e,width:t,height:n=400,timeframe:r,className:i,isLoading:a=!1,formatValue:o,unitPrefix:s,unitSuffix:l,onLabelClick:u})=>{let d=(0,S.useRef)(null),f=(0,S.useRef)(null),p=(0,S.useRef)(null),m=(0,S.useRef)(null),h=(0,S.useRef)(!1),[g,b]=(0,S.useState)(null),x=(0,S.useMemo)(()=>[...e].sort((e,t)=>{let n=e.data.length>0?e.data[e.data.length-1].value:0;return(t.data.length>0?t.data[t.data.length-1].value:0)-n}),[e]),w=(0,S.useCallback)(e=>{b(e)},[]),{seriesGroups:T,visibleGroups:E,filteredSeries:D,toggleGroup:O}=z(x),{seriesColors:k,isColorLoading:A}=B(x),j=(0,S.useMemo)(()=>G(x),[x]),M=R({width:t,height:n,yDomain:j,formatValue:o,containerRef:f}),N=(0,S.useMemo)(()=>K(x),[x]),P=(0,S.useMemo)(()=>q(N,x),[N,x]),F=(0,S.useMemo)(()=>Math.max(...D.map(e=>e.data.map(e=>e.value)).flat().filter(e=>e!==void 0)),[D]),I=(0,S.useMemo)(()=>!M.innerWidth||!M.innerHeight?null:Q(P,j,M.innerWidth,M.innerHeight),[P,j,M.innerWidth,M.innerHeight]),L=(0,S.useMemo)(()=>!I||!M.dynamicLeftMargin?[]:re(D,k,I,M.dynamicLeftMargin,C.top,o),[I,M.dynamicLeftMargin,D,k,o]);return(0,S.useEffect)(()=>{if(!d.current||e.length===0||A||!I||M.width===null||M.innerWidth===null||M.dynamicLeftMargin===null)return;let t=_(d.current),{innerWidth:n,innerHeight:i,dynamicLeftMargin:a}=M;t.selectAll(`*`).remove();let{xScale:s,yScale:c}=I,l=t.append(`g`).attr(`transform`,`translate(${a},${C.top})`);$(l,c,n),ee(l,s,c,i,r,o,n),te(l,D,k,s,c,!h.current&&!v()),h.current=!0;let{onMouseMove:u,onMouseLeave:g,destroy:y}=ne({g:l,containerWidth:M.width,innerWidth:n,innerHeight:M.innerHeight,xScale:s,yScale:c,combinedData:P,filteredSeries:D,tooltipRef:p,containerRef:f,legendRef:m,highestValue:F,formatValue:o}),b=l.append(`rect`).attr(`class`,`overlay`).attr(`width`,n).attr(`height`,i).attr(`fill`,`transparent`).style(`cursor`,`crosshair`).style(`pointer-events`,`all`);return b.on(`mousemove`,u).on(`mouseleave`,g).on(`touchstart`,u).on(`touchmove`,u).on(`touchend`,g),b.raise(),()=>{y(),b.on(`mousemove`,null).on(`mouseleave`,null).on(`touchstart`,null).on(`touchmove`,null).on(`touchend`,null),t.selectAll(`*`).interrupt(),t.selectAll(`*`).remove()}},[P,j,e.length,D,I,M.innerWidth,M.innerHeight,M.dynamicLeftMargin,n,r,A,k,o]),(0,S.useEffect)(()=>{!d.current||e.length===0||A||_(d.current).select(`g`).selectAll(`path[data-series-id]`).transition().duration(200).ease(c).attr(`opacity`,function(){return Y(_(this).attr(`data-series-id`),g)})},[g,e,k,A]),!a&&e.length===0?(0,V.jsx)(`div`,{className:y(`relative w-full`,i),children:(0,V.jsx)(`div`,{className:y(`mx-auto flex w-full items-center justify-center text-sm text-gray-400`),style:{height:n},children:`No data available`})}):(0,V.jsx)(`div`,{ref:f,className:y(`relative w-full`,i),style:{width:t,minHeight:n},children:a?(0,V.jsx)(ie,{className:`absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2`}):(0,V.jsxs)(V.Fragment,{children:[T.length>0&&(0,V.jsx)(`div`,{className:`mb-3 flex flex-wrap items-center justify-center gap-2`,children:T.map(e=>(0,V.jsx)(H,{group:e,isVisible:E.has(e),onClick:()=>O(e)},e))}),M.width!==null&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`div`,{className:`relative z-20`,children:(0,V.jsx)(X,{legendRef:m,legendItems:L,containerWidth:M.width,hoveredSeriesId:g,onSeriesHover:w,onLabelClick:u,unitPrefix:s,unitSuffix:l})}),(0,V.jsxs)(`div`,{className:`relative select-none`,children:[(0,V.jsx)(`svg`,{ref:d,width:M.width,height:n,className:`relative z-0`,style:{maxWidth:`100%`,width:`100%`,display:`block`,overflow:`visible`}}),(0,V.jsx)(`div`,{className:`z-10`,children:(0,V.jsx)(Z,{containerWidth:M.width,tooltipRef:p,series:D,seriesColors:k,unitPrefix:s,unitSuffix:l})})]})]})]})})});export{ae as t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./liveline-BV-xqAVq.js";import{U as t}from"./hooks-CLLchjg6.js";import{r as n,t as r}from"./format-DWMrfgke.js";import{t as i}from"./ui-CYz5SGgR.js";import{a,s as o}from"./indicators-YksbfYtF.js";import{i as s,n as c,r as l,t as u}from"./cycle-shared-D8LQcBSw.js";import{Ai as d,Ri as f,xn as p}from"./index-9oCCAb1t.js";var m=e();p.schema;function h({config:e}){let{valuation:f,isLoading:p}=t(),h=d();if(p)return(0,m.jsx)(i,{loading:!0,children:`loading MVRV…`});if(!f)return(0,m.jsx)(i,{children:`no on-chain data yet`});let g=s(f.mvrv,[{upTo:1,zone:{label:`Undervalued`,color:n}},{upTo:2,zone:{label:`Fair value`,color:c}},{upTo:3,zone:{label:`Elevated`,color:l}}],{label:`Overvalued`,color:r});return(0,m.jsx)(u,{caption:`MVRV Ratio`,headline:f.mvrv.toFixed(2),headlineColor:g.color,zone:g,sub:`Z ${f.mvrvZScore.toFixed(2)} · RP ${h.price(f.realizedPrice)}`,sparkline:a(f.history.mvrv,o(e.window)),sparkColor:g.color})}var g=f({...p,component:h});export{g as mvrvFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{U as r}from"./hooks-CLLchjg6.js";import{t as i}from"./ui-CYz5SGgR.js";import{t as a}from"./multi-series-line-chart-XRttVKf5.js";import{t as o}from"./timeframe-DUDLPk23.js";import{t as s}from"./chart-utils-Ba8AFSZR.js";import{a as c,o as l,s as u}from"./indicators-YksbfYtF.js";import{Ri as d,Sn as f}from"./index-9oCCAb1t.js";var p=e(n(),1),m=t();f.schema;function h({config:e}){let{valuation:t,isLoading:n}=r(),d=(0,p.useMemo)(()=>{if(!t)return[];let n=u(e.window);return[{id:`mvrv-zscore`,name:`MVRV Z-Score`,color:s[0],data:l(c(t.history.mvrvZScore,n))}]},[t,e.window]);return n?(0,m.jsx)(i,{loading:!0,children:`loading MVRV Z-Score…`}):!t||d.every(e=>e.data.length===0)?(0,m.jsx)(i,{children:`no on-chain data yet`}):(0,m.jsx)(a,{series:d,timeframe:o.YTD,height:220,formatValue:e=>e.toFixed(2)})}var g=d({...f,component:h});export{g as mvrvZscoreChartFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{R as r}from"./hooks-CLLchjg6.js";import{l as i}from"./format-DWMrfgke.js";import{t as a}from"./ui-CYz5SGgR.js";import{t as o}from"./mini-line-chart-B0Ixv2kC.js";import{Cn as s,Ri as c}from"./index-9oCCAb1t.js";var l=e(n(),1),u=t();s.schema;function d({config:e}){let{debt:t,isLoading:n}=r(e.trendDays),s=(0,l.useMemo)(()=>(t?.trend??[]).map(e=>({date:new Date(e.time).toISOString(),value:e.total})),[t?.trend]);if(n)return(0,u.jsx)(a,{loading:!0,children:`loading national debt…`});if(!t)return(0,u.jsx)(a,{children:`no debt data yet`});let c=t.trend[0],d=c?t.total-c.total:null;return(0,u.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col justify-center gap-3`,children:[(0,u.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,u.jsxs)(`div`,{children:[(0,u.jsx)(`div`,{className:`caption text-soft uppercase`,children:`total public debt`}),(0,u.jsxs)(`div`,{className:`body-sm text-normal`,children:[`as of `,t.date]})]}),(0,u.jsx)(`div`,{className:`caption text-soft text-right`,children:`daily`})]}),(0,u.jsxs)(`div`,{className:`flex flex-wrap items-end justify-between gap-x-3 gap-y-1`,children:[(0,u.jsx)(`div`,{className:`metric-xl text-strong leading-none`,children:i(t.total)}),d!==null&&c&&(0,u.jsxs)(`div`,{className:`min-w-0 text-right`,children:[(0,u.jsxs)(`div`,{className:`body-md text-normal font-bold tabular-nums`,children:[d>=0?`+`:``,i(d)]}),(0,u.jsxs)(`div`,{className:`caption text-soft truncate`,children:[`since `,c.date]})]})]}),(0,u.jsx)(o,{data:s,width:210,height:42,color:`hsl(var(--zf-accent-hue, 242) 85% 72%)`}),e.showSplit&&(0,u.jsxs)(`div`,{className:`grid grid-cols-2 gap-1.5 border-t border-white/[0.08] pt-2`,children:[(0,u.jsxs)(`div`,{className:`rounded bg-white/[0.04] px-2 py-1.5`,children:[(0,u.jsx)(`div`,{className:`caption text-soft truncate`,children:`Held by public`}),(0,u.jsx)(`div`,{className:`body-sm text-strong font-bold tabular-nums`,children:i(t.heldByPublic)})]}),(0,u.jsxs)(`div`,{className:`rounded bg-white/[0.04] px-2 py-1.5`,children:[(0,u.jsx)(`div`,{className:`caption text-soft truncate`,children:`Intragovernmental`}),(0,u.jsx)(`div`,{className:`body-sm text-strong font-bold tabular-nums`,children:i(t.intragovernmental)})]})]})]})}var f=c({...s,component:d});export{f as nationalDebtFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{B as r}from"./hooks-CLLchjg6.js";import{g as i}from"./format-DWMrfgke.js";import{n as a,t as o}from"./ui-CYz5SGgR.js";import{t as s}from"./feed-row-qDN72CXa.js";import{Ri as c,wn as l}from"./index-9oCCAb1t.js";var u=e(n(),1),d=t();l.schema;var f={coindesk:`CoinDesk`,cointelegraph:`Cointelegraph`,decrypt:`Decrypt`,cnbc:`CNBC Markets`,nasdaq:`Nasdaq`,stocks:`Google News`};function p({src:e}){let[t,n]=(0,u.useState)(!1);return t?null:(0,d.jsx)(`img`,{src:e,alt:``,loading:`lazy`,decoding:`async`,referrerPolicy:`no-referrer`,onError:()=>n(!0),className:`size-12 shrink-0 rounded-md bg-white/[0.04] object-cover ring-1 ring-white/10`})}function m({item:e}){return(0,d.jsx)(s,{href:e.url,leading:e.imageUrl?(0,d.jsx)(p,{src:e.imageUrl}):void 0,title:e.title,subtitle:e.summary||void 0,meta:e.publishedAt===void 0?void 0:i(e.publishedAt)})}function h({config:e}){let t=e.source===`stocks`,n=t&&e.symbols.length===0,{items:i,isLoading:s}=r(n?``:e.source,t?e.symbols:void 0,e.count);return n?(0,d.jsx)(o,{children:`add stock symbols to show company headlines`}):s?(0,d.jsx)(o,{loading:!0,children:`loading headlines…`}):(0,d.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-2`,children:[(0,d.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3`,children:[(0,d.jsx)(`span`,{className:`caption text-soft truncate`,children:i[0]?.source??f[e.source]??`news`}),(0,d.jsx)(`span`,{className:`caption text-soft shrink-0`,children:`headlines`})]}),(0,d.jsx)(`div`,{className:a,children:i.length>0?i.map((e,t)=>(0,d.jsx)(m,{item:e},`${e.url}-${t}`)):(0,d.jsxs)(o,{children:[`no headlines `,t?`for these symbols`:`available`,` — the runtime proxy may be offline`]})})]})}var g=c({...l,component:h});export{g as newsFeedFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{V as r}from"./hooks-CLLchjg6.js";import{c as i}from"./format-DWMrfgke.js";import{t as a}from"./ui-CYz5SGgR.js";import{t as o}from"./bar-chart-CMWrEpFm.js";import{Ri as s,Tn as c}from"./index-9oCCAb1t.js";var l=e(n(),1),u=t();c.schema;function d({config:e}){let{collections:t,isLoading:n}=r(),s=(0,l.useMemo)(()=>[...t].sort((e,t)=>t.sales24h-e.sales24h).slice(0,e.limit).map(e=>({label:e.name,value:e.sales24h})),[t,e.limit]);return n?(0,u.jsx)(a,{loading:!0,children:`loading NFT activity…`}):s.length===0?(0,u.jsx)(a,{children:`no NFT data yet`}):(0,u.jsxs)(`div`,{className:`flex h-full flex-col justify-center gap-1 text-normal`,children:[(0,u.jsx)(o,{data:s,orientation:`horizontal`,height:Math.max(s.length*26,96),formatValue:i}),(0,u.jsx)(`div`,{className:`caption text-soft text-center`,children:`NFT sales · last 24h`})]})}var f=s({...c,component:d});export{f as nftActivityBarsFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{V as r}from"./hooks-CLLchjg6.js";import{a as i,s as a}from"./format-DWMrfgke.js";import{t as o}from"./bubbles-shared-BgKUWrak.js";import{Ai as s,En as c,Ri as l}from"./index-9oCCAb1t.js";var u=e(n(),1),d=t();c.schema;function f({config:e}){let{collections:t,isLoading:n}=r(),c=s(),l=(0,u.useMemo)(()=>t.filter(e=>e.marketCapUsd>0).slice(0,e.topN).map(e=>({id:e.name,label:e.name,value:e.marketCapUsd,color:i(e.floorChangePct24h),borderColor:i(e.floorChangePct24h),floorUsd:e.floorUsd,floorChangePct24h:e.floorChangePct24h})),[t,e.topN]);return(0,d.jsx)(o,{nodes:l,isLoading:n,loadingText:`loading NFT floors…`,emptyText:`no NFT data`,caption:`area by mcap · ring by 24h floor change · top ${l.length}`,formatTitle:e=>{let t=e;return`${t.label} · ${c.price(t.floorUsd)} floor · ${a(t.floorChangePct24h)}`}})}var p=l({...c,component:f});export{p as nftBubblesFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./liveline-BV-xqAVq.js";import{V as t}from"./hooks-CLLchjg6.js";import{a as n,s as r}from"./format-DWMrfgke.js";import{n as i,t as a}from"./ui-CYz5SGgR.js";import{t as o}from"./metric-row-CqsjSvCI.js";import{Ai as s,Dn as c,Ri as l}from"./index-9oCCAb1t.js";var u=e();c.schema;function d({config:e}){let{collections:c,isLoading:l}=t(),d=s();return l?(0,u.jsx)(a,{loading:!0,children:`loading NFT floors…`}):c.length===0?(0,u.jsx)(a,{children:`no NFT data`}):(0,u.jsx)(`div`,{className:i,children:c.slice(0,e.topN).map(e=>(0,u.jsx)(o,{label:e.name,meta:(0,u.jsxs)(`span`,{children:[d.compact(e.volume24hUsd),` vol`,` · `,(0,u.jsx)(`span`,{style:{color:n(e.floorChangePct24h)},children:r(e.floorChangePct24h)})]}),value:d.price(e.floorUsd)},e.id))})}var f=l({...c,component:d});export{f as nftCollectionsFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{V as r}from"./hooks-CLLchjg6.js";import{a as i,s as a}from"./format-DWMrfgke.js";import{t as o}from"./ui-CYz5SGgR.js";import{t as s}from"./scatter-chart-tjlc1NWO.js";import{Ai as c,On as l,Ri as u}from"./index-9oCCAb1t.js";var d=e(n(),1),f=t();l.schema;function p(e){return e.length>12?`${e.slice(0,11)}…`:e}function m({config:e}){let{collections:t,isLoading:n}=r(),l=c(),u=(0,d.useMemo)(()=>t.filter(e=>Number.isFinite(e.floorChangePct24h)&&e.volume24hUsd>0).sort((e,t)=>t.marketCapUsd-e.marketCapUsd).slice(0,e.limit).map(e=>({id:e.id,label:p(e.name),x:e.floorChangePct24h,y:e.volume24hUsd,weight:e.marketCapUsd,color:i(e.floorChangePct24h)})),[t,e.limit]);return n?(0,f.jsx)(o,{loading:!0,children:`loading NFTs…`}):u.length===0?(0,f.jsx)(o,{children:`no NFT data yet`}):(0,f.jsxs)(`div`,{className:`flex h-full flex-col justify-center gap-1 text-normal`,children:[(0,f.jsx)(s,{data:u,yScale:`log`,height:210,zeroXLine:!0,formatX:a,formatY:l.compact,maxLabels:10}),(0,f.jsx)(`div`,{className:`caption text-soft text-center`,children:`24h floor change (x) vs 24h volume (y, log)`})]})}var h=u({...l,component:m});export{h as nftScatterFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{V as r}from"./hooks-CLLchjg6.js";import{s as i}from"./format-DWMrfgke.js";import{t as a}from"./ui-CYz5SGgR.js";import{n as o,t as s}from"./treemap-leaf-f-vE1hUM.js";import{Ai as c,Ri as l,kn as u}from"./index-9oCCAb1t.js";var d=e(n(),1),f=t();u.schema;function p({width:e,height:t,data:n}){let r=c().price(n.floorUsd);return(0,f.jsx)(s,{width:e,height:t,label:n.id,secondary:r,title:`${n.id} · ${r} floor · ${i(n.floorChangePct24h)}`})}function m({config:e}){let{collections:t,isLoading:n}=r(),i=(0,d.useMemo)(()=>t.filter(e=>e.marketCapUsd>0).slice(0,e.topN).map(e=>({id:e.name,value:e.marketCapUsd,floorUsd:e.floorUsd,floorChangePct24h:e.floorChangePct24h})),[t,e.topN]);return n?(0,f.jsx)(a,{loading:!0,children:`loading NFT floors…`}):i.length===0?(0,f.jsx)(a,{children:`no NFT data`}):(0,f.jsx)(o,{data:i,LeafComponent:p,getColorValue:e=>e.floorChangePct24h})}var h=l({...u,component:m});export{h as nftTreemapFrame};
@@ -0,0 +1,3 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{n as r}from"./ui-CYz5SGgR.js";import{An as i,Oi as a,Ri as o}from"./index-9oCCAb1t.js";var s=e(n(),1),c=t(),l={code:`rounded px-1 py-px font-mono text-[0.85em] text-strong`,link:`text-highlight underline underline-offset-2 hover:opacity-80`,strong:`text-strong font-bold`,em:`italic`,h1:`body-lg text-strong font-bold`,h2:`body-md text-strong font-bold`,h3:`body-sm text-strong font-semibold uppercase tracking-wide`,list:`space-y-0.5 pl-5`};function u(e){return/^https?:\/\//i.test(e.trim())}function d(e){let t=[],n=``,r=0,i=()=>{n&&=(t.push(n),``)},a=0;for(;a<e.length;){let o=e[a],f=e.slice(a);if(o==="`"){let n=e.indexOf("`",a+1);if(n>a){i(),t.push((0,c.jsx)(`code`,{className:l.code,style:{background:`hsl(0 0% var(--zf-ink-l, 100%) / 0.1)`},children:e.slice(a+1,n)},r++)),a=n+1;continue}}if(o===`[`){let e=/^\[([^\]]+)\]\(([^)\s]+)\)/.exec(f);if(e){let[n,o,f]=e;i(),u(f)?t.push((0,c.jsx)(`a`,{href:f,target:`_blank`,rel:`noopener noreferrer`,className:l.link,onClick:e=>e.stopPropagation(),children:d(o)},r++)):t.push((0,c.jsx)(s.Fragment,{children:d(o)},r++)),a+=n.length;continue}}if(o===`*`&&e[a+1]===`*`){let n=e.indexOf(`**`,a+2);if(n>a+1){i(),t.push((0,c.jsx)(`strong`,{className:l.strong,children:d(e.slice(a+2,n))},r++)),a=n+2;continue}}if(o===`*`){let n=e.indexOf(`*`,a+1);if(n>a+1){i(),t.push((0,c.jsx)(`em`,{className:l.em,children:d(e.slice(a+1,n))},r++)),a=n+1;continue}}n+=o,a++}return i(),t}function f(e,t){return(0,c.jsx)(`p`,{className:`leading-snug`,children:e.map((e,t)=>(0,c.jsxs)(s.Fragment,{children:[t>0&&(0,c.jsx)(`br`,{}),d(e)]},t))},t)}var p=/^(#{1,3})\s+(.*)$/,m=/^\s*[-*]\s+(.*)$/,h=/^\s*\d+\.\s+(.*)$/;function g(e){let t=e.replace(/\r\n?/g,`
2
+ `).split(`
3
+ `),n=[],r=0,i=0;for(;i<t.length;){let e=t[i];if(e.trim()===``){i++;continue}let a=p.exec(e);if(a){let e=a[1].length,t=e===1?l.h1:e===2?l.h2:l.h3;n.push((0,c.jsx)(`div`,{className:t,children:d(a[2].trim())},r++)),i++;continue}if(m.test(e)||h.test(e)){let a=!m.test(e),o=a?h:m,s=[];for(;i<t.length&&o.test(t[i]);){let e=o.exec(t[i]);s.push((0,c.jsx)(`li`,{children:d(e?e[1]:``)},s.length)),i++}let u=a?`ol`:`ul`;n.push((0,c.jsx)(u,{className:`${l.list} ${a?`list-decimal`:`list-disc`}`,children:s},r++));continue}let o=[];for(;i<t.length&&t[i].trim()!==``&&!p.test(t[i])&&!m.test(t[i])&&!h.test(t[i]);)o.push(t[i]),i++;n.push(f(o,r++))}return n}i.schema;function _({config:e}){let t=a(),[n,i]=(0,s.useState)(!1),[o,l]=(0,s.useState)(e.text),u=(0,s.useRef)(null);(0,s.useEffect)(()=>{l(e.text)},[e.text]),(0,s.useEffect)(()=>{n&&u.current?.focus()},[n]);let d=(0,s.useCallback)(()=>{o!==e.text&&t?.({text:o}),i(!1)},[t,o,e.text]),f=e.align===`center`;return n?(0,c.jsx)(`textarea`,{ref:u,className:`body-sm text-normal h-full w-full resize-none bg-transparent outline-none placeholder:text-disabled ${f?`text-center`:``}`,value:o,onChange:e=>l(e.target.value),onBlur:d,onKeyDown:t=>{t.key===`Escape`&&(l(e.text),i(!1))},placeholder:`Write a note… (Markdown supported)`}):(0,c.jsx)(`div`,{className:`body-sm text-normal ${r} ${f?`flex items-center justify-center text-center`:``} ${t?`cursor-text`:``}`,onClick:()=>t&&i(!0),title:t?`Click to edit`:void 0,children:e.text?(0,c.jsx)(`div`,{className:`flex flex-col gap-2 break-words ${f?`items-center text-center`:``}`,children:g(e.text)}):(0,c.jsx)(`span`,{className:`text-soft italic`,children:t?`Click to add a note…`:`New note`})})}var v=o({...i,component:_});export{v as noteFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./liveline-BV-xqAVq.js";import{U as t}from"./hooks-CLLchjg6.js";import{r as n,t as r}from"./format-DWMrfgke.js";import{t as i}from"./ui-CYz5SGgR.js";import{a,s as o}from"./indicators-YksbfYtF.js";import{i as s,n as c,r as l,t as u}from"./cycle-shared-D8LQcBSw.js";import{Mn as d,Ri as f}from"./index-9oCCAb1t.js";var p=e();d.schema;function m({config:e}){let{valuation:d,isLoading:f}=t();if(f)return(0,p.jsx)(i,{loading:!0,children:`loading NUPL…`});if(!d)return(0,p.jsx)(i,{children:`no on-chain data yet`});let m=s(d.nupl,[{upTo:0,zone:{label:`Capitulation`,color:n}},{upTo:.25,zone:{label:`Hope / Fear`,color:c}},{upTo:.5,zone:{label:`Optimism`,color:c}},{upTo:.75,zone:{label:`Belief`,color:l}}],{label:`Euphoria / Greed`,color:r});return(0,p.jsx)(u,{caption:`Net Unrealized P/L`,headline:`${(d.nupl*100).toFixed(1)}%`,headlineColor:m.color,zone:m,sparkline:a(d.history.nupl,o(e.window)),sparkColor:m.color})}var h=f({...d,component:m});export{h as nuplFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{U as r}from"./hooks-CLLchjg6.js";import{f as i}from"./format-DWMrfgke.js";import{t as a}from"./ui-CYz5SGgR.js";import{t as o}from"./multi-series-line-chart-XRttVKf5.js";import{t as s}from"./timeframe-DUDLPk23.js";import{t as c}from"./chart-utils-Ba8AFSZR.js";import{a as l,s as u}from"./indicators-YksbfYtF.js";import{Ri as d,jn as f}from"./index-9oCCAb1t.js";var p=e(n(),1),m=t();f.schema;function h({config:e}){let{valuation:t,isLoading:n}=r(),d=(0,p.useMemo)(()=>{if(!t)return[];let n=u(e.window);return[{id:`nupl`,name:`NUPL`,color:c[0],data:l(t.history.nupl,n).map(e=>({date:new Date(e.time).toISOString(),value:e.value*100}))}]},[t,e.window]);return n?(0,m.jsx)(a,{loading:!0,children:`loading NUPL…`}):!t||d.every(e=>e.data.length===0)?(0,m.jsx)(a,{children:`no on-chain data yet`}):(0,m.jsx)(o,{series:d,timeframe:s.YTD,height:220,formatValue:e=>i(e,1)})}var g=d({...f,component:h});export{g as nuplCycleChartFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./liveline-BV-xqAVq.js";import{et as t}from"./hooks-CLLchjg6.js";import{f as n}from"./format-DWMrfgke.js";import{t as r}from"./ui-CYz5SGgR.js";import{t as i}from"./radial-gauge-DUhIBGcM.js";import{Nn as a,Ri as o}from"./index-9oCCAb1t.js";var s=e();a.schema;var c=(e=1)=>`hsl(var(--zf-accent-hue, 242) 85% 72% / ${e})`;function l(e){let{rates:a,isLoading:o}=t(),l=a.find(e=>e.code===`EFFR`);return o?(0,s.jsx)(r,{loading:!0,children:`loading fed funds rate…`}):!l||l.targetRateFrom===void 0||l.targetRateTo===void 0?(0,s.jsx)(r,{children:`no fed-funds target data yet`}):(0,s.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-1`,children:[(0,s.jsxs)(i,{value:l.rate,min:l.targetRateFrom,max:l.targetRateTo,color:c(),size:170,children:[(0,s.jsx)(`div`,{className:`metric-xl leading-none`,style:{color:c(),textShadow:`0 0 28px ${c(.35)}`},children:n(l.rate)}),(0,s.jsx)(`div`,{className:`caption text-soft mt-1 uppercase tracking-wide`,children:`effective fed funds`})]}),(0,s.jsxs)(`div`,{className:`caption text-soft`,children:[`target `,n(l.targetRateFrom),`–`,n(l.targetRateTo)]})]})}var u=o({...a,component:l});export{u as nyfedFedFundsBandGaugeFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{et as r}from"./hooks-CLLchjg6.js";import{f as i,l as a}from"./format-DWMrfgke.js";import{t as o}from"./ui-CYz5SGgR.js";import{t as s}from"./bar-chart-CMWrEpFm.js";import{Pn as c,Ri as l}from"./index-9oCCAb1t.js";var u=e(n(),1),d=t();c.schema;function f({config:e}){let{rates:t,isLoading:n}=r(),c=(0,u.useMemo)(()=>{let n=t.slice(0,e.limit);return e.metric===`volume`?n.filter(e=>e.volumeInBillions!==void 0).map(e=>({label:e.label,value:e.volumeInBillions*1e9})):n.map(e=>({label:e.label,value:e.rate}))},[t,e.limit,e.metric]);return n?(0,d.jsx)(o,{loading:!0,children:`loading reference rates…`}):c.length===0?(0,d.jsx)(o,{children:`no reference-rate data yet`}):(0,d.jsx)(`div`,{className:`flex h-full flex-col justify-center text-normal`,children:(0,d.jsx)(s,{data:c,orientation:`horizontal`,height:Math.max(c.length*26,96),formatValue:e.metric===`volume`?a:i})})}var p=l({...c,component:f});export{p as nyfedReferenceRateBarsFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{et as r}from"./hooks-CLLchjg6.js";import{f as i}from"./format-DWMrfgke.js";import{t as a}from"./ui-CYz5SGgR.js";import{t as o}from"./bar-chart-CMWrEpFm.js";import{Fn as s,Ri as c}from"./index-9oCCAb1t.js";var l=e(n(),1),u=t();s.schema;function d(e){let{rates:t,isLoading:n}=r(),s=t.find(e=>e.code===`SOFRAI`),c=(0,l.useMemo)(()=>s?[{label:`30D`,value:s.average30Day},{label:`90D`,value:s.average90Day},{label:`180D`,value:s.average180Day}].filter(e=>e.value!==void 0):[],[s]);return n?(0,u.jsx)(a,{loading:!0,children:`loading SOFR averages…`}):c.length===0?(0,u.jsx)(a,{children:`no SOFR term-average data yet`}):(0,u.jsxs)(`div`,{className:`flex h-full flex-col justify-center gap-1 text-normal`,children:[(0,u.jsx)(o,{data:c,height:160,formatValue:i}),(0,u.jsx)(`div`,{className:`caption text-soft text-center`,children:`SOFR compounded averages`})]})}var f=c({...s,component:d});export{f as nyfedSofrTermAveragesBarsFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{C as r}from"./hooks-CLLchjg6.js";import{t as i}from"./ui-CYz5SGgR.js";import{t as a}from"./chart-utils-Ba8AFSZR.js";import{t as o}from"./stacked-area-chart-B3ayMBfx.js";import{In as s,Ri as c}from"./index-9oCCAb1t.js";var l=e(n(),1),u=t();s.schema;var d=[[`credit`,`Credit`],[`equityValuation`,`Equity valuation`],[`safeAssets`,`Safe assets`],[`funding`,`Funding`],[`volatility`,`Volatility`]];function f(e){return`${e.getMonth()+1}/${e.getDate()}`}function p(e){return e>0?`+${e.toFixed(1)}`:e.toFixed(1)}function m({series:e}){return(0,u.jsx)(`div`,{className:`flex flex-wrap items-center justify-center gap-x-3 gap-y-1`,children:e.map(e=>(0,u.jsxs)(`span`,{className:`caption text-soft flex items-center gap-1`,children:[(0,u.jsx)(`span`,{className:`h-1.5 w-1.5 shrink-0 rounded-full`,style:{background:e.color}}),e.name]},e.id))})}function h({config:e}){let{stress:t,isLoading:n}=r(),s=(0,l.useMemo)(()=>{let n=(t?.trend??[]).slice(-e.trendDays).filter(e=>e.credit!==void 0&&e.equityValuation!==void 0&&e.safeAssets!==void 0&&e.funding!==void 0&&e.volatility!==void 0);return n.length<2?[]:d.map(([e,t],r)=>({id:e,name:t,color:a[r%a.length],data:n.map(t=>({date:new Date(t.time),value:t[e]}))}))},[t,e.trendDays]);return n?(0,u.jsx)(i,{loading:!0,children:`loading stress categories…`}):s.length===0?(0,u.jsx)(i,{children:`no stress-category data yet`}):(0,u.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-2`,children:[(0,u.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3`,children:[(0,u.jsx)(`div`,{className:`caption text-soft uppercase`,children:`OFR FSI by category`}),(0,u.jsx)(`div`,{className:`caption text-soft text-right`,children:t?t.date:``})]}),(0,u.jsx)(o,{series:s,height:210,formatXAxis:f,formatYAxis:p,formatValue:p}),(0,u.jsx)(m,{series:s})]})}var g=c({...s,component:h});export{g as ofrStressCategoryAreaFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{i as r}from"./hooks-CLLchjg6.js";import{c as i,r as a,t as o}from"./format-DWMrfgke.js";import{t as s}from"./ui-CYz5SGgR.js";import{t as c}from"./bar-chart-CMWrEpFm.js";import{Ln as l,Ri as u,r as d}from"./index-9oCCAb1t.js";var f=e(n(),1),p=t(),m={"1m":6e4,"5m":5*6e4,"15m":15*6e4,"1h":60*6e4,"4h":240*6e4,"1d":1440*6e4},h=48;l.schema;function g(e,t){let n=new Date(e);return t>=m[`1d`]?n.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`}):t>=m[`1h`]?`${n.getMonth()+1}/${n.getDate()} ${String(n.getHours()).padStart(2,`0`)}h`:n.toLocaleTimeString(`en-US`,{hour12:!1,hour:`2-digit`,minute:`2-digit`})}function _({config:e}){let t=m[e.interval],n=(0,f.useMemo)(()=>Date.now()-t*h,[t]),{candles:l,isLoading:u}=r(e.symbol,e.interval,n,Math.min(t,6e4)),_=(0,f.useMemo)(()=>l.map(e=>({label:g(e.time,t),value:e.volume??0,color:e.close>=e.open?a:o})),[l,t]);return u&&l.length===0?(0,p.jsx)(s,{loading:!0,children:`loading volume…`}):_.length===0?(0,p.jsx)(s,{children:`no candle data yet`}):(0,p.jsxs)(`div`,{className:`flex h-full flex-col justify-center gap-1 text-normal`,children:[(0,p.jsx)(c,{data:_,height:200,formatValue:i,showValues:!1,maxTickLabels:6}),(0,p.jsxs)(`div`,{className:`caption text-soft text-center`,children:[d(e.symbol),` volume · `,e.interval,` candles`]})]})}var v=u({...l,component:_});export{v as ohlcvVolumeBarsFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{W as r}from"./hooks-CLLchjg6.js";import{t as i}from"./ui-CYz5SGgR.js";import{n as a,t as o}from"./treemap-leaf-f-vE1hUM.js";import{Ai as s,Ri as c,Rn as l,r as u}from"./index-9oCCAb1t.js";var d=e(n(),1),f=t();l.schema;function p({width:e,height:t,data:n}){let r=s().compact(n.oiUsd);return(0,f.jsx)(o,{width:e,height:t,label:n.id,secondary:r,title:`${n.id} · ${r} open interest`})}function m({config:e}){let{entries:t,isLoading:n}=r(),o=(0,d.useMemo)(()=>{let n=[...t].filter(e=>e.openInterestUsd>0).sort((e,t)=>t.openInterestUsd-e.openInterestUsd),r=n.slice(0,e.limit).map(e=>({id:u(e.symbol),value:e.openInterestUsd,oiUsd:e.openInterestUsd})),i=n.slice(e.limit).reduce((e,t)=>e+t.openInterestUsd,0);return i>0&&r.push({id:`Other`,value:i,oiUsd:i}),r},[t,e.limit]);return n?(0,f.jsx)(i,{loading:!0,children:`loading open interest…`}):o.length===0?(0,f.jsx)(i,{children:`no open-interest data`}):(0,f.jsx)(a,{data:o,LeafComponent:p,getColorValue:e=>e.oiUsd})}var h=c({...l,component:m});export{h as oiTreemapFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{H as r}from"./hooks-CLLchjg6.js";import{f as i}from"./format-DWMrfgke.js";import{t as a}from"./ui-CYz5SGgR.js";import{t as o}from"./multi-series-line-chart-XRttVKf5.js";import{t as s}from"./timeframe-DUDLPk23.js";import{t as c}from"./chart-utils-Ba8AFSZR.js";import{a as l,n as u,o as d,s as f}from"./indicators-YksbfYtF.js";import{Ri as p,zn as m}from"./index-9oCCAb1t.js";var h=e(n(),1),g=t();m.schema;function _({config:e}){let{extras:t,isLoading:n}=r(),p=(0,h.useMemo)(()=>{if(!t)return[];let n=f(e.window),r=e=>d(u(l(e,n)));return[{id:`sopr`,name:`SOPR`,color:c[0],data:r(t.history.sopr)},{id:`puell`,name:`Puell Multiple`,color:c[1],data:r(t.history.puell)},{id:`reserve-risk`,name:`Reserve Risk`,color:c[2],data:r(t.history.reserveRisk)}]},[t,e.window]);return n&&p.length===0?(0,g.jsx)(a,{loading:!0,children:`loading on-chain oscillators…`}):p.every(e=>e.data.length===0)?(0,g.jsx)(a,{children:`no on-chain data yet`}):(0,g.jsx)(o,{series:p,timeframe:s.YTD,height:260,formatValue:e=>i(e*100,0)})}var v=p({...m,component:_});export{v as onchainOscillatorOverlayFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{W as r}from"./hooks-CLLchjg6.js";import{n as i,t as a}from"./ui-CYz5SGgR.js";import{Ai as o,Bn as s,Ri as c,r as l,t as u}from"./index-9oCCAb1t.js";var d=e(n(),1),f=t();s.schema;var p=25;function m({config:e}){let{entries:t,isLoading:n}=r(e.symbols),s=o(),c=(0,d.useMemo)(()=>t.slice(0,p),[t]),m=(0,d.useMemo)(()=>c.reduce((e,t)=>Math.max(e,t.openInterestUsd),0),[c]);return n?(0,f.jsx)(a,{loading:!0,children:`loading open interest…`}):c.length===0?(0,f.jsx)(a,{children:`no open-interest data`}):(0,f.jsx)(`div`,{className:`flex flex-col gap-1.5 ${i}`,children:c.map(e=>(0,f.jsxs)(`div`,{className:`grid grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-2`,title:`${e.symbol} · ${s.compact(e.openInterestUsd)} open interest`,children:[(0,f.jsx)(u,{symbol:e.symbol,size:16}),(0,f.jsxs)(`div`,{className:`relative h-4 w-full overflow-hidden rounded-sm bg-white/[0.06]`,children:[(0,f.jsx)(`div`,{className:`absolute inset-y-0 left-0 rounded-sm`,style:{width:`${m>0?e.openInterestUsd/m*100:0}%`,background:`hsl(var(--zf-accent-hue, 242) 85% 72% / 0.5)`}}),(0,f.jsx)(`span`,{className:`absolute inset-y-0 left-1.5 flex items-center`,children:(0,f.jsx)(`span`,{className:`body-sm truncate font-bold text-strong`,children:l(e.symbol)})})]}),(0,f.jsx)(`span`,{className:`caption text-soft text-right tabular-nums`,children:s.compact(e.openInterestUsd)})]},e.symbol))})}var h=c({...s,component:m});export{h as openInterestFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{G as r}from"./hooks-CLLchjg6.js";import{r as i,s as a,t as o}from"./format-DWMrfgke.js";import{t as s}from"./ui-CYz5SGgR.js";import{t as c}from"./bar-chart-CMWrEpFm.js";import{Ri as l,Vn as u}from"./index-9oCCAb1t.js";var d=e(n(),1),f=t();u.schema;function p(e,t){let n=e+t;return n>0?(e-t)/n*100:0}function m({config:e}){let{summary:t,isLoading:n}=r(e.currency),l=(0,d.useMemo)(()=>t?[{label:`OI`,value:p(t.callOi,t.putOi)},{label:`Volume`,value:p(t.callVolume,t.putVolume)}]:[],[t]);return n?(0,f.jsx)(s,{loading:!0,children:`loading options…`}):t?(0,f.jsxs)(`div`,{className:`flex h-full flex-col justify-center gap-1 text-normal`,children:[(0,f.jsx)(c,{data:l,orientation:`horizontal`,color:i,negativeColor:o,height:Math.max(l.length*28,84),formatValue:a}),(0,f.jsxs)(`div`,{className:`caption text-soft flex justify-between`,children:[(0,f.jsx)(`span`,{style:{color:i},children:`call-skewed`}),(0,f.jsxs)(`span`,{children:[e.currency,` positioning vs flow`]}),(0,f.jsx)(`span`,{style:{color:o},children:`put-skewed`})]})]}):(0,f.jsx)(s,{children:`no options data yet`})}var h=l({...u,component:m});export{h as optionsFlowSkewFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{lt as r}from"./hooks-CLLchjg6.js";import{a as i}from"./format-DWMrfgke.js";import{t as a}from"./ui-CYz5SGgR.js";import{t as o}from"./mini-line-chart-B0Ixv2kC.js";import{Hn as s,Ri as c}from"./index-9oCCAb1t.js";var l=e(n(),1),u=t();s.schema;var d={"7D":{ms:7*864e5,res:3600},"1M":{ms:30*864e5,res:43200},"3M":{ms:90*864e5,res:86400}};function f({config:e}){let{ms:t,res:n}=d[e.lookback],s=(0,l.useMemo)(()=>{let e=n*1e3;return Math.floor((Date.now()-t)/e)*e},[t,n]),{points:c,isLoading:f}=r(e.currency,s,n),p=(0,l.useMemo)(()=>c.map(e=>({date:new Date(e.time).toISOString(),value:e.value})),[c]);if(f)return(0,u.jsx)(a,{loading:!0,children:`loading volatility…`});if(c.length===0)return(0,u.jsx)(a,{children:`no volatility data yet`});let m=c[c.length-1].value,h=m-c[0].value;return(0,u.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col justify-center gap-3`,children:[(0,u.jsxs)(`div`,{className:`flex items-end justify-between gap-3`,children:[(0,u.jsxs)(`div`,{children:[(0,u.jsxs)(`div`,{className:`caption text-soft uppercase`,children:[e.currency,` DVOL · implied vol`]}),(0,u.jsx)(`div`,{className:`metric-lg text-strong leading-none`,children:m.toFixed(1)})]}),(0,u.jsxs)(`div`,{className:`text-right`,children:[(0,u.jsxs)(`div`,{className:`body-md font-bold tabular-nums`,style:{color:i(h)},children:[h>=0?`+`:``,h.toFixed(1)]}),(0,u.jsxs)(`div`,{className:`caption text-soft`,children:[`past `,e.lookback]})]})]}),(0,u.jsx)(o,{data:p,width:320,height:54,color:`hsl(var(--zf-accent-hue, 242) 85% 72%)`})]})}var p=c({...s,component:f});export{p as optionsIvFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{G as r}from"./hooks-CLLchjg6.js";import{t as i}from"./ui-CYz5SGgR.js";import{t as a}from"./bar-chart-CMWrEpFm.js";import{Ai as o,Ri as s,Un as c}from"./index-9oCCAb1t.js";var l=e(n(),1),u=t();c.schema;function d({config:e}){let{summary:t,isLoading:n}=r(e.currency),s=o(),c=(0,l.useMemo)(()=>{if(!t)return null;let e=t.nearestExpiry.strikes;if(e.length===0)return null;let n=e[0].strike,r=1/0,i=e.map(t=>{let i=0;for(let n of e)t.strike>n.strike?i+=n.callOi*(t.strike-n.strike):t.strike<n.strike&&(i+=n.putOi*(n.strike-t.strike));return i<r&&(r=i,n=t.strike),i});return{bars:e.map((e,t)=>({label:s.magnitude(e.strike),value:i[t],color:e.strike===n?`var(--color-highlight)`:void 0})),maxPainStrike:n,spot:t.underlyingPrice,expiry:t.nearestExpiry.expiry}},[t,s]);return n?(0,u.jsx)(i,{loading:!0,children:`loading options…`}):c?(0,u.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-1 text-normal`,children:[(0,u.jsxs)(`div`,{className:`caption text-soft flex justify-between`,children:[(0,u.jsxs)(`span`,{children:[`max pain · `,c.expiry]}),(0,u.jsxs)(`span`,{children:[(0,u.jsx)(`span`,{className:`text-strong font-bold`,children:s.price(c.maxPainStrike)}),` `,(0,u.jsxs)(`span`,{className:`text-soft`,children:[`vs spot `,s.price(c.spot)]})]})]}),(0,u.jsx)(a,{data:c.bars,color:`var(--color-disabled)`,height:200,formatValue:s.compact})]}):(0,u.jsx)(i,{children:`no options data yet`})}var f=s({...c,component:d});export{f as optionsMaxPainFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{G as r}from"./hooks-CLLchjg6.js";import{r as i,s as a,t as o}from"./format-DWMrfgke.js";import{t as s}from"./ui-CYz5SGgR.js";import{t as c}from"./bar-chart-CMWrEpFm.js";import{Ri as l,Wn as u}from"./index-9oCCAb1t.js";var d=e(n(),1),f=t();u.schema;function p(e){if(e.length===0)return null;let t=e[0].strike,n=1/0;for(let r of e){let i=0;for(let t of e)r.strike>t.strike?i+=t.callOi*(r.strike-t.strike):r.strike<t.strike&&(i+=t.putOi*(t.strike-r.strike));i<n&&(n=i,t=r.strike)}return t}function m({config:e}){let{summary:t,isLoading:n}=r(e.currency),l=(0,d.useMemo)(()=>{let n=t?.allExpiries,r=t?.underlyingPrice;return!n||n.length===0||!r?[]:[...n].sort((e,t)=>e.expiryMs-t.expiryMs).slice(0,e.expiries).map(e=>{let t=p(e.strikes);return t===null?null:{label:e.expiry,value:(t/r-1)*100}}).filter(e=>e!==null)},[t,e.expiries]);return n?(0,f.jsx)(s,{loading:!0,children:`loading options…`}):l.length===0?(0,f.jsx)(s,{children:`no options data yet`}):(0,f.jsxs)(`div`,{className:`flex h-full flex-col justify-center gap-1 text-normal`,children:[(0,f.jsx)(c,{data:l,color:i,negativeColor:o,height:200,formatValue:a}),(0,f.jsxs)(`div`,{className:`caption text-soft text-center`,children:[`max pain vs spot, by expiry · `,e.currency]})]})}var h=l({...u,component:m});export{h as optionsMaxPainMultiFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{G as r}from"./hooks-CLLchjg6.js";import{c as i}from"./format-DWMrfgke.js";import{t as a}from"./ui-CYz5SGgR.js";import{t as o}from"./heatmap-chart-CXN9d41C.js";import{Ai as s,Gn as c,Ri as l}from"./index-9oCCAb1t.js";var u=e(n(),1),d=t();c.schema;function f({data:e,width:t}){return t<44?null:(0,d.jsx)(`div`,{className:`flex h-full w-full items-center justify-center`,children:(0,d.jsx)(`span`,{className:`caption text-normal tabular-nums`,children:i(e.oi)})})}function p({config:e}){let t=s(),{summary:n,isLoading:i}=r(e.currency),c=(0,u.useMemo)(()=>{let r=n?.allExpiries;if(!r||r.length===0)return[];let i=[...r].sort((e,t)=>e.expiryMs-t.expiryMs).slice(0,e.expiries),a=i.flatMap(e=>e.strikes.map(e=>e.strike));if(a.length===0)return[];let o=Math.min(...a),s=Math.max(...a),c=Math.max(s-o,1e-6),l=e.buckets,u=e=>Math.min(l-1,Math.floor((e-o)/c*l)),d=e=>t.magnitude(o+(e+.5)/l*c),f=[];for(let e of i){let t=Array(l).fill(0);for(let n of e.strikes)t[u(n.strike)]+=n.callOi+n.putOi;for(let n=0;n<l;n++)f.push({id:`${e.expiry}-${n}`,row:e.expiry,column:d(n),value:t[n],oi:t[n]})}return f},[n,e.expiries,e.buckets,t]);return i?(0,d.jsx)(a,{loading:!0,children:`loading OI ladder…`}):c.length===0?(0,d.jsx)(a,{children:`no options data yet`}):(0,d.jsx)(o,{data:c,CellComponent:f,gap:3,showLabels:!0,rowLabelWidth:64,columnLabelHeight:20})}var m=l({...c,component:p});export{m as optionsOiLadderHeatmapFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{G as r}from"./hooks-CLLchjg6.js";import{c as i,r as a,t as o}from"./format-DWMrfgke.js";import{t as s}from"./ui-CYz5SGgR.js";import{t as c}from"./bar-chart-CMWrEpFm.js";import{Ai as l,Kn as u,Ri as d}from"./index-9oCCAb1t.js";var f=e(n(),1),p=t();u.schema;function m({config:e}){let t=l(),{summary:n,isLoading:u}=r(e.currency),d=(0,f.useMemo)(()=>{if(!n)return null;let r=n.underlyingPrice,i=n.nearestExpiry.strikes;return i.length===0?null:{data:[...i].sort((e,t)=>Math.abs(e.strike-r)-Math.abs(t.strike-r)).slice(0,e.strikes).sort((e,t)=>e.strike-t.strike).map(e=>({label:t.magnitude(e.strike),value:e.callOi-e.putOi})),expiry:n.nearestExpiry.expiry}},[n,e.strikes,t]);return u?(0,p.jsx)(s,{loading:!0,children:`loading options…`}):d?(0,p.jsxs)(`div`,{className:`flex h-full flex-col justify-center gap-1 text-normal`,children:[(0,p.jsx)(c,{data:d.data,color:a,negativeColor:o,height:200,formatValue:i}),(0,p.jsxs)(`div`,{className:`caption text-soft flex justify-between`,children:[(0,p.jsx)(`span`,{style:{color:a},children:`call-heavy`}),(0,p.jsxs)(`span`,{children:[`net OI by strike · `,d.expiry]}),(0,p.jsx)(`span`,{style:{color:o},children:`put-heavy`})]})]}):(0,p.jsx)(s,{children:`no options data yet`})}var h=d({...u,component:m});export{h as optionsOiSkewFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{G as r}from"./hooks-CLLchjg6.js";import{r as i,t as a}from"./format-DWMrfgke.js";import{t as o}from"./ui-CYz5SGgR.js";import{Ai as s,Ri as c,qn as l}from"./index-9oCCAb1t.js";var u=e(n(),1),d=t();l.schema;var f=i,p=a;function m({config:e}){let{summary:t,isLoading:n}=r(e.currency),i=s(),a=(0,u.useMemo)(()=>{if(!t)return null;let n=t.underlyingPrice,r=t.nearestExpiry.strikes;if(r.length===0)return null;let i=[...r].sort((e,t)=>Math.abs(e.strike-n)-Math.abs(t.strike-n)).slice(0,e.strikes).sort((e,t)=>e.strike-t.strike);return{near:i,maxOi:Math.max(1,...i.map(e=>Math.max(e.callOi,e.putOi))),spot:n,expiry:t.nearestExpiry.expiry}},[t,e.strikes]);if(n)return(0,d.jsx)(o,{loading:!0,children:`loading strikes…`});if(!a)return(0,d.jsx)(o,{children:`no options data yet`});let{near:c,maxOi:l,spot:m,expiry:h}=a,g=c.length,_=600/g,v=Math.max(2,_*.34),y=e=>e*_+_/2,b=e=>e/l*190,x=null;if(m<=c[0].strike)x=y(0);else if(m>=c[g-1].strike)x=y(g-1);else for(let e=0;e<g-1;e++)if(m>=c[e].strike&&m<=c[e+1].strike){let t=c[e+1].strike-c[e].strike||1,n=(m-c[e].strike)/t;x=y(e)+n*(y(e+1)-y(e));break}return(0,d.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[(0,d.jsxs)(`div`,{className:`caption text-soft mb-1 flex justify-between`,children:[(0,d.jsxs)(`span`,{children:[`OI by strike · `,h]}),(0,d.jsxs)(`span`,{children:[(0,d.jsx)(`span`,{style:{color:f},children:`calls`}),` ·`,` `,(0,d.jsx)(`span`,{style:{color:p},children:`puts`})]})]}),(0,d.jsxs)(`svg`,{viewBox:`0 0 600 200`,preserveAspectRatio:`none`,className:`min-h-0 w-full flex-1`,children:[(0,d.jsx)(`line`,{x1:0,y1:196,x2:600,y2:196,style:{stroke:`var(--color-disabled)`},strokeWidth:1}),c.map((e,t)=>{let n=y(t),r=b(e.callOi),i=b(e.putOi);return(0,d.jsxs)(`g`,{children:[(0,d.jsx)(`rect`,{x:n-v-1,y:196-r,width:v,height:r,fill:f}),(0,d.jsx)(`rect`,{x:n+1,y:196-i,width:v,height:i,fill:p})]},e.strike)}),x!==null&&(0,d.jsx)(`line`,{x1:x,y1:6,x2:x,y2:196,style:{stroke:`var(--color-soft)`},strokeWidth:1,strokeDasharray:`4 3`})]}),(0,d.jsxs)(`div`,{className:`caption text-soft mt-1 flex justify-between tabular-nums`,children:[(0,d.jsx)(`span`,{children:i.magnitude(c[0].strike)}),(0,d.jsxs)(`span`,{className:`text-normal`,children:[`spot `,i.price(m)]}),(0,d.jsx)(`span`,{children:i.magnitude(c[g-1].strike)})]})]})}var h=c({...l,component:m});export{h as optionsOiStrikeFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./liveline-BV-xqAVq.js";import{G as t}from"./hooks-CLLchjg6.js";import{f as n,r,t as i}from"./format-DWMrfgke.js";import{t as a}from"./ui-CYz5SGgR.js";import{Jn as o,Ri as s}from"./index-9oCCAb1t.js";var c=e();o.schema;var l=r,u=i;function d(e){return e>1?u:l}function f({config:e}){let{summary:r,isLoading:i}=t(e.currency);if(i)return(0,c.jsx)(a,{loading:!0,children:`loading options…`});if(!r)return(0,c.jsx)(a,{children:`no options data yet`});let o=e.basis===`oi`?r.putCallRatioOi:r.putCallRatioVolume,s=e.basis===`oi`?r.putCallRatioVolume:r.putCallRatioOi,f=r.callOi+r.putOi,p=f>0?r.callOi/f*100:50,m=100-p,h=d(o);return(0,c.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col justify-center gap-3`,children:[(0,c.jsxs)(`div`,{className:`flex items-end justify-between gap-3`,children:[(0,c.jsxs)(`div`,{children:[(0,c.jsxs)(`div`,{className:`caption text-soft uppercase`,children:[e.currency,` put/call · `,e.basis===`oi`?`OI`:`vol`]}),(0,c.jsx)(`div`,{className:`metric-xl leading-none`,style:{color:h},children:o.toFixed(2)})]}),(0,c.jsxs)(`div`,{className:`text-right`,children:[(0,c.jsx)(`div`,{className:`body-md text-normal font-bold tabular-nums`,children:s.toFixed(2)}),(0,c.jsxs)(`div`,{className:`caption text-soft`,children:[`by `,e.basis===`oi`?`volume`:`OI`]})]})]}),(0,c.jsxs)(`div`,{children:[(0,c.jsxs)(`div`,{className:`flex h-3 w-full gap-1 overflow-hidden rounded-full`,children:[(0,c.jsx)(`div`,{className:`h-full rounded-l-full`,style:{width:`${p}%`,background:l}}),(0,c.jsx)(`div`,{className:`h-full rounded-r-full`,style:{width:`${m}%`,background:u}})]}),(0,c.jsxs)(`div`,{className:`caption text-soft mt-1 flex justify-between tabular-nums`,children:[(0,c.jsxs)(`span`,{children:[(0,c.jsx)(`span`,{style:{color:l},children:`calls`}),` `,n(p,0)]}),(0,c.jsxs)(`span`,{children:[n(m,0),` `,(0,c.jsx)(`span`,{style:{color:u},children:`puts`})]})]})]}),(0,c.jsxs)(`div`,{className:`caption text-soft`,children:[`avg implied vol `,n(r.avgIv,1)]})]})}var p=s({...o,component:f});export{p as optionsPutCallFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{G as r}from"./hooks-CLLchjg6.js";import{f as i,r as a,t as o}from"./format-DWMrfgke.js";import{t as s}from"./ui-CYz5SGgR.js";import{Ai as c,Ri as l,Yn as u}from"./index-9oCCAb1t.js";var d=e(n(),1),f=t();u.schema;var p=a,m=o;function h({config:e}){let{summary:t,isLoading:n}=r(e.currency),a=c(),o=(0,d.useMemo)(()=>{if(!t)return null;let e=[...t.nearestExpiry.strikes].filter(e=>e.callIv!==void 0||e.putIv!==void 0).sort((e,t)=>e.strike-t.strike);if(e.length<2)return null;let n=e.flatMap(e=>[e.callIv,e.putIv]).filter(e=>e!==void 0);return n.length===0?null:{strikes:e,minIv:Math.min(...n),maxIv:Math.max(...n),spot:t.underlyingPrice,expiry:t.nearestExpiry.expiry}},[t]);if(n)return(0,f.jsx)(s,{loading:!0,children:`loading vol smile…`});if(!o)return(0,f.jsx)(s,{children:`no options data yet`});let{strikes:l,minIv:u,maxIv:h,spot:g,expiry:_}=o,v=l[0].strike,y=l[l.length-1].strike,b=y-v||1,x=e=>(e-v)/b*600,S=Math.max(h-u,1e-6),C=e=>196-(e-u)/S*190,w=e=>l.filter(t=>t[e]!==void 0).map(t=>`${x(t.strike)},${C(t[e])}`).join(` `),T=`${i(u,0)}–${i(h,0)}`;return(0,f.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[(0,f.jsxs)(`div`,{className:`caption text-soft mb-1 flex justify-between`,children:[(0,f.jsxs)(`span`,{children:[`vol smile · `,_]}),(0,f.jsxs)(`span`,{children:[(0,f.jsx)(`span`,{style:{color:p},children:`call IV`}),` ·`,` `,(0,f.jsx)(`span`,{style:{color:m},children:`put IV`})]})]}),(0,f.jsxs)(`svg`,{viewBox:`0 0 600 200`,preserveAspectRatio:`none`,className:`min-h-0 w-full flex-1`,children:[(0,f.jsx)(`line`,{x1:0,y1:196,x2:600,y2:196,style:{stroke:`var(--color-disabled)`},strokeWidth:1}),(0,f.jsx)(`polyline`,{points:w(`callIv`),fill:`none`,stroke:p,strokeWidth:1.5}),(0,f.jsx)(`polyline`,{points:w(`putIv`),fill:`none`,stroke:m,strokeWidth:1.5})]}),(0,f.jsxs)(`div`,{className:`caption text-soft mt-1 flex justify-between tabular-nums`,children:[(0,f.jsx)(`span`,{children:a.magnitude(v)}),(0,f.jsxs)(`span`,{className:`text-normal`,children:[`spot `,a.price(g),` · `,T,` IV`]}),(0,f.jsx)(`span`,{children:a.magnitude(y)})]})]})}var g=l({...u,component:h});export{g as optionsVolSmileFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{lt as r}from"./hooks-CLLchjg6.js";import{t as i}from"./ui-CYz5SGgR.js";import{t as a}from"./multi-series-line-chart-XRttVKf5.js";import{t as o}from"./timeframe-DUDLPk23.js";import{t as s}from"./chart-utils-Ba8AFSZR.js";import{Ri as c,Xn as l}from"./index-9oCCAb1t.js";var u=e(n(),1),d=t();l.schema;var f={"7D":{ms:7*864e5,res:3600,timeframe:o[`7D`]},"1M":{ms:30*864e5,res:43200,timeframe:o[`1M`]},"3M":{ms:90*864e5,res:86400,timeframe:o[`3M`]}};function p({config:e}){let{ms:t,res:n,timeframe:o}=f[e.lookback],c=(0,u.useMemo)(()=>{let e=n*1e3;return Math.floor((Date.now()-t)/e)*e},[t,n]),l=r(`BTC`,c,n),p=r(`ETH`,c,n),m=(0,u.useMemo)(()=>[{id:`BTC`,name:`BTC DVOL`,points:l.points},{id:`ETH`,name:`ETH DVOL`,points:p.points}].map((e,t)=>({id:e.id,name:e.name,color:s[t%s.length],data:e.points.map(e=>({date:new Date(e.time).toISOString(),value:e.value}))})),[l.points,p.points]);return l.isLoading||p.isLoading?(0,d.jsx)(i,{loading:!0,children:`loading volatility…`}):m.every(e=>e.data.length===0)?(0,d.jsx)(i,{children:`no volatility data yet`}):(0,d.jsx)(a,{series:m,timeframe:o,height:250,formatValue:e=>e.toFixed(1)})}var m=c({...l,component:p});export{m as optionsVolSpreadFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./liveline-BV-xqAVq.js";import{K as t}from"./hooks-CLLchjg6.js";import{c as n,f as r,r as i,t as a}from"./format-DWMrfgke.js";import{n as o,t as s}from"./ui-CYz5SGgR.js";import{Ai as c,Ri as l,Zn as u}from"./index-9oCCAb1t.js";var d=e();u.schema;function f({level:e,maxCumulative:t,color:r,money:i}){let a=t>0?Math.min(e.cumulativeSize/t*100,100):0;return(0,d.jsxs)(`div`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-2 px-1 tabular-nums`,style:{background:`linear-gradient(to left, color-mix(in srgb, ${r} 22%, transparent) ${a}%, transparent ${a}%)`},title:`${i.price(e.price)} · ${n(e.size)} resting · ${n(e.cumulativeSize)} cumulative`,children:[(0,d.jsx)(`span`,{className:`caption font-bold`,style:{color:r},children:i.price(e.price)}),(0,d.jsx)(`span`,{className:`caption text-soft`,children:n(e.size)})]})}function p({config:e}){let{book:n,isLoading:l}=t(e.symbol,e.levels,void 0,e.venue),u=c();if(l)return(0,d.jsx)(s,{loading:!0,children:`loading order book…`});if(!n||n.bids.length===0&&n.asks.length===0)return(0,d.jsxs)(s,{children:[`no book for `,e.symbol]});let p=n.asks.slice(0,e.levels),m=n.bids.slice(0,e.levels),h=Math.max(p.at(-1)?.cumulativeSize??0,m.at(-1)?.cumulativeSize??0);return(0,d.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-1`,children:[(0,d.jsxs)(`div`,{className:o,children:[[...p].reverse().map(e=>(0,d.jsx)(f,{level:e,maxCumulative:h,color:a,money:u},`ask-${e.price}`)),(0,d.jsxs)(`div`,{className:`flex items-baseline justify-between gap-2 border-y border-white/10 px-1 py-1`,children:[(0,d.jsx)(`span`,{className:`body-sm font-bold text-strong tabular-nums`,children:u.price(n.mid)}),(0,d.jsxs)(`span`,{className:`caption text-soft tabular-nums`,children:[r(n.spreadPct),` spread`]})]}),m.map(e=>(0,d.jsx)(f,{level:e,maxCumulative:h,color:i,money:u},`bid-${e.price}`))]}),(0,d.jsxs)(`div`,{className:`caption text-soft shrink-0`,children:[n.pair,` · size in `,n.symbol]})]})}var m=l({...u,component:p});export{m as orderBookDepthFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{A as r}from"./hooks-CLLchjg6.js";import{c as i,r as a,t as o}from"./format-DWMrfgke.js";import{t as s}from"./ui-CYz5SGgR.js";import{t as c}from"./bar-chart-CMWrEpFm.js";import{Qn as l,Ri as u}from"./index-9oCCAb1t.js";var d=e(n(),1),f=t();l.schema;var p=`CES0000000001`;function m({config:e}){let t=new Date().getUTCFullYear(),{series:n,isLoading:l}=r(p,t-3,t),u=(0,d.useMemo)(()=>{let t=n?.points??[];return t.slice(1).map((e,n)=>({label:e.date,value:e.value-t[n].value})).slice(-e.months)},[n,e.months]);if(l)return(0,f.jsx)(s,{loading:!0,children:`loading payrolls…`});if(u.length===0)return(0,f.jsx)(s,{children:`no payrolls data yet`});let m=u.at(-1);return(0,f.jsxs)(`div`,{className:`flex h-full flex-col justify-center gap-1 text-normal`,children:[(0,f.jsx)(c,{data:u,color:a,negativeColor:o,height:200,formatValue:e=>i(e*1e3),showValues:!1,maxTickLabels:6}),(0,f.jsxs)(`div`,{className:`caption text-soft text-center`,children:[`nonfarm payrolls · monthly net change · latest`,` `,m.value>=0?`+`:``,i(m.value*1e3)]})]})}var h=u({...l,component:m});export{h as payrollsBarsFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{d as r}from"./hooks-CLLchjg6.js";import{t as i}from"./format-DWMrfgke.js";import{t as a}from"./ui-CYz5SGgR.js";import{a as o,i as s,s as c}from"./indicators-YksbfYtF.js";import{i as l,n as u,r as d,t as f}from"./cycle-shared-D8LQcBSw.js";import{$n as p,Ri as m}from"./index-9oCCAb1t.js";var h=e(n(),1),g=t();p.schema;function _({config:e}){let{history:t,isLoading:n}=r(`btc`),p=(0,h.useMemo)(()=>{let e=t.map(e=>e.value),n=s(e,111),r=s(e,350),i=[];for(let e=0;e<t.length;e++){let a=n[e],o=r[e];a!==null&&o!==null&&o>0&&i.push({time:t[e].time,value:a/(2*o)})}return i},[t]);if(n)return(0,g.jsx)(a,{loading:!0,children:`loading Pi Cycle…`});if(p.length===0)return(0,g.jsx)(a,{children:`not enough price history yet`});let m=p[p.length-1].value,_=l(m,[{upTo:.85,zone:{label:`Normal`,color:u}},{upTo:1,zone:{label:`Approaching top`,color:d}}],{label:`TOP SIGNAL`,color:i});return(0,g.jsx)(f,{caption:`Pi Cycle · 111DMA ÷ 2×350DMA`,headline:m.toFixed(2),headlineColor:_.color,zone:_,sub:`crosses 1 at cycle tops`,sparkline:o(p,c(e.window)),sparkColor:_.color})}var v=m({...p,component:_});export{v as piCycleFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{E as r,h as i,y as a,z as o}from"./d3-BDRmnSFu.js";import{n as s}from"./utils-BsB3-B7h.js";var c=e(n(),1),l=t(),u=[`#FF1F5F`,`#81FE90`],d=(0,c.memo)(({data:e,width:t=270,height:n=270,innerRadius:d=90,outerRadius:f=100,colors:p=u,children:m})=>{let h=(0,c.useRef)(null);return(0,c.useEffect)(()=>{if(!h.current||!e.length)return;o(h.current).selectAll(`*`).remove();let c=o(h.current),l=t/2,u=n/2,m=c.append(`defs`);m.append(`filter`).attr(`id`,`glow`).append(`feGaussianBlur`).attr(`stdDeviation`,`3`).attr(`result`,`coloredBlur`),m.select(`#glow`).append(`feMerge`).selectAll(`feMergeNode`).data([`coloredBlur`,`SourceGraphic`]).enter().append(`feMergeNode`).attr(`in`,e=>e),m.append(`filter`).attr(`id`,`glow-layer`).append(`feGaussianBlur`).attr(`stdDeviation`,`6`).attr(`result`,`glowBlur`),m.select(`#glow-layer`).append(`feColorMatrix`).attr(`type`,`matrix`).attr(`values`,`1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.5 0`).attr(`result`,`glowColor`);let g=i().value(e=>e.value).padAngle(.02),_=a().innerRadius(d).outerRadius(f).cornerRadius(100),v=a().innerRadius(d).outerRadius(f).cornerRadius(100),y=r().domain(e.map((e,t)=>t.toString())).range(p),b=c.append(`g`).attr(`transform`,`translate(${l}, ${u})`).selectAll(`g`).data(g(e)).enter().append(`g`);b.append(`path`).attr(`class`,`glow-layer`).attr(`d`,v).attr(`fill`,(e,t)=>y(t.toString())).attr(`filter`,`url(#glow-layer)`).style(`opacity`,0).style(`pointer-events`,`none`),b.append(`path`).attr(`class`,`main-slice`).attr(`d`,_).attr(`fill`,(e,t)=>y(t.toString())).attr(`stroke`,`none`),b.on(`mouseenter`,function(){o(this).select(`.glow-layer`).transition().duration(s()?0:300).style(`opacity`,1)}).on(`mouseleave`,function(){o(this).select(`.glow-layer`).transition().duration(s()?0:300).style(`opacity`,0)})},[e,t,n,d,f,p]),(0,l.jsxs)(`div`,{className:`relative flex flex-col items-center justify-center rounded-full`,style:{background:`linear-gradient(0deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0) 100%)`},children:[(0,l.jsx)(`svg`,{ref:h,width:t,height:n,className:`relative z-10`}),(0,l.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:m}),(0,l.jsx)(`div`,{className:`pointer-events-none absolute inset-0 rounded-full`,style:{background:`linear-gradient(0deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 100%)`,maskImage:`radial-gradient(farthest-side, transparent calc(100% - 1px),#fff 0)`,WebkitMaskComposite:`destination-out`,maskComposite:`exclude`}}),(0,l.jsx)(`div`,{className:`pointer-events-none absolute inset-[10%] rounded-full`,style:{background:`linear-gradient(180deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 100%)`,maskImage:`radial-gradient(farthest-side, transparent calc(100% - 1px),#fff 0)`,WebkitMaskComposite:`destination-out`,maskComposite:`exclude`}})]})});export{d as t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{t as r}from"./content-shared-CrVCFeOp.js";import{Ri as i,er as a}from"./index-9oCCAb1t.js";var o=e(n(),1),s=t();a.schema;function c(e){let t=Math.floor(e/60),n=e%60;return`${t}:${String(n).padStart(2,`0`)}`}function l({config:e}){let t=Math.max(1,Math.round(e.workMin*60)),n=Math.max(1,Math.round(e.breakMin*60)),[i,a]=(0,o.useState)(`work`),[l,u]=(0,o.useState)(t),[d,f]=(0,o.useState)(!1),[p,m]=(0,o.useState)(1);(0,o.useEffect)(()=>{a(`work`),u(t),f(!1),m(1)},[t,n]);let h=(0,o.useRef)(i);h.current=i;let g=(0,o.useRef)(p);g.current=p,(0,o.useEffect)(()=>{if(!d)return;let r=setInterval(()=>{u(r=>r>1?r-1:h.current===`work`?(a(`break`),n):(a(`work`),m(t=>g.current>=e.cycles?1:t+1),t))},1e3);return()=>clearInterval(r)},[d,t,n,e.cycles]);let _=()=>{f(!1),a(`work`),u(t),m(1)},v=e.label.trim(),y=i===`work`?`var(--color-highlight)`:void 0;return(0,s.jsxs)(`div`,{className:`flex h-full w-full flex-col items-center justify-center gap-1`,children:[v&&(0,s.jsx)(`div`,{className:`caption text-soft uppercase tracking-[0.12em]`,children:v}),(0,s.jsxs)(`div`,{className:`caption text-soft uppercase tracking-[0.18em]`,children:[i,` · `,p,`/`,e.cycles]}),(0,s.jsx)(`div`,{className:`metric-xl text-strong`,style:{color:y},children:c(l)}),(0,s.jsxs)(`div`,{className:`mt-1 flex gap-1`,children:[(0,s.jsx)(`button`,{type:`button`,onClick:()=>f(e=>!e),className:`caption text-normal px-3 py-1 ${r}`,children:d?`Pause`:`Start`}),(0,s.jsx)(`button`,{type:`button`,onClick:_,className:`caption text-soft px-3 py-1 ${r}`,children:`Reset`})]})]})}var u=i({...a,component:l});export{u as pomodoroFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{f as r}from"./format-DWMrfgke.js";import{t as i}from"./ui-CYz5SGgR.js";import{n as a,r as o,t as s}from"./portfolio-common-CcbzaPrv.js";import{t as c}from"./chart-utils-Ba8AFSZR.js";import{t as l}from"./pie-chart-cmDhECET.js";import{Ai as u,Ri as d,r as f,tr as p}from"./index-9oCCAb1t.js";var m=e(n(),1),h=t();p.schema;function g({portfolio:e,config:t}){let n=u(),{priced:s}=o(e.holdings),d=(0,m.useMemo)(()=>s.map((e,t)=>({name:f(e.symbol),value:e.value??0,color:c[t%c.length]})).filter(e=>e.value>0).sort((e,t)=>t.value-e.value),[s]),p=d.reduce((e,t)=>e+t.value,0);return d.length===0?(0,h.jsx)(i,{children:`no live prices yet`}):(0,h.jsxs)(`div`,{className:`flex h-full w-full flex-col items-center justify-center gap-4`,children:[(0,h.jsx)(l,{data:d,width:200,height:200,innerRadius:58,outerRadius:92,colors:d.map(e=>e.color),children:(0,h.jsxs)(`div`,{className:`flex flex-col items-center gap-0.5`,children:[(0,h.jsx)(a,{portfolio:e,config:t,className:`caption text-soft`}),(0,h.jsx)(`span`,{className:`metric-lg text-strong`,children:n.compact(p)})]})}),(0,h.jsx)(`div`,{className:`flex w-full max-w-xs flex-wrap justify-center gap-x-5 gap-y-1.5`,children:d.map(e=>(0,h.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,h.jsx)(`span`,{className:`h-2 w-2 flex-shrink-0 rounded-full`,style:{background:e.color}}),(0,h.jsx)(`span`,{className:`body-sm text-soft`,children:e.name}),(0,h.jsx)(`span`,{className:`body-sm text-normal font-bold tabular-nums`,children:r(e.value/p*100,1)}),(0,h.jsx)(`span`,{className:`caption text-soft tabular-nums`,children:n.compact(e.value)})]},e.name))})]})}function _({config:e}){return(0,h.jsx)(s,{config:e,loadingLabel:`loading allocation…`,children:t=>(0,h.jsx)(g,{portfolio:t,config:e})})}var v=d({...p,component:_});export{v as portfolioAllocationFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{F as r,q as i}from"./hooks-CLLchjg6.js";import{t as a}from"./ui-CYz5SGgR.js";import{Oi as o,t as s,wi as c}from"./index-9oCCAb1t.js";var l=e(n(),1),u=t();function d(e){if(e.source===`wallet`){let t=(e.address??``).trim();return t?{kind:`wallet`,address:t}:null}return{kind:`binance`}}var f={WETH:`ETH`,WBTC:`BTC`};function p(e){return f[e.toUpperCase()]??e}function m(e){let t=e??[],n=r(t.map(e=>p(e.symbol)));return(0,l.useMemo)(()=>{let e=t.map(e=>{let t=n[p(e.symbol)],r=t===void 0?e.valueUsd:e.amount*t;return{...e,value:r}});return{priced:e,total:e.reduce((e,t)=>e+(t.value??0),0)}},[e,n])}function h({portfolio:e,config:t,className:n=``}){let r=e.label??(t.source===`wallet`?`wallet`:`portfolio`),i=t.address?.trim();return t.source===`wallet`&&i?(0,u.jsx)(`a`,{href:`https://etherscan.io/address/${encodeURIComponent(i)}`,target:`_blank`,rel:`noopener noreferrer`,title:`View on Etherscan`,className:`hover:text-white hover:underline ${n}`,onClick:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation(),children:r}):(0,u.jsx)(`span`,{className:n,children:r})}function g(e,t){let n=e?.kind===`binance`,[r,i]=(0,l.useState)({loading:n,connected:!1,keyMasked:null});return(0,l.useEffect)(()=>{if(!n||!e){i({loading:!1,connected:!1,keyMasked:null});return}let t=!1;return i(e=>({...e,loading:!0})),fetch(`${c}?source=${e.kind}`,{headers:{accept:`application/json`}}).then(e=>e.ok?e.json():{connected:!1,keyMasked:null}).then(e=>{t||i({loading:!1,connected:!!e.connected,keyMasked:e.keyMasked??null})}).catch(()=>{t||i({loading:!1,connected:!1,keyMasked:null})}),()=>{t=!0}},[n,e?.kind,t]),r}function _(e){let[t,n]=(0,l.useState)(0),r=(0,l.useCallback)(()=>n(e=>e+1),[]),a=d(e),o=g(a,t),s=a?.kind===`binance`,{portfolio:c,isLoading:u}=i(a&&(!s||o.connected)?a:null),f;return f=a?s&&o.loading?{state:`checking`}:s&&!o.connected?{state:`needs-connect`,source:a}:u&&!c?{state:`loading`}:c?c.holdings.length===0?{state:`empty`,portfolio:c}:{state:`live`,portfolio:c}:{state:`error`}:{state:`needs-address`},{view:f,refresh:r}}var v=`w-full rounded-md border border-white/10 bg-white/[0.04] px-2 py-1.5 text-xs text-white/90 outline-none focus:border-white/25 placeholder:text-white/30`,y=`rounded-md bg-[hsl(var(--zf-accent-hue,242)_90%_60%)] px-3 py-1.5 text-xs font-semibold text-white disabled:opacity-50`;function b({onConnected:e}){let[t,n]=(0,l.useState)(``),[r,i]=(0,l.useState)(``),[a,o]=(0,l.useState)(!1),[d,f]=(0,l.useState)(null),p=async()=>{o(!0),f(null);try{let a=await fetch(c,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({source:`binance`,key:t.trim(),secret:r.trim()})}),o=await a.json().catch(()=>({}));if(!a.ok||!o.ok)throw Error(o.error??`HTTP ${a.status}`);n(``),i(``),e()}catch(e){f(e instanceof Error?e.message:String(e))}finally{o(!1)}};return(0,u.jsxs)(`div`,{className:`flex h-full w-full flex-col justify-center gap-2 px-1`,children:[(0,u.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,u.jsx)(s,{symbol:`BNB`,size:18}),(0,u.jsx)(`span`,{className:`text-strong text-sm font-bold`,children:`Connect Binance`})]}),(0,u.jsxs)(`p`,{className:`caption text-soft`,children:[`Use a `,(0,u.jsx)(`strong`,{children:`read-only`}),` key + secret — create them in Binance`,` `,(0,u.jsx)(`a`,{href:`https://www.binance.com/en/my/settings/api-management`,target:`_blank`,rel:`noopener noreferrer`,className:`text-[hsl(var(--zf-accent-hue,242)_90%_72%)] underline underline-offset-2 hover:text-white`,onClick:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation(),children:`API Management`}),` `,`(enable Reading only). Both stay on your machine, never shared.`]}),(0,u.jsx)(`input`,{className:v,placeholder:`API key`,value:t,autoComplete:`off`,onChange:e=>n(e.target.value),onPointerDown:e=>e.stopPropagation()}),(0,u.jsx)(`input`,{className:v,placeholder:`API secret`,type:`password`,value:r,autoComplete:`off`,onChange:e=>i(e.target.value),onPointerDown:e=>e.stopPropagation()}),d?(0,u.jsx)(`p`,{className:`caption text-[#ff6b81]`,children:d}):null,(0,u.jsx)(`button`,{type:`button`,className:y,disabled:a||!t.trim()||!r.trim(),onClick:e=>{e.stopPropagation(),p()},onPointerDown:e=>e.stopPropagation(),children:a?`Verifying…`:`Connect`})]})}function x({current:e}){let t=o(),[n,r]=(0,l.useState)(e??``);return(0,u.jsxs)(`div`,{className:`flex h-full w-full flex-col justify-center gap-2 px-1`,children:[(0,u.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,u.jsx)(s,{symbol:`ETH`,size:18}),(0,u.jsx)(`span`,{className:`text-strong text-sm font-bold`,children:`Track a wallet`})]}),(0,u.jsx)(`p`,{className:`caption text-soft`,children:`Enter a public Ethereum address or ENS name. No keys — it’s public on-chain data. Sharing this dashboard reveals the holdings.`}),(0,u.jsx)(`input`,{className:v,placeholder:`0x… or name.eth`,value:n,autoComplete:`off`,onChange:e=>r(e.target.value),onPointerDown:e=>e.stopPropagation()}),t?(0,u.jsx)(`button`,{type:`button`,className:y,disabled:!n.trim(),onClick:e=>{e.stopPropagation(),t({address:n.trim()})},onPointerDown:e=>e.stopPropagation(),children:`Track`}):(0,u.jsx)(`p`,{className:`caption text-soft`,children:`Set the address in the frame’s config to start tracking.`})]})}function S({config:e,loadingLabel:t=`loading portfolio…`,children:n}){let{view:r,refresh:i}=_(e);switch(r.state){case`needs-address`:case`needs-connect`:return(0,u.jsx)(C,{view:r,config:e,onConnected:i});case`checking`:case`loading`:return(0,u.jsx)(a,{loading:!0,children:t});case`error`:return(0,u.jsx)(a,{children:`couldn’t load — check the address or try again`});case`empty`:return(0,u.jsx)(a,{children:`no holdings to show`});case`live`:return(0,u.jsx)(u.Fragment,{children:n(r.portfolio)})}}function C({view:e,config:t,onConnected:n}){return e.state===`needs-connect`&&e.source.kind===`binance`?(0,u.jsx)(b,{onConnected:n}):(0,u.jsx)(x,{current:t.address})}export{h as n,m as r,S as t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{a as r,f as i,s as a}from"./format-DWMrfgke.js";import{n as o}from"./ui-CYz5SGgR.js";import{n as s,r as c,t as l}from"./portfolio-common-CcbzaPrv.js";import{Ai as u,Ri as d,nr as f,r as p,t as m}from"./index-9oCCAb1t.js";var h=e(n(),1),g=t();f.schema;function _(e){return e>=1e3?e.toLocaleString(`en-US`,{maximumFractionDigits:2}):e>=1?e.toFixed(4).replace(/\.?0+$/,``):e.toPrecision(4)}function v({portfolio:e,config:t}){let n=u(),{priced:l,total:d}=c(e.holdings),f=(0,h.useMemo)(()=>[...l].sort((e,t)=>(t.value??0)-(e.value??0)),[l]);return(0,g.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-2`,children:[(0,g.jsxs)(`div`,{className:`flex items-baseline justify-between border-b border-white/[0.06] pb-1.5`,children:[(0,g.jsx)(s,{portfolio:e,config:t,className:`caption text-soft`}),(0,g.jsx)(`span`,{className:`metric-sm text-strong`,children:n.compact(d)})]}),(0,g.jsx)(`div`,{className:o,children:(0,g.jsx)(`table`,{className:`w-full text-xs`,children:(0,g.jsx)(`tbody`,{children:f.map(e=>{let t=d>0?(e.value??0)/d*100:0;return(0,g.jsxs)(`tr`,{className:`border-b border-white/[0.04]`,children:[(0,g.jsx)(`td`,{className:`py-1.5`,children:(0,g.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,g.jsx)(m,{symbol:e.symbol,size:16}),(0,g.jsx)(`span`,{className:`text-normal font-semibold`,children:p(e.symbol)})]})}),(0,g.jsx)(`td`,{className:`text-soft py-1.5 text-right tabular-nums`,children:_(e.amount)}),(0,g.jsx)(`td`,{className:`text-normal py-1.5 text-right font-semibold tabular-nums`,children:e.value===void 0?`—`:n.compact(e.value)}),(0,g.jsx)(`td`,{className:`text-soft py-1.5 text-right tabular-nums`,children:i(t,1)}),(0,g.jsx)(`td`,{className:`py-1.5 text-right tabular-nums`,children:e.changePct24h===void 0?(0,g.jsx)(`span`,{className:`text-soft`,children:`·`}):(0,g.jsx)(`span`,{style:{color:r(e.changePct24h)},children:a(e.changePct24h)})})]},e.symbol)})})})})]})}function y({config:e}){return(0,g.jsx)(l,{config:e,loadingLabel:`loading holdings…`,children:t=>(0,g.jsx)(v,{portfolio:t,config:e})})}var b=d({...f,component:y});export{b as portfolioHoldingsFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{r,s as i,t as a}from"./format-DWMrfgke.js";import{t as o}from"./ui-CYz5SGgR.js";import{n as s,t as c}from"./portfolio-common-CcbzaPrv.js";import{t as l}from"./bar-chart-CMWrEpFm.js";import{Ri as u,r as d,rr as f}from"./index-9oCCAb1t.js";var p=e(n(),1),m=t();f.schema;function h({portfolio:e,config:t}){let n=(0,p.useMemo)(()=>[...e.holdings].filter(e=>Number.isFinite(e.changePct24h)).sort((e,t)=>Math.abs(t.changePct24h)-Math.abs(e.changePct24h)).slice(0,t.limit).sort((e,t)=>t.changePct24h-e.changePct24h).map(e=>({label:d(e.symbol),value:e.changePct24h})),[e.holdings,t.limit]);return n.length===0?(0,m.jsx)(o,{children:`no 24h change reported for these holdings`}):(0,m.jsxs)(`div`,{className:`flex h-full flex-col justify-center gap-1 text-normal`,children:[(0,m.jsx)(s,{portfolio:e,config:t,className:`caption text-soft`}),(0,m.jsx)(l,{data:n,orientation:`horizontal`,color:r,negativeColor:a,height:Math.max(n.length*22,96),formatValue:i})]})}function g({config:e}){return(0,m.jsx)(c,{config:e,loadingLabel:`loading holdings…`,children:t=>(0,m.jsx)(h,{portfolio:t,config:e})})}var _=u({...f,component:g});export{_ as portfolioMoversFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n,t as r}from"./liveline-BV-xqAVq.js";import{a as i,s as a}from"./format-DWMrfgke.js";import{n as o,t as s}from"./live-tick-S-lWTthW.js";import{n as c,r as l,t as u}from"./portfolio-common-CcbzaPrv.js";import{Ai as d,Ri as f,ar as p}from"./index-9oCCAb1t.js";var m=e(n(),1),h=t(),g=720,_=3,v={top:12,right:66,bottom:28,left:8};p.schema;function y(){return typeof document>`u`?`hsl(242 90% 66%)`:`hsl(${getComputedStyle(document.documentElement).getPropertyValue(`--zf-accent-hue`).trim()||`242`} 90% 66%)`}function b({portfolio:e,config:t,windowSec:n}){let u=d(),{total:f}=l(e.holdings),p=(0,m.useMemo)(()=>y(),[]),{ref:b,visibleRef:x}=o(),S=(0,m.useRef)(!1),[C,w]=(0,m.useState)([]),T=(0,m.useRef)(f);(0,m.useEffect)(()=>{T.current=f},[f]);let E=(0,m.useCallback)(()=>{if(!x.current){S.current=!0;return}let e=T.current;if(!Number.isFinite(e)||e<=0)return;let t=Date.now()/1e3,n=S.current;S.current=!1,w(r=>{let i=n?[]:r,a=i[i.length-1];if(a&&Math.abs(t-a.time)<.5&&a.value===e)return i;let o=i.length===0?[{time:t-_,value:e},{time:t,value:e}]:[...i,{time:t,value:e}];return o.length>g?o.slice(-720):o})},[x]);(0,m.useEffect)(()=>{E()},[E,f]),(0,m.useEffect)(()=>s(E),[E]);let D=C[0]?.value,O=D&&f?(f/D-1)*100:0,k=(0,m.useMemo)(()=>C.length===0?[]:[{id:`equity`,label:`Portfolio`,color:p,data:C,value:f}],[C,f,p]),A=(0,m.useMemo)(()=>{if(C.length===0)return _;let e=C[C.length-1].time-C[0].time;return Math.min(n,Math.max(_,Math.ceil(e)))},[C,n]);return(0,h.jsxs)(`div`,{ref:b,className:`flex h-full min-h-0 flex-col`,children:[(0,h.jsxs)(`div`,{className:`flex flex-none items-baseline justify-between border-b border-white/[0.06] pb-2`,children:[(0,h.jsxs)(`div`,{className:`flex flex-col`,children:[(0,h.jsx)(c,{portfolio:e,config:t,className:`caption text-soft`}),(0,h.jsx)(`span`,{className:`metric-md text-strong`,children:u.compact(f)})]}),(0,h.jsxs)(`span`,{className:`body-sm font-semibold tabular-nums`,style:{color:i(O)},children:[a(O),` `,(0,h.jsx)(`span`,{className:`caption text-soft`,children:`session`})]})]}),(0,h.jsx)(`div`,{className:`min-h-0 flex-1 [&>div[style*='align-items']]:!hidden`,children:(0,h.jsx)(r,{data:[],value:f,series:k,theme:`dark`,window:A,grid:!0,loading:C.length<=1,scrub:!1,badge:!1,formatValue:u.compact,padding:v,style:{width:`100%`,height:`100%`}})})]})}function x({config:e}){return(0,h.jsx)(u,{config:e,loadingLabel:`loading portfolio…`,children:t=>(0,h.jsx)(b,{portfolio:t,config:e,windowSec:e.windowSec})})}var S=f({...p,component:x});export{S as portfolioValueFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{t as r}from"./ui-CYz5SGgR.js";import{n as i,r as a,t as o}from"./portfolio-common-CcbzaPrv.js";import{t as s}from"./bar-chart-CMWrEpFm.js";import{Ai as c,Ri as l,ir as u,r as d}from"./index-9oCCAb1t.js";var f=e(n(),1),p=t();u.schema;function m({portfolio:e,config:t}){let n=c(),{priced:o,total:l}=a(e.holdings),u=(0,f.useMemo)(()=>o.filter(e=>(e.value??0)>0).sort((e,t)=>(t.value??0)-(e.value??0)).slice(0,t.limit).map(e=>({label:d(e.symbol),value:e.value??0})),[o,t.limit]);return u.length===0?(0,p.jsx)(r,{children:`no live prices yet`}):(0,p.jsxs)(`div`,{className:`flex h-full flex-col justify-center gap-1 text-normal`,children:[(0,p.jsxs)(`div`,{className:`flex items-baseline justify-between px-0.5`,children:[(0,p.jsx)(i,{portfolio:e,config:t,className:`caption text-soft`}),(0,p.jsx)(`span`,{className:`metric-sm text-strong`,children:n.compact(l)})]}),(0,p.jsx)(s,{data:u,orientation:`horizontal`,height:Math.max(u.length*24,96),formatValue:n.compact})]})}function h({config:e}){return(0,p.jsx)(o,{config:e,loadingLabel:`loading holdings…`,children:t=>(0,p.jsx)(m,{portfolio:t,config:e})})}var g=l({...u,component:h});export{g as portfolioValueBarsFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{J as r}from"./hooks-CLLchjg6.js";import{t as i}from"./ui-CYz5SGgR.js";import{t as a}from"./bar-chart-CMWrEpFm.js";import{Ai as o,Ri as s,or as c}from"./index-9oCCAb1t.js";var l=e(n(),1),u=t();c.schema;function d(e,t=28){return e.length>t?`${e.slice(0,t-1)}…`:e}function f({config:e}){let t=o(),{markets:n,isLoading:s}=r(e.limit),c=(0,l.useMemo)(()=>n.map(e=>({label:d(e.question),value:e.volume24h})),[n]);return s?(0,u.jsx)(i,{loading:!0,children:`loading markets…`}):c.length===0?(0,u.jsx)(i,{children:`no markets yet`}):(0,u.jsxs)(`div`,{className:`flex h-full flex-col justify-center gap-1 text-normal`,children:[(0,u.jsx)(a,{data:c,orientation:`horizontal`,height:Math.max(c.length*26,96),formatValue:t.compact}),(0,u.jsx)(`div`,{className:`caption text-soft text-center`,children:`prediction markets · 24h volume`})]})}var p=s({...c,component:f});export{p as predictionMarketBarsFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{J as r}from"./hooks-CLLchjg6.js";import{f as i}from"./format-DWMrfgke.js";import{t as a}from"./ui-CYz5SGgR.js";import{t as o}from"./scatter-chart-tjlc1NWO.js";import{Ai as s,Ri as c,sr as l}from"./index-9oCCAb1t.js";var u=e(n(),1),d=t();l.schema;function f(e,t=20){return e.length>t?`${e.slice(0,t-1)}…`:e}var p=e=>i(e,0);function m({config:e}){let t=s(),{markets:n,isLoading:i}=r(e.limit),c=(0,u.useMemo)(()=>n.filter(e=>e.outcomes.length>0&&e.volume24h>0).map(e=>{let t=[...e.outcomes].sort((e,t)=>t.prob-e.prob)[0];return{id:e.question,label:f(e.question),x:t.prob*100,y:e.volume24h,weight:e.volume24h}}),[n]);return i?(0,d.jsx)(a,{loading:!0,children:`loading markets…`}):c.length===0?(0,d.jsx)(a,{children:`no markets yet`}):(0,d.jsxs)(`div`,{className:`flex h-full flex-col justify-center gap-1 text-normal`,children:[(0,d.jsx)(o,{data:c,yScale:`log`,height:210,formatX:p,formatY:t.compact,maxLabels:10}),(0,d.jsxs)(`div`,{className:`caption text-soft text-center`,children:[`top-outcome probability (x) vs 24h volume (y, log) · top `,c.length]})]})}var h=c({...l,component:m});export{h as predictionMarketScatterFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{J as r}from"./hooks-CLLchjg6.js";import{f as i}from"./format-DWMrfgke.js";import{t as a}from"./bubbles-shared-BgKUWrak.js";import{Ai as o,Ri as s,cr as c}from"./index-9oCCAb1t.js";var l=e(n(),1),u=t();c.schema;function d(e,t=18){let n=e.trim();if(n.length<=t)return n;let r=n.slice(0,t),i=r.lastIndexOf(` `);return`${i>t*.5?r.slice(0,i):r}…`}function f(e){let t=Math.max(0,Math.min(1,(e-.5)/.5)),n=Math.round(64-t*22);return`hsl(152 ${Math.round(30+t*50)}% ${n}%)`}function p({config:e}){let t=o(),{markets:n,isLoading:s}=r(e.limit),c=(0,l.useMemo)(()=>n.filter(e=>e.volume24h>0).map((e,t)=>{let n=[...e.outcomes].sort((e,t)=>t.prob-e.prob)[0],r=f(n.prob);return{id:`${t}-${e.question}`,label:d(e.question),value:e.volume24h,color:r,borderColor:r,question:e.question,topLabel:n.label,topProb:n.prob,volume24h:e.volume24h}}),[n]);return(0,u.jsx)(a,{nodes:c,isLoading:s,loadingText:`loading markets…`,emptyText:`no markets yet`,caption:`area by 24h volume · tint by leading-outcome confidence · top ${c.length}`,formatTitle:e=>{let n=e;return`${n.question} — ${n.topLabel} ${i(n.topProb*100,0)} · vol ${t.compact(n.volume24h)}`}})}var m=s({...c,component:p});export{m as predictionMarketsBubbleFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./liveline-BV-xqAVq.js";import{J as t}from"./hooks-CLLchjg6.js";import{f as n,r}from"./format-DWMrfgke.js";import{n as i,t as a}from"./ui-CYz5SGgR.js";import{t as o}from"./metric-row-CqsjSvCI.js";import{Ai as s,Ri as c,lr as l}from"./index-9oCCAb1t.js";var u=e();l.schema;function d({config:e}){let c=s(),{markets:l,isLoading:d}=t(e.limit);return d?(0,u.jsx)(a,{loading:!0,children:`loading markets…`}):l.length===0?(0,u.jsx)(a,{children:`no markets yet`}):(0,u.jsx)(`div`,{className:`${i} flex flex-col`,children:l.map((e,t)=>{let i=[...e.outcomes].sort((e,t)=>t.prob-e.prob)[0];return(0,u.jsx)(o,{label:e.question,meta:`${i.label} · vol ${c.compact(e.volume24h)}`,value:(0,u.jsx)(`span`,{style:{color:r},children:n(i.prob*100,0)})},t)})})}var f=c({...l,component:d});export{f as predictionMarketsFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n,t as r}from"./liveline-BV-xqAVq.js";import{F as i,i as a}from"./hooks-CLLchjg6.js";import{n as o}from"./live-tick-S-lWTthW.js";import{t as s}from"./ui-CYz5SGgR.js";import{Ai as c,Ri as l,r as u,t as d,ur as f}from"./index-9oCCAb1t.js";var p=e(n(),1),m=t(),h={"1m":6e4,"5m":5*6e4,"15m":15*6e4,"1h":60*6e4,"4h":240*6e4,"1d":1440*6e4},g=60,_={top:12,right:56,bottom:28,left:12};f.schema;function v({config:e}){let t=h[e.interval],n=(0,p.useMemo)(()=>Date.now()-t*g,[t]),{candles:l,isLoading:u}=a(e.symbol,e.interval,n,Math.min(t,6e4),e.venue),d=c(),f=i(!e.venue||e.venue===`hyperliquid`?[e.symbol]:[])[e.symbol],{ref:v,visibleRef:y}=o(),b=(0,p.useRef)(!1),[x,S]=(0,p.useState)([]);(0,p.useEffect)(()=>{if(f===void 0)return;if(!y.current){b.current=!0;return}let e=b.current;b.current=!1,S(t=>{let n=[...e?[]:t,{time:Date.now()/1e3,value:f}];return n.length>900?n.slice(-600):n})},[f,y]),(0,p.useEffect)(()=>S([]),[e.symbol]);let C=(0,p.useMemo)(()=>l.slice(0,-1).map(e=>({time:e.time/1e3,open:e.open,high:e.high,low:e.low,close:e.close})),[l]),w=l[l.length-1],T=(0,p.useMemo)(()=>{if(!w)return;let e=f??w.close;return{time:w.time/1e3,open:w.open,high:Math.max(w.high,e),low:Math.min(w.low,e),close:e}},[w,f]),E=f??w?.close??0,D=(0,p.useMemo)(()=>t>=h[`1d`]?e=>new Date(e*1e3).toLocaleDateString(`en-US`,{month:`short`,day:`numeric`}):t>=h[`1h`]?e=>{let t=new Date(e*1e3);return`${t.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`})} ${String(t.getHours()).padStart(2,`0`)}h`}:e=>new Date(e*1e3).toLocaleTimeString(`en-US`,{hour12:!1,hour:`2-digit`,minute:`2-digit`}),[t]),O=(0,p.useMemo)(()=>{let e=l.map(e=>({time:e.time/1e3,value:e.close}));if(x.length===0)return e;let t=x[0].time;return[...e.filter(e=>e.time<t),...x]},[l,x]);return u&&l.length===0?(0,m.jsx)(s,{loading:!0,children:`loading chart…`}):(0,m.jsx)(`div`,{ref:v,className:`h-full min-h-0`,children:(0,m.jsx)(r,{mode:e.mode,data:O,value:E,candles:C,candleWidth:t/1e3,liveCandle:T,window:t/1e3*g,color:e.color,theme:`dark`,loading:u,formatValue:d.price,formatTime:D,padding:_,showValue:!0,fill:!0,pulse:!0})})}function y({config:e}){let t=!e.venue||e.venue===`hyperliquid`,n=e.mode===`candle`&&t,r=i(n?[e.symbol]:[])[e.symbol],a=c();return(0,m.jsxs)(m.Fragment,{children:[u(e.symbol),n&&r!==void 0&&(0,m.jsx)(`span`,{style:{marginInlineStart:`0.5em`,color:`rgba(255, 255, 255, 0.82)`,fontVariantNumeric:`tabular-nums`},children:a.price(r)})]})}var b=l({...f,component:v,titleIcon:({config:e})=>(0,m.jsx)(d,{symbol:e.symbol,size:14}),titleContent:y});export{b as priceChartFrame};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{n as t,r as n}from"./liveline-BV-xqAVq.js";import{a as r}from"./hooks-CLLchjg6.js";import{s as i}from"./format-DWMrfgke.js";import{t as a}from"./ui-CYz5SGgR.js";import{t as o}from"./multi-series-line-chart-XRttVKf5.js";import{t as s}from"./timeframe-DUDLPk23.js";import{t as c}from"./chart-utils-Ba8AFSZR.js";import{Ai as l,Ri as u,dr as d,n as f,r as p}from"./index-9oCCAb1t.js";var m=e(n(),1),h=t(),g={"24h":{ms:1440*60*1e3,interval:`15m`,timeframe:s[`24h`]},"7D":{ms:10080*60*1e3,interval:`1h`,timeframe:s[`7D`]},"1M":{ms:720*60*60*1e3,interval:`4h`,timeframe:s[`1M`]}};d.schema;function _({config:e}){let t=l(),{ms:n,interval:s,timeframe:u}=g[e.lookback],d=(0,m.useMemo)(()=>Date.now()-n,[n]),{candles:_,isLoading:v}=r(e.symbols,s,d),y=(0,m.useMemo)(()=>e.symbols.map((t,n)=>{let r=_[t]??[],i=r[0]?.close;return{id:t,name:p(t),iconImageUrl:f(t),color:c[n%c.length],data:r.map(t=>({date:new Date(t.time).toISOString(),value:e.normalize&&i?(t.close/i-1)*100:t.close}))}}),[e.symbols,e.normalize,_]);return v?(0,h.jsx)(a,{loading:!0,children:`loading prices…`}):y.every(e=>e.data.length===0)?(0,h.jsx)(a,{children:`no price data yet`}):(0,h.jsx)(o,{series:y,timeframe:u,height:250,formatValue:e.normalize?i:t.price})}function v({config:e}){return(0,h.jsx)(h.Fragment,{children:e.symbols.map(p).join(` vs `)})}var y=u({...d,component:_,titleContent:v});export{y as priceCompareFrame};