@luxfi/core 5.2.7 → 5.2.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. package/commerce/ui/conf.ts +13 -13
  2. package/commerce/ui/context.tsx +126 -102
  3. package/commerce/ui/store.ts +304 -276
  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 -0
  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 -66
  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 -116
  30. package/components/commerce/drawer/micro.tsx +144 -144
  31. package/components/commerce/drawer/shell.tsx +85 -83
  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 +42 -44
  36. package/components/commerce/mobile-nav-menu-item.tsx +49 -49
  37. package/components/commerce/mobile-nav-menu.tsx +68 -68
  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 +49 -49
  45. package/components/header/index.tsx +52 -52
  46. package/components/header/mobile.tsx +163 -166
  47. package/components/header/theme-toggle.tsx +26 -26
  48. package/components/icons/avatar.tsx +11 -11
  49. package/components/icons/bag-icon.tsx +10 -10
  50. package/components/icons/github.tsx +14 -14
  51. package/components/icons/index.tsx +43 -43
  52. package/components/icons/left-arrow.tsx +11 -11
  53. package/components/icons/lux-logo.tsx +10 -10
  54. package/components/icons/right-arrow.tsx +10 -10
  55. package/components/icons/search.tsx +12 -12
  56. package/components/icons/secure-delivery.tsx +13 -13
  57. package/components/icons/social-icon.tsx +35 -35
  58. package/components/icons/social-svg.css +3 -3
  59. package/components/icons/warpcast.tsx +58 -58
  60. package/components/icons/youtube-logo.tsx +59 -59
  61. package/components/index.ts +27 -25
  62. package/components/logo.tsx +89 -81
  63. package/components/main.tsx +27 -27
  64. package/components/mini-chart/index.tsx +7 -7
  65. package/components/mini-chart/mini-chart-props.ts +43 -43
  66. package/components/mini-chart/mini-chart.tsx +85 -85
  67. package/components/mini-chart/wrapper.tsx +23 -23
  68. package/components/not-found/index.tsx +28 -28
  69. package/components/not-found/not-found-content.mdx +5 -5
  70. package/components/scripts.tsx +24 -24
  71. package/components/tooltip.tsx +31 -0
  72. package/environment.d.ts +5 -5
  73. package/next/analytics/fpixel.ts +15 -15
  74. package/next/analytics/google-analytics.ts +13 -13
  75. package/next/analytics/index.ts +3 -3
  76. package/next/analytics/pixel-analytics.tsx +54 -54
  77. package/next/font/get-app-router-font-classes.ts +12 -12
  78. package/next/font/load-and-return-lux-next-fonts-on-import.ts +68 -68
  79. package/next/font/next-font-desc.ts +27 -27
  80. package/next/font/pages-router-font-vars.tsx +18 -18
  81. package/next/head-metadata/from-next/metadata-types.ts +158 -158
  82. package/next/head-metadata/from-next/opengraph-types.ts +267 -267
  83. package/next/head-metadata/from-next/twitter-types.ts +92 -92
  84. package/next/head-metadata/index.tsx +208 -208
  85. package/next/middleware/determine-device-mw.ts +16 -16
  86. package/package.json +79 -78
  87. package/root-layout/WHY_THIS_IS_SEPARATE.txt +1 -1
  88. package/root-layout/index.tsx +112 -112
  89. package/server-actions/firebase-app.ts +14 -14
  90. package/server-actions/index.ts +5 -5
  91. package/server-actions/store-contact.ts +51 -51
  92. package/site-def/footer/community.tsx +67 -67
  93. package/site-def/footer/company.ts +37 -37
  94. package/site-def/footer/ecosystem.ts +37 -37
  95. package/site-def/footer/index.tsx +26 -26
  96. package/site-def/footer/legal.ts +28 -28
  97. package/site-def/footer/network.ts +45 -45
  98. package/site-def/footer/svg/warpcast-logo.svg +11 -11
  99. package/site-def/index.ts +2 -2
  100. package/site-def/main-nav.tsx +338 -338
  101. package/style/cart-animation.css +29 -29
  102. package/style/checkout-animation.css +23 -23
  103. package/style/drawer-handle-overrides.css +160 -160
  104. package/style/lux-colors.css +85 -85
  105. package/style/lux-global.css +30 -30
  106. package/tailwind/fontFamily.tailwind.lux.ts +18 -18
  107. package/tailwind/index.ts +2 -2
  108. package/tailwind/lux-tw-fonts.ts +39 -39
  109. package/tailwind/tailwind.config.lux-preset.ts +10 -10
  110. package/tsconfig.json +15 -15
  111. package/types/chatbot-config.ts +6 -6
  112. package/types/chatbot-suggested-question.ts +7 -7
  113. package/types/contact-info.ts +10 -10
  114. package/types/index.ts +4 -4
  115. package/types/site-def.ts +43 -43
  116. package/components/commerce/checkout-panel/close-button.tsx +0 -26
