zframes 0.8.1 → 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 +525 -8
  2. package/package.json +10 -10
  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-BqoH90r5.js +0 -1
  280. package/runtime/assets/breakeven-1Kr-v9pE.js +0 -1
  281. package/runtime/assets/breathing-NOTeAM6N.js +0 -1
  282. package/runtime/assets/btc-block-size-bars-BgwX4eu_.js +0 -1
  283. package/runtime/assets/btc-blocks-D6TscPNp.js +0 -1
  284. package/runtime/assets/btc-difficulty-BhSve3vk.js +0 -1
  285. package/runtime/assets/btc-difficulty-chart-Yqxof0b6.js +0 -1
  286. package/runtime/assets/btc-fees-C-Za_OxK.js +0 -1
  287. package/runtime/assets/btc-hashrate-5xnTYpft.js +0 -1
  288. package/runtime/assets/btc-mempool-0WFrtuQR.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-CcLe2vqJ.js +0 -1
  292. package/runtime/assets/capital-structure-bars-SEyFIReK.js +0 -1
  293. package/runtime/assets/chain-activity-CCO3t0hA.js +0 -1
  294. package/runtime/assets/chain-activity-bars-DHYCDKWT.js +0 -1
  295. package/runtime/assets/chain-activity-scatter-DeusbLku.js +0 -1
  296. package/runtime/assets/chain-price-movers-SeTwhqsM.js +0 -1
  297. package/runtime/assets/chart-utils-DGogNvJT.js +0 -1
  298. package/runtime/assets/checklist-orMUS_qt.js +0 -1
  299. package/runtime/assets/clock-9PqJvMgi.js +0 -1
  300. package/runtime/assets/coin-momentum-heatmap-DvfWWzSD.js +0 -1
  301. package/runtime/assets/coin-momentum-scatter-Cf4Y29lp.js +0 -1
  302. package/runtime/assets/coin-movers-D3cmI-tT.js +0 -1
  303. package/runtime/assets/content-shared-BZ1XzrJx.js +0 -1
  304. package/runtime/assets/countdown-tMz3FsXT.js +0 -1
  305. package/runtime/assets/custom-data-DPPNQ2QQ.js +0 -1
  306. package/runtime/assets/cycle-shared-XoGVsOjC.js +0 -1
  307. package/runtime/assets/cycle-signals-DJYUIjas.js +0 -1
  308. package/runtime/assets/cycle-valuation-composite-DO_Pda0n.js +0 -1
  309. package/runtime/assets/d3-ibrLIlQc.js +0 -1
  310. package/runtime/assets/daily-analysis-BVEvATPa.js +0 -1
  311. package/runtime/assets/day-meter-DmbSq9YK.js +0 -1
  312. package/runtime/assets/defi-revenue-DPazGCl4.js +0 -1
  313. package/runtime/assets/dex-hot-pools-BeuuV2Cj.js +0 -1
  314. package/runtime/assets/dex-pool-bubbles-BLUbqZ4v.js +0 -1
  315. package/runtime/assets/dex-pool-liquidity-scatter-Civ63yej.js +0 -1
  316. package/runtime/assets/dex-pool-treemap-ecoWHB8O.js +0 -1
  317. package/runtime/assets/dex-volume-bubbles-CX9SfXmZ.js +0 -1
  318. package/runtime/assets/dex-volume-chart-Bgdepem0.js +0 -1
  319. package/runtime/assets/dex-volume-share-area-uDfe8wQZ.js +0 -1
  320. package/runtime/assets/dex-volume-treemap-BlrxYmk-.js +0 -1
  321. package/runtime/assets/dice-BOUHMLs6.js +0 -1
  322. package/runtime/assets/dino-game-BBIAIplk.js +0 -1
  323. package/runtime/assets/divider-B-nMbdhH.js +0 -1
  324. package/runtime/assets/dominance-bars-BjKMZR8V.js +0 -1
  325. package/runtime/assets/dominance-gauge-DVITO-Eg.js +0 -1
  326. package/runtime/assets/drawdy-gpdcuxey.js +0 -1
  327. package/runtime/assets/dxy-DfHaYZsj.js +0 -1
  328. package/runtime/assets/dxy-chart-CidtFThk.js +0 -1
  329. package/runtime/assets/editor-C9dj6xX0.css +0 -1
  330. package/runtime/assets/editor-yifYG0tI.js +0 -68
  331. package/runtime/assets/etf-flow-bars-NYq3d_-U.js +0 -1
  332. package/runtime/assets/etf-flow-calendar-BI18BrWM.js +0 -1
  333. package/runtime/assets/etf-flows-chart-BzKKqHh4.js +0 -1
  334. package/runtime/assets/etf-flows-cufmZrd_.js +0 -1
  335. package/runtime/assets/etf-issuer-bars-Dl9H_CZC.js +0 -1
  336. package/runtime/assets/etf-issuer-treemap-IhYjIP-y.js +0 -1
  337. package/runtime/assets/eth-issuance-impact-BLHuDvGQ.js +0 -1
  338. package/runtime/assets/eth-staking-CzidwFMK.js +0 -1
  339. package/runtime/assets/eth-supply-C7KDK-97.js +0 -1
  340. package/runtime/assets/fear-greed-DTLHRhif.js +0 -1
  341. package/runtime/assets/fear-greed-chart-N1vM_QJ7.js +0 -1
  342. package/runtime/assets/feed-row-mVg1d5Zj.js +0 -1
  343. package/runtime/assets/filings-feed-Dpz6nWMU.js +0 -1
  344. package/runtime/assets/filings-mix-7ykY8NsE.js +0 -1
  345. package/runtime/assets/financial-stress-BcnDhPO4.js +0 -1
  346. package/runtime/assets/flappy-bird-Vp7j7ceN.js +0 -1
  347. package/runtime/assets/format-DxkEZcwQ.js +0 -1
  348. package/runtime/assets/fundamentals-BIesVoJt.js +0 -1
  349. package/runtime/assets/funding-bars-BNVCUVqC.js +0 -1
  350. package/runtime/assets/funding-carry-area-BqCrQOi5.js +0 -1
  351. package/runtime/assets/funding-comparison-BynnnDDf.js +0 -1
  352. package/runtime/assets/funding-crowding-scatter-BTzQUtFn.js +0 -1
  353. package/runtime/assets/funding-heatmap-DUOcDAeX.js +0 -1
  354. package/runtime/assets/funding-leaderboard-bars-CpYvO_Cs.js +0 -1
  355. package/runtime/assets/funding-rate-chart-CANXPS3a.js +0 -1
  356. package/runtime/assets/funding-spread-bars-BgA-vSh-.js +0 -1
  357. package/runtime/assets/funding-venue-heatmap-jKiQGgLb.js +0 -1
  358. package/runtime/assets/fx-board-CTnlbWGJ.js +0 -1
  359. package/runtime/assets/fx-cross-heatmap-CDORG9Cx.js +0 -1
  360. package/runtime/assets/fx-movers-bars-WKvSm3Ry.js +0 -1
  361. package/runtime/assets/fx-trend-chart-uITTwyv8.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-Cidi7R-_.js +0 -1
  366. package/runtime/assets/hero-number-p8eaQmkA.js +0 -1
  367. package/runtime/assets/holiday-calendar-ErapPWhY.js +0 -1
  368. package/runtime/assets/image-BQQ0gSaW.js +0 -1
  369. package/runtime/assets/image-gallery-CNa-8BAA.js +0 -1
  370. package/runtime/assets/index-BHlJHScr.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-B54HwpAO.js +0 -1
  378. package/runtime/assets/journal-log-0CruSC_H.js +0 -1
  379. package/runtime/assets/journal-open-DIwxMMCH.js +0 -1
  380. package/runtime/assets/journal-results-BM_i_JJ3.js +0 -1
  381. package/runtime/assets/journal-score-He6DdYtU.js +0 -1
  382. package/runtime/assets/journal-store-DVDSxNMj.js +0 -1
  383. package/runtime/assets/journal-ui-CP9YblNJ.js +0 -1
  384. package/runtime/assets/labor-force-flow-8HLQsbKV.js +0 -1
  385. package/runtime/assets/labor-market-If23zBQK.js +0 -1
  386. package/runtime/assets/lightning-stats-DhrfBtX6.js +0 -1
  387. package/runtime/assets/link-grid-CsnxpE4z.js +0 -1
  388. package/runtime/assets/liquidity-basis-bars-CaU5YtBA.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-BBN7qsdV.js +0 -1
  392. package/runtime/assets/macro-calendar-cKBRneX9.js +0 -1
  393. package/runtime/assets/market-bubbles-BKNkvOTg.js +0 -1
  394. package/runtime/assets/market-cap-treemap-BSBU8mjq.js +0 -1
  395. package/runtime/assets/market-data-CvmpLFSo.js +0 -1
  396. package/runtime/assets/market-hours-B10lWec_.js +0 -1
  397. package/runtime/assets/market-scatter-CVUa4ZQ_.js +0 -1
  398. package/runtime/assets/marquee-BS_quB4S.js +0 -28
  399. package/runtime/assets/mayer-multiple-iiKonfXX.js +0 -1
  400. package/runtime/assets/mempool-fee-curve-CQ4nzab8.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-DROnvkZS.js +0 -1
  404. package/runtime/assets/mining-pools-share-BhHh0hUJ.js +0 -1
  405. package/runtime/assets/misery-index-DpG7yLgX.js +0 -1
  406. package/runtime/assets/mover-row-Bz-YpFL3.js +0 -1
  407. package/runtime/assets/movers-bars-CEFjsHnv.js +0 -1
  408. package/runtime/assets/movers-bubbles-C-SriZvR.js +0 -1
  409. package/runtime/assets/mvrv-Cg0t6U5X.js +0 -1
  410. package/runtime/assets/mvrv-zscore-chart-qyOkheJb.js +0 -1
  411. package/runtime/assets/national-debt-BRX09_U_.js +0 -1
  412. package/runtime/assets/news-feed-DQHSPzk5.js +0 -1
  413. package/runtime/assets/nft-activity-bars-BmNs4RMC.js +0 -1
  414. package/runtime/assets/nft-bubbles-0f9wAld0.js +0 -1
  415. package/runtime/assets/nft-collections-Czp0t7ZU.js +0 -1
  416. package/runtime/assets/nft-scatter-BHULn6_-.js +0 -1
  417. package/runtime/assets/nft-treemap-D2Kj3AuL.js +0 -1
  418. package/runtime/assets/note-BdVtsqXo.js +0 -3
  419. package/runtime/assets/nupl-BrK2rcgi.js +0 -1
  420. package/runtime/assets/nupl-cycle-chart-BlXOLj4A.js +0 -1
  421. package/runtime/assets/nyfed-fed-funds-band-gauge-DnzVhh9I.js +0 -1
  422. package/runtime/assets/nyfed-reference-rate-bars-CxLwUFUY.js +0 -1
  423. package/runtime/assets/nyfed-sofr-term-averages-bars-DxzLVO9o.js +0 -1
  424. package/runtime/assets/ofr-stress-category-area-TXpXiMP-.js +0 -1
  425. package/runtime/assets/ohlcv-volume-bars-BQZiJJ3u.js +0 -1
  426. package/runtime/assets/oi-treemap-BEusAMZU.js +0 -1
  427. package/runtime/assets/onchain-oscillator-overlay-BPa_jULR.js +0 -1
  428. package/runtime/assets/open-interest-BqO1-ZYo.js +0 -1
  429. package/runtime/assets/options-flow-skew-Cy0SUhs0.js +0 -1
  430. package/runtime/assets/options-iv-RsCKjmmC.js +0 -1
  431. package/runtime/assets/options-max-pain-B2pA7KJP.js +0 -1
  432. package/runtime/assets/options-max-pain-multi-BLfX8Qe6.js +0 -1
  433. package/runtime/assets/options-oi-ladder-heatmap-Do8eYI3h.js +0 -1
  434. package/runtime/assets/options-oi-skew-D869gcp7.js +0 -1
  435. package/runtime/assets/options-oi-strike-CKWXk22Q.js +0 -1
  436. package/runtime/assets/options-put-call-DcSwyIIX.js +0 -1
  437. package/runtime/assets/options-vol-smile-CqP0-CSw.js +0 -1
  438. package/runtime/assets/options-vol-spread-DMXdphxM.js +0 -1
  439. package/runtime/assets/payrolls-bars-15U_DxmS.js +0 -1
  440. package/runtime/assets/pi-cycle-tqHUEYSe.js +0 -1
  441. package/runtime/assets/pie-chart-BIxKuHm-.js +0 -1
  442. package/runtime/assets/pomodoro-DSswMPuv.js +0 -1
  443. package/runtime/assets/portfolio-allocation-DHN6r6fl.js +0 -1
  444. package/runtime/assets/portfolio-common-e3o9U7qd.js +0 -1
  445. package/runtime/assets/portfolio-holdings-Bf6vOm0e.js +0 -1
  446. package/runtime/assets/portfolio-movers-DmaGwFtS.js +0 -1
  447. package/runtime/assets/portfolio-value-DLQHtwCl.js +0 -1
  448. package/runtime/assets/portfolio-value-bars-B8XP7r22.js +0 -1
  449. package/runtime/assets/prediction-market-bars-Du1RxZc_.js +0 -1
  450. package/runtime/assets/prediction-market-scatter-bdlr6r_V.js +0 -1
  451. package/runtime/assets/prediction-markets-DNDg43g9.js +0 -1
  452. package/runtime/assets/prediction-markets-bubble-ccP01yj3.js +0 -1
  453. package/runtime/assets/price-chart-Cw8OXmKH.js +0 -1
  454. package/runtime/assets/price-compare-txGWDCHD.js +0 -1
  455. package/runtime/assets/price-liveline-F7uJKuTS.js +0 -1
  456. package/runtime/assets/price-ticker-DQFyiHmW.js +0 -1
  457. package/runtime/assets/protocol-fees-bubbles-oV66t8AJ.js +0 -1
  458. package/runtime/assets/protocol-fees-treemap-CsZhFjxB.js +0 -1
  459. package/runtime/assets/protocol-fees-vs-tvl-scatter-CtLKoDeh.js +0 -1
  460. package/runtime/assets/protocol-tvl-bubbles-CuULi2KY.js +0 -1
  461. package/runtime/assets/protocol-tvl-by-category-BV2yIdZ_.js +0 -1
  462. package/runtime/assets/protocol-tvl-chart-BRPlR_kj.js +0 -1
  463. package/runtime/assets/protocol-tvl-share-area-BeWSgocA.js +0 -1
  464. package/runtime/assets/protocol-tvl-treemap-BYECslhG.js +0 -1
  465. package/runtime/assets/puell-multiple-akyTNZyp.js +0 -1
  466. package/runtime/assets/put-call-gauge-CwrHYfdq.js +0 -1
  467. package/runtime/assets/quote-6JmbHxfg.js +0 -1
  468. package/runtime/assets/radial-gauge-0BzRQ6fO.js +0 -1
  469. package/runtime/assets/rates-board-CiY6mWMz.js +0 -1
  470. package/runtime/assets/react-qoZPGuNy.js +0 -49
  471. package/runtime/assets/real-wages-BTBOxvjP.js +0 -1
  472. package/runtime/assets/realized-price-CbjZ3Sqj.js +0 -1
  473. package/runtime/assets/reserve-risk-UlEv8oS1.js +0 -1
  474. package/runtime/assets/returns-projector-qPZeZ-n9.js +0 -1
  475. package/runtime/assets/risk-reward-DWcu9j4_.js +0 -1
  476. package/runtime/assets/rsi-momentum-BuasFcVH.js +0 -1
  477. package/runtime/assets/rules-card-DkjHPbht.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-JKmedArM.js +0 -1
  481. package/runtime/assets/sector-bubbles-DLXckuua.js +0 -1
  482. package/runtime/assets/sector-performance-C_2-xbIq.js +0 -1
  483. package/runtime/assets/sector-treemap-DquBCyc3.js +0 -1
  484. package/runtime/assets/sentiment-gauge-CuNvuk1q.js +0 -1
  485. package/runtime/assets/session-progress-BDhJHQEn.js +0 -1
  486. package/runtime/assets/short-volume-Deb7fra_.js +0 -1
  487. package/runtime/assets/short-volume-bars-DRjpg7RS.js +0 -1
  488. package/runtime/assets/snake-B9EEDroM.js +0 -1
  489. package/runtime/assets/sopr-DM_gpDem.js +0 -1
  490. package/runtime/assets/spotify-embed-Dxt1RnUX.js +0 -1
  491. package/runtime/assets/stablecoin-chains-LzYMilQE.js +0 -1
  492. package/runtime/assets/stablecoin-supply-69kqOBoU.js +0 -1
  493. package/runtime/assets/stopwatch-ClPrrveo.js +0 -1
  494. package/runtime/assets/top-movers-BRiiYOPQ.js +0 -1
  495. package/runtime/assets/treasury-auction-demand-scatter-yYNPz1VC.js +0 -1
  496. package/runtime/assets/treasury-auction-size-bars-CGD6MeAz.js +0 -1
  497. package/runtime/assets/treasury-auctions-Z_4MtXmL.js +0 -1
  498. package/runtime/assets/treasury-avg-rate-bars-FXGz1a7e.js +0 -1
  499. package/runtime/assets/treasury-debt-composition-area-5yRh0K6a.js +0 -1
  500. package/runtime/assets/treemap-leaf-QG-L-SIG.js +0 -1
  501. package/runtime/assets/trending-bars-z_cjmEXN.js +0 -1
  502. package/runtime/assets/trending-bubbles-nwoxKQEW.js +0 -1
  503. package/runtime/assets/trending-coins-9vrbEbBm.js +0 -1
  504. package/runtime/assets/tvl-bars-BkJcttcu.js +0 -1
  505. package/runtime/assets/tvl-bubbles-D4tahOC6.js +0 -1
  506. package/runtime/assets/tvl-treemap-B7kWI7o0.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-Dsc13Zja.js +0 -1
  511. package/runtime/assets/volume-movers-scatter-BA8Wmoil.js +0 -1
  512. package/runtime/assets/volume-profile-DcSNvDqP.js +0 -1
  513. package/runtime/assets/volume-share-donut-3MenMO-V.js +0 -1
  514. package/runtime/assets/yield-composition-scatter-rfxC16n2.js +0 -1
  515. package/runtime/assets/yield-curve-DXsfXy4P.js +0 -1
  516. package/runtime/assets/yield-momentum-bars-B9nKuItO.js +0 -1
  517. package/runtime/assets/yield-risk-pie-DUxkXYIQ.js +0 -1
  518. package/runtime/assets/yield-scanner-sCBXpQTV.js +0 -1
  519. package/runtime/assets/yield-scatter-BZHOhFcm.js +0 -1
