@luxfi/core 5.3.0 → 5.3.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 (183) hide show
  1. package/commerce/ui/conf.ts +13 -13
  2. package/commerce/ui/context.tsx +126 -123
  3. package/commerce/ui/store.ts +304 -289
  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 -49
  11. package/components/chat-widget.tsx +85 -85
  12. package/components/commerce/add-widget.tsx +20 -0
  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/{desktop-bag-carousel.tsx → dt-bag-carousel.tsx} +36 -36
  17. package/components/commerce/checkout-panel/dt-checkout-panel.tsx +85 -0
  18. package/components/commerce/checkout-panel/index.tsx +129 -126
  19. package/components/commerce/checkout-panel/links-row.tsx +21 -0
  20. package/components/commerce/checkout-panel/mb-checkout-panel.tsx +55 -0
  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/{_to_deprecate_checkout-widget → checkout-widget}/const.ts +13 -13
  24. package/components/commerce/{_to_deprecate_checkout-widget/index.tsx_ → checkout-widget/index.tsx} +192 -188
  25. package/components/commerce/{_to_deprecate_checkout-widget → checkout-widget}/obs-string-set.ts +48 -48
  26. package/components/commerce/{_to_deprecate_checkout-widget → 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 -88
  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 +107 -101
  34. package/components/commerce/mobile-menu-toggle-button.tsx +35 -35
  35. package/components/commerce/mobile-nav-menu-ai.tsx +51 -47
  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 +51 -50
  45. package/components/header/index.tsx +50 -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 -25
  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 +50 -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
  179. package/components/commerce/checkout-panel/cart-accordian.tsx +0 -66
  180. package/components/commerce/checkout-panel/checkout-panel-props.ts +0 -10
  181. package/components/commerce/checkout-panel/desktop-cp.tsx +0 -83
  182. package/components/commerce/checkout-panel/mobile-cp.tsx +0 -67
  183. package/components/commerce/checkout-panel/policy-links.tsx +0 -29
@@ -1,13 +1,13 @@
1
- import type { SnapPointsConfig } from './store'
2
-
3
- export default {
4
- mb: {
5
- micro: '62px',
6
- full: '550px'
7
- },
8
-
9
- dt: {
10
- micro: '74px',
11
- full: '575px'
12
- }
13
- } satisfies SnapPointsConfig
1
+ import type { SnapPointsConfig } from './store'
2
+
3
+ export default {
4
+ mb: {
5
+ micro: '62px',
6
+ full: '550px'
7
+ },
8
+
9
+ dt: {
10
+ micro: '74px',
11
+ full: '575px'
12
+ }
13
+ } satisfies SnapPointsConfig
@@ -1,123 +1,126 @@
1
- 'use client'
2
- import React, {
3
- createContext,
4
- useContext,
5
- useRef,
6
- type PropsWithChildren,
7
- useEffect,
8
- useLayoutEffect
9
- } from 'react'
10
- import { enableStaticRendering } from 'mobx-react-lite'
11
- import { usePathname } from 'next/navigation'
12
- import { useDebounceCallback } from 'usehooks-ts'
13
-
14
-
15
- import { preset as twConfig } from '@hanzo/ui/tailwind'
16
- import { useCommerce } from '@hanzo/commerce'
17
-
18
- import type { CommerceDrawer, SelectAndBuy } from './store'
19
- import { CommerceUIStore } from './store'
20
- import conf from './conf'
21
-
22
- const LOG = false ////////////////////
23
- const log = (s: string) => {
24
- if (LOG) {
25
- console.log('CMMC UI CONTEXT ' + s)
26
- }
27
- }
28
-
29
- // https://dev.to/ivandotv/mobx-server-side-rendering-with-next-js-4m18
30
- enableStaticRendering(typeof window === "undefined")
31
-
32
- const CommerceUIContext = createContext<CommerceUIStore | undefined>(undefined)
33
-
34
- const useCommerceDrawer = (): CommerceDrawer => {
35
- return useContext(CommerceUIContext) as CommerceDrawer
36
- }
37
-
38
- const useSelectAndBuy = (): SelectAndBuy => {
39
- return useContext(CommerceUIContext) as SelectAndBuy
40
- }
41
-
42
- const CommerceUIProvider: React.FC<PropsWithChildren> = ({
43
- children,
44
- }) => {
45
-
46
- const cmmc = useCommerce()
47
- const pathname = usePathname()
48
- const storeRef = useRef<CommerceUIStore>(new CommerceUIStore(cmmc, conf))
49
- const prevPathRef = useRef<string>('initial')
50
-
51
- const onResize = () => {
52
- const width = window.innerWidth
53
- let desktopMin = 0
54
- if (twConfig.theme?.screens) {
55
- // expected form: { md: '768px' }
56
- if ('md' in twConfig.theme?.screens && typeof twConfig.theme?.screens.md === 'string') {
57
- desktopMin = parseInt(twConfig.theme?.screens.md)
58
- }
59
- if (width < desktopMin) {
60
- if (!storeRef.current.isMobile) {
61
- storeRef.current.setMobile(true)
62
- }
63
- }
64
- else if (storeRef.current.isMobile) {
65
- storeRef.current.setMobile(false)
66
- }
67
- }
68
- storeRef.current.setViewportHeight(window.innerHeight)
69
- }
70
-
71
- const onResize_debounced = useDebounceCallback(onResize, 500)
72
-
73
- useLayoutEffect(() => {
74
- storeRef.current.initialize()
75
- onResize()
76
- window.addEventListener('resize', onResize_debounced);
77
-
78
- return () => {
79
- window.removeEventListener('resize', onResize_debounced)
80
- storeRef.current.dispose()
81
- }
82
- }, [])
83
-
84
- useEffect(() => {
85
- const checkingOut = (pathname === '/checkout')
86
-
87
- /////////////////////////////////////
88
- log("useEffect: pathname: " + pathname)
89
- log("useEffect: prev pathname: " + prevPathRef.current)
90
-
91
- if (storeRef.current.checkingOut === undefined || storeRef.current._checkingOut!== checkingOut) {
92
- log("useEffect: setting checkingOut to: " + checkingOut) /////////////////////////////////////
93
- storeRef.current.setCheckingOut(checkingOut)
94
- }
95
- if ( prevPathRef.current === 'initial') {
96
- prevPathRef.current = pathname
97
- // no need to reset
98
- }
99
- else if (
100
- !checkingOut
101
- &&
102
- prevPathRef.current !== pathname
103
- ) {
104
- storeRef.current.newRoute()
105
- prevPathRef.current = pathname
106
- log("ROUTE CHANGE: " + pathname + ": " + storeRef.current._routeChangedTime)
107
- }
108
- }, [pathname])
109
-
110
-
111
- return (
112
- <CommerceUIContext.Provider value={storeRef.current}>
113
- {children}
114
- </CommerceUIContext.Provider>
115
- )
116
- }
117
-
118
- export {
119
- useCommerceDrawer,
120
- useSelectAndBuy,
121
- CommerceUIProvider
122
- }
123
-
1
+ 'use client'
2
+ import React, {
3
+ createContext,
4
+ useContext,
5
+ useRef,
6
+ type PropsWithChildren,
7
+ useEffect,
8
+ useLayoutEffect
9
+ } from 'react'
10
+ import { enableStaticRendering } from 'mobx-react-lite'
11
+ import { usePathname } from 'next/navigation'
12
+ import { useDebounceCallback } from 'usehooks-ts'
13
+
14
+
15
+ import { preset as twConfig } from '@hanzo/ui/tailwind'
16
+ import { useCommerce } from '@hanzo/commerce'
17
+
18
+ import type { CommerceDrawer, SelectAndBuy, RecentActivity } from './store'
19
+ import { CommerceUIStore } from './store'
20
+ import conf from './conf'
21
+
22
+ const LOG = false ////////////////////
23
+ const log = (s: string) => {
24
+ if (LOG) {
25
+ console.log('CMMC UI CONTEXT ' + s)
26
+ }
27
+ }
28
+
29
+ // https://dev.to/ivandotv/mobx-server-side-rendering-with-next-js-4m18
30
+ enableStaticRendering(typeof window === "undefined")
31
+
32
+ const CommerceUIContext = createContext<CommerceUIStore | undefined>(undefined)
33
+
34
+ const useCommerceDrawer = (): CommerceDrawer => {
35
+ return useContext(CommerceUIContext) as CommerceDrawer
36
+ }
37
+
38
+ const useSelectAndBuy = (): SelectAndBuy => {
39
+ return useContext(CommerceUIContext) as SelectAndBuy
40
+ }
41
+
42
+ const useRecentActivity = (): RecentActivity => {
43
+ return useContext(CommerceUIContext) as RecentActivity
44
+ }
45
+
46
+ const CommerceUIProvider: React.FC<PropsWithChildren> = ({
47
+ children,
48
+ }) => {
49
+
50
+ const cmmc = useCommerce()
51
+ const pathname = usePathname()
52
+ const storeRef = useRef<CommerceUIStore>(new CommerceUIStore(cmmc, conf))
53
+ const prevPathRef = useRef<string>('initial')
54
+
55
+ const onResize = () => {
56
+ const width = window.innerWidth
57
+ let desktopMin = 0
58
+ if (twConfig.theme?.screens) {
59
+ // expected form: { md: '768px' }
60
+ if ('md' in twConfig.theme?.screens && typeof twConfig.theme?.screens.md === 'string') {
61
+ desktopMin = parseInt(twConfig.theme?.screens.md)
62
+ }
63
+ if (width < desktopMin) {
64
+ if (!storeRef.current.isMobile) {
65
+ storeRef.current.setMobile(true)
66
+ }
67
+ }
68
+ else if (storeRef.current.isMobile) {
69
+ storeRef.current.setMobile(false)
70
+ }
71
+ }
72
+ storeRef.current.setViewportHeight(window.innerHeight)
73
+ }
74
+
75
+ const onResize_debounced = useDebounceCallback(onResize, 500)
76
+
77
+ useLayoutEffect(() => {
78
+ storeRef.current.initialize()
79
+ onResize()
80
+ window.addEventListener('resize', onResize_debounced);
81
+ return () => {
82
+ window.removeEventListener('resize', onResize_debounced)
83
+ storeRef.current.dispose()
84
+ }
85
+ }, [])
86
+
87
+ useEffect(() => {
88
+ const checkingOut = (pathname === '/checkout')
89
+
90
+ /////////////////////////////////////
91
+ log("useEffect: pathname: " + pathname)
92
+ log("useEffect: prev pathname: " + prevPathRef.current)
93
+
94
+ if (storeRef.current.checkingOut === undefined || storeRef.current._checkingOut!== checkingOut) {
95
+ log("useEffect: setting checkingOut to: " + checkingOut) /////////////////////////////////////
96
+ storeRef.current.setCheckingOut(checkingOut)
97
+ }
98
+ if ( prevPathRef.current === 'initial') {
99
+ prevPathRef.current = pathname
100
+ // no need to reset
101
+ }
102
+ else if (
103
+ !checkingOut
104
+ &&
105
+ prevPathRef.current !== pathname
106
+ ) {
107
+ storeRef.current.reset()
108
+ prevPathRef.current = pathname
109
+ }
110
+ }, [pathname])
111
+
112
+
113
+ return (
114
+ <CommerceUIContext.Provider value={storeRef.current}>
115
+ {children}
116
+ </CommerceUIContext.Provider>
117
+ )
118
+ }
119
+
120
+ export {
121
+ useCommerceDrawer,
122
+ useSelectAndBuy,
123
+ useRecentActivity,
124
+ CommerceUIProvider
125
+ }
126
+