@luxfi/ui 8.1.0 → 8.2.1

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 (661) hide show
  1. package/dist/3d-button.d.ts +5 -5
  2. package/dist/3d-button.d.ts.map +1 -1
  3. package/dist/3d-grid.d.ts +1 -1
  4. package/dist/3d-grid.d.ts.map +1 -1
  5. package/dist/3d-marquee.d.ts +5 -5
  6. package/dist/3d-marquee.d.ts.map +1 -1
  7. package/dist/3d-model-viewer.d.ts.map +1 -1
  8. package/dist/3d-scene.d.ts +2 -2
  9. package/dist/3d-scene.d.ts.map +1 -1
  10. package/dist/3d-text.d.ts +5 -5
  11. package/dist/3d-text.d.ts.map +1 -1
  12. package/dist/accordion.d.ts.map +1 -1
  13. package/dist/advanced-chart.d.ts +1 -1
  14. package/dist/advanced-chart.d.ts.map +1 -1
  15. package/dist/ai-agents.d.ts.map +1 -1
  16. package/dist/ai-playground.d.ts +2 -1
  17. package/dist/ai-playground.d.ts.map +1 -1
  18. package/dist/ai-voice.d.ts +8 -29
  19. package/dist/ai-voice.d.ts.map +1 -1
  20. package/dist/android.d.ts.map +1 -1
  21. package/dist/animated-background.d.ts +7 -7
  22. package/dist/animated-background.d.ts.map +1 -1
  23. package/dist/animated-cursor.d.ts +2 -1
  24. package/dist/animated-cursor.d.ts.map +1 -1
  25. package/dist/animated-icon.d.ts +7 -7
  26. package/dist/animated-icon.d.ts.map +1 -1
  27. package/dist/animated-list.d.ts +7 -7
  28. package/dist/animated-list.d.ts.map +1 -1
  29. package/dist/animated-number.d.ts +2 -2
  30. package/dist/animated-number.d.ts.map +1 -1
  31. package/dist/animated-text.d.ts +1 -1
  32. package/dist/animated-text.d.ts.map +1 -1
  33. package/dist/apple-cards-carousel.d.ts +1 -1
  34. package/dist/apple-cards-carousel.d.ts.map +1 -1
  35. package/dist/auth.d.ts.map +1 -1
  36. package/dist/bank.d.ts +31 -31
  37. package/dist/bank.d.ts.map +1 -1
  38. package/dist/banner.d.ts.map +1 -1
  39. package/dist/calendar.d.ts +1 -1
  40. package/dist/calendar.d.ts.map +1 -1
  41. package/dist/chart.d.ts +4 -4
  42. package/dist/chart.d.ts.map +1 -1
  43. package/dist/chrome.d.ts.map +1 -1
  44. package/dist/code-block.d.ts.map +1 -1
  45. package/dist/code-compare.d.ts.map +1 -1
  46. package/dist/code-diff.d.ts.map +1 -1
  47. package/dist/code-explorer.d.ts.map +1 -1
  48. package/dist/code-preview.d.ts.map +1 -1
  49. package/dist/code-snippet.d.ts.map +1 -1
  50. package/dist/code-terminal.d.ts.map +1 -1
  51. package/dist/collapsible.d.ts +2 -2
  52. package/dist/collapsible.d.ts.map +1 -1
  53. package/dist/color-mode.d.ts +1 -1
  54. package/dist/color-mode.d.ts.map +1 -1
  55. package/dist/combobox.d.ts +2 -1
  56. package/dist/combobox.d.ts.map +1 -1
  57. package/dist/company-profile.d.ts +1 -1
  58. package/dist/company-profile.d.ts.map +1 -1
  59. package/dist/crypto-screener.d.ts +1 -1
  60. package/dist/crypto-screener.d.ts.map +1 -1
  61. package/dist/dialog.d.ts +2 -2
  62. package/dist/direction.d.ts +1 -1
  63. package/dist/direction.d.ts.map +1 -1
  64. package/dist/drawer.d.ts +6 -6
  65. package/dist/drawer.d.ts.map +1 -1
  66. package/dist/empty.d.ts +6 -6
  67. package/dist/empty.d.ts.map +1 -1
  68. package/dist/financials.d.ts +1 -1
  69. package/dist/financials.d.ts.map +1 -1
  70. package/dist/forex-screener.d.ts +1 -1
  71. package/dist/forex-screener.d.ts.map +1 -1
  72. package/dist/grid-pattern.d.ts.map +1 -1
  73. package/dist/hooks/use-mobile.cjs +22 -0
  74. package/dist/hooks/use-mobile.d.ts.map +1 -1
  75. package/dist/hooks/use-mobile.js +17 -0
  76. package/dist/iam.d.ts.map +1 -1
  77. package/dist/identity.d.ts.map +1 -1
  78. package/dist/ink.d.ts.map +1 -1
  79. package/dist/input-otp.d.ts +6 -6
  80. package/dist/input-otp.d.ts.map +1 -1
  81. package/dist/input.d.ts +7 -7
  82. package/dist/input.d.ts.map +1 -1
  83. package/dist/item.d.ts +10 -10
  84. package/dist/item.d.ts.map +1 -1
  85. package/dist/kanban.d.ts +2 -1
  86. package/dist/kanban.d.ts.map +1 -1
  87. package/dist/kbd.d.ts +2 -2
  88. package/dist/kbd.d.ts.map +1 -1
  89. package/dist/link.d.ts +1 -1
  90. package/dist/link.d.ts.map +1 -1
  91. package/dist/lux.config.d.ts +88 -88
  92. package/dist/lux.config.d.ts.map +1 -1
  93. package/dist/market-overview.d.ts +1 -1
  94. package/dist/market-overview.d.ts.map +1 -1
  95. package/dist/menu.d.ts.map +1 -1
  96. package/dist/menubar.d.ts +3 -3
  97. package/dist/menubar.d.ts.map +1 -1
  98. package/dist/music-player.d.ts +2 -1
  99. package/dist/music-player.d.ts.map +1 -1
  100. package/dist/news-timeline.d.ts +1 -1
  101. package/dist/news-timeline.d.ts.map +1 -1
  102. package/dist/order-entry.d.ts +1 -1
  103. package/dist/order-entry.d.ts.map +1 -1
  104. package/dist/orders-history.d.ts +1 -1
  105. package/dist/orders-history.d.ts.map +1 -1
  106. package/dist/pagination.d.ts +20 -20
  107. package/dist/pagination.d.ts.map +1 -1
  108. package/dist/particles-background.d.ts +2 -1
  109. package/dist/particles-background.d.ts.map +1 -1
  110. package/dist/pill.d.ts.map +1 -1
  111. package/dist/popover.d.ts.map +1 -1
  112. package/dist/positions-list.d.ts +1 -1
  113. package/dist/positions-list.d.ts.map +1 -1
  114. package/dist/progress-circle.d.ts.map +1 -1
  115. package/dist/progress.d.ts.map +1 -1
  116. package/dist/provider.d.ts.map +1 -1
  117. package/dist/pulse-animation.d.ts +10 -10
  118. package/dist/pulse-animation.d.ts.map +1 -1
  119. package/dist/radio.d.ts.map +1 -1
  120. package/dist/resizable.d.ts +3 -3
  121. package/dist/resizable.d.ts.map +1 -1
  122. package/dist/reveal-animation.d.ts +9 -9
  123. package/dist/reveal-animation.d.ts.map +1 -1
  124. package/dist/sidebar.d.ts +23 -23
  125. package/dist/sidebar.d.ts.map +1 -1
  126. package/dist/site/commerce/ui/conf.cjs +15 -0
  127. package/dist/site/commerce/ui/conf.d.ts +12 -0
  128. package/dist/site/commerce/ui/conf.d.ts.map +1 -0
  129. package/dist/site/commerce/ui/conf.js +13 -0
  130. package/dist/site/commerce/ui/context.cjs +280 -0
  131. package/dist/site/commerce/ui/context.d.ts +7 -0
  132. package/dist/site/commerce/ui/context.d.ts.map +1 -0
  133. package/dist/site/commerce/ui/context.js +276 -0
  134. package/dist/site/commerce/ui/store.cjs +205 -0
  135. package/dist/site/commerce/ui/store.d.ts +81 -0
  136. package/dist/site/commerce/ui/store.d.ts.map +1 -0
  137. package/dist/site/commerce/ui/store.js +203 -0
  138. package/dist/site/components/access-code-input.cjs +52 -0
  139. package/dist/site/components/access-code-input.d.ts +8 -0
  140. package/dist/site/components/access-code-input.d.ts.map +1 -0
  141. package/dist/site/components/access-code-input.js +50 -0
  142. package/dist/site/components/analytics.cjs +52 -0
  143. package/dist/site/components/analytics.d.ts +3 -0
  144. package/dist/site/components/analytics.d.ts.map +1 -0
  145. package/dist/site/components/analytics.js +46 -0
  146. package/dist/site/components/auth/callback.cjs +31 -0
  147. package/dist/site/components/auth/callback.d.ts +9 -0
  148. package/dist/site/components/auth/callback.d.ts.map +1 -0
  149. package/dist/site/components/auth/callback.js +29 -0
  150. package/dist/site/components/auth/login-panel.cjs +131 -0
  151. package/dist/site/components/auth/login-panel.css +4 -0
  152. package/dist/site/components/auth/login-panel.d.ts +12 -0
  153. package/dist/site/components/auth/login-panel.d.ts.map +1 -0
  154. package/dist/site/components/auth/login-panel.js +124 -0
  155. package/dist/site/components/auth/login.cjs +35 -0
  156. package/dist/site/components/auth/login.d.ts +13 -0
  157. package/dist/site/components/auth/login.d.ts.map +1 -0
  158. package/dist/site/components/auth/login.js +33 -0
  159. package/dist/site/components/auth/provider.cjs +20 -0
  160. package/dist/site/components/auth/provider.d.ts +6 -0
  161. package/dist/site/components/auth/provider.d.ts.map +1 -0
  162. package/dist/site/components/auth/provider.js +18 -0
  163. package/dist/site/components/auth/resume.cjs +15 -0
  164. package/dist/site/components/auth/resume.d.ts +4 -0
  165. package/dist/site/components/auth/resume.d.ts.map +1 -0
  166. package/dist/site/components/auth/resume.js +12 -0
  167. package/dist/site/components/auth/widget.cjs +63 -0
  168. package/dist/site/components/auth/widget.d.ts +13 -0
  169. package/dist/site/components/auth/widget.d.ts.map +1 -0
  170. package/dist/site/components/auth/widget.js +61 -0
  171. package/dist/site/components/back-button.cjs +36 -0
  172. package/dist/site/components/back-button.d.ts +17 -0
  173. package/dist/site/components/back-button.d.ts.map +1 -0
  174. package/dist/site/components/back-button.js +34 -0
  175. package/dist/site/components/chat-widget.cjs +67 -0
  176. package/dist/site/components/chat-widget.d.ts +12 -0
  177. package/dist/site/components/chat-widget.d.ts.map +1 -0
  178. package/dist/site/components/chat-widget.js +61 -0
  179. package/dist/site/components/commerce/bag-button.cjs +79 -0
  180. package/dist/site/components/commerce/bag-button.css +4 -0
  181. package/dist/site/components/commerce/bag-button.d.ts +16 -0
  182. package/dist/site/components/commerce/bag-button.d.ts.map +1 -0
  183. package/dist/site/components/commerce/bag-button.js +77 -0
  184. package/dist/site/components/commerce/buy-button.cjs +31 -0
  185. package/dist/site/components/commerce/buy-button.d.ts +11 -0
  186. package/dist/site/components/commerce/buy-button.d.ts.map +1 -0
  187. package/dist/site/components/commerce/buy-button.js +29 -0
  188. package/dist/site/components/commerce/checkout-button.cjs +116 -0
  189. package/dist/site/components/commerce/checkout-button.css +4 -0
  190. package/dist/site/components/commerce/checkout-button.d.ts +13 -0
  191. package/dist/site/components/commerce/checkout-button.d.ts.map +1 -0
  192. package/dist/site/components/commerce/checkout-button.js +114 -0
  193. package/dist/site/components/commerce/checkout-panel/cart-accordian.cjs +50 -0
  194. package/dist/site/components/commerce/checkout-panel/cart-accordian.d.ts +11 -0
  195. package/dist/site/components/commerce/checkout-panel/cart-accordian.d.ts.map +1 -0
  196. package/dist/site/components/commerce/checkout-panel/cart-accordian.js +48 -0
  197. package/dist/site/components/commerce/checkout-panel/checkout-panel-props.cjs +2 -0
  198. package/dist/site/components/commerce/checkout-panel/checkout-panel-props.d.ts +8 -0
  199. package/dist/site/components/commerce/checkout-panel/checkout-panel-props.d.ts.map +1 -0
  200. package/dist/site/components/commerce/checkout-panel/checkout-panel-props.js +1 -0
  201. package/dist/site/components/commerce/checkout-panel/desktop-bag-carousel.cjs +30 -0
  202. package/dist/site/components/commerce/checkout-panel/desktop-bag-carousel.d.ts +10 -0
  203. package/dist/site/components/commerce/checkout-panel/desktop-bag-carousel.d.ts.map +1 -0
  204. package/dist/site/components/commerce/checkout-panel/desktop-bag-carousel.js +28 -0
  205. package/dist/site/components/commerce/checkout-panel/desktop-cp.cjs +235 -0
  206. package/dist/site/components/commerce/checkout-panel/desktop-cp.css +132 -0
  207. package/dist/site/components/commerce/checkout-panel/desktop-cp.d.ts +5 -0
  208. package/dist/site/components/commerce/checkout-panel/desktop-cp.d.ts.map +1 -0
  209. package/dist/site/components/commerce/checkout-panel/desktop-cp.js +229 -0
  210. package/dist/site/components/commerce/checkout-panel/index.cjs +502 -0
  211. package/dist/site/components/commerce/checkout-panel/index.css +132 -0
  212. package/dist/site/components/commerce/checkout-panel/index.d.ts +6 -0
  213. package/dist/site/components/commerce/checkout-panel/index.d.ts.map +1 -0
  214. package/dist/site/components/commerce/checkout-panel/index.js +496 -0
  215. package/dist/site/components/commerce/checkout-panel/mobile-cp.cjs +295 -0
  216. package/dist/site/components/commerce/checkout-panel/mobile-cp.css +132 -0
  217. package/dist/site/components/commerce/checkout-panel/mobile-cp.d.ts +5 -0
  218. package/dist/site/components/commerce/checkout-panel/mobile-cp.d.ts.map +1 -0
  219. package/dist/site/components/commerce/checkout-panel/mobile-cp.js +289 -0
  220. package/dist/site/components/commerce/checkout-panel/policy-links.cjs +25 -0
  221. package/dist/site/components/commerce/checkout-panel/policy-links.d.ts +6 -0
  222. package/dist/site/components/commerce/checkout-panel/policy-links.d.ts.map +1 -0
  223. package/dist/site/components/commerce/checkout-panel/policy-links.js +19 -0
  224. package/dist/site/components/commerce/checkout-panel/steps-indicator.cjs +27 -0
  225. package/dist/site/components/commerce/checkout-panel/steps-indicator.d.ts +7 -0
  226. package/dist/site/components/commerce/checkout-panel/steps-indicator.d.ts.map +1 -0
  227. package/dist/site/components/commerce/checkout-panel/steps-indicator.js +25 -0
  228. package/dist/site/components/commerce/checkout-panel/thank-you.cjs +25 -0
  229. package/dist/site/components/commerce/checkout-panel/thank-you.d.ts +5 -0
  230. package/dist/site/components/commerce/checkout-panel/thank-you.d.ts.map +1 -0
  231. package/dist/site/components/commerce/checkout-panel/thank-you.js +19 -0
  232. package/dist/site/components/commerce/desktop-bag-popup.cjs +72 -0
  233. package/dist/site/components/commerce/desktop-bag-popup.css +4 -0
  234. package/dist/site/components/commerce/desktop-bag-popup.d.ts +8 -0
  235. package/dist/site/components/commerce/desktop-bag-popup.d.ts.map +1 -0
  236. package/dist/site/components/commerce/desktop-bag-popup.js +70 -0
  237. package/dist/site/components/commerce/drawer/index.cjs +361 -0
  238. package/dist/site/components/commerce/drawer/index.css +132 -0
  239. package/dist/site/components/commerce/drawer/index.d.ts +4 -0
  240. package/dist/site/components/commerce/drawer/index.d.ts.map +1 -0
  241. package/dist/site/components/commerce/drawer/index.js +359 -0
  242. package/dist/site/components/commerce/drawer/micro.cjs +230 -0
  243. package/dist/site/components/commerce/drawer/micro.css +4 -0
  244. package/dist/site/components/commerce/drawer/micro.d.ts +8 -0
  245. package/dist/site/components/commerce/drawer/micro.d.ts.map +1 -0
  246. package/dist/site/components/commerce/drawer/micro.js +228 -0
  247. package/dist/site/components/commerce/drawer/shell.cjs +78 -0
  248. package/dist/site/components/commerce/drawer/shell.css +127 -0
  249. package/dist/site/components/commerce/drawer/shell.d.ts +9 -0
  250. package/dist/site/components/commerce/drawer/shell.d.ts.map +1 -0
  251. package/dist/site/components/commerce/drawer/shell.js +76 -0
  252. package/dist/site/components/contact-dialog/contact-form.cjs +70 -0
  253. package/dist/site/components/contact-dialog/contact-form.d.ts +13 -0
  254. package/dist/site/components/contact-dialog/contact-form.d.ts.map +1 -0
  255. package/dist/site/components/contact-dialog/contact-form.js +64 -0
  256. package/dist/site/components/contact-dialog/disclaimer.cjs +15 -0
  257. package/dist/site/components/contact-dialog/disclaimer.d.ts +4 -0
  258. package/dist/site/components/contact-dialog/disclaimer.d.ts.map +1 -0
  259. package/dist/site/components/contact-dialog/disclaimer.js +13 -0
  260. package/dist/site/components/contact-dialog/index.cjs +113 -0
  261. package/dist/site/components/contact-dialog/index.d.ts +5 -0
  262. package/dist/site/components/contact-dialog/index.d.ts.map +1 -0
  263. package/dist/site/components/contact-dialog/index.js +107 -0
  264. package/dist/site/components/copyright.cjs +24 -0
  265. package/dist/site/components/copyright.d.ts +6 -0
  266. package/dist/site/components/copyright.d.ts.map +1 -0
  267. package/dist/site/components/copyright.js +22 -0
  268. package/dist/site/components/drawer-margin.cjs +35 -0
  269. package/dist/site/components/drawer-margin.d.ts +6 -0
  270. package/dist/site/components/drawer-margin.d.ts.map +1 -0
  271. package/dist/site/components/drawer-margin.js +33 -0
  272. package/dist/site/components/footer-nav.cjs +22 -0
  273. package/dist/site/components/footer-nav.d.ts +9 -0
  274. package/dist/site/components/footer-nav.d.ts.map +1 -0
  275. package/dist/site/components/footer-nav.js +20 -0
  276. package/dist/site/components/footer.cjs +132 -0
  277. package/dist/site/components/footer.d.ts +9 -0
  278. package/dist/site/components/footer.d.ts.map +1 -0
  279. package/dist/site/components/footer.js +126 -0
  280. package/dist/site/components/header/desktop-nav-menu.cjs +170 -0
  281. package/dist/site/components/header/desktop-nav-menu.d.ts +9 -0
  282. package/dist/site/components/header/desktop-nav-menu.d.ts.map +1 -0
  283. package/dist/site/components/header/desktop-nav-menu.js +145 -0
  284. package/dist/site/components/header/desktop.cjs +405 -0
  285. package/dist/site/components/header/desktop.css +4 -0
  286. package/dist/site/components/header/desktop.d.ts +13 -0
  287. package/dist/site/components/header/desktop.d.ts.map +1 -0
  288. package/dist/site/components/header/desktop.js +381 -0
  289. package/dist/site/components/header/index.cjs +717 -0
  290. package/dist/site/components/header/index.css +132 -0
  291. package/dist/site/components/header/index.d.ts +11 -0
  292. package/dist/site/components/header/index.d.ts.map +1 -0
  293. package/dist/site/components/header/index.js +693 -0
  294. package/dist/site/components/header/mobile-bag-drawer.cjs +114 -0
  295. package/dist/site/components/header/mobile-bag-drawer.css +4 -0
  296. package/dist/site/components/header/mobile-bag-drawer.d.ts +9 -0
  297. package/dist/site/components/header/mobile-bag-drawer.d.ts.map +1 -0
  298. package/dist/site/components/header/mobile-bag-drawer.js +112 -0
  299. package/dist/site/components/header/mobile-menu-toggle-button.cjs +30 -0
  300. package/dist/site/components/header/mobile-menu-toggle-button.d.ts +8 -0
  301. package/dist/site/components/header/mobile-menu-toggle-button.d.ts.map +1 -0
  302. package/dist/site/components/header/mobile-menu-toggle-button.js +28 -0
  303. package/dist/site/components/header/mobile-nav-menu-ai.cjs +66 -0
  304. package/dist/site/components/header/mobile-nav-menu-ai.css +132 -0
  305. package/dist/site/components/header/mobile-nav-menu-ai.d.ts +7 -0
  306. package/dist/site/components/header/mobile-nav-menu-ai.d.ts.map +1 -0
  307. package/dist/site/components/header/mobile-nav-menu-ai.js +60 -0
  308. package/dist/site/components/header/mobile-nav-menu-item.cjs +98 -0
  309. package/dist/site/components/header/mobile-nav-menu-item.css +132 -0
  310. package/dist/site/components/header/mobile-nav-menu-item.d.ts +8 -0
  311. package/dist/site/components/header/mobile-nav-menu-item.d.ts.map +1 -0
  312. package/dist/site/components/header/mobile-nav-menu-item.js +92 -0
  313. package/dist/site/components/header/mobile-nav-menu.cjs +175 -0
  314. package/dist/site/components/header/mobile-nav-menu.css +132 -0
  315. package/dist/site/components/header/mobile-nav-menu.d.ts +14 -0
  316. package/dist/site/components/header/mobile-nav-menu.d.ts.map +1 -0
  317. package/dist/site/components/header/mobile-nav-menu.js +169 -0
  318. package/dist/site/components/header/mobile.cjs +447 -0
  319. package/dist/site/components/header/mobile.css +132 -0
  320. package/dist/site/components/header/mobile.d.ts +12 -0
  321. package/dist/site/components/header/mobile.d.ts.map +1 -0
  322. package/dist/site/components/header/mobile.js +441 -0
  323. package/dist/site/components/header/theme-toggle.cjs +28 -0
  324. package/dist/site/components/header/theme-toggle.d.ts +4 -0
  325. package/dist/site/components/header/theme-toggle.d.ts.map +1 -0
  326. package/dist/site/components/header/theme-toggle.js +26 -0
  327. package/dist/site/components/icons/avatar.cjs +12 -0
  328. package/dist/site/components/icons/avatar.d.ts +5 -0
  329. package/dist/site/components/icons/avatar.d.ts.map +1 -0
  330. package/dist/site/components/icons/avatar.js +10 -0
  331. package/dist/site/components/icons/bag-icon.cjs +9 -0
  332. package/dist/site/components/icons/bag-icon.d.ts +5 -0
  333. package/dist/site/components/icons/bag-icon.d.ts.map +1 -0
  334. package/dist/site/components/icons/bag-icon.js +7 -0
  335. package/dist/site/components/icons/index.cjs +39 -0
  336. package/dist/site/components/icons/index.css +4 -0
  337. package/dist/site/components/icons/index.d.ts +6 -0
  338. package/dist/site/components/icons/index.d.ts.map +1 -0
  339. package/dist/site/components/icons/index.js +33 -0
  340. package/dist/site/components/icons/left-arrow.cjs +9 -0
  341. package/dist/site/components/icons/left-arrow.d.ts +5 -0
  342. package/dist/site/components/icons/left-arrow.d.ts.map +1 -0
  343. package/dist/site/components/icons/left-arrow.js +7 -0
  344. package/dist/site/components/icons/right-arrow.cjs +9 -0
  345. package/dist/site/components/icons/right-arrow.d.ts +5 -0
  346. package/dist/site/components/icons/right-arrow.d.ts.map +1 -0
  347. package/dist/site/components/icons/right-arrow.js +7 -0
  348. package/dist/site/components/icons/social-icon.cjs +24 -0
  349. package/dist/site/components/icons/social-icon.css +4 -0
  350. package/dist/site/components/icons/social-icon.d.ts +10 -0
  351. package/dist/site/components/icons/social-icon.d.ts.map +1 -0
  352. package/dist/site/components/icons/social-icon.js +22 -0
  353. package/dist/site/components/index.cjs +2004 -0
  354. package/dist/site/components/index.css +132 -0
  355. package/dist/site/components/index.d.ts +24 -0
  356. package/dist/site/components/index.d.ts.map +1 -0
  357. package/dist/site/components/index.js +1952 -0
  358. package/dist/site/components/logo.cjs +37 -0
  359. package/dist/site/components/logo.d.ts +23 -0
  360. package/dist/site/components/logo.d.ts.map +1 -0
  361. package/dist/site/components/logo.js +31 -0
  362. package/dist/site/components/main.cjs +22 -0
  363. package/dist/site/components/main.d.ts +9 -0
  364. package/dist/site/components/main.d.ts.map +1 -0
  365. package/dist/site/components/main.js +20 -0
  366. package/dist/site/components/mini-chart/index.cjs +94 -0
  367. package/dist/site/components/mini-chart/index.d.ts +3 -0
  368. package/dist/site/components/mini-chart/index.d.ts.map +1 -0
  369. package/dist/site/components/mini-chart/index.js +92 -0
  370. package/dist/site/components/mini-chart/mini-chart-props.cjs +2 -0
  371. package/dist/site/components/mini-chart/mini-chart-props.d.ts +33 -0
  372. package/dist/site/components/mini-chart/mini-chart-props.d.ts.map +1 -0
  373. package/dist/site/components/mini-chart/mini-chart-props.js +1 -0
  374. package/dist/site/components/mini-chart/mini-chart.cjs +80 -0
  375. package/dist/site/components/mini-chart/mini-chart.d.ts +5 -0
  376. package/dist/site/components/mini-chart/mini-chart.d.ts.map +1 -0
  377. package/dist/site/components/mini-chart/mini-chart.js +78 -0
  378. package/dist/site/components/mini-chart/wrapper.cjs +94 -0
  379. package/dist/site/components/mini-chart/wrapper.d.ts +7 -0
  380. package/dist/site/components/mini-chart/wrapper.d.ts.map +1 -0
  381. package/dist/site/components/mini-chart/wrapper.js +92 -0
  382. package/dist/site/components/not-found/index.cjs +844 -0
  383. package/dist/site/components/not-found/index.css +132 -0
  384. package/dist/site/components/not-found/index.d.ts +8 -0
  385. package/dist/site/components/not-found/index.d.ts.map +1 -0
  386. package/dist/site/components/not-found/index.js +820 -0
  387. package/dist/site/components/security/index.cjs +857 -0
  388. package/dist/site/components/security/index.css +132 -0
  389. package/dist/site/components/security/index.d.ts +9 -0
  390. package/dist/site/components/security/index.d.ts.map +1 -0
  391. package/dist/site/components/security/index.js +833 -0
  392. package/dist/site/components/tooltip.cjs +28 -0
  393. package/dist/site/components/tooltip.d.ts +11 -0
  394. package/dist/site/components/tooltip.d.ts.map +1 -0
  395. package/dist/site/components/tooltip.js +26 -0
  396. package/dist/site/next/analytics/fpixel.cjs +14 -0
  397. package/dist/site/next/analytics/fpixel.d.ts +9 -0
  398. package/dist/site/next/analytics/fpixel.d.ts.map +1 -0
  399. package/dist/site/next/analytics/fpixel.js +10 -0
  400. package/dist/site/next/analytics/google-analytics.cjs +8 -0
  401. package/dist/site/next/analytics/google-analytics.d.ts +8 -0
  402. package/dist/site/next/analytics/google-analytics.d.ts.map +1 -0
  403. package/dist/site/next/analytics/google-analytics.js +6 -0
  404. package/dist/site/next/analytics/index.cjs +57 -0
  405. package/dist/site/next/analytics/index.d.ts +4 -0
  406. package/dist/site/next/analytics/index.d.ts.map +1 -0
  407. package/dist/site/next/analytics/index.js +49 -0
  408. package/dist/site/next/analytics/pixel-analytics.cjs +59 -0
  409. package/dist/site/next/analytics/pixel-analytics.d.ts +5 -0
  410. package/dist/site/next/analytics/pixel-analytics.d.ts.map +1 -0
  411. package/dist/site/next/analytics/pixel-analytics.js +52 -0
  412. package/dist/site/next/font/font-desc.cjs +2 -0
  413. package/dist/site/next/font/font-desc.d.ts +19 -0
  414. package/dist/site/next/font/font-desc.d.ts.map +1 -0
  415. package/dist/site/next/font/font-desc.js +1 -0
  416. package/dist/site/next/font/fonts.cjs +42 -0
  417. package/dist/site/next/font/fonts.d.ts +4 -0
  418. package/dist/site/next/font/fonts.d.ts.map +1 -0
  419. package/dist/site/next/font/fonts.js +40 -0
  420. package/dist/site/next/font/get-app-router-font-classes.cjs +96 -0
  421. package/dist/site/next/font/get-app-router-font-classes.d.ts +15 -0
  422. package/dist/site/next/font/get-app-router-font-classes.d.ts.map +1 -0
  423. package/dist/site/next/font/get-app-router-font-classes.js +90 -0
  424. package/dist/site/next/font/load-and-return-lux-next-fonts-on-import.cjs +90 -0
  425. package/dist/site/next/font/load-and-return-lux-next-fonts-on-import.d.ts +8 -0
  426. package/dist/site/next/font/load-and-return-lux-next-fonts-on-import.d.ts.map +1 -0
  427. package/dist/site/next/font/load-and-return-lux-next-fonts-on-import.js +84 -0
  428. package/dist/site/next/font/local/InterVariable-Italic.ttf +0 -0
  429. package/dist/site/next/font/local/InterVariable-Italic.woff2 +0 -0
  430. package/dist/site/next/font/local/InterVariable.ttf +0 -0
  431. package/dist/site/next/font/local/InterVariable.woff2 +0 -0
  432. package/dist/site/next/font/local/Zen-Variable.woff2 +0 -0
  433. package/dist/site/next/font/next-font-desc.cjs +2 -0
  434. package/dist/site/next/font/next-font-desc.d.ts +20 -0
  435. package/dist/site/next/font/next-font-desc.d.ts.map +1 -0
  436. package/dist/site/next/font/next-font-desc.js +1 -0
  437. package/dist/site/next/font/pages-router-font-vars.cjs +100 -0
  438. package/dist/site/next/font/pages-router-font-vars.d.ts +3 -0
  439. package/dist/site/next/font/pages-router-font-vars.d.ts.map +1 -0
  440. package/dist/site/next/font/pages-router-font-vars.js +94 -0
  441. package/dist/site/next/head-metadata/index.cjs +139 -0
  442. package/dist/site/next/head-metadata/index.d.ts +12 -0
  443. package/dist/site/next/head-metadata/index.d.ts.map +1 -0
  444. package/dist/site/next/head-metadata/index.js +129 -0
  445. package/dist/site/next/head-metadata/next-metadata.cjs +2 -0
  446. package/dist/site/next/head-metadata/next-metadata.d.ts +48 -0
  447. package/dist/site/next/head-metadata/next-metadata.d.ts.map +1 -0
  448. package/dist/site/next/head-metadata/next-metadata.js +1 -0
  449. package/dist/site/next/index.cjs +147 -0
  450. package/dist/site/next/index.d.ts +3 -0
  451. package/dist/site/next/index.d.ts.map +1 -0
  452. package/dist/site/next/index.js +140 -0
  453. package/dist/site/next/middleware/determine-device-mw.cjs +17 -0
  454. package/dist/site/next/middleware/determine-device-mw.d.ts +4 -0
  455. package/dist/site/next/middleware/determine-device-mw.d.ts.map +1 -0
  456. package/dist/site/next/middleware/determine-device-mw.js +15 -0
  457. package/dist/site/root-layout/index.cjs +1574 -0
  458. package/dist/site/root-layout/index.css +374 -0
  459. package/dist/site/root-layout/index.d.ts +20 -0
  460. package/dist/site/root-layout/index.d.ts.map +1 -0
  461. package/dist/site/root-layout/index.js +1547 -0
  462. package/dist/site/site-def/footer/community.cjs +77 -0
  463. package/dist/site/site-def/footer/community.css +4 -0
  464. package/dist/site/site-def/footer/community.d.ts +13 -0
  465. package/dist/site/site-def/footer/community.d.ts.map +1 -0
  466. package/dist/site/site-def/footer/community.js +75 -0
  467. package/dist/site/site-def/footer/company.cjs +40 -0
  468. package/dist/site/site-def/footer/company.d.ts +23 -0
  469. package/dist/site/site-def/footer/company.d.ts.map +1 -0
  470. package/dist/site/site-def/footer/company.js +38 -0
  471. package/dist/site/site-def/footer/ecosystem.cjs +40 -0
  472. package/dist/site/site-def/footer/ecosystem.d.ts +11 -0
  473. package/dist/site/site-def/footer/ecosystem.d.ts.map +1 -0
  474. package/dist/site/site-def/footer/ecosystem.js +38 -0
  475. package/dist/site/site-def/footer/index.cjs +228 -0
  476. package/dist/site/site-def/footer/index.css +4 -0
  477. package/dist/site/site-def/footer/index.d.ts +16 -0
  478. package/dist/site/site-def/footer/index.d.ts.map +1 -0
  479. package/dist/site/site-def/footer/index.js +220 -0
  480. package/dist/site/site-def/footer/legal.cjs +24 -0
  481. package/dist/site/site-def/footer/legal.d.ts +5 -0
  482. package/dist/site/site-def/footer/legal.d.ts.map +1 -0
  483. package/dist/site/site-def/footer/legal.js +21 -0
  484. package/dist/site/site-def/footer/network.cjs +48 -0
  485. package/dist/site/site-def/footer/network.d.ts +11 -0
  486. package/dist/site/site-def/footer/network.d.ts.map +1 -0
  487. package/dist/site/site-def/footer/network.js +46 -0
  488. package/dist/site/site-def/index.cjs +627 -0
  489. package/dist/site/site-def/index.css +4 -0
  490. package/dist/site/site-def/index.d.ts +5 -0
  491. package/dist/site/site-def/index.d.ts.map +1 -0
  492. package/dist/site/site-def/index.js +624 -0
  493. package/dist/site/site-def/main-nav.cjs +393 -0
  494. package/dist/site/site-def/main-nav.d.ts +46 -0
  495. package/dist/site/site-def/main-nav.d.ts.map +1 -0
  496. package/dist/site/site-def/main-nav.js +391 -0
  497. package/dist/site/types/chatbot-config.cjs +2 -0
  498. package/dist/site/types/chatbot-config.d.ts +6 -0
  499. package/dist/site/types/chatbot-config.d.ts.map +1 -0
  500. package/dist/site/types/chatbot-config.js +1 -0
  501. package/dist/site/types/chatbot-suggested-question.cjs +2 -0
  502. package/dist/site/types/chatbot-suggested-question.d.ts +7 -0
  503. package/dist/site/types/chatbot-suggested-question.d.ts.map +1 -0
  504. package/dist/site/types/chatbot-suggested-question.js +1 -0
  505. package/dist/site/types/contact-info.cjs +2 -0
  506. package/dist/site/types/contact-info.d.ts +7 -0
  507. package/dist/site/types/contact-info.d.ts.map +1 -0
  508. package/dist/site/types/contact-info.js +1 -0
  509. package/dist/site/types/index.cjs +2 -0
  510. package/dist/site/types/index.d.ts +5 -0
  511. package/dist/site/types/index.d.ts.map +1 -0
  512. package/dist/site/types/index.js +1 -0
  513. package/dist/site/types/site-def.cjs +2 -0
  514. package/dist/site/types/site-def.d.ts +41 -0
  515. package/dist/site/types/site-def.d.ts.map +1 -0
  516. package/dist/site/types/site-def.js +1 -0
  517. package/dist/site/util/index.cjs +11 -0
  518. package/dist/site/util/index.d.ts +2 -0
  519. package/dist/site/util/index.d.ts.map +1 -0
  520. package/dist/site/util/index.js +9 -0
  521. package/dist/skeleton.d.ts +1 -1
  522. package/dist/skeleton.d.ts.map +1 -1
  523. package/dist/status.d.ts.map +1 -1
  524. package/dist/stock-screener.d.ts +1 -1
  525. package/dist/stock-screener.d.ts.map +1 -1
  526. package/dist/symbol-info.d.ts +1 -1
  527. package/dist/symbol-info.d.ts.map +1 -1
  528. package/dist/table.d.ts +2 -2
  529. package/dist/table.d.ts.map +1 -1
  530. package/dist/tabs.d.ts.map +1 -1
  531. package/dist/technical-analysis.d.ts +1 -1
  532. package/dist/technical-analysis.d.ts.map +1 -1
  533. package/dist/terminal.d.ts +1 -1
  534. package/dist/terminal.d.ts.map +1 -1
  535. package/dist/ticker-tape.d.ts +1 -1
  536. package/dist/ticker-tape.d.ts.map +1 -1
  537. package/dist/toaster.d.ts +6 -3
  538. package/dist/toaster.d.ts.map +1 -1
  539. package/dist/toggle.d.ts +1 -1
  540. package/dist/toggle.d.ts.map +1 -1
  541. package/dist/trading-panel.d.ts +1 -1
  542. package/dist/trading-panel.d.ts.map +1 -1
  543. package/dist/utils/cn.cjs +10 -0
  544. package/dist/utils/cn.js +1 -0
  545. package/dist/white-label.d.ts +5 -5
  546. package/dist/white-label.d.ts.map +1 -1
  547. package/dist/youtube-pip-player.d.ts.map +1 -1
  548. package/package.json +78 -25
  549. package/src/ai-voice.tsx +10 -34
  550. package/src/site/commerce/ui/conf.ts +13 -0
  551. package/src/site/commerce/ui/context.tsx +120 -0
  552. package/src/site/commerce/ui/store.ts +295 -0
  553. package/src/site/components/access-code-input.tsx +70 -0
  554. package/src/site/components/analytics.tsx +14 -0
  555. package/src/site/components/auth/callback.tsx +40 -0
  556. package/src/site/components/auth/login-panel.tsx +83 -0
  557. package/src/site/components/auth/login.tsx +47 -0
  558. package/src/site/components/auth/provider.tsx +34 -0
  559. package/src/site/components/auth/resume.ts +16 -0
  560. package/src/site/components/auth/widget.tsx +80 -0
  561. package/src/site/components/back-button.tsx +46 -0
  562. package/src/site/components/chat-widget.tsx +83 -0
  563. package/src/site/components/commerce/bag-button.tsx +99 -0
  564. package/src/site/components/commerce/buy-button.tsx +33 -0
  565. package/src/site/components/commerce/checkout-button.tsx +131 -0
  566. package/src/site/components/commerce/checkout-panel/cart-accordian.tsx +65 -0
  567. package/src/site/components/commerce/checkout-panel/checkout-panel-props.ts +10 -0
  568. package/src/site/components/commerce/checkout-panel/desktop-bag-carousel.tsx +36 -0
  569. package/src/site/components/commerce/checkout-panel/desktop-cp.tsx +82 -0
  570. package/src/site/components/commerce/checkout-panel/index.tsx +126 -0
  571. package/src/site/components/commerce/checkout-panel/mobile-cp.tsx +67 -0
  572. package/src/site/components/commerce/checkout-panel/policy-links.tsx +24 -0
  573. package/src/site/components/commerce/checkout-panel/steps-indicator.tsx +39 -0
  574. package/src/site/components/commerce/checkout-panel/thank-you.tsx +18 -0
  575. package/src/site/components/commerce/desktop-bag-popup.tsx +78 -0
  576. package/src/site/components/commerce/drawer/index.tsx +88 -0
  577. package/src/site/components/commerce/drawer/micro.tsx +145 -0
  578. package/src/site/components/commerce/drawer/shell.tsx +83 -0
  579. package/src/site/components/contact-dialog/contact-form.tsx +109 -0
  580. package/src/site/components/contact-dialog/disclaimer.tsx +13 -0
  581. package/src/site/components/contact-dialog/index.tsx +64 -0
  582. package/src/site/components/copyright.tsx +22 -0
  583. package/src/site/components/drawer-margin.tsx +28 -0
  584. package/src/site/components/footer-nav.tsx +31 -0
  585. package/src/site/components/footer.tsx +72 -0
  586. package/src/site/components/header/desktop-nav-menu.tsx +202 -0
  587. package/src/site/components/header/desktop.tsx +65 -0
  588. package/src/site/components/header/index.tsx +50 -0
  589. package/src/site/components/header/mobile-bag-drawer.tsx +51 -0
  590. package/src/site/components/header/mobile-menu-toggle-button.tsx +34 -0
  591. package/src/site/components/header/mobile-nav-menu-ai.tsx +52 -0
  592. package/src/site/components/header/mobile-nav-menu-item.tsx +48 -0
  593. package/src/site/components/header/mobile-nav-menu.tsx +103 -0
  594. package/src/site/components/header/mobile.tsx +169 -0
  595. package/src/site/components/header/theme-toggle.tsx +26 -0
  596. package/src/site/components/icons/avatar.tsx +11 -0
  597. package/src/site/components/icons/bag-icon.tsx +10 -0
  598. package/src/site/components/icons/index.ts +5 -0
  599. package/src/site/components/icons/left-arrow.tsx +11 -0
  600. package/src/site/components/icons/right-arrow.tsx +10 -0
  601. package/src/site/components/icons/social-icon.tsx +35 -0
  602. package/src/site/components/icons/social-svg.css +3 -0
  603. package/src/site/components/index.ts +26 -0
  604. package/src/site/components/logo.tsx +65 -0
  605. package/src/site/components/main.tsx +26 -0
  606. package/src/site/components/mini-chart/index.tsx +8 -0
  607. package/src/site/components/mini-chart/mini-chart-props.ts +44 -0
  608. package/src/site/components/mini-chart/mini-chart.tsx +86 -0
  609. package/src/site/components/mini-chart/wrapper.tsx +23 -0
  610. package/src/site/components/not-found/index.tsx +28 -0
  611. package/src/site/components/security/index.tsx +55 -0
  612. package/src/site/components/tooltip.tsx +31 -0
  613. package/src/site/next/analytics/fpixel.ts +16 -0
  614. package/src/site/next/analytics/google-analytics.ts +14 -0
  615. package/src/site/next/analytics/index.ts +3 -0
  616. package/src/site/next/analytics/pixel-analytics.tsx +55 -0
  617. package/src/site/next/font/font-desc.ts +18 -0
  618. package/src/site/next/font/fonts.ts +40 -0
  619. package/src/site/next/font/get-app-router-font-classes.ts +19 -0
  620. package/src/site/next/font/load-and-return-lux-next-fonts-on-import.ts +60 -0
  621. package/src/site/next/font/local/InterVariable-Italic.ttf +0 -0
  622. package/src/site/next/font/local/InterVariable-Italic.woff2 +0 -0
  623. package/src/site/next/font/local/InterVariable.ttf +0 -0
  624. package/src/site/next/font/local/InterVariable.woff2 +0 -0
  625. package/src/site/next/font/local/Zen-Variable.woff2 +0 -0
  626. package/src/site/next/font/next-font-desc.ts +29 -0
  627. package/src/site/next/font/pages-router-font-vars.tsx +18 -0
  628. package/src/site/next/head-metadata/index.tsx +209 -0
  629. package/src/site/next/head-metadata/next-metadata.ts +49 -0
  630. package/src/site/next/index.ts +2 -0
  631. package/src/site/next/middleware/determine-device-mw.ts +16 -0
  632. package/src/site/root-layout/WHY_THIS_IS_SEPARATE.txt +2 -0
  633. package/src/site/root-layout/index.tsx +125 -0
  634. package/src/site/site-def/footer/community.tsx +58 -0
  635. package/src/site/site-def/footer/company.ts +37 -0
  636. package/src/site/site-def/footer/ecosystem.ts +37 -0
  637. package/src/site/site-def/footer/index.tsx +26 -0
  638. package/src/site/site-def/footer/legal.ts +28 -0
  639. package/src/site/site-def/footer/network.ts +45 -0
  640. package/src/site/site-def/footer/svg/warpcast-logo.svg +12 -0
  641. package/src/site/site-def/index.ts +4 -0
  642. package/src/site/site-def/main-nav.tsx +460 -0
  643. package/src/site/style/cart-animation.css +29 -0
  644. package/src/site/style/checkout-animation.css +23 -0
  645. package/src/site/style/drawer-handle-overrides.css +160 -0
  646. package/src/site/style/fonts/COPY_TO_PUBLIC_FOR_NON_NEXT.txt +0 -0
  647. package/src/site/style/fonts/InterVariable-Italic.ttf +0 -0
  648. package/src/site/style/fonts/InterVariable-Italic.woff2 +0 -0
  649. package/src/site/style/fonts/InterVariable.ttf +0 -0
  650. package/src/site/style/fonts/InterVariable.woff2 +0 -0
  651. package/src/site/style/fonts/Zen-Variable.woff2 +0 -0
  652. package/src/site/style/lux-colors.css +84 -0
  653. package/src/site/style/lux-fonts.css +24 -0
  654. package/src/site/style/lux-global-non-next.css +52 -0
  655. package/src/site/style/lux-global.css +135 -0
  656. package/src/site/types/chatbot-config.ts +7 -0
  657. package/src/site/types/chatbot-suggested-question.ts +7 -0
  658. package/src/site/types/contact-info.ts +11 -0
  659. package/src/site/types/index.ts +4 -0
  660. package/src/site/types/site-def.ts +53 -0
  661. package/src/site/util/index.ts +11 -0
