@luxfi/ui 8.1.0 → 8.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/3d-button.d.ts +5 -5
- package/dist/3d-button.d.ts.map +1 -1
- package/dist/3d-grid.d.ts +1 -1
- package/dist/3d-grid.d.ts.map +1 -1
- package/dist/3d-marquee.d.ts +5 -5
- package/dist/3d-marquee.d.ts.map +1 -1
- package/dist/3d-model-viewer.d.ts.map +1 -1
- package/dist/3d-scene.d.ts +2 -2
- package/dist/3d-scene.d.ts.map +1 -1
- package/dist/3d-text.d.ts +5 -5
- package/dist/3d-text.d.ts.map +1 -1
- package/dist/accordion.d.ts.map +1 -1
- package/dist/advanced-chart.d.ts +1 -1
- package/dist/advanced-chart.d.ts.map +1 -1
- package/dist/ai-agents.d.ts.map +1 -1
- package/dist/ai-playground.d.ts +2 -1
- package/dist/ai-playground.d.ts.map +1 -1
- package/dist/ai-voice.d.ts +8 -29
- package/dist/ai-voice.d.ts.map +1 -1
- package/dist/android.d.ts.map +1 -1
- package/dist/animated-background.d.ts +7 -7
- package/dist/animated-background.d.ts.map +1 -1
- package/dist/animated-cursor.d.ts +2 -1
- package/dist/animated-cursor.d.ts.map +1 -1
- package/dist/animated-icon.d.ts +7 -7
- package/dist/animated-icon.d.ts.map +1 -1
- package/dist/animated-list.d.ts +7 -7
- package/dist/animated-list.d.ts.map +1 -1
- package/dist/animated-number.d.ts +2 -2
- package/dist/animated-number.d.ts.map +1 -1
- package/dist/animated-text.d.ts +1 -1
- package/dist/animated-text.d.ts.map +1 -1
- package/dist/apple-cards-carousel.d.ts +1 -1
- package/dist/apple-cards-carousel.d.ts.map +1 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/bank.d.ts +31 -31
- package/dist/bank.d.ts.map +1 -1
- package/dist/banner.d.ts.map +1 -1
- package/dist/calendar.d.ts +1 -1
- package/dist/calendar.d.ts.map +1 -1
- package/dist/chart.d.ts +4 -4
- package/dist/chart.d.ts.map +1 -1
- package/dist/chrome.d.ts.map +1 -1
- package/dist/code-block.d.ts.map +1 -1
- package/dist/code-compare.d.ts.map +1 -1
- package/dist/code-diff.d.ts.map +1 -1
- package/dist/code-explorer.d.ts.map +1 -1
- package/dist/code-preview.d.ts.map +1 -1
- package/dist/code-snippet.d.ts.map +1 -1
- package/dist/code-terminal.d.ts.map +1 -1
- package/dist/collapsible.d.ts +2 -2
- package/dist/collapsible.d.ts.map +1 -1
- package/dist/color-mode.d.ts +1 -1
- package/dist/color-mode.d.ts.map +1 -1
- package/dist/combobox.d.ts +2 -1
- package/dist/combobox.d.ts.map +1 -1
- package/dist/company-profile.d.ts +1 -1
- package/dist/company-profile.d.ts.map +1 -1
- package/dist/crypto-screener.d.ts +1 -1
- package/dist/crypto-screener.d.ts.map +1 -1
- package/dist/dialog.d.ts +2 -2
- package/dist/direction.d.ts +1 -1
- package/dist/direction.d.ts.map +1 -1
- package/dist/drawer.d.ts +6 -6
- package/dist/drawer.d.ts.map +1 -1
- package/dist/empty.d.ts +6 -6
- package/dist/empty.d.ts.map +1 -1
- package/dist/financials.d.ts +1 -1
- package/dist/financials.d.ts.map +1 -1
- package/dist/forex-screener.d.ts +1 -1
- package/dist/forex-screener.d.ts.map +1 -1
- package/dist/grid-pattern.d.ts.map +1 -1
- package/dist/hooks/use-mobile.cjs +22 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -1
- package/dist/hooks/use-mobile.js +17 -0
- package/dist/iam.d.ts.map +1 -1
- package/dist/identity.d.ts.map +1 -1
- package/dist/ink.d.ts.map +1 -1
- package/dist/input-otp.d.ts +6 -6
- package/dist/input-otp.d.ts.map +1 -1
- package/dist/input.d.ts +7 -7
- package/dist/input.d.ts.map +1 -1
- package/dist/item.d.ts +10 -10
- package/dist/item.d.ts.map +1 -1
- package/dist/kanban.d.ts +2 -1
- package/dist/kanban.d.ts.map +1 -1
- package/dist/kbd.d.ts +2 -2
- package/dist/kbd.d.ts.map +1 -1
- package/dist/link.d.ts +1 -1
- package/dist/link.d.ts.map +1 -1
- package/dist/lux.config.d.ts +88 -88
- package/dist/lux.config.d.ts.map +1 -1
- package/dist/market-overview.d.ts +1 -1
- package/dist/market-overview.d.ts.map +1 -1
- package/dist/menu.d.ts.map +1 -1
- package/dist/menubar.d.ts +3 -3
- package/dist/menubar.d.ts.map +1 -1
- package/dist/music-player.d.ts +2 -1
- package/dist/music-player.d.ts.map +1 -1
- package/dist/news-timeline.d.ts +1 -1
- package/dist/news-timeline.d.ts.map +1 -1
- package/dist/order-entry.d.ts +1 -1
- package/dist/order-entry.d.ts.map +1 -1
- package/dist/orders-history.d.ts +1 -1
- package/dist/orders-history.d.ts.map +1 -1
- package/dist/pagination.d.ts +20 -20
- package/dist/pagination.d.ts.map +1 -1
- package/dist/particles-background.d.ts +2 -1
- package/dist/particles-background.d.ts.map +1 -1
- package/dist/pill.d.ts.map +1 -1
- package/dist/popover.d.ts.map +1 -1
- package/dist/positions-list.d.ts +1 -1
- package/dist/positions-list.d.ts.map +1 -1
- package/dist/progress-circle.d.ts.map +1 -1
- package/dist/progress.d.ts.map +1 -1
- package/dist/provider.d.ts.map +1 -1
- package/dist/pulse-animation.d.ts +10 -10
- package/dist/pulse-animation.d.ts.map +1 -1
- package/dist/radio.d.ts.map +1 -1
- package/dist/resizable.d.ts +3 -3
- package/dist/resizable.d.ts.map +1 -1
- package/dist/reveal-animation.d.ts +9 -9
- package/dist/reveal-animation.d.ts.map +1 -1
- package/dist/sidebar.d.ts +23 -23
- package/dist/sidebar.d.ts.map +1 -1
- package/dist/site/commerce/ui/conf.cjs +15 -0
- package/dist/site/commerce/ui/conf.d.ts +12 -0
- package/dist/site/commerce/ui/conf.d.ts.map +1 -0
- package/dist/site/commerce/ui/conf.js +13 -0
- package/dist/site/commerce/ui/context.cjs +280 -0
- package/dist/site/commerce/ui/context.d.ts +7 -0
- package/dist/site/commerce/ui/context.d.ts.map +1 -0
- package/dist/site/commerce/ui/context.js +276 -0
- package/dist/site/commerce/ui/store.cjs +205 -0
- package/dist/site/commerce/ui/store.d.ts +81 -0
- package/dist/site/commerce/ui/store.d.ts.map +1 -0
- package/dist/site/commerce/ui/store.js +203 -0
- package/dist/site/components/access-code-input.cjs +52 -0
- package/dist/site/components/access-code-input.d.ts +8 -0
- package/dist/site/components/access-code-input.d.ts.map +1 -0
- package/dist/site/components/access-code-input.js +50 -0
- package/dist/site/components/analytics.cjs +52 -0
- package/dist/site/components/analytics.d.ts +3 -0
- package/dist/site/components/analytics.d.ts.map +1 -0
- package/dist/site/components/analytics.js +46 -0
- package/dist/site/components/auth/callback.cjs +31 -0
- package/dist/site/components/auth/callback.d.ts +9 -0
- package/dist/site/components/auth/callback.d.ts.map +1 -0
- package/dist/site/components/auth/callback.js +29 -0
- package/dist/site/components/auth/login-panel.cjs +131 -0
- package/dist/site/components/auth/login-panel.css +4 -0
- package/dist/site/components/auth/login-panel.d.ts +12 -0
- package/dist/site/components/auth/login-panel.d.ts.map +1 -0
- package/dist/site/components/auth/login-panel.js +124 -0
- package/dist/site/components/auth/login.cjs +35 -0
- package/dist/site/components/auth/login.d.ts +13 -0
- package/dist/site/components/auth/login.d.ts.map +1 -0
- package/dist/site/components/auth/login.js +33 -0
- package/dist/site/components/auth/provider.cjs +20 -0
- package/dist/site/components/auth/provider.d.ts +6 -0
- package/dist/site/components/auth/provider.d.ts.map +1 -0
- package/dist/site/components/auth/provider.js +18 -0
- package/dist/site/components/auth/resume.cjs +15 -0
- package/dist/site/components/auth/resume.d.ts +4 -0
- package/dist/site/components/auth/resume.d.ts.map +1 -0
- package/dist/site/components/auth/resume.js +12 -0
- package/dist/site/components/auth/widget.cjs +63 -0
- package/dist/site/components/auth/widget.d.ts +13 -0
- package/dist/site/components/auth/widget.d.ts.map +1 -0
- package/dist/site/components/auth/widget.js +61 -0
- package/dist/site/components/back-button.cjs +36 -0
- package/dist/site/components/back-button.d.ts +17 -0
- package/dist/site/components/back-button.d.ts.map +1 -0
- package/dist/site/components/back-button.js +34 -0
- package/dist/site/components/chat-widget.cjs +67 -0
- package/dist/site/components/chat-widget.d.ts +12 -0
- package/dist/site/components/chat-widget.d.ts.map +1 -0
- package/dist/site/components/chat-widget.js +61 -0
- package/dist/site/components/commerce/bag-button.cjs +79 -0
- package/dist/site/components/commerce/bag-button.css +4 -0
- package/dist/site/components/commerce/bag-button.d.ts +16 -0
- package/dist/site/components/commerce/bag-button.d.ts.map +1 -0
- package/dist/site/components/commerce/bag-button.js +77 -0
- package/dist/site/components/commerce/buy-button.cjs +31 -0
- package/dist/site/components/commerce/buy-button.d.ts +11 -0
- package/dist/site/components/commerce/buy-button.d.ts.map +1 -0
- package/dist/site/components/commerce/buy-button.js +29 -0
- package/dist/site/components/commerce/checkout-button.cjs +116 -0
- package/dist/site/components/commerce/checkout-button.css +4 -0
- package/dist/site/components/commerce/checkout-button.d.ts +13 -0
- package/dist/site/components/commerce/checkout-button.d.ts.map +1 -0
- package/dist/site/components/commerce/checkout-button.js +114 -0
- package/dist/site/components/commerce/checkout-panel/cart-accordian.cjs +50 -0
- package/dist/site/components/commerce/checkout-panel/cart-accordian.d.ts +11 -0
- package/dist/site/components/commerce/checkout-panel/cart-accordian.d.ts.map +1 -0
- package/dist/site/components/commerce/checkout-panel/cart-accordian.js +48 -0
- package/dist/site/components/commerce/checkout-panel/checkout-panel-props.cjs +2 -0
- package/dist/site/components/commerce/checkout-panel/checkout-panel-props.d.ts +8 -0
- package/dist/site/components/commerce/checkout-panel/checkout-panel-props.d.ts.map +1 -0
- package/dist/site/components/commerce/checkout-panel/checkout-panel-props.js +1 -0
- package/dist/site/components/commerce/checkout-panel/desktop-bag-carousel.cjs +30 -0
- package/dist/site/components/commerce/checkout-panel/desktop-bag-carousel.d.ts +10 -0
- package/dist/site/components/commerce/checkout-panel/desktop-bag-carousel.d.ts.map +1 -0
- package/dist/site/components/commerce/checkout-panel/desktop-bag-carousel.js +28 -0
- package/dist/site/components/commerce/checkout-panel/desktop-cp.cjs +235 -0
- package/dist/site/components/commerce/checkout-panel/desktop-cp.css +132 -0
- package/dist/site/components/commerce/checkout-panel/desktop-cp.d.ts +5 -0
- package/dist/site/components/commerce/checkout-panel/desktop-cp.d.ts.map +1 -0
- package/dist/site/components/commerce/checkout-panel/desktop-cp.js +229 -0
- package/dist/site/components/commerce/checkout-panel/index.cjs +502 -0
- package/dist/site/components/commerce/checkout-panel/index.css +132 -0
- package/dist/site/components/commerce/checkout-panel/index.d.ts +6 -0
- package/dist/site/components/commerce/checkout-panel/index.d.ts.map +1 -0
- package/dist/site/components/commerce/checkout-panel/index.js +496 -0
- package/dist/site/components/commerce/checkout-panel/mobile-cp.cjs +295 -0
- package/dist/site/components/commerce/checkout-panel/mobile-cp.css +132 -0
- package/dist/site/components/commerce/checkout-panel/mobile-cp.d.ts +5 -0
- package/dist/site/components/commerce/checkout-panel/mobile-cp.d.ts.map +1 -0
- package/dist/site/components/commerce/checkout-panel/mobile-cp.js +289 -0
- package/dist/site/components/commerce/checkout-panel/policy-links.cjs +25 -0
- package/dist/site/components/commerce/checkout-panel/policy-links.d.ts +6 -0
- package/dist/site/components/commerce/checkout-panel/policy-links.d.ts.map +1 -0
- package/dist/site/components/commerce/checkout-panel/policy-links.js +19 -0
- package/dist/site/components/commerce/checkout-panel/steps-indicator.cjs +27 -0
- package/dist/site/components/commerce/checkout-panel/steps-indicator.d.ts +7 -0
- package/dist/site/components/commerce/checkout-panel/steps-indicator.d.ts.map +1 -0
- package/dist/site/components/commerce/checkout-panel/steps-indicator.js +25 -0
- package/dist/site/components/commerce/checkout-panel/thank-you.cjs +25 -0
- package/dist/site/components/commerce/checkout-panel/thank-you.d.ts +5 -0
- package/dist/site/components/commerce/checkout-panel/thank-you.d.ts.map +1 -0
- package/dist/site/components/commerce/checkout-panel/thank-you.js +19 -0
- package/dist/site/components/commerce/desktop-bag-popup.cjs +72 -0
- package/dist/site/components/commerce/desktop-bag-popup.css +4 -0
- package/dist/site/components/commerce/desktop-bag-popup.d.ts +8 -0
- package/dist/site/components/commerce/desktop-bag-popup.d.ts.map +1 -0
- package/dist/site/components/commerce/desktop-bag-popup.js +70 -0
- package/dist/site/components/commerce/drawer/index.cjs +361 -0
- package/dist/site/components/commerce/drawer/index.css +132 -0
- package/dist/site/components/commerce/drawer/index.d.ts +4 -0
- package/dist/site/components/commerce/drawer/index.d.ts.map +1 -0
- package/dist/site/components/commerce/drawer/index.js +359 -0
- package/dist/site/components/commerce/drawer/micro.cjs +230 -0
- package/dist/site/components/commerce/drawer/micro.css +4 -0
- package/dist/site/components/commerce/drawer/micro.d.ts +8 -0
- package/dist/site/components/commerce/drawer/micro.d.ts.map +1 -0
- package/dist/site/components/commerce/drawer/micro.js +228 -0
- package/dist/site/components/commerce/drawer/shell.cjs +78 -0
- package/dist/site/components/commerce/drawer/shell.css +127 -0
- package/dist/site/components/commerce/drawer/shell.d.ts +9 -0
- package/dist/site/components/commerce/drawer/shell.d.ts.map +1 -0
- package/dist/site/components/commerce/drawer/shell.js +76 -0
- package/dist/site/components/contact-dialog/contact-form.cjs +70 -0
- package/dist/site/components/contact-dialog/contact-form.d.ts +13 -0
- package/dist/site/components/contact-dialog/contact-form.d.ts.map +1 -0
- package/dist/site/components/contact-dialog/contact-form.js +64 -0
- package/dist/site/components/contact-dialog/disclaimer.cjs +15 -0
- package/dist/site/components/contact-dialog/disclaimer.d.ts +4 -0
- package/dist/site/components/contact-dialog/disclaimer.d.ts.map +1 -0
- package/dist/site/components/contact-dialog/disclaimer.js +13 -0
- package/dist/site/components/contact-dialog/index.cjs +113 -0
- package/dist/site/components/contact-dialog/index.d.ts +5 -0
- package/dist/site/components/contact-dialog/index.d.ts.map +1 -0
- package/dist/site/components/contact-dialog/index.js +107 -0
- package/dist/site/components/copyright.cjs +24 -0
- package/dist/site/components/copyright.d.ts +6 -0
- package/dist/site/components/copyright.d.ts.map +1 -0
- package/dist/site/components/copyright.js +22 -0
- package/dist/site/components/drawer-margin.cjs +35 -0
- package/dist/site/components/drawer-margin.d.ts +6 -0
- package/dist/site/components/drawer-margin.d.ts.map +1 -0
- package/dist/site/components/drawer-margin.js +33 -0
- package/dist/site/components/footer-nav.cjs +22 -0
- package/dist/site/components/footer-nav.d.ts +9 -0
- package/dist/site/components/footer-nav.d.ts.map +1 -0
- package/dist/site/components/footer-nav.js +20 -0
- package/dist/site/components/footer.cjs +132 -0
- package/dist/site/components/footer.d.ts +9 -0
- package/dist/site/components/footer.d.ts.map +1 -0
- package/dist/site/components/footer.js +126 -0
- package/dist/site/components/header/desktop-nav-menu.cjs +170 -0
- package/dist/site/components/header/desktop-nav-menu.d.ts +9 -0
- package/dist/site/components/header/desktop-nav-menu.d.ts.map +1 -0
- package/dist/site/components/header/desktop-nav-menu.js +145 -0
- package/dist/site/components/header/desktop.cjs +405 -0
- package/dist/site/components/header/desktop.css +4 -0
- package/dist/site/components/header/desktop.d.ts +13 -0
- package/dist/site/components/header/desktop.d.ts.map +1 -0
- package/dist/site/components/header/desktop.js +381 -0
- package/dist/site/components/header/index.cjs +717 -0
- package/dist/site/components/header/index.css +132 -0
- package/dist/site/components/header/index.d.ts +11 -0
- package/dist/site/components/header/index.d.ts.map +1 -0
- package/dist/site/components/header/index.js +693 -0
- package/dist/site/components/header/mobile-bag-drawer.cjs +114 -0
- package/dist/site/components/header/mobile-bag-drawer.css +4 -0
- package/dist/site/components/header/mobile-bag-drawer.d.ts +9 -0
- package/dist/site/components/header/mobile-bag-drawer.d.ts.map +1 -0
- package/dist/site/components/header/mobile-bag-drawer.js +112 -0
- package/dist/site/components/header/mobile-menu-toggle-button.cjs +30 -0
- package/dist/site/components/header/mobile-menu-toggle-button.d.ts +8 -0
- package/dist/site/components/header/mobile-menu-toggle-button.d.ts.map +1 -0
- package/dist/site/components/header/mobile-menu-toggle-button.js +28 -0
- package/dist/site/components/header/mobile-nav-menu-ai.cjs +66 -0
- package/dist/site/components/header/mobile-nav-menu-ai.css +132 -0
- package/dist/site/components/header/mobile-nav-menu-ai.d.ts +7 -0
- package/dist/site/components/header/mobile-nav-menu-ai.d.ts.map +1 -0
- package/dist/site/components/header/mobile-nav-menu-ai.js +60 -0
- package/dist/site/components/header/mobile-nav-menu-item.cjs +98 -0
- package/dist/site/components/header/mobile-nav-menu-item.css +132 -0
- package/dist/site/components/header/mobile-nav-menu-item.d.ts +8 -0
- package/dist/site/components/header/mobile-nav-menu-item.d.ts.map +1 -0
- package/dist/site/components/header/mobile-nav-menu-item.js +92 -0
- package/dist/site/components/header/mobile-nav-menu.cjs +175 -0
- package/dist/site/components/header/mobile-nav-menu.css +132 -0
- package/dist/site/components/header/mobile-nav-menu.d.ts +14 -0
- package/dist/site/components/header/mobile-nav-menu.d.ts.map +1 -0
- package/dist/site/components/header/mobile-nav-menu.js +169 -0
- package/dist/site/components/header/mobile.cjs +447 -0
- package/dist/site/components/header/mobile.css +132 -0
- package/dist/site/components/header/mobile.d.ts +12 -0
- package/dist/site/components/header/mobile.d.ts.map +1 -0
- package/dist/site/components/header/mobile.js +441 -0
- package/dist/site/components/header/theme-toggle.cjs +28 -0
- package/dist/site/components/header/theme-toggle.d.ts +4 -0
- package/dist/site/components/header/theme-toggle.d.ts.map +1 -0
- package/dist/site/components/header/theme-toggle.js +26 -0
- package/dist/site/components/icons/avatar.cjs +12 -0
- package/dist/site/components/icons/avatar.d.ts +5 -0
- package/dist/site/components/icons/avatar.d.ts.map +1 -0
- package/dist/site/components/icons/avatar.js +10 -0
- package/dist/site/components/icons/bag-icon.cjs +9 -0
- package/dist/site/components/icons/bag-icon.d.ts +5 -0
- package/dist/site/components/icons/bag-icon.d.ts.map +1 -0
- package/dist/site/components/icons/bag-icon.js +7 -0
- package/dist/site/components/icons/index.cjs +39 -0
- package/dist/site/components/icons/index.css +4 -0
- package/dist/site/components/icons/index.d.ts +6 -0
- package/dist/site/components/icons/index.d.ts.map +1 -0
- package/dist/site/components/icons/index.js +33 -0
- package/dist/site/components/icons/left-arrow.cjs +9 -0
- package/dist/site/components/icons/left-arrow.d.ts +5 -0
- package/dist/site/components/icons/left-arrow.d.ts.map +1 -0
- package/dist/site/components/icons/left-arrow.js +7 -0
- package/dist/site/components/icons/right-arrow.cjs +9 -0
- package/dist/site/components/icons/right-arrow.d.ts +5 -0
- package/dist/site/components/icons/right-arrow.d.ts.map +1 -0
- package/dist/site/components/icons/right-arrow.js +7 -0
- package/dist/site/components/icons/social-icon.cjs +24 -0
- package/dist/site/components/icons/social-icon.css +4 -0
- package/dist/site/components/icons/social-icon.d.ts +10 -0
- package/dist/site/components/icons/social-icon.d.ts.map +1 -0
- package/dist/site/components/icons/social-icon.js +22 -0
- package/dist/site/components/index.cjs +2004 -0
- package/dist/site/components/index.css +132 -0
- package/dist/site/components/index.d.ts +24 -0
- package/dist/site/components/index.d.ts.map +1 -0
- package/dist/site/components/index.js +1952 -0
- package/dist/site/components/logo.cjs +37 -0
- package/dist/site/components/logo.d.ts +23 -0
- package/dist/site/components/logo.d.ts.map +1 -0
- package/dist/site/components/logo.js +31 -0
- package/dist/site/components/main.cjs +22 -0
- package/dist/site/components/main.d.ts +9 -0
- package/dist/site/components/main.d.ts.map +1 -0
- package/dist/site/components/main.js +20 -0
- package/dist/site/components/mini-chart/index.cjs +94 -0
- package/dist/site/components/mini-chart/index.d.ts +3 -0
- package/dist/site/components/mini-chart/index.d.ts.map +1 -0
- package/dist/site/components/mini-chart/index.js +92 -0
- package/dist/site/components/mini-chart/mini-chart-props.cjs +2 -0
- package/dist/site/components/mini-chart/mini-chart-props.d.ts +33 -0
- package/dist/site/components/mini-chart/mini-chart-props.d.ts.map +1 -0
- package/dist/site/components/mini-chart/mini-chart-props.js +1 -0
- package/dist/site/components/mini-chart/mini-chart.cjs +80 -0
- package/dist/site/components/mini-chart/mini-chart.d.ts +5 -0
- package/dist/site/components/mini-chart/mini-chart.d.ts.map +1 -0
- package/dist/site/components/mini-chart/mini-chart.js +78 -0
- package/dist/site/components/mini-chart/wrapper.cjs +94 -0
- package/dist/site/components/mini-chart/wrapper.d.ts +7 -0
- package/dist/site/components/mini-chart/wrapper.d.ts.map +1 -0
- package/dist/site/components/mini-chart/wrapper.js +92 -0
- package/dist/site/components/not-found/index.cjs +844 -0
- package/dist/site/components/not-found/index.css +132 -0
- package/dist/site/components/not-found/index.d.ts +8 -0
- package/dist/site/components/not-found/index.d.ts.map +1 -0
- package/dist/site/components/not-found/index.js +820 -0
- package/dist/site/components/security/index.cjs +857 -0
- package/dist/site/components/security/index.css +132 -0
- package/dist/site/components/security/index.d.ts +9 -0
- package/dist/site/components/security/index.d.ts.map +1 -0
- package/dist/site/components/security/index.js +833 -0
- package/dist/site/components/tooltip.cjs +28 -0
- package/dist/site/components/tooltip.d.ts +11 -0
- package/dist/site/components/tooltip.d.ts.map +1 -0
- package/dist/site/components/tooltip.js +26 -0
- package/dist/site/next/analytics/fpixel.cjs +14 -0
- package/dist/site/next/analytics/fpixel.d.ts +9 -0
- package/dist/site/next/analytics/fpixel.d.ts.map +1 -0
- package/dist/site/next/analytics/fpixel.js +10 -0
- package/dist/site/next/analytics/google-analytics.cjs +8 -0
- package/dist/site/next/analytics/google-analytics.d.ts +8 -0
- package/dist/site/next/analytics/google-analytics.d.ts.map +1 -0
- package/dist/site/next/analytics/google-analytics.js +6 -0
- package/dist/site/next/analytics/index.cjs +57 -0
- package/dist/site/next/analytics/index.d.ts +4 -0
- package/dist/site/next/analytics/index.d.ts.map +1 -0
- package/dist/site/next/analytics/index.js +49 -0
- package/dist/site/next/analytics/pixel-analytics.cjs +59 -0
- package/dist/site/next/analytics/pixel-analytics.d.ts +5 -0
- package/dist/site/next/analytics/pixel-analytics.d.ts.map +1 -0
- package/dist/site/next/analytics/pixel-analytics.js +52 -0
- package/dist/site/next/font/font-desc.cjs +2 -0
- package/dist/site/next/font/font-desc.d.ts +19 -0
- package/dist/site/next/font/font-desc.d.ts.map +1 -0
- package/dist/site/next/font/font-desc.js +1 -0
- package/dist/site/next/font/fonts.cjs +42 -0
- package/dist/site/next/font/fonts.d.ts +4 -0
- package/dist/site/next/font/fonts.d.ts.map +1 -0
- package/dist/site/next/font/fonts.js +40 -0
- package/dist/site/next/font/get-app-router-font-classes.cjs +96 -0
- package/dist/site/next/font/get-app-router-font-classes.d.ts +15 -0
- package/dist/site/next/font/get-app-router-font-classes.d.ts.map +1 -0
- package/dist/site/next/font/get-app-router-font-classes.js +90 -0
- package/dist/site/next/font/load-and-return-lux-next-fonts-on-import.cjs +90 -0
- package/dist/site/next/font/load-and-return-lux-next-fonts-on-import.d.ts +8 -0
- package/dist/site/next/font/load-and-return-lux-next-fonts-on-import.d.ts.map +1 -0
- package/dist/site/next/font/load-and-return-lux-next-fonts-on-import.js +84 -0
- package/dist/site/next/font/next-font-desc.cjs +2 -0
- package/dist/site/next/font/next-font-desc.d.ts +20 -0
- package/dist/site/next/font/next-font-desc.d.ts.map +1 -0
- package/dist/site/next/font/next-font-desc.js +1 -0
- package/dist/site/next/font/pages-router-font-vars.cjs +100 -0
- package/dist/site/next/font/pages-router-font-vars.d.ts +3 -0
- package/dist/site/next/font/pages-router-font-vars.d.ts.map +1 -0
- package/dist/site/next/font/pages-router-font-vars.js +94 -0
- package/dist/site/next/head-metadata/index.cjs +139 -0
- package/dist/site/next/head-metadata/index.d.ts +12 -0
- package/dist/site/next/head-metadata/index.d.ts.map +1 -0
- package/dist/site/next/head-metadata/index.js +129 -0
- package/dist/site/next/head-metadata/next-metadata.cjs +2 -0
- package/dist/site/next/head-metadata/next-metadata.d.ts +48 -0
- package/dist/site/next/head-metadata/next-metadata.d.ts.map +1 -0
- package/dist/site/next/head-metadata/next-metadata.js +1 -0
- package/dist/site/next/index.cjs +147 -0
- package/dist/site/next/index.d.ts +3 -0
- package/dist/site/next/index.d.ts.map +1 -0
- package/dist/site/next/index.js +140 -0
- package/dist/site/next/middleware/determine-device-mw.cjs +17 -0
- package/dist/site/next/middleware/determine-device-mw.d.ts +4 -0
- package/dist/site/next/middleware/determine-device-mw.d.ts.map +1 -0
- package/dist/site/next/middleware/determine-device-mw.js +15 -0
- package/dist/site/root-layout/index.cjs +1574 -0
- package/dist/site/root-layout/index.css +374 -0
- package/dist/site/root-layout/index.d.ts +20 -0
- package/dist/site/root-layout/index.d.ts.map +1 -0
- package/dist/site/root-layout/index.js +1547 -0
- package/dist/site/site-def/footer/community.cjs +77 -0
- package/dist/site/site-def/footer/community.css +4 -0
- package/dist/site/site-def/footer/community.d.ts +13 -0
- package/dist/site/site-def/footer/community.d.ts.map +1 -0
- package/dist/site/site-def/footer/community.js +75 -0
- package/dist/site/site-def/footer/company.cjs +40 -0
- package/dist/site/site-def/footer/company.d.ts +23 -0
- package/dist/site/site-def/footer/company.d.ts.map +1 -0
- package/dist/site/site-def/footer/company.js +38 -0
- package/dist/site/site-def/footer/ecosystem.cjs +40 -0
- package/dist/site/site-def/footer/ecosystem.d.ts +11 -0
- package/dist/site/site-def/footer/ecosystem.d.ts.map +1 -0
- package/dist/site/site-def/footer/ecosystem.js +38 -0
- package/dist/site/site-def/footer/index.cjs +228 -0
- package/dist/site/site-def/footer/index.css +4 -0
- package/dist/site/site-def/footer/index.d.ts +16 -0
- package/dist/site/site-def/footer/index.d.ts.map +1 -0
- package/dist/site/site-def/footer/index.js +220 -0
- package/dist/site/site-def/footer/legal.cjs +24 -0
- package/dist/site/site-def/footer/legal.d.ts +5 -0
- package/dist/site/site-def/footer/legal.d.ts.map +1 -0
- package/dist/site/site-def/footer/legal.js +21 -0
- package/dist/site/site-def/footer/network.cjs +48 -0
- package/dist/site/site-def/footer/network.d.ts +11 -0
- package/dist/site/site-def/footer/network.d.ts.map +1 -0
- package/dist/site/site-def/footer/network.js +46 -0
- package/dist/site/site-def/index.cjs +627 -0
- package/dist/site/site-def/index.css +4 -0
- package/dist/site/site-def/index.d.ts +5 -0
- package/dist/site/site-def/index.d.ts.map +1 -0
- package/dist/site/site-def/index.js +624 -0
- package/dist/site/site-def/main-nav.cjs +393 -0
- package/dist/site/site-def/main-nav.d.ts +46 -0
- package/dist/site/site-def/main-nav.d.ts.map +1 -0
- package/dist/site/site-def/main-nav.js +391 -0
- package/dist/site/types/chatbot-config.cjs +2 -0
- package/dist/site/types/chatbot-config.d.ts +6 -0
- package/dist/site/types/chatbot-config.d.ts.map +1 -0
- package/dist/site/types/chatbot-config.js +1 -0
- package/dist/site/types/chatbot-suggested-question.cjs +2 -0
- package/dist/site/types/chatbot-suggested-question.d.ts +7 -0
- package/dist/site/types/chatbot-suggested-question.d.ts.map +1 -0
- package/dist/site/types/chatbot-suggested-question.js +1 -0
- package/dist/site/types/contact-info.cjs +2 -0
- package/dist/site/types/contact-info.d.ts +7 -0
- package/dist/site/types/contact-info.d.ts.map +1 -0
- package/dist/site/types/contact-info.js +1 -0
- package/dist/site/types/index.cjs +2 -0
- package/dist/site/types/index.d.ts +5 -0
- package/dist/site/types/index.d.ts.map +1 -0
- package/dist/site/types/index.js +1 -0
- package/dist/site/types/site-def.cjs +2 -0
- package/dist/site/types/site-def.d.ts +41 -0
- package/dist/site/types/site-def.d.ts.map +1 -0
- package/dist/site/types/site-def.js +1 -0
- package/dist/site/util/index.cjs +11 -0
- package/dist/site/util/index.d.ts +2 -0
- package/dist/site/util/index.d.ts.map +1 -0
- package/dist/site/util/index.js +9 -0
- package/dist/skeleton.d.ts +1 -1
- package/dist/skeleton.d.ts.map +1 -1
- package/dist/status.d.ts.map +1 -1
- package/dist/stock-screener.d.ts +1 -1
- package/dist/stock-screener.d.ts.map +1 -1
- package/dist/symbol-info.d.ts +1 -1
- package/dist/symbol-info.d.ts.map +1 -1
- package/dist/table.d.ts +2 -2
- package/dist/table.d.ts.map +1 -1
- package/dist/tabs.d.ts.map +1 -1
- package/dist/technical-analysis.d.ts +1 -1
- package/dist/technical-analysis.d.ts.map +1 -1
- package/dist/terminal.d.ts +1 -1
- package/dist/terminal.d.ts.map +1 -1
- package/dist/ticker-tape.d.ts +1 -1
- package/dist/ticker-tape.d.ts.map +1 -1
- package/dist/toaster.d.ts +6 -3
- package/dist/toaster.d.ts.map +1 -1
- package/dist/toggle.d.ts +1 -1
- package/dist/toggle.d.ts.map +1 -1
- package/dist/trading-panel.d.ts +1 -1
- package/dist/trading-panel.d.ts.map +1 -1
- package/dist/utils/cn.cjs +10 -0
- package/dist/utils/cn.js +1 -0
- package/dist/white-label.d.ts +5 -5
- package/dist/white-label.d.ts.map +1 -1
- package/dist/youtube-pip-player.d.ts.map +1 -1
- package/package.json +78 -25
- package/src/ai-voice.tsx +10 -34
- package/src/site/commerce/ui/conf.ts +13 -0
- package/src/site/commerce/ui/context.tsx +120 -0
- package/src/site/commerce/ui/store.ts +295 -0
- package/src/site/components/access-code-input.tsx +70 -0
- package/src/site/components/analytics.tsx +14 -0
- package/src/site/components/auth/callback.tsx +40 -0
- package/src/site/components/auth/login-panel.tsx +83 -0
- package/src/site/components/auth/login.tsx +47 -0
- package/src/site/components/auth/provider.tsx +34 -0
- package/src/site/components/auth/resume.ts +16 -0
- package/src/site/components/auth/widget.tsx +80 -0
- package/src/site/components/back-button.tsx +46 -0
- package/src/site/components/chat-widget.tsx +83 -0
- package/src/site/components/commerce/bag-button.tsx +99 -0
- package/src/site/components/commerce/buy-button.tsx +33 -0
- package/src/site/components/commerce/checkout-button.tsx +131 -0
- package/src/site/components/commerce/checkout-panel/cart-accordian.tsx +65 -0
- package/src/site/components/commerce/checkout-panel/checkout-panel-props.ts +10 -0
- package/src/site/components/commerce/checkout-panel/desktop-bag-carousel.tsx +36 -0
- package/src/site/components/commerce/checkout-panel/desktop-cp.tsx +82 -0
- package/src/site/components/commerce/checkout-panel/index.tsx +126 -0
- package/src/site/components/commerce/checkout-panel/mobile-cp.tsx +67 -0
- package/src/site/components/commerce/checkout-panel/policy-links.tsx +24 -0
- package/src/site/components/commerce/checkout-panel/steps-indicator.tsx +39 -0
- package/src/site/components/commerce/checkout-panel/thank-you.tsx +18 -0
- package/src/site/components/commerce/desktop-bag-popup.tsx +78 -0
- package/src/site/components/commerce/drawer/index.tsx +88 -0
- package/src/site/components/commerce/drawer/micro.tsx +145 -0
- package/src/site/components/commerce/drawer/shell.tsx +83 -0
- package/src/site/components/contact-dialog/contact-form.tsx +109 -0
- package/src/site/components/contact-dialog/disclaimer.tsx +13 -0
- package/src/site/components/contact-dialog/index.tsx +64 -0
- package/src/site/components/copyright.tsx +22 -0
- package/src/site/components/drawer-margin.tsx +28 -0
- package/src/site/components/footer-nav.tsx +31 -0
- package/src/site/components/footer.tsx +72 -0
- package/src/site/components/header/desktop-nav-menu.tsx +202 -0
- package/src/site/components/header/desktop.tsx +65 -0
- package/src/site/components/header/index.tsx +50 -0
- package/src/site/components/header/mobile-bag-drawer.tsx +51 -0
- package/src/site/components/header/mobile-menu-toggle-button.tsx +34 -0
- package/src/site/components/header/mobile-nav-menu-ai.tsx +52 -0
- package/src/site/components/header/mobile-nav-menu-item.tsx +48 -0
- package/src/site/components/header/mobile-nav-menu.tsx +103 -0
- package/src/site/components/header/mobile.tsx +169 -0
- package/src/site/components/header/theme-toggle.tsx +26 -0
- package/src/site/components/icons/avatar.tsx +11 -0
- package/src/site/components/icons/bag-icon.tsx +10 -0
- package/src/site/components/icons/index.ts +5 -0
- package/src/site/components/icons/left-arrow.tsx +11 -0
- package/src/site/components/icons/right-arrow.tsx +10 -0
- package/src/site/components/icons/social-icon.tsx +35 -0
- package/src/site/components/icons/social-svg.css +3 -0
- package/src/site/components/index.ts +26 -0
- package/src/site/components/logo.tsx +65 -0
- package/src/site/components/main.tsx +26 -0
- package/src/site/components/mini-chart/index.tsx +8 -0
- package/src/site/components/mini-chart/mini-chart-props.ts +44 -0
- package/src/site/components/mini-chart/mini-chart.tsx +86 -0
- package/src/site/components/mini-chart/wrapper.tsx +23 -0
- package/src/site/components/not-found/index.tsx +28 -0
- package/src/site/components/security/index.tsx +55 -0
- package/src/site/components/tooltip.tsx +31 -0
- package/src/site/next/analytics/fpixel.ts +16 -0
- package/src/site/next/analytics/google-analytics.ts +14 -0
- package/src/site/next/analytics/index.ts +3 -0
- package/src/site/next/analytics/pixel-analytics.tsx +55 -0
- package/src/site/next/font/font-desc.ts +18 -0
- package/src/site/next/font/fonts.ts +40 -0
- package/src/site/next/font/get-app-router-font-classes.ts +19 -0
- package/src/site/next/font/load-and-return-lux-next-fonts-on-import.ts +60 -0
- package/src/site/next/font/local/InterVariable-Italic.ttf +0 -0
- package/src/site/next/font/local/InterVariable-Italic.woff2 +0 -0
- package/src/site/next/font/local/InterVariable.ttf +0 -0
- package/src/site/next/font/local/InterVariable.woff2 +0 -0
- package/src/site/next/font/local/Zen-Variable.woff2 +0 -0
- package/src/site/next/font/next-font-desc.ts +29 -0
- package/src/site/next/font/pages-router-font-vars.tsx +18 -0
- package/src/site/next/head-metadata/index.tsx +209 -0
- package/src/site/next/head-metadata/next-metadata.ts +49 -0
- package/src/site/next/index.ts +2 -0
- package/src/site/next/middleware/determine-device-mw.ts +16 -0
- package/src/site/root-layout/WHY_THIS_IS_SEPARATE.txt +2 -0
- package/src/site/root-layout/index.tsx +125 -0
- package/src/site/site-def/footer/community.tsx +58 -0
- package/src/site/site-def/footer/company.ts +37 -0
- package/src/site/site-def/footer/ecosystem.ts +37 -0
- package/src/site/site-def/footer/index.tsx +26 -0
- package/src/site/site-def/footer/legal.ts +28 -0
- package/src/site/site-def/footer/network.ts +45 -0
- package/src/site/site-def/footer/svg/warpcast-logo.svg +12 -0
- package/src/site/site-def/index.ts +4 -0
- package/src/site/site-def/main-nav.tsx +460 -0
- package/src/site/style/cart-animation.css +29 -0
- package/src/site/style/checkout-animation.css +23 -0
- package/src/site/style/drawer-handle-overrides.css +160 -0
- package/src/site/style/fonts/COPY_TO_PUBLIC_FOR_NON_NEXT.txt +0 -0
- package/src/site/style/fonts/InterVariable-Italic.ttf +0 -0
- package/src/site/style/fonts/InterVariable-Italic.woff2 +0 -0
- package/src/site/style/fonts/InterVariable.ttf +0 -0
- package/src/site/style/fonts/InterVariable.woff2 +0 -0
- package/src/site/style/fonts/Zen-Variable.woff2 +0 -0
- package/src/site/style/lux-colors.css +84 -0
- package/src/site/style/lux-fonts.css +24 -0
- package/src/site/style/lux-global-non-next.css +52 -0
- package/src/site/style/lux-global.css +135 -0
- package/src/site/types/chatbot-config.ts +7 -0
- package/src/site/types/chatbot-suggested-question.ts +7 -0
- package/src/site/types/contact-info.ts +11 -0
- package/src/site/types/index.ts +4 -0
- package/src/site/types/site-def.ts +53 -0
- package/src/site/util/index.ts +11 -0
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
|
|
3
|
+
import type { Metadata } from 'next'
|
|
4
|
+
import Head from "next/head"
|
|
5
|
+
|
|
6
|
+
import type {
|
|
7
|
+
Author,
|
|
8
|
+
IconDescriptor,
|
|
9
|
+
OGImage,
|
|
10
|
+
OpenGraph,
|
|
11
|
+
TemplateString,
|
|
12
|
+
ThemeColorDescriptor,
|
|
13
|
+
Twitter,
|
|
14
|
+
TwitterImage,
|
|
15
|
+
} from './next-metadata'
|
|
16
|
+
|
|
17
|
+
/*
|
|
18
|
+
NOTE: This is ONLY for sites that use the pages router in next.
|
|
19
|
+
The app router does this automatically
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
const getURLasString = (url: string | URL) => {
|
|
23
|
+
return (
|
|
24
|
+
(typeof url === 'string') ? (url as string) : (url.href)
|
|
25
|
+
)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// https://stackoverflow.com/questions/68746228/next-head-wont-render-meta-tags-inside-of-fragment
|
|
29
|
+
const Icons: React.FC<{icons: IconDescriptor[]}> = ({
|
|
30
|
+
icons
|
|
31
|
+
}) => {
|
|
32
|
+
return <Head>
|
|
33
|
+
{icons.map(({url, ...rest}: IconDescriptor, index) => (
|
|
34
|
+
<link {...rest} href={getURLasString(url)} key={`icons-${index}`}/>
|
|
35
|
+
))}
|
|
36
|
+
</Head>
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export const getTitleFromTemplateString = (title: string | TemplateString | null | undefined): string | null => {
|
|
40
|
+
|
|
41
|
+
if (!title) {
|
|
42
|
+
return null
|
|
43
|
+
}
|
|
44
|
+
if (typeof title === 'object') {
|
|
45
|
+
if ('default' in title) {
|
|
46
|
+
return title.default
|
|
47
|
+
}
|
|
48
|
+
else if ('absolute' in title) {
|
|
49
|
+
return title.absolute
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return title as string
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const Authors: React.FC<{
|
|
56
|
+
authors: null | undefined | Author | Array<Author>
|
|
57
|
+
}> = ({
|
|
58
|
+
authors
|
|
59
|
+
}) => {
|
|
60
|
+
|
|
61
|
+
const Author: React.FC<{author: Author}> = ({author}) => (<>
|
|
62
|
+
{author.name && <meta name="author" content={author.name} />}
|
|
63
|
+
{author.url && <link rel="author" href={getURLasString(author.url)}/>}
|
|
64
|
+
</>)
|
|
65
|
+
|
|
66
|
+
if (!authors) {
|
|
67
|
+
return null
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if (Array.isArray(authors)) {
|
|
71
|
+
return (<>
|
|
72
|
+
{authors.map((el: Author, index) => (
|
|
73
|
+
<Author author={el} key={`authors-${index}`} />
|
|
74
|
+
))}
|
|
75
|
+
</>)
|
|
76
|
+
}
|
|
77
|
+
return (<Author author={authors as Author} />)
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const Keywords: React.FC<{keywords: undefined | null | string | Array<string>}> = ({
|
|
81
|
+
keywords
|
|
82
|
+
}) => {
|
|
83
|
+
if (!keywords) return null
|
|
84
|
+
const content = (Array.isArray(keywords) ? keywords.join(', ') : keywords as string)
|
|
85
|
+
return (<meta name="keywords" content={content} />)
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const ThemeColor: React.FC<{
|
|
89
|
+
thColors: null | undefined | string | ThemeColorDescriptor | ThemeColorDescriptor[]
|
|
90
|
+
}> = ({
|
|
91
|
+
thColors
|
|
92
|
+
}) => {
|
|
93
|
+
|
|
94
|
+
const ThColor: React.FC<{thColor: ThemeColorDescriptor}> = ({thColor}) => {
|
|
95
|
+
const toSpread: any = {
|
|
96
|
+
content: thColor.color
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if ('media' in thColor) {
|
|
100
|
+
toSpread.media = thColor.media
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return <meta name="theme-color" {...toSpread}/>
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
if (!thColors) {
|
|
107
|
+
return null
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if (Array.isArray(thColors)) {
|
|
111
|
+
return (<>
|
|
112
|
+
{thColors.map((el: ThemeColorDescriptor, index) => (
|
|
113
|
+
<ThColor thColor={el} key={`theme-colors-${index}`} />
|
|
114
|
+
))}
|
|
115
|
+
</>)
|
|
116
|
+
}
|
|
117
|
+
else if (typeof thColors === 'string') {
|
|
118
|
+
<meta name="theme-color" content={thColors as string}/>
|
|
119
|
+
}
|
|
120
|
+
return (<ThColor thColor={thColors as ThemeColorDescriptor} />)
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const Manifest: React.FC<{
|
|
124
|
+
manifest: undefined | null | string | URL
|
|
125
|
+
}> = ({
|
|
126
|
+
manifest
|
|
127
|
+
}) => (
|
|
128
|
+
manifest && (<link rel="manifest" href={getURLasString(manifest)}/>)
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
const getOGImageURL = (img: OGImage | undefined): string | null => {
|
|
132
|
+
|
|
133
|
+
if (!img) {
|
|
134
|
+
return null
|
|
135
|
+
}
|
|
136
|
+
if (typeof img === 'object' && 'url' in img) { // this is a OGImageDescriptor
|
|
137
|
+
return getURLasString(img.url)
|
|
138
|
+
}
|
|
139
|
+
return getURLasString(img) // this is a URL or string
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
const getTwitterImageURL = (img: TwitterImage | undefined): string | null => {
|
|
143
|
+
|
|
144
|
+
if (!img) {
|
|
145
|
+
return null
|
|
146
|
+
}
|
|
147
|
+
if (typeof img === 'object' && 'url' in img) { // this is a TwitterImageDescriptor
|
|
148
|
+
return getURLasString(img.url)
|
|
149
|
+
}
|
|
150
|
+
return getURLasString(img) // this is a URL or string
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// https://stackoverflow.com/questions/68746228/next-head-wont-render-meta-tags-inside-of-fragment
|
|
154
|
+
const OpenGraphComponent: React.FC<{
|
|
155
|
+
og: OpenGraph | undefined | null
|
|
156
|
+
}> = ({
|
|
157
|
+
og
|
|
158
|
+
}) => (og && (<Head>
|
|
159
|
+
{og.url && (<meta property="og:url" content={(typeof og.url === 'string') ? (og.url as string) : (og.url.href)} />)}
|
|
160
|
+
{(og as any).type && (<meta property="og:type" content={(og as any).type} />)}
|
|
161
|
+
{og.title && (<meta property="og:title" content={getTitleFromTemplateString(og.title)!} />)}
|
|
162
|
+
{og.description && (<meta property="og:description" content={og.description} />)}
|
|
163
|
+
{og.images && (<meta property="og:image" content={getOGImageURL(Array.isArray(og.images) ? og.images[0] : og.images)!} />)}
|
|
164
|
+
</Head>))
|
|
165
|
+
|
|
166
|
+
// https://stackoverflow.com/questions/68746228/next-head-wont-render-meta-tags-inside-of-fragment
|
|
167
|
+
export const TwitterComponent: React.FC<{
|
|
168
|
+
tw: Twitter | undefined | null
|
|
169
|
+
}> = ({
|
|
170
|
+
tw
|
|
171
|
+
}) => (tw && (<Head>
|
|
172
|
+
{(tw as any).card && (<meta name="twitter:card" content={(tw as any).card} />)}
|
|
173
|
+
{tw.title && (<meta name="twitter:title" content={getTitleFromTemplateString(tw.title)!} />)}
|
|
174
|
+
{tw.description && (<meta name="twitter:description" content={tw.description} />)}
|
|
175
|
+
{tw.images && (<meta name="twitter:image" content={getTwitterImageURL(Array.isArray(tw.images) ? tw.images[0] : tw.images)!} />)}
|
|
176
|
+
{tw.site && (<meta name="twitter:site" content={tw.site} />)}
|
|
177
|
+
</Head>))
|
|
178
|
+
|
|
179
|
+
/* See NOTE at top of file! */
|
|
180
|
+
// https://stackoverflow.com/questions/68746228/next-head-wont-render-meta-tags-inside-of-fragment
|
|
181
|
+
const HeadMetadataComponent: React.FC<{
|
|
182
|
+
metadata: Metadata
|
|
183
|
+
}> = ({
|
|
184
|
+
metadata
|
|
185
|
+
}) => {
|
|
186
|
+
const mainTitle = getTitleFromTemplateString(metadata.title)
|
|
187
|
+
|
|
188
|
+
return (<>
|
|
189
|
+
<Head>
|
|
190
|
+
{mainTitle && (<title>{mainTitle}</title>) /* must be here, directly under Head component */}
|
|
191
|
+
{metadata.description && (
|
|
192
|
+
<meta name="description" content={metadata.description} />
|
|
193
|
+
)}
|
|
194
|
+
{metadata.applicationName && (
|
|
195
|
+
<meta name="application-name" content={metadata.applicationName} />
|
|
196
|
+
)}
|
|
197
|
+
<Authors authors={metadata.authors} />
|
|
198
|
+
<Keywords keywords={metadata.keywords} />
|
|
199
|
+
<ThemeColor thColors={metadata.themeColor} />
|
|
200
|
+
<Manifest manifest={metadata.manifest} />
|
|
201
|
+
</Head>
|
|
202
|
+
{/* Icons: We only support this format for now */}
|
|
203
|
+
<Icons icons={metadata.icons as IconDescriptor[]} />
|
|
204
|
+
<OpenGraphComponent og={metadata.openGraph} />
|
|
205
|
+
<TwitterComponent tw={metadata.twitter} />
|
|
206
|
+
</>)
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
export default HeadMetadataComponent
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Next's metadata vocabulary, DERIVED from Next's own `Metadata` type.
|
|
3
|
+
*
|
|
4
|
+
* These were three files of hand-copied declarations under `from-next/`, which
|
|
5
|
+
* is a copy of a type that keeps moving: Next 16 changed `OpenGraph` and the
|
|
6
|
+
* copy stayed where it was, so passing `metadata.openGraph` into a component
|
|
7
|
+
* typed against the copy failed with
|
|
8
|
+
*
|
|
9
|
+
* Two different types with this name exist, but they are unrelated.
|
|
10
|
+
*
|
|
11
|
+
* — a message that reads like a duplicate package rather than a stale copy.
|
|
12
|
+
*
|
|
13
|
+
* Derivation cannot drift. Nothing here restates a shape; each line names a
|
|
14
|
+
* position inside `Metadata` and lets Next say what lives there.
|
|
15
|
+
*/
|
|
16
|
+
import type { Metadata } from 'next'
|
|
17
|
+
|
|
18
|
+
/** The element type of an array, or the type itself when it is not one. */
|
|
19
|
+
type Item<T> = T extends readonly (infer E)[] ? E : T
|
|
20
|
+
|
|
21
|
+
/** Metadata fields are nullable by convention; this is the value half. */
|
|
22
|
+
type Set<T> = Exclude<T, null | undefined>
|
|
23
|
+
|
|
24
|
+
export type OpenGraph = Set<Metadata['openGraph']>
|
|
25
|
+
export type OGImage = Item<Set<OpenGraph['images']>>
|
|
26
|
+
|
|
27
|
+
export type Twitter = Set<Metadata['twitter']>
|
|
28
|
+
export type TwitterImage = Item<Set<Twitter['images']>>
|
|
29
|
+
|
|
30
|
+
export type Author = Item<Set<Metadata['authors']>>
|
|
31
|
+
/**
|
|
32
|
+
* A theme colour with its media query. `Metadata['themeColor']` also admits a
|
|
33
|
+
* bare colour string; this is the form with fields, picked out by the one it
|
|
34
|
+
* always has.
|
|
35
|
+
*/
|
|
36
|
+
export type ThemeColorDescriptor = Extract<Item<Set<Metadata['themeColor']>>, { color: unknown }>
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* The title's object form. `Metadata['title']` is that OR a plain string, and
|
|
40
|
+
* the string is the case with nothing to read.
|
|
41
|
+
*/
|
|
42
|
+
export type TemplateString = Exclude<Set<Metadata['title']>, string>
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* One icon, in its descriptor form. `Metadata['icons']` also admits a bare url
|
|
46
|
+
* and a grouping object (`{ icon, shortcut, apple }`); this is the one that
|
|
47
|
+
* describes a single icon, picked out by the field only it has.
|
|
48
|
+
*/
|
|
49
|
+
export type IconDescriptor = Extract<Item<Set<Metadata['icons']>>, { url: unknown }>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { NextRequest, NextResponse, userAgent } from 'next/server'
|
|
2
|
+
import { getSelectorsByUserAgent } from 'react-device-detect'
|
|
3
|
+
|
|
4
|
+
// writed this way so they can be chained :)
|
|
5
|
+
const determineDeviceMW = async (request: NextRequest) => {
|
|
6
|
+
|
|
7
|
+
const ua = userAgent(request)
|
|
8
|
+
const { isMobileOnly, isTablet, isDesktop } = getSelectorsByUserAgent(ua.ua)
|
|
9
|
+
const agent = isMobileOnly ? 'phone' : (isTablet ? 'tablet' : (isDesktop ? 'desktop' : 'unknown'))
|
|
10
|
+
const { nextUrl: url } = request
|
|
11
|
+
//console.log(`\n=== from ${url.href} on a *${agent && agent.toUpperCase()}* device. ===\n`)
|
|
12
|
+
url.searchParams.set('agent', agent)
|
|
13
|
+
return NextResponse.rewrite(url)
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export default determineDeviceMW
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import React, { type PropsWithChildren } from 'react'
|
|
2
|
+
import type { Viewport } from 'next'
|
|
3
|
+
|
|
4
|
+
import { Toaster } from '@hanzo/ui/primitives'
|
|
5
|
+
import { Hanzo } from '@hanzo/ui'
|
|
6
|
+
import { CommerceProvider } from '@hanzo/commerce'
|
|
7
|
+
|
|
8
|
+
import getAppRouterBodyFontClasses from '../next/font/get-app-router-font-classes'
|
|
9
|
+
import { FacebookPixelHead } from '../next/analytics/pixel-analytics'
|
|
10
|
+
|
|
11
|
+
import { CommerceUIProvider } from '../commerce/ui/context'
|
|
12
|
+
import { Auth, ChatWidget, Header, Analytics } from '../components'
|
|
13
|
+
|
|
14
|
+
import CommerceDrawer from '../components/commerce/drawer'
|
|
15
|
+
|
|
16
|
+
import type SiteDef from '../types/site-def'
|
|
17
|
+
|
|
18
|
+
// BY NAME, and before the Lux sheets so those can override. Next does not
|
|
19
|
+
// follow a CSS import out of node_modules on a consumer's behalf, so naming
|
|
20
|
+
// these here is what actually puts the reset and the token scale on the page —
|
|
21
|
+
// a site that omits them renders with browser defaults and no palette.
|
|
22
|
+
import '@hanzo/ui/theme.css'
|
|
23
|
+
import '@hanzo/ui/styles.css'
|
|
24
|
+
|
|
25
|
+
import '../style/lux-global.css'
|
|
26
|
+
import '../style/cart-animation.css'
|
|
27
|
+
import '../style/checkout-animation.css'
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
// Next 14: https://nextjs.org/docs/app/building-your-application/upgrading/codemods#use-viewport-export
|
|
31
|
+
const viewport = {
|
|
32
|
+
themeColor: [
|
|
33
|
+
{ media: '(prefers-color-scheme: light)', color: 'white' },
|
|
34
|
+
{ media: '(prefers-color-scheme: dark)', color: 'black' },
|
|
35
|
+
],
|
|
36
|
+
} satisfies Viewport
|
|
37
|
+
|
|
38
|
+
/*
|
|
39
|
+
The only classes left on <body> are next/font's own generated ones. Each
|
|
40
|
+
DEFINES a custom property (`--font-inter`, `--font-zen-sans`) holding the face
|
|
41
|
+
it loaded, and they have to be on an element for the rest of the sheet to
|
|
42
|
+
resolve those names — which is why they are classes and not a stylesheet.
|
|
43
|
+
|
|
44
|
+
The ground, the ink and the family that used to sit here as utility classes
|
|
45
|
+
are in lux-global.css, on `body` itself. They were `bg-background
|
|
46
|
+
text-foreground flex flex-col min-h-full`, and with no engine generating them
|
|
47
|
+
they were four names no sheet served.
|
|
48
|
+
|
|
49
|
+
re body: not overflow-hidden and not h-full — scroll-snap does not work on iOS
|
|
50
|
+
with those on the body tag.
|
|
51
|
+
*/
|
|
52
|
+
const bodyClasses = getAppRouterBodyFontClasses()
|
|
53
|
+
|
|
54
|
+
function RootLayout({
|
|
55
|
+
showHeader = false,
|
|
56
|
+
chatbot = false,
|
|
57
|
+
siteDef,
|
|
58
|
+
children,
|
|
59
|
+
} : {
|
|
60
|
+
siteDef: SiteDef
|
|
61
|
+
showHeader?: boolean
|
|
62
|
+
chatbot?: boolean
|
|
63
|
+
} & PropsWithChildren) {
|
|
64
|
+
|
|
65
|
+
const Guts: React.FC = () => (<>
|
|
66
|
+
{showHeader && <Header siteDef={siteDef}/>}
|
|
67
|
+
{children}
|
|
68
|
+
{chatbot && (<ChatWidget
|
|
69
|
+
title='LUX'
|
|
70
|
+
subtitle='AI'
|
|
71
|
+
chatbotUrl='https://lux.chat/iframe'
|
|
72
|
+
suggestedQuestions={siteDef.chatbot?.suggestedQuestions ?? []}
|
|
73
|
+
buttonClx='hidden md:block'
|
|
74
|
+
/>)}
|
|
75
|
+
</>)
|
|
76
|
+
|
|
77
|
+
return (
|
|
78
|
+
<html lang='en' suppressHydrationWarning className='hanzo-ui-dark-theme' style={{backgroundColor: '#000'}}>
|
|
79
|
+
<head >
|
|
80
|
+
{/* https://stackoverflow.com/a/75716588/11645689 */ }
|
|
81
|
+
<base target='_blank' />
|
|
82
|
+
<FacebookPixelHead/>
|
|
83
|
+
</head>
|
|
84
|
+
|
|
85
|
+
{/* No inline style. The body's layout is stated once, in lux-global.css,
|
|
86
|
+
where it applies whether or not any script runs.
|
|
87
|
+
|
|
88
|
+
It used to render `display: none` here and a mount effect in
|
|
89
|
+
analytics.tsx set it back — hiding the page until React had hydrated.
|
|
90
|
+
That trades a flash for a site that is blank to anything without
|
|
91
|
+
JavaScript, and it silently outranked the sheet: the effect wrote
|
|
92
|
+
`flex`, so the `display: grid` the sheet asks for never once applied
|
|
93
|
+
on any of these sites.
|
|
94
|
+
|
|
95
|
+
Note the other half of that comment, still true: `overflow: hidden` on
|
|
96
|
+
<body> breaks scroll-snap on iOS, so it does not go here either. */}
|
|
97
|
+
<body suppressHydrationWarning className={bodyClasses}>
|
|
98
|
+
{/* The root every @hanzo/ui component reads its config from. Without it
|
|
99
|
+
a prerender throws `Err0` from inside gui — a message that names
|
|
100
|
+
neither the component nor the missing provider. */}
|
|
101
|
+
<Hanzo theme='dark'>
|
|
102
|
+
<Analytics/>
|
|
103
|
+
<Auth app={siteDef.app}>
|
|
104
|
+
{siteDef?.commerce ? (
|
|
105
|
+
<CommerceProvider config={siteDef.commerce!} >
|
|
106
|
+
<CommerceUIProvider >
|
|
107
|
+
<Guts />
|
|
108
|
+
<CommerceDrawer />
|
|
109
|
+
</CommerceUIProvider>
|
|
110
|
+
</CommerceProvider>
|
|
111
|
+
) : (
|
|
112
|
+
<Guts />
|
|
113
|
+
)}
|
|
114
|
+
</Auth>
|
|
115
|
+
<Toaster position='top-center' duration={3000}/>
|
|
116
|
+
</Hanzo>
|
|
117
|
+
</body>
|
|
118
|
+
</html>
|
|
119
|
+
)
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export {
|
|
123
|
+
RootLayout,
|
|
124
|
+
viewport
|
|
125
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { LinkDef } from '@hanzo/ui/types'
|
|
2
|
+
|
|
3
|
+
import { SocialIcon } from '../../components/icons'
|
|
4
|
+
|
|
5
|
+
const SOC_ICON_SIZE = 18
|
|
6
|
+
|
|
7
|
+
export default [
|
|
8
|
+
{
|
|
9
|
+
title: 'Community',
|
|
10
|
+
href: '',
|
|
11
|
+
variant: 'linkFG',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
title: 'Lux Channel',
|
|
15
|
+
href: 'https://warpcast.com/~/channel/lux',
|
|
16
|
+
icon: <SocialIcon network='x' size={SOC_ICON_SIZE} />
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
title: 'Lux Discussions',
|
|
20
|
+
href: 'https://github.com/orgs/luxfi/discussions',
|
|
21
|
+
icon: <SocialIcon network='github' size={SOC_ICON_SIZE} />
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
title: 'Discord',
|
|
25
|
+
href: 'https://discord.gg/sxaS7FFHwh',
|
|
26
|
+
icon: <SocialIcon network='discord' size={SOC_ICON_SIZE} />
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
title: 'Telegram',
|
|
30
|
+
href: 'https://t.me/luxdefi',
|
|
31
|
+
icon: <SocialIcon network='telegram' size={SOC_ICON_SIZE} />
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
title: '@luxdefi',
|
|
35
|
+
href: 'https://twitter.com/luxdefi',
|
|
36
|
+
icon: <SocialIcon network='x' size={SOC_ICON_SIZE} />
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
title: '@luxdefi',
|
|
40
|
+
href: 'https://facebook.com/luxdefi',
|
|
41
|
+
icon: <SocialIcon network='facebook' size={SOC_ICON_SIZE + 2} />
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
title: '@luxdefi',
|
|
45
|
+
href: 'https://www.instagram.com/luxdefi',
|
|
46
|
+
icon: <SocialIcon network='instagram' size={SOC_ICON_SIZE + 2} />
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
title: '@luxdefi',
|
|
50
|
+
href: 'https://linkedin.com/company/luxdefi',
|
|
51
|
+
icon: <SocialIcon network='linkedin' size={SOC_ICON_SIZE + 2} />
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
title: '@luxdefi',
|
|
55
|
+
href: 'https://www.youtube.com/@luxdefi',
|
|
56
|
+
icon: <SocialIcon network='youtube' size={SOC_ICON_SIZE + 2} />
|
|
57
|
+
},
|
|
58
|
+
] satisfies LinkDef[]
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { LinkDef } from '@hanzo/ui/types'
|
|
2
|
+
|
|
3
|
+
export default [
|
|
4
|
+
{
|
|
5
|
+
title: 'Company',
|
|
6
|
+
href: "https://lux.partners/",
|
|
7
|
+
variant: 'linkFG',
|
|
8
|
+
newTab: false,
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
title: 'About',
|
|
12
|
+
href: 'https://lux.partners',
|
|
13
|
+
newTab: false,
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
title: 'Brand',
|
|
17
|
+
href: 'https://drive.google.com/drive/folders/14OJtKLVakGY6883XO9yGbiHtlFxQUUm5?usp=share_link',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
title: 'Careers',
|
|
21
|
+
href: 'https://docs.google.com/document/d/1SCt0Hg7EIs06TootKCA1am1xo4mcXoKF/edit#heading=h.30j0zll',
|
|
22
|
+
newTab: true,
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
title: 'Partnerships',
|
|
26
|
+
href: 'https://apply.lux.partners/',
|
|
27
|
+
newTab: false,
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
title: 'Press',
|
|
31
|
+
href: 'mailto:ai@lux.partners?subject=%E2%96%BC%20Press',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
title: 'Help',
|
|
35
|
+
href: 'mailto:ai@lux.partners?subject=%E2%96%BC%20Help',
|
|
36
|
+
},
|
|
37
|
+
] satisfies LinkDef[]
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { LinkDef } from '@hanzo/ui/types'
|
|
2
|
+
|
|
3
|
+
export default [
|
|
4
|
+
{
|
|
5
|
+
title: 'Ecosystem',
|
|
6
|
+
href: 'https://lux.link',
|
|
7
|
+
variant: 'linkFG'
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
title: 'Lux AI',
|
|
11
|
+
href: 'https://lux.chat',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
title: 'Lux Credit',
|
|
15
|
+
href: 'https://lux.credit',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
title: 'Lux Exchange',
|
|
19
|
+
href: 'https://lux.exchange',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
title: 'Lux Finance',
|
|
23
|
+
href: 'https://lux.finance',
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
title: 'Lux Market',
|
|
27
|
+
href: 'https://lux.market',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
title: 'Lux Shop',
|
|
31
|
+
href: 'https://lux.shop',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
title: 'Lux Quest',
|
|
35
|
+
href: 'https://lux.quest',
|
|
36
|
+
},
|
|
37
|
+
] satisfies LinkDef[]
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { LinkDef } from '@hanzo/ui/types'
|
|
2
|
+
|
|
3
|
+
import ecosystem from './ecosystem'
|
|
4
|
+
import network from './network'
|
|
5
|
+
import company from './company'
|
|
6
|
+
import community from './community'
|
|
7
|
+
import { legal, legalColumn } from './legal'
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
const standard = [
|
|
11
|
+
ecosystem,
|
|
12
|
+
network,
|
|
13
|
+
company,
|
|
14
|
+
community,
|
|
15
|
+
] satisfies LinkDef[][]
|
|
16
|
+
|
|
17
|
+
export {
|
|
18
|
+
ecosystem,
|
|
19
|
+
network,
|
|
20
|
+
company,
|
|
21
|
+
community,
|
|
22
|
+
legal,
|
|
23
|
+
legalColumn,
|
|
24
|
+
standard
|
|
25
|
+
}
|
|
26
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { LinkDef } from '@hanzo/ui/types'
|
|
2
|
+
|
|
3
|
+
const legal: LinkDef[] = [
|
|
4
|
+
{
|
|
5
|
+
title: 'Terms and Conditions',
|
|
6
|
+
href: 'https://docs.google.com/document/d/1mvkjr1w8Rv8ttirs1mu-_2fw_PXclOyS/preview',
|
|
7
|
+
newTab: true,
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
title: 'Privacy Policy',
|
|
11
|
+
href: 'https://docs.google.com/document/d/1vZjOKaNdOoThDIaVLERWxflQLtOsuvLn/preview',
|
|
12
|
+
newTab: true,
|
|
13
|
+
},
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
const title: LinkDef =
|
|
17
|
+
{
|
|
18
|
+
title: 'Legal',
|
|
19
|
+
href: '',
|
|
20
|
+
variant: 'linkFG',
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const legalColumn: LinkDef[] = [title, ...legal]
|
|
24
|
+
|
|
25
|
+
export {
|
|
26
|
+
legal,
|
|
27
|
+
legalColumn
|
|
28
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { LinkDef } from '@hanzo/ui/types'
|
|
2
|
+
|
|
3
|
+
export default [
|
|
4
|
+
{
|
|
5
|
+
title: 'Network',
|
|
6
|
+
href: "https://lux.network/",
|
|
7
|
+
variant: 'linkFG'
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
title: 'Lux Bridge',
|
|
11
|
+
href: "https://bridge.lux.network/",
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
title: 'Lux Explorer',
|
|
15
|
+
href: "https://explore.lux.network/",
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
title: 'Lux Wallet',
|
|
19
|
+
href: "https://wallet.lux.network/",
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
title: 'Lux Safe',
|
|
23
|
+
href: "https://safe.lux.network/",
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
title: 'Lux Build',
|
|
27
|
+
href: "https://lux.build",
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
title: 'Lux Coin',
|
|
31
|
+
href: "https://lux.network/coin",
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
title: 'Governance',
|
|
35
|
+
href: "https://lux.vote",
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
title: 'Open Source',
|
|
39
|
+
href: 'https://github.com/luxfi',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
title: 'Launch Subnet',
|
|
43
|
+
href: 'https://docs.lux.network/build/subnet/hello-subnet',
|
|
44
|
+
},
|
|
45
|
+
] satisfies LinkDef[]
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<svg viewBox="0 0 1260 1260" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_1_2)">
|
|
3
|
+
<!-- path d="M947.747 1259.61H311.861C139.901 1259.61 0 1119.72 0 947.752V311.871C0 139.907 139.901 0.00541362 311.861 0.00541362H947.747C1119.71 0.00541362 1259.61 139.907 1259.61 311.871V947.752C1259.61 1119.72 1119.71 1259.61 947.747 1259.61Z" fill="#472A91"></path -->
|
|
4
|
+
<path d="M826.513 398.633L764.404 631.889L702.093 398.633H558.697L495.789 633.607L433.087 398.633H269.764L421.528 914.36H562.431L629.807 674.876L697.181 914.36H838.388L989.819 398.633H826.513Z" fill="currentColor">
|
|
5
|
+
</path>
|
|
6
|
+
</g>
|
|
7
|
+
<defs>
|
|
8
|
+
<clipPath id="clip0_1_2">
|
|
9
|
+
<rect width="1259.61" height="1259.61" fill="white"></rect>
|
|
10
|
+
</clipPath>
|
|
11
|
+
</defs>
|
|
12
|
+
</svg>
|