@@ -1,18 +1,18 @@
1
- import type { TwFontDesc } from '@hanzo/ui/tailwind'
2
-
3
- import luxTwFonts from './lux-tw-fonts'
4
-
5
- export const fontFamily = (ignoreTheme: any): {
6
- [key: string]: string[]
7
- } => {
8
-
9
- let result: any = {}
10
- luxTwFonts.forEach((font: TwFontDesc) => {
11
- result[font.twName] = font.fontFamily
12
- // eg: heading: ['var(--font-druk-text-wide)']
13
- })
14
-
15
- return result as {
16
- [key: string]: string[]
17
- }
18
- }
1
+ import type { TwFontDesc } from '@hanzo/ui/tailwind'
2
+
3
+ import luxTwFonts from './lux-tw-fonts'
4
+
5
+ export const fontFamily = (ignoreTheme: any): {
6
+ [key: string]: string[]
7
+ } => {
8
+
9
+ let result: any = {}
10
+ luxTwFonts.forEach((font: TwFontDesc) => {
11
+ result[font.twName] = font.fontFamily
12
+ // eg: heading: ['var(--font-druk-text-wide)']
13
+ })
14
+
15
+ return result as {
16
+ [key: string]: string[]
17
+ }
18
+ }
package/tailwind/index.ts CHANGED
@@ -1,2 +1,2 @@
1
-
2
- export {default as preset} from './tailwind.config.lux-preset'
1
+
2
+ export {default as preset} from './tailwind.config.lux-preset'
@@ -1,40 +1,40 @@
1
- import type { TwFontDesc } from '@hanzo/ui/tailwind'
2
-
3
-
4
- /* NOTE: /next/load-and-return....ts depends on this file! */
5
-
6
- export default [
7
- {
8
- fontFamily: ['var(--font-inter)'], // do not provide fall-backs due to next bug
9
- cssVar: '--font-inter',
10
- twName: 'sans'
11
- },
12
- {
13
- fontFamily: ['var(--font-druk-text-wide)'], // do not provide fall-backs due to next bug
14
- cssVar: '--font-druk-text-wide',
15
- twName: 'nav'
16
- },
17
- {
18
- fontFamily: ['var(--font-druk-wide)'], // do not provide fall-backs due to next bug
19
- cssVar: '--font-druk-wide',
20
- twName: 'heading'
21
- },
22
- {
23
- twName: 'serif',
24
- fontFamily: ['ui-serif', 'Georgia', 'Cambria', '"Times New Roman"', 'Times']
25
- },
26
- {
27
- twName: 'mono',
28
- fontFamily: [
29
- 'ui-monospace',
30
- 'SFMono-Regular',
31
- 'Menlo',
32
- 'Monaco',
33
- 'Consolas',
34
- '"Liberation Mono"',
35
- '"Courier New"',
36
- 'monospace',
37
- ]
38
- }
39
-
1
+ import type { TwFontDesc } from '@hanzo/ui/tailwind'
2
+
3
+
4
+ /* NOTE: /next/load-and-return....ts depends on this file! */
5
+
6
+ export default [
7
+ {
8
+ fontFamily: ['var(--font-inter)'], // do not provide fall-backs due to next bug
9
+ cssVar: '--font-inter',
10
+ twName: 'sans'
11
+ },
12
+ {
13
+ fontFamily: ['var(--font-druk-text-wide)'], // do not provide fall-backs due to next bug
14
+ cssVar: '--font-druk-text-wide',
15
+ twName: 'nav'
16
+ },
17
+ {
18
+ fontFamily: ['var(--font-druk-wide)'], // do not provide fall-backs due to next bug
19
+ cssVar: '--font-druk-wide',
20
+ twName: 'heading'
21
+ },
22
+ {
23
+ twName: 'serif',
24
+ fontFamily: ['ui-serif', 'Georgia', 'Cambria', '"Times New Roman"', 'Times']
25
+ },
26
+ {
27
+ twName: 'mono',
28
+ fontFamily: [
29
+ 'ui-monospace',
30
+ 'SFMono-Regular',
31
+ 'Menlo',
32
+ 'Monaco',
33
+ 'Consolas',
34
+ '"Liberation Mono"',
35
+ '"Courier New"',
36
+ 'monospace',
37
+ ]
38
+ }
39
+
40
40
  ] as TwFontDesc[]
@@ -1,10 +1,10 @@
1
- import type { Config } from 'tailwindcss'
2
- import { preset } from '@hanzo/ui/tailwind'
3
- import { fontFamily } from './fontFamily.tailwind.lux'
4
-
5
- export default {
6
- presets: [preset],
7
- content: [],
8
- theme: { fontFamily }
9
- } satisfies Config
10
-
1
+ import type { Config } from 'tailwindcss'
2
+ import { preset } from '@hanzo/ui/tailwind'
3
+ import { fontFamily } from './fontFamily.tailwind.lux'
4
+
5
+ export default {
6
+ presets: [preset],
7
+ content: [],
8
+ theme: { fontFamily }
9
+ } satisfies Config
10
+
package/tsconfig.json CHANGED
@@ -1,15 +1,15 @@
1
- {
2
- "extends": "../tsconfig.modules.base.json",
3
- "include": [
4
- "**/*.ts",
5
- "**/*.tsx",
6
- ],
7
- "exclude": [
8
- "node_modules",
9
- ],
10
- "compilerOptions": {
11
- "paths": {
12
- "react": [ "./node_modules/@types/react" ],
13
- }
14
- }
15
- }
1
+ {
2
+ "extends": "../tsconfig.modules.base.json",
3
+ "include": [
4
+ "**/*.ts",
5
+ "**/*.tsx",
6
+ ],
7
+ "exclude": [
8
+ "node_modules",
9
+ ],
10
+ "compilerOptions": {
11
+ "paths": {
12
+ "react": [ "./node_modules/@types/react" ],
13
+ }
14
+ }
15
+ }
@@ -1,7 +1,7 @@
1
- import type ChatbotSuggestQuestion from './chatbot-suggested-question'
2
-
3
- interface ChatbotConfig {
4
- suggestedQuestions?: ChatbotSuggestQuestion[]
5
- }
6
-
1
+ import type ChatbotSuggestQuestion from './chatbot-suggested-question'
2
+
3
+ interface ChatbotConfig {
4
+ suggestedQuestions?: ChatbotSuggestQuestion[]
5
+ }
6
+
7
7
  export { type ChatbotConfig as default }
@@ -1,7 +1,7 @@
1
- interface ChatbotSuggestedQuestion {
2
- heading: string
3
- message: string
4
- icon?: string
5
- }
6
-
7
- export { type ChatbotSuggestedQuestion as default }
1
+ interface ChatbotSuggestedQuestion {
2
+ heading: string
3
+ message: string
4
+ icon?: string
5
+ }
6
+
7
+ export { type ChatbotSuggestedQuestion as default }
@@ -1,11 +1,11 @@
1
- interface ContactInfo {
2
- email: string
3
- phone?: string
4
- }
5
-
6
- type ContactInfoFields = keyof ContactInfo
7
-
8
- export {
9
- type ContactInfo,
10
- type ContactInfoFields
1
+ interface ContactInfo {
2
+ email: string
3
+ phone?: string
4
+ }
5
+
6
+ type ContactInfoFields = keyof ContactInfo
7
+
8
+ export {
9
+ type ContactInfo,
10
+ type ContactInfoFields
11
11
  }
package/types/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type { ContactInfo, ContactInfoFields } from './contact-info'
2
- export type { default as SiteDef } from './site-def'
3
- export type { default as ChatbotSuggestedQuestion } from './chatbot-suggested-question'
4
- export type { default as ChatbotConfig } from './chatbot-config'
1
+ export type { ContactInfo, ContactInfoFields } from './contact-info'
2
+ export type { default as SiteDef } from './site-def'
3
+ export type { default as ChatbotSuggestedQuestion } from './chatbot-suggested-question'
4
+ export type { default as ChatbotConfig } from './chatbot-config'
package/types/site-def.ts CHANGED
@@ -1,43 +1,43 @@
1
- import React from 'react'
2
-
3
- import type { LinkDef } from '@hanzo/ui/types'
4
- import type { CommerceConfig } from '@hanzo/commerce/types'
5
-
6
- import type ChatbotConfig from './chatbot-config'
7
-
8
- interface SiteDef {
9
-
10
- /** url of this site. All nav links in the system will show it in 'current' state */
11
- currentAs?: string
12
-
13
- nav: {
14
- /** common elements (will auto-select currentAs if it's provide) */
15
- /** optional feature element. right-most after 'elements' (any min-w is ignored) */
16
- common: LinkDef[]
17
- featured?: LinkDef[]
18
- }
19
-
20
- /**
21
- * Array of columns, each of which itself is an array of links
22
- * (or "title defs" where href='' and variant='linkFG')
23
- * Common use case: To render a site-specific first column:
24
- * {
25
- * footer[myColumn, ...commonColumnsFromUi]
26
- * }
27
- * see: @hanzo/ui/siteDef/footer (default export)
28
- * or @hanzo/ui/siteDef/footer/common
29
- */
30
- footer: LinkDef[][]
31
-
32
- /**
33
- * optional override of default 'above copyright' horizantal links
34
- default (undefined / absent): links in side-def/footer/legal are rendered
35
- [] renders nothing above the copyright
36
- */
37
- aboveCopyright?: LinkDef[]
38
-
39
- commerce?: CommerceConfig
40
- chatbot?: ChatbotConfig
41
- }
42
-
43
- export { type SiteDef as default }
1
+ import React from 'react'
2
+
3
+ import type { LinkDef } from '@hanzo/ui/types'
4
+ import type { CommerceConfig } from '@hanzo/commerce/types'
5
+
6
+ import type ChatbotConfig from './chatbot-config'
7
+
8
+ interface SiteDef {
9
+
10
+ /** url of this site. All nav links in the system will show it in 'current' state */
11
+ currentAs?: string
12
+
13
+ nav: {
14
+ /** common elements (will auto-select currentAs if it's provide) */
15
+ /** optional feature element. right-most after 'elements' (any min-w is ignored) */
16
+ common: LinkDef[]
17
+ featured?: LinkDef[]
18
+ }
19
+
20
+ /**
21
+ * Array of columns, each of which itself is an array of links
22
+ * (or "title defs" where href='' and variant='linkFG')
23
+ * Common use case: To render a site-specific first column:
24
+ * {
25
+ * footer[myColumn, ...commonColumnsFromUi]
26
+ * }
27
+ * see: @hanzo/ui/siteDef/footer (default export)
28
+ * or @hanzo/ui/siteDef/footer/common
29
+ */
30
+ footer: LinkDef[][]
31
+
32
+ /**
33
+ * optional override of default 'above copyright' horizantal links
34
+ default (undefined / absent): links in side-def/footer/legal are rendered
35
+ [] renders nothing above the copyright
36
+ */
37
+ aboveCopyright?: LinkDef[]
38
+
39
+ commerce?: CommerceConfig
40
+ chatbot?: ChatbotConfig
41
+ }
42
+
43
+ export { type SiteDef as default }
@@ -1,26 +0,0 @@
1
- 'use client'
2
- import React from 'react'
3
-
4
- import { cn } from '@hanzo/ui/util'
5
-
6
- import Logo from '../../logo'
7
- import type { TShirtSize } from '@hanzo/ui/types'
8
-
9
- const CloseButton: React.FC<{
10
- close: () => void
11
- size?: TShirtSize
12
- className?: string
13
- }> = ({
14
- close,
15
- size,
16
- className=''
17
- }) => (
18
- <div
19
- onClick={close}
20
- className={cn('md:self-start', className)}
21
- >
22
- <Logo layout='text-only' href='/' size={size}/>
23
- </div>
24
- )
25
-
26
- export default CloseButton