@@ -0,0 +1,65 @@
1
+ import React from 'react'
2
+ import { Box, css } from '@hanzo/ui'
3
+ import Link from 'next/link'
4
+
5
+ import { type TShirtSize } from '@hanzo/ui/types'
6
+ import { Logo as Mark, Wordmark } from '@luxfi/logo'
7
+
8
+ /**
9
+ * mark — the triangle alone
10
+ * wordmark — the LUX letterforms alone
11
+ * full — the mark beside the wordmark
12
+ *
13
+ * Both halves come from @luxfi/logo, which is the one home for Lux brand art.
14
+ * This file used to draw its own triangle and set the letters "LUX" in the body
15
+ * font, so every Lux site wore typed text where the wordmark belongs — and no
16
+ * variant could fix it, because neither the mark nor the wordmark was here to
17
+ * ask for. Art lives in the brand package; this composes it.
18
+ */
19
+ type LogoVariant = 'mark' | 'wordmark' | 'full'
20
+
21
+ /** Mark height in px, and the wordmark height that stands with it. */
22
+ const SIZE: Record<string, { mark: number, word: number, gap: string }> = {
23
+ xl: { mark: 40, word: 22, gap: 'gap-4' },
24
+ lg: { mark: 40, word: 22, gap: 'gap-4' },
25
+ md: { mark: 32, word: 18, gap: 'gap-3' },
26
+ sm: { mark: 24, word: 13, gap: 'gap-2' },
27
+ xs: { mark: 16, word: 9, gap: 'gap-1.5' },
28
+ }
29
+
30
+ const Logo: React.FC<{
31
+ size?: TShirtSize
32
+ variant?: LogoVariant
33
+ onClick?: () => void
34
+ href?: string
35
+ outerClx?: string
36
+ }> = ({
37
+ size = 'md',
38
+ href, // no default please!
39
+ outerClx = '',
40
+ variant = 'full',
41
+ onClick,
42
+ }) => {
43
+ const s = SIZE[size as string] ?? SIZE.md
44
+ const clx = 'flex flex-row items-center ' + s.gap + ' '
45
+ + (href ? 'hover:opacity-80 cursor-pointer ' : 'cursor-default ')
46
+ + outerClx
47
+
48
+ // White on both counts: the Lux ground is black and the brand's accent is
49
+ // white, so the mark and the letters carry the same value.
50
+ const art = (<>
51
+ {variant !== 'wordmark' && <Mark variant='white' size={s.mark} />}
52
+ {variant !== 'mark' && <Wordmark height={s.word} />}
53
+ </>)
54
+
55
+ return href ? (
56
+ <Link href={href} style={css(clx)} onClick={onClick}>{art}</Link>
57
+ ) : (
58
+ <Box tag="span" className={clx} onClick={onClick}>{art}</Box>
59
+ )
60
+ }
61
+
62
+ export {
63
+ Logo as default,
64
+ type LogoVariant
65
+ }
@@ -0,0 +1,26 @@
1
+ import React, { type PropsWithChildren } from 'react'
2
+ import { Box, cn } from '@hanzo/ui'
3
+ const Main: React.FC<PropsWithChildren & {
4
+ id?: string
5
+ className?: string
6
+ headerSpace?: boolean
7
+ standardWidth?: boolean
8
+ }> = ({
9
+ children,
10
+ className='',
11
+ headerSpace=true,
12
+ standardWidth=true,
13
+ id
14
+ }) => (
15
+ <Box tag="main" id={id ?? 'LUX_UI_MAIN'} className={cn(
16
+ 'flex flex-col justify-start items-center',
17
+ 'px-4 md:px-6 lg:px-8',
18
+ standardWidth ? 'max-w-screen-2xl w-full lg:mx-auto' : '',
19
+ headerSpace ? 'pt-[44px] md:pt-[80px]' : 'py-4',
20
+ className
21
+ )}>
22
+ {children}
23
+ </Box>
24
+ )
25
+
26
+ export default Main
@@ -0,0 +1,8 @@
1
+ import MiniChart from './wrapper'
2
+ // import { type MiniChartProps, type MiniChartDateRanges } from './mini-chart-props'
3
+
4
+ export {
5
+ MiniChart as default,
6
+ // type MiniChartProps,
7
+ // type MiniChartDateRanges
8
+ }
@@ -0,0 +1,44 @@
1
+ import type { CSSProperties } from 'react'
2
+
3
+ // https://www.typescriptlang.org/docs/handbook/enums.html#enums-at-runtime
4
+ const enum MiniChartDateRangesValues {
5
+ '1D',
6
+ '1M',
7
+ '3M',
8
+ '12M',
9
+ '60M',
10
+ 'ALL',
11
+ }
12
+
13
+ type MiniChartDateRanges = keyof typeof MiniChartDateRangesValues
14
+
15
+ interface MiniChartBaseProps {
16
+ symbol: string
17
+ exchange?: string
18
+ dateRange: MiniChartDateRanges
19
+ noTimeScale?: boolean
20
+ width?: number | string
21
+ height?: number | string
22
+ locale?: string
23
+ colorTheme?: "light" | "dark"
24
+ // @ts-ignore // TODO
25
+ lineColor?: CSSProperties["color"]
26
+ // @ts-ignore // TODO
27
+ topGradientColor?: CSSProperties["color"]
28
+ // @ts-ignore // TODO
29
+ bottomGradientColor?: CSSProperties["color"]
30
+ isTransparent?: boolean
31
+ autosize?: boolean
32
+ chartOnly?: boolean
33
+ largeChartUrl?: string
34
+ }
35
+
36
+ type MiniChartProps = {
37
+ widgetProps: MiniChartBaseProps
38
+ containerStyles?: CSSProperties
39
+ }
40
+
41
+ export {
42
+ type MiniChartProps,
43
+ type MiniChartDateRanges
44
+ }
@@ -0,0 +1,86 @@
1
+ 'use client'
2
+
3
+ import React, { useEffect, useRef } from 'react'
4
+ import { Box } from '@hanzo/ui'
5
+ import { type MiniChartProps } from './mini-chart-props'
6
+
7
+ const MiniChart: React.FC<MiniChartProps> = ({
8
+ widgetProps,
9
+ containerStyles = {}
10
+ }) => {
11
+
12
+ const {
13
+ symbol,
14
+ exchange,
15
+ lineColor,
16
+ topGradientColor,
17
+ bottomGradientColor,
18
+ width,
19
+ height,
20
+ autosize,
21
+ locale,
22
+ ...rest
23
+ } = widgetProps
24
+
25
+ const symbolString = (exchange) ? `${exchange}:${symbol}` : symbol
26
+
27
+ const containerRef = useRef<HTMLDivElement | null>(null)
28
+
29
+ useEffect(() => {
30
+ if (!containerRef.current) {
31
+ return
32
+ }
33
+ const script = document.createElement('script')
34
+ script.type = 'text/javascript'
35
+ script.src = 'https://s3.tradingview.com/external-embedding/embed-widget-mini-symbol-overview.js'
36
+ script.async = true
37
+ script.onload = async () => {
38
+ const iframe = containerRef.current?.querySelector('iframe')
39
+ if (iframe && iframe instanceof Element) {
40
+ iframe.style.colorScheme = 'normal'
41
+ setTimeout(() => {
42
+ const value = document.querySelector('#mini-symbol-overview-ticker')
43
+ //console.log("TICKER: " + value)
44
+ }, 1200) // from experimentation
45
+
46
+
47
+ }
48
+
49
+ const copyDiv = document.querySelector('.tradingview-widget-copyright')
50
+ if (copyDiv) {
51
+ //console.log("COPY: " + copyDiv)
52
+ setTimeout(() => {
53
+ copyDiv.classList.remove('invisible')
54
+ }, 1200) // from experimentation
55
+ }
56
+ }
57
+ const config = JSON.stringify({
58
+ symbol: symbolString,
59
+ width: autosize ? '100%' : (width || 350),
60
+ height: autosize ? '100%' : (height || 220),
61
+ locale: locale ?? 'en',
62
+ isTransparent: 'true',
63
+ trendLineColor: lineColor || 'rgba(41, 98, 255, 1)',
64
+ underLineColor: topGradientColor || 'rgba(41, 98, 255, 0.3)',
65
+ underLineBottomColor: bottomGradientColor || 'rgba(41, 98, 255, 0)',
66
+ ...rest,
67
+ })
68
+ script.innerHTML = config
69
+ containerRef.current.appendChild(script)
70
+ return () => {
71
+ while (containerRef.current?.firstChild) {
72
+ containerRef.current.removeChild(containerRef.current.firstChild)
73
+ }
74
+ }
75
+ }, [ JSON.stringify(widgetProps) ])
76
+
77
+ return (<>
78
+ <div style={containerStyles} className='tradingview-widget-container h-[150px]' ref={containerRef} />
79
+ <div className='tradingview-widget-copyright border-t w-full invisible'>
80
+ <a href={`https://www.tradingview.com/symbols/${symbol}${exchange ? `/?exchange=${exchange}` : '' }`} rel="noopener" target="_blank">
81
+ <Box tag="span" className="text-[--hz-ui-primary]">{symbol} quotes</Box></a>&nbsp;by TradingView
82
+ </div>
83
+ </>)
84
+ }
85
+
86
+ export default MiniChart
@@ -0,0 +1,23 @@
1
+ import React from 'react'
2
+
3
+ import BaseChart from './mini-chart'
4
+
5
+ const Wrapper: React.FC<{
6
+ symbol: string,
7
+ exchange?: string
8
+ }> = ({
9
+ symbol,
10
+ exchange
11
+ }) => (
12
+ <BaseChart widgetProps ={{
13
+ symbol,
14
+ exchange,
15
+ autosize: true,
16
+ colorTheme: 'dark',
17
+ lineColor: "rgb(114, 27, 228)",
18
+ bottomGradientColor: "rgba(255, 255, 255, 0.1)",
19
+ dateRange: '60M',
20
+ }}/>
21
+ )
22
+
23
+ export default Wrapper
@@ -0,0 +1,28 @@
1
+ import React from 'react'
2
+
3
+ import { ApplyTypography } from '@hanzo/ui'
4
+
5
+ import type { SiteDef } from '../../site-def'
6
+ import Footer from '../footer'
7
+ import Header from '../header'
8
+ import Main from '../main'
9
+
10
+ const NotFound: React.FC<{
11
+ header?: boolean
12
+ siteDef: SiteDef
13
+ }> = ({
14
+ header = false,
15
+ siteDef,
16
+ }) => (<>
17
+ {header && <Header siteDef={siteDef}/>}
18
+ <Main className='h-[100svh] sm:h-[700px] px-8 sm:px-10' headerSpace={header}>
19
+ <ApplyTypography className='mt-[200px] flex flex-col md:gap-8'>
20
+ <h3>...Huh?</h3>
21
+ <h4>Sorry, we&apos;re fresh out of those.</h4>
22
+ <h4>...try something from the <a href='/'>Home Page</a>?</h4>
23
+ </ApplyTypography>
24
+ </Main>
25
+ <Footer siteDef={siteDef}/>
26
+ </>)
27
+
28
+ export default NotFound
@@ -0,0 +1,55 @@
1
+ import React from 'react'
2
+
3
+ import { ApplyTypography } from '@hanzo/ui/primitives'
4
+
5
+ import type { SiteDef } from '../../site-def'
6
+ import Footer from '../footer'
7
+ import Header from '../header'
8
+ import Main from '../main'
9
+
10
+ const Security: React.FC<{
11
+ contact: string
12
+ header?: boolean
13
+ siteDef: SiteDef
14
+ }> = ({
15
+ contact,
16
+ header = false,
17
+ siteDef
18
+ }) => (<>
19
+ {header && <Header siteDef={siteDef} />}
20
+ <Main className='px-8 sm:px-10 pb-16'>
21
+ <ApplyTypography className='w-full max-w-[46rem] mx-auto flex flex-col gap-6 pt-12'>
22
+ <h1>Reporting a security problem</h1>
23
+ <p>
24
+ Email <a href={`mailto:${contact}`}>{contact}</a>. Tell us what you found and how to
25
+ reproduce it. Send it to us before you tell anyone else, and do not open a public issue.
26
+ </p>
27
+ <p>
28
+ A real report from a stranger is worth more than another internal review. We read every one.
29
+ </p>
30
+ <h2>What happens next</h2>
31
+ <p>
32
+ Someone will read your report and reply. If we can reproduce the problem we will tell you
33
+ what we are doing about it, and tell you again once it is fixed. If we cannot reproduce it
34
+ we will say so and ask you for what we are missing.
35
+ </p>
36
+ <h2>While you are looking</h2>
37
+ <p>
38
+ Test against accounts and data that are your own. Do not read, change, or keep data that
39
+ belongs to someone else. If you reach it by accident, stop, and say so in your report.
40
+ </p>
41
+ <p>
42
+ Do not run anything that degrades the service for other people. No load testing, no denial
43
+ of service, no mass automated scanning, and no social engineering of our staff or our users.
44
+ </p>
45
+ <h2>For scanners</h2>
46
+ <p>
47
+ This page is the policy named by{' '}
48
+ <a href='/.well-known/security.txt'>/.well-known/security.txt</a>, per RFC 9116.
49
+ </p>
50
+ </ApplyTypography>
51
+ </Main>
52
+ <Footer siteDef={siteDef} />
53
+ </>)
54
+
55
+ export default Security
@@ -0,0 +1,31 @@
1
+ 'use client'
2
+ import React from 'react'
3
+ import { Tooltip as RTTooltip, type PlacesType } from 'react-tooltip'
4
+
5
+ const Tooltip: React.FC<{
6
+ select: string
7
+ text: string
8
+ position?: PlacesType // https://react-tooltip.com/docs/options
9
+ clx?: string
10
+ offset?: number
11
+ }> = ({
12
+ select,
13
+ text,
14
+ clx='',
15
+ position='bottom',
16
+ offset=2
17
+ }) => (
18
+ <RTTooltip
19
+ anchorSelect={select}
20
+ noArrow
21
+ opacity={1}
22
+ content={text}
23
+ place={position}
24
+ offset={offset}
25
+ delayShow={100}
26
+ delayHide={100}
27
+ className={'!opacity-100 !bg-level-2 border rounded-[3px] !px-1.5 !py-1 z-floating' + clx}
28
+ />
29
+ )
30
+
31
+ export default Tooltip
@@ -0,0 +1,16 @@
1
+ declare global {
2
+ interface Window {
3
+ fbq: Function;
4
+ }
5
+ }
6
+
7
+ export const FB_PIXEL_ID = process.env.NEXT_PUBLIC_FACEBOOK_PIXEL_ID || ''
8
+
9
+ export const pageview = () => {
10
+ window.fbq('track', 'PageView')
11
+ }
12
+
13
+ // https://developers.facebook.com/docs/meta-pixel/reference
14
+ export const sendFBEvent = (name: string, options = {}) => {
15
+ window.fbq('track', name, options)
16
+ }
@@ -0,0 +1,14 @@
1
+ declare global {
2
+ interface Window {
3
+ gtag: Function;
4
+ }
5
+ }
6
+
7
+ // https://developers.google.com/analytics/devguides/collection/ga4/ecommerce?client_type=gtag
8
+ const sendGAEvent = (name: string, options = {}) => {
9
+ window.gtag('event', name, options)
10
+ }
11
+
12
+ export {
13
+ sendGAEvent as default
14
+ }
@@ -0,0 +1,3 @@
1
+ export { sendFBEvent } from './fpixel'
2
+ export { default as sendGAEvent } from './google-analytics'
3
+ export { FacebookPixel } from './pixel-analytics'
@@ -0,0 +1,55 @@
1
+ 'use client'
2
+ import React, { useEffect, useState } from 'react'
3
+ import { usePathname } from 'next/navigation'
4
+ import Script from 'next/script'
5
+
6
+ import * as fbq from './fpixel'
7
+
8
+ const FacebookPixelHead = () => {
9
+ return (
10
+ <noscript>
11
+ <img
12
+ height='1'
13
+ width='1'
14
+ style={{ display: 'none' }}
15
+ src={`https://www.facebook.com/tr?id=${fbq.FB_PIXEL_ID}&ev=PageView&noscript=1`}
16
+ />
17
+ </noscript>
18
+ )
19
+ }
20
+
21
+ const FacebookPixel = () => {
22
+ const [loaded, setLoaded] = useState(false)
23
+ const pathname = usePathname()
24
+
25
+ useEffect(() => {
26
+ if (!loaded) return
27
+
28
+ fbq.pageview()
29
+ }, [pathname, loaded])
30
+
31
+ return (
32
+ <div>
33
+ <Script
34
+ id='fb-pixel'
35
+ strategy='afterInteractive'
36
+ onLoad={() => setLoaded(true)}
37
+ dangerouslySetInnerHTML={{
38
+ __html: `
39
+ !function(f,b,e,v,n,t,s)
40
+ {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
41
+ n.callMethod.apply(n,arguments):n.queue.push(arguments)};
42
+ if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
43
+ n.queue=[];t=b.createElement(e);t.async=!0;
44
+ t.src=v;s=b.getElementsByTagName(e)[0];
45
+ s.parentNode.insertBefore(t,s)}(window, document,'script',
46
+ 'https://connect.facebook.net/en_US/fbevents.js');
47
+ fbq('init', ${fbq.FB_PIXEL_ID});
48
+ `,
49
+ }}
50
+ />
51
+ </div>
52
+ )
53
+ }
54
+
55
+ export {FacebookPixelHead, FacebookPixel}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * A font in this site's vocabulary.
3
+ *
4
+ * `name` is the ROLE the font plays — `sans`, `nav`, `heading`, `serif`, `mono`
5
+ * — not a file and not a family. The stack is what the browser resolves, and
6
+ * `cssVar` is the custom property the next/font loader publishes the loaded
7
+ * face under, so the stack can point at it.
8
+ *
9
+ * It lived in a Tailwind preset and was called `TwFontDesc`, which named the
10
+ * engine that happened to read it rather than what it is. The engine is gone;
11
+ * the fonts are not.
12
+ */
13
+ export type FontDesc = {
14
+ /** The role: `sans`, `nav`, `heading`, `serif`, `mono`. */
15
+ name: string
16
+ fontFamily: string[]
17
+ cssVar?: string
18
+ }
@@ -0,0 +1,40 @@
1
+ import type { FontDesc } from './font-desc'
2
+
3
+
4
+ /* Read by ./load-and-return-lux-next-fonts-on-import.ts */
5
+
6
+ export default [
7
+ {
8
+ fontFamily: ['var(--font-inter)'], // do not provide fall-backs due to next bug
9
+ cssVar: '--font-inter',
10
+ name: 'sans'
11
+ },
12
+ {
13
+ fontFamily: ['var(--font-inter)'], // do not provide fall-backs due to next bug
14
+ cssVar: '--font-inter',
15
+ name: 'nav'
16
+ },
17
+ {
18
+ fontFamily: ['var(--font-zen-sans)'], // do not provide fall-backs due to next bug
19
+ cssVar: '--font-zen-sans',
20
+ name: 'heading'
21
+ },
22
+ {
23
+ name: 'serif',
24
+ fontFamily: ['ui-serif', 'Georgia', 'Cambria', '"Times New Roman"', 'Times']
25
+ },
26
+ {
27
+ name: 'mono',
28
+ fontFamily: [
29
+ 'ui-monospace',
30
+ 'SFMono-Regular',
31
+ 'Menlo',
32
+ 'Monaco',
33
+ 'Consolas',
34
+ '"Liberation Mono"',
35
+ '"Courier New"',
36
+ 'monospace',
37
+ ]
38
+ }
39
+
40
+ ] as FontDesc[]
@@ -0,0 +1,19 @@
1
+ import nextFonts from './load-and-return-lux-next-fonts-on-import'
2
+ import type NextFontDesc from './next-font-desc'
3
+
4
+ /**
5
+ * next/font's own generated class names, for <body> in an app-router app using
6
+ * our RootLayout.
7
+ *
8
+ * Each one DEFINES a custom property holding the face it loaded, so they have
9
+ * to land on an element before anything can name `var(--font-inter)`.
10
+ *
11
+ * It used to append `font-<role>` for the default face as well. That was a
12
+ * utility class, and with no engine generating it the body had a name no sheet
13
+ * served — the family is set on `body` in lux-global.css instead, where it can
14
+ * point at the property these classes define.
15
+ */
16
+ export default () => {
17
+ const named = nextFonts.map((desc: NextFontDesc) => desc.nextFont!.variable)
18
+ return [...new Set(named)].join(' ')
19
+ }
@@ -0,0 +1,60 @@
1
+ // import { Inter } from 'next/font/google'
2
+ import localFont from 'next/font/local'
3
+
4
+ import type { FontDesc } from './font-desc'
5
+ import type NextFontDesc from './next-font-desc'
6
+
7
+ import fonts from './fonts'
8
+
9
+ /*
10
+ Creating NextFontDesc's and FontDesc's has to be seperated because they are needed
11
+ at different times during the next compile / build. Otherwise a nasty
12
+ race condition happens!
13
+
14
+ Also, requires that "Font loaders must be called and assigned to a const in the module scope"
15
+
16
+ */
17
+
18
+ const zen = localFont({
19
+ src: './local/Zen-Variable.woff2',
20
+ weight: '100 900',
21
+ display: 'swap',
22
+ variable: '--font-zen-sans',
23
+ })
24
+
25
+ const inter = localFont({
26
+ src: './local/InterVariable.ttf',
27
+ display: 'swap',
28
+ variable: '--font-inter',
29
+ })
30
+
31
+ export default [
32
+ {
33
+ font: inter,
34
+ name: 'sans'
35
+ },
36
+ {
37
+ font: inter,
38
+ name: 'nav'
39
+ },
40
+ {
41
+ // Zen is one variable face over 100-900, so the display cut is weight and
42
+ // tracking in CSS rather than a second file: '.font-heading' in style/lux-global.css.
43
+ font: zen,
44
+ name: 'heading'
45
+ }
46
+ ].map (
47
+ (el) => {
48
+ const font: FontDesc | undefined = fonts.find((f: FontDesc) => (el.name === f.name))
49
+ if (!font) {
50
+ throw new Error('lux-next-fonts: Next font is not paired to a TW font!')
51
+ }
52
+
53
+ return ({
54
+ ...font,
55
+ nextFont: el.font,
56
+ })
57
+ }
58
+ ) satisfies NextFontDesc[]
59
+
60
+
@@ -0,0 +1,29 @@
1
+ import type localFont from 'next/font/local'
2
+
3
+ import type { FontDesc } from './font-desc'
4
+
5
+ /**
6
+ * What a next/font loader hands back, DERIVED from the loader.
7
+ *
8
+ * These were two hand-copied declarations marked "from next repo" — a copy of a
9
+ * type that keeps moving, which is how the OpenGraph types in ../head-metadata
10
+ * went stale and failed as "two different types with this name exist, but they
11
+ * are unrelated". `ReturnType` names the position and lets Next say what lives
12
+ * there. The loader answers with a union — a font is only given a variable
13
+ * when it was asked for one — so `Extract` picks the half that has it.
14
+ */
15
+ export type NextFontWithVariable = Extract<ReturnType<typeof localFont>, { variable: string }>
16
+
17
+ /*
18
+ NextFontDesc and FontDesc have to be seperate because they are needed
19
+ at different times during the next compile / build. Otherwise a nasty
20
+ race condition happens! That's why they are in different files.
21
+ */
22
+
23
+ interface NextFontDesc extends FontDesc {
24
+ nextFont: NextFontWithVariable
25
+ }
26
+
27
+ export {
28
+ type NextFontDesc as default,
29
+ }
@@ -0,0 +1,18 @@
1
+
2
+ import nextFonts from './load-and-return-lux-next-fonts-on-import'
3
+ import type NextFontDesc from './next-font-desc'
4
+
5
+ const PagesRouterFontVars: React.FC = () => {
6
+
7
+ const fontVars = nextFonts.map((fd: NextFontDesc) => (
8
+ `${fd.cssVar}: ${fd.nextFont.style.fontFamily};`
9
+ )).join('\n')
10
+
11
+ return <style jsx global>{`
12
+ html {
13
+ ${fontVars}
14
+ }
15
+ `}</style>
16
+ }
17
+
18
+ export default PagesRouterFontVars