package/dist/index.js CHANGED
@@ -78,6 +78,34 @@ var FrameStyleSchema = z2.object({
78
78
  }).describe(
79
79
  "Per-frame cosmetic overrides \u2014 accent, surface tint, glass, corners, border, padding, shadow \u2014 for THIS card only. Every field optional; omit to inherit the dashboard `theme`/`appearance`."
80
80
  );
81
+ var CURRENCY_CODES = [
82
+ "USD",
83
+ "THB",
84
+ "EUR",
85
+ "GBP",
86
+ "JPY",
87
+ "CNY",
88
+ "KRW",
89
+ "SGD",
90
+ "AUD",
91
+ "CAD",
92
+ "CHF",
93
+ "INR",
94
+ "IDR",
95
+ "MYR",
96
+ "PHP",
97
+ "HKD",
98
+ "BRL",
99
+ "MXN",
100
+ "ZAR"
101
+ ];
102
+ var CurrencySchema = z2.object({
103
+ code: z2.enum(CURRENCY_CODES).default("USD").describe(
104
+ 'Currency every money figure on the dashboard is displayed in, converted from USD at the live ECB reference rate \u2014 e.g. "THB" shows a Thai-baht board. Non-money figures (percentages, counts, rates) are unaffected, and US-macro series (Treasury yields, CPI, the national debt) stay in USD because converting them would be meaningless.'
105
+ )
106
+ }).describe(
107
+ "Dashboard-wide display currency. Frames may override it per card via their own `currency` field."
108
+ );
81
109
  var FrameInstanceSchema = z2.object({
82
110
  id: z2.string().describe("Unique instance id within the dashboard"),
83
111
  frame: z2.string().describe("Name of a registered frame"),
@@ -87,6 +115,9 @@ var FrameInstanceSchema = z2.object({
87
115
  title: z2.string().optional().describe(
88
116
  'Optional custom card title. Omit it to use the frame\'s own polished default label (its catalogue `label`, e.g. "OI by Strike") \u2014 that is the norm. Only set this for a genuinely instance-specific label the default can\'t know, e.g. the ticker on a price-chart ("TSLA") or which outlet a news-feed shows. Never abbreviate. Ignored by chrome-less frames like heading.'
89
117
  ),
118
+ currency: z2.enum(CURRENCY_CODES).optional().describe(
119
+ 'Display currency for THIS card only, overriding the dashboard-wide `currency` (e.g. keep one card in "USD" on a baht board). Omit to inherit. Purely presentational \u2014 it converts USD figures for display. Note it is NOT the same as a `config.currency` some frames have (the metals LBMA-fix frames use that to pick which published fix series to READ); this field never changes which data is fetched.'
120
+ ),
90
121
  position: GridPositionSchema,
91
122
  layouts: z2.record(z2.string(), GridPositionSchema).optional().describe(
92
123
  'Per-mode layout overrides keyed by grid.mode (e.g. "flow-horizontal"). `position` is the canonical flow-vertical layout; this holds the other modes\' placements so each layout mode keeps its own independent arrangement. Editor-managed \u2014 agents only need to set `position`.'
@@ -267,6 +298,7 @@ var DashboardSpecSchema = z2.preprocess(
267
298
  downColor: "#ff6b81",
268
299
  surface: "dark"
269
300
  }),
301
+ currency: CurrencySchema.default({ code: "USD" }),
270
302
  typography: TypographySchema.default({
271
303
  fontFamily: "sans",
272
304
  numericStyle: "proportional",
@@ -484,6 +516,9 @@ function validateCustomUrl(url) {
484
516
 
485
517
  // ../frames/src/schemas.ts
486
518
  var widgetIcon = (name) => `/widget-icons/${name}.png`;
519
+ var venueField = () => z3.enum(["hyperliquid", "bitkub"]).optional().describe(
520
+ `Which exchange to source this card from \u2014 "hyperliquid" (default: crypto + HIP-3 stock/commodity perps, USD) or "bitkub" (Thailand's largest exchange, THB-quoted, the venue where KUB trades). Omit for the default. Use venue-native symbols: Bitkub lists bare tickers like "KUB"/"BTC" and has no HIP-3 stock perps.`
521
+ );
487
522
  var SOURCES = {
488
523
  hyperliquid: { name: "Hyperliquid", url: "https://hyperliquid.xyz" },
489
524
  defillama: { name: "DeFiLlama", url: "https://defillama.com" },
@@ -520,7 +555,17 @@ var SOURCES = {
520
555
  name: "GeckoTerminal",
521
556
  url: "https://www.geckoterminal.com"
522
557
  },
523
- blockchair: { name: "Blockchair", url: "https://blockchair.com" }
558
+ blockchair: { name: "Blockchair", url: "https://blockchair.com" },
559
+ bitkub: { name: "Bitkub", url: "https://www.bitkub.com" },
560
+ goldApi: { name: "gold-api.com", url: "https://gold-api.com" },
561
+ lbma: {
562
+ name: "LBMA",
563
+ url: "https://www.lbma.org.uk/prices-and-data/precious-metal-prices"
564
+ },
565
+ cftc: {
566
+ name: "CFTC",
567
+ url: "https://www.cftc.gov/MarketReports/CommitmentsofTraders/index.htm"
568
+ }
524
569
  };
525
570
  var clockMeta = defineFrameMeta({
526
571
  name: "clock",
@@ -618,14 +663,17 @@ var priceChartMeta = defineFrameMeta({
618
663
  layout: { w: 6, h: 3, minW: 3, minH: 2 },
619
664
  description: "Live animated price chart (candlestick or line) for one symbol \u2014 canvas-rendered at 60fps via liveline, streaming live off the Hyperliquid WebSocket. Works for any HIP-3 perp \u2014 stocks (xyz:TSLA), indices (xyz:SP500), commodities (xyz:GOLD) \u2014 and crypto (BTC). The centerpiece frame.",
620
665
  capabilities: ["ohlcv", "quote-stream"],
621
- source: SOURCES.hyperliquid,
666
+ // Either venue can back this card (see `venue`), so both are credited — the
667
+ // badge is static meta and can't know which one a given instance pinned.
668
+ source: [SOURCES.hyperliquid, SOURCES.bitkub],
622
669
  schema: z3.object({
623
670
  symbol: z3.string().min(1).describe(
624
671
  'Hyperliquid symbol to chart. HIP-3 cross-asset: stocks "xyz:TSLA"/"xyz:NVDA", indices "xyz:SP500"/"xyz:XYZ100", commodities "xyz:GOLD"/"xyz:CL", FX "xyz:EUR". Crypto: "BTC", "ETH".'
625
672
  ),
626
673
  interval: z3.enum(["1m", "5m", "15m", "1h", "4h", "1d"]).default("1h").describe("Candle interval."),
627
674
  mode: z3.enum(["candle", "line"]).default("candle").describe("Candlestick or smooth line rendering."),
628
- color: z3.string().default("#8b8df9").describe("Accent color (hex). The whole palette derives from it.")
675
+ color: z3.string().default("#8b8df9").describe("Accent color (hex). The whole palette derives from it."),
676
+ venue: venueField()
629
677
  })
630
678
  });
631
679
  var priceLivelineMeta = defineFrameMeta({
@@ -672,9 +720,11 @@ var topMoversMeta = defineFrameMeta({
672
720
  layout: { w: 5, h: 3, minW: 3, minH: 3 },
673
721
  description: "Today's biggest stock and commodity HIP-3 gainers and losers (no bare crypto), side by side with current price and 24h change.",
674
722
  capabilities: ["day-stats"],
675
- source: SOURCES.hyperliquid,
723
+ // Either venue can back this card (see `venue`) — both are credited.
724
+ source: [SOURCES.hyperliquid, SOURCES.bitkub],
676
725
  schema: z3.object({
677
- count: z3.number().int().min(3).max(10).default(5).describe("How many gainers and losers to list (each).")
726
+ count: z3.number().int().min(3).max(10).default(5).describe("How many gainers and losers to list (each)."),
727
+ venue: venueField()
678
728
  })
679
729
  });
680
730
  var tvlTreemapMeta = defineFrameMeta({
@@ -2238,6 +2288,23 @@ var chainActivityMeta = defineFrameMeta({
2238
2288
  source: SOURCES.blockchair,
2239
2289
  schema: z3.object({})
2240
2290
  });
2291
+ var orderBookDepthMeta = defineFrameMeta({
2292
+ name: "order-book-depth",
2293
+ label: "Order Book",
2294
+ category: "markets",
2295
+ iconUrl: widgetIcon("order-book-depth"),
2296
+ layout: { w: 4, h: 4, minW: 3, minH: 3 },
2297
+ description: "Live two-sided order book for one Bitkub market \u2014 bid and ask ladders with cumulative resting size, plus the mid price and spread. Shows where the resting liquidity actually sits, which a price feed alone can't. Prices in Thai baht. Keyless (Bitkub public API).",
2298
+ capabilities: ["order-book"],
2299
+ source: SOURCES.bitkub,
2300
+ schema: z3.object({
2301
+ symbol: z3.string().min(1).default("KUB").describe(
2302
+ 'Base asset ticker as listed on the venue, e.g. "KUB", "BTC", "ETH" \u2014 the quote asset is implied (THB on Bitkub).'
2303
+ ),
2304
+ venue: venueField(),
2305
+ levels: z3.number().int().min(3).max(25).default(10).describe("How many price levels to show per side.")
2306
+ })
2307
+ });
2241
2308
  var nftTreemapMeta = defineFrameMeta({
2242
2309
  name: "nft-treemap",
2243
2310
  label: "NFT Treemap",
@@ -3085,9 +3152,7 @@ var optionsOiLadderHeatmapMeta = defineFrameMeta({
3085
3152
  source: SOURCES.deribit,
3086
3153
  schema: z3.object({
3087
3154
  currency: z3.enum(["BTC", "ETH"]).default("BTC").describe("Which Deribit options book \u2014 BTC or ETH."),
3088
- expiries: z3.number().int().min(3).max(16).default(8).describe(
3089
- "How many upcoming expiries (nearest-first) to show as rows."
3090
- ),
3155
+ expiries: z3.number().int().min(3).max(16).default(8).describe("How many upcoming expiries (nearest-first) to show as rows."),
3091
3156
  buckets: z3.number().int().min(6).max(20).default(10).describe(
3092
3157
  "How many strike bands (columns) to bin open interest into, spanning the shown expiries' strike range."
3093
3158
  )
@@ -3564,7 +3629,457 @@ var predictionMarketsBubbleMeta = defineFrameMeta({
3564
3629
  limit: z3.number().int().min(3).max(20).default(10).describe("How many markets (by volume) to show.")
3565
3630
  })
3566
3631
  });
3632
+ var METAL_SYMBOLS = ["XAU", "XAG", "XPT", "XPD", "HG"];
3633
+ var FIXED_METALS = ["XAU", "XAG", "XPT", "XPD"];
3634
+ var METAL_NAMES = "XAU gold, XAG silver, XPT platinum, XPD palladium, HG copper (copper is quoted per pound; the rest per troy ounce)";
3635
+ var FIXED_METAL_NAMES = "XAU gold, XAG silver, XPT platinum, XPD palladium. Gold and silver go back to 1968, platinum and palladium to 1990.";
3636
+ var yearsField = (dflt, describe) => z3.number().int().min(1).max(58).default(dflt).describe(describe);
3637
+ var metalsBoardMeta = defineFrameMeta({
3638
+ name: "metals-board",
3639
+ label: "Metals Board",
3640
+ category: "metals",
3641
+ iconUrl: widgetIcon("metals-board"),
3642
+ layout: { w: 3, h: 4, minW: 2, minH: 3 },
3643
+ description: "Live spot board for the metals complex \u2014 gold, silver, platinum, palladium and copper \u2014 each with its current price and its move against the most recent London fix. Keyless spot quotes; the metals equivalent of a crypto ticker list.",
3644
+ capabilities: ["metal-spot"],
3645
+ source: SOURCES.goldApi,
3646
+ schema: z3.object({
3647
+ symbols: z3.array(z3.enum(METAL_SYMBOLS)).min(1).max(5).default([...METAL_SYMBOLS]).describe(`Metals to list, in display order. ${METAL_NAMES}.`),
3648
+ showChange: z3.boolean().default(true).describe(
3649
+ "Show each metal's percent move against the latest London fix. The change appears once the fix history has loaded (a few seconds after first paint)."
3650
+ )
3651
+ })
3652
+ });
3653
+ var metalPriceMeta = defineFrameMeta({
3654
+ name: "metal-price",
3655
+ label: "Metal Price",
3656
+ category: "metals",
3657
+ iconUrl: widgetIcon("metal-price"),
3658
+ layout: { w: 3, h: 2, minW: 2, minH: 2 },
3659
+ description: "One metal's live spot price as a headline number, in the weight unit you pick (troy ounce, gram, kilogram or tola). The single-asset hero card for a gold or silver dashboard.",
3660
+ capabilities: ["metal-spot"],
3661
+ source: SOURCES.goldApi,
3662
+ schema: z3.object({
3663
+ symbol: z3.enum(METAL_SYMBOLS).default("XAU").describe(`Metal to price. ${METAL_NAMES}.`),
3664
+ unit: z3.enum(["ounce", "gram", "kilogram", "tola"]).default("ounce").describe(
3665
+ "Weight unit the headline price is quoted in. Troy ounce is the market convention; gram and kilogram suit retail bullion, tola is the South Asian bar unit (11.6638 g). Ignored for copper, which quotes per pound."
3666
+ ),
3667
+ showFix: z3.boolean().default(true).describe(
3668
+ "Show the latest London fix underneath as the reference the change is measured from."
3669
+ )
3670
+ })
3671
+ });
3672
+ var metalValueMeta = defineFrameMeta({
3673
+ name: "metal-value",
3674
+ label: "Metal Holding Value",
3675
+ category: "metals",
3676
+ iconUrl: widgetIcon("metal-value"),
3677
+ layout: { w: 3, h: 2, minW: 2, minH: 2 },
3678
+ description: "What a physical holding is worth right now: a weight you own, multiplied by live spot. Set the weight and unit once and the card revalues itself as the metal moves.",
3679
+ capabilities: ["metal-spot"],
3680
+ source: SOURCES.goldApi,
3681
+ schema: z3.object({
3682
+ symbol: z3.enum(METAL_SYMBOLS).default("XAU").describe(`Metal held. ${METAL_NAMES}.`),
3683
+ weight: z3.number().positive().default(1).describe("How much of the metal is held, in `unit`."),
3684
+ unit: z3.enum(["ounce", "gram", "kilogram", "tola"]).default("ounce").describe(
3685
+ "Unit the weight is expressed in \u2014 troy ounce, gram, kilogram, or tola (11.6638 g)."
3686
+ )
3687
+ })
3688
+ });
3689
+ var metalPriceChartMeta = defineFrameMeta({
3690
+ name: "metal-price-chart",
3691
+ label: "Metal Price Chart",
3692
+ category: "metals",
3693
+ iconUrl: widgetIcon("metal-price-chart"),
3694
+ layout: { w: 6, h: 4, minW: 4, minH: 3 },
3695
+ description: "Daily London fix history for one or more metals \u2014 the benchmark price the physical market settles against, published by the LBMA and running back to 1968 for gold and silver. Set the window in years and switch to a log axis for multi-decade views.",
3696
+ capabilities: ["metal-history"],
3697
+ source: SOURCES.lbma,
3698
+ schema: z3.object({
3699
+ symbols: z3.array(z3.enum(FIXED_METALS)).min(1).max(4).default(["XAU"]).describe(`Metals to chart. ${FIXED_METAL_NAMES}`),
3700
+ currency: z3.enum(["USD", "GBP", "EUR"]).default("USD").describe(
3701
+ "Which published fix SERIES to read \u2014 the LBMA fixes each metal in all three, and they are separate prints, not conversions of one another (EUR only exists from 1999). This is a data choice, not a display one: to change what the card renders money in, set the frame instance's own `currency` (sibling of `config`) or the dashboard's. A USD fix follows that display currency; a GBP/EUR fix is shown as published."
3702
+ ),
3703
+ years: yearsField(5, "How many years of daily fixes to chart."),
3704
+ logScale: z3.boolean().default(false).describe(
3705
+ "Use a logarithmic price axis \u2014 the honest way to read a multi-decade series, where a move from $35 to $350 is the same tenfold step as $350 to $3,500."
3706
+ )
3707
+ })
3708
+ });
3709
+ var metalDrawdownMeta = defineFrameMeta({
3710
+ name: "metal-drawdown",
3711
+ label: "Metal Drawdown",
3712
+ category: "metals",
3713
+ iconUrl: widgetIcon("metal-drawdown"),
3714
+ layout: { w: 5, h: 4, minW: 3, minH: 3 },
3715
+ description: "How far a metal sits below its running all-time high, charted through history. Gold's decades-long post-1980 underwater stretch is the clearest picture of what a real bear market in bullion looks like.",
3716
+ capabilities: ["metal-history"],
3717
+ source: SOURCES.lbma,
3718
+ schema: z3.object({
3719
+ symbol: z3.enum(FIXED_METALS).default("XAU").describe(`Metal to chart. ${FIXED_METAL_NAMES}`),
3720
+ years: yearsField(20, "How many years of drawdown history to chart.")
3721
+ })
3722
+ });
3723
+ var metalAnnualReturnsMeta = defineFrameMeta({
3724
+ name: "metal-annual-returns",
3725
+ label: "Metal Annual Returns",
3726
+ category: "metals",
3727
+ iconUrl: widgetIcon("metal-annual-returns"),
3728
+ layout: { w: 5, h: 4, minW: 4, minH: 3 },
3729
+ description: "Calendar-year percent return per year as diverging bars \u2014 green up years, red down years \u2014 from the LBMA fix history. The at-a-glance record of how often, and how hard, a metal actually delivers.",
3730
+ capabilities: ["metal-history"],
3731
+ source: SOURCES.lbma,
3732
+ schema: z3.object({
3733
+ symbol: z3.enum(FIXED_METALS).default("XAU").describe(`Metal to chart. ${FIXED_METAL_NAMES}`),
3734
+ years: z3.number().int().min(3).max(58).default(15).describe(
3735
+ "How many calendar years of returns to show, most recent last."
3736
+ )
3737
+ })
3738
+ });
3739
+ var metalSeasonalityMeta = defineFrameMeta({
3740
+ name: "metal-seasonality",
3741
+ label: "Metal Seasonality",
3742
+ category: "metals",
3743
+ iconUrl: widgetIcon("metal-seasonality"),
3744
+ layout: { w: 6, h: 4, minW: 4, minH: 3 },
3745
+ description: "Month-by-year heatmap of monthly percent returns, with each month's long-run average underneath \u2014 the standard way to look for seasonal patterns in gold and silver without eyeballing a price chart.",
3746
+ capabilities: ["metal-history"],
3747
+ source: SOURCES.lbma,
3748
+ schema: z3.object({
3749
+ symbol: z3.enum(FIXED_METALS).default("XAU").describe(`Metal to analyse. ${FIXED_METAL_NAMES}`),
3750
+ years: z3.number().int().min(5).max(58).default(20).describe("How many years of monthly returns to include in the grid.")
3751
+ })
3752
+ });
3753
+ var metalVolatilityMeta = defineFrameMeta({
3754
+ name: "metal-volatility",
3755
+ label: "Metal Volatility",
3756
+ category: "metals",
3757
+ iconUrl: widgetIcon("metal-volatility"),
3758
+ layout: { w: 5, h: 4, minW: 4, minH: 3 },
3759
+ description: "Rolling annualised realised volatility from daily fixes \u2014 how violent the metal has actually been, not what options imply. Quiet gold sits near 10%; a crisis takes it past 30%.",
3760
+ capabilities: ["metal-history"],
3761
+ source: SOURCES.lbma,
3762
+ schema: z3.object({
3763
+ symbol: z3.enum(FIXED_METALS).default("XAU").describe(`Metal to analyse. ${FIXED_METAL_NAMES}`),
3764
+ window: z3.number().int().min(20).max(365).default(90).describe(
3765
+ "Rolling window in trading days. 30 is twitchy, 90 is the common standard, 252 is a year."
3766
+ ),
3767
+ years: yearsField(10, "How many years of the volatility series to chart.")
3768
+ })
3769
+ });
3770
+ var goldSilverRatioMeta = defineFrameMeta({
3771
+ name: "gold-silver-ratio",
3772
+ label: "Gold/Silver Ratio",
3773
+ category: "metals",
3774
+ iconUrl: widgetIcon("gold-silver-ratio"),
3775
+ layout: { w: 4, h: 3, minW: 3, minH: 2 },
3776
+ description: "How many ounces of silver one ounce of gold buys \u2014 the oldest relative-value gauge in metals. Shows the live ratio, where it sits in its own historical range, and the trend.",
3777
+ capabilities: ["metal-history"],
3778
+ source: SOURCES.lbma,
3779
+ schema: z3.object({
3780
+ years: yearsField(
3781
+ 20,
3782
+ "How many years of ratio history to chart and rank against."
3783
+ ),
3784
+ showPercentile: z3.boolean().default(true).describe(
3785
+ "Show where today's ratio ranks within the charted window \u2014 100% means silver has never been cheaper against gold over that span."
3786
+ )
3787
+ })
3788
+ });
3789
+ var metalRatioChartMeta = defineFrameMeta({
3790
+ name: "metal-ratio-chart",
3791
+ label: "Metal Ratio Chart",
3792
+ category: "metals",
3793
+ iconUrl: widgetIcon("metal-ratio-chart"),
3794
+ layout: { w: 5, h: 4, minW: 4, minH: 3 },
3795
+ description: "The price of any metal divided by any other, charted over time \u2014 gold/silver, gold/platinum, platinum/palladium. Relative value between two metals, free of the dollar's own trend.",
3796
+ capabilities: ["metal-history"],
3797
+ source: SOURCES.lbma,
3798
+ schema: z3.object({
3799
+ numerator: z3.enum(FIXED_METALS).default("XAU").describe(`Metal on top of the ratio. ${FIXED_METAL_NAMES}`),
3800
+ denominator: z3.enum(FIXED_METALS).default("XAG").describe(
3801
+ "Metal on the bottom of the ratio. Must differ from the numerator."
3802
+ ),
3803
+ years: yearsField(20, "How many years of ratio history to chart.")
3804
+ })
3805
+ });
3806
+ var metalCompareChartMeta = defineFrameMeta({
3807
+ name: "metal-compare-chart",
3808
+ label: "Metal Compare",
3809
+ category: "metals",
3810
+ iconUrl: widgetIcon("metal-compare-chart"),
3811
+ layout: { w: 6, h: 4, minW: 4, minH: 3 },
3812
+ description: "Several metals rebased to 0% at the start of the window so a $4,000 gold and a $58 silver compare on one axis. The relative-performance race across the complex.",
3813
+ capabilities: ["metal-history"],
3814
+ source: SOURCES.lbma,
3815
+ schema: z3.object({
3816
+ symbols: z3.array(z3.enum(FIXED_METALS)).min(2).max(4).default([...FIXED_METALS]).describe(`Metals to race against each other. ${FIXED_METAL_NAMES}`),
3817
+ years: yearsField(10, "How many years the race runs over.")
3818
+ })
3819
+ });
3820
+ var metalPerformanceMeta = defineFrameMeta({
3821
+ name: "metal-performance",
3822
+ label: "Metal Performance",
3823
+ category: "metals",
3824
+ iconUrl: widgetIcon("metal-performance"),
3825
+ layout: { w: 4, h: 4, minW: 3, minH: 3 },
3826
+ description: "One metal's return across standard horizons \u2014 1M, 3M, 6M, YTD, 1Y, 5Y, 10Y, 20Y \u2014 as diverging bars. Switch to annualised to compare long horizons honestly instead of letting a 20-year number dwarf everything.",
3827
+ capabilities: ["metal-history"],
3828
+ source: SOURCES.lbma,
3829
+ schema: z3.object({
3830
+ symbol: z3.enum(FIXED_METALS).default("XAU").describe(`Metal to measure. ${FIXED_METAL_NAMES}`),
3831
+ mode: z3.enum(["cumulative", "annualized"]).default("cumulative").describe(
3832
+ "cumulative = total return over each horizon; annualized = the compound annual rate, which makes long and short horizons comparable."
3833
+ )
3834
+ })
3835
+ });
3836
+ var metalAthMeta = defineFrameMeta({
3837
+ name: "metal-ath",
3838
+ label: "Metal ATH Watch",
3839
+ category: "metals",
3840
+ iconUrl: widgetIcon("metal-ath"),
3841
+ layout: { w: 3, h: 3, minW: 2, minH: 2 },
3842
+ description: "All-time-high watch from the full fix history: the record price and when it was set, how far below it the metal trades now, and how long it has been since the last record.",
3843
+ capabilities: ["metal-history"],
3844
+ source: SOURCES.lbma,
3845
+ schema: z3.object({
3846
+ symbol: z3.enum(FIXED_METALS).default("XAU").describe(`Metal to watch. ${FIXED_METAL_NAMES}`)
3847
+ })
3848
+ });
3849
+ var metalFixTableMeta = defineFrameMeta({
3850
+ name: "metal-fix-table",
3851
+ label: "London Fix Table",
3852
+ category: "metals",
3853
+ iconUrl: widgetIcon("metal-fix-table"),
3854
+ layout: { w: 3, h: 4, minW: 2, minH: 3 },
3855
+ description: "The most recent daily London fixes as a table \u2014 date, fix price and the day-over-day change. The settlement prints themselves, for anyone who prices contracts off the fix rather than off spot.",
3856
+ capabilities: ["metal-history"],
3857
+ source: SOURCES.lbma,
3858
+ schema: z3.object({
3859
+ symbol: z3.enum(FIXED_METALS).default("XAU").describe(`Metal whose fixes to list. ${FIXED_METAL_NAMES}`),
3860
+ currency: z3.enum(["USD", "GBP", "EUR"]).default("USD").describe(
3861
+ "Which published fix SERIES to list \u2014 the LBMA publishes all three as separate prints, not conversions of one another. This is a data choice, not a display one: to change what the card renders money in, set the frame instance's own `currency` (sibling of `config`) or the dashboard's. A USD fix follows that display currency; a GBP/EUR fix is shown as published."
3862
+ ),
3863
+ rows: z3.number().int().min(5).max(40).default(12).describe("How many recent fixes to list, newest first.")
3864
+ })
3865
+ });
3866
+ var metalMilestonesMeta = defineFrameMeta({
3867
+ name: "metal-milestones",
3868
+ label: "Metal Milestones",
3869
+ category: "metals",
3870
+ iconUrl: widgetIcon("metal-milestones"),
3871
+ layout: { w: 3, h: 4, minW: 2, minH: 3 },
3872
+ description: "When the metal first crossed each round-number price \u2014 $100, $500, $1,000, $2,000 \u2014 and how long each leg took. A timeline only decades of fix history can tell, and the most human way to read gold's long climb.",
3873
+ capabilities: ["metal-history"],
3874
+ source: SOURCES.lbma,
3875
+ schema: z3.object({
3876
+ symbol: z3.enum(FIXED_METALS).default("XAU").describe(`Metal whose milestones to list. ${FIXED_METAL_NAMES}`),
3877
+ newestFirst: z3.boolean().default(true).describe(
3878
+ "List the most recent milestone at the top. Turn off to read the climb chronologically from 1968."
3879
+ )
3880
+ })
3881
+ });
3882
+ var metalReturnDistributionMeta = defineFrameMeta({
3883
+ name: "metal-return-distribution",
3884
+ label: "Return Distribution",
3885
+ category: "metals",
3886
+ iconUrl: widgetIcon("metal-return-distribution"),
3887
+ layout: { w: 5, h: 4, minW: 4, minH: 3 },
3888
+ description: "Histogram of the metal's periodic returns over decades, with the mean marked \u2014 how fat the tails really are, rather than the tidy bell curve risk models assume.",
3889
+ capabilities: ["metal-history"],
3890
+ source: SOURCES.lbma,
3891
+ schema: z3.object({
3892
+ symbol: z3.enum(FIXED_METALS).default("XAU").describe(`Metal to analyse. ${FIXED_METAL_NAMES}`),
3893
+ period: z3.enum(["daily", "monthly"]).default("monthly").describe(
3894
+ "Bucket returns by trading day or by calendar month. Monthly is smoother and easier to read; daily exposes the tails."
3895
+ ),
3896
+ years: yearsField(30, "How many years of returns to bucket.")
3897
+ })
3898
+ });
3899
+ var metalsCorrelationMeta = defineFrameMeta({
3900
+ name: "metals-correlation",
3901
+ label: "Metals Correlation",
3902
+ category: "metals",
3903
+ iconUrl: widgetIcon("metals-correlation"),
3904
+ layout: { w: 4, h: 4, minW: 3, minH: 3 },
3905
+ description: "Correlation matrix of daily returns across gold, silver, platinum and palladium over a chosen window \u2014 which metals actually move together, and which only look like they do.",
3906
+ capabilities: ["metal-history"],
3907
+ source: SOURCES.lbma,
3908
+ schema: z3.object({
3909
+ years: yearsField(
3910
+ 3,
3911
+ "Window, in years, the correlations are measured over."
3912
+ )
3913
+ })
3914
+ });
3915
+ var btcInGoldMeta = defineFrameMeta({
3916
+ name: "btc-in-gold",
3917
+ label: "BTC in Gold",
3918
+ category: "metals",
3919
+ iconUrl: widgetIcon("btc-in-gold"),
3920
+ layout: { w: 5, h: 4, minW: 4, minH: 3 },
3921
+ description: "Bitcoin priced in ounces of gold instead of dollars \u2014 how many ounces one BTC buys, charted over time. The clean way to ask whether Bitcoin is beating the oldest hard asset or just the dollar.",
3922
+ capabilities: ["metal-history", "price-history-daily"],
3923
+ source: SOURCES.lbma,
3924
+ schema: z3.object({
3925
+ years: yearsField(
3926
+ 10,
3927
+ "How many years of the BTC-in-ounces ratio to chart."
3928
+ ),
3929
+ logScale: z3.boolean().default(true).describe(
3930
+ "Use a logarithmic axis \u2014 the ratio has spanned four orders of magnitude, so linear hides everything before the last cycle."
3931
+ )
3932
+ })
3933
+ });
3934
+ var metalCotNetMeta = defineFrameMeta({
3935
+ name: "metal-cot-net",
3936
+ label: "COT Net Positioning",
3937
+ category: "metals",
3938
+ iconUrl: widgetIcon("metal-cot-net"),
3939
+ layout: { w: 5, h: 4, minW: 4, minH: 3 },
3940
+ description: "Net speculative positioning from the CFTC's weekly Commitments of Traders \u2014 non-commercial longs minus shorts, against a zero line. Crowded longs have marked local tops in gold for decades.",
3941
+ capabilities: ["metal-positioning"],
3942
+ source: SOURCES.cftc,
3943
+ schema: z3.object({
3944
+ symbol: z3.enum(METAL_SYMBOLS).default("XAU").describe(`Metal futures market to read. ${METAL_NAMES}.`),
3945
+ years: z3.number().int().min(1).max(10).default(5).describe("How many years of weekly reports to chart."),
3946
+ showOpenInterest: z3.boolean().default(false).describe(
3947
+ "Overlay total open interest so a change in net positioning can be read against whether the whole market grew or shrank."
3948
+ )
3949
+ })
3950
+ });
3951
+ var metalCotBreakdownMeta = defineFrameMeta({
3952
+ name: "metal-cot-breakdown",
3953
+ label: "COT Trader Breakdown",
3954
+ category: "metals",
3955
+ iconUrl: widgetIcon("metal-cot-breakdown"),
3956
+ layout: { w: 4, h: 3, minW: 3, minH: 2 },
3957
+ description: "The latest COT week split by trader class \u2014 non-commercial speculators, commercial hedgers and small traders \u2014 as opposing long and short bars, plus each group's net and its week-over-week change.",
3958
+ capabilities: ["metal-positioning"],
3959
+ source: SOURCES.cftc,
3960
+ schema: z3.object({
3961
+ symbol: z3.enum(METAL_SYMBOLS).default("XAU").describe(`Metal futures market to read. ${METAL_NAMES}.`)
3962
+ })
3963
+ });
3964
+ var metalCotGaugeMeta = defineFrameMeta({
3965
+ name: "metal-cot-gauge",
3966
+ label: "COT Positioning Gauge",
3967
+ category: "metals",
3968
+ iconUrl: widgetIcon("metal-cot-gauge"),
3969
+ layout: { w: 3, h: 3, minW: 2, minH: 2 },
3970
+ description: "Where speculative net positioning sits inside its own historical range, as a dial from washed-out short to crowded long \u2014 a contrarian sentiment gauge built from the CFTC's own weekly numbers.",
3971
+ capabilities: ["metal-positioning"],
3972
+ source: SOURCES.cftc,
3973
+ schema: z3.object({
3974
+ symbol: z3.enum(METAL_SYMBOLS).default("XAU").describe(`Metal futures market to read. ${METAL_NAMES}.`),
3975
+ years: z3.number().int().min(1).max(10).default(5).describe("Lookback the percentile is ranked against, in years.")
3976
+ })
3977
+ });
3978
+ var metalOpenInterestMeta = defineFrameMeta({
3979
+ name: "metal-open-interest",
3980
+ label: "Futures Open Interest",
3981
+ category: "metals",
3982
+ iconUrl: widgetIcon("metal-open-interest"),
3983
+ layout: { w: 5, h: 4, minW: 4, minH: 3 },
3984
+ description: "Total open interest in the metal's US futures contract, weekly from the CFTC \u2014 in contracts, in ounces, or in dollar notional at today's spot. How much paper claim sits on top of the physical market.",
3985
+ capabilities: ["metal-positioning", "metal-spot"],
3986
+ source: SOURCES.cftc,
3987
+ schema: z3.object({
3988
+ symbol: z3.enum(METAL_SYMBOLS).default("XAU").describe(`Metal futures market to read. ${METAL_NAMES}.`),
3989
+ years: z3.number().int().min(1).max(10).default(5).describe("How many years of weekly open interest to chart."),
3990
+ unit: z3.enum(["contracts", "ounces", "notional"]).default("contracts").describe(
3991
+ "contracts = as CFTC reports it; ounces = contracts \xD7 contract size; notional = ounces \xD7 live spot (needs a spot quote)."
3992
+ )
3993
+ })
3994
+ });
3995
+ var metalPositioningVsPriceMeta = defineFrameMeta({
3996
+ name: "metal-positioning-vs-price",
3997
+ label: "Positioning vs Price",
3998
+ category: "metals",
3999
+ iconUrl: widgetIcon("metal-positioning-vs-price"),
4000
+ layout: { w: 6, h: 4, minW: 4, minH: 3 },
4001
+ description: "Net speculative positioning and the metal's price on one rebased chart, so you can see whether a rally is being led by the futures crowd or happening in spite of them \u2014 and where the two have diverged.",
4002
+ capabilities: ["metal-positioning", "metal-history"],
4003
+ source: SOURCES.cftc,
4004
+ schema: z3.object({
4005
+ symbol: z3.enum(FIXED_METALS).default("XAU").describe(
4006
+ `Metal to compare. ${FIXED_METAL_NAMES} (the price leg needs an LBMA fix, so copper isn't available here).`
4007
+ ),
4008
+ years: z3.number().int().min(1).max(10).default(5).describe("How many years both series cover.")
4009
+ })
4010
+ });
4011
+ var usGoldReserveMeta = defineFrameMeta({
4012
+ name: "us-gold-reserve",
4013
+ label: "US Gold Reserve",
4014
+ category: "metals",
4015
+ iconUrl: widgetIcon("us-gold-reserve"),
4016
+ layout: { w: 4, h: 4, minW: 3, minH: 3 },
4017
+ description: "The U.S. Treasury's official gold holding from its own monthly status report: total fine ounces, the statutory book value that still carries it at $42.22/oz, and what the same metal is worth at today's spot. The gap between the two is the headline.",
4018
+ capabilities: ["gold-reserve", "metal-spot"],
4019
+ source: SOURCES.treasury,
4020
+ schema: z3.object({
4021
+ showMarketValue: z3.boolean().default(true).describe(
4022
+ "Value the reserve at live spot alongside the statutory book value, and show the difference."
4023
+ )
4024
+ })
4025
+ });
4026
+ var usGoldVaultsMeta = defineFrameMeta({
4027
+ name: "us-gold-vaults",
4028
+ label: "US Gold Vaults",
4029
+ category: "metals",
4030
+ iconUrl: widgetIcon("us-gold-vaults"),
4031
+ layout: { w: 4, h: 4, minW: 3, minH: 3 },
4032
+ description: "Where the U.S. official gold physically sits \u2014 Fort Knox, West Point, Denver, the New York Fed vault and Mint working stock \u2014 sized by fine ounces, straight from the Treasury's monthly report.",
4033
+ capabilities: ["gold-reserve"],
4034
+ source: SOURCES.treasury,
4035
+ schema: z3.object({
4036
+ mode: z3.enum(["treemap", "bars"]).default("treemap").describe(
4037
+ "treemap = area per vault, good for the size contrast; bars = ranked horizontal bars, easier to read exact ounces."
4038
+ )
4039
+ })
4040
+ });
4041
+ var tokenizedGoldMeta = defineFrameMeta({
4042
+ name: "tokenized-gold",
4043
+ label: "Tokenized Gold",
4044
+ category: "metals",
4045
+ iconUrl: widgetIcon("tokenized-gold"),
4046
+ layout: { w: 4, h: 4, minW: 3, minH: 3 },
4047
+ description: "Gold-backed tokens (PAXG, XAUT) with their premium or discount to physical spot, market cap and the ounces they claim to vault \u2014 the crypto wrapper on bullion, priced against the real thing.",
4048
+ capabilities: ["tokenized-gold"],
4049
+ source: SOURCES.coingecko,
4050
+ schema: z3.object({
4051
+ showPremium: z3.boolean().default(true).describe(
4052
+ "Show each token's premium (+) or discount (\u2212) against live spot gold. A persistent premium is the market pricing convenience over custody."
4053
+ )
4054
+ })
4055
+ });
3567
4056
  var frameMetas = [
4057
+ metalsBoardMeta,
4058
+ metalPriceMeta,
4059
+ metalValueMeta,
4060
+ metalPriceChartMeta,
4061
+ metalDrawdownMeta,
4062
+ metalAnnualReturnsMeta,
4063
+ metalSeasonalityMeta,
4064
+ metalVolatilityMeta,
4065
+ goldSilverRatioMeta,
4066
+ metalRatioChartMeta,
4067
+ metalCompareChartMeta,
4068
+ metalPerformanceMeta,
4069
+ metalAthMeta,
4070
+ metalFixTableMeta,
4071
+ metalMilestonesMeta,
4072
+ metalReturnDistributionMeta,
4073
+ metalsCorrelationMeta,
4074
+ btcInGoldMeta,
4075
+ metalCotNetMeta,
4076
+ metalCotBreakdownMeta,
4077
+ metalCotGaugeMeta,
4078
+ metalOpenInterestMeta,
4079
+ metalPositioningVsPriceMeta,
4080
+ usGoldReserveMeta,
4081
+ usGoldVaultsMeta,
4082
+ tokenizedGoldMeta,
3568
4083
  customDataMeta,
3569
4084
  newsFeedMeta,
3570
4085
  portfolioValueMeta,
@@ -3657,6 +4172,7 @@ var frameMetas = [
3657
4172
  nftCollectionsMeta,
3658
4173
  dexHotPoolsMeta,
3659
4174
  chainActivityMeta,
4175
+ orderBookDepthMeta,
3660
4176
  nftTreemapMeta,
3661
4177
  dexPoolTreemapMeta,
3662
4178
  sectorBarsMeta,
@@ -3886,6 +4402,7 @@ function skeleton(title, author) {
3886
4402
  upColor: "#3fd08f",
3887
4403
  downColor: "#ff6b81"
3888
4404
  },
4405
+ currency: { code: "USD" },
3889
4406
  typography: {
3890
4407
  fontFamily: "sans",
3891
4408
  numericStyle: "proportional",