@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,46 @@
1
+ 'use client'
2
+ import React from 'react'
3
+ import { useRouter } from 'next/navigation'
4
+
5
+ import { ChevronLeft } from 'lucide-react'
6
+
7
+ import {
8
+ Button,
9
+ buttonVariants,
10
+ } from '@hanzo/ui/primitives'
11
+ import { css, type ButtonSize, type ButtonVariant } from '@hanzo/ui'
12
+ const BackButton: React.FC<{
13
+ variant?: { variant?: ButtonVariant | null; size?: ButtonSize | null }['variant']
14
+ size?: { variant?: ButtonVariant | null; size?: ButtonSize | null }['size']
15
+ onBack?: () => void
16
+ clx?: string
17
+ iconClx?: string
18
+ }> = ({
19
+ variant='ghost',
20
+ size='default',
21
+ clx='',
22
+ iconClx='',
23
+ onBack
24
+ }) => {
25
+
26
+ const router = useRouter()
27
+ const back = () => {
28
+ if (onBack) {
29
+ onBack()
30
+ }
31
+ router.back()
32
+ }
33
+
34
+ return (
35
+ <Button
36
+ variant={variant}
37
+ size={size}
38
+ onClick={back}
39
+ className={clx}
40
+ >
41
+ <ChevronLeft style={css(iconClx)}/>
42
+ </Button>
43
+ )
44
+ }
45
+
46
+ export default BackButton
@@ -0,0 +1,83 @@
1
+ 'use client'
2
+ import React from 'react'
3
+
4
+ import { Button, Card } from '@hanzo/ui/primitives'
5
+ import { Box, cn } from '@hanzo/ui'
6
+ import { LuxLogo } from '@luxfi/logo'
7
+ import type { ChatbotSuggestedQuestion } from '../types'
8
+
9
+ const ChatWidget: React.FC<{
10
+ title: string
11
+ chatbotUrl: string
12
+ subtitle?: string
13
+ question?: string
14
+ buttonClx?: string
15
+ /*
16
+ ChatBotSuggestQuestion.icon
17
+ Currently supports these icons from remix icons (https://remixicon.com/):
18
+ GlobalLineIcon,
19
+ ShieldFlashLineIcon,
20
+ BankCardLineIcon,
21
+ GroupLineIcon,
22
+ QuestionnaireLineIcon
23
+ */
24
+ suggestedQuestions?: ChatbotSuggestedQuestion[]
25
+ }> = ({
26
+ title,
27
+ chatbotUrl,
28
+ subtitle,
29
+ question,
30
+ suggestedQuestions,
31
+ buttonClx=''
32
+ }) => {
33
+
34
+ const [showChatbot, setShowChatbot] = React.useState<boolean>(false)
35
+
36
+ const onClick = () => { setShowChatbot(!showChatbot) }
37
+
38
+ const searchParams = new URLSearchParams()
39
+ if (question) {
40
+ searchParams.append('question', question)
41
+ }
42
+ if (suggestedQuestions) {
43
+ searchParams.append('sQuestions', suggestedQuestions.map(({ message }) => message).join(','))
44
+ searchParams.append('sHeadings', suggestedQuestions.map(({ heading }) => heading).join(','))
45
+ searchParams.append('sIcons', suggestedQuestions.map(({ icon }) => icon).join(','))
46
+ }
47
+
48
+ const iframeSrc = `${chatbotUrl}?${searchParams.toString()}`
49
+
50
+ return (<>
51
+ <Box className={
52
+ 'fixed bottom-0 sm:bottom-16 right-0 w-full h-full ' +
53
+ 'sm:max-w-[400px] sm:max-h-[550px] sm:px-4 z-floating ' +
54
+ (showChatbot ? 'flex' : 'hidden')
55
+ }>
56
+ <Card className='flex flex-col h-full w-full'>
57
+ <div className='flex px-4 py-2 h-12 bg-level-0 items-center justify-between'>
58
+ <h1 className='font-semibold font-heading'>{title} <span className='opacity-60'>{subtitle}</span></h1>
59
+ <Button onClick={onClick} variant='link' size='icon' className='w-fit sm:hidden'>
60
+ <LuxLogo variant='white' size={24}/>
61
+ </Button>
62
+ </div>
63
+ <iframe src={iframeSrc} className='h-full' />
64
+ </Card>
65
+ </Box>
66
+
67
+ <Box tag="span"
68
+ onClick={onClick}
69
+ className={cn(
70
+ // z-index should be below anything in commerce-iu (buy drawer and checkout widget)
71
+ 'fixed bottom-5 right-[24px] md:z-floating z-16 cursor-pointer',
72
+ 'hover:drop-shadow-[0_2px_6px_rgba(255,255,255,1)]',
73
+ 'transition-transform',
74
+ showChatbot ? 'rotate-180' : '',
75
+ buttonClx
76
+ )}
77
+ >
78
+ <LuxLogo variant='white' size={28} />
79
+ </Box>
80
+ </>)
81
+ }
82
+
83
+ export default ChatWidget
@@ -0,0 +1,99 @@
1
+ 'use client'
2
+ import React, { useEffect, useRef } from 'react'
3
+ import { observable, type IObservableValue, reaction, runInAction } from 'mobx'
4
+ import { observer } from 'mobx-react-lite'
5
+
6
+ import { buttonVariants } from '@hanzo/ui/primitives'
7
+ import { Box, cn, type ButtonSize, type ButtonVariant } from '@hanzo/ui'
8
+ import { useCommerce } from '@hanzo/commerce'
9
+
10
+ import { Bag } from '../icons'
11
+
12
+ const BagButton: React.FC<{
13
+ showIfEmpty?: boolean
14
+ animateOnHover?: boolean
15
+ animateOnQuantityChange?: boolean
16
+ size?: { variant?: ButtonVariant | null; size?: ButtonSize | null }['size']
17
+ className?: string
18
+ iconClx?: string
19
+ onClick?: () => void
20
+ }> = observer(({
21
+ showIfEmpty=false,
22
+ animateOnHover=true,
23
+ animateOnQuantityChange=true,
24
+ size='default',
25
+ className='',
26
+ iconClx='',
27
+ onClick
28
+ }) => {
29
+
30
+ const c = useCommerce()
31
+ const wiggleRef = useRef<IObservableValue<'more' | 'less' | 'none'>>(observable.box('none'))
32
+
33
+ useEffect(() => (
34
+ // return IReactionDisposer
35
+ (animateOnQuantityChange && c) ? reaction(
36
+ () => (c.cartQuantity),
37
+ (curr, prev) => {
38
+ if (curr > prev) {
39
+ runInAction(() => {wiggleRef.current.set('more')})
40
+ }
41
+ else {
42
+ runInAction(() => {wiggleRef.current.set('less')})
43
+ }
44
+ setTimeout(() => {
45
+ // Note that this doesn't actually stop the animation
46
+ // just resets the styles
47
+ runInAction(() => {wiggleRef.current.set('none')})
48
+ }, 800)
49
+ }
50
+ ) : undefined
51
+ ), [])
52
+
53
+ // undefined means context is not installed, ie commerce functions are not in use
54
+ if (!c || (!showIfEmpty && c.cartEmpty)) {
55
+ return <div /> // trigger code needs non-null
56
+ }
57
+
58
+
59
+ return (
60
+ <Box
61
+ aria-label="Bag"
62
+ role='button'
63
+ onClick={onClick}
64
+ className={cn(
65
+ buttonVariants({ variant: 'ghost', size }),
66
+ 'rounded-md',
67
+ // Overides the bg change on hover --not a "hover effect"
68
+ 'relative group p-0 aspect-square hover:bg-background',
69
+ ((wiggleRef.current.get() === 'more') ?
70
+ 'item-added-to-cart-animation'
71
+ :
72
+ (wiggleRef.current.get() === 'less') ? 'item-removed-from-cart-animation' : ''),
73
+ className
74
+ )}
75
+ >
76
+ {!c.cartEmpty && (
77
+ <Box className={
78
+ 'z-above-content flex flex-col justify-center items-center ' +
79
+ 'absolute left-0 right-0 top-0 bottom-0 ' +
80
+ 'leading-none font-sans font-bold text-primary-fg text-xs '
81
+ }>
82
+ <div className='h-[3px] w-full' />
83
+ <div>{c.cartQuantity}</div>
84
+ </Box>
85
+ )}
86
+ <Bag width='24' height='28' className={cn(
87
+ 'relative -top-[3px] fill-primary',
88
+ iconClx,
89
+ (animateOnHover ?
90
+ 'group-hover:fill-primary-hover group-hover:scale-105 transition-scale transition-duration-300'
91
+ :
92
+ ''
93
+ )
94
+ )} aria-hidden="true" />
95
+ </Box>
96
+ )
97
+ })
98
+
99
+ export default BagButton
@@ -0,0 +1,33 @@
1
+ 'use client'
2
+ import React, {type PropsWithChildren} from 'react'
3
+
4
+ import { Button, buttonVariants } from '@hanzo/ui/primitives'
5
+
6
+ import { cn, type ButtonSize, type ButtonVariant } from '@hanzo/ui'
7
+ import { useSelectAndBuy } from '../../commerce/ui/context'
8
+
9
+ const BuyButton: React.FC<
10
+ PropsWithChildren &
11
+ { variant?: ButtonVariant | null; size?: ButtonSize | null } &
12
+ {
13
+ skuPath: string
14
+ className?: string
15
+ }
16
+ > = ({
17
+ skuPath,
18
+ children,
19
+ className='',
20
+ ...rest
21
+ }) => {
22
+
23
+ const buyOptions = useSelectAndBuy()
24
+ const handleClick = (): void => { buyOptions.showVariants(skuPath) }
25
+
26
+ return (
27
+ <Button onClick={handleClick} {...rest} className={cn(className, '')}>
28
+ {children}
29
+ </Button>
30
+ )
31
+ }
32
+
33
+ export default BuyButton
@@ -0,0 +1,131 @@
1
+ 'use client'
2
+ import React, { useEffect, useRef } from 'react'
3
+ import { observable, type IObservableValue, reaction, runInAction } from 'mobx'
4
+ import { observer } from 'mobx-react-lite'
5
+
6
+ import { Button, type ButtonProps } from '@hanzo/ui/primitives'
7
+ import { Box, cn } from '@hanzo/ui'
8
+ import { useCommerce } from '@hanzo/commerce'
9
+
10
+ import { Bag } from '../icons'
11
+
12
+ const IconAndQuantity: React.FC<{
13
+ animateOnQuantityChange?: boolean
14
+ showArrow?: boolean
15
+ showQuantity?: boolean
16
+ clx?: string
17
+ iconClx?: string
18
+ digitClx?: string
19
+ }> = observer(({
20
+ animateOnQuantityChange=false,
21
+ showArrow=true,
22
+ showQuantity=true,
23
+ clx='',
24
+ iconClx='',
25
+ digitClx=''
26
+ }) => {
27
+
28
+ const cmmc = useCommerce()
29
+ const wiggleRef = useRef<IObservableValue<'more' | 'less' | 'none'>>(observable.box('none'))
30
+
31
+ useEffect(() => (
32
+ // return IReactionDisposer
33
+ animateOnQuantityChange ? reaction(
34
+ () => (cmmc.cartQuantity),
35
+ (curr, prev) => {
36
+ if (curr > prev) {
37
+ runInAction(() => {wiggleRef.current.set('more') })
38
+ }
39
+ else {
40
+ runInAction(() => {wiggleRef.current.set('less') })
41
+ }
42
+ setTimeout(() => {
43
+ // Note that this doesn't actually stop the animation
44
+ // just resets the styles
45
+ runInAction(() => {wiggleRef.current.set('none') })
46
+ }, 800)
47
+ }
48
+ ) : undefined
49
+ ), [])
50
+
51
+ return (
52
+ <Box className={cn('flex items-center justify-center', clx)}>
53
+ {showQuantity && (
54
+ <Box className={cn(
55
+ 'relative flex items-center justify-center mr-1',
56
+ ((wiggleRef.current.get() === 'more') ?
57
+ 'item-added-to-cart-animation'
58
+ :
59
+ (wiggleRef.current.get() === 'less') ? 'item-removed-from-cart-animation' : ''),
60
+ )} >
61
+ {cmmc.cartQuantity > 0 && (
62
+ <Box className={cn(
63
+ 'z-above-content flex flex-col justify-center items-center',
64
+ 'absolute left-0 right-0 top-0 bottom-0',
65
+ digitClx
66
+ )}>
67
+ <div style={{/* color: 'white' tailwind bug? ,*/ fontSize: '11px', position: 'relative', top: '1px' }}>{cmmc.cartQuantity}</div>
68
+ </Box>
69
+ )}
70
+ <Bag width='19' height='24' className={cn('relative -top-[3px] opacity-70' , iconClx)} aria-hidden="true" />
71
+ </Box>
72
+ )}
73
+ {showArrow && (<span style={{fontSize: '17px',}}>&rsaquo;</span>)}
74
+ </Box>
75
+ )
76
+ })
77
+
78
+ const CheckoutButton: React.FC<ButtonProps & {
79
+ handleCheckout: () => void
80
+ showQuantity?: boolean
81
+ showArrow?: boolean
82
+ animateOnQuantityChange?: boolean
83
+ centerText?: boolean
84
+ /** A corner off the radius scale. It was a Button variant in the 5.x line. */
85
+ rounded?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full'
86
+ }> = ({
87
+ handleCheckout,
88
+ variant='primary',
89
+ rounded='lg',
90
+ className,
91
+ showQuantity=true,
92
+ showArrow=true,
93
+ animateOnQuantityChange=true,
94
+ centerText=true,
95
+ children,
96
+ ...rest
97
+ }) => {
98
+
99
+ return (
100
+ <Button
101
+ {...rest}
102
+ onClick={handleCheckout}
103
+ variant={variant}
104
+ className={cn(`rounded-${rounded}`, cn(
105
+ 'flex justify-between items-stretch group',
106
+ showQuantity ? (centerText ? 'px-1.5' : 'pl-2.5 pr-1.5') : '',
107
+ className,
108
+ ))}
109
+
110
+ >
111
+ {centerText && ( // must scale this one too, as it effects layout
112
+ <IconAndQuantity
113
+ showArrow={showArrow}
114
+ showQuantity={showQuantity}
115
+ clx='invisible group-hover:scale-105 transition-scale transition-duration-300'
116
+ />
117
+ )}
118
+ {children ?? (<div className='flex justify-center items-center'>Checkout</div>)}
119
+ <IconAndQuantity
120
+ clx='group-hover:scale-105 transition-scale transition-duration-300'
121
+ animateOnQuantityChange={animateOnQuantityChange}
122
+ showArrow={showArrow}
123
+ showQuantity={showQuantity}
124
+ iconClx='fill-background'
125
+ digitClx='text-foreground group-hover:opacity-80 leading-none font-bold font-sans'
126
+ />
127
+ </Button>
128
+ )
129
+ }
130
+
131
+ export default CheckoutButton
@@ -0,0 +1,65 @@
1
+ 'use client'
2
+ import React from 'react'
3
+ import { observer } from 'mobx-react-lite'
4
+
5
+ import { ChevronRight } from 'lucide-react'
6
+
7
+ import {
8
+ Accordion,
9
+ AccordionContent,
10
+ AccordionItem,
11
+ AccordionTrigger,
12
+ } from '@hanzo/ui/primitives'
13
+ import { cn, css } from '@hanzo/ui'
14
+ import { useCommerce, CartPanel, formatCurrencyValue } from '@hanzo/commerce'
15
+
16
+ const CartAccordian: React.FC<{
17
+ icon?: React.ReactNode
18
+ clx?: string
19
+ triggerClx?: string
20
+ panelClx?: string
21
+ scrollAfter: number
22
+ scrollHeightClx: string
23
+ }> = observer(({
24
+ icon,
25
+ clx='',
26
+ panelClx='',
27
+ triggerClx='',
28
+ scrollAfter,
29
+ scrollHeightClx
30
+ }) => {
31
+ const cmmc = useCommerce()
32
+ return (
33
+ <Accordion type="single" collapsible className={clx}>
34
+ <AccordionItem value="cart" className='w-full border-b-0'>
35
+ <AccordionTrigger className="!no-underline group flex justify-between ">
36
+ <div className='flex gap-0 items-center'>
37
+ {icon}
38
+ <h5 className='text-sm sm:text-xl grow'>
39
+ <span className='group-data-[state=open]:hidden' >Order Total:</span>
40
+ <span className='group-data-[state=closed]:hidden' >Your Order</span>
41
+ </h5>
42
+ </div>
43
+ <div className='flex gap-1 items-center'>
44
+ <h5 className='text-sm sm:text-xl grow truncate'>{formatCurrencyValue(cmmc.promoAppliedCartTotal)}</h5>
45
+ <ChevronRight style={css('h-5 w-5 -mr-2 shrink-0 transition-transform duration-200 group-data-[state=open]:rotate-90')} />
46
+ </div>
47
+ </AccordionTrigger>
48
+ <AccordionContent className='data-[state=open]:mb-4'>
49
+ <CartPanel
50
+ className={cn('w-full', panelClx)}
51
+ scrollAfter={scrollAfter}
52
+ scrollHeightClx={scrollHeightClx}
53
+ listClx='mt-0'
54
+ itemClx='mt-0.5 mb-0'
55
+ totalClx='sticky px-1 pr-2 border-t -bottom-[1px] bg-background'
56
+ showShipping
57
+ showPromoCode
58
+ />
59
+ </AccordionContent>
60
+ </AccordionItem>
61
+ </Accordion>
62
+ )
63
+ })
64
+
65
+ export default CartAccordian
@@ -0,0 +1,10 @@
1
+ interface CheckoutPanelProps {
2
+ step: number
3
+ stepNames: string[]
4
+ onLeave:() => void
5
+ clx?: string
6
+ }
7
+
8
+ export {
9
+ type CheckoutPanelProps as default
10
+ }
@@ -0,0 +1,36 @@
1
+ 'use client'
2
+ import React from 'react'
3
+ import { observer } from 'mobx-react-lite'
4
+
5
+ import {
6
+ useCommerce,
7
+ CarouselItemSelector,
8
+ type CarouselItemSelectorPropsExt
9
+ } from '@hanzo/commerce'
10
+
11
+ const DesktopBagCarousel: React.FC<{
12
+ constrainTo: {w: number, h: number}
13
+ className?: string
14
+ }> = observer(({
15
+ constrainTo,
16
+ className=''
17
+
18
+ }) => {
19
+ const cmmc = useCommerce()
20
+ return (
21
+ <CarouselItemSelector
22
+ items={cmmc.cartItems}
23
+ selectedItemRef={cmmc}
24
+ scrollable={false} // ignored
25
+ selectSku={cmmc.setCurrentItem.bind(cmmc)}
26
+ clx={className}
27
+ ext={{
28
+ options: {loop: true},
29
+ constrainTo,
30
+ imageOnly: true
31
+ } satisfies CarouselItemSelectorPropsExt}
32
+ />
33
+ )
34
+ })
35
+
36
+ export default DesktopBagCarousel
@@ -0,0 +1,82 @@
1
+ 'use client'
2
+ import React, { type PropsWithChildren } from 'react'
3
+ import { observer } from 'mobx-react-lite'
4
+
5
+ import { ScrollArea, StepIndicator } from '@hanzo/ui/primitives'
6
+ import AuthWidget from '../../auth/widget'
7
+ import { CartPanel, useCommerce } from '@hanzo/commerce'
8
+ import { Box, cn } from '@hanzo/ui'
9
+ import { BackButton, Logo, Tooltip } from '../..'
10
+ import DesktopBagCarousel from './desktop-bag-carousel'
11
+ import LinksRow from './policy-links'
12
+ import type CheckoutPanelProps from './checkout-panel-props'
13
+
14
+ const DesktopCheckoutPanel: React.FC<PropsWithChildren & CheckoutPanelProps> = observer(({
15
+ step,
16
+ stepNames,
17
+ onLeave,
18
+ clx='',
19
+ children
20
+ }) => {
21
+
22
+ const cmmc = useCommerce()
23
+ return (
24
+ <Box /* id='CHECKOUT_PANEL' */ className={cn('grid grid-cols-2', clx)}>
25
+ <div key={1} className='w-full h-full bg-background flex flex-row items-start justify-end'>
26
+ <div className='w-full h-full max-w-[750px] relative flex flex-col items-stretch justify-start px-8 pb-8'>
27
+ <div key={1} className='h-[80px] grow-0 flex flex-row items-center z-10' >
28
+ <Logo size='md' href='/' onClick={onLeave} variant='wordmark' outerClx='logo-outer-tooltip-class' />
29
+ <Tooltip select='.logo-outer-tooltip-class' text='home' position='right' offset={6}/>
30
+ </div>
31
+ <BackButton
32
+ size='sm'
33
+ clx={
34
+ 'z-10 absolute top-14 left-6 !px-0 aspect-square ' +
35
+ 'rounded-full hover:!bg-level-3 ' +
36
+ 'back-button-tooltip-class '
37
+ }
38
+ onBack={onLeave}
39
+ />
40
+ <Tooltip select='.back-button-tooltip-class' text='back' position='right' offset={5}/>
41
+ <Box key={2} className={cn(
42
+ 'w-full grow min-h-0 max-w-[550px] mx-auto flex flex-col gap-3',
43
+ (cmmc.cartItems.length > 4 ? 'justify-between' : 'justify-start gap-10 pt-10')
44
+ )}>
45
+ <DesktopBagCarousel className='grow-0 h-[260px] w-[360px] lg:w-[420px] mx-auto -mt-8' constrainTo={{w: 250, h: 250}}/>
46
+ <CartPanel
47
+ className='w-full border-none p-0'
48
+ itemClx='mb-2'
49
+ totalClx='sticky bottom-0 bg-background'
50
+ listClx='pr-3'
51
+ scrollAfter={4}
52
+ scrollHeightClx='min-h-[50vh] grow'
53
+ showPromoCode
54
+ showShipping
55
+ selectItems
56
+ />
57
+ </Box>
58
+ </div>
59
+ </div>
60
+ <div key={2} className='w-full h-full flex flex-col bg-level-1 min-h-screen justify-between'>
61
+ <ScrollArea className='w-full flex flex-row items-start justify-start overflow-y-auto'>
62
+ <div className='h-full w-full max-w-[750px] relative flex flex-col items-center px-8 pt-0'>
63
+ <div key={1} className='bg-level-1 sticky h-[80px] bg-[#aaaaff] w-full top-0 flex justify-center items-end'>
64
+ <AuthWidget noLogin className='hidden md:flex absolute top-4 right-4 '/>
65
+ <StepIndicator dotSizeRem={1.35} steps={stepNames} currentStep={step} className='gap-2 text-base w-pr-70' />
66
+ </div>
67
+ <div key={2} className='w-full max-w-[550px] mx-auto py-8'>
68
+ {children}
69
+ </div>
70
+ </div>
71
+ </ScrollArea>
72
+ <div className='w-full max-w-[750px] relative flex flex-col items-center px-8 pt-0'>
73
+ <div className='w-full max-w-[550px] mx-auto flex flex-col items-center'>
74
+ <LinksRow clx='w-full' />
75
+ </div>
76
+ </div>
77
+ </div>
78
+ </Box>
79
+ )
80
+ })
81
+
82
+ export default DesktopCheckoutPanel