zframes 0.8.1 → 0.8.2

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 (211) hide show
  1. package/dist/index.js +1 -3
  2. package/package.json +7 -7
  3. package/runtime/assets/{bitcoin-dominance-BqoH90r5.js → bitcoin-dominance-DQ6fUOfp.js} +1 -1
  4. package/runtime/assets/{breakeven-1Kr-v9pE.js → breakeven-BiMfl0NU.js} +1 -1
  5. package/runtime/assets/{breathing-NOTeAM6N.js → breathing-BQamMTOy.js} +1 -1
  6. package/runtime/assets/{btc-block-size-bars-BgwX4eu_.js → btc-block-size-bars-DbwVb3YX.js} +1 -1
  7. package/runtime/assets/{btc-blocks-D6TscPNp.js → btc-blocks-UZJqCEtB.js} +1 -1
  8. package/runtime/assets/{btc-difficulty-BhSve3vk.js → btc-difficulty-BtNgUCRS.js} +1 -1
  9. package/runtime/assets/{btc-difficulty-chart-Yqxof0b6.js → btc-difficulty-chart-BNT2fdwu.js} +1 -1
  10. package/runtime/assets/{btc-fees-C-Za_OxK.js → btc-fees-CJhybpGO.js} +1 -1
  11. package/runtime/assets/{btc-hashrate-5xnTYpft.js → btc-hashrate-CtKkSA37.js} +1 -1
  12. package/runtime/assets/{btc-mempool-0WFrtuQR.js → btc-mempool-Dvlm6Uqk.js} +1 -1
  13. package/runtime/assets/{calculator-CcLe2vqJ.js → calculator-vMXfcXI8.js} +1 -1
  14. package/runtime/assets/{capital-structure-bars-SEyFIReK.js → capital-structure-bars-B8-6gPY8.js} +1 -1
  15. package/runtime/assets/{chain-activity-CCO3t0hA.js → chain-activity-Dj-2gNmT.js} +1 -1
  16. package/runtime/assets/{chain-activity-bars-DHYCDKWT.js → chain-activity-bars-BKvgXG2Z.js} +1 -1
  17. package/runtime/assets/{chain-activity-scatter-DeusbLku.js → chain-activity-scatter-BQHleuZR.js} +1 -1
  18. package/runtime/assets/{chain-price-movers-SeTwhqsM.js → chain-price-movers-Brvxvf8U.js} +1 -1
  19. package/runtime/assets/{checklist-orMUS_qt.js → checklist-CNXEkmSt.js} +1 -1
  20. package/runtime/assets/{clock-9PqJvMgi.js → clock-Cygi_7Rq.js} +1 -1
  21. package/runtime/assets/{coin-momentum-heatmap-DvfWWzSD.js → coin-momentum-heatmap-1twNsb0f.js} +1 -1
  22. package/runtime/assets/{coin-momentum-scatter-Cf4Y29lp.js → coin-momentum-scatter-DPsgGLFi.js} +1 -1
  23. package/runtime/assets/{coin-movers-D3cmI-tT.js → coin-movers-CVT1PPyM.js} +1 -1
  24. package/runtime/assets/{countdown-tMz3FsXT.js → countdown-DSGwZS9O.js} +1 -1
  25. package/runtime/assets/{custom-data-DPPNQ2QQ.js → custom-data-eTpLXe-p.js} +1 -1
  26. package/runtime/assets/{cycle-signals-DJYUIjas.js → cycle-signals-DjvuKoAs.js} +1 -1
  27. package/runtime/assets/{cycle-valuation-composite-DO_Pda0n.js → cycle-valuation-composite-D2lAreTy.js} +1 -1
  28. package/runtime/assets/{daily-analysis-BVEvATPa.js → daily-analysis-00KQOxaw.js} +1 -1
  29. package/runtime/assets/{day-meter-DmbSq9YK.js → day-meter-VL3CbmZ4.js} +1 -1
  30. package/runtime/assets/{defi-revenue-DPazGCl4.js → defi-revenue-DWs3X1sr.js} +1 -1
  31. package/runtime/assets/{dex-hot-pools-BeuuV2Cj.js → dex-hot-pools-Btjw9uOK.js} +1 -1
  32. package/runtime/assets/{dex-pool-bubbles-BLUbqZ4v.js → dex-pool-bubbles-DOWGPgDC.js} +1 -1
  33. package/runtime/assets/{dex-pool-liquidity-scatter-Civ63yej.js → dex-pool-liquidity-scatter-DBqKeUjl.js} +1 -1
  34. package/runtime/assets/{dex-pool-treemap-ecoWHB8O.js → dex-pool-treemap-Dev3WsvG.js} +1 -1
  35. package/runtime/assets/{dex-volume-bubbles-CX9SfXmZ.js → dex-volume-bubbles-C9INGAs-.js} +1 -1
  36. package/runtime/assets/{dex-volume-chart-Bgdepem0.js → dex-volume-chart-CdhI9ySp.js} +1 -1
  37. package/runtime/assets/{dex-volume-share-area-uDfe8wQZ.js → dex-volume-share-area-DblxtqOC.js} +1 -1
  38. package/runtime/assets/{dex-volume-treemap-BlrxYmk-.js → dex-volume-treemap-LweUYNfn.js} +1 -1
  39. package/runtime/assets/{dice-BOUHMLs6.js → dice-CRJFRdlS.js} +1 -1
  40. package/runtime/assets/{dino-game-BBIAIplk.js → dino-game-DIj8Xqmq.js} +1 -1
  41. package/runtime/assets/{divider-B-nMbdhH.js → divider-C0PhyAZz.js} +1 -1
  42. package/runtime/assets/{dominance-bars-BjKMZR8V.js → dominance-bars-CNztOXI9.js} +1 -1
  43. package/runtime/assets/{dominance-gauge-DVITO-Eg.js → dominance-gauge-BSlVu-kG.js} +1 -1
  44. package/runtime/assets/{drawdy-gpdcuxey.js → drawdy-UVwx54Tz.js} +1 -1
  45. package/runtime/assets/{dxy-DfHaYZsj.js → dxy-DDnItBY-.js} +1 -1
  46. package/runtime/assets/{dxy-chart-CidtFThk.js → dxy-chart-CbyyyRdn.js} +1 -1
  47. package/runtime/assets/{editor-yifYG0tI.js → editor-CpgNu0wu.js} +1 -1
  48. package/runtime/assets/{etf-flow-bars-NYq3d_-U.js → etf-flow-bars-Dknb70p4.js} +1 -1
  49. package/runtime/assets/{etf-flow-calendar-BI18BrWM.js → etf-flow-calendar-DXTg-p2v.js} +1 -1
  50. package/runtime/assets/{etf-flows-cufmZrd_.js → etf-flows-D7WwvrYS.js} +1 -1
  51. package/runtime/assets/{etf-flows-chart-BzKKqHh4.js → etf-flows-chart-D_Ts_7Bc.js} +1 -1
  52. package/runtime/assets/{etf-issuer-bars-Dl9H_CZC.js → etf-issuer-bars-B5q3WXIk.js} +1 -1
  53. package/runtime/assets/{etf-issuer-treemap-IhYjIP-y.js → etf-issuer-treemap-hdTKUL3C.js} +1 -1
  54. package/runtime/assets/{eth-issuance-impact-BLHuDvGQ.js → eth-issuance-impact-CSucvUy4.js} +1 -1
  55. package/runtime/assets/{eth-staking-CzidwFMK.js → eth-staking-Yp_RzOHD.js} +1 -1
  56. package/runtime/assets/{eth-supply-C7KDK-97.js → eth-supply-jf4tRC80.js} +1 -1
  57. package/runtime/assets/{fear-greed-DTLHRhif.js → fear-greed-BrDutlol.js} +1 -1
  58. package/runtime/assets/{fear-greed-chart-N1vM_QJ7.js → fear-greed-chart-BPAfnROs.js} +1 -1
  59. package/runtime/assets/{filings-feed-Dpz6nWMU.js → filings-feed-BrtWoUaf.js} +1 -1
  60. package/runtime/assets/{filings-mix-7ykY8NsE.js → filings-mix-D8Z-fvzY.js} +1 -1
  61. package/runtime/assets/{financial-stress-BcnDhPO4.js → financial-stress-DaxcQDnz.js} +1 -1
  62. package/runtime/assets/{flappy-bird-Vp7j7ceN.js → flappy-bird-M38jNjAd.js} +1 -1
  63. package/runtime/assets/{fundamentals-BIesVoJt.js → fundamentals-TlBRBKFV.js} +1 -1
  64. package/runtime/assets/{funding-bars-BNVCUVqC.js → funding-bars-BPDrsC0K.js} +1 -1
  65. package/runtime/assets/{funding-carry-area-BqCrQOi5.js → funding-carry-area-BZRpyy3L.js} +1 -1
  66. package/runtime/assets/{funding-comparison-BynnnDDf.js → funding-comparison-C1OOzJw-.js} +1 -1
  67. package/runtime/assets/{funding-crowding-scatter-BTzQUtFn.js → funding-crowding-scatter-DDjzoq8v.js} +1 -1
  68. package/runtime/assets/{funding-heatmap-DUOcDAeX.js → funding-heatmap-DqnJJPw0.js} +1 -1
  69. package/runtime/assets/{funding-leaderboard-bars-CpYvO_Cs.js → funding-leaderboard-bars-CrQMBbY7.js} +1 -1
  70. package/runtime/assets/{funding-rate-chart-CANXPS3a.js → funding-rate-chart-dYIjvTBt.js} +1 -1
  71. package/runtime/assets/{funding-spread-bars-BgA-vSh-.js → funding-spread-bars-CRoG-zHf.js} +1 -1
  72. package/runtime/assets/{funding-venue-heatmap-jKiQGgLb.js → funding-venue-heatmap-DA0JsXzA.js} +1 -1
  73. package/runtime/assets/{fx-board-CTnlbWGJ.js → fx-board-C_h1IJJy.js} +1 -1
  74. package/runtime/assets/{fx-cross-heatmap-CDORG9Cx.js → fx-cross-heatmap-CLHkKvsB.js} +1 -1
  75. package/runtime/assets/{fx-movers-bars-WKvSm3Ry.js → fx-movers-bars-_U6XrETl.js} +1 -1
  76. package/runtime/assets/{fx-trend-chart-uITTwyv8.js → fx-trend-chart-Cdi-lmjx.js} +1 -1
  77. package/runtime/assets/{heading-Cidi7R-_.js → heading-BS9IhuAM.js} +1 -1
  78. package/runtime/assets/{hero-number-p8eaQmkA.js → hero-number-R-27T2n_.js} +1 -1
  79. package/runtime/assets/{holiday-calendar-ErapPWhY.js → holiday-calendar-BxcU0Y64.js} +1 -1
  80. package/runtime/assets/{image-BQQ0gSaW.js → image-HcDu9YKF.js} +1 -1
  81. package/runtime/assets/{image-gallery-CNa-8BAA.js → image-gallery-BCXhCjqj.js} +1 -1
  82. package/runtime/assets/{index-BHlJHScr.js → index-BJ1Zyy42.js} +36 -36
  83. package/runtime/assets/{inflation-pulse-B54HwpAO.js → inflation-pulse-BDmh42Nq.js} +1 -1
  84. package/runtime/assets/{journal-log-0CruSC_H.js → journal-log-BKsmm4ZL.js} +1 -1
  85. package/runtime/assets/{journal-open-DIwxMMCH.js → journal-open-CQtXIVzV.js} +1 -1
  86. package/runtime/assets/{journal-results-BM_i_JJ3.js → journal-results-BBhWJDi4.js} +1 -1
  87. package/runtime/assets/{journal-score-He6DdYtU.js → journal-score-DRmD6tOH.js} +1 -1
  88. package/runtime/assets/{journal-ui-CP9YblNJ.js → journal-ui-YZ5om8r6.js} +1 -1
  89. package/runtime/assets/{labor-force-flow-8HLQsbKV.js → labor-force-flow-B-8gZXZw.js} +1 -1
  90. package/runtime/assets/{labor-market-If23zBQK.js → labor-market-C6nbrubk.js} +1 -1
  91. package/runtime/assets/{lightning-stats-DhrfBtX6.js → lightning-stats-cbygNRrq.js} +1 -1
  92. package/runtime/assets/{link-grid-CsnxpE4z.js → link-grid-C0BQkbQ9.js} +1 -1
  93. package/runtime/assets/{liquidity-basis-bars-CaU5YtBA.js → liquidity-basis-bars-Dd5FSjDX.js} +1 -1
  94. package/runtime/assets/{ma-multiplier-BBN7qsdV.js → ma-multiplier-CrY1aFKX.js} +1 -1
  95. package/runtime/assets/{macro-calendar-cKBRneX9.js → macro-calendar-D9MJ74wW.js} +1 -1
  96. package/runtime/assets/{market-bubbles-BKNkvOTg.js → market-bubbles-BKLV2VSd.js} +1 -1
  97. package/runtime/assets/{market-cap-treemap-BSBU8mjq.js → market-cap-treemap-B9af5p9K.js} +1 -1
  98. package/runtime/assets/{market-hours-B10lWec_.js → market-hours-jJUnunAF.js} +1 -1
  99. package/runtime/assets/{market-scatter-CVUa4ZQ_.js → market-scatter-_f6FvF2I.js} +1 -1
  100. package/runtime/assets/{marquee-BS_quB4S.js → marquee-CJGebjBa.js} +1 -1
  101. package/runtime/assets/{mayer-multiple-iiKonfXX.js → mayer-multiple-DcxCnx6X.js} +1 -1
  102. package/runtime/assets/{mempool-fee-curve-CQ4nzab8.js → mempool-fee-curve-yI10fMrE.js} +1 -1
  103. package/runtime/assets/{mining-pools-DROnvkZS.js → mining-pools-SIhc1qJ_.js} +1 -1
  104. package/runtime/assets/{mining-pools-share-BhHh0hUJ.js → mining-pools-share-DQSjhlWH.js} +1 -1
  105. package/runtime/assets/{misery-index-DpG7yLgX.js → misery-index-p5iEl6PS.js} +1 -1
  106. package/runtime/assets/{mover-row-Bz-YpFL3.js → mover-row-_czAON2U.js} +1 -1
  107. package/runtime/assets/{movers-bars-CEFjsHnv.js → movers-bars-clMvsESM.js} +1 -1
  108. package/runtime/assets/{movers-bubbles-C-SriZvR.js → movers-bubbles-CnHOfNZx.js} +1 -1
  109. package/runtime/assets/{mvrv-Cg0t6U5X.js → mvrv-x4gyjhWx.js} +1 -1
  110. package/runtime/assets/{mvrv-zscore-chart-qyOkheJb.js → mvrv-zscore-chart-BT3IGmGY.js} +1 -1
  111. package/runtime/assets/{national-debt-BRX09_U_.js → national-debt-DNtVgcl5.js} +1 -1
  112. package/runtime/assets/{news-feed-DQHSPzk5.js → news-feed-BVfKqSh7.js} +1 -1
  113. package/runtime/assets/{nft-activity-bars-BmNs4RMC.js → nft-activity-bars-lFRednN3.js} +1 -1
  114. package/runtime/assets/{nft-bubbles-0f9wAld0.js → nft-bubbles-ClNH9-_X.js} +1 -1
  115. package/runtime/assets/{nft-collections-Czp0t7ZU.js → nft-collections-B9RW4PJG.js} +1 -1
  116. package/runtime/assets/{nft-scatter-BHULn6_-.js → nft-scatter--MbPsUx4.js} +1 -1
  117. package/runtime/assets/{nft-treemap-D2Kj3AuL.js → nft-treemap-DBkTmq6-.js} +1 -1
  118. package/runtime/assets/{note-BdVtsqXo.js → note-BhUZxKk8.js} +1 -1
  119. package/runtime/assets/{nupl-BrK2rcgi.js → nupl-D3l-QZE3.js} +1 -1
  120. package/runtime/assets/{nupl-cycle-chart-BlXOLj4A.js → nupl-cycle-chart-BskEKMiX.js} +1 -1
  121. package/runtime/assets/{nyfed-fed-funds-band-gauge-DnzVhh9I.js → nyfed-fed-funds-band-gauge-CyShM9Rb.js} +1 -1
  122. package/runtime/assets/{nyfed-reference-rate-bars-CxLwUFUY.js → nyfed-reference-rate-bars-WKmIeI9B.js} +1 -1
  123. package/runtime/assets/{nyfed-sofr-term-averages-bars-DxzLVO9o.js → nyfed-sofr-term-averages-bars-BXymij4O.js} +1 -1
  124. package/runtime/assets/{ofr-stress-category-area-TXpXiMP-.js → ofr-stress-category-area-Cq2zYtm9.js} +1 -1
  125. package/runtime/assets/{ohlcv-volume-bars-BQZiJJ3u.js → ohlcv-volume-bars-BqgMyH4V.js} +1 -1
  126. package/runtime/assets/{oi-treemap-BEusAMZU.js → oi-treemap-Bu6FQGPf.js} +1 -1
  127. package/runtime/assets/{onchain-oscillator-overlay-BPa_jULR.js → onchain-oscillator-overlay-BETEO4VQ.js} +1 -1
  128. package/runtime/assets/{open-interest-BqO1-ZYo.js → open-interest-DPwK2Vft.js} +1 -1
  129. package/runtime/assets/{options-flow-skew-Cy0SUhs0.js → options-flow-skew-CLWqzUM0.js} +1 -1
  130. package/runtime/assets/{options-iv-RsCKjmmC.js → options-iv-tjSjFT91.js} +1 -1
  131. package/runtime/assets/{options-max-pain-multi-BLfX8Qe6.js → options-max-pain-multi-bMgyJ7e8.js} +1 -1
  132. package/runtime/assets/{options-max-pain-B2pA7KJP.js → options-max-pain-v6hCUt4V.js} +1 -1
  133. package/runtime/assets/{options-oi-ladder-heatmap-Do8eYI3h.js → options-oi-ladder-heatmap-M34leT_q.js} +1 -1
  134. package/runtime/assets/{options-oi-skew-D869gcp7.js → options-oi-skew-DxGLV4Co.js} +1 -1
  135. package/runtime/assets/{options-oi-strike-CKWXk22Q.js → options-oi-strike-CoVTVWcx.js} +1 -1
  136. package/runtime/assets/{options-put-call-DcSwyIIX.js → options-put-call-fRylJJIM.js} +1 -1
  137. package/runtime/assets/{options-vol-smile-CqP0-CSw.js → options-vol-smile-DsHa2Bug.js} +1 -1
  138. package/runtime/assets/{options-vol-spread-DMXdphxM.js → options-vol-spread-BB1X9lml.js} +1 -1
  139. package/runtime/assets/{payrolls-bars-15U_DxmS.js → payrolls-bars-CQOZQEvE.js} +1 -1
  140. package/runtime/assets/{pi-cycle-tqHUEYSe.js → pi-cycle-BTdRfEfm.js} +1 -1
  141. package/runtime/assets/{pomodoro-DSswMPuv.js → pomodoro-lYAXlnH5.js} +1 -1
  142. package/runtime/assets/{portfolio-allocation-DHN6r6fl.js → portfolio-allocation-CJCJ-fv5.js} +1 -1
  143. package/runtime/assets/{portfolio-common-e3o9U7qd.js → portfolio-common-BMRwgiXd.js} +1 -1
  144. package/runtime/assets/{portfolio-holdings-Bf6vOm0e.js → portfolio-holdings-BwUpyolL.js} +1 -1
  145. package/runtime/assets/{portfolio-movers-DmaGwFtS.js → portfolio-movers-CGcHyyU9.js} +1 -1
  146. package/runtime/assets/{portfolio-value-DLQHtwCl.js → portfolio-value--mB-D1zn.js} +1 -1
  147. package/runtime/assets/{portfolio-value-bars-B8XP7r22.js → portfolio-value-bars-C1sg3z_9.js} +1 -1
  148. package/runtime/assets/{prediction-market-bars-Du1RxZc_.js → prediction-market-bars-CV7qn0TK.js} +1 -1
  149. package/runtime/assets/{prediction-market-scatter-bdlr6r_V.js → prediction-market-scatter-vvAyUSMc.js} +1 -1
  150. package/runtime/assets/{prediction-markets-DNDg43g9.js → prediction-markets-Dj5pUGQ9.js} +1 -1
  151. package/runtime/assets/{prediction-markets-bubble-ccP01yj3.js → prediction-markets-bubble-Dy58nx5D.js} +1 -1
  152. package/runtime/assets/{price-chart-Cw8OXmKH.js → price-chart-BWVJKy6l.js} +1 -1
  153. package/runtime/assets/{price-compare-txGWDCHD.js → price-compare-X_somRkJ.js} +1 -1
  154. package/runtime/assets/{price-liveline-F7uJKuTS.js → price-liveline-BcfvYH4i.js} +1 -1
  155. package/runtime/assets/{price-ticker-DQFyiHmW.js → price-ticker-Dp5X5iEE.js} +1 -1
  156. package/runtime/assets/{protocol-fees-bubbles-oV66t8AJ.js → protocol-fees-bubbles-cOlmopfM.js} +1 -1
  157. package/runtime/assets/{protocol-fees-treemap-CsZhFjxB.js → protocol-fees-treemap-k3DCqpib.js} +1 -1
  158. package/runtime/assets/{protocol-fees-vs-tvl-scatter-CtLKoDeh.js → protocol-fees-vs-tvl-scatter-DE0XqWUP.js} +1 -1
  159. package/runtime/assets/{protocol-tvl-bubbles-CuULi2KY.js → protocol-tvl-bubbles-C_y8RNpr.js} +1 -1
  160. package/runtime/assets/{protocol-tvl-by-category-BV2yIdZ_.js → protocol-tvl-by-category-CU3EhtYv.js} +1 -1
  161. package/runtime/assets/{protocol-tvl-chart-BRPlR_kj.js → protocol-tvl-chart-BSjYp87K.js} +1 -1
  162. package/runtime/assets/{protocol-tvl-share-area-BeWSgocA.js → protocol-tvl-share-area-A9uUDjqD.js} +1 -1
  163. package/runtime/assets/{protocol-tvl-treemap-BYECslhG.js → protocol-tvl-treemap-DK99PI9E.js} +1 -1
  164. package/runtime/assets/{puell-multiple-akyTNZyp.js → puell-multiple-DUwx8WAi.js} +1 -1
  165. package/runtime/assets/{put-call-gauge-CwrHYfdq.js → put-call-gauge-wPFbaG0I.js} +1 -1
  166. package/runtime/assets/{quote-6JmbHxfg.js → quote-BEXrdAL4.js} +1 -1
  167. package/runtime/assets/{rates-board-CiY6mWMz.js → rates-board-Bo-1vZL3.js} +1 -1
  168. package/runtime/assets/{real-wages-BTBOxvjP.js → real-wages-DFbQjlXf.js} +1 -1
  169. package/runtime/assets/{realized-price-CbjZ3Sqj.js → realized-price-C7sCYZ-5.js} +1 -1
  170. package/runtime/assets/{reserve-risk-UlEv8oS1.js → reserve-risk-CYWr6Bnu.js} +1 -1
  171. package/runtime/assets/{returns-projector-qPZeZ-n9.js → returns-projector-Bitu8mA2.js} +1 -1
  172. package/runtime/assets/{risk-reward-DWcu9j4_.js → risk-reward-5CA4dPWK.js} +1 -1
  173. package/runtime/assets/{rsi-momentum-BuasFcVH.js → rsi-momentum-BdScXy4t.js} +1 -1
  174. package/runtime/assets/{rules-card-DkjHPbht.js → rules-card-BxdIuORn.js} +1 -1
  175. package/runtime/assets/{sector-bars-JKmedArM.js → sector-bars-B4Nabix2.js} +1 -1
  176. package/runtime/assets/{sector-bubbles-DLXckuua.js → sector-bubbles-D_s1FnKb.js} +1 -1
  177. package/runtime/assets/{sector-performance-C_2-xbIq.js → sector-performance-C8K8FBsp.js} +1 -1
  178. package/runtime/assets/{sector-treemap-DquBCyc3.js → sector-treemap-DOn3li5j.js} +1 -1
  179. package/runtime/assets/{sentiment-gauge-CuNvuk1q.js → sentiment-gauge-D-TyqTrT.js} +1 -1
  180. package/runtime/assets/{session-progress-BDhJHQEn.js → session-progress-2uZKU_tb.js} +1 -1
  181. package/runtime/assets/{short-volume-Deb7fra_.js → short-volume-DrAqZxL_.js} +1 -1
  182. package/runtime/assets/{short-volume-bars-DRjpg7RS.js → short-volume-bars-D0tDnbRp.js} +1 -1
  183. package/runtime/assets/{snake-B9EEDroM.js → snake-CPrCYXRC.js} +1 -1
  184. package/runtime/assets/{sopr-DM_gpDem.js → sopr-CL-DcV9H.js} +1 -1
  185. package/runtime/assets/{spotify-embed-Dxt1RnUX.js → spotify-embed-Cuyo3WcD.js} +1 -1
  186. package/runtime/assets/{stablecoin-chains-LzYMilQE.js → stablecoin-chains-BNyBP4r7.js} +1 -1
  187. package/runtime/assets/{stablecoin-supply-69kqOBoU.js → stablecoin-supply-CDoJSW65.js} +1 -1
  188. package/runtime/assets/{stopwatch-ClPrrveo.js → stopwatch-C5UbM7BR.js} +1 -1
  189. package/runtime/assets/{top-movers-BRiiYOPQ.js → top-movers-n7gjNCAB.js} +1 -1
  190. package/runtime/assets/{treasury-auction-demand-scatter-yYNPz1VC.js → treasury-auction-demand-scatter-B2GgfweB.js} +1 -1
  191. package/runtime/assets/{treasury-auction-size-bars-CGD6MeAz.js → treasury-auction-size-bars-RSKrqPZN.js} +1 -1
  192. package/runtime/assets/{treasury-auctions-Z_4MtXmL.js → treasury-auctions-DmhLNhux.js} +1 -1
  193. package/runtime/assets/{treasury-avg-rate-bars-FXGz1a7e.js → treasury-avg-rate-bars-CHo7_TZ6.js} +1 -1
  194. package/runtime/assets/{treasury-debt-composition-area-5yRh0K6a.js → treasury-debt-composition-area-D9TIg2Fu.js} +1 -1
  195. package/runtime/assets/{trending-bars-z_cjmEXN.js → trending-bars-CFUOf_2T.js} +1 -1
  196. package/runtime/assets/{trending-bubbles-nwoxKQEW.js → trending-bubbles-CWixlrYZ.js} +1 -1
  197. package/runtime/assets/{trending-coins-9vrbEbBm.js → trending-coins-XmlyMu9W.js} +1 -1
  198. package/runtime/assets/{tvl-bars-BkJcttcu.js → tvl-bars-CMr0p3wy.js} +1 -1
  199. package/runtime/assets/{tvl-bubbles-D4tahOC6.js → tvl-bubbles-CBwy6njm.js} +1 -1
  200. package/runtime/assets/{tvl-treemap-B7kWI7o0.js → tvl-treemap-Df9Sw5pQ.js} +1 -1
  201. package/runtime/assets/{video-Dsc13Zja.js → video-Cb7G8kra.js} +1 -1
  202. package/runtime/assets/{volume-movers-scatter-BA8Wmoil.js → volume-movers-scatter-MwF5sr-K.js} +1 -1
  203. package/runtime/assets/{volume-profile-DcSNvDqP.js → volume-profile-DM349em1.js} +1 -1
  204. package/runtime/assets/{volume-share-donut-3MenMO-V.js → volume-share-donut-FMessqoh.js} +1 -1
  205. package/runtime/assets/{yield-composition-scatter-rfxC16n2.js → yield-composition-scatter-51jp_MgP.js} +1 -1
  206. package/runtime/assets/{yield-curve-DXsfXy4P.js → yield-curve-WOaDSVNR.js} +1 -1
  207. package/runtime/assets/{yield-momentum-bars-B9nKuItO.js → yield-momentum-bars-0hhg35dJ.js} +1 -1
  208. package/runtime/assets/{yield-risk-pie-DUxkXYIQ.js → yield-risk-pie-mBxQGJN1.js} +1 -1
  209. package/runtime/assets/{yield-scanner-sCBXpQTV.js → yield-scanner-DTDsWH9C.js} +1 -1
  210. package/runtime/assets/{yield-scatter-BZHOhFcm.js → yield-scatter-BkeRhOK4.js} +1 -1
  211. package/runtime/index.html +1 -1
