@luxfi/core 5.2.12 → 5.2.13

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 (178) hide show
  1. package/commerce/ui/conf.ts +13 -13
  2. package/commerce/ui/context.tsx +126 -126
  3. package/commerce/ui/store.ts +304 -304
  4. package/components/access-code-input.tsx +71 -71
  5. package/components/auth/auth-listener.tsx +29 -29
  6. package/components/auth/auth-token/clear-auth-token.tsx +12 -12
  7. package/components/auth/auth-token/set-auth-token.tsx +16 -16
  8. package/components/auth/common-auth-domains.ts +16 -16
  9. package/components/auth/login-panel.tsx +107 -107
  10. package/components/back-button.tsx +42 -42
  11. package/components/chat-widget.tsx +85 -85
  12. package/components/commerce/add-widget.tsx +20 -20
  13. package/components/commerce/bag-button.tsx +98 -98
  14. package/components/commerce/buy-button.tsx +34 -34
  15. package/components/commerce/checkout-button.tsx +129 -129
  16. package/components/commerce/checkout-panel/dt-bag-carousel.tsx +36 -36
  17. package/components/commerce/checkout-panel/dt-checkout-panel.tsx +84 -84
  18. package/components/commerce/checkout-panel/index.tsx +129 -129
  19. package/components/commerce/checkout-panel/links-row.tsx +21 -21
  20. package/components/commerce/checkout-panel/mb-checkout-panel.tsx +54 -54
  21. package/components/commerce/checkout-panel/steps-indicator.tsx +39 -39
  22. package/components/commerce/checkout-panel/thank-you.tsx +18 -18
  23. package/components/commerce/checkout-widget/const.ts +13 -13
  24. package/components/commerce/checkout-widget/index.tsx +192 -192
  25. package/components/commerce/checkout-widget/obs-string-set.ts +48 -48
  26. package/components/commerce/checkout-widget/use-anim-clx-set.ts +58 -58
  27. package/components/commerce/desktop-bag-popup.tsx +78 -78
  28. package/components/commerce/desktop-nav-menu.tsx +130 -130
  29. package/components/commerce/drawer/index.tsx +99 -99
  30. package/components/commerce/drawer/micro.tsx +144 -144
  31. package/components/commerce/drawer/shell.tsx +85 -85
  32. package/components/commerce/mobile-bag-drawer.tsx +51 -51
  33. package/components/commerce/mobile-login-button.tsx +101 -101
  34. package/components/commerce/mobile-menu-toggle-button.tsx +35 -35
  35. package/components/commerce/mobile-nav-menu-ai.tsx +48 -48
  36. package/components/commerce/mobile-nav-menu-item.tsx +49 -49
  37. package/components/commerce/mobile-nav-menu.tsx +101 -101
  38. package/components/contact-dialog/contact-form.tsx +113 -113
  39. package/components/contact-dialog/disclaimer.tsx +13 -13
  40. package/components/contact-dialog/index.tsx +64 -64
  41. package/components/copyright.tsx +21 -21
  42. package/components/drawer-margin.tsx +25 -25
  43. package/components/footer.tsx +77 -77
  44. package/components/header/desktop.tsx +50 -50
  45. package/components/header/index.tsx +52 -52
  46. package/components/header/mobile.tsx +163 -163
  47. package/components/header/theme-toggle.tsx +26 -26
  48. package/components/icons/24k-gold-card.tsx +43 -43
  49. package/components/icons/ai-chat-act.tsx +47 -47
  50. package/components/icons/ai-chat.tsx +29 -29
  51. package/components/icons/anodized-titanium.tsx +45 -45
  52. package/components/icons/avatar.tsx +11 -11
  53. package/components/icons/bag-icon.tsx +10 -10
  54. package/components/icons/blog-act.tsx +14 -14
  55. package/components/icons/blog.tsx +20 -20
  56. package/components/icons/bridge-act.tsx +18 -18
  57. package/components/icons/bridge.tsx +68 -68
  58. package/components/icons/changelog-act.tsx +15 -15
  59. package/components/icons/changelog.tsx +21 -21
  60. package/components/icons/chrome.tsx +45 -45
  61. package/components/icons/coins-act.tsx +29 -29
  62. package/components/icons/coins.tsx +20 -20
  63. package/components/icons/compare-cards-act.tsx +30 -30
  64. package/components/icons/compare-cards.tsx +21 -21
  65. package/components/icons/credit-act.tsx +29 -29
  66. package/components/icons/credit.tsx +20 -20
  67. package/components/icons/customer-support-act.tsx +27 -27
  68. package/components/icons/customer-support.tsx +21 -21
  69. package/components/icons/customers-act.tsx +65 -65
  70. package/components/icons/customers.tsx +33 -33
  71. package/components/icons/developer-docs-act.tsx +26 -26
  72. package/components/icons/developer-docs.tsx +20 -20
  73. package/components/icons/exchange-act.tsx +27 -27
  74. package/components/icons/exchange.tsx +21 -21
  75. package/components/icons/explorer-act.tsx +27 -27
  76. package/components/icons/explorer.tsx +22 -22
  77. package/components/icons/faqs-act.tsx +27 -27
  78. package/components/icons/faqs.tsx +21 -21
  79. package/components/icons/github.tsx +14 -14
  80. package/components/icons/guides-act.tsx +26 -26
  81. package/components/icons/guides.tsx +21 -21
  82. package/components/icons/gun-metal.tsx +44 -44
  83. package/components/icons/index.tsx +43 -43
  84. package/components/icons/integrations-act.tsx +41 -41
  85. package/components/icons/integrations.tsx +25 -25
  86. package/components/icons/irradescent.tsx +41 -41
  87. package/components/icons/launch-subnet.tsx +21 -21
  88. package/components/icons/launchsubnet-act.tsx +29 -29
  89. package/components/icons/left-arrow.tsx +11 -11
  90. package/components/icons/lux-finance-act.tsx +34 -34
  91. package/components/icons/lux-finance.tsx +23 -23
  92. package/components/icons/lux-logo.tsx +10 -10
  93. package/components/icons/lux-pass-act.tsx +41 -41
  94. package/components/icons/lux-pass.tsx +25 -25
  95. package/components/icons/lux-quests-act.tsx +15 -15
  96. package/components/icons/lux-quests.tsx +21 -21
  97. package/components/icons/market-act.tsx +39 -39
  98. package/components/icons/market.tsx +24 -24
  99. package/components/icons/mirrored-titanium.tsx +46 -46
  100. package/components/icons/more-benefits-act.tsx +29 -29
  101. package/components/icons/more-benefits.tsx +21 -21
  102. package/components/icons/open-source-act.tsx +41 -41
  103. package/components/icons/open-source.tsx +26 -26
  104. package/components/icons/right-arrow.tsx +10 -10
  105. package/components/icons/safe-act.tsx +77 -77
  106. package/components/icons/safe.tsx +37 -37
  107. package/components/icons/search.tsx +12 -12
  108. package/components/icons/secure-delivery.tsx +13 -13
  109. package/components/icons/shop-act.tsx +29 -29
  110. package/components/icons/shop.tsx +20 -20
  111. package/components/icons/social-icon.tsx +35 -35
  112. package/components/icons/social-svg.css +3 -3
  113. package/components/icons/sterling-silver-card.tsx +44 -44
  114. package/components/icons/templates-act.tsx +29 -29
  115. package/components/icons/templates.tsx +21 -21
  116. package/components/icons/validators-act.tsx +42 -42
  117. package/components/icons/validators.tsx +41 -41
  118. package/components/icons/view-all-card-act.tsx +28 -28
  119. package/components/icons/view-all-card.tsx +20 -20
  120. package/components/icons/wallet-act.tsx +29 -29
  121. package/components/icons/wallet.tsx +20 -20
  122. package/components/icons/warpcast.tsx +58 -58
  123. package/components/icons/youtube-logo.tsx +59 -59
  124. package/components/index.ts +27 -27
  125. package/components/logo.tsx +89 -89
  126. package/components/main.tsx +27 -27
  127. package/components/mini-chart/index.tsx +7 -7
  128. package/components/mini-chart/mini-chart-props.ts +43 -43
  129. package/components/mini-chart/mini-chart.tsx +85 -85
  130. package/components/mini-chart/wrapper.tsx +23 -23
  131. package/components/not-found/index.tsx +28 -28
  132. package/components/not-found/not-found-content.mdx +5 -5
  133. package/components/scripts.tsx +24 -24
  134. package/components/tooltip.tsx +31 -31
  135. package/environment.d.ts +5 -5
  136. package/next/analytics/fpixel.ts +15 -15
  137. package/next/analytics/google-analytics.ts +13 -13
  138. package/next/analytics/index.ts +3 -3
  139. package/next/analytics/pixel-analytics.tsx +54 -54
  140. package/next/font/get-app-router-font-classes.ts +12 -12
  141. package/next/font/load-and-return-lux-next-fonts-on-import.ts +68 -68
  142. package/next/font/next-font-desc.ts +27 -27
  143. package/next/font/pages-router-font-vars.tsx +18 -18
  144. package/next/head-metadata/from-next/metadata-types.ts +158 -158
  145. package/next/head-metadata/from-next/opengraph-types.ts +267 -267
  146. package/next/head-metadata/from-next/twitter-types.ts +92 -92
  147. package/next/head-metadata/index.tsx +208 -208
  148. package/next/middleware/determine-device-mw.ts +16 -16
  149. package/package.json +79 -79
  150. package/root-layout/WHY_THIS_IS_SEPARATE.txt +1 -1
  151. package/root-layout/index.tsx +112 -112
  152. package/server-actions/firebase-app.ts +14 -14
  153. package/server-actions/index.ts +5 -5
  154. package/server-actions/store-contact.ts +51 -51
  155. package/site-def/footer/community.tsx +67 -67
  156. package/site-def/footer/company.ts +37 -37
  157. package/site-def/footer/ecosystem.ts +37 -37
  158. package/site-def/footer/index.tsx +26 -26
  159. package/site-def/footer/legal.ts +28 -28
  160. package/site-def/footer/network.ts +45 -45
  161. package/site-def/footer/svg/warpcast-logo.svg +11 -11
  162. package/site-def/index.ts +2 -2
  163. package/site-def/main-nav.tsx +458 -458
  164. package/style/cart-animation.css +29 -29
  165. package/style/checkout-animation.css +23 -23
  166. package/style/drawer-handle-overrides.css +160 -160
  167. package/style/lux-colors.css +85 -85
  168. package/style/lux-global.css +47 -47
  169. package/tailwind/fontFamily.tailwind.lux.ts +18 -18
  170. package/tailwind/index.ts +2 -2
  171. package/tailwind/lux-tw-fonts.ts +39 -39
  172. package/tailwind/tailwind.config.lux-preset.ts +10 -10
  173. package/tsconfig.json +15 -15
  174. package/types/chatbot-config.ts +6 -6
  175. package/types/chatbot-suggested-question.ts +7 -7
  176. package/types/contact-info.ts +10 -10
  177. package/types/index.ts +4 -4
  178. package/types/site-def.ts +43 -43
@@ -1,27 +1,27 @@
1
- export { default as AccessCodeInput } from './access-code-input'
2
- export { default as ChatWidget } from './chat-widget'
3
- export { default as ContactDialog } from './contact-dialog'
4
- export { default as Copyright} from './copyright'
5
- export { default as Footer } from './footer'
6
- export { default as Header } from './header'
7
- export * as Icons from './icons'
8
- export { default as Logo } from './logo'
9
- export { default as Main } from './main'
10
- export { default as MiniChart } from './mini-chart'
11
- export { default as NotFound } from './not-found'
12
-
13
- export { default as AuthListener } from './auth/auth-listener'
14
- export { default as AddWidget } from './commerce/add-widget'
15
- export { default as BackButton } from './back-button'
16
- export { default as BuyDrawer } from './commerce/drawer'
17
- export { default as DrawerMargin } from './drawer-margin'
18
- export { default as BuyButton } from './commerce/buy-button'
19
- export { default as CheckoutButton } from './commerce/checkout-button'
20
- export { default as CheckoutPanel } from './commerce/checkout-panel'
21
- export { default as CheckoutWidget } from './commerce/checkout-widget'
22
- export { default as LoginPanel } from './auth/login-panel'
23
- export { default as Scripts } from './scripts'
24
- export { default as Tooltip } from './tooltip'
25
-
26
- export { default as EmblaAutoplay } from 'embla-carousel-autoplay'
27
-
1
+ export { default as AccessCodeInput } from './access-code-input'
2
+ export { default as ChatWidget } from './chat-widget'
3
+ export { default as ContactDialog } from './contact-dialog'
4
+ export { default as Copyright} from './copyright'
5
+ export { default as Footer } from './footer'
6
+ export { default as Header } from './header'
7
+ export * as Icons from './icons'
8
+ export { default as Logo } from './logo'
9
+ export { default as Main } from './main'
10
+ export { default as MiniChart } from './mini-chart'
11
+ export { default as NotFound } from './not-found'
12
+
13
+ export { default as AuthListener } from './auth/auth-listener'
14
+ export { default as AddWidget } from './commerce/add-widget'
15
+ export { default as BackButton } from './back-button'
16
+ export { default as BuyDrawer } from './commerce/drawer'
17
+ export { default as DrawerMargin } from './drawer-margin'
18
+ export { default as BuyButton } from './commerce/buy-button'
19
+ export { default as CheckoutButton } from './commerce/checkout-button'
20
+ export { default as CheckoutPanel } from './commerce/checkout-panel'
21
+ export { default as CheckoutWidget } from './commerce/checkout-widget'
22
+ export { default as LoginPanel } from './auth/login-panel'
23
+ export { default as Scripts } from './scripts'
24
+ export { default as Tooltip } from './tooltip'
25
+
26
+ export { default as EmblaAutoplay } from 'embla-carousel-autoplay'
27
+
@@ -1,89 +1,89 @@
1
- import React from 'react'
2
- import Link from 'next/link'
3
-
4
- import { type TShirtSize } from '@hanzo/ui/types'
5
-
6
- import { cn } from '@hanzo/ui/util'
7
-
8
- import * as Icons from './icons'
9
-
10
- const TEXT = 'LUX'
11
-
12
- const Logo: React.FC<{
13
- size?: TShirtSize
14
- variant?: 'text-only' | 'logo-only' | 'full'
15
- onClick?: () => void
16
- href?: string
17
- outerClx?: string
18
- textClx?: string
19
- }> = ({
20
- size,
21
- href, // no default please!
22
- outerClx='',
23
- textClx='',
24
- variant='full',
25
- onClick,
26
- }) => {
27
- let classes: any = {}
28
- const toAdd = (variant === 'logo-only') ?
29
- {
30
- span: 'hidden',
31
- icon: ''
32
- }
33
- :
34
- (variant === 'text-only') ?
35
- {
36
- span: '',
37
- icon: 'hidden'
38
- }
39
- :
40
- {
41
- span: '',
42
- icon: ''
43
- }
44
-
45
- if (size === 'lg' || size === 'xl' ) { // for safety
46
- classes.icon = 'h-10 w-10 mr-4 color-inherit '
47
- classes.span = 'text-3xl '
48
- }
49
- // match lux.network
50
- else if (size === 'md') {
51
- classes.icon = 'h-[32px] w-[32px] mr-[12px] color-inherit '
52
- classes.span = 'text-[1.8rem]/[1.8rem] tracking-tighter '
53
- }
54
- else if (size === 'sm' ) {
55
- classes.icon = 'h-6 w-6 mr-2 color-inherit '
56
- classes.span = 'text-lg '
57
- }
58
- // xs
59
- else {
60
- classes.icon = 'h-4 w-4 mr-1 color-inherit '
61
- classes.span = 'text-base '
62
- }
63
-
64
- classes.icon += toAdd.icon
65
- classes.span += toAdd.span
66
-
67
-
68
- const outerClasses = 'flex flex-row items-center ' + outerClx
69
- const spanClasses = 'inline-block font-bold font-heading '
70
- + textClx
71
- + (href ? ' hover:text-accent cursor-pointer ' : ' cursor-default ')
72
- + classes.span
73
-
74
- return (
75
- href ? (
76
- <Link href={href} className={outerClasses} onClick={onClick} >
77
- <Icons.logo className={classes.icon} />
78
- <span className={spanClasses}>{TEXT}</span>
79
- </Link>
80
- ) : (
81
- <span className={outerClasses} onClick={onClick}>
82
- <Icons.logo className={classes.icon} />
83
- <span className={spanClasses}>{TEXT}</span>
84
- </span>
85
- )
86
- )
87
- }
88
-
89
- export default Logo
1
+ import React from 'react'
2
+ import Link from 'next/link'
3
+
4
+ import { type TShirtSize } from '@hanzo/ui/types'
5
+
6
+ import { cn } from '@hanzo/ui/util'
7
+
8
+ import * as Icons from './icons'
9
+
10
+ const TEXT = 'LUX'
11
+
12
+ const Logo: React.FC<{
13
+ size?: TShirtSize
14
+ variant?: 'text-only' | 'logo-only' | 'full'
15
+ onClick?: () => void
16
+ href?: string
17
+ outerClx?: string
18
+ textClx?: string
19
+ }> = ({
20
+ size,
21
+ href, // no default please!
22
+ outerClx='',
23
+ textClx='',
24
+ variant='full',
25
+ onClick,
26
+ }) => {
27
+ let classes: any = {}
28
+ const toAdd = (variant === 'logo-only') ?
29
+ {
30
+ span: 'hidden',
31
+ icon: ''
32
+ }
33
+ :
34
+ (variant === 'text-only') ?
35
+ {
36
+ span: '',
37
+ icon: 'hidden'
38
+ }
39
+ :
40
+ {
41
+ span: '',
42
+ icon: ''
43
+ }
44
+
45
+ if (size === 'lg' || size === 'xl' ) { // for safety
46
+ classes.icon = 'h-10 w-10 mr-4 color-inherit '
47
+ classes.span = 'text-3xl '
48
+ }
49
+ // match lux.network
50
+ else if (size === 'md') {
51
+ classes.icon = 'h-[32px] w-[32px] mr-[12px] color-inherit '
52
+ classes.span = 'text-[1.8rem]/[1.8rem] tracking-tighter '
53
+ }
54
+ else if (size === 'sm' ) {
55
+ classes.icon = 'h-6 w-6 mr-2 color-inherit '
56
+ classes.span = 'text-lg '
57
+ }
58
+ // xs
59
+ else {
60
+ classes.icon = 'h-4 w-4 mr-1 color-inherit '
61
+ classes.span = 'text-base '
62
+ }
63
+
64
+ classes.icon += toAdd.icon
65
+ classes.span += toAdd.span
66
+
67
+
68
+ const outerClasses = 'flex flex-row items-center ' + outerClx
69
+ const spanClasses = 'inline-block font-bold font-heading '
70
+ + textClx
71
+ + (href ? ' hover:text-accent cursor-pointer ' : ' cursor-default ')
72
+ + classes.span
73
+
74
+ return (
75
+ href ? (
76
+ <Link href={href} className={outerClasses} onClick={onClick} >
77
+ <Icons.logo className={classes.icon} />
78
+ <span className={spanClasses}>{TEXT}</span>
79
+ </Link>
80
+ ) : (
81
+ <span className={outerClasses} onClick={onClick}>
82
+ <Icons.logo className={classes.icon} />
83
+ <span className={spanClasses}>{TEXT}</span>
84
+ </span>
85
+ )
86
+ )
87
+ }
88
+
89
+ export default Logo
@@ -1,27 +1,27 @@
1
- import React, { type PropsWithChildren } from 'react'
2
- import { cn } from '@hanzo/ui/util'
3
-
4
- const Main: React.FC<PropsWithChildren & {
5
- id?: string
6
- className?: string
7
- headerSpace?: boolean
8
- standardWidth?: boolean
9
- }> = ({
10
- children,
11
- className='',
12
- headerSpace=true,
13
- standardWidth=true,
14
- id
15
- }) => (
16
- <main id={id ?? 'LUX_UI_MAIN'} className={cn(
17
- 'flex flex-col justify-start items-center',
18
- 'px-4 md:px-6 lg:px-8',
19
- standardWidth ? 'max-w-screen-2xl w-full lg:mx-auto' : '',
20
- headerSpace ? 'pt-[44px] md:pt-[80px]' : 'py-4',
21
- className
22
- )}>
23
- {children}
24
- </main>
25
- )
26
-
27
- export default Main
1
+ import React, { type PropsWithChildren } from 'react'
2
+ import { cn } from '@hanzo/ui/util'
3
+
4
+ const Main: React.FC<PropsWithChildren & {
5
+ id?: string
6
+ className?: string
7
+ headerSpace?: boolean
8
+ standardWidth?: boolean
9
+ }> = ({
10
+ children,
11
+ className='',
12
+ headerSpace=true,
13
+ standardWidth=true,
14
+ id
15
+ }) => (
16
+ <main id={id ?? 'LUX_UI_MAIN'} className={cn(
17
+ 'flex flex-col justify-start items-center',
18
+ 'px-4 md:px-6 lg:px-8',
19
+ standardWidth ? 'max-w-screen-2xl w-full lg:mx-auto' : '',
20
+ headerSpace ? 'pt-[44px] md:pt-[80px]' : 'py-4',
21
+ className
22
+ )}>
23
+ {children}
24
+ </main>
25
+ )
26
+
27
+ export default Main
@@ -1,8 +1,8 @@
1
- import MiniChart from './wrapper'
2
- // import { type MiniChartProps, type MiniChartDateRanges } from './mini-chart-props'
3
-
4
- export {
5
- MiniChart as default,
6
- // type MiniChartProps,
7
- // type MiniChartDateRanges
1
+ import MiniChart from './wrapper'
2
+ // import { type MiniChartProps, type MiniChartDateRanges } from './mini-chart-props'
3
+
4
+ export {
5
+ MiniChart as default,
6
+ // type MiniChartProps,
7
+ // type MiniChartDateRanges
8
8
  }
@@ -1,44 +1,44 @@
1
- import type { CSSProperties } from 'react'
2
-
3
- // https://www.typescriptlang.org/docs/handbook/enums.html#enums-at-runtime
4
- const enum MiniChartDateRangesValues {
5
- '1D',
6
- '1M',
7
- '3M',
8
- '12M',
9
- '60M',
10
- 'ALL',
11
- }
12
-
13
- type MiniChartDateRanges = keyof typeof MiniChartDateRangesValues
14
-
15
- interface MiniChartBaseProps {
16
- symbol: string
17
- exchange?: string
18
- dateRange: MiniChartDateRanges
19
- noTimeScale?: boolean
20
- width?: number | string
21
- height?: number | string
22
- locale?: string
23
- colorTheme?: "light" | "dark"
24
- // @ts-ignore // TODO
25
- lineColor?: CSSProperties["color"]
26
- // @ts-ignore // TODO
27
- topGradientColor?: CSSProperties["color"]
28
- // @ts-ignore // TODO
29
- bottomGradientColor?: CSSProperties["color"]
30
- isTransparent?: boolean
31
- autosize?: boolean
32
- chartOnly?: boolean
33
- largeChartUrl?: string
34
- }
35
-
36
- type MiniChartProps = {
37
- widgetProps: MiniChartBaseProps
38
- containerStyles?: CSSProperties
39
- }
40
-
41
- export {
42
- type MiniChartProps,
43
- type MiniChartDateRanges
1
+ import type { CSSProperties } from 'react'
2
+
3
+ // https://www.typescriptlang.org/docs/handbook/enums.html#enums-at-runtime
4
+ const enum MiniChartDateRangesValues {
5
+ '1D',
6
+ '1M',
7
+ '3M',
8
+ '12M',
9
+ '60M',
10
+ 'ALL',
11
+ }
12
+
13
+ type MiniChartDateRanges = keyof typeof MiniChartDateRangesValues
14
+
15
+ interface MiniChartBaseProps {
16
+ symbol: string
17
+ exchange?: string
18
+ dateRange: MiniChartDateRanges
19
+ noTimeScale?: boolean
20
+ width?: number | string
21
+ height?: number | string
22
+ locale?: string
23
+ colorTheme?: "light" | "dark"
24
+ // @ts-ignore // TODO
25
+ lineColor?: CSSProperties["color"]
26
+ // @ts-ignore // TODO
27
+ topGradientColor?: CSSProperties["color"]
28
+ // @ts-ignore // TODO
29
+ bottomGradientColor?: CSSProperties["color"]
30
+ isTransparent?: boolean
31
+ autosize?: boolean
32
+ chartOnly?: boolean
33
+ largeChartUrl?: string
34
+ }
35
+
36
+ type MiniChartProps = {
37
+ widgetProps: MiniChartBaseProps
38
+ containerStyles?: CSSProperties
39
+ }
40
+
41
+ export {
42
+ type MiniChartProps,
43
+ type MiniChartDateRanges
44
44
  }
@@ -1,85 +1,85 @@
1
- 'use client'
2
-
3
- import React, { useEffect, useRef } from 'react'
4
- import { type MiniChartProps } from './mini-chart-props'
5
-
6
- const MiniChart: React.FC<MiniChartProps> = ({
7
- widgetProps,
8
- containerStyles = {}
9
- }) => {
10
-
11
- const {
12
- symbol,
13
- exchange,
14
- lineColor,
15
- topGradientColor,
16
- bottomGradientColor,
17
- width,
18
- height,
19
- autosize,
20
- locale,
21
- ...rest
22
- } = widgetProps
23
-
24
- const symbolString = (exchange) ? `${exchange}:${symbol}` : symbol
25
-
26
- const containerRef = useRef<HTMLDivElement | null>(null)
27
-
28
- useEffect(() => {
29
- if (!containerRef.current) {
30
- return
31
- }
32
- const script = document.createElement('script')
33
- script.type = 'text/javascript'
34
- script.src = 'https://s3.tradingview.com/external-embedding/embed-widget-mini-symbol-overview.js'
35
- script.async = true
36
- script.onload = async () => {
37
- const iframe = containerRef.current?.querySelector('iframe')
38
- if (iframe && iframe instanceof Element) {
39
- iframe.style.colorScheme = 'normal'
40
- setTimeout(() => {
41
- const value = document.querySelector('#mini-symbol-overview-ticker')
42
- console.log("TICKER: " + value)
43
- }, 1200) // from experimentation
44
-
45
-
46
- }
47
-
48
- const copyDiv = document.querySelector('.tradingview-widget-copyright')
49
- if (copyDiv) {
50
- console.log("COPY: " + copyDiv)
51
- setTimeout(() => {
52
- copyDiv.classList.remove('invisible')
53
- }, 1200) // from experimentation
54
- }
55
- }
56
- const config = JSON.stringify({
57
- symbol: symbolString,
58
- width: autosize ? '100%' : (width || 350),
59
- height: autosize ? '100%' : (height || 220),
60
- locale: locale ?? 'en',
61
- isTransparent: 'true',
62
- trendLineColor: lineColor || 'rgba(41, 98, 255, 1)',
63
- underLineColor: topGradientColor || 'rgba(41, 98, 255, 0.3)',
64
- underLineBottomColor: bottomGradientColor || 'rgba(41, 98, 255, 0)',
65
- ...rest,
66
- })
67
- script.innerHTML = config
68
- containerRef.current.appendChild(script)
69
- return () => {
70
- while (containerRef.current?.firstChild) {
71
- containerRef.current.removeChild(containerRef.current.firstChild)
72
- }
73
- }
74
- }, [ JSON.stringify(widgetProps) ])
75
-
76
- return (<>
77
- <div style={containerStyles} className='tradingview-widget-container h-[150px]' ref={containerRef} />
78
- <div className='tradingview-widget-copyright border-t w-full invisible'>
79
- <a href={`https://www.tradingview.com/symbols/${symbol}${exchange ? `/?exchange=${exchange}` : '' }`} rel="noopener" target="_blank">
80
- <span className="text-[--hz-ui-primary]">{symbol} quotes</span></a>&nbsp;by TradingView
81
- </div>
82
- </>)
83
- }
84
-
85
- export default MiniChart
1
+ 'use client'
2
+
3
+ import React, { useEffect, useRef } from 'react'
4
+ import { type MiniChartProps } from './mini-chart-props'
5
+
6
+ const MiniChart: React.FC<MiniChartProps> = ({
7
+ widgetProps,
8
+ containerStyles = {}
9
+ }) => {
10
+
11
+ const {
12
+ symbol,
13
+ exchange,
14
+ lineColor,
15
+ topGradientColor,
16
+ bottomGradientColor,
17
+ width,
18
+ height,
19
+ autosize,
20
+ locale,
21
+ ...rest
22
+ } = widgetProps
23
+
24
+ const symbolString = (exchange) ? `${exchange}:${symbol}` : symbol
25
+
26
+ const containerRef = useRef<HTMLDivElement | null>(null)
27
+
28
+ useEffect(() => {
29
+ if (!containerRef.current) {
30
+ return
31
+ }
32
+ const script = document.createElement('script')
33
+ script.type = 'text/javascript'
34
+ script.src = 'https://s3.tradingview.com/external-embedding/embed-widget-mini-symbol-overview.js'
35
+ script.async = true
36
+ script.onload = async () => {
37
+ const iframe = containerRef.current?.querySelector('iframe')
38
+ if (iframe && iframe instanceof Element) {
39
+ iframe.style.colorScheme = 'normal'
40
+ setTimeout(() => {
41
+ const value = document.querySelector('#mini-symbol-overview-ticker')
42
+ console.log("TICKER: " + value)
43
+ }, 1200) // from experimentation
44
+
45
+
46
+ }
47
+
48
+ const copyDiv = document.querySelector('.tradingview-widget-copyright')
49
+ if (copyDiv) {
50
+ console.log("COPY: " + copyDiv)
51
+ setTimeout(() => {
52
+ copyDiv.classList.remove('invisible')
53
+ }, 1200) // from experimentation
54
+ }
55
+ }
56
+ const config = JSON.stringify({
57
+ symbol: symbolString,
58
+ width: autosize ? '100%' : (width || 350),
59
+ height: autosize ? '100%' : (height || 220),
60
+ locale: locale ?? 'en',
61
+ isTransparent: 'true',
62
+ trendLineColor: lineColor || 'rgba(41, 98, 255, 1)',
63
+ underLineColor: topGradientColor || 'rgba(41, 98, 255, 0.3)',
64
+ underLineBottomColor: bottomGradientColor || 'rgba(41, 98, 255, 0)',
65
+ ...rest,
66
+ })
67
+ script.innerHTML = config
68
+ containerRef.current.appendChild(script)
69
+ return () => {
70
+ while (containerRef.current?.firstChild) {
71
+ containerRef.current.removeChild(containerRef.current.firstChild)
72
+ }
73
+ }
74
+ }, [ JSON.stringify(widgetProps) ])
75
+
76
+ return (<>
77
+ <div style={containerStyles} className='tradingview-widget-container h-[150px]' ref={containerRef} />
78
+ <div className='tradingview-widget-copyright border-t w-full invisible'>
79
+ <a href={`https://www.tradingview.com/symbols/${symbol}${exchange ? `/?exchange=${exchange}` : '' }`} rel="noopener" target="_blank">
80
+ <span className="text-[--hz-ui-primary]">{symbol} quotes</span></a>&nbsp;by TradingView
81
+ </div>
82
+ </>)
83
+ }
84
+
85
+ export default MiniChart
@@ -1,23 +1,23 @@
1
- import React from 'react'
2
-
3
- import BaseChart from './mini-chart'
4
-
5
- const Wrapper: React.FC<{
6
- symbol: string,
7
- exchange?: string
8
- }> = ({
9
- symbol,
10
- exchange
11
- }) => (
12
- <BaseChart widgetProps ={{
13
- symbol,
14
- exchange,
15
- autosize: true,
16
- colorTheme: 'dark',
17
- lineColor: "rgb(114, 27, 228)",
18
- bottomGradientColor: "rgba(255, 255, 255, 0.1)",
19
- dateRange: '60M',
20
- }}/>
21
- )
22
-
23
- export default Wrapper
1
+ import React from 'react'
2
+
3
+ import BaseChart from './mini-chart'
4
+
5
+ const Wrapper: React.FC<{
6
+ symbol: string,
7
+ exchange?: string
8
+ }> = ({
9
+ symbol,
10
+ exchange
11
+ }) => (
12
+ <BaseChart widgetProps ={{
13
+ symbol,
14
+ exchange,
15
+ autosize: true,
16
+ colorTheme: 'dark',
17
+ lineColor: "rgb(114, 27, 228)",
18
+ bottomGradientColor: "rgba(255, 255, 255, 0.1)",
19
+ dateRange: '60M',
20
+ }}/>
21
+ )
22
+
23
+ export default Wrapper
@@ -1,28 +1,28 @@
1
- import React from 'react'
2
-
3
- import { ApplyTypography } from '@hanzo/ui/primitives'
4
-
5
- import type { SiteDef } from '../../site-def'
6
- import Footer from '../footer'
7
- import Header from '../header'
8
- import Main from '../main'
9
-
10
- import NotFoundMDX from './not-found-content.mdx'
11
-
12
- const NotFound: React.FC<{
13
- header?: boolean
14
- siteDef: SiteDef
15
- }> = ({
16
- header=false,
17
- siteDef
18
- }) => (<>
19
- {header && <Header siteDef={siteDef}/>}
20
- <Main className='h-[100svh] sm:h-[700px] px-8 sm:px-10 ' headerSpace={header}>
21
- <ApplyTypography className='mt-[200px] flex flex-col md:gap-8 '>
22
- <NotFoundMDX />
23
- </ApplyTypography>
24
- </Main>
25
- <Footer siteDef={siteDef}/>
26
- </>)
27
-
28
- export default NotFound
1
+ import React from 'react'
2
+
3
+ import { ApplyTypography } from '@hanzo/ui/primitives'
4
+
5
+ import type { SiteDef } from '../../site-def'
6
+ import Footer from '../footer'
7
+ import Header from '../header'
8
+ import Main from '../main'
9
+
10
+ import NotFoundMDX from './not-found-content.mdx'
11
+
12
+ const NotFound: React.FC<{
13
+ header?: boolean
14
+ siteDef: SiteDef
15
+ }> = ({
16
+ header=false,
17
+ siteDef
18
+ }) => (<>
19
+ {header && <Header siteDef={siteDef}/>}
20
+ <Main className='h-[100svh] sm:h-[700px] px-8 sm:px-10 ' headerSpace={header}>
21
+ <ApplyTypography className='mt-[200px] flex flex-col md:gap-8 '>
22
+ <NotFoundMDX />
23
+ </ApplyTypography>
24
+ </Main>
25
+ <Footer siteDef={siteDef}/>
26
+ </>)
27
+
28
+ export default NotFound