package/dist/index.js CHANGED
@@ -3085,9 +3085,7 @@ var optionsOiLadderHeatmapMeta = defineFrameMeta({
3085
3085
  source: SOURCES.deribit,
3086
3086
  schema: z3.object({
3087
3087
  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
- ),
3088
+ expiries: z3.number().int().min(3).max(16).default(8).describe("How many upcoming expiries (nearest-first) to show as rows."),
3091
3089
  buckets: z3.number().int().min(6).max(20).default(10).describe(
3092
3090
  "How many strike bands (columns) to bin open interest into, spanning the shown expiries' strike range."
3093
3091
  )
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "zframes",
3
- "version": "0.8.1",
3
+ "version": "0.8.2",
4
4
  "description": "zframes CLI — serve a dashboard.json as a live, editable market terminal (serve), print the frame catalogue for generating agents (catalogue), and validate a dashboard.json (lint).",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Zentry",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "https://github.com/zentryhq/zframes.git",
9
+ "url": "https://github.com/zentryHQ/zframes.git",
10
10
  "directory": "packages/cli"
11
11
  },
12
- "homepage": "https://github.com/zentryhq/zframes#readme",
12
+ "homepage": "https://github.com/zentryHQ/zframes#readme",
13
13
  "keywords": [
14
14
  "zframes",
15
15
  "dashboard",
@@ -22,7 +22,7 @@
22
22
  ],
23
23
  "type": "module",
24
24
  "engines": {
25
- "node": ">=18"
25
+ "node": ">=20"
26
26
  },
27
27
  "bin": {
28
28
  "zframes": "dist/index.js"
@@ -40,15 +40,15 @@
40
40
  "@types/node": "^20.14.0",
41
41
  "tsup": "^8.3.0",
42
42
  "typescript": "^5.8.0",
43
- "@zframes/frames": "0.0.0",
44
43
  "@zframes/account": "0.0.0",
44
+ "@zframes/frames": "0.0.0",
45
45
  "@zframes/provider-alternativeme": "0.0.0",
46
- "@zframes/provider-defillama": "0.0.0",
47
46
  "@zframes/provider-coingecko": "0.0.0",
47
+ "@zframes/provider-defillama": "0.0.0",
48
48
  "@zframes/provider-hyperliquid": "0.0.0",
49
49
  "@zframes/serve": "0.0.0",
50
- "@zframes/store": "0.0.0",
51
50
  "@zframes/spec": "0.0.0",
51
+ "@zframes/store": "0.0.0",
52
52
  "@zframes/zai": "0.0.0"
53
53
  },
54
54
  "scripts": {
@@ -1 +1 @@
1
- import{r as f,j as e}from"./react-qoZPGuNy.js";import{b as r,f as p,a as x,c as g}from"./format-DxkEZcwQ.js";import{f as j,j as i,k as v}from"./index-BHlJHScr.js";import{F as c}from"./ui-Bq3RQsdJ.js";i.schema;const o={BTC:"linear-gradient(90deg, #FF810F 0%, #FF9E37 100%)",ETH:"hsl(var(--zf-accent-hue, 242) 85% 72%)",Others:"hsl(var(--zf-accent-hue, 242) 38% 52%)"};function y({config:d}){const{market:s,isLoading:m}=v(),n=f.useMemo(()=>{if(!s)return[];const a=s.dominance.btc??0,t=s.dominance.eth??0;return[{type:"BTC",value:a},{type:"ETH",value:t},{type:"Others",value:Math.max(0,100-a-t)}].sort((h,u)=>u.value-h.value)},[s]);if(m)return e.jsx(c,{loading:!0,children:"loading dominance…"});if(!s)return e.jsx(c,{children:"no market data"});const l=n[0];return e.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-3",children:[e.jsxs("div",{className:"flex items-baseline gap-2",children:[e.jsx("span",{className:"metric-xl text-strong",children:r(l.value,1)}),e.jsx("span",{className:"body-md text-soft",children:l.type})]}),e.jsx("div",{className:"flex h-3 w-full max-w-sm gap-1 overflow-hidden rounded-full",children:n.map((a,t)=>e.jsx("div",{className:`h-full ${t===0?"rounded-l-full":""} ${t===n.length-1?"rounded-r-full":""}`,style:{width:`${a.value}%`,background:o[a.type]}},a.type))}),e.jsx("div",{className:"grid w-full max-w-sm grid-cols-3",children:n.map(a=>e.jsxs("div",{className:"flex items-center justify-center gap-1.5",children:[e.jsx("div",{className:"h-2 w-2 flex-shrink-0 rounded-full",style:{background:o[a.type]}}),e.jsx("span",{className:"body-sm text-soft",children:a.type}),e.jsx("span",{className:"body-sm text-normal font-bold tabular-nums",children:r(a.value,1)})]},a.type))}),d.showTotalMarketCap&&e.jsxs("div",{className:"caption text-soft",children:["total mcap ",p(s.totalMarketCapUsd)," ·"," ",e.jsxs("span",{style:{color:g(s.marketCapChangePct24h)},children:[x(s.marketCapChangePct24h)," 24h"]})]})]})}const F=j({...i,component:y});export{F as bitcoinDominanceFrame};
1
+ import{r as f,j as e}from"./react-qoZPGuNy.js";import{b as r,f as p,a as x,c as g}from"./format-DxkEZcwQ.js";import{f as j,j as i,k as v}from"./index-BJ1Zyy42.js";import{F as c}from"./ui-Bq3RQsdJ.js";i.schema;const o={BTC:"linear-gradient(90deg, #FF810F 0%, #FF9E37 100%)",ETH:"hsl(var(--zf-accent-hue, 242) 85% 72%)",Others:"hsl(var(--zf-accent-hue, 242) 38% 52%)"};function y({config:d}){const{market:s,isLoading:m}=v(),n=f.useMemo(()=>{if(!s)return[];const a=s.dominance.btc??0,t=s.dominance.eth??0;return[{type:"BTC",value:a},{type:"ETH",value:t},{type:"Others",value:Math.max(0,100-a-t)}].sort((h,u)=>u.value-h.value)},[s]);if(m)return e.jsx(c,{loading:!0,children:"loading dominance…"});if(!s)return e.jsx(c,{children:"no market data"});const l=n[0];return e.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-3",children:[e.jsxs("div",{className:"flex items-baseline gap-2",children:[e.jsx("span",{className:"metric-xl text-strong",children:r(l.value,1)}),e.jsx("span",{className:"body-md text-soft",children:l.type})]}),e.jsx("div",{className:"flex h-3 w-full max-w-sm gap-1 overflow-hidden rounded-full",children:n.map((a,t)=>e.jsx("div",{className:`h-full ${t===0?"rounded-l-full":""} ${t===n.length-1?"rounded-r-full":""}`,style:{width:`${a.value}%`,background:o[a.type]}},a.type))}),e.jsx("div",{className:"grid w-full max-w-sm grid-cols-3",children:n.map(a=>e.jsxs("div",{className:"flex items-center justify-center gap-1.5",children:[e.jsx("div",{className:"h-2 w-2 flex-shrink-0 rounded-full",style:{background:o[a.type]}}),e.jsx("span",{className:"body-sm text-soft",children:a.type}),e.jsx("span",{className:"body-sm text-normal font-bold tabular-nums",children:r(a.value,1)})]},a.type))}),d.showTotalMarketCap&&e.jsxs("div",{className:"caption text-soft",children:["total mcap ",p(s.totalMarketCapUsd)," ·"," ",e.jsxs("span",{style:{color:g(s.marketCapChangePct24h)},children:[x(s.marketCapChangePct24h)," 24h"]})]})]})}const F=j({...i,component:y});export{F as bitcoinDominanceFrame};
@@ -1 +1 @@
1
- import{r as u,j as e}from"./react-qoZPGuNy.js";import{i as c}from"./content-shared-BZ1XzrJx.js";import{e as N,a as j,c as y}from"./format-DxkEZcwQ.js";import{f as k,bY as b}from"./index-BHlJHScr.js";import{s as z}from"./ui-Bq3RQsdJ.js";b.schema;function C({config:l}){const[o,m]=u.useState(l.fills.length?l.fills:[{price:0,size:0}]),[n,g]=u.useState(l.currentPrice),{avg:r,totalSize:p}=u.useMemo(()=>{let s=0,a=0;for(const t of o)s+=t.price*t.size,a+=t.size;return{avg:a>0?s/a:0,totalSize:a}},[o]),x=r>0&&n>0?(n-r)/r*100:null,d=l.label.trim(),h=(s,a,t)=>m(f=>f.map((i,v)=>v===s?{...i,[a]:t}:i));return e.jsxs("div",{className:"flex h-full w-full flex-col gap-2",children:[d&&e.jsx("div",{className:"caption text-soft shrink-0 uppercase tracking-[0.12em]",children:d}),e.jsxs("div",{className:"shrink-0",children:[e.jsx("div",{className:"caption text-soft",children:"break-even (avg cost)"}),e.jsx("div",{className:"metric-lg text-strong",children:p>0?N(r):"—"}),e.jsxs("div",{className:"caption text-soft",children:[p>0?`${p} units`:"add fills below",x!==null&&e.jsxs(e.Fragment,{children:[" · ",e.jsxs("span",{style:{color:y(x)},children:[j(x)," unrealized"]})]})]})]}),e.jsxs("div",{className:`min-h-0 flex-1 ${z}`,children:[o.map((s,a)=>e.jsxs("div",{className:"mb-1 flex items-center gap-1",children:[e.jsxs("label",{className:`flex flex-1 items-center gap-1 px-2 py-1 ${c}`,children:[e.jsx("span",{className:"caption text-soft",children:"px"}),e.jsx("input",{type:"number",value:Number.isFinite(s.price)?s.price:0,onChange:t=>h(a,"price",Number(t.target.value)),className:"body-sm text-strong w-full bg-transparent outline-none"})]}),e.jsxs("label",{className:`flex flex-1 items-center gap-1 px-2 py-1 ${c}`,children:[e.jsx("span",{className:"caption text-soft",children:"sz"}),e.jsx("input",{type:"number",value:Number.isFinite(s.size)?s.size:0,onChange:t=>h(a,"size",Number(t.target.value)),className:"body-sm text-strong w-full bg-transparent outline-none"})]}),e.jsx("button",{type:"button",onClick:()=>m(t=>t.length>1?t.filter((f,i)=>i!==a):t),className:"caption text-soft hover:text-strong shrink-0 px-1","aria-label":"remove fill",children:"×"})]},a)),e.jsx("button",{type:"button",onClick:()=>m(s=>[...s,{price:0,size:0}]),className:`caption text-soft hover:text-strong w-full px-2 py-1 ${c}`,children:"+ add fill"})]}),e.jsxs("label",{className:`flex shrink-0 items-center gap-1 px-2 py-1 ${c}`,children:[e.jsx("span",{className:"caption text-soft shrink-0",children:"current price"}),e.jsx("input",{type:"number",value:Number.isFinite(n)?n:0,onChange:s=>g(Number(s.target.value)),className:"body-sm text-strong w-full bg-transparent text-right outline-none"})]})]})}const E=k({...b,component:C});export{E as breakevenFrame};
1
+ import{r as u,j as e}from"./react-qoZPGuNy.js";import{i as c}from"./content-shared-BZ1XzrJx.js";import{e as N,a as j,c as y}from"./format-DxkEZcwQ.js";import{f as k,bY as b}from"./index-BJ1Zyy42.js";import{s as z}from"./ui-Bq3RQsdJ.js";b.schema;function C({config:l}){const[o,m]=u.useState(l.fills.length?l.fills:[{price:0,size:0}]),[n,g]=u.useState(l.currentPrice),{avg:r,totalSize:p}=u.useMemo(()=>{let s=0,a=0;for(const t of o)s+=t.price*t.size,a+=t.size;return{avg:a>0?s/a:0,totalSize:a}},[o]),x=r>0&&n>0?(n-r)/r*100:null,d=l.label.trim(),h=(s,a,t)=>m(f=>f.map((i,v)=>v===s?{...i,[a]:t}:i));return e.jsxs("div",{className:"flex h-full w-full flex-col gap-2",children:[d&&e.jsx("div",{className:"caption text-soft shrink-0 uppercase tracking-[0.12em]",children:d}),e.jsxs("div",{className:"shrink-0",children:[e.jsx("div",{className:"caption text-soft",children:"break-even (avg cost)"}),e.jsx("div",{className:"metric-lg text-strong",children:p>0?N(r):"—"}),e.jsxs("div",{className:"caption text-soft",children:[p>0?`${p} units`:"add fills below",x!==null&&e.jsxs(e.Fragment,{children:[" · ",e.jsxs("span",{style:{color:y(x)},children:[j(x)," unrealized"]})]})]})]}),e.jsxs("div",{className:`min-h-0 flex-1 ${z}`,children:[o.map((s,a)=>e.jsxs("div",{className:"mb-1 flex items-center gap-1",children:[e.jsxs("label",{className:`flex flex-1 items-center gap-1 px-2 py-1 ${c}`,children:[e.jsx("span",{className:"caption text-soft",children:"px"}),e.jsx("input",{type:"number",value:Number.isFinite(s.price)?s.price:0,onChange:t=>h(a,"price",Number(t.target.value)),className:"body-sm text-strong w-full bg-transparent outline-none"})]}),e.jsxs("label",{className:`flex flex-1 items-center gap-1 px-2 py-1 ${c}`,children:[e.jsx("span",{className:"caption text-soft",children:"sz"}),e.jsx("input",{type:"number",value:Number.isFinite(s.size)?s.size:0,onChange:t=>h(a,"size",Number(t.target.value)),className:"body-sm text-strong w-full bg-transparent outline-none"})]}),e.jsx("button",{type:"button",onClick:()=>m(t=>t.length>1?t.filter((f,i)=>i!==a):t),className:"caption text-soft hover:text-strong shrink-0 px-1","aria-label":"remove fill",children:"×"})]},a)),e.jsx("button",{type:"button",onClick:()=>m(s=>[...s,{price:0,size:0}]),className:`caption text-soft hover:text-strong w-full px-2 py-1 ${c}`,children:"+ add fill"})]}),e.jsxs("label",{className:`flex shrink-0 items-center gap-1 px-2 py-1 ${c}`,children:[e.jsx("span",{className:"caption text-soft shrink-0",children:"current price"}),e.jsx("input",{type:"number",value:Number.isFinite(n)?n:0,onChange:s=>g(Number(s.target.value)),className:"body-sm text-strong w-full bg-transparent text-right outline-none"})]})]})}const E=k({...b,component:C});export{E as breakevenFrame};
@@ -1 +1 @@
1
- import{r as s,j as r}from"./react-qoZPGuNy.js";import{f as i,c0 as n}from"./index-BHlJHScr.js";n.schema;function m(e){return[{name:"Breathe in",dur:e.inhale,scale:1},{name:"Hold",dur:e.hold,scale:1},{name:"Breathe out",dur:e.exhale,scale:.45},{name:"Hold",dur:e.holdAfter,scale:.45}]}function x({config:e}){const t=m(e),[a,l]=s.useState(0);s.useEffect(()=>{l(0)},[e.inhale,e.hold,e.exhale,e.holdAfter]),s.useEffect(()=>{const d=Math.max(0,t[a].dur),u=setTimeout(()=>l(c=>(c+1)%t.length),Math.max(300,d*1e3));return()=>clearTimeout(u)},[a,e.inhale,e.hold,e.exhale,e.holdAfter]);const o=t[a].scale,h=Math.max(.3,t[a].dur);return r.jsxs("div",{className:"relative flex h-full w-full items-center justify-center overflow-hidden",children:[r.jsx("div",{className:"aspect-square w-[55%] rounded-full",style:{background:"var(--color-highlight)",opacity:.25,transform:`scale(${o})`,transition:`transform ${h}s ease-in-out`}}),r.jsx("div",{className:"caption text-soft absolute uppercase tracking-[0.2em]",children:t[a].name})]})}const j=i({...n,component:x});export{j as breathingFrame};
1
+ import{r as s,j as r}from"./react-qoZPGuNy.js";import{f as i,c0 as n}from"./index-BJ1Zyy42.js";n.schema;function m(e){return[{name:"Breathe in",dur:e.inhale,scale:1},{name:"Hold",dur:e.hold,scale:1},{name:"Breathe out",dur:e.exhale,scale:.45},{name:"Hold",dur:e.holdAfter,scale:.45}]}function x({config:e}){const t=m(e),[a,l]=s.useState(0);s.useEffect(()=>{l(0)},[e.inhale,e.hold,e.exhale,e.holdAfter]),s.useEffect(()=>{const d=Math.max(0,t[a].dur),u=setTimeout(()=>l(c=>(c+1)%t.length),Math.max(300,d*1e3));return()=>clearTimeout(u)},[a,e.inhale,e.hold,e.exhale,e.holdAfter]);const o=t[a].scale,h=Math.max(.3,t[a].dur);return r.jsxs("div",{className:"relative flex h-full w-full items-center justify-center overflow-hidden",children:[r.jsx("div",{className:"aspect-square w-[55%] rounded-full",style:{background:"var(--color-highlight)",opacity:.25,transform:`scale(${o})`,transition:`transform ${h}s ease-in-out`}}),r.jsx("div",{className:"caption text-soft absolute uppercase tracking-[0.2em]",children:t[a].name})]})}const j=i({...n,component:x});export{j as breathingFrame};
@@ -1 +1 @@
1
- import{r as m,j as e}from"./react-qoZPGuNy.js";import{d as r}from"./format-DxkEZcwQ.js";import{f,cU as i,b1 as p}from"./index-BHlJHScr.js";import{F as c}from"./ui-Bq3RQsdJ.js";import{B as u}from"./bar-chart-DCMbxUJx.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";i.schema;function x({config:l}){var a;const{blocks:t,isLoading:n}=p(l.count),s=m.useMemo(()=>[...t].reverse().map(o=>({label:o.height.toLocaleString("en-US"),value:o.size})),[t]);return n?e.jsx(c,{loading:!0,children:"loading blocks…"}):s.length===0?e.jsx(c,{children:"no block data yet"}):e.jsxs("div",{className:"flex h-full flex-col justify-center gap-1 text-normal",children:[e.jsx(u,{data:s,height:200,formatValue:r,showValues:!1,maxTickLabels:6}),e.jsxs("div",{className:"caption text-soft text-center",children:["block size (bytes) · latest ",r(((a=t[0])==null?void 0:a.size)??0)]})]})}const z=f({...i,component:x});export{z as btcBlockSizeBarsFrame};
1
+ import{r as m,j as e}from"./react-qoZPGuNy.js";import{d as r}from"./format-DxkEZcwQ.js";import{f,cU as i,b1 as p}from"./index-BJ1Zyy42.js";import{F as c}from"./ui-Bq3RQsdJ.js";import{B as u}from"./bar-chart-DCMbxUJx.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";i.schema;function x({config:l}){var a;const{blocks:t,isLoading:n}=p(l.count),s=m.useMemo(()=>[...t].reverse().map(o=>({label:o.height.toLocaleString("en-US"),value:o.size})),[t]);return n?e.jsx(c,{loading:!0,children:"loading blocks…"}):s.length===0?e.jsx(c,{children:"no block data yet"}):e.jsxs("div",{className:"flex h-full flex-col justify-center gap-1 text-normal",children:[e.jsx(u,{data:s,height:200,formatValue:r,showValues:!1,maxTickLabels:6}),e.jsxs("div",{className:"caption text-soft text-center",children:["block size (bytes) · latest ",r(((a=t[0])==null?void 0:a.size)??0)]})]})}const z=f({...i,component:x});export{z as btcBlockSizeBarsFrame};
@@ -1 +1 @@
1
- import{j as s}from"./react-qoZPGuNy.js";import{t as c,j as i}from"./format-DxkEZcwQ.js";import{f as r,b0 as o,b1 as m}from"./index-BHlJHScr.js";import{F as a,s as d}from"./ui-Bq3RQsdJ.js";o.schema;function x({config:l}){const{blocks:e,isLoading:n}=m(l.count);return n?s.jsx(a,{loading:!0,children:"loading blocks…"}):e.length===0?s.jsx(a,{children:"no block data yet"}):s.jsx("div",{className:"flex h-full min-h-0 flex-col",children:s.jsx("div",{className:d,children:s.jsx("div",{className:"flex flex-col gap-1.5",children:e.map(t=>s.jsxs("div",{className:"grid grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-2 rounded-md bg-white/[0.03] px-2 py-1.5",title:`Block ${t.height} · ${t.poolName} · ${t.txCount.toLocaleString("en-US")} txs`,children:[s.jsxs("div",{className:"flex flex-col",children:[s.jsx("span",{className:"body-sm text-strong font-bold tabular-nums",children:t.height.toLocaleString("en-US")}),s.jsx("span",{className:"caption text-soft",children:c(t.time)})]}),s.jsxs("div",{className:"min-w-0",children:[s.jsx("span",{className:"body-sm text-normal block truncate",children:t.poolName}),s.jsxs("span",{className:"caption text-soft",children:[t.txCount.toLocaleString("en-US")," txs"]})]}),s.jsxs("div",{className:"text-right",children:[s.jsx("span",{className:"body-sm text-normal block font-bold tabular-nums",children:i(t.totalFees)}),s.jsxs("span",{className:"caption text-soft",children:["~",Math.round(t.medianFee)," sat/vB"]})]})]},t.id))})})})}const j=r({...o,component:x});export{j as btcBlocksFrame};
1
+ import{j as s}from"./react-qoZPGuNy.js";import{t as c,j as i}from"./format-DxkEZcwQ.js";import{f as r,b0 as o,b1 as m}from"./index-BJ1Zyy42.js";import{F as a,s as d}from"./ui-Bq3RQsdJ.js";o.schema;function x({config:l}){const{blocks:e,isLoading:n}=m(l.count);return n?s.jsx(a,{loading:!0,children:"loading blocks…"}):e.length===0?s.jsx(a,{children:"no block data yet"}):s.jsx("div",{className:"flex h-full min-h-0 flex-col",children:s.jsx("div",{className:d,children:s.jsx("div",{className:"flex flex-col gap-1.5",children:e.map(t=>s.jsxs("div",{className:"grid grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-2 rounded-md bg-white/[0.03] px-2 py-1.5",title:`Block ${t.height} · ${t.poolName} · ${t.txCount.toLocaleString("en-US")} txs`,children:[s.jsxs("div",{className:"flex flex-col",children:[s.jsx("span",{className:"body-sm text-strong font-bold tabular-nums",children:t.height.toLocaleString("en-US")}),s.jsx("span",{className:"caption text-soft",children:c(t.time)})]}),s.jsxs("div",{className:"min-w-0",children:[s.jsx("span",{className:"body-sm text-normal block truncate",children:t.poolName}),s.jsxs("span",{className:"caption text-soft",children:[t.txCount.toLocaleString("en-US")," txs"]})]}),s.jsxs("div",{className:"text-right",children:[s.jsx("span",{className:"body-sm text-normal block font-bold tabular-nums",children:i(t.totalFees)}),s.jsxs("span",{className:"caption text-soft",children:["~",Math.round(t.medianFee)," sat/vB"]})]})]},t.id))})})})}const j=r({...o,component:x});export{j as btcBlocksFrame};
@@ -1 +1 @@
1
- import{j as t}from"./react-qoZPGuNy.js";import{a as r,b as m,c as o}from"./format-DxkEZcwQ.js";import{f as u,b4 as c,b5 as h}from"./index-BHlJHScr.js";import{F as l}from"./ui-Bq3RQsdJ.js";c.schema;function x(n){const e=Math.max(0,Math.round((n-Date.now())/1e3)),i=Math.floor(e/86400),s=Math.floor(e%86400/3600),a=Math.floor(e%3600/60);return i>0?`in ${i}d ${s}h`:s>0?`in ${s}h ${a}m`:`in ${a}m`}function j({config:n}){const{adjustment:e,isLoading:i}=h();if(i)return t.jsx(l,{loading:!0,children:"loading difficulty…"});if(!e)return t.jsx(l,{children:"no difficulty data yet"});const{progressPercent:s,difficultyChange:a,remainingBlocks:d}=e,f=o(a);return t.jsxs("div",{className:"flex h-full min-h-0 flex-col justify-center gap-3",children:[t.jsxs("div",{className:"flex items-end justify-between gap-3",children:[t.jsxs("div",{children:[t.jsx("div",{className:"caption text-soft uppercase",children:"next adjustment"}),t.jsx("div",{className:"metric-lg leading-none",style:{color:f},children:r(a)}),t.jsx("div",{className:"body-sm text-soft",children:a>=0?"harder":"easier"})]}),t.jsxs("div",{className:"text-right",children:[t.jsx("div",{className:"body-md text-normal font-bold tabular-nums",children:x(e.estimatedRetargetDate)}),t.jsxs("div",{className:"caption text-soft",children:[d.toLocaleString("en-US")," blocks left"]})]})]}),t.jsxs("div",{children:[t.jsx("div",{className:"relative h-2.5 w-full overflow-hidden rounded-full bg-white/[0.08]",children:t.jsx("div",{className:"absolute left-0 top-0 h-full rounded-full",style:{width:`${Math.min(100,Math.max(0,s))}%`,background:"hsl(var(--zf-accent-hue, 242) 85% 72%)"}})}),t.jsxs("div",{className:"caption text-soft mt-1 tabular-nums",children:[m(s,1)," through this epoch"]})]}),n.showPrevious&&t.jsxs("div",{className:"caption text-soft border-t border-white/[0.08] pt-2",children:["previous retarget"," ",t.jsx("span",{className:"font-bold tabular-nums",style:{color:o(e.previousRetarget)},children:r(e.previousRetarget)})]})]})}const N=u({...c,component:j});export{N as btcDifficultyFrame};
1
+ import{j as t}from"./react-qoZPGuNy.js";import{a as r,b as m,c as o}from"./format-DxkEZcwQ.js";import{f as u,b4 as c,b5 as h}from"./index-BJ1Zyy42.js";import{F as l}from"./ui-Bq3RQsdJ.js";c.schema;function x(n){const e=Math.max(0,Math.round((n-Date.now())/1e3)),i=Math.floor(e/86400),s=Math.floor(e%86400/3600),a=Math.floor(e%3600/60);return i>0?`in ${i}d ${s}h`:s>0?`in ${s}h ${a}m`:`in ${a}m`}function j({config:n}){const{adjustment:e,isLoading:i}=h();if(i)return t.jsx(l,{loading:!0,children:"loading difficulty…"});if(!e)return t.jsx(l,{children:"no difficulty data yet"});const{progressPercent:s,difficultyChange:a,remainingBlocks:d}=e,f=o(a);return t.jsxs("div",{className:"flex h-full min-h-0 flex-col justify-center gap-3",children:[t.jsxs("div",{className:"flex items-end justify-between gap-3",children:[t.jsxs("div",{children:[t.jsx("div",{className:"caption text-soft uppercase",children:"next adjustment"}),t.jsx("div",{className:"metric-lg leading-none",style:{color:f},children:r(a)}),t.jsx("div",{className:"body-sm text-soft",children:a>=0?"harder":"easier"})]}),t.jsxs("div",{className:"text-right",children:[t.jsx("div",{className:"body-md text-normal font-bold tabular-nums",children:x(e.estimatedRetargetDate)}),t.jsxs("div",{className:"caption text-soft",children:[d.toLocaleString("en-US")," blocks left"]})]})]}),t.jsxs("div",{children:[t.jsx("div",{className:"relative h-2.5 w-full overflow-hidden rounded-full bg-white/[0.08]",children:t.jsx("div",{className:"absolute left-0 top-0 h-full rounded-full",style:{width:`${Math.min(100,Math.max(0,s))}%`,background:"hsl(var(--zf-accent-hue, 242) 85% 72%)"}})}),t.jsxs("div",{className:"caption text-soft mt-1 tabular-nums",children:[m(s,1)," through this epoch"]})]}),n.showPrevious&&t.jsxs("div",{className:"caption text-soft border-t border-white/[0.08] pt-2",children:["previous retarget"," ",t.jsx("span",{className:"font-bold tabular-nums",style:{color:o(e.previousRetarget)},children:r(e.previousRetarget)})]})]})}const N=u({...c,component:j});export{N as btcDifficultyFrame};
@@ -1 +1 @@
1
- import{r as o,j as t}from"./react-qoZPGuNy.js";import{d as l,k as f}from"./format-DxkEZcwQ.js";import{f as d,cT as r,b3 as m}from"./index-BHlJHScr.js";import{F as a}from"./ui-Bq3RQsdJ.js";import{M as h}from"./mini-line-chart-DyG55cVW.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";r.schema;function u({config:i}){const{data:e,isLoading:c}=m(i.window),n=o.useMemo(()=>((e==null?void 0:e.difficulty)??[]).map(s=>({date:new Date(s.time).toISOString(),value:s.difficulty})),[e==null?void 0:e.difficulty]);return c?t.jsx(a,{loading:!0,children:"loading difficulty…"}):e?t.jsxs("div",{className:"flex h-full min-h-0 flex-col justify-center gap-3",children:[t.jsxs("div",{className:"flex items-end justify-between gap-3",children:[t.jsxs("div",{children:[t.jsx("div",{className:"caption text-soft uppercase",children:"network difficulty"}),t.jsx("div",{className:"metric-lg text-strong leading-none",children:l(e.currentDifficulty)})]}),t.jsxs("div",{className:"text-right",children:[t.jsx("div",{className:"body-md text-normal font-bold tabular-nums",children:f(e.currentHashrate)}),t.jsx("div",{className:"caption text-soft",children:"hashrate"})]})]}),t.jsx(h,{data:n,width:320,height:54,color:"hsl(var(--zf-accent-hue, 242) 85% 72%)"}),t.jsxs("div",{className:"caption text-soft",children:["past ",i.window]})]}):t.jsx(a,{children:"no difficulty data yet"})}const N=d({...r,component:u});export{N as btcDifficultyChartFrame};
1
+ import{r as o,j as t}from"./react-qoZPGuNy.js";import{d as l,k as f}from"./format-DxkEZcwQ.js";import{f as d,cT as r,b3 as m}from"./index-BJ1Zyy42.js";import{F as a}from"./ui-Bq3RQsdJ.js";import{M as h}from"./mini-line-chart-DyG55cVW.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";r.schema;function u({config:i}){const{data:e,isLoading:c}=m(i.window),n=o.useMemo(()=>((e==null?void 0:e.difficulty)??[]).map(s=>({date:new Date(s.time).toISOString(),value:s.difficulty})),[e==null?void 0:e.difficulty]);return c?t.jsx(a,{loading:!0,children:"loading difficulty…"}):e?t.jsxs("div",{className:"flex h-full min-h-0 flex-col justify-center gap-3",children:[t.jsxs("div",{className:"flex items-end justify-between gap-3",children:[t.jsxs("div",{children:[t.jsx("div",{className:"caption text-soft uppercase",children:"network difficulty"}),t.jsx("div",{className:"metric-lg text-strong leading-none",children:l(e.currentDifficulty)})]}),t.jsxs("div",{className:"text-right",children:[t.jsx("div",{className:"body-md text-normal font-bold tabular-nums",children:f(e.currentHashrate)}),t.jsx("div",{className:"caption text-soft",children:"hashrate"})]})]}),t.jsx(h,{data:n,width:320,height:54,color:"hsl(var(--zf-accent-hue, 242) 85% 72%)"}),t.jsxs("div",{className:"caption text-soft",children:["past ",i.window]})]}):t.jsx(a,{children:"no difficulty data yet"})}const N=d({...r,component:u});export{N as btcDifficultyChartFrame};
@@ -1 +1 @@
1
- import{j as t}from"./react-qoZPGuNy.js";import{F as i,a as e}from"./btc-shared-yOWoU9Im.js";import{f as c,aY as n,aZ as f}from"./index-BHlJHScr.js";import{F as a}from"./ui-Bq3RQsdJ.js";import"./format-DxkEZcwQ.js";n.schema;const l={fastest:"Next block",halfHour:"~30 min",hour:"~1 hour",economy:"Economy",minimum:"Minimum"},u={fastest:e[0],halfHour:e[1],hour:e[2],economy:e[3],minimum:e[4]};function p({config:m}){const{fees:o,isLoading:r}=f();return r?t.jsx(a,{loading:!0,children:"loading fees…"}):o?t.jsx("div",{className:"flex h-full flex-wrap content-center items-stretch justify-center gap-2",children:m.tiers.map(s=>t.jsx(i,{className:"min-w-[64px] flex-1",color:u[s],value:o[s],caption:l[s]},s))}):t.jsx(a,{children:"no fee data yet"})}const E=c({...n,component:p});export{E as btcFeesFrame};
1
+ import{j as t}from"./react-qoZPGuNy.js";import{F as i,a as e}from"./btc-shared-yOWoU9Im.js";import{f as c,aY as n,aZ as f}from"./index-BJ1Zyy42.js";import{F as a}from"./ui-Bq3RQsdJ.js";import"./format-DxkEZcwQ.js";n.schema;const l={fastest:"Next block",halfHour:"~30 min",hour:"~1 hour",economy:"Economy",minimum:"Minimum"},u={fastest:e[0],halfHour:e[1],hour:e[2],economy:e[3],minimum:e[4]};function p({config:m}){const{fees:o,isLoading:r}=f();return r?t.jsx(a,{loading:!0,children:"loading fees…"}):o?t.jsx("div",{className:"flex h-full flex-wrap content-center items-stretch justify-center gap-2",children:m.tiers.map(s=>t.jsx(i,{className:"min-w-[64px] flex-1",color:u[s],value:o[s],caption:l[s]},s))}):t.jsx(a,{children:"no fee data yet"})}const E=c({...n,component:p});export{E as btcFeesFrame};
@@ -1 +1 @@
1
- import{r as c,j as t}from"./react-qoZPGuNy.js";import{k as h,d as l}from"./format-DxkEZcwQ.js";import{f as m,b2 as i,b3 as d}from"./index-BHlJHScr.js";import{F as r}from"./ui-Bq3RQsdJ.js";import{M as f}from"./mini-line-chart-DyG55cVW.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";i.schema;function x({config:a}){const{data:e,isLoading:n}=d(a.window),o=c.useMemo(()=>((e==null?void 0:e.hashrates)??[]).map(s=>({date:new Date(s.time).toISOString(),value:s.hashrate})),[e==null?void 0:e.hashrates]);return n?t.jsx(r,{loading:!0,children:"loading hashrate…"}):e?t.jsxs("div",{className:"flex h-full min-h-0 flex-col justify-center gap-3",children:[t.jsxs("div",{className:"flex items-end justify-between gap-3",children:[t.jsxs("div",{children:[t.jsx("div",{className:"caption text-soft uppercase",children:"network hashrate"}),t.jsx("div",{className:"metric-lg text-strong leading-none",children:h(e.currentHashrate)})]}),t.jsxs("div",{className:"text-right",children:[t.jsx("div",{className:"body-md text-normal font-bold tabular-nums",children:l(e.currentDifficulty)}),t.jsx("div",{className:"caption text-soft",children:"difficulty"})]})]}),t.jsx(f,{data:o,width:320,height:54,color:"hsl(var(--zf-accent-hue, 242) 85% 72%)"}),t.jsxs("div",{className:"caption text-soft",children:["past ",a.window]})]}):t.jsx(r,{children:"no hashrate data yet"})}const b=m({...i,component:x});export{b as btcHashrateFrame};
1
+ import{r as c,j as t}from"./react-qoZPGuNy.js";import{k as h,d as l}from"./format-DxkEZcwQ.js";import{f as m,b2 as i,b3 as d}from"./index-BJ1Zyy42.js";import{F as r}from"./ui-Bq3RQsdJ.js";import{M as f}from"./mini-line-chart-DyG55cVW.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";i.schema;function x({config:a}){const{data:e,isLoading:n}=d(a.window),o=c.useMemo(()=>((e==null?void 0:e.hashrates)??[]).map(s=>({date:new Date(s.time).toISOString(),value:s.hashrate})),[e==null?void 0:e.hashrates]);return n?t.jsx(r,{loading:!0,children:"loading hashrate…"}):e?t.jsxs("div",{className:"flex h-full min-h-0 flex-col justify-center gap-3",children:[t.jsxs("div",{className:"flex items-end justify-between gap-3",children:[t.jsxs("div",{children:[t.jsx("div",{className:"caption text-soft uppercase",children:"network hashrate"}),t.jsx("div",{className:"metric-lg text-strong leading-none",children:h(e.currentHashrate)})]}),t.jsxs("div",{className:"text-right",children:[t.jsx("div",{className:"body-md text-normal font-bold tabular-nums",children:l(e.currentDifficulty)}),t.jsx("div",{className:"caption text-soft",children:"difficulty"})]})]}),t.jsx(f,{data:o,width:320,height:54,color:"hsl(var(--zf-accent-hue, 242) 85% 72%)"}),t.jsxs("div",{className:"caption text-soft",children:["past ",a.window]})]}):t.jsx(r,{children:"no hashrate data yet"})}const b=m({...i,component:x});export{b as btcHashrateFrame};
@@ -1 +1 @@
1
- import{j as e}from"./react-qoZPGuNy.js";import{F as m,f as d}from"./btc-shared-yOWoU9Im.js";import{d as x}from"./format-DxkEZcwQ.js";import{f as p,a_ as o,a$ as f}from"./index-BHlJHScr.js";import{F as a,a as j}from"./ui-Bq3RQsdJ.js";o.schema;function u({config:i}){const{state:s,isLoading:n}=f();if(n)return e.jsx(a,{loading:!0,children:"loading mempool…"});if(!s)return e.jsx(a,{children:"no mempool data yet"});const l=s.projected.slice(0,i.projectedBlocks),r=(s.vsize/1e6).toFixed(1);return e.jsxs("div",{className:"flex h-full min-h-0 flex-col justify-center gap-3",children:[e.jsxs("div",{className:"flex items-end justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("div",{className:"caption text-soft uppercase",children:"unconfirmed"}),e.jsx("div",{className:"metric-lg text-strong leading-none",children:s.count.toLocaleString("en-US")}),e.jsx("div",{className:"body-sm text-soft",children:"transactions"})]}),e.jsxs("div",{className:"text-right",children:[e.jsxs("div",{className:"body-md text-normal font-bold tabular-nums",children:[r," MvB"]}),e.jsx("div",{className:"caption text-soft",children:"pending vsize"})]})]}),e.jsx("div",{className:`flex gap-1.5 ${j}`,children:l.map((t,c)=>e.jsx(m,{className:"min-w-[76px]",color:d(t.medianFee),value:`~${Math.round(t.medianFee)}`,caption:`${x(t.nTx)} tx`},c))})]})}const M=p({...o,component:u});export{M as btcMempoolFrame};
1
+ import{j as e}from"./react-qoZPGuNy.js";import{F as m,f as d}from"./btc-shared-yOWoU9Im.js";import{d as x}from"./format-DxkEZcwQ.js";import{f as p,a_ as o,a$ as f}from"./index-BJ1Zyy42.js";import{F as a,a as j}from"./ui-Bq3RQsdJ.js";o.schema;function u({config:i}){const{state:s,isLoading:n}=f();if(n)return e.jsx(a,{loading:!0,children:"loading mempool…"});if(!s)return e.jsx(a,{children:"no mempool data yet"});const l=s.projected.slice(0,i.projectedBlocks),r=(s.vsize/1e6).toFixed(1);return e.jsxs("div",{className:"flex h-full min-h-0 flex-col justify-center gap-3",children:[e.jsxs("div",{className:"flex items-end justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("div",{className:"caption text-soft uppercase",children:"unconfirmed"}),e.jsx("div",{className:"metric-lg text-strong leading-none",children:s.count.toLocaleString("en-US")}),e.jsx("div",{className:"body-sm text-soft",children:"transactions"})]}),e.jsxs("div",{className:"text-right",children:[e.jsxs("div",{className:"body-md text-normal font-bold tabular-nums",children:[r," MvB"]}),e.jsx("div",{className:"caption text-soft",children:"pending vsize"})]})]}),e.jsx("div",{className:`flex gap-1.5 ${j}`,children:l.map((t,c)=>e.jsx(m,{className:"min-w-[76px]",color:d(t.medianFee),value:`~${Math.round(t.medianFee)}`,caption:`${x(t.nTx)} tx`},c))})]})}const M=p({...o,component:u});export{M as btcMempoolFrame};
@@ -1 +1 @@
1
- import{r as n,j as e}from"./react-qoZPGuNy.js";import{i as C}from"./content-shared-BZ1XzrJx.js";import{f as F,aQ as N}from"./index-BHlJHScr.js";import{s as A}from"./ui-Bq3RQsdJ.js";N.schema;const R="var(--color-highlight)";function x(t){const s=Number(t);return Number.isFinite(s)?s:0}function d({label:t,value:s,onChange:i,prefix:r,suffix:l}){return e.jsxs("label",{className:"flex flex-col gap-1",children:[e.jsx("span",{className:"caption text-soft uppercase tracking-[0.12em]",children:t}),e.jsxs("span",{className:`flex items-center gap-1 px-2 py-1.5 ${C}`,children:[r&&e.jsx("span",{className:"body-sm text-soft",children:r}),e.jsx("input",{type:"number",inputMode:"decimal",value:s,onChange:c=>i(c.target.value),className:"body-sm text-normal min-w-0 flex-1 bg-transparent text-right tabular-nums outline-none [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none"}),l&&e.jsx("span",{className:"body-sm text-soft",children:l})]})]})}function M({config:t}){const[s,i]=n.useState(String(t.account)),[r,l]=n.useState(String(t.riskPct)),[c,g]=n.useState(String(t.entry)),[h,v]=n.useState(String(t.stop));n.useEffect(()=>i(String(t.account)),[t.account]),n.useEffect(()=>l(String(t.riskPct)),[t.riskPct]),n.useEffect(()=>g(String(t.entry)),[t.entry]),n.useEffect(()=>v(String(t.stop)),[t.stop]);const a=n.useMemo(()=>{const o=x(s),w=x(r),m=x(c),j=x(h),S=o*w/100,p=Math.abs(m-j),y=p>0?S/p:0,E=y*m,P=m===j?"—":j<m?"long":"short";return{riskAmount:S,perUnit:p,size:y,value:E,side:P,hasStop:p>0}},[s,r,c,h]),u=t.currency,f=o=>`${u}${o.toLocaleString(void 0,{maximumFractionDigits:2})}`,k=o=>o.toLocaleString(void 0,{maximumFractionDigits:o>=1?2:4});return e.jsxs("div",{className:`${A} flex flex-col gap-3`,children:[e.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[e.jsx(d,{label:"Account",value:s,onChange:i,prefix:u}),e.jsx(d,{label:"Risk",value:r,onChange:l,suffix:"%"}),e.jsx(d,{label:"Entry",value:c,onChange:g,prefix:u}),e.jsx(d,{label:"Stop",value:h,onChange:v,prefix:u})]}),e.jsxs("div",{className:"flex flex-col gap-1.5 rounded-lg border border-white/[0.07] bg-white/[0.03] p-2.5",children:[e.jsxs("div",{className:"flex items-baseline justify-between",children:[e.jsx("span",{className:"caption text-soft uppercase tracking-[0.12em]",children:"Position size"}),e.jsx("span",{className:"body-lg font-extrabold tabular-nums",style:{color:a.hasStop?R:void 0},children:a.hasStop?k(a.size):"—"})]}),e.jsx(b,{label:"Risk amount",value:f(a.riskAmount)}),e.jsx(b,{label:"Per-unit risk",value:a.hasStop?f(a.perUnit):"set a stop"}),e.jsx(b,{label:"Position value",value:a.hasStop?f(a.value):"—"}),e.jsx(b,{label:"Direction",value:a.side})]})]})}function b({label:t,value:s}){return e.jsxs("div",{className:"flex items-baseline justify-between",children:[e.jsx("span",{className:"body-sm text-soft",children:t}),e.jsx("span",{className:"body-sm text-normal tabular-nums",children:s})]})}const U=F({...N,component:M});export{U as calculatorFrame};
1
+ import{r as n,j as e}from"./react-qoZPGuNy.js";import{i as C}from"./content-shared-BZ1XzrJx.js";import{f as F,aQ as N}from"./index-BJ1Zyy42.js";import{s as A}from"./ui-Bq3RQsdJ.js";N.schema;const R="var(--color-highlight)";function x(t){const s=Number(t);return Number.isFinite(s)?s:0}function d({label:t,value:s,onChange:i,prefix:r,suffix:l}){return e.jsxs("label",{className:"flex flex-col gap-1",children:[e.jsx("span",{className:"caption text-soft uppercase tracking-[0.12em]",children:t}),e.jsxs("span",{className:`flex items-center gap-1 px-2 py-1.5 ${C}`,children:[r&&e.jsx("span",{className:"body-sm text-soft",children:r}),e.jsx("input",{type:"number",inputMode:"decimal",value:s,onChange:c=>i(c.target.value),className:"body-sm text-normal min-w-0 flex-1 bg-transparent text-right tabular-nums outline-none [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none"}),l&&e.jsx("span",{className:"body-sm text-soft",children:l})]})]})}function M({config:t}){const[s,i]=n.useState(String(t.account)),[r,l]=n.useState(String(t.riskPct)),[c,g]=n.useState(String(t.entry)),[h,v]=n.useState(String(t.stop));n.useEffect(()=>i(String(t.account)),[t.account]),n.useEffect(()=>l(String(t.riskPct)),[t.riskPct]),n.useEffect(()=>g(String(t.entry)),[t.entry]),n.useEffect(()=>v(String(t.stop)),[t.stop]);const a=n.useMemo(()=>{const o=x(s),w=x(r),m=x(c),j=x(h),S=o*w/100,p=Math.abs(m-j),y=p>0?S/p:0,E=y*m,P=m===j?"—":j<m?"long":"short";return{riskAmount:S,perUnit:p,size:y,value:E,side:P,hasStop:p>0}},[s,r,c,h]),u=t.currency,f=o=>`${u}${o.toLocaleString(void 0,{maximumFractionDigits:2})}`,k=o=>o.toLocaleString(void 0,{maximumFractionDigits:o>=1?2:4});return e.jsxs("div",{className:`${A} flex flex-col gap-3`,children:[e.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[e.jsx(d,{label:"Account",value:s,onChange:i,prefix:u}),e.jsx(d,{label:"Risk",value:r,onChange:l,suffix:"%"}),e.jsx(d,{label:"Entry",value:c,onChange:g,prefix:u}),e.jsx(d,{label:"Stop",value:h,onChange:v,prefix:u})]}),e.jsxs("div",{className:"flex flex-col gap-1.5 rounded-lg border border-white/[0.07] bg-white/[0.03] p-2.5",children:[e.jsxs("div",{className:"flex items-baseline justify-between",children:[e.jsx("span",{className:"caption text-soft uppercase tracking-[0.12em]",children:"Position size"}),e.jsx("span",{className:"body-lg font-extrabold tabular-nums",style:{color:a.hasStop?R:void 0},children:a.hasStop?k(a.size):"—"})]}),e.jsx(b,{label:"Risk amount",value:f(a.riskAmount)}),e.jsx(b,{label:"Per-unit risk",value:a.hasStop?f(a.perUnit):"set a stop"}),e.jsx(b,{label:"Position value",value:a.hasStop?f(a.value):"—"}),e.jsx(b,{label:"Direction",value:a.side})]})]})}function b({label:t,value:s}){return e.jsxs("div",{className:"flex items-baseline justify-between",children:[e.jsx("span",{className:"body-sm text-soft",children:t}),e.jsx("span",{className:"body-sm text-normal tabular-nums",children:s})]})}const U=F({...N,component:M});export{U as calculatorFrame};
@@ -1 +1 @@
1
- import{r as f,j as t}from"./react-qoZPGuNy.js";import{f as d,dm as c,O as p,h as n}from"./index-BHlJHScr.js";import{f as h}from"./format-DxkEZcwQ.js";import{F as u}from"./ui-Bq3RQsdJ.js";import{B as x}from"./bar-chart-DCMbxUJx.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";c.schema;function b({config:r}){const{data:e,isLoading:m}=p(r.symbol),a=f.useMemo(()=>{const o=(e==null?void 0:e.metrics)??[],s=o.find(l=>l.label==="Total assets"),i=o.find(l=>l.label==="Shareholders' equity");return!s||!i?null:{fiscalPeriod:s.fiscalPeriod,bars:[{label:"Total assets",value:s.value},{label:"Liabilities",value:s.value-i.value},{label:"Shareholders' equity",value:i.value}]}},[e]);return m?t.jsx(u,{loading:!0,children:"loading capital structure…"}):a?t.jsxs("div",{className:"flex h-full flex-col justify-center gap-1 text-normal",children:[t.jsx(x,{data:a.bars,orientation:"horizontal",height:Math.max(a.bars.length*24,96),formatValue:h}),t.jsxs("div",{className:"caption text-soft text-center",children:[(e==null?void 0:e.entityName)||n(r.symbol)," · ",a.fiscalPeriod," · liabilities derived (assets − equity)"]})]}):t.jsxs(u,{children:["no SEC balance-sheet data for “",n(r.symbol),"”"]})}const g=d({...c,component:b});export{g as capitalStructureBarsFrame};
1
+ import{r as f,j as t}from"./react-qoZPGuNy.js";import{f as d,dm as c,O as p,h as n}from"./index-BJ1Zyy42.js";import{f as h}from"./format-DxkEZcwQ.js";import{F as u}from"./ui-Bq3RQsdJ.js";import{B as x}from"./bar-chart-DCMbxUJx.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";c.schema;function b({config:r}){const{data:e,isLoading:m}=p(r.symbol),a=f.useMemo(()=>{const o=(e==null?void 0:e.metrics)??[],s=o.find(l=>l.label==="Total assets"),i=o.find(l=>l.label==="Shareholders' equity");return!s||!i?null:{fiscalPeriod:s.fiscalPeriod,bars:[{label:"Total assets",value:s.value},{label:"Liabilities",value:s.value-i.value},{label:"Shareholders' equity",value:i.value}]}},[e]);return m?t.jsx(u,{loading:!0,children:"loading capital structure…"}):a?t.jsxs("div",{className:"flex h-full flex-col justify-center gap-1 text-normal",children:[t.jsx(x,{data:a.bars,orientation:"horizontal",height:Math.max(a.bars.length*24,96),formatValue:h}),t.jsxs("div",{className:"caption text-soft text-center",children:[(e==null?void 0:e.entityName)||n(r.symbol)," · ",a.fiscalPeriod," · liabilities derived (assets − equity)"]})]}):t.jsxs(u,{children:["no SEC balance-sheet data for “",n(r.symbol),"”"]})}const g=d({...c,component:b});export{g as capitalStructureBarsFrame};
@@ -1 +1 @@
1
- import{j as i}from"./react-qoZPGuNy.js";import{d as t}from"./format-DxkEZcwQ.js";import{M as r}from"./metric-row-BVVhjsjK.js";import{f as e,c6 as m,c7 as c}from"./index-BHlJHScr.js";import{F as s,s as l}from"./ui-Bq3RQsdJ.js";function h(){const{chains:o,isLoading:n}=c();return n?i.jsx(s,{loading:!0,children:"loading chain activity…"}):o.length===0?i.jsx(s,{children:"no chain data"}):i.jsx("div",{className:l,children:o.map(a=>i.jsx(r,{label:a.label,meta:`${t(a.mempoolTxns)} mempool · ${t(a.blocks24h)} blocks`,value:`${t(a.transactions24h)} tx`},a.chain))})}const v=e({...m,component:h});export{v as chainActivityFrame};
1
+ import{j as i}from"./react-qoZPGuNy.js";import{d as t}from"./format-DxkEZcwQ.js";import{M as r}from"./metric-row-BVVhjsjK.js";import{f as e,c6 as m,c7 as c}from"./index-BJ1Zyy42.js";import{F as s,s as l}from"./ui-Bq3RQsdJ.js";function h(){const{chains:o,isLoading:n}=c();return n?i.jsx(s,{loading:!0,children:"loading chain activity…"}):o.length===0?i.jsx(s,{children:"no chain data"}):i.jsx("div",{className:l,children:o.map(a=>i.jsx(r,{label:a.label,meta:`${t(a.mempoolTxns)} mempool · ${t(a.blocks24h)} blocks`,value:`${t(a.transactions24h)} tx`},a.chain))})}const v=e({...m,component:h});export{v as chainActivityFrame};
@@ -1 +1 @@
1
- import{r as m,j as t}from"./react-qoZPGuNy.js";import{d as l}from"./format-DxkEZcwQ.js";import{f as h,cd as n,c7 as f}from"./index-BHlJHScr.js";import{F as e}from"./ui-Bq3RQsdJ.js";import{B as p}from"./bar-chart-DCMbxUJx.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";n.schema;function x({config:r}){const{chains:s,isLoading:o}=f(),i=m.useMemo(()=>[...s].sort((a,c)=>c.transactions24h-a.transactions24h).slice(0,r.limit).map(a=>({label:a.label,value:a.transactions24h})),[s,r.limit]);return o?t.jsx(e,{loading:!0,children:"loading chain activity…"}):i.length===0?t.jsx(e,{children:"no chain data yet"}):t.jsxs("div",{className:"flex h-full flex-col justify-center gap-1 text-normal",children:[t.jsx(p,{data:i,orientation:"horizontal",height:Math.max(i.length*26,96),formatValue:l}),t.jsx("div",{className:"caption text-soft text-center",children:"transactions · last 24h"})]})}const A=h({...n,component:x});export{A as chainActivityBarsFrame};
1
+ import{r as m,j as t}from"./react-qoZPGuNy.js";import{d as l}from"./format-DxkEZcwQ.js";import{f as h,cd as n,c7 as f}from"./index-BJ1Zyy42.js";import{F as e}from"./ui-Bq3RQsdJ.js";import{B as p}from"./bar-chart-DCMbxUJx.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";n.schema;function x({config:r}){const{chains:s,isLoading:o}=f(),i=m.useMemo(()=>[...s].sort((a,c)=>c.transactions24h-a.transactions24h).slice(0,r.limit).map(a=>({label:a.label,value:a.transactions24h})),[s,r.limit]);return o?t.jsx(e,{loading:!0,children:"loading chain activity…"}):i.length===0?t.jsx(e,{children:"no chain data yet"}):t.jsxs("div",{className:"flex h-full flex-col justify-center gap-1 text-normal",children:[t.jsx(p,{data:i,orientation:"horizontal",height:Math.max(i.length*26,96),formatValue:l}),t.jsx("div",{className:"caption text-soft text-center",children:"transactions · last 24h"})]})}const A=h({...n,component:x});export{A as chainActivityBarsFrame};
@@ -1 +1 @@
1
- import{r as c,j as a}from"./react-qoZPGuNy.js";import{c as s,d as m,a as h}from"./format-DxkEZcwQ.js";import{f as l,cW as o,c7 as p}from"./index-BHlJHScr.js";import{F as i}from"./ui-Bq3RQsdJ.js";import{S as f}from"./scatter-chart-B78EA7lD.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";o.schema;function x(g){const{chains:e,isLoading:n}=p(),r=c.useMemo(()=>e.filter(t=>t.transactions24h>0).map(t=>({id:t.chain,label:t.label,x:t.priceChangePct24h,y:t.transactions24h,weight:t.mempoolTxns,color:s(t.priceChangePct24h)})),[e]);return n?a.jsx(i,{loading:!0,children:"loading chain activity…"}):r.length===0?a.jsx(i,{children:"no chain data yet"}):a.jsxs("div",{className:"flex h-full flex-col justify-center gap-1 text-normal",children:[a.jsx(f,{data:r,yScale:"log",height:210,zeroXLine:!0,formatX:h,formatY:m,maxLabels:10}),a.jsx("div",{className:"caption text-soft text-center",children:"24h price change (x) vs 24h transactions (y, log) · bubble = mempool backlog"})]})}const S=l({...o,component:x});export{S as chainActivityScatterFrame};
1
+ import{r as c,j as a}from"./react-qoZPGuNy.js";import{c as s,d as m,a as h}from"./format-DxkEZcwQ.js";import{f as l,cW as o,c7 as p}from"./index-BJ1Zyy42.js";import{F as i}from"./ui-Bq3RQsdJ.js";import{S as f}from"./scatter-chart-B78EA7lD.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";o.schema;function x(g){const{chains:e,isLoading:n}=p(),r=c.useMemo(()=>e.filter(t=>t.transactions24h>0).map(t=>({id:t.chain,label:t.label,x:t.priceChangePct24h,y:t.transactions24h,weight:t.mempoolTxns,color:s(t.priceChangePct24h)})),[e]);return n?a.jsx(i,{loading:!0,children:"loading chain activity…"}):r.length===0?a.jsx(i,{children:"no chain data yet"}):a.jsxs("div",{className:"flex h-full flex-col justify-center gap-1 text-normal",children:[a.jsx(f,{data:r,yScale:"log",height:210,zeroXLine:!0,formatX:h,formatY:m,maxLabels:10}),a.jsx("div",{className:"caption text-soft text-center",children:"24h price change (x) vs 24h transactions (y, log) · bubble = mempool backlog"})]})}const S=l({...o,component:x});export{S as chainActivityScatterFrame};
@@ -1 +1 @@
1
- import{r as h,j as e}from"./react-qoZPGuNy.js";import{a as m,D as l,U as p}from"./format-DxkEZcwQ.js";import{f,cV as s,c7 as u}from"./index-BHlJHScr.js";import{F as n}from"./ui-Bq3RQsdJ.js";import{B as g}from"./bar-chart-DCMbxUJx.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";s.schema;function x({config:i}){const{chains:o,isLoading:c}=u(),t=h.useMemo(()=>[...o].sort((a,r)=>Math.abs(r.priceChangePct24h)-Math.abs(a.priceChangePct24h)).slice(0,i.limit).sort((a,r)=>r.priceChangePct24h-a.priceChangePct24h).map(a=>({label:a.label,value:a.priceChangePct24h})),[o,i.limit]);return c?e.jsx(n,{loading:!0,children:"loading chain movers…"}):t.length===0?e.jsx(n,{children:"no chain data yet"}):e.jsx("div",{className:"flex h-full flex-col justify-center text-normal",children:e.jsx(g,{data:t,orientation:"horizontal",color:p,negativeColor:l,height:Math.max(t.length*24,96),formatValue:m})})}const b=f({...s,component:x});export{b as chainPriceMoversFrame};
1
+ import{r as h,j as e}from"./react-qoZPGuNy.js";import{a as m,D as l,U as p}from"./format-DxkEZcwQ.js";import{f,cV as s,c7 as u}from"./index-BJ1Zyy42.js";import{F as n}from"./ui-Bq3RQsdJ.js";import{B as g}from"./bar-chart-DCMbxUJx.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";s.schema;function x({config:i}){const{chains:o,isLoading:c}=u(),t=h.useMemo(()=>[...o].sort((a,r)=>Math.abs(r.priceChangePct24h)-Math.abs(a.priceChangePct24h)).slice(0,i.limit).sort((a,r)=>r.priceChangePct24h-a.priceChangePct24h).map(a=>({label:a.label,value:a.priceChangePct24h})),[o,i.limit]);return c?e.jsx(n,{loading:!0,children:"loading chain movers…"}):t.length===0?e.jsx(n,{children:"no chain data yet"}):e.jsx("div",{className:"flex h-full flex-col justify-center text-normal",children:e.jsx(g,{data:t,orientation:"horizontal",color:p,negativeColor:l,height:Math.max(t.length*24,96),formatValue:m})})}const b=f({...s,component:x});export{b as chainPriceMoversFrame};
@@ -1 +1 @@
1
- import{r as x,j as t}from"./react-qoZPGuNy.js";import{f as p,bZ as o,a8 as u}from"./index-BHlJHScr.js";import{s as b}from"./ui-Bq3RQsdJ.js";o.schema;function f({config:s}){const r=u(),[i,m]=x.useState(s.checked),l=r?s.checked:i,h=a=>{const e=s.items.map((k,c)=>c===a?!l[c]:!!l[c]);r?r({checked:e}):m(e)},d=s.items.filter((a,e)=>l[e]).length,n=s.title.trim();return t.jsxs("div",{className:"flex h-full w-full flex-col",children:[t.jsxs("div",{className:"mb-1 flex shrink-0 items-baseline justify-between gap-2",children:[n&&t.jsx("div",{className:"body-sm text-strong truncate font-semibold",children:n}),t.jsxs("div",{className:"caption text-soft shrink-0 tabular-nums",children:[d,"/",s.items.length]})]}),t.jsx("div",{className:`min-h-0 flex-1 ${b}`,children:s.items.map((a,e)=>t.jsxs("button",{type:"button",onClick:()=>h(e),className:"flex w-full items-center gap-2 py-1 text-left",children:[t.jsx("span",{className:"caption flex h-4 w-4 shrink-0 items-center justify-center rounded border leading-none",style:{borderColor:l[e]?"var(--color-highlight)":"rgba(255,255,255,0.2)",background:l[e]?"var(--color-highlight)":"transparent",color:l[e]?"#0b0e14":"transparent"},children:"✓"}),t.jsx("span",{className:`body-sm ${l[e]?"text-disabled line-through":"text-normal"}`,children:a})]},e))})]})}const v=p({...o,component:f});export{v as checklistFrame};
1
+ import{r as x,j as t}from"./react-qoZPGuNy.js";import{f as p,bZ as o,a8 as u}from"./index-BJ1Zyy42.js";import{s as b}from"./ui-Bq3RQsdJ.js";o.schema;function f({config:s}){const r=u(),[i,m]=x.useState(s.checked),l=r?s.checked:i,h=a=>{const e=s.items.map((k,c)=>c===a?!l[c]:!!l[c]);r?r({checked:e}):m(e)},d=s.items.filter((a,e)=>l[e]).length,n=s.title.trim();return t.jsxs("div",{className:"flex h-full w-full flex-col",children:[t.jsxs("div",{className:"mb-1 flex shrink-0 items-baseline justify-between gap-2",children:[n&&t.jsx("div",{className:"body-sm text-strong truncate font-semibold",children:n}),t.jsxs("div",{className:"caption text-soft shrink-0 tabular-nums",children:[d,"/",s.items.length]})]}),t.jsx("div",{className:`min-h-0 flex-1 ${b}`,children:s.items.map((a,e)=>t.jsxs("button",{type:"button",onClick:()=>h(e),className:"flex w-full items-center gap-2 py-1 text-left",children:[t.jsx("span",{className:"caption flex h-4 w-4 shrink-0 items-center justify-center rounded border leading-none",style:{borderColor:l[e]?"var(--color-highlight)":"rgba(255,255,255,0.2)",background:l[e]?"var(--color-highlight)":"transparent",color:l[e]?"#0b0e14":"transparent"},children:"✓"}),t.jsx("span",{className:`body-sm ${l[e]?"text-disabled line-through":"text-normal"}`,children:a})]},e))})]})}const v=p({...o,component:f});export{v as checklistFrame};
@@ -1 +1 @@
1
- import{r as s,j as o}from"./react-qoZPGuNy.js";import{f as R,l as y}from"./index-BHlJHScr.js";import{F as b}from"./ui-Bq3RQsdJ.js";import{u as m}from"./use-countdown-BmcF-qdL.js";y.schema;function u(e){const r={hour:"",minute:"",second:"",fractional:"",period:""};for(const n of e.formatToParts(new Date))n.type==="hour"?r.hour=n.value:n.type==="minute"?r.minute=n.value:n.type==="second"?r.second=n.value:n.type==="fractionalSecond"?r.fractional=n.value:n.type==="dayPeriod"&&(r.period=n.value);return r}function j({config:e}){const r=s.useRef(null),n=s.useRef(null),f=s.useRef(null),p=s.useRef(null),h=s.useRef(null),a=e.timezone.trim()||void 0,c=e.showSeconds||e.showMillis,t=s.useMemo(()=>{var l;try{const z=new Intl.DateTimeFormat(void 0,{timeZone:a,hour:"2-digit",minute:"2-digit",second:c?"2-digit":void 0,fractionalSecondDigits:e.showMillis?3:void 0,hour12:e.hour12}),v=e.showDate?new Intl.DateTimeFormat(void 0,{timeZone:a,weekday:"short",month:"short",day:"numeric"}):null;let x="";return e.showTimezone&&(x=((l=new Intl.DateTimeFormat(void 0,{timeZone:a,hour:"2-digit",timeZoneName:"short"}).formatToParts(new Date).find(D=>D.type==="timeZoneName"))==null?void 0:l.value)??""),{time:z,date:v,zone:x,error:null}}catch{return{time:null,date:null,zone:"",error:a??"invalid timezone"}}},[a,c,e.showMillis,e.hour12,e.showDate,e.showTimezone]);if(m({ref:r,getRemainingMs:()=>Date.now(),format:()=>{if(!t.time)return"";const l=u(t.time);return`${l.hour}:${l.minute}`}}),m({ref:n,getRemainingMs:()=>Date.now(),format:()=>t.time?`:${u(t.time).second}`:""}),m({ref:f,getRemainingMs:()=>Date.now(),format:()=>t.time?`.${u(t.time).fractional}`:""}),m({ref:p,getRemainingMs:()=>Date.now(),format:()=>t.time?u(t.time).period:""}),m({ref:h,getRemainingMs:()=>Date.now(),format:()=>t.date?t.date.format(new Date):""}),t.error)return o.jsxs(b,{children:["unknown timezone: ",t.error]});const i=u(t.time),d="var(--color-highlight)",w="0 0 18px hsl(var(--zf-accent-hue, 242) 92% 70% / 0.45)";return o.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 text-center [container-type:size]",children:[o.jsxs("div",{className:"text-strong inline-flex max-w-full items-baseline justify-center whitespace-nowrap font-dmsans font-extrabold leading-none tracking-[-0.01em] tabular-nums",style:{fontSize:"clamp(1.6rem, 37cqmin, 5.5rem)"},children:[o.jsx("span",{ref:r,suppressHydrationWarning:!0,children:`${i.hour}:${i.minute}`}),c&&o.jsx("span",{ref:n,suppressHydrationWarning:!0,className:"font-bold",style:{fontSize:"0.46em",color:d,textShadow:w},children:`:${i.second}`}),e.showMillis&&o.jsx("span",{ref:f,suppressHydrationWarning:!0,className:"font-semibold",style:{fontSize:"0.3em",color:d,opacity:.65},children:`.${i.fractional}`}),e.hour12&&o.jsx("span",{ref:p,suppressHydrationWarning:!0,className:"text-soft ml-[0.3em] self-center font-semibold uppercase",style:{fontSize:"0.3em",letterSpacing:"0.08em"},children:i.period})]}),e.showDate&&t.date&&o.jsx("div",{ref:h,suppressHydrationWarning:!0,className:"caption text-soft tabular-nums",children:t.date.format(new Date)}),(e.label||t.zone)&&o.jsxs("div",{className:"caption text-soft inline-flex items-center gap-1.5 uppercase tracking-[0.18em]",children:[o.jsx("span",{"aria-hidden":!0,className:"inline-block h-1 w-1 rounded-full",style:{background:d,boxShadow:w}}),e.label&&t.zone?`${e.label} · ${t.zone}`:e.label||t.zone]})]})}const k=R({...y,component:j});export{k as clockFrame};
1
+ import{r as s,j as o}from"./react-qoZPGuNy.js";import{f as R,l as y}from"./index-BJ1Zyy42.js";import{F as b}from"./ui-Bq3RQsdJ.js";import{u as m}from"./use-countdown-BmcF-qdL.js";y.schema;function u(e){const r={hour:"",minute:"",second:"",fractional:"",period:""};for(const n of e.formatToParts(new Date))n.type==="hour"?r.hour=n.value:n.type==="minute"?r.minute=n.value:n.type==="second"?r.second=n.value:n.type==="fractionalSecond"?r.fractional=n.value:n.type==="dayPeriod"&&(r.period=n.value);return r}function j({config:e}){const r=s.useRef(null),n=s.useRef(null),f=s.useRef(null),p=s.useRef(null),h=s.useRef(null),a=e.timezone.trim()||void 0,c=e.showSeconds||e.showMillis,t=s.useMemo(()=>{var l;try{const z=new Intl.DateTimeFormat(void 0,{timeZone:a,hour:"2-digit",minute:"2-digit",second:c?"2-digit":void 0,fractionalSecondDigits:e.showMillis?3:void 0,hour12:e.hour12}),v=e.showDate?new Intl.DateTimeFormat(void 0,{timeZone:a,weekday:"short",month:"short",day:"numeric"}):null;let x="";return e.showTimezone&&(x=((l=new Intl.DateTimeFormat(void 0,{timeZone:a,hour:"2-digit",timeZoneName:"short"}).formatToParts(new Date).find(D=>D.type==="timeZoneName"))==null?void 0:l.value)??""),{time:z,date:v,zone:x,error:null}}catch{return{time:null,date:null,zone:"",error:a??"invalid timezone"}}},[a,c,e.showMillis,e.hour12,e.showDate,e.showTimezone]);if(m({ref:r,getRemainingMs:()=>Date.now(),format:()=>{if(!t.time)return"";const l=u(t.time);return`${l.hour}:${l.minute}`}}),m({ref:n,getRemainingMs:()=>Date.now(),format:()=>t.time?`:${u(t.time).second}`:""}),m({ref:f,getRemainingMs:()=>Date.now(),format:()=>t.time?`.${u(t.time).fractional}`:""}),m({ref:p,getRemainingMs:()=>Date.now(),format:()=>t.time?u(t.time).period:""}),m({ref:h,getRemainingMs:()=>Date.now(),format:()=>t.date?t.date.format(new Date):""}),t.error)return o.jsxs(b,{children:["unknown timezone: ",t.error]});const i=u(t.time),d="var(--color-highlight)",w="0 0 18px hsl(var(--zf-accent-hue, 242) 92% 70% / 0.45)";return o.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 text-center [container-type:size]",children:[o.jsxs("div",{className:"text-strong inline-flex max-w-full items-baseline justify-center whitespace-nowrap font-dmsans font-extrabold leading-none tracking-[-0.01em] tabular-nums",style:{fontSize:"clamp(1.6rem, 37cqmin, 5.5rem)"},children:[o.jsx("span",{ref:r,suppressHydrationWarning:!0,children:`${i.hour}:${i.minute}`}),c&&o.jsx("span",{ref:n,suppressHydrationWarning:!0,className:"font-bold",style:{fontSize:"0.46em",color:d,textShadow:w},children:`:${i.second}`}),e.showMillis&&o.jsx("span",{ref:f,suppressHydrationWarning:!0,className:"font-semibold",style:{fontSize:"0.3em",color:d,opacity:.65},children:`.${i.fractional}`}),e.hour12&&o.jsx("span",{ref:p,suppressHydrationWarning:!0,className:"text-soft ml-[0.3em] self-center font-semibold uppercase",style:{fontSize:"0.3em",letterSpacing:"0.08em"},children:i.period})]}),e.showDate&&t.date&&o.jsx("div",{ref:h,suppressHydrationWarning:!0,className:"caption text-soft tabular-nums",children:t.date.format(new Date)}),(e.label||t.zone)&&o.jsxs("div",{className:"caption text-soft inline-flex items-center gap-1.5 uppercase tracking-[0.18em]",children:[o.jsx("span",{"aria-hidden":!0,className:"inline-block h-1 w-1 rounded-full",style:{background:d,boxShadow:w}}),e.label&&t.zone?`${e.label} · ${t.zone}`:e.label||t.zone]})]})}const k=R({...y,component:j});export{k as clockFrame};
@@ -1 +1 @@
1
- import{r as f,j as o}from"./react-qoZPGuNy.js";import{a as p}from"./format-DxkEZcwQ.js";import{f as d,cF as l,bg as h}from"./index-BHlJHScr.js";import{F as i}from"./ui-Bq3RQsdJ.js";import{H as x}from"./index-Bw1aFtyx.js";import"./utils-DxneYyA_.js";l.schema;const b=["1h","24h","7d","30d"];function g({data:n,width:r}){return r<44?null:o.jsx("div",{className:"flex h-full w-full items-center justify-center",children:o.jsx("span",{className:"caption text-normal tabular-nums",children:p(n.value)})})}function j({config:n}){const{entries:r,isLoading:c}=h(),a=f.useMemo(()=>{const u=[...r].sort((t,e)=>t.rank-e.rank).slice(0,n.limit),m=[];for(const t of u)for(const e of b){const s=t.changePct[e];Number.isFinite(s)&&m.push({id:`${t.symbol}-${e}`,row:t.symbol,column:e,value:s})}return m},[r,n.limit]);return c?o.jsx(i,{loading:!0,children:"loading momentum…"}):a.length===0?o.jsx(i,{children:"no momentum data yet"}):o.jsx(x,{data:a,CellComponent:g,gap:3,showLabels:!0,rowLabelWidth:48,columnLabelHeight:20})}const y=d({...l,component:j});export{y as coinMomentumHeatmapFrame};
1
+ import{r as f,j as o}from"./react-qoZPGuNy.js";import{a as p}from"./format-DxkEZcwQ.js";import{f as d,cF as l,bg as h}from"./index-BJ1Zyy42.js";import{F as i}from"./ui-Bq3RQsdJ.js";import{H as x}from"./index-Bw1aFtyx.js";import"./utils-DxneYyA_.js";l.schema;const b=["1h","24h","7d","30d"];function g({data:n,width:r}){return r<44?null:o.jsx("div",{className:"flex h-full w-full items-center justify-center",children:o.jsx("span",{className:"caption text-normal tabular-nums",children:p(n.value)})})}function j({config:n}){const{entries:r,isLoading:c}=h(),a=f.useMemo(()=>{const u=[...r].sort((t,e)=>t.rank-e.rank).slice(0,n.limit),m=[];for(const t of u)for(const e of b){const s=t.changePct[e];Number.isFinite(s)&&m.push({id:`${t.symbol}-${e}`,row:t.symbol,column:e,value:s})}return m},[r,n.limit]);return c?o.jsx(i,{loading:!0,children:"loading momentum…"}):a.length===0?o.jsx(i,{children:"no momentum data yet"}):o.jsx(x,{data:a,CellComponent:g,gap:3,showLabels:!0,rowLabelWidth:48,columnLabelHeight:20})}const y=d({...l,component:j});export{y as coinMomentumHeatmapFrame};
@@ -1 +1 @@
1
- import{r as l,j as e}from"./react-qoZPGuNy.js";import{c as h,a as n}from"./format-DxkEZcwQ.js";import{f as u,cG as s,bg as d}from"./index-BHlJHScr.js";import{F as m}from"./ui-Bq3RQsdJ.js";import{S as f}from"./scatter-chart-B78EA7lD.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";s.schema;function g({config:r}){const{entries:o,isLoading:i}=d(),a=l.useMemo(()=>o.filter(t=>Number.isFinite(t.changePct["24h"])&&Number.isFinite(t.changePct["7d"])&&t.marketCapUsd>0).sort((t,c)=>t.rank-c.rank).slice(0,r.limit).map(t=>({id:t.symbol,label:t.symbol,x:t.changePct["24h"],y:t.changePct["7d"],weight:t.marketCapUsd,color:h(t.changePct["24h"])})),[o,r.limit]);return i?e.jsx(m,{loading:!0,children:"loading momentum…"}):a.length===0?e.jsx(m,{children:"no momentum data yet"}):e.jsxs("div",{className:"flex h-full flex-col justify-center gap-1 text-normal",children:[e.jsx(f,{data:a,height:210,zeroXLine:!0,formatX:n,formatY:n,maxLabels:10}),e.jsxs("div",{className:"caption text-soft text-center",children:["24h change (x) vs 7d change (y) · top ",a.length]})]})}const M=u({...s,component:g});export{M as coinMomentumScatterFrame};
1
+ import{r as l,j as e}from"./react-qoZPGuNy.js";import{c as h,a as n}from"./format-DxkEZcwQ.js";import{f as u,cG as s,bg as d}from"./index-BJ1Zyy42.js";import{F as m}from"./ui-Bq3RQsdJ.js";import{S as f}from"./scatter-chart-B78EA7lD.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";s.schema;function g({config:r}){const{entries:o,isLoading:i}=d(),a=l.useMemo(()=>o.filter(t=>Number.isFinite(t.changePct["24h"])&&Number.isFinite(t.changePct["7d"])&&t.marketCapUsd>0).sort((t,c)=>t.rank-c.rank).slice(0,r.limit).map(t=>({id:t.symbol,label:t.symbol,x:t.changePct["24h"],y:t.changePct["7d"],weight:t.marketCapUsd,color:h(t.changePct["24h"])})),[o,r.limit]);return i?e.jsx(m,{loading:!0,children:"loading momentum…"}):a.length===0?e.jsx(m,{children:"no momentum data yet"}):e.jsxs("div",{className:"flex h-full flex-col justify-center gap-1 text-normal",children:[e.jsx(f,{data:a,height:210,zeroXLine:!0,formatX:n,formatY:n,maxLabels:10}),e.jsxs("div",{className:"caption text-soft text-center",children:["24h change (x) vs 7d change (y) · top ",a.length]})]})}const M=u({...s,component:g});export{M as coinMomentumScatterFrame};
@@ -1 +1 @@
1
- import{r as p,j as r}from"./react-qoZPGuNy.js";import{M as l}from"./mover-row-Bz-YpFL3.js";import{f as h,bf as t,bg as x}from"./index-BHlJHScr.js";import{F as n}from"./ui-Bq3RQsdJ.js";import"./format-DxkEZcwQ.js";t.schema;function u({config:e}){const{entries:o,isLoading:c}=x(),{gainers:i,losers:m}=p.useMemo(()=>{const s=o.filter(a=>a.rank<=e.minRank&&a.volume24hUsd>0).map(a=>({symbol:a.symbol,price:a.priceUsd,chg:a.changePct[e.window]??0})).sort((a,d)=>d.chg-a.chg);return{gainers:s.slice(0,e.count),losers:s.slice(-e.count).reverse()}},[o,e.window,e.count,e.minRank]);return c?r.jsx(n,{loading:!0,children:"loading movers…"}):i.length===0?r.jsx(n,{children:"no mover data yet"}):r.jsxs("div",{className:"grid h-full grid-cols-2 gap-x-4 overflow-hidden",children:[r.jsxs("div",{className:"flex flex-col gap-1.5",children:[r.jsxs("div",{className:"caption text-soft uppercase tracking-wide",children:["gainers · ",e.window]}),i.map(s=>r.jsx(l,{symbol:s.symbol,label:s.symbol,price:s.price,changePct:s.chg},s.symbol))]}),r.jsxs("div",{className:"flex flex-col gap-1.5",children:[r.jsxs("div",{className:"caption text-soft uppercase tracking-wide",children:["losers · ",e.window]}),m.map(s=>r.jsx(l,{symbol:s.symbol,label:s.symbol,price:s.price,changePct:s.chg},s.symbol))]})]})}const y=h({...t,component:u});export{y as coinMoversFrame};
1
+ import{r as p,j as r}from"./react-qoZPGuNy.js";import{M as l}from"./mover-row-_czAON2U.js";import{f as h,bf as t,bg as x}from"./index-BJ1Zyy42.js";import{F as n}from"./ui-Bq3RQsdJ.js";import"./format-DxkEZcwQ.js";t.schema;function u({config:e}){const{entries:o,isLoading:c}=x(),{gainers:i,losers:m}=p.useMemo(()=>{const s=o.filter(a=>a.rank<=e.minRank&&a.volume24hUsd>0).map(a=>({symbol:a.symbol,price:a.priceUsd,chg:a.changePct[e.window]??0})).sort((a,d)=>d.chg-a.chg);return{gainers:s.slice(0,e.count),losers:s.slice(-e.count).reverse()}},[o,e.window,e.count,e.minRank]);return c?r.jsx(n,{loading:!0,children:"loading movers…"}):i.length===0?r.jsx(n,{children:"no mover data yet"}):r.jsxs("div",{className:"grid h-full grid-cols-2 gap-x-4 overflow-hidden",children:[r.jsxs("div",{className:"flex flex-col gap-1.5",children:[r.jsxs("div",{className:"caption text-soft uppercase tracking-wide",children:["gainers · ",e.window]}),i.map(s=>r.jsx(l,{symbol:s.symbol,label:s.symbol,price:s.price,changePct:s.chg},s.symbol))]}),r.jsxs("div",{className:"flex flex-col gap-1.5",children:[r.jsxs("div",{className:"caption text-soft uppercase tracking-wide",children:["losers · ",e.window]}),m.map(s=>r.jsx(l,{symbol:s.symbol,label:s.symbol,price:s.price,changePct:s.chg},s.symbol))]})]})}const y=h({...t,component:u});export{y as coinMoversFrame};
@@ -1 +1 @@
1
- import{r,j as t}from"./react-qoZPGuNy.js";import{f as z,aO as F}from"./index-BHlJHScr.js";import{F as S}from"./ui-Bq3RQsdJ.js";import{u as g}from"./use-countdown-BmcF-qdL.js";F.schema;const v=864e5,b=36e5,D=6e4;function f(n){let s=Math.max(0,n);const l=Math.floor(s/v);s-=l*v;const m=Math.floor(s/b);s-=m*b;const u=Math.floor(s/D);s-=u*D;const o=Math.floor(s/1e3);return{days:l,hours:m,minutes:u,seconds:o}}const y="var(--color-highlight)",N="0 0 18px hsl(var(--zf-accent-hue, 242) 92% 70% / 0.45)",c=n=>String(n).padStart(2,"0");function T({config:n}){const s=r.useRef(null),l=r.useRef(null),m=r.useRef(null),u=r.useRef(null),o=n.target.trim(),a=r.useMemo(()=>{if(!o)return null;const e=new Date(o).getTime();return Number.isFinite(e)?e:NaN},[o]),i=a!=null&&!Number.isNaN(a),[p,x]=r.useState(i&&a<=Date.now());r.useEffect(()=>{if(!i)return;const e=a-Date.now();if(e<=0){x(!0);return}x(!1);const w=window.setTimeout(()=>x(!0),e);return()=>window.clearTimeout(w)},[i,a]);const d=()=>i?a-Date.now():0;g({ref:s,getRemainingMs:d,format:e=>String(f(e).days)}),g({ref:l,getRemainingMs:d,format:e=>c(f(e).hours)}),g({ref:m,getRemainingMs:d,format:e=>c(f(e).minutes)}),g({ref:u,getRemainingMs:d,format:e=>c(f(e).seconds)});const R=r.useMemo(()=>i?new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(new Date(a)):"",[i,a]);if(!o)return t.jsx(S,{children:"set a target date & time"});if(!i)return t.jsxs(S,{children:["invalid target date: ",o]});const h=f(d()),k=[[s,String(h.days),"days"],[l,c(h.hours),"hrs"],[m,c(h.minutes),"min"],[u,c(h.seconds),"sec"]];return t.jsxs("div",{className:"flex h-full w-full flex-col items-center justify-center gap-2 text-center [container-type:size]",children:[n.label&&t.jsxs("div",{className:"caption text-soft inline-flex items-center gap-1.5 uppercase tracking-[0.18em]",children:[t.jsx("span",{"aria-hidden":!0,className:"inline-block h-1 w-1 rounded-full",style:{background:y,boxShadow:N}}),n.label]}),t.jsx("div",{className:"flex items-start justify-center gap-[0.5em] leading-none tabular-nums",style:{fontSize:"clamp(0.9rem, 20cqmin, 2.8rem)"},children:k.map(([e,w,j],M)=>t.jsxs("div",{className:"flex flex-col items-center gap-[0.25em]",children:[t.jsx("span",{ref:e,suppressHydrationWarning:!0,className:"text-strong font-dmsans font-extrabold tracking-[-0.01em]",style:{fontSize:"1em",color:M===3&&!p?y:void 0,textShadow:M===3&&!p?N:void 0},children:w}),t.jsx("span",{className:"text-soft uppercase tracking-[0.12em]",style:{fontSize:"0.26em"},children:j})]},j))}),p?t.jsx("div",{className:"caption font-semibold uppercase tracking-[0.2em]",style:{color:y,textShadow:N},children:"reached"}):n.showTarget&&R&&t.jsx("div",{className:"caption text-soft tabular-nums",children:R})]})}const O=z({...F,component:T});export{O as countdownFrame};
1
+ import{r,j as t}from"./react-qoZPGuNy.js";import{f as z,aO as F}from"./index-BJ1Zyy42.js";import{F as S}from"./ui-Bq3RQsdJ.js";import{u as g}from"./use-countdown-BmcF-qdL.js";F.schema;const v=864e5,b=36e5,D=6e4;function f(n){let s=Math.max(0,n);const l=Math.floor(s/v);s-=l*v;const m=Math.floor(s/b);s-=m*b;const u=Math.floor(s/D);s-=u*D;const o=Math.floor(s/1e3);return{days:l,hours:m,minutes:u,seconds:o}}const y="var(--color-highlight)",N="0 0 18px hsl(var(--zf-accent-hue, 242) 92% 70% / 0.45)",c=n=>String(n).padStart(2,"0");function T({config:n}){const s=r.useRef(null),l=r.useRef(null),m=r.useRef(null),u=r.useRef(null),o=n.target.trim(),a=r.useMemo(()=>{if(!o)return null;const e=new Date(o).getTime();return Number.isFinite(e)?e:NaN},[o]),i=a!=null&&!Number.isNaN(a),[p,x]=r.useState(i&&a<=Date.now());r.useEffect(()=>{if(!i)return;const e=a-Date.now();if(e<=0){x(!0);return}x(!1);const w=window.setTimeout(()=>x(!0),e);return()=>window.clearTimeout(w)},[i,a]);const d=()=>i?a-Date.now():0;g({ref:s,getRemainingMs:d,format:e=>String(f(e).days)}),g({ref:l,getRemainingMs:d,format:e=>c(f(e).hours)}),g({ref:m,getRemainingMs:d,format:e=>c(f(e).minutes)}),g({ref:u,getRemainingMs:d,format:e=>c(f(e).seconds)});const R=r.useMemo(()=>i?new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(new Date(a)):"",[i,a]);if(!o)return t.jsx(S,{children:"set a target date & time"});if(!i)return t.jsxs(S,{children:["invalid target date: ",o]});const h=f(d()),k=[[s,String(h.days),"days"],[l,c(h.hours),"hrs"],[m,c(h.minutes),"min"],[u,c(h.seconds),"sec"]];return t.jsxs("div",{className:"flex h-full w-full flex-col items-center justify-center gap-2 text-center [container-type:size]",children:[n.label&&t.jsxs("div",{className:"caption text-soft inline-flex items-center gap-1.5 uppercase tracking-[0.18em]",children:[t.jsx("span",{"aria-hidden":!0,className:"inline-block h-1 w-1 rounded-full",style:{background:y,boxShadow:N}}),n.label]}),t.jsx("div",{className:"flex items-start justify-center gap-[0.5em] leading-none tabular-nums",style:{fontSize:"clamp(0.9rem, 20cqmin, 2.8rem)"},children:k.map(([e,w,j],M)=>t.jsxs("div",{className:"flex flex-col items-center gap-[0.25em]",children:[t.jsx("span",{ref:e,suppressHydrationWarning:!0,className:"text-strong font-dmsans font-extrabold tracking-[-0.01em]",style:{fontSize:"1em",color:M===3&&!p?y:void 0,textShadow:M===3&&!p?N:void 0},children:w}),t.jsx("span",{className:"text-soft uppercase tracking-[0.12em]",style:{fontSize:"0.26em"},children:j})]},j))}),p?t.jsx("div",{className:"caption font-semibold uppercase tracking-[0.2em]",style:{color:y,textShadow:N},children:"reached"}):n.showTarget&&R&&t.jsx("div",{className:"caption text-soft tabular-nums",children:R})]})}const O=z({...F,component:T});export{O as countdownFrame};
@@ -1 +1 @@
1
- import{j as t,r as m}from"./react-qoZPGuNy.js";import{f as C,m as y,n as S,o as E,q as j,r as w,v as R,M as O}from"./index-BHlJHScr.js";import{d as z}from"./format-DxkEZcwQ.js";import{M as B}from"./metric-row-BVVhjsjK.js";import{F as f,s as D}from"./ui-Bq3RQsdJ.js";import{M as b}from"./mini-line-chart-DyG55cVW.js";import{B as L}from"./bar-chart-DCMbxUJx.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";y.schema;async function F(e){const r=R(e);if(r)throw new Error(r);const a=await fetch(e,{credentials:"omit",referrerPolicy:"no-referrer",cache:"no-store",signal:AbortSignal.timeout(1e4)});if(!a.ok)throw new Error(`HTTP ${a.status}`);const c=await a.text();if(c.length>O)throw new Error("response too large");return JSON.parse(c)}function I(e){const[r,a]=m.useState(void 0),[c,u]=m.useState(null),[l,o]=m.useState(!1);return m.useEffect(()=>{let s=!1;o(!1),u(null);const i=()=>{F(e.url).then(h=>{s||(a(h),u(null),o(!0))}).catch(h=>{s||(u(h instanceof Error?h.message:"fetch failed"),o(!0))})};i();const n=window.setInterval(i,e.refreshMinutes*6e4);return()=>{s=!0,window.clearInterval(n)}},[e.url,e.refreshMinutes]),{extracted:m.useMemo(()=>{if(r===void 0)return null;try{const s=j(r,e.values),i=s===void 0?[]:w(s);let n=[];return e.labels&&(n=w(j(r,e.labels)).map(h=>S(String(h)))),{cells:i,labels:n}}catch(s){return{pathError:s instanceof Error?s.message:"bad path"}}},[r,e.values,e.labels]),error:c,loaded:l}}function x(e,r){if(typeof e!="number")return String(e);const a=Math.abs(e)>=1e4?z(e):Number.isInteger(e)?String(e):e.toFixed(2);return r?`${a}${r}`:a}function g(e){return e.map((r,a)=>({date:new Date(a*6e4).toISOString(),value:r}))}function v(e){try{return new URL(e).hostname}catch{return""}}function A(){const[e,r]=m.useState(null),[a,c]=m.useState(null);return m.useEffect(()=>{if(!e)return;const u=()=>{const o=e.getBoundingClientRect();c(d=>{const s={w:Math.round(o.width),h:Math.round(o.height)};return d&&d.w===s.w&&d.h===s.h?d:s})};u();const l=typeof ResizeObserver<"u"?new ResizeObserver(u):null;return l==null||l.observe(e),()=>l==null?void 0:l.disconnect()},[e]),{ref:r,size:a}}const M="var(--color-highlight, #8b8bff)";function N({numbers:e,unit:r}){if(e.length<2)return null;const a=Math.max(...e),c=Math.min(...e);return t.jsxs("span",{className:"caption text-soft shrink-0 tabular-nums",children:["H ",x(a,r)," · L ",x(c,r)]})}function p({config:e}){const r=v(e.url);return t.jsxs("div",{className:"caption text-soft flex items-baseline justify-between gap-2",children:[t.jsx("span",{className:"truncate",children:e.label||r}),e.label&&r&&t.jsx("span",{className:"truncate opacity-70",children:r})]})}function $({config:e}){const{extracted:r,error:a,loaded:c}=I(e),{ref:u,size:l}=A();if(!c&&r===null)return t.jsxs(f,{loading:!0,children:["fetching ",v(e.url),"…"]});if(a)return t.jsxs(f,{children:["fetch failed — ",S(a)]});if(r===null||"pathError"in r)return t.jsxs(f,{children:["path error —"," ",r&&"pathError"in r?r.pathError:"no data"]});const{cells:o,labels:d}=r;if(o.length===0)return t.jsx(f,{children:"path matched nothing in the response"});const s=E(o);if(e.display==="stat"){const i=o[o.length-1],n=g(s);return t.jsxs("div",{className:"flex h-full min-h-0 flex-col justify-center gap-2",children:[t.jsx(p,{config:e}),t.jsxs("div",{className:"flex items-baseline justify-between gap-3",children:[t.jsx("div",{className:"metric-xl text-strong leading-none",children:x(i,e.unit)}),t.jsx(N,{numbers:s,unit:e.unit})]}),n.length>1&&t.jsx("div",{ref:u,className:"min-h-[36px] w-full",children:l&&t.jsx(b,{data:n,width:l.w,height:44,color:M})})]})}if(e.display==="line"){if(s.length<2)return t.jsx(f,{children:"need a numeric series for a line chart"});const i=g(s),n=s[s.length-1];return t.jsxs("div",{className:"flex h-full min-h-0 flex-col gap-2",children:[t.jsxs("div",{className:"flex items-baseline justify-between gap-3",children:[t.jsx("div",{className:"metric-lg text-strong leading-none",children:x(n,e.unit)}),t.jsx(N,{numbers:s,unit:e.unit})]}),t.jsx("div",{ref:u,className:"min-h-0 w-full flex-1",children:l&&t.jsx(b,{data:i,width:l.w,height:Math.max(l.h,48),color:M})}),t.jsx(p,{config:e})]})}if(e.display==="bars"){if(s.length===0)return t.jsx(f,{children:"need numeric values for a bar chart"});const i=s.map((n,h)=>({label:d[h]??String(h+1),value:n}));return t.jsxs("div",{className:"flex h-full min-h-0 flex-col justify-center gap-1",children:[t.jsx(L,{data:i.slice(0,40),orientation:i.length>12?"vertical":"horizontal",height:Math.max(Math.min(i.length,12)*24,96),formatValue:n=>x(n,e.unit)}),t.jsx(p,{config:e})]})}return t.jsxs("div",{className:"flex h-full min-h-0 flex-col gap-1",children:[t.jsx(p,{config:e}),t.jsx("div",{className:D,children:o.map((i,n)=>t.jsx(B,{label:d[n]??`#${n+1}`,value:x(i,e.unit)},n))})]})}const X=C({...y,component:$});export{X as customDataFrame};
1
+ import{j as t,r as m}from"./react-qoZPGuNy.js";import{f as C,m as y,n as S,o as E,q as j,r as w,v as R,M as O}from"./index-BJ1Zyy42.js";import{d as z}from"./format-DxkEZcwQ.js";import{M as B}from"./metric-row-BVVhjsjK.js";import{F as f,s as D}from"./ui-Bq3RQsdJ.js";import{M as b}from"./mini-line-chart-DyG55cVW.js";import{B as L}from"./bar-chart-DCMbxUJx.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";y.schema;async function F(e){const r=R(e);if(r)throw new Error(r);const a=await fetch(e,{credentials:"omit",referrerPolicy:"no-referrer",cache:"no-store",signal:AbortSignal.timeout(1e4)});if(!a.ok)throw new Error(`HTTP ${a.status}`);const c=await a.text();if(c.length>O)throw new Error("response too large");return JSON.parse(c)}function I(e){const[r,a]=m.useState(void 0),[c,u]=m.useState(null),[l,o]=m.useState(!1);return m.useEffect(()=>{let s=!1;o(!1),u(null);const i=()=>{F(e.url).then(h=>{s||(a(h),u(null),o(!0))}).catch(h=>{s||(u(h instanceof Error?h.message:"fetch failed"),o(!0))})};i();const n=window.setInterval(i,e.refreshMinutes*6e4);return()=>{s=!0,window.clearInterval(n)}},[e.url,e.refreshMinutes]),{extracted:m.useMemo(()=>{if(r===void 0)return null;try{const s=j(r,e.values),i=s===void 0?[]:w(s);let n=[];return e.labels&&(n=w(j(r,e.labels)).map(h=>S(String(h)))),{cells:i,labels:n}}catch(s){return{pathError:s instanceof Error?s.message:"bad path"}}},[r,e.values,e.labels]),error:c,loaded:l}}function x(e,r){if(typeof e!="number")return String(e);const a=Math.abs(e)>=1e4?z(e):Number.isInteger(e)?String(e):e.toFixed(2);return r?`${a}${r}`:a}function g(e){return e.map((r,a)=>({date:new Date(a*6e4).toISOString(),value:r}))}function v(e){try{return new URL(e).hostname}catch{return""}}function A(){const[e,r]=m.useState(null),[a,c]=m.useState(null);return m.useEffect(()=>{if(!e)return;const u=()=>{const o=e.getBoundingClientRect();c(d=>{const s={w:Math.round(o.width),h:Math.round(o.height)};return d&&d.w===s.w&&d.h===s.h?d:s})};u();const l=typeof ResizeObserver<"u"?new ResizeObserver(u):null;return l==null||l.observe(e),()=>l==null?void 0:l.disconnect()},[e]),{ref:r,size:a}}const M="var(--color-highlight, #8b8bff)";function N({numbers:e,unit:r}){if(e.length<2)return null;const a=Math.max(...e),c=Math.min(...e);return t.jsxs("span",{className:"caption text-soft shrink-0 tabular-nums",children:["H ",x(a,r)," · L ",x(c,r)]})}function p({config:e}){const r=v(e.url);return t.jsxs("div",{className:"caption text-soft flex items-baseline justify-between gap-2",children:[t.jsx("span",{className:"truncate",children:e.label||r}),e.label&&r&&t.jsx("span",{className:"truncate opacity-70",children:r})]})}function $({config:e}){const{extracted:r,error:a,loaded:c}=I(e),{ref:u,size:l}=A();if(!c&&r===null)return t.jsxs(f,{loading:!0,children:["fetching ",v(e.url),"…"]});if(a)return t.jsxs(f,{children:["fetch failed — ",S(a)]});if(r===null||"pathError"in r)return t.jsxs(f,{children:["path error —"," ",r&&"pathError"in r?r.pathError:"no data"]});const{cells:o,labels:d}=r;if(o.length===0)return t.jsx(f,{children:"path matched nothing in the response"});const s=E(o);if(e.display==="stat"){const i=o[o.length-1],n=g(s);return t.jsxs("div",{className:"flex h-full min-h-0 flex-col justify-center gap-2",children:[t.jsx(p,{config:e}),t.jsxs("div",{className:"flex items-baseline justify-between gap-3",children:[t.jsx("div",{className:"metric-xl text-strong leading-none",children:x(i,e.unit)}),t.jsx(N,{numbers:s,unit:e.unit})]}),n.length>1&&t.jsx("div",{ref:u,className:"min-h-[36px] w-full",children:l&&t.jsx(b,{data:n,width:l.w,height:44,color:M})})]})}if(e.display==="line"){if(s.length<2)return t.jsx(f,{children:"need a numeric series for a line chart"});const i=g(s),n=s[s.length-1];return t.jsxs("div",{className:"flex h-full min-h-0 flex-col gap-2",children:[t.jsxs("div",{className:"flex items-baseline justify-between gap-3",children:[t.jsx("div",{className:"metric-lg text-strong leading-none",children:x(n,e.unit)}),t.jsx(N,{numbers:s,unit:e.unit})]}),t.jsx("div",{ref:u,className:"min-h-0 w-full flex-1",children:l&&t.jsx(b,{data:i,width:l.w,height:Math.max(l.h,48),color:M})}),t.jsx(p,{config:e})]})}if(e.display==="bars"){if(s.length===0)return t.jsx(f,{children:"need numeric values for a bar chart"});const i=s.map((n,h)=>({label:d[h]??String(h+1),value:n}));return t.jsxs("div",{className:"flex h-full min-h-0 flex-col justify-center gap-1",children:[t.jsx(L,{data:i.slice(0,40),orientation:i.length>12?"vertical":"horizontal",height:Math.max(Math.min(i.length,12)*24,96),formatValue:n=>x(n,e.unit)}),t.jsx(p,{config:e})]})}return t.jsxs("div",{className:"flex h-full min-h-0 flex-col gap-1",children:[t.jsx(p,{config:e}),t.jsx("div",{className:D,children:o.map((i,n)=>t.jsx(B,{label:d[n]??`#${n+1}`,value:x(i,e.unit)},n))})]})}const X=C({...y,component:$});export{X as customDataFrame};
@@ -1 +1 @@
1
- import{r as T,j as e}from"./react-qoZPGuNy.js";import{D as _,U as $}from"./format-DxkEZcwQ.js";import{Z as A}from"./cycle-shared-XoGVsOjC.js";import{s as g,r as B,e as H}from"./indicators-Cw7CVPn4.js";import{f as W,bv as E,bi as q,bl as z,bo as G}from"./index-BHlJHScr.js";import{M as J}from"./metric-row-BVVhjsjK.js";import{F,s as K}from"./ui-Bq3RQsdJ.js";import"./mini-line-chart-DyG55cVW.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";E.schema;function p(f){for(let i=f.length-1;i>=0;i--)if(f[i]!==null)return f[i];return null}function Q({config:f}){const{valuation:i,isLoading:U}=q(),{extras:d}=z(),{history:N,isLoading:Z}=G("btc"),h=f.mode==="peak",y=T.useMemo(()=>{if(!i)return[];const l=N.map(t=>t.value),b=l.at(-1)??null,L=p(g(l,200)),o=b!==null&&L?b/L:null,a=p(B(l,14)),S=p(g(l,111)),V=p(g(l,350)),M=S!==null&&V?S/(2*V):null,I=H(l,150).at(-1)??null,O=p(g(l,471)),j=I!==null&&O?I/O:null,r=(d==null?void 0:d.puell)??null,{mvrv:c,mvrvZScore:m,nupl:u}=i,n=(t,x,D,k,w)=>({name:t,value:x,display:D,threshold:k,fired:x!==null&&w}),P=t=>t!==null?`${(t*100).toFixed(0)}%`:"—",s=(t,x=2)=>t!==null?t.toFixed(x):"—";return h?[n("MVRV",c,s(c),"≥ 3",(c??0)>=3),n("MVRV Z-Score",m,s(m),"≥ 7",(m??0)>=7),n("NUPL",u,P(u),"≥ 75%",(u??0)>=.75),n("Mayer Multiple",o,s(o),"≥ 2.4",(o??0)>=2.4),n("Puell Multiple",r,s(r),"≥ 4",(r??0)>=4),n("RSI (14)",a,s(a,0),"≥ 80",(a??0)>=80),n("Pi Cycle Top",M,s(M),"≥ 1",(M??0)>=1)]:[n("MVRV",c,s(c),"≤ 1",(c??1/0)<=1),n("MVRV Z-Score",m,s(m),"≤ 0",(m??1/0)<=0),n("NUPL",u,P(u),"≤ 0%",(u??1/0)<=0),n("Mayer Multiple",o,s(o),"≤ 0.8",(o??1/0)<=.8),n("Puell Multiple",r,s(r),"≤ 0.5",(r??1/0)<=.5),n("RSI (14)",a,s(a,0),"≤ 30",(a??1/0)<=30),n("Pi Cycle Bottom",j,s(j),"≥ 0.745",(j??0)>=.745)]},[i,d,N,h]);if((U||Z)&&y.length===0)return e.jsx(F,{loading:!0,children:"loading cycle signals…"});if(y.length===0)return e.jsx(F,{children:"no on-chain data yet"});const v=y.filter(l=>l.value!==null),R=v.filter(l=>l.fired).length,C=h?_:$;return e.jsxs("div",{className:"flex h-full min-h-0 flex-col gap-2",children:[e.jsxs("div",{className:"flex items-baseline justify-between",children:[e.jsx("span",{className:"caption text-soft",children:h?"Cycle-top signals":"Cycle-bottom signals"}),e.jsxs("span",{className:"metric-md",style:{color:R>0?C:A},children:[R,e.jsxs("span",{className:"text-soft",children:["/",v.length]})]})]}),e.jsx("div",{className:`${K} flex flex-col`,children:y.map(l=>e.jsx(J,{label:l.name,meta:`fires ${l.threshold}`,value:e.jsxs("span",{style:{color:l.fired?C:void 0},children:[l.fired?"● ":"",l.display]})},l.name))})]})}const rl=W({...E,component:Q});export{rl as cycleSignalsFrame};
1
+ import{r as T,j as e}from"./react-qoZPGuNy.js";import{D as _,U as $}from"./format-DxkEZcwQ.js";import{Z as A}from"./cycle-shared-XoGVsOjC.js";import{s as g,r as B,e as H}from"./indicators-Cw7CVPn4.js";import{f as W,bv as E,bi as q,bl as z,bo as G}from"./index-BJ1Zyy42.js";import{M as J}from"./metric-row-BVVhjsjK.js";import{F,s as K}from"./ui-Bq3RQsdJ.js";import"./mini-line-chart-DyG55cVW.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";E.schema;function p(f){for(let i=f.length-1;i>=0;i--)if(f[i]!==null)return f[i];return null}function Q({config:f}){const{valuation:i,isLoading:U}=q(),{extras:d}=z(),{history:N,isLoading:Z}=G("btc"),h=f.mode==="peak",y=T.useMemo(()=>{if(!i)return[];const l=N.map(t=>t.value),b=l.at(-1)??null,L=p(g(l,200)),o=b!==null&&L?b/L:null,a=p(B(l,14)),S=p(g(l,111)),V=p(g(l,350)),M=S!==null&&V?S/(2*V):null,I=H(l,150).at(-1)??null,O=p(g(l,471)),j=I!==null&&O?I/O:null,r=(d==null?void 0:d.puell)??null,{mvrv:c,mvrvZScore:m,nupl:u}=i,n=(t,x,D,k,w)=>({name:t,value:x,display:D,threshold:k,fired:x!==null&&w}),P=t=>t!==null?`${(t*100).toFixed(0)}%`:"—",s=(t,x=2)=>t!==null?t.toFixed(x):"—";return h?[n("MVRV",c,s(c),"≥ 3",(c??0)>=3),n("MVRV Z-Score",m,s(m),"≥ 7",(m??0)>=7),n("NUPL",u,P(u),"≥ 75%",(u??0)>=.75),n("Mayer Multiple",o,s(o),"≥ 2.4",(o??0)>=2.4),n("Puell Multiple",r,s(r),"≥ 4",(r??0)>=4),n("RSI (14)",a,s(a,0),"≥ 80",(a??0)>=80),n("Pi Cycle Top",M,s(M),"≥ 1",(M??0)>=1)]:[n("MVRV",c,s(c),"≤ 1",(c??1/0)<=1),n("MVRV Z-Score",m,s(m),"≤ 0",(m??1/0)<=0),n("NUPL",u,P(u),"≤ 0%",(u??1/0)<=0),n("Mayer Multiple",o,s(o),"≤ 0.8",(o??1/0)<=.8),n("Puell Multiple",r,s(r),"≤ 0.5",(r??1/0)<=.5),n("RSI (14)",a,s(a,0),"≤ 30",(a??1/0)<=30),n("Pi Cycle Bottom",j,s(j),"≥ 0.745",(j??0)>=.745)]},[i,d,N,h]);if((U||Z)&&y.length===0)return e.jsx(F,{loading:!0,children:"loading cycle signals…"});if(y.length===0)return e.jsx(F,{children:"no on-chain data yet"});const v=y.filter(l=>l.value!==null),R=v.filter(l=>l.fired).length,C=h?_:$;return e.jsxs("div",{className:"flex h-full min-h-0 flex-col gap-2",children:[e.jsxs("div",{className:"flex items-baseline justify-between",children:[e.jsx("span",{className:"caption text-soft",children:h?"Cycle-top signals":"Cycle-bottom signals"}),e.jsxs("span",{className:"metric-md",style:{color:R>0?C:A},children:[R,e.jsxs("span",{className:"text-soft",children:["/",v.length]})]})]}),e.jsx("div",{className:`${K} flex flex-col`,children:y.map(l=>e.jsx(J,{label:l.name,meta:`fires ${l.threshold}`,value:e.jsxs("span",{style:{color:l.fired?C:void 0},children:[l.fired?"● ":"",l.display]})},l.name))})]})}const rl=W({...E,component:Q});export{rl as cycleSignalsFrame};
@@ -1 +1 @@
1
- import{r as y,j as s}from"./react-qoZPGuNy.js";import{b as v}from"./format-DxkEZcwQ.js";import{w as C,r as S,a as g,n as L,t as V}from"./indicators-Cw7CVPn4.js";import{f as w,d6 as p,bi as x,bo as M}from"./index-BHlJHScr.js";import{F as u}from"./ui-Bq3RQsdJ.js";import{C as n,a as R}from"./chart-utils-DGogNvJT.js";import{M as j}from"./index-BpPIfN5S.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";p.schema;function b({config:m}){const{valuation:t,isLoading:d}=x(),{history:r,isLoading:f}=M("btc"),e=y.useMemo(()=>{if(!t)return[];const a=C(m.window),i=o=>g(L(V(o,a))),h=S(r.map(o=>o.value),14),l=[];for(let o=0;o<r.length;o++){const c=h[o];c!==null&&l.push({time:r[o].time,value:c})}return[{id:"mvrv-zscore",name:"MVRV Z-Score",color:n[0],data:i(t.history.mvrvZScore)},{id:"nupl",name:"NUPL",color:n[1],data:i(t.history.nupl)},{id:"rsi14",name:"RSI (14)",color:n[2],data:i(l)}]},[t,r,m.window]);return(d||f)&&e.length===0?s.jsx(u,{loading:!0,children:"loading cycle composite…"}):e.every(a=>a.data.length===0)?s.jsx(u,{children:"no on-chain data yet"}):s.jsx(j,{series:e,timeframe:R.YTD,height:260,formatValue:a=>v(a*100,0)})}const P=w({...p,component:b});export{P as cycleValuationCompositeFrame};
1
+ import{r as y,j as s}from"./react-qoZPGuNy.js";import{b as v}from"./format-DxkEZcwQ.js";import{w as C,r as S,a as g,n as L,t as V}from"./indicators-Cw7CVPn4.js";import{f as w,d6 as p,bi as x,bo as M}from"./index-BJ1Zyy42.js";import{F as u}from"./ui-Bq3RQsdJ.js";import{C as n,a as R}from"./chart-utils-DGogNvJT.js";import{M as j}from"./index-BpPIfN5S.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";p.schema;function b({config:m}){const{valuation:t,isLoading:d}=x(),{history:r,isLoading:f}=M("btc"),e=y.useMemo(()=>{if(!t)return[];const a=C(m.window),i=o=>g(L(V(o,a))),h=S(r.map(o=>o.value),14),l=[];for(let o=0;o<r.length;o++){const c=h[o];c!==null&&l.push({time:r[o].time,value:c})}return[{id:"mvrv-zscore",name:"MVRV Z-Score",color:n[0],data:i(t.history.mvrvZScore)},{id:"nupl",name:"NUPL",color:n[1],data:i(t.history.nupl)},{id:"rsi14",name:"RSI (14)",color:n[2],data:i(l)}]},[t,r,m.window]);return(d||f)&&e.length===0?s.jsx(u,{loading:!0,children:"loading cycle composite…"}):e.every(a=>a.data.length===0)?s.jsx(u,{children:"no on-chain data yet"}):s.jsx(j,{series:e,timeframe:R.YTD,height:260,formatValue:a=>v(a*100,0)})}const P=w({...p,component:b});export{P as cycleValuationCompositeFrame};
@@ -1 +1 @@
1
- import{r as x,j as s}from"./react-qoZPGuNy.js";import{f as L,w as b,h as R}from"./index-BHlJHScr.js";import{D as g,U as O}from"./format-DxkEZcwQ.js";import{F as N,s as C}from"./ui-Bq3RQsdJ.js";b.schema;const h={bullish:O,bearish:g,neutral:"var(--color-soft)"},I={hit:O,miss:g,partial:"#f4a259"};function y(r){let n=0,i=0;for(const m of r)for(const c of m.grades??[])i++,c.verdict==="hit"?n+=1:c.verdict==="partial"&&(n+=.5);return{rate:i?n/i:0,n:i}}function D({config:r}){const[n,i]=x.useState(null),[m,c]=x.useState(!1);if(x.useEffect(()=>{let e=!1;const l=()=>{fetch(r.src,{cache:"no-store"}).then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.json()}).then(t=>{e||(i(t),c(!0))}).catch(()=>{e||c(!0)})};l();const o=()=>l();window.addEventListener("focus",o);const d=window.setInterval(l,r.refreshSec*1e3);return()=>{e=!0,window.removeEventListener("focus",o),window.clearInterval(d)}},[r.src,r.refreshSec]),!m)return s.jsx(N,{loading:!0,children:"loading brief…"});const f=(n==null?void 0:n.entries)??[];if(f.length===0)return s.jsx(N,{children:"no brief yet — run /zframes-brief"});const k=f.slice(-r.entries).reverse(),{rate:E,n:u}=y(f);return s.jsxs("div",{className:`body-sm flex flex-col gap-3 ${C}`,children:[u>0&&s.jsxs("div",{className:"caption text-soft flex items-center justify-between",children:[s.jsx("span",{className:"uppercase tracking-wide",children:"track record"}),s.jsxs("span",{className:"text-strong font-bold tabular-nums",children:[Math.round(E*100),"% · ",u," call",u===1?"":"s"]})]}),k.map((e,l)=>{var o,d,t,j,w,v;return s.jsxs("div",{className:"flex flex-col gap-1.5",children:[(e.date||((o=e.run)==null?void 0:o.model))&&s.jsxs("div",{className:"caption text-soft flex items-baseline justify-between gap-2",children:[s.jsx("span",{className:"uppercase tracking-wide",children:e.date}),((d=e.run)==null?void 0:d.model)&&s.jsxs("span",{className:"truncate opacity-70",title:e.run.timestamp??"",children:[e.run.model,e.run.effort?` · ${e.run.effort}`:""]})]}),e.summary&&s.jsx("div",{className:"text-normal whitespace-pre-wrap",children:e.summary}),(((t=e.calls)==null?void 0:t.length)??0)>0&&s.jsx("div",{className:"flex flex-col gap-1",children:(j=e.calls)==null?void 0:j.map((a,p)=>s.jsxs("div",{className:"grid grid-cols-[auto_minmax(0,1fr)] items-baseline gap-2",children:[s.jsx("span",{className:"caption font-bold uppercase tracking-wide",style:{color:h[a.direction??"neutral"]??h.neutral},children:a.symbol?R(a.symbol):a.direction??"•"}),s.jsx("span",{className:"text-normal",children:a.claim})]},a.id??p))}),(((w=e.grades)==null?void 0:w.length)??0)>0&&s.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[s.jsx("span",{className:"caption text-soft uppercase tracking-wide",children:"graded"}),(v=e.grades)==null?void 0:v.map((a,p)=>s.jsx("span",{className:"caption rounded px-1.5 py-0.5 font-bold uppercase",style:{color:I[a.verdict??""]??h.neutral,background:"var(--color-surface)"},title:a.note??"",children:a.verdict??"—"},a.callId??p))]})]},e.date??l)})]})}const T=L({...b,component:D});export{T as dailyAnalysisFrame};
1
+ import{r as x,j as s}from"./react-qoZPGuNy.js";import{f as L,w as b,h as R}from"./index-BJ1Zyy42.js";import{D as g,U as O}from"./format-DxkEZcwQ.js";import{F as N,s as C}from"./ui-Bq3RQsdJ.js";b.schema;const h={bullish:O,bearish:g,neutral:"var(--color-soft)"},I={hit:O,miss:g,partial:"#f4a259"};function y(r){let n=0,i=0;for(const m of r)for(const c of m.grades??[])i++,c.verdict==="hit"?n+=1:c.verdict==="partial"&&(n+=.5);return{rate:i?n/i:0,n:i}}function D({config:r}){const[n,i]=x.useState(null),[m,c]=x.useState(!1);if(x.useEffect(()=>{let e=!1;const l=()=>{fetch(r.src,{cache:"no-store"}).then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.json()}).then(t=>{e||(i(t),c(!0))}).catch(()=>{e||c(!0)})};l();const o=()=>l();window.addEventListener("focus",o);const d=window.setInterval(l,r.refreshSec*1e3);return()=>{e=!0,window.removeEventListener("focus",o),window.clearInterval(d)}},[r.src,r.refreshSec]),!m)return s.jsx(N,{loading:!0,children:"loading brief…"});const f=(n==null?void 0:n.entries)??[];if(f.length===0)return s.jsx(N,{children:"no brief yet — run /zframes-brief"});const k=f.slice(-r.entries).reverse(),{rate:E,n:u}=y(f);return s.jsxs("div",{className:`body-sm flex flex-col gap-3 ${C}`,children:[u>0&&s.jsxs("div",{className:"caption text-soft flex items-center justify-between",children:[s.jsx("span",{className:"uppercase tracking-wide",children:"track record"}),s.jsxs("span",{className:"text-strong font-bold tabular-nums",children:[Math.round(E*100),"% · ",u," call",u===1?"":"s"]})]}),k.map((e,l)=>{var o,d,t,j,w,v;return s.jsxs("div",{className:"flex flex-col gap-1.5",children:[(e.date||((o=e.run)==null?void 0:o.model))&&s.jsxs("div",{className:"caption text-soft flex items-baseline justify-between gap-2",children:[s.jsx("span",{className:"uppercase tracking-wide",children:e.date}),((d=e.run)==null?void 0:d.model)&&s.jsxs("span",{className:"truncate opacity-70",title:e.run.timestamp??"",children:[e.run.model,e.run.effort?` · ${e.run.effort}`:""]})]}),e.summary&&s.jsx("div",{className:"text-normal whitespace-pre-wrap",children:e.summary}),(((t=e.calls)==null?void 0:t.length)??0)>0&&s.jsx("div",{className:"flex flex-col gap-1",children:(j=e.calls)==null?void 0:j.map((a,p)=>s.jsxs("div",{className:"grid grid-cols-[auto_minmax(0,1fr)] items-baseline gap-2",children:[s.jsx("span",{className:"caption font-bold uppercase tracking-wide",style:{color:h[a.direction??"neutral"]??h.neutral},children:a.symbol?R(a.symbol):a.direction??"•"}),s.jsx("span",{className:"text-normal",children:a.claim})]},a.id??p))}),(((w=e.grades)==null?void 0:w.length)??0)>0&&s.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[s.jsx("span",{className:"caption text-soft uppercase tracking-wide",children:"graded"}),(v=e.grades)==null?void 0:v.map((a,p)=>s.jsx("span",{className:"caption rounded px-1.5 py-0.5 font-bold uppercase",style:{color:I[a.verdict??""]??h.neutral,background:"var(--color-surface)"},title:a.note??"",children:a.verdict??"—"},a.callId??p))]})]},e.date??l)})]})}const T=L({...b,component:D});export{T as dailyAnalysisFrame};
@@ -1 +1 @@
1
- import{j as a}from"./react-qoZPGuNy.js";import{E as p,a as c,i as u}from"./market-data-CvmpLFSo.js";import{f,bW as m}from"./index-BHlJHScr.js";import{F as w}from"./ui-Bq3RQsdJ.js";m.schema;const g=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],j="#f2b066",T=864e5;function b({config:t}){const o=p[t.exchange],n=o?c(t.exchange):null;if(!o||!n)return a.jsx(w,{children:"unknown exchange"});const y=new Date,x=(n.dow+6)%7,i=[];for(let e=0;e<7;e++){const s=c(t.exchange,new Date(y.getTime()+(e-x)*T));if(!s)continue;const r=o.days.includes(s.dow),l=r&&u(t.exchange,s.ymd);i.push({ymd:s.ymd,dow:s.dow,day:Number(s.ymd.split("-")[2]),isToday:s.ymd===n.ymd,isHoliday:l,isTrading:r&&!l})}const h=t.weekdaysOnly?i.filter(e=>o.days.includes(e.dow)):i,d=t.label.trim();return a.jsxs("div",{className:"flex h-full w-full flex-col justify-center gap-1.5",children:[d&&a.jsx("div",{className:"caption text-soft shrink-0 uppercase tracking-[0.12em]",children:d}),a.jsx("div",{className:"flex min-h-0 flex-1 items-stretch gap-1",children:h.map(e=>{const s=!e.isTrading&&!e.isHoliday;return a.jsxs("div",{title:e.isHoliday?"Market holiday":e.isTrading?"Trading day":"Closed",className:`flex flex-1 flex-col items-center justify-center rounded-md border px-1 py-1 ${e.isToday?"text-strong":s?"text-disabled":"text-normal"}`,style:{borderColor:e.isToday?"var(--color-highlight)":"rgba(255,255,255,0.06)",color:e.isHoliday&&!e.isToday?j:void 0},children:[a.jsx("span",{className:"caption opacity-80",children:g[e.dow]}),a.jsx("span",{className:"metric-sm",children:e.day})]},e.ymd)})})]})}const v=f({...m,component:b});export{v as dayMeterFrame};
1
+ import{j as a}from"./react-qoZPGuNy.js";import{E as p,a as c,i as u}from"./market-data-CvmpLFSo.js";import{f,bW as m}from"./index-BJ1Zyy42.js";import{F as w}from"./ui-Bq3RQsdJ.js";m.schema;const g=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],j="#f2b066",T=864e5;function b({config:t}){const o=p[t.exchange],n=o?c(t.exchange):null;if(!o||!n)return a.jsx(w,{children:"unknown exchange"});const y=new Date,x=(n.dow+6)%7,i=[];for(let e=0;e<7;e++){const s=c(t.exchange,new Date(y.getTime()+(e-x)*T));if(!s)continue;const r=o.days.includes(s.dow),l=r&&u(t.exchange,s.ymd);i.push({ymd:s.ymd,dow:s.dow,day:Number(s.ymd.split("-")[2]),isToday:s.ymd===n.ymd,isHoliday:l,isTrading:r&&!l})}const h=t.weekdaysOnly?i.filter(e=>o.days.includes(e.dow)):i,d=t.label.trim();return a.jsxs("div",{className:"flex h-full w-full flex-col justify-center gap-1.5",children:[d&&a.jsx("div",{className:"caption text-soft shrink-0 uppercase tracking-[0.12em]",children:d}),a.jsx("div",{className:"flex min-h-0 flex-1 items-stretch gap-1",children:h.map(e=>{const s=!e.isTrading&&!e.isHoliday;return a.jsxs("div",{title:e.isHoliday?"Market holiday":e.isTrading?"Trading day":"Closed",className:`flex flex-1 flex-col items-center justify-center rounded-md border px-1 py-1 ${e.isToday?"text-strong":s?"text-disabled":"text-normal"}`,style:{borderColor:e.isToday?"var(--color-highlight)":"rgba(255,255,255,0.06)",color:e.isHoliday&&!e.isToday?j:void 0},children:[a.jsx("span",{className:"caption opacity-80",children:g[e.dow]}),a.jsx("span",{className:"metric-sm",children:e.day})]},e.ymd)})})]})}const v=f({...m,component:b});export{v as dayMeterFrame};
@@ -1 +1 @@
1
- import{j as o}from"./react-qoZPGuNy.js";import{Z as r,M as i}from"./cycle-shared-XoGVsOjC.js";import{c as s,a as c,f as m}from"./format-DxkEZcwQ.js";import{f,bA as l,bB as p}from"./index-BHlJHScr.js";import{F as t}from"./ui-Bq3RQsdJ.js";import"./indicators-Cw7CVPn4.js";import"./mini-line-chart-DyG55cVW.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";function u(){const{fees:e,isLoading:a}=p();if(a)return o.jsx(t,{loading:!0,children:"loading DeFi fees…"});if(!e)return o.jsx(t,{children:"no fees data yet"});const n=e.changePct!=null?s(e.changePct):r;return o.jsx(i,{caption:"DeFi Fees · 24h",headline:m(e.total24h),headlineColor:r,zone:{label:"protocol fees",color:r},sub:e.changePct!=null?`1d ${c(e.changePct)}`:void 0,sparkline:e.history,sparkColor:n})}const R=f({...l,component:u});export{R as defiRevenueFrame};
1
+ import{j as o}from"./react-qoZPGuNy.js";import{Z as r,M as i}from"./cycle-shared-XoGVsOjC.js";import{c as s,a as c,f as m}from"./format-DxkEZcwQ.js";import{f,bA as l,bB as p}from"./index-BJ1Zyy42.js";import{F as t}from"./ui-Bq3RQsdJ.js";import"./indicators-Cw7CVPn4.js";import"./mini-line-chart-DyG55cVW.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";function u(){const{fees:e,isLoading:a}=p();if(a)return o.jsx(t,{loading:!0,children:"loading DeFi fees…"});if(!e)return o.jsx(t,{children:"no fees data yet"});const n=e.changePct!=null?s(e.changePct):r;return o.jsx(i,{caption:"DeFi Fees · 24h",headline:m(e.total24h),headlineColor:r,zone:{label:"protocol fees",color:r},sub:e.changePct!=null?`1d ${c(e.changePct)}`:void 0,sparkline:e.history,sparkColor:n})}const R=f({...l,component:u});export{R as defiRevenueFrame};
@@ -1 +1 @@
1
- import{j as e}from"./react-qoZPGuNy.js";import{a as c,c as m,e as i,f as d}from"./format-DxkEZcwQ.js";import{M as h}from"./metric-row-BVVhjsjK.js";import{f,c4 as t,c5 as x}from"./index-BHlJHScr.js";import{F as r,s as u}from"./ui-Bq3RQsdJ.js";t.schema;function p({config:a}){const{pools:s,isLoading:n}=x(a.network);return n?e.jsx(r,{loading:!0,children:"loading hot pools…"}):s.length===0?e.jsx(r,{children:"no pool data"}):e.jsx("div",{className:u,children:s.slice(0,a.count).map((o,l)=>e.jsx(h,{label:o.name,meta:`${i(o.priceUsd)} · ${d(o.volume24hUsd)} vol`,value:e.jsx("span",{style:{color:m(o.changePct24h)},children:c(o.changePct24h)})},`${o.name}-${l}`))})}const F=f({...t,component:p});export{F as dexHotPoolsFrame};
1
+ import{j as e}from"./react-qoZPGuNy.js";import{a as c,c as m,e as i,f as d}from"./format-DxkEZcwQ.js";import{M as h}from"./metric-row-BVVhjsjK.js";import{f,c4 as t,c5 as x}from"./index-BJ1Zyy42.js";import{F as r,s as u}from"./ui-Bq3RQsdJ.js";t.schema;function p({config:a}){const{pools:s,isLoading:n}=x(a.network);return n?e.jsx(r,{loading:!0,children:"loading hot pools…"}):s.length===0?e.jsx(r,{children:"no pool data"}):e.jsx("div",{className:u,children:s.slice(0,a.count).map((o,l)=>e.jsx(h,{label:o.name,meta:`${i(o.priceUsd)} · ${d(o.volume24hUsd)} vol`,value:e.jsx("span",{style:{color:m(o.changePct24h)},children:c(o.changePct24h)})},`${o.name}-${l}`))})}const F=f({...t,component:p});export{F as dexHotPoolsFrame};
@@ -1 +1 @@
1
- import{r as m,j as c}from"./react-qoZPGuNy.js";import{B as n}from"./bubbles-shared-DlmjtiIA.js";import{c as t,f as h,a as i}from"./format-DxkEZcwQ.js";import{f as u,cm as r,c5 as d}from"./index-BHlJHScr.js";import"./ui-Bq3RQsdJ.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";r.schema;function b({config:e}){const{pools:a,isLoading:s}=d(e.network),l=m.useMemo(()=>a.filter(o=>o.volume24hUsd>0).slice(0,e.count).map(o=>({id:o.name,label:o.name,value:o.volume24hUsd,color:t(o.changePct24h),borderColor:t(o.changePct24h),changePct24h:o.changePct24h})),[a,e.count]);return c.jsx(n,{nodes:l,isLoading:s,loadingText:"loading hot pools…",emptyText:"no pool data",caption:`${e.network} · area by 24h volume · ring by 24h change`,formatTitle:o=>`${o.label} · ${h(o.value)} vol · ${i(o.changePct24h)}`})}const C=u({...r,component:b});export{C as dexPoolBubblesFrame};
1
+ import{r as m,j as c}from"./react-qoZPGuNy.js";import{B as n}from"./bubbles-shared-DlmjtiIA.js";import{c as t,f as h,a as i}from"./format-DxkEZcwQ.js";import{f as u,cm as r,c5 as d}from"./index-BJ1Zyy42.js";import"./ui-Bq3RQsdJ.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";r.schema;function b({config:e}){const{pools:a,isLoading:s}=d(e.network),l=m.useMemo(()=>a.filter(o=>o.volume24hUsd>0).slice(0,e.count).map(o=>({id:o.name,label:o.name,value:o.volume24hUsd,color:t(o.changePct24h),borderColor:t(o.changePct24h),changePct24h:o.changePct24h})),[a,e.count]);return c.jsx(n,{nodes:l,isLoading:s,loadingText:"loading hot pools…",emptyText:"no pool data",caption:`${e.network} · area by 24h volume · ring by 24h change`,formatTitle:o=>`${o.label} · ${h(o.value)} vol · ${i(o.changePct24h)}`})}const C=u({...r,component:b});export{C as dexPoolBubblesFrame};
@@ -1 +1 @@
1
- import{r as n,j as t}from"./react-qoZPGuNy.js";import{c,f as s}from"./format-DxkEZcwQ.js";import{f as d,cM as i,c5 as x}from"./index-BHlJHScr.js";import{F as l}from"./ui-Bq3RQsdJ.js";import{S as u}from"./scatter-chart-B78EA7lD.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";i.schema;function h({config:o}){const{pools:r,isLoading:m}=x(o.network),a=n.useMemo(()=>r.filter(e=>e.reserveUsd>0&&e.volume24hUsd>0).slice(0,o.count).map(e=>({id:e.name,label:e.name,x:Math.log10(e.reserveUsd),y:e.volume24hUsd,weight:e.txns24h,color:c(e.changePct24h)})),[r,o.count]);return m?t.jsx(l,{loading:!0,children:"loading pools…"}):a.length===0?t.jsx(l,{children:"no pool data yet"}):t.jsxs("div",{className:"flex h-full flex-col justify-center gap-1 text-normal",children:[t.jsx(u,{data:a,yScale:"log",height:210,formatX:e=>s(10**e),formatY:s,maxLabels:8}),t.jsxs("div",{className:"caption text-soft text-center",children:[o.network," · liquidity (x, log) vs 24h volume (y, log) · bubble = trades"]})]})}const b=d({...i,component:h});export{b as dexPoolLiquidityScatterFrame};
1
+ import{r as n,j as t}from"./react-qoZPGuNy.js";import{c,f as s}from"./format-DxkEZcwQ.js";import{f as d,cM as i,c5 as x}from"./index-BJ1Zyy42.js";import{F as l}from"./ui-Bq3RQsdJ.js";import{S as u}from"./scatter-chart-B78EA7lD.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";i.schema;function h({config:o}){const{pools:r,isLoading:m}=x(o.network),a=n.useMemo(()=>r.filter(e=>e.reserveUsd>0&&e.volume24hUsd>0).slice(0,o.count).map(e=>({id:e.name,label:e.name,x:Math.log10(e.reserveUsd),y:e.volume24hUsd,weight:e.txns24h,color:c(e.changePct24h)})),[r,o.count]);return m?t.jsx(l,{loading:!0,children:"loading pools…"}):a.length===0?t.jsx(l,{children:"no pool data yet"}):t.jsxs("div",{className:"flex h-full flex-col justify-center gap-1 text-normal",children:[t.jsx(u,{data:a,yScale:"log",height:210,formatX:e=>s(10**e),formatY:s,maxLabels:8}),t.jsxs("div",{className:"caption text-soft text-center",children:[o.network," · liquidity (x, log) vs 24h volume (y, log) · bubble = trades"]})]})}const b=d({...i,component:h});export{b as dexPoolLiquidityScatterFrame};
@@ -1 +1 @@
1
- import{r as l,j as s}from"./react-qoZPGuNy.js";import{f as c,a as i}from"./format-DxkEZcwQ.js";import{f as h,c9 as n,c5 as u}from"./index-BHlJHScr.js";import{T as p,a as d}from"./treemap-leaf-QG-L-SIG.js";import{F as m}from"./ui-Bq3RQsdJ.js";import"./utils-DxneYyA_.js";import"./d3-ibrLIlQc.js";n.schema;function f({width:t,height:a,data:o}){const r=c(o.volume24hUsd);return s.jsx(d,{width:t,height:a,label:o.id,secondary:r,title:`${o.id} · ${r} vol · ${i(o.changePct24h)}`})}function x({config:t}){const{pools:a,isLoading:o}=u(t.network),r=l.useMemo(()=>a.filter(e=>e.volume24hUsd>0).slice(0,t.count).map(e=>({id:e.name,value:e.volume24hUsd,volume24hUsd:e.volume24hUsd,changePct24h:e.changePct24h})),[a,t.count]);return o?s.jsx(m,{loading:!0,children:"loading hot pools…"}):r.length===0?s.jsx(m,{children:"no pool data"}):s.jsx(p,{data:r,LeafComponent:f,getColorValue:e=>e.changePct24h})}const F=h({...n,component:x});export{F as dexPoolTreemapFrame};
1
+ import{r as l,j as s}from"./react-qoZPGuNy.js";import{f as c,a as i}from"./format-DxkEZcwQ.js";import{f as h,c9 as n,c5 as u}from"./index-BJ1Zyy42.js";import{T as p,a as d}from"./treemap-leaf-QG-L-SIG.js";import{F as m}from"./ui-Bq3RQsdJ.js";import"./utils-DxneYyA_.js";import"./d3-ibrLIlQc.js";n.schema;function f({width:t,height:a,data:o}){const r=c(o.volume24hUsd);return s.jsx(d,{width:t,height:a,label:o.id,secondary:r,title:`${o.id} · ${r} vol · ${i(o.changePct24h)}`})}function x({config:t}){const{pools:a,isLoading:o}=u(t.network),r=l.useMemo(()=>a.filter(e=>e.volume24hUsd>0).slice(0,t.count).map(e=>({id:e.name,value:e.volume24hUsd,volume24hUsd:e.volume24hUsd,changePct24h:e.changePct24h})),[a,t.count]);return o?s.jsx(m,{loading:!0,children:"loading hot pools…"}):r.length===0?s.jsx(m,{children:"no pool data"}):s.jsx(p,{data:r,LeafComponent:f,getColorValue:e=>e.changePct24h})}const F=h({...n,component:x});export{F as dexPoolTreemapFrame};
@@ -1 +1 @@
1
- import{r as s,j as n}from"./react-qoZPGuNy.js";import{B as c}from"./bubbles-shared-DlmjtiIA.js";import{c as m,f as i,a as u}from"./format-DxkEZcwQ.js";import{f as p,ci as r,ax as b}from"./index-BHlJHScr.js";import"./ui-Bq3RQsdJ.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";r.schema;function d({config:o}){const{entries:a,isLoading:l}=b(),t=s.useMemo(()=>a.filter(e=>e.volume24h>0).slice(0,o.topN).map(e=>({id:e.name,label:e.name,value:e.volume24h,color:m(e.changePct??0),borderColor:m(e.changePct??0),changePct:e.changePct??0})),[a,o.topN]);return n.jsx(c,{nodes:t,isLoading:l,loadingText:"loading DEX volume…",emptyText:"no DEX volume data",caption:`area by 24h volume · ring by 1d change · top ${t.length}`,formatTitle:e=>`${e.label} · ${i(e.value)} vol · ${u(e.changePct)}`})}const C=p({...r,component:d});export{C as dexVolumeBubblesFrame};
1
+ import{r as s,j as n}from"./react-qoZPGuNy.js";import{B as c}from"./bubbles-shared-DlmjtiIA.js";import{c as m,f as i,a as u}from"./format-DxkEZcwQ.js";import{f as p,ci as r,ax as b}from"./index-BJ1Zyy42.js";import"./ui-Bq3RQsdJ.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";r.schema;function d({config:o}){const{entries:a,isLoading:l}=b(),t=s.useMemo(()=>a.filter(e=>e.volume24h>0).slice(0,o.topN).map(e=>({id:e.name,label:e.name,value:e.volume24h,color:m(e.changePct??0),borderColor:m(e.changePct??0),changePct:e.changePct??0})),[a,o.topN]);return n.jsx(c,{nodes:t,isLoading:l,loadingText:"loading DEX volume…",emptyText:"no DEX volume data",caption:`area by 24h volume · ring by 1d change · top ${t.length}`,formatTitle:e=>`${e.label} · ${i(e.value)} vol · ${u(e.changePct)}`})}const C=p({...r,component:d});export{C as dexVolumeBubblesFrame};
@@ -1 +1 @@
1
- import{r as l,j as r}from"./react-qoZPGuNy.js";import{p as x,f as C}from"./format-DxkEZcwQ.js";import{f as M,ay as p,az as S}from"./index-BHlJHScr.js";import{F as u}from"./ui-Bq3RQsdJ.js";import{a,C as f}from"./chart-utils-DGogNvJT.js";import{M as D}from"./index-BpPIfN5S.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";const y={"7D":{ms:10080*60*1e3,timeframe:a["7D"]},"1M":{ms:720*60*60*1e3,timeframe:a["1M"]},"3M":{ms:2160*60*60*1e3,timeframe:a["3M"]}};p.schema;function E({config:t}){const{ms:m,timeframe:c}=y[t.lookback],s=l.useMemo(()=>Date.now()-m,[m]),{history:i,isLoading:d}=S(t.protocols),n=l.useMemo(()=>t.protocols.map((e,h)=>({id:e,name:x(e),color:f[h%f.length],data:(i[e]??[]).filter(o=>o.time>=s).map(o=>({date:new Date(o.time).toISOString(),value:o.value}))})),[t.protocols,i,s]);return d?r.jsx(u,{loading:!0,children:"loading DEX volume…"}):n.every(e=>e.data.length===0)?r.jsx(u,{children:"no DEX volume data yet"}):r.jsx(D,{series:n,timeframe:c,height:250,formatValue:C})}const I=M({...p,component:E});export{I as dexVolumeChartFrame};
1
+ import{r as l,j as r}from"./react-qoZPGuNy.js";import{p as x,f as C}from"./format-DxkEZcwQ.js";import{f as M,ay as p,az as S}from"./index-BJ1Zyy42.js";import{F as u}from"./ui-Bq3RQsdJ.js";import{a,C as f}from"./chart-utils-DGogNvJT.js";import{M as D}from"./index-BpPIfN5S.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";const y={"7D":{ms:10080*60*1e3,timeframe:a["7D"]},"1M":{ms:720*60*60*1e3,timeframe:a["1M"]},"3M":{ms:2160*60*60*1e3,timeframe:a["3M"]}};p.schema;function E({config:t}){const{ms:m,timeframe:c}=y[t.lookback],s=l.useMemo(()=>Date.now()-m,[m]),{history:i,isLoading:d}=S(t.protocols),n=l.useMemo(()=>t.protocols.map((e,h)=>({id:e,name:x(e),color:f[h%f.length],data:(i[e]??[]).filter(o=>o.time>=s).map(o=>({date:new Date(o.time).toISOString(),value:o.value}))})),[t.protocols,i,s]);return d?r.jsx(u,{loading:!0,children:"loading DEX volume…"}):n.every(e=>e.data.length===0)?r.jsx(u,{children:"no DEX volume data yet"}):r.jsx(D,{series:n,timeframe:c,height:250,formatValue:C})}const I=M({...p,component:E});export{I as dexVolumeChartFrame};
@@ -1 +1 @@
1
- import{r as n,j as r}from"./react-qoZPGuNy.js";import{p as d,f as i}from"./format-DxkEZcwQ.js";import{f as h,cR as c,az as x}from"./index-BHlJHScr.js";import{F as l}from"./ui-Bq3RQsdJ.js";import{C as u}from"./chart-utils-DGogNvJT.js";import{S}from"./index-DuNO-RcB.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";const D={"7D":10080*60*1e3,"1M":720*60*60*1e3,"3M":2160*60*60*1e3};c.schema;function A(e){return e.toLocaleDateString("en-US",{month:"short",day:"numeric"})}function M({config:e}){const a=n.useMemo(()=>Date.now()-D[e.lookback],[e.lookback]),{history:m,isLoading:p}=x(e.protocols),s=n.useMemo(()=>e.protocols.map((o,f)=>({id:o,name:d(o),color:u[f%u.length],data:(m[o]??[]).filter(t=>t.time>=a).map(t=>({date:new Date(t.time),value:t.value}))})),[e.protocols,m,a]);return p?r.jsx(l,{loading:!0,children:"loading DEX volume…"}):s.every(o=>o.data.length===0)?r.jsx(l,{children:"no DEX volume data yet"}):r.jsx(S,{series:s,height:240,formatXAxis:A,formatYAxis:i,formatValue:i})}const V=h({...c,component:M});export{V as dexVolumeShareAreaFrame};
1
+ import{r as n,j as r}from"./react-qoZPGuNy.js";import{p as d,f as i}from"./format-DxkEZcwQ.js";import{f as h,cR as c,az as x}from"./index-BJ1Zyy42.js";import{F as l}from"./ui-Bq3RQsdJ.js";import{C as u}from"./chart-utils-DGogNvJT.js";import{S}from"./index-DuNO-RcB.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";const D={"7D":10080*60*1e3,"1M":720*60*60*1e3,"3M":2160*60*60*1e3};c.schema;function A(e){return e.toLocaleDateString("en-US",{month:"short",day:"numeric"})}function M({config:e}){const a=n.useMemo(()=>Date.now()-D[e.lookback],[e.lookback]),{history:m,isLoading:p}=x(e.protocols),s=n.useMemo(()=>e.protocols.map((o,f)=>({id:o,name:d(o),color:u[f%u.length],data:(m[o]??[]).filter(t=>t.time>=a).map(t=>({date:new Date(t.time),value:t.value}))})),[e.protocols,m,a]);return p?r.jsx(l,{loading:!0,children:"loading DEX volume…"}):s.every(o=>o.data.length===0)?r.jsx(l,{children:"no DEX volume data yet"}):r.jsx(S,{series:s,height:240,formatXAxis:A,formatYAxis:i,formatValue:i})}const V=h({...c,component:M});export{V as dexVolumeShareAreaFrame};
@@ -1 +1 @@
1
- import{r as u,j as t}from"./react-qoZPGuNy.js";import{f as i}from"./format-DxkEZcwQ.js";import{f as l,aw as n,ax as p}from"./index-BHlJHScr.js";import{T as c,a as f}from"./treemap-leaf-QG-L-SIG.js";import{F as s}from"./ui-Bq3RQsdJ.js";import"./utils-DxneYyA_.js";import"./d3-ibrLIlQc.js";n.schema;function d({width:m,height:r,data:o}){const a=i(o.volume24h);return t.jsx(f,{width:m,height:r,label:o.id,secondary:a,title:`${o.id} · ${a} 24h volume`})}function h({config:m}){const{entries:r,isLoading:o}=p(),a=u.useMemo(()=>r.slice(0,m.topN).map(e=>({id:e.name,value:e.volume24h,volume24h:e.volume24h,changePct:e.changePct??0})),[r,m.topN]);return o?t.jsx(s,{loading:!0,children:"loading DEX volume…"}):a.length===0?t.jsx(s,{children:"no DEX volume data"}):t.jsx(c,{data:a,LeafComponent:d,getColorValue:e=>e.changePct})}const D=l({...n,component:h});export{D as dexVolumeTreemapFrame};
1
+ import{r as u,j as t}from"./react-qoZPGuNy.js";import{f as i}from"./format-DxkEZcwQ.js";import{f as l,aw as n,ax as p}from"./index-BJ1Zyy42.js";import{T as c,a as f}from"./treemap-leaf-QG-L-SIG.js";import{F as s}from"./ui-Bq3RQsdJ.js";import"./utils-DxneYyA_.js";import"./d3-ibrLIlQc.js";n.schema;function d({width:m,height:r,data:o}){const a=i(o.volume24h);return t.jsx(f,{width:m,height:r,label:o.id,secondary:a,title:`${o.id} · ${a} 24h volume`})}function h({config:m}){const{entries:r,isLoading:o}=p(),a=u.useMemo(()=>r.slice(0,m.topN).map(e=>({id:e.name,value:e.volume24h,volume24h:e.volume24h,changePct:e.changePct??0})),[r,m.topN]);return o?t.jsx(s,{loading:!0,children:"loading DEX volume…"}):a.length===0?t.jsx(s,{children:"no DEX volume data"}):t.jsx(c,{data:a,LeafComponent:d,getColorValue:e=>e.changePct})}const D=l({...n,component:h});export{D as dexVolumeTreemapFrame};
@@ -1 +1 @@
1
- import{r as s,j as t}from"./react-qoZPGuNy.js";import{i as w}from"./content-shared-BZ1XzrJx.js";import{f as k,aU as x}from"./index-BHlJHScr.js";import{F as b}from"./ui-Bq3RQsdJ.js";x.schema;const h="var(--color-highlight)",p={coin:"Coin flip",dice:"Dice roll",list:"Random pick"},v={1:[!1,!1,!1,!1,!0,!1,!1,!1,!1],2:[!0,!1,!1,!1,!1,!1,!1,!1,!0],3:[!0,!1,!1,!1,!0,!1,!1,!1,!0],4:[!0,!1,!0,!1,!1,!1,!0,!1,!0],5:[!0,!1,!0,!1,!0,!1,!0,!1,!0],6:[!0,!1,!0,!0,!1,!0,!0,!1,!0]};function c(r,e){return r==="coin"?Math.random()<.5?"Heads":"Tails":r==="dice"?String(Math.floor(Math.random()*6)+1):e.length===0?"":e[Math.floor(Math.random()*e.length)]??""}function N({value:r}){const e=v[r];return e?t.jsx("div",{className:"grid grid-cols-3 gap-1","aria-hidden":!0,children:e.map((a,l)=>t.jsx("span",{className:"h-1.5 w-1.5 rounded-full",style:{background:a?h:"transparent"}},l))}):null}function E({config:r}){const{mode:e,options:a,label:l}=r,n=e==="list"&&a.length===0,[o,f]=s.useState(()=>c(e,a)),[i,u]=s.useState(!1);s.useEffect(()=>{f(c(e,a))},[e,a]),s.useEffect(()=>{if(!i)return;let d=0;const m=window.setInterval(()=>{f(c(e,a)),d+=1,d>=6&&(window.clearInterval(m),u(!1))},60);return()=>window.clearInterval(m)},[i,e,a]);const g=s.useCallback(()=>{n||u(!0)},[n]);if(n)return t.jsx(b,{children:"add options to decide"});const j=e==="list"?"metric-lg":"metric-xl";return t.jsxs("button",{type:"button",onClick:g,"aria-label":`${p[e]} — roll again`,className:`flex h-full w-full cursor-pointer flex-col items-center justify-center gap-2 px-3 py-2 ${w}`,children:[t.jsx("span",{className:"caption text-soft uppercase tracking-[0.12em]",children:p[e]}),t.jsx("span",{"aria-live":"polite",className:`${j} max-w-full break-words text-center leading-none transition-transform`,style:{color:h,transform:i?"scale(1.08)":void 0},children:o}),e==="dice"&&t.jsx(N,{value:Number(o)}),l.trim()&&t.jsx("span",{className:"caption text-soft max-w-full text-center",children:l.trim()}),t.jsx("span",{className:"caption text-disabled uppercase tracking-[0.12em]",children:"click to roll"})]})}const F=k({...x,component:E});export{F as diceFrame};
1
+ import{r as s,j as t}from"./react-qoZPGuNy.js";import{i as w}from"./content-shared-BZ1XzrJx.js";import{f as k,aU as x}from"./index-BJ1Zyy42.js";import{F as b}from"./ui-Bq3RQsdJ.js";x.schema;const h="var(--color-highlight)",p={coin:"Coin flip",dice:"Dice roll",list:"Random pick"},v={1:[!1,!1,!1,!1,!0,!1,!1,!1,!1],2:[!0,!1,!1,!1,!1,!1,!1,!1,!0],3:[!0,!1,!1,!1,!0,!1,!1,!1,!0],4:[!0,!1,!0,!1,!1,!1,!0,!1,!0],5:[!0,!1,!0,!1,!0,!1,!0,!1,!0],6:[!0,!1,!0,!0,!1,!0,!0,!1,!0]};function c(r,e){return r==="coin"?Math.random()<.5?"Heads":"Tails":r==="dice"?String(Math.floor(Math.random()*6)+1):e.length===0?"":e[Math.floor(Math.random()*e.length)]??""}function N({value:r}){const e=v[r];return e?t.jsx("div",{className:"grid grid-cols-3 gap-1","aria-hidden":!0,children:e.map((a,l)=>t.jsx("span",{className:"h-1.5 w-1.5 rounded-full",style:{background:a?h:"transparent"}},l))}):null}function E({config:r}){const{mode:e,options:a,label:l}=r,n=e==="list"&&a.length===0,[o,f]=s.useState(()=>c(e,a)),[i,u]=s.useState(!1);s.useEffect(()=>{f(c(e,a))},[e,a]),s.useEffect(()=>{if(!i)return;let d=0;const m=window.setInterval(()=>{f(c(e,a)),d+=1,d>=6&&(window.clearInterval(m),u(!1))},60);return()=>window.clearInterval(m)},[i,e,a]);const g=s.useCallback(()=>{n||u(!0)},[n]);if(n)return t.jsx(b,{children:"add options to decide"});const j=e==="list"?"metric-lg":"metric-xl";return t.jsxs("button",{type:"button",onClick:g,"aria-label":`${p[e]} — roll again`,className:`flex h-full w-full cursor-pointer flex-col items-center justify-center gap-2 px-3 py-2 ${w}`,children:[t.jsx("span",{className:"caption text-soft uppercase tracking-[0.12em]",children:p[e]}),t.jsx("span",{"aria-live":"polite",className:`${j} max-w-full break-words text-center leading-none transition-transform`,style:{color:h,transform:i?"scale(1.08)":void 0},children:o}),e==="dice"&&t.jsx(N,{value:Number(o)}),l.trim()&&t.jsx("span",{className:"caption text-soft max-w-full text-center",children:l.trim()}),t.jsx("span",{className:"caption text-disabled uppercase tracking-[0.12em]",children:"click to roll"})]})}const F=k({...x,component:E});export{F as diceFrame};
@@ -1 +1 @@
1
- import{r as s,j as M}from"./react-qoZPGuNy.js";import{a as P,d as _,G as T}from"./game-ui-BiMS2KJf.js";import{f as k,G as z}from"./index-BHlJHScr.js";import"./format-DxkEZcwQ.js";const F=.6,U=-12,I=40,W=40,b=44,Y=24,X=40,H=3,q=5e-4,p={ground:"rgba(255, 255, 255, 0.1)",groundTexture:"rgba(255, 255, 255, 0.06)",dino:"rgba(255, 255, 255, 1)",eye:"rgba(0, 0, 0, 0.8)",cactus:"#25A78D"};function L(t,n,o,c){t.fillStyle=p.dino,t.fillRect(n+10,o+10,25,24),t.fillRect(n+20,o,20,16),t.fillStyle=p.eye,t.fillRect(n+32,o+4,4,4),t.fillStyle=p.dino,t.fillRect(n,o+16,14,8),t.fillRect(n-4,o+12,8,8),c===null?(t.fillRect(n+12,o+34,6,10),t.fillRect(n+24,o+34,6,10)):(t.fillRect(n+12,o+34,6,c===0?10:6),t.fillRect(n+24,o+34,6,c===1?10:6)),t.fillRect(n+30,o+18,4,10)}function B(t,n,o,c,m){const f=o-m;t.fillStyle=p.cactus,t.fillRect(n+c/2-4,f,8,m),t.fillRect(n,f+10,8,6),t.fillRect(n,f+10,4,14),t.fillRect(n+c-8,f+18,8,6),t.fillRect(n+c-4,f+18,4,12)}function N(t,n,o,c,m,f){const u=t.height-I;n.clearRect(0,0,t.width,t.height),n.fillStyle=p.ground,n.fillRect(0,u,t.width,2),L(n,50,u-b,null),n.textAlign="center",o==="idle"?(n.fillStyle=T.text,n.font='bold 14px "DM Sans", sans-serif',n.fillText("Press SPACE or tap to start",t.width/2,t.height/2-30)):(n.fillStyle=T.gameOver,n.font='bold 20px "DM Sans", sans-serif',n.fillText("GAME OVER",t.width/2,t.height/2-40),n.fillStyle=T.text,n.font='bold 14px "DM Sans", sans-serif',n.fillText(`Score: ${c}`,t.width/2,t.height/2-10),n.fillStyle=T.textSoft,n.fillText("Press SPACE or tap to restart",t.width/2,t.height/2+20)),n.textAlign="left",_(t,n,c,m,f)}function K(){const t=s.useRef(null),n=s.useRef(null),[o,c]=s.useState("idle"),[m,f]=s.useState(0),[u,V]=s.useState(()=>{if(typeof window<"u"){const e=localStorage.getItem("zframes-dino-high-score");return e?parseInt(e,10):0}return 0}),[v,J]=s.useState(!1),g=s.useRef(0),S=s.useRef(u),D=s.useRef(o),y=s.useRef(P(null));s.useEffect(()=>{S.current=u,u>0&&localStorage.setItem("zframes-dino-high-score",String(u))},[u]),s.useEffect(()=>{D.current=o},[o]);const R=s.useRef({dinoY:0,dinoVelocity:0,isJumping:!1,obstacles:[],speed:H,frameCount:0,groundOffset:0}),G=s.useCallback(()=>{const e=t.current;e&&(R.current={dinoY:e.height-I-b,dinoVelocity:0,isJumping:!1,obstacles:[],speed:H,frameCount:0,groundOffset:0},g.current=0,f(0))},[]),C=s.useCallback(()=>{var i;if((i=n.current)==null||i.focus(),o!=="playing"){G(),c("playing");return}const e=R.current;e.isJumping||(e.dinoVelocity=U,e.isJumping=!0)},[o,G]);return s.useEffect(()=>{const e=a=>{const l=a.target;l.tagName==="INPUT"||l.tagName==="TEXTAREA"||l.isContentEditable||(a.code==="Space"||a.code==="ArrowUp")&&(a.preventDefault(),C())},i=n.current;if(i)return i.addEventListener("keydown",e),()=>i.removeEventListener("keydown",e)},[C]),s.useLayoutEffect(()=>{const e=t.current;if(!e)return;const i=()=>{const l=e.parentElement;if(l&&l.clientWidth>0&&l.clientHeight>0){e.width=l.clientWidth,e.height=l.clientHeight,y.current=P(e),R.current.dinoY=e.height-I-b;const E=e.getContext("2d");E&&D.current!=="playing"&&N(e,E,D.current,g.current,S.current,y.current),J(A=>!A)}};i();const a=new ResizeObserver(i);return a.observe(e.parentElement),()=>a.disconnect()},[]),s.useEffect(()=>{if(o!=="playing")return;const e=t.current,i=e==null?void 0:e.getContext("2d");if(!e||!i)return;let a;const l=e.height-I,E=()=>{i.fillStyle=p.ground,i.fillRect(0,l,e.width,2),i.fillStyle=p.groundTexture;const r=R.current.groundOffset%30;for(let h=-r;h<e.width;h+=30)i.beginPath(),i.arc(h,l+12,1.5,0,Math.PI*2),i.fill(),i.beginPath(),i.arc(h+15,l+20,1,0,Math.PI*2),i.fill()},A=r=>{const w=R.current.dinoY;return 50+W-5>r.x&&55<r.x+r.width&&w+b>l-r.height&&w+5<l},O=()=>{const r=R.current;i.clearRect(0,0,e.width,e.height),r.dinoVelocity+=F,r.dinoY+=r.dinoVelocity;const h=l-b;r.dinoY>=h&&(r.dinoY=h,r.dinoVelocity=0,r.isJumping=!1),r.obstacles=r.obstacles.filter(d=>d.x>-Y),r.obstacles.forEach(d=>{d.x-=r.speed});const w=r.obstacles[r.obstacles.length-1],j=300+Math.random()*200;(!w||w.x<e.width-j)&&Math.random()<.02&&r.obstacles.push({x:e.width,width:Y,height:X});for(const d of r.obstacles)if(A(d)){g.current>S.current&&(S.current=g.current,V(g.current)),c("gameover");return}r.frameCount++,r.frameCount%6===0&&(g.current+=1,f(g.current)),r.speed+=q,r.groundOffset+=r.speed,E(),L(i,50,r.dinoY,r.isJumping?null:Math.floor(r.frameCount/5)%2),r.obstacles.forEach(d=>B(i,d.x,l,d.width,d.height)),_(e,i,g.current,S.current,y.current),a=requestAnimationFrame(O)};return a=requestAnimationFrame(O),()=>cancelAnimationFrame(a)},[o]),s.useEffect(()=>{if(o==="playing")return;const e=t.current,i=e==null?void 0:e.getContext("2d");!e||!i||N(e,i,o,m,u,y.current)},[o,m,u,v]),M.jsx("div",{ref:n,tabIndex:0,className:"relative h-full w-full cursor-pointer select-none overflow-hidden outline-none",onClick:C,onTouchStart:C,role:"application","aria-label":"Dino running game. Press space or tap to jump over obstacles.",children:M.jsx("canvas",{ref:t,className:"h-full w-full"})})}const ee=k({...z,component:K});export{ee as dinoGameFrame};
1
+ import{r as s,j as M}from"./react-qoZPGuNy.js";import{a as P,d as _,G as T}from"./game-ui-BiMS2KJf.js";import{f as k,G as z}from"./index-BJ1Zyy42.js";import"./format-DxkEZcwQ.js";const F=.6,U=-12,I=40,W=40,b=44,Y=24,X=40,H=3,q=5e-4,p={ground:"rgba(255, 255, 255, 0.1)",groundTexture:"rgba(255, 255, 255, 0.06)",dino:"rgba(255, 255, 255, 1)",eye:"rgba(0, 0, 0, 0.8)",cactus:"#25A78D"};function L(t,n,o,c){t.fillStyle=p.dino,t.fillRect(n+10,o+10,25,24),t.fillRect(n+20,o,20,16),t.fillStyle=p.eye,t.fillRect(n+32,o+4,4,4),t.fillStyle=p.dino,t.fillRect(n,o+16,14,8),t.fillRect(n-4,o+12,8,8),c===null?(t.fillRect(n+12,o+34,6,10),t.fillRect(n+24,o+34,6,10)):(t.fillRect(n+12,o+34,6,c===0?10:6),t.fillRect(n+24,o+34,6,c===1?10:6)),t.fillRect(n+30,o+18,4,10)}function B(t,n,o,c,m){const f=o-m;t.fillStyle=p.cactus,t.fillRect(n+c/2-4,f,8,m),t.fillRect(n,f+10,8,6),t.fillRect(n,f+10,4,14),t.fillRect(n+c-8,f+18,8,6),t.fillRect(n+c-4,f+18,4,12)}function N(t,n,o,c,m,f){const u=t.height-I;n.clearRect(0,0,t.width,t.height),n.fillStyle=p.ground,n.fillRect(0,u,t.width,2),L(n,50,u-b,null),n.textAlign="center",o==="idle"?(n.fillStyle=T.text,n.font='bold 14px "DM Sans", sans-serif',n.fillText("Press SPACE or tap to start",t.width/2,t.height/2-30)):(n.fillStyle=T.gameOver,n.font='bold 20px "DM Sans", sans-serif',n.fillText("GAME OVER",t.width/2,t.height/2-40),n.fillStyle=T.text,n.font='bold 14px "DM Sans", sans-serif',n.fillText(`Score: ${c}`,t.width/2,t.height/2-10),n.fillStyle=T.textSoft,n.fillText("Press SPACE or tap to restart",t.width/2,t.height/2+20)),n.textAlign="left",_(t,n,c,m,f)}function K(){const t=s.useRef(null),n=s.useRef(null),[o,c]=s.useState("idle"),[m,f]=s.useState(0),[u,V]=s.useState(()=>{if(typeof window<"u"){const e=localStorage.getItem("zframes-dino-high-score");return e?parseInt(e,10):0}return 0}),[v,J]=s.useState(!1),g=s.useRef(0),S=s.useRef(u),D=s.useRef(o),y=s.useRef(P(null));s.useEffect(()=>{S.current=u,u>0&&localStorage.setItem("zframes-dino-high-score",String(u))},[u]),s.useEffect(()=>{D.current=o},[o]);const R=s.useRef({dinoY:0,dinoVelocity:0,isJumping:!1,obstacles:[],speed:H,frameCount:0,groundOffset:0}),G=s.useCallback(()=>{const e=t.current;e&&(R.current={dinoY:e.height-I-b,dinoVelocity:0,isJumping:!1,obstacles:[],speed:H,frameCount:0,groundOffset:0},g.current=0,f(0))},[]),C=s.useCallback(()=>{var i;if((i=n.current)==null||i.focus(),o!=="playing"){G(),c("playing");return}const e=R.current;e.isJumping||(e.dinoVelocity=U,e.isJumping=!0)},[o,G]);return s.useEffect(()=>{const e=a=>{const l=a.target;l.tagName==="INPUT"||l.tagName==="TEXTAREA"||l.isContentEditable||(a.code==="Space"||a.code==="ArrowUp")&&(a.preventDefault(),C())},i=n.current;if(i)return i.addEventListener("keydown",e),()=>i.removeEventListener("keydown",e)},[C]),s.useLayoutEffect(()=>{const e=t.current;if(!e)return;const i=()=>{const l=e.parentElement;if(l&&l.clientWidth>0&&l.clientHeight>0){e.width=l.clientWidth,e.height=l.clientHeight,y.current=P(e),R.current.dinoY=e.height-I-b;const E=e.getContext("2d");E&&D.current!=="playing"&&N(e,E,D.current,g.current,S.current,y.current),J(A=>!A)}};i();const a=new ResizeObserver(i);return a.observe(e.parentElement),()=>a.disconnect()},[]),s.useEffect(()=>{if(o!=="playing")return;const e=t.current,i=e==null?void 0:e.getContext("2d");if(!e||!i)return;let a;const l=e.height-I,E=()=>{i.fillStyle=p.ground,i.fillRect(0,l,e.width,2),i.fillStyle=p.groundTexture;const r=R.current.groundOffset%30;for(let h=-r;h<e.width;h+=30)i.beginPath(),i.arc(h,l+12,1.5,0,Math.PI*2),i.fill(),i.beginPath(),i.arc(h+15,l+20,1,0,Math.PI*2),i.fill()},A=r=>{const w=R.current.dinoY;return 50+W-5>r.x&&55<r.x+r.width&&w+b>l-r.height&&w+5<l},O=()=>{const r=R.current;i.clearRect(0,0,e.width,e.height),r.dinoVelocity+=F,r.dinoY+=r.dinoVelocity;const h=l-b;r.dinoY>=h&&(r.dinoY=h,r.dinoVelocity=0,r.isJumping=!1),r.obstacles=r.obstacles.filter(d=>d.x>-Y),r.obstacles.forEach(d=>{d.x-=r.speed});const w=r.obstacles[r.obstacles.length-1],j=300+Math.random()*200;(!w||w.x<e.width-j)&&Math.random()<.02&&r.obstacles.push({x:e.width,width:Y,height:X});for(const d of r.obstacles)if(A(d)){g.current>S.current&&(S.current=g.current,V(g.current)),c("gameover");return}r.frameCount++,r.frameCount%6===0&&(g.current+=1,f(g.current)),r.speed+=q,r.groundOffset+=r.speed,E(),L(i,50,r.dinoY,r.isJumping?null:Math.floor(r.frameCount/5)%2),r.obstacles.forEach(d=>B(i,d.x,l,d.width,d.height)),_(e,i,g.current,S.current,y.current),a=requestAnimationFrame(O)};return a=requestAnimationFrame(O),()=>cancelAnimationFrame(a)},[o]),s.useEffect(()=>{if(o==="playing")return;const e=t.current,i=e==null?void 0:e.getContext("2d");!e||!i||N(e,i,o,m,u,y.current)},[o,m,u,v]),M.jsx("div",{ref:n,tabIndex:0,className:"relative h-full w-full cursor-pointer select-none overflow-hidden outline-none",onClick:C,onTouchStart:C,role:"application","aria-label":"Dino running game. Press space or tap to jump over obstacles.",children:M.jsx("canvas",{ref:t,className:"h-full w-full"})})}const ee=k({...z,component:K});export{ee as dinoGameFrame};
@@ -1 +1 @@
1
- import{j as r}from"./react-qoZPGuNy.js";import{f as n,aS as a}from"./index-BHlJHScr.js";a.schema;const d="hsl(0 0% var(--zf-ink-l, 100%) / 0.16)";function h({config:e}){const t=e.orientation==="vertical",i=e.label.trim(),l=e.accent!==void 0,o=l?{"--zf-accent-hue":String(e.accent)}:void 0,c=l?"var(--color-accent-line)":d,s=()=>r.jsx("span",{className:`shrink ${t?"w-0 flex-1":"h-0 flex-1"}`,style:t?{borderLeftWidth:e.thickness,borderLeftStyle:e.style,borderColor:c}:{borderTopWidth:e.thickness,borderTopStyle:e.style,borderColor:c}});return i?r.jsxs("div",{className:`flex h-full w-full items-center justify-center gap-3 ${t?"flex-col py-1":"px-1"}`,style:o,children:[s(),r.jsx("span",{className:`caption shrink-0 whitespace-nowrap uppercase tracking-[0.14em] ${l?"text-highlight":"text-soft"}`,style:t?{writingMode:"vertical-rl"}:void 0,children:i}),s()]}):r.jsx("div",{className:`flex h-full w-full items-center justify-center ${t?"flex-col":""}`,style:o,children:s()})}const f=n({...a,component:h});export{f as dividerFrame};
1
+ import{j as r}from"./react-qoZPGuNy.js";import{f as n,aS as a}from"./index-BJ1Zyy42.js";a.schema;const d="hsl(0 0% var(--zf-ink-l, 100%) / 0.16)";function h({config:e}){const t=e.orientation==="vertical",i=e.label.trim(),l=e.accent!==void 0,o=l?{"--zf-accent-hue":String(e.accent)}:void 0,c=l?"var(--color-accent-line)":d,s=()=>r.jsx("span",{className:`shrink ${t?"w-0 flex-1":"h-0 flex-1"}`,style:t?{borderLeftWidth:e.thickness,borderLeftStyle:e.style,borderColor:c}:{borderTopWidth:e.thickness,borderTopStyle:e.style,borderColor:c}});return i?r.jsxs("div",{className:`flex h-full w-full items-center justify-center gap-3 ${t?"flex-col py-1":"px-1"}`,style:o,children:[s(),r.jsx("span",{className:`caption shrink-0 whitespace-nowrap uppercase tracking-[0.14em] ${l?"text-highlight":"text-soft"}`,style:t?{writingMode:"vertical-rl"}:void 0,children:i}),s()]}):r.jsx("div",{className:`flex h-full w-full items-center justify-center ${t?"flex-col":""}`,style:o,children:s()})}const f=n({...a,component:h});export{f as dividerFrame};
@@ -1 +1 @@
1
- import{r as c,j as e}from"./react-qoZPGuNy.js";import{b as l}from"./format-DxkEZcwQ.js";import{f as p,cJ as s,k as d}from"./index-BHlJHScr.js";import{F as i}from"./ui-Bq3RQsdJ.js";import{B as f}from"./bar-chart-DCMbxUJx.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";s.schema;function h({config:n}){const{market:r,isLoading:m}=d(),a=c.useMemo(()=>r?Object.entries(r.dominance).sort((t,o)=>o[1]-t[1]).slice(0,n.limit).map(([t,o])=>({label:t.toUpperCase(),value:o})):[],[r,n.limit]);return m?e.jsx(i,{loading:!0,children:"loading dominance…"}):a.length===0?e.jsx(i,{children:"no dominance data yet"}):e.jsxs("div",{className:"flex h-full flex-col justify-center gap-1 text-normal",children:[e.jsx(f,{data:a,orientation:"horizontal",height:Math.max(a.length*24,96),formatValue:t=>l(t,1)}),e.jsxs("div",{className:"caption text-soft text-center",children:["market-cap share · top ",a.length]})]})}const F=p({...s,component:h});export{F as dominanceBarsFrame};
1
+ import{r as c,j as e}from"./react-qoZPGuNy.js";import{b as l}from"./format-DxkEZcwQ.js";import{f as p,cJ as s,k as d}from"./index-BJ1Zyy42.js";import{F as i}from"./ui-Bq3RQsdJ.js";import{B as f}from"./bar-chart-DCMbxUJx.js";import"./d3-ibrLIlQc.js";import"./utils-DxneYyA_.js";s.schema;function h({config:n}){const{market:r,isLoading:m}=d(),a=c.useMemo(()=>r?Object.entries(r.dominance).sort((t,o)=>o[1]-t[1]).slice(0,n.limit).map(([t,o])=>({label:t.toUpperCase(),value:o})):[],[r,n.limit]);return m?e.jsx(i,{loading:!0,children:"loading dominance…"}):a.length===0?e.jsx(i,{children:"no dominance data yet"}):e.jsxs("div",{className:"flex h-full flex-col justify-center gap-1 text-normal",children:[e.jsx(f,{data:a,orientation:"horizontal",height:Math.max(a.length*24,96),formatValue:t=>l(t,1)}),e.jsxs("div",{className:"caption text-soft text-center",children:["market-cap share · top ",a.length]})]})}const F=p({...s,component:h});export{F as dominanceBarsFrame};