@luxfi/ui 8.2.7 → 8.2.9
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-model-viewer.cjs +25 -421
- package/dist/3d-model-viewer.js +20 -416
- package/dist/accordion.cjs +3 -10
- package/dist/accordion.js +2 -10
- package/dist/advanced-navigation-bar.cjs +5 -401
- package/dist/advanced-navigation-bar.js +5 -401
- package/dist/ai-agents.cjs +45 -890
- package/dist/ai-agents.js +8 -834
- package/dist/ai-assistant.cjs +13 -740
- package/dist/ai-assistant.js +10 -738
- package/dist/ai-chat.cjs +24 -770
- package/dist/ai-chat.js +18 -765
- package/dist/ai-code.cjs +67 -923
- package/dist/ai-code.js +49 -905
- package/dist/ai-playground.cjs +25 -801
- package/dist/ai-playground.js +18 -795
- package/dist/ai-tools.cjs +22 -767
- package/dist/ai-tools.js +15 -761
- package/dist/ai-vision.cjs +41 -993
- package/dist/ai-vision.js +30 -983
- package/dist/ai-voice-settings.cjs +35 -1006
- package/dist/ai-voice-settings.js +32 -1004
- package/dist/ai-voice.cjs +51 -1024
- package/dist/ai-voice.js +9 -963
- package/dist/alert.cjs +11 -129
- package/dist/alert.js +8 -127
- package/dist/announcement.cjs +6 -402
- package/dist/announcement.js +6 -402
- package/dist/app-switcher-navigation-bar.cjs +5 -401
- package/dist/app-switcher-navigation-bar.js +5 -401
- package/dist/apple-cards-carousel.cjs +84 -480
- package/dist/apple-cards-carousel.js +19 -415
- package/dist/auth.cjs +10 -387
- package/dist/auth.js +7 -385
- package/dist/avatar.cjs +2 -9
- package/dist/avatar.js +2 -10
- package/dist/badge.cjs +8 -228
- package/dist/badge.js +5 -210
- package/dist/button.cjs +14 -67
- package/dist/button.js +12 -65
- package/dist/chrome.cjs +29 -493
- package/dist/chrome.js +9 -474
- package/dist/code-block.cjs +16 -664
- package/dist/code-block.js +13 -662
- package/dist/code-compare.cjs +28 -1302
- package/dist/code-compare.js +18 -1293
- package/dist/code-diff.cjs +21 -669
- package/dist/code-diff.js +17 -666
- package/dist/code-editor.cjs +13 -409
- package/dist/code-editor.js +12 -408
- package/dist/code-explorer.cjs +14 -456
- package/dist/code-explorer.js +13 -456
- package/dist/code-preview.cjs +31 -983
- package/dist/code-preview.js +23 -976
- package/dist/code-snippet.cjs +19 -667
- package/dist/code-snippet.js +14 -663
- package/dist/code-terminal.cjs +24 -485
- package/dist/code-terminal.js +19 -481
- package/dist/collapsible.cjs +13 -347
- package/dist/collapsible.js +11 -330
- package/dist/color-picker.cjs +8 -450
- package/dist/color-picker.js +7 -450
- package/dist/combobox.cjs +6 -402
- package/dist/combobox.js +6 -402
- package/dist/communication-navigation-bar.cjs +7 -403
- package/dist/communication-navigation-bar.js +5 -401
- package/dist/dashboard-navigation-bar.cjs +6 -402
- package/dist/dashboard-navigation-bar.js +5 -401
- package/dist/dialog-stack.cjs +5 -401
- package/dist/dialog-stack.js +5 -401
- package/dist/dialog.cjs +13 -70
- package/dist/dialog.js +13 -70
- package/dist/drawer.cjs +23 -99
- package/dist/drawer.js +19 -96
- package/dist/e-commerce-navigation-bar.cjs +7 -403
- package/dist/e-commerce-navigation-bar.js +5 -401
- package/dist/editor.cjs +9 -405
- package/dist/editor.js +6 -402
- package/dist/iam.cjs +2 -123
- package/dist/iam.js +1 -122
- package/dist/icon-button.cjs +2 -56
- package/dist/icon-button.js +1 -55
- package/dist/identity.cjs +28 -242
- package/dist/identity.js +20 -235
- package/dist/image-crop.cjs +10 -406
- package/dist/image-crop.js +7 -403
- package/dist/image.cjs +14 -83
- package/dist/image.js +13 -67
- package/dist/index.cjs +1868 -38770
- package/dist/index.js +174 -38320
- package/dist/input-group.cjs +3 -10
- package/dist/input-group.js +2 -10
- package/dist/item.cjs +2 -27
- package/dist/item.js +1 -22
- package/dist/kanban.cjs +25 -751
- package/dist/kanban.js +15 -742
- package/dist/limelight-nav.cjs +10 -452
- package/dist/limelight-nav.js +9 -452
- package/dist/link.cjs +11 -80
- package/dist/link.js +6 -60
- package/dist/lux.config.cjs +14 -32
- package/dist/lux.config.js +3 -26
- package/dist/menu.cjs +5 -13
- package/dist/menu.js +1 -9
- package/dist/message-dock.cjs +5 -401
- package/dist/message-dock.js +5 -401
- package/dist/mini-calendar.cjs +7 -403
- package/dist/mini-calendar.js +6 -402
- package/dist/music-player.cjs +30 -528
- package/dist/music-player.js +22 -520
- package/dist/next.cjs +8 -89
- package/dist/next.js +3 -86
- package/dist/popover.cjs +17 -74
- package/dist/popover.js +16 -73
- package/dist/progress-circle.cjs +3 -10
- package/dist/progress-circle.js +2 -10
- package/dist/provider.cjs +7 -176
- package/dist/provider.js +4 -174
- package/dist/select.cjs +36 -89
- package/dist/select.js +35 -88
- package/dist/sidebar.cjs +22 -493
- package/dist/sidebar.js +17 -489
- package/dist/site/commerce/ui/context.cjs +9 -214
- package/dist/site/commerce/ui/context.js +6 -215
- package/dist/site/components/analytics.cjs +2 -42
- package/dist/site/components/analytics.js +1 -37
- package/dist/site/components/auth/callback.cjs +2 -8
- package/dist/site/components/auth/callback.js +1 -7
- package/dist/site/components/auth/login-panel.cjs +15 -74
- package/dist/site/components/auth/login-panel.js +12 -73
- package/dist/site/components/auth/login.cjs +2 -6
- package/dist/site/components/auth/login.js +1 -5
- package/dist/site/components/auth/widget.cjs +2 -6
- package/dist/site/components/auth/widget.js +1 -5
- package/dist/site/components/commerce/bag-button.cjs +2 -3
- package/dist/site/components/commerce/bag-button.js +2 -3
- package/dist/site/components/commerce/buy-button.cjs +2 -11
- package/dist/site/components/commerce/buy-button.js +1 -10
- package/dist/site/components/commerce/checkout-button.cjs +2 -3
- package/dist/site/components/commerce/checkout-button.js +2 -3
- package/dist/site/components/commerce/checkout-panel/desktop-cp.cjs +15 -173
- package/dist/site/components/commerce/checkout-panel/desktop-cp.js +14 -174
- package/dist/site/components/commerce/checkout-panel/index.cjs +9 -400
- package/dist/site/components/commerce/checkout-panel/index.js +10 -403
- package/dist/site/components/commerce/checkout-panel/mobile-cp.cjs +15 -236
- package/dist/site/components/commerce/checkout-panel/mobile-cp.js +13 -237
- package/dist/site/components/commerce/desktop-bag-popup.cjs +7 -8
- package/dist/site/components/commerce/desktop-bag-popup.js +3 -8
- package/dist/site/components/commerce/drawer/index.cjs +15 -289
- package/dist/site/components/commerce/drawer/index.js +10 -290
- package/dist/site/components/commerce/drawer/micro.cjs +8 -115
- package/dist/site/components/commerce/drawer/micro.js +4 -115
- package/dist/site/components/commerce/drawer/shell.cjs +2 -10
- package/dist/site/components/commerce/drawer/shell.js +2 -10
- package/dist/site/components/contact-dialog/index.cjs +6 -69
- package/dist/site/components/contact-dialog/index.js +7 -71
- package/dist/site/components/drawer-margin.cjs +2 -10
- package/dist/site/components/drawer-margin.js +2 -10
- package/dist/site/components/footer.cjs +11 -81
- package/dist/site/components/footer.js +8 -80
- package/dist/site/components/header/desktop.cjs +18 -374
- package/dist/site/components/header/desktop.js +12 -355
- package/dist/site/components/header/index.cjs +9 -674
- package/dist/site/components/header/index.js +8 -657
- package/dist/site/components/header/mobile-bag-drawer.cjs +6 -71
- package/dist/site/components/header/mobile-bag-drawer.js +5 -74
- package/dist/site/components/header/mobile-nav-menu-ai.cjs +2 -31
- package/dist/site/components/header/mobile-nav-menu-ai.js +1 -26
- package/dist/site/components/header/mobile-nav-menu-item.cjs +6 -60
- package/dist/site/components/header/mobile-nav-menu-item.js +6 -61
- package/dist/site/components/header/mobile-nav-menu.cjs +7 -110
- package/dist/site/components/header/mobile-nav-menu.js +7 -112
- package/dist/site/components/header/mobile.cjs +25 -330
- package/dist/site/components/header/mobile.js +20 -330
- package/dist/site/components/icons/index.cjs +34 -35
- package/dist/site/components/icons/index.js +5 -33
- package/dist/site/components/index.cjs +118 -1961
- package/dist/site/components/index.js +23 -1951
- package/dist/site/components/mini-chart/index.cjs +7 -90
- package/dist/site/components/mini-chart/index.js +1 -92
- package/dist/site/components/mini-chart/wrapper.cjs +7 -76
- package/dist/site/components/mini-chart/wrapper.js +4 -77
- package/dist/site/components/not-found/index.cjs +9 -819
- package/dist/site/components/not-found/index.js +8 -802
- package/dist/site/components/security/index.cjs +9 -819
- package/dist/site/components/security/index.js +8 -802
- package/dist/site/next/analytics/index.cjs +16 -49
- package/dist/site/next/analytics/index.js +3 -49
- package/dist/site/next/analytics/pixel-analytics.cjs +23 -8
- package/dist/site/next/analytics/pixel-analytics.js +4 -8
- package/dist/site/next/index.cjs +13 -140
- package/dist/site/next/index.js +2 -140
- package/dist/site/root-layout/index.cjs +12 -1435
- package/dist/site/root-layout/index.css +0 -133
- package/dist/site/root-layout/index.js +12 -1416
- package/dist/site/site-def/footer/community.cjs +11 -27
- package/dist/site/site-def/footer/community.js +2 -18
- package/dist/site/site-def/footer/company.d.ts +3 -3
- package/dist/site/site-def/footer/index.cjs +38 -218
- package/dist/site/site-def/footer/index.js +14 -215
- package/dist/site/site-def/index.cjs +28 -620
- package/dist/site/site-def/index.js +3 -624
- package/dist/table.cjs +20 -338
- package/dist/table.js +19 -338
- package/dist/tabs.cjs +3 -10
- package/dist/tabs.js +1 -9
- package/dist/tag.cjs +9 -270
- package/dist/tag.js +6 -268
- package/dist/tags.cjs +6 -314
- package/dist/tags.js +5 -314
- package/dist/textarea.cjs +4 -50
- package/dist/textarea.js +3 -49
- package/dist/tooltip.cjs +15 -34
- package/dist/tooltip.js +13 -33
- package/dist/vite.cjs +3 -82
- package/dist/vite.js +1 -80
- package/package.json +1 -1
- package/dist/index.css +0 -132
- package/dist/site/components/auth/login-panel.css +0 -4
- package/dist/site/components/commerce/bag-button.css +0 -4
- package/dist/site/components/commerce/checkout-button.css +0 -4
- package/dist/site/components/commerce/checkout-panel/desktop-cp.css +0 -132
- package/dist/site/components/commerce/checkout-panel/index.css +0 -132
- package/dist/site/components/commerce/checkout-panel/mobile-cp.css +0 -132
- package/dist/site/components/commerce/desktop-bag-popup.css +0 -4
- package/dist/site/components/commerce/drawer/index.css +0 -132
- package/dist/site/components/commerce/drawer/micro.css +0 -4
- package/dist/site/components/header/desktop.css +0 -4
- package/dist/site/components/header/index.css +0 -132
- package/dist/site/components/header/mobile-bag-drawer.css +0 -4
- package/dist/site/components/header/mobile-nav-menu-ai.css +0 -132
- package/dist/site/components/header/mobile-nav-menu-item.css +0 -132
- package/dist/site/components/header/mobile-nav-menu.css +0 -132
- package/dist/site/components/header/mobile.css +0 -132
- package/dist/site/components/icons/index.css +0 -4
- package/dist/site/components/index.css +0 -132
- package/dist/site/components/not-found/index.css +0 -132
- package/dist/site/components/security/index.css +0 -132
- package/dist/site/site-def/footer/community.css +0 -4
- package/dist/site/site-def/footer/index.css +0 -4
- package/dist/site/site-def/index.css +0 -4
|
@@ -4,78 +4,13 @@
|
|
|
4
4
|
var primitives = require('@hanzo/ui/primitives');
|
|
5
5
|
var ui = require('@hanzo/ui');
|
|
6
6
|
var commerce = require('@hanzo/commerce');
|
|
7
|
-
var
|
|
8
|
-
var mobx = require('mobx');
|
|
9
|
-
var mobxReactLite = require('mobx-react-lite');
|
|
7
|
+
var BagButton = require('../commerce/bag-button.cjs');
|
|
10
8
|
var jsxRuntime = require('react/jsx-runtime');
|
|
11
9
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
animateOnHover = true,
|
|
17
|
-
animateOnQuantityChange = true,
|
|
18
|
-
size = "default",
|
|
19
|
-
className = "",
|
|
20
|
-
iconClx = "",
|
|
21
|
-
onClick
|
|
22
|
-
}) => {
|
|
23
|
-
const c = commerce.useCommerce();
|
|
24
|
-
const wiggleRef = react.useRef(mobx.observable.box("none"));
|
|
25
|
-
react.useEffect(() => (
|
|
26
|
-
// return IReactionDisposer
|
|
27
|
-
animateOnQuantityChange && c ? mobx.reaction(
|
|
28
|
-
() => c.cartQuantity,
|
|
29
|
-
(curr, prev) => {
|
|
30
|
-
if (curr > prev) {
|
|
31
|
-
mobx.runInAction(() => {
|
|
32
|
-
wiggleRef.current.set("more");
|
|
33
|
-
});
|
|
34
|
-
} else {
|
|
35
|
-
mobx.runInAction(() => {
|
|
36
|
-
wiggleRef.current.set("less");
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
setTimeout(() => {
|
|
40
|
-
mobx.runInAction(() => {
|
|
41
|
-
wiggleRef.current.set("none");
|
|
42
|
-
});
|
|
43
|
-
}, 800);
|
|
44
|
-
}
|
|
45
|
-
) : void 0
|
|
46
|
-
), []);
|
|
47
|
-
if (!c || !showIfEmpty && c.cartEmpty) {
|
|
48
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", {});
|
|
49
|
-
}
|
|
50
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
51
|
-
ui.Box,
|
|
52
|
-
{
|
|
53
|
-
"aria-label": "Bag",
|
|
54
|
-
role: "button",
|
|
55
|
-
onClick,
|
|
56
|
-
className: ui.cn(
|
|
57
|
-
primitives.buttonVariants({ variant: "ghost", size }),
|
|
58
|
-
"rounded-md",
|
|
59
|
-
// Overides the bg change on hover --not a "hover effect"
|
|
60
|
-
"relative group p-0 aspect-square hover:bg-background",
|
|
61
|
-
wiggleRef.current.get() === "more" ? "item-added-to-cart-animation" : wiggleRef.current.get() === "less" ? "item-removed-from-cart-animation" : "",
|
|
62
|
-
className
|
|
63
|
-
),
|
|
64
|
-
children: [
|
|
65
|
-
!c.cartEmpty && /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: "z-above-content flex flex-col justify-center items-center absolute left-0 right-0 top-0 bottom-0 leading-none font-sans font-bold text-primary-fg text-xs ", children: [
|
|
66
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-[3px] w-full" }),
|
|
67
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { children: c.cartQuantity })
|
|
68
|
-
] }),
|
|
69
|
-
/* @__PURE__ */ jsxRuntime.jsx(bag_icon_default, { width: "24", height: "28", className: ui.cn(
|
|
70
|
-
"relative -top-[3px] fill-primary",
|
|
71
|
-
iconClx,
|
|
72
|
-
animateOnHover ? "group-hover:fill-primary-hover group-hover:scale-105 transition-scale transition-duration-300" : ""
|
|
73
|
-
), "aria-hidden": "true" })
|
|
74
|
-
]
|
|
75
|
-
}
|
|
76
|
-
);
|
|
77
|
-
});
|
|
78
|
-
var bag_button_default = BagButton;
|
|
10
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
|
|
12
|
+
var BagButton__default = /*#__PURE__*/_interopDefault(BagButton);
|
|
13
|
+
|
|
79
14
|
var MobileBagDrawer = ({
|
|
80
15
|
open,
|
|
81
16
|
setOpen,
|
|
@@ -95,7 +30,7 @@ var MobileBagDrawer = ({
|
|
|
95
30
|
children: [
|
|
96
31
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-row items-center flex-none justify-center ", children: [
|
|
97
32
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
98
|
-
|
|
33
|
+
BagButton__default.default,
|
|
99
34
|
{
|
|
100
35
|
animateOnHover: false,
|
|
101
36
|
showIfEmpty: true,
|
|
@@ -1,79 +1,10 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import { observable, reaction, runInAction } from 'mobx';
|
|
7
|
-
import { observer } from 'mobx-react-lite';
|
|
2
|
+
import { Drawer, DrawerContent } from '@hanzo/ui/primitives';
|
|
3
|
+
import { cn } from '@hanzo/ui';
|
|
4
|
+
import { CartPanel } from '@hanzo/commerce';
|
|
5
|
+
import BagButton from '../commerce/bag-button.js';
|
|
8
6
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
9
7
|
|
|
10
|
-
var BagIcon = (props) => /* @__PURE__ */ jsx("svg", { fill: "none", viewBox: "0 0 1019 1281", ...props, children: /* @__PURE__ */ jsx("path", { d: "m977.243 365.553h-175.407v-90.629c0-151.923-131.968-274.924-292.334-274.924-160.367 0-292.337 123.002-292.337 274.924v90.629h-175.4023c-23.3886 0-41.7627 17.051-41.7627 38.756v775.121c0 55.8 48.4456 100.76 108.582 100.76h801.84c60.138 0 108.578-44.96 108.578-100.76v-775.121c0-21.705-18.37-38.756-41.757-38.756zm-676.553-90.629c0-108.517 93.546-196.9408 208.812-196.9408 115.265 0 208.813 88.4218 208.813 196.9408v89.08h-417.625z", fill: "currentColor" }) });
|
|
11
|
-
var bag_icon_default = BagIcon;
|
|
12
|
-
var BagButton = observer(({
|
|
13
|
-
showIfEmpty = false,
|
|
14
|
-
animateOnHover = true,
|
|
15
|
-
animateOnQuantityChange = true,
|
|
16
|
-
size = "default",
|
|
17
|
-
className = "",
|
|
18
|
-
iconClx = "",
|
|
19
|
-
onClick
|
|
20
|
-
}) => {
|
|
21
|
-
const c = useCommerce();
|
|
22
|
-
const wiggleRef = useRef(observable.box("none"));
|
|
23
|
-
useEffect(() => (
|
|
24
|
-
// return IReactionDisposer
|
|
25
|
-
animateOnQuantityChange && c ? reaction(
|
|
26
|
-
() => c.cartQuantity,
|
|
27
|
-
(curr, prev) => {
|
|
28
|
-
if (curr > prev) {
|
|
29
|
-
runInAction(() => {
|
|
30
|
-
wiggleRef.current.set("more");
|
|
31
|
-
});
|
|
32
|
-
} else {
|
|
33
|
-
runInAction(() => {
|
|
34
|
-
wiggleRef.current.set("less");
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
setTimeout(() => {
|
|
38
|
-
runInAction(() => {
|
|
39
|
-
wiggleRef.current.set("none");
|
|
40
|
-
});
|
|
41
|
-
}, 800);
|
|
42
|
-
}
|
|
43
|
-
) : void 0
|
|
44
|
-
), []);
|
|
45
|
-
if (!c || !showIfEmpty && c.cartEmpty) {
|
|
46
|
-
return /* @__PURE__ */ jsx("div", {});
|
|
47
|
-
}
|
|
48
|
-
return /* @__PURE__ */ jsxs(
|
|
49
|
-
Box,
|
|
50
|
-
{
|
|
51
|
-
"aria-label": "Bag",
|
|
52
|
-
role: "button",
|
|
53
|
-
onClick,
|
|
54
|
-
className: cn(
|
|
55
|
-
buttonVariants({ variant: "ghost", size }),
|
|
56
|
-
"rounded-md",
|
|
57
|
-
// Overides the bg change on hover --not a "hover effect"
|
|
58
|
-
"relative group p-0 aspect-square hover:bg-background",
|
|
59
|
-
wiggleRef.current.get() === "more" ? "item-added-to-cart-animation" : wiggleRef.current.get() === "less" ? "item-removed-from-cart-animation" : "",
|
|
60
|
-
className
|
|
61
|
-
),
|
|
62
|
-
children: [
|
|
63
|
-
!c.cartEmpty && /* @__PURE__ */ jsxs(Box, { className: "z-above-content flex flex-col justify-center items-center absolute left-0 right-0 top-0 bottom-0 leading-none font-sans font-bold text-primary-fg text-xs ", children: [
|
|
64
|
-
/* @__PURE__ */ jsx("div", { className: "h-[3px] w-full" }),
|
|
65
|
-
/* @__PURE__ */ jsx("div", { children: c.cartQuantity })
|
|
66
|
-
] }),
|
|
67
|
-
/* @__PURE__ */ jsx(bag_icon_default, { width: "24", height: "28", className: cn(
|
|
68
|
-
"relative -top-[3px] fill-primary",
|
|
69
|
-
iconClx,
|
|
70
|
-
animateOnHover ? "group-hover:fill-primary-hover group-hover:scale-105 transition-scale transition-duration-300" : ""
|
|
71
|
-
), "aria-hidden": "true" })
|
|
72
|
-
]
|
|
73
|
-
}
|
|
74
|
-
);
|
|
75
|
-
});
|
|
76
|
-
var bag_button_default = BagButton;
|
|
77
8
|
var MobileBagDrawer = ({
|
|
78
9
|
open,
|
|
79
10
|
setOpen,
|
|
@@ -93,7 +24,7 @@ var MobileBagDrawer = ({
|
|
|
93
24
|
children: [
|
|
94
25
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-row items-center flex-none justify-center ", children: [
|
|
95
26
|
/* @__PURE__ */ jsx(
|
|
96
|
-
|
|
27
|
+
BagButton,
|
|
97
28
|
{
|
|
98
29
|
animateOnHover: false,
|
|
99
30
|
showIfEmpty: true,
|
|
@@ -5,44 +5,15 @@ var react = require('react');
|
|
|
5
5
|
var ui = require('@hanzo/ui');
|
|
6
6
|
var lucideReact = require('lucide-react');
|
|
7
7
|
var primitives = require('@hanzo/ui/primitives');
|
|
8
|
-
var
|
|
9
|
-
var logo = require('@luxfi/logo');
|
|
8
|
+
var index_cjs = require('../index.cjs');
|
|
10
9
|
var jsxRuntime = require('react/jsx-runtime');
|
|
11
|
-
require('embla-carousel-autoplay');
|
|
12
10
|
|
|
13
|
-
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
-
|
|
15
|
-
var Link__default = /*#__PURE__*/_interopDefault(Link);
|
|
16
|
-
|
|
17
|
-
var SIZE = {
|
|
18
|
-
xl: { mark: 40, word: 22, gap: "gap-4" },
|
|
19
|
-
lg: { mark: 40, word: 22, gap: "gap-4" },
|
|
20
|
-
md: { mark: 32, word: 18, gap: "gap-3" },
|
|
21
|
-
sm: { mark: 24, word: 13, gap: "gap-2" },
|
|
22
|
-
xs: { mark: 16, word: 9, gap: "gap-1.5" }
|
|
23
|
-
};
|
|
24
|
-
var Logo = ({
|
|
25
|
-
size = "md",
|
|
26
|
-
href,
|
|
27
|
-
// no default please!
|
|
28
|
-
outerClx = "",
|
|
29
|
-
variant = "full",
|
|
30
|
-
onClick
|
|
31
|
-
}) => {
|
|
32
|
-
const s = SIZE[size] ?? SIZE.md;
|
|
33
|
-
const clx = "flex flex-row items-center " + s.gap + " " + (href ? "hover:opacity-80 cursor-pointer " : "cursor-default ") + outerClx;
|
|
34
|
-
const art = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
35
|
-
variant !== "wordmark" && /* @__PURE__ */ jsxRuntime.jsx(logo.Logo, { variant: "white", size: s.mark }),
|
|
36
|
-
variant !== "mark" && /* @__PURE__ */ jsxRuntime.jsx(logo.Wordmark, { height: s.word })
|
|
37
|
-
] });
|
|
38
|
-
return href ? /* @__PURE__ */ jsxRuntime.jsx(Link__default.default, { href, style: ui.css(clx), onClick, children: art }) : /* @__PURE__ */ jsxRuntime.jsx(ui.Box, { tag: "span", className: clx, onClick, children: art });
|
|
39
|
-
};
|
|
40
11
|
var MobileNavMenuAI = ({ setMenuOpen }) => {
|
|
41
12
|
const [isOpen, setIsOpen] = react.useState(false);
|
|
42
13
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
43
14
|
/* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: "w-full text-2xl cursor-pointer", children: [
|
|
44
15
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
|
|
45
|
-
/* @__PURE__ */ jsxRuntime.jsx(Logo, { variant: "wordmark", size: "md", outerClx: "p-6 h-full" }),
|
|
16
|
+
/* @__PURE__ */ jsxRuntime.jsx(index_cjs.Logo, { variant: "wordmark", size: "md", outerClx: "p-6 h-full" }),
|
|
46
17
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Box, { tag: "span", className: ui.cn("grid", "block h-full aspect-square hover:bg-background sm:hover:bg-level-1 active:scale-75 text-foreground will-change-transform transition-transform transition-scale transition-duration-[1500] mt-6 mr-6 " + (!open ? "rotate-none" : "rotate-[135deg] scale-110")), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { width: 28, height: 28, style: ui.css("w-full h-full"), onClick: () => setMenuOpen(false) }) })
|
|
47
18
|
] }),
|
|
48
19
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Box, { className: "flex items-center gap-5 border-b border-[#3A3A3A] mt-4 rounded-full bg-muted-4 mx-6", children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: "text-muted-1 font-bold flex-1 flex justify-between min-h-12 items-center px-2", onClick: () => setIsOpen(true), children: [
|
|
@@ -3,34 +3,9 @@ import { useState } from 'react';
|
|
|
3
3
|
import { Box, cn, css } from '@hanzo/ui';
|
|
4
4
|
import { Plus, ArrowRight } from 'lucide-react';
|
|
5
5
|
import { Card, Button } from '@hanzo/ui/primitives';
|
|
6
|
-
import
|
|
7
|
-
import { Logo as Logo$1, Wordmark } from '@luxfi/logo';
|
|
6
|
+
import { Logo } from '../index.js';
|
|
8
7
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
9
|
-
import 'embla-carousel-autoplay';
|
|
10
8
|
|
|
11
|
-
var SIZE = {
|
|
12
|
-
xl: { mark: 40, word: 22, gap: "gap-4" },
|
|
13
|
-
lg: { mark: 40, word: 22, gap: "gap-4" },
|
|
14
|
-
md: { mark: 32, word: 18, gap: "gap-3" },
|
|
15
|
-
sm: { mark: 24, word: 13, gap: "gap-2" },
|
|
16
|
-
xs: { mark: 16, word: 9, gap: "gap-1.5" }
|
|
17
|
-
};
|
|
18
|
-
var Logo = ({
|
|
19
|
-
size = "md",
|
|
20
|
-
href,
|
|
21
|
-
// no default please!
|
|
22
|
-
outerClx = "",
|
|
23
|
-
variant = "full",
|
|
24
|
-
onClick
|
|
25
|
-
}) => {
|
|
26
|
-
const s = SIZE[size] ?? SIZE.md;
|
|
27
|
-
const clx = "flex flex-row items-center " + s.gap + " " + (href ? "hover:opacity-80 cursor-pointer " : "cursor-default ") + outerClx;
|
|
28
|
-
const art = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
29
|
-
variant !== "wordmark" && /* @__PURE__ */ jsx(Logo$1, { variant: "white", size: s.mark }),
|
|
30
|
-
variant !== "mark" && /* @__PURE__ */ jsx(Wordmark, { height: s.word })
|
|
31
|
-
] });
|
|
32
|
-
return href ? /* @__PURE__ */ jsx(Link, { href, style: css(clx), onClick, children: art }) : /* @__PURE__ */ jsx(Box, { tag: "span", className: clx, onClick, children: art });
|
|
33
|
-
};
|
|
34
9
|
var MobileNavMenuAI = ({ setMenuOpen }) => {
|
|
35
10
|
const [isOpen, setIsOpen] = useState(false);
|
|
36
11
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -4,69 +4,15 @@
|
|
|
4
4
|
var react = require('react');
|
|
5
5
|
var ui = require('@hanzo/ui');
|
|
6
6
|
var Link = require('next/link');
|
|
7
|
+
var index_cjs = require('../icons/index.cjs');
|
|
8
|
+
var MobileNavMenuAI = require('./mobile-nav-menu-ai.cjs');
|
|
7
9
|
var jsxRuntime = require('react/jsx-runtime');
|
|
8
|
-
var lucideReact = require('lucide-react');
|
|
9
|
-
var primitives = require('@hanzo/ui/primitives');
|
|
10
|
-
var logo = require('@luxfi/logo');
|
|
11
|
-
require('embla-carousel-autoplay');
|
|
12
10
|
|
|
13
11
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
12
|
|
|
15
13
|
var Link__default = /*#__PURE__*/_interopDefault(Link);
|
|
14
|
+
var MobileNavMenuAI__default = /*#__PURE__*/_interopDefault(MobileNavMenuAI);
|
|
16
15
|
|
|
17
|
-
var LeftArrow = (props) => /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "10", height: "16", viewBox: "0 0 10 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M1.06975 7.44328C0.679224 7.83381 0.679224 8.46697 1.06975 8.8575L7.43371 15.2215C7.82423 15.612 8.4574 15.612 8.84792 15.2215C9.23845 14.8309 9.23845 14.1978 8.84792 13.8072L3.19107 8.15039L8.84792 2.49354C9.23845 2.10301 9.23845 1.46985 8.84792 1.07932C8.4574 0.688798 7.82423 0.688798 7.43371 1.07932L1.06975 7.44328ZM1.77686 9.15039H2.49037V7.15039H1.77686V9.15039Z", fill: "white" }) });
|
|
18
|
-
var left_arrow_default = LeftArrow;
|
|
19
|
-
var RightArrow = (props) => /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "9", height: "16", viewBox: "0 0 9 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M8.33797 7.58293C8.72849 7.97346 8.72849 8.60662 8.33797 8.99715L1.97401 15.3611C1.58348 15.7516 0.950316 15.7516 0.559792 15.3611C0.169267 14.9706 0.169267 14.3374 0.559792 13.9469L6.21665 8.29004L0.559792 2.63318C0.169267 2.24266 0.169267 1.6095 0.559792 1.21897C0.950316 0.828447 1.58348 0.828447 1.97401 1.21897L8.33797 7.58293ZM7.63086 9.29004H6.91734V7.29004H7.63086V9.29004Z", fill: "white" }) });
|
|
20
|
-
var right_arrow_default = RightArrow;
|
|
21
|
-
var SIZE = {
|
|
22
|
-
xl: { mark: 40, word: 22, gap: "gap-4" },
|
|
23
|
-
lg: { mark: 40, word: 22, gap: "gap-4" },
|
|
24
|
-
md: { mark: 32, word: 18, gap: "gap-3" },
|
|
25
|
-
sm: { mark: 24, word: 13, gap: "gap-2" },
|
|
26
|
-
xs: { mark: 16, word: 9, gap: "gap-1.5" }
|
|
27
|
-
};
|
|
28
|
-
var Logo = ({
|
|
29
|
-
size = "md",
|
|
30
|
-
href,
|
|
31
|
-
// no default please!
|
|
32
|
-
outerClx = "",
|
|
33
|
-
variant = "full",
|
|
34
|
-
onClick
|
|
35
|
-
}) => {
|
|
36
|
-
const s = SIZE[size] ?? SIZE.md;
|
|
37
|
-
const clx = "flex flex-row items-center " + s.gap + " " + (href ? "hover:opacity-80 cursor-pointer " : "cursor-default ") + outerClx;
|
|
38
|
-
const art = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
39
|
-
variant !== "wordmark" && /* @__PURE__ */ jsxRuntime.jsx(logo.Logo, { variant: "white", size: s.mark }),
|
|
40
|
-
variant !== "mark" && /* @__PURE__ */ jsxRuntime.jsx(logo.Wordmark, { height: s.word })
|
|
41
|
-
] });
|
|
42
|
-
return href ? /* @__PURE__ */ jsxRuntime.jsx(Link__default.default, { href, style: ui.css(clx), onClick, children: art }) : /* @__PURE__ */ jsxRuntime.jsx(ui.Box, { tag: "span", className: clx, onClick, children: art });
|
|
43
|
-
};
|
|
44
|
-
var MobileNavMenuAI = ({ setMenuOpen }) => {
|
|
45
|
-
const [isOpen, setIsOpen] = react.useState(false);
|
|
46
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
47
|
-
/* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: "w-full text-2xl cursor-pointer", children: [
|
|
48
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
|
|
49
|
-
/* @__PURE__ */ jsxRuntime.jsx(Logo, { variant: "wordmark", size: "md", outerClx: "p-6 h-full" }),
|
|
50
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Box, { tag: "span", className: ui.cn("grid", "block h-full aspect-square hover:bg-background sm:hover:bg-level-1 active:scale-75 text-foreground will-change-transform transition-transform transition-scale transition-duration-[1500] mt-6 mr-6 " + (!open ? "rotate-none" : "rotate-[135deg] scale-110")), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { width: 28, height: 28, style: ui.css("w-full h-full"), onClick: () => setMenuOpen(false) }) })
|
|
51
|
-
] }),
|
|
52
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Box, { className: "flex items-center gap-5 border-b border-[#3A3A3A] mt-4 rounded-full bg-muted-4 mx-6", children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: "text-muted-1 font-bold flex-1 flex justify-between min-h-12 items-center px-2", onClick: () => setIsOpen(true), children: [
|
|
53
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-base pl-2 font-light", children: "Ask AI a question" }),
|
|
54
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRight, {})
|
|
55
|
-
] }) })
|
|
56
|
-
] }),
|
|
57
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Box, { className: "fixed bottom-0 sm:bottom-16 right-0 w-full h-full sm:max-w-[400px] sm:max-h-[550px] sm:px-4 z-floating " + (isOpen ? "flex" : "hidden"), children: /* @__PURE__ */ jsxRuntime.jsxs(primitives.Card, { className: "flex flex-col h-full w-full", children: [
|
|
58
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex px-4 py-2 h-16 bg-level-0 items-center justify-between", children: [
|
|
59
|
-
/* @__PURE__ */ jsxRuntime.jsxs("h3", { className: "font-semibold font-heading", children: [
|
|
60
|
-
"LUX",
|
|
61
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "opacity-60", children: "AI" })
|
|
62
|
-
] }),
|
|
63
|
-
/* @__PURE__ */ jsxRuntime.jsx(primitives.Button, { onClick: () => setIsOpen(false), variant: "link", size: "icon", className: "w-fit sm:hidden", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "w-6 h-6 flex-none mr-1 rotate-45 transition-transform" }) })
|
|
64
|
-
] }),
|
|
65
|
-
/* @__PURE__ */ jsxRuntime.jsx("iframe", { src: "https://lux.chat/iframe", className: "h-full" })
|
|
66
|
-
] }) })
|
|
67
|
-
] });
|
|
68
|
-
};
|
|
69
|
-
var mobile_nav_menu_ai_default = MobileNavMenuAI;
|
|
70
16
|
var MobileNavMenuItem = ({
|
|
71
17
|
link,
|
|
72
18
|
setMenuOpen
|
|
@@ -76,12 +22,12 @@ var MobileNavMenuItem = ({
|
|
|
76
22
|
/* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: "w-full flex items-center px-5 py-3 gap-[27px] text-2xl cursor-pointer", onClick: () => setIsOpen(true), children: [
|
|
77
23
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "block w-[18px] h-[22px] items-center", children: link.icon }),
|
|
78
24
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1", children: link.title }),
|
|
79
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
25
|
+
/* @__PURE__ */ jsxRuntime.jsx(index_cjs.RightArrow, { className: "" })
|
|
80
26
|
] }),
|
|
81
27
|
/* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: `fixed left-0 top-0 w-screen h-screen ${isOpen ? "block" : "hidden"}`, style: { backgroundColor: "black" }, children: [
|
|
82
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
28
|
+
/* @__PURE__ */ jsxRuntime.jsx(MobileNavMenuAI__default.default, { setMenuOpen }),
|
|
83
29
|
/* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: "w-full flex items-center px-5 py-3 gap-[27px] text-2xl font-bold", onClick: () => setIsOpen(false), children: [
|
|
84
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
30
|
+
/* @__PURE__ */ jsxRuntime.jsx(index_cjs.LeftArrow, {}),
|
|
85
31
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Box, { tag: "span", className: "text-white", children: link.title })
|
|
86
32
|
] }),
|
|
87
33
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Box, { className: "flex flex-col", children: link.childMenu?.map((menu, index) => {
|
|
@@ -1,66 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { useState } from 'react';
|
|
3
|
-
import { Box
|
|
3
|
+
import { Box } from '@hanzo/ui';
|
|
4
4
|
import Link from 'next/link';
|
|
5
|
+
import { RightArrow, LeftArrow } from '../icons/index.js';
|
|
6
|
+
import MobileNavMenuAI from './mobile-nav-menu-ai.js';
|
|
5
7
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
6
|
-
import { Plus, ArrowRight } from 'lucide-react';
|
|
7
|
-
import { Card, Button } from '@hanzo/ui/primitives';
|
|
8
|
-
import { Logo as Logo$1, Wordmark } from '@luxfi/logo';
|
|
9
|
-
import 'embla-carousel-autoplay';
|
|
10
8
|
|
|
11
|
-
var LeftArrow = (props) => /* @__PURE__ */ jsx("svg", { width: "10", height: "16", viewBox: "0 0 10 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: /* @__PURE__ */ jsx("path", { d: "M1.06975 7.44328C0.679224 7.83381 0.679224 8.46697 1.06975 8.8575L7.43371 15.2215C7.82423 15.612 8.4574 15.612 8.84792 15.2215C9.23845 14.8309 9.23845 14.1978 8.84792 13.8072L3.19107 8.15039L8.84792 2.49354C9.23845 2.10301 9.23845 1.46985 8.84792 1.07932C8.4574 0.688798 7.82423 0.688798 7.43371 1.07932L1.06975 7.44328ZM1.77686 9.15039H2.49037V7.15039H1.77686V9.15039Z", fill: "white" }) });
|
|
12
|
-
var left_arrow_default = LeftArrow;
|
|
13
|
-
var RightArrow = (props) => /* @__PURE__ */ jsx("svg", { width: "9", height: "16", viewBox: "0 0 9 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: /* @__PURE__ */ jsx("path", { d: "M8.33797 7.58293C8.72849 7.97346 8.72849 8.60662 8.33797 8.99715L1.97401 15.3611C1.58348 15.7516 0.950316 15.7516 0.559792 15.3611C0.169267 14.9706 0.169267 14.3374 0.559792 13.9469L6.21665 8.29004L0.559792 2.63318C0.169267 2.24266 0.169267 1.6095 0.559792 1.21897C0.950316 0.828447 1.58348 0.828447 1.97401 1.21897L8.33797 7.58293ZM7.63086 9.29004H6.91734V7.29004H7.63086V9.29004Z", fill: "white" }) });
|
|
14
|
-
var right_arrow_default = RightArrow;
|
|
15
|
-
var SIZE = {
|
|
16
|
-
xl: { mark: 40, word: 22, gap: "gap-4" },
|
|
17
|
-
lg: { mark: 40, word: 22, gap: "gap-4" },
|
|
18
|
-
md: { mark: 32, word: 18, gap: "gap-3" },
|
|
19
|
-
sm: { mark: 24, word: 13, gap: "gap-2" },
|
|
20
|
-
xs: { mark: 16, word: 9, gap: "gap-1.5" }
|
|
21
|
-
};
|
|
22
|
-
var Logo = ({
|
|
23
|
-
size = "md",
|
|
24
|
-
href,
|
|
25
|
-
// no default please!
|
|
26
|
-
outerClx = "",
|
|
27
|
-
variant = "full",
|
|
28
|
-
onClick
|
|
29
|
-
}) => {
|
|
30
|
-
const s = SIZE[size] ?? SIZE.md;
|
|
31
|
-
const clx = "flex flex-row items-center " + s.gap + " " + (href ? "hover:opacity-80 cursor-pointer " : "cursor-default ") + outerClx;
|
|
32
|
-
const art = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
33
|
-
variant !== "wordmark" && /* @__PURE__ */ jsx(Logo$1, { variant: "white", size: s.mark }),
|
|
34
|
-
variant !== "mark" && /* @__PURE__ */ jsx(Wordmark, { height: s.word })
|
|
35
|
-
] });
|
|
36
|
-
return href ? /* @__PURE__ */ jsx(Link, { href, style: css(clx), onClick, children: art }) : /* @__PURE__ */ jsx(Box, { tag: "span", className: clx, onClick, children: art });
|
|
37
|
-
};
|
|
38
|
-
var MobileNavMenuAI = ({ setMenuOpen }) => {
|
|
39
|
-
const [isOpen, setIsOpen] = useState(false);
|
|
40
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
41
|
-
/* @__PURE__ */ jsxs(Box, { className: "w-full text-2xl cursor-pointer", children: [
|
|
42
|
-
/* @__PURE__ */ jsxs("div", { className: "flex justify-between", children: [
|
|
43
|
-
/* @__PURE__ */ jsx(Logo, { variant: "wordmark", size: "md", outerClx: "p-6 h-full" }),
|
|
44
|
-
/* @__PURE__ */ jsx(Box, { tag: "span", className: cn("grid", "block h-full aspect-square hover:bg-background sm:hover:bg-level-1 active:scale-75 text-foreground will-change-transform transition-transform transition-scale transition-duration-[1500] mt-6 mr-6 " + (!open ? "rotate-none" : "rotate-[135deg] scale-110")), children: /* @__PURE__ */ jsx(Plus, { width: 28, height: 28, style: css("w-full h-full"), onClick: () => setMenuOpen(false) }) })
|
|
45
|
-
] }),
|
|
46
|
-
/* @__PURE__ */ jsx(Box, { className: "flex items-center gap-5 border-b border-[#3A3A3A] mt-4 rounded-full bg-muted-4 mx-6", children: /* @__PURE__ */ jsxs(Box, { className: "text-muted-1 font-bold flex-1 flex justify-between min-h-12 items-center px-2", onClick: () => setIsOpen(true), children: [
|
|
47
|
-
/* @__PURE__ */ jsx("span", { className: "text-base pl-2 font-light", children: "Ask AI a question" }),
|
|
48
|
-
/* @__PURE__ */ jsx(ArrowRight, {})
|
|
49
|
-
] }) })
|
|
50
|
-
] }),
|
|
51
|
-
/* @__PURE__ */ jsx(Box, { className: "fixed bottom-0 sm:bottom-16 right-0 w-full h-full sm:max-w-[400px] sm:max-h-[550px] sm:px-4 z-floating " + (isOpen ? "flex" : "hidden"), children: /* @__PURE__ */ jsxs(Card, { className: "flex flex-col h-full w-full", children: [
|
|
52
|
-
/* @__PURE__ */ jsxs("div", { className: "flex px-4 py-2 h-16 bg-level-0 items-center justify-between", children: [
|
|
53
|
-
/* @__PURE__ */ jsxs("h3", { className: "font-semibold font-heading", children: [
|
|
54
|
-
"LUX",
|
|
55
|
-
/* @__PURE__ */ jsx("span", { className: "opacity-60", children: "AI" })
|
|
56
|
-
] }),
|
|
57
|
-
/* @__PURE__ */ jsx(Button, { onClick: () => setIsOpen(false), variant: "link", size: "icon", className: "w-fit sm:hidden", children: /* @__PURE__ */ jsx(Plus, { className: "w-6 h-6 flex-none mr-1 rotate-45 transition-transform" }) })
|
|
58
|
-
] }),
|
|
59
|
-
/* @__PURE__ */ jsx("iframe", { src: "https://lux.chat/iframe", className: "h-full" })
|
|
60
|
-
] }) })
|
|
61
|
-
] });
|
|
62
|
-
};
|
|
63
|
-
var mobile_nav_menu_ai_default = MobileNavMenuAI;
|
|
64
9
|
var MobileNavMenuItem = ({
|
|
65
10
|
link,
|
|
66
11
|
setMenuOpen
|
|
@@ -70,12 +15,12 @@ var MobileNavMenuItem = ({
|
|
|
70
15
|
/* @__PURE__ */ jsxs(Box, { className: "w-full flex items-center px-5 py-3 gap-[27px] text-2xl cursor-pointer", onClick: () => setIsOpen(true), children: [
|
|
71
16
|
/* @__PURE__ */ jsx("span", { className: "block w-[18px] h-[22px] items-center", children: link.icon }),
|
|
72
17
|
/* @__PURE__ */ jsx("span", { className: "flex-1", children: link.title }),
|
|
73
|
-
/* @__PURE__ */ jsx(
|
|
18
|
+
/* @__PURE__ */ jsx(RightArrow, { className: "" })
|
|
74
19
|
] }),
|
|
75
20
|
/* @__PURE__ */ jsxs(Box, { className: `fixed left-0 top-0 w-screen h-screen ${isOpen ? "block" : "hidden"}`, style: { backgroundColor: "black" }, children: [
|
|
76
|
-
/* @__PURE__ */ jsx(
|
|
21
|
+
/* @__PURE__ */ jsx(MobileNavMenuAI, { setMenuOpen }),
|
|
77
22
|
/* @__PURE__ */ jsxs(Box, { className: "w-full flex items-center px-5 py-3 gap-[27px] text-2xl font-bold", onClick: () => setIsOpen(false), children: [
|
|
78
|
-
/* @__PURE__ */ jsx(
|
|
23
|
+
/* @__PURE__ */ jsx(LeftArrow, {}),
|
|
79
24
|
/* @__PURE__ */ jsx(Box, { tag: "span", className: "text-white", children: link.title })
|
|
80
25
|
] }),
|
|
81
26
|
/* @__PURE__ */ jsx(Box, { className: "flex flex-col", children: link.childMenu?.map((menu, index) => {
|
|
@@ -2,122 +2,19 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var ui = require('@hanzo/ui');
|
|
5
|
-
var
|
|
6
|
-
var
|
|
5
|
+
var MobileNavMenuAI = require('./mobile-nav-menu-ai.cjs');
|
|
6
|
+
var AuthWidget = require('../auth/widget.cjs');
|
|
7
7
|
var primitives = require('@hanzo/ui/primitives');
|
|
8
|
+
var lucideReact = require('lucide-react');
|
|
8
9
|
var Link = require('next/link');
|
|
9
|
-
var logo = require('@luxfi/logo');
|
|
10
10
|
var jsxRuntime = require('react/jsx-runtime');
|
|
11
|
-
var react$1 = require('@hanzo/iam/react');
|
|
12
|
-
require('embla-carousel-autoplay');
|
|
13
11
|
|
|
14
12
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
13
|
|
|
14
|
+
var MobileNavMenuAI__default = /*#__PURE__*/_interopDefault(MobileNavMenuAI);
|
|
15
|
+
var AuthWidget__default = /*#__PURE__*/_interopDefault(AuthWidget);
|
|
16
16
|
var Link__default = /*#__PURE__*/_interopDefault(Link);
|
|
17
17
|
|
|
18
|
-
var SIZE = {
|
|
19
|
-
xl: { mark: 40, word: 22, gap: "gap-4" },
|
|
20
|
-
lg: { mark: 40, word: 22, gap: "gap-4" },
|
|
21
|
-
md: { mark: 32, word: 18, gap: "gap-3" },
|
|
22
|
-
sm: { mark: 24, word: 13, gap: "gap-2" },
|
|
23
|
-
xs: { mark: 16, word: 9, gap: "gap-1.5" }
|
|
24
|
-
};
|
|
25
|
-
var Logo = ({
|
|
26
|
-
size = "md",
|
|
27
|
-
href,
|
|
28
|
-
// no default please!
|
|
29
|
-
outerClx = "",
|
|
30
|
-
variant = "full",
|
|
31
|
-
onClick
|
|
32
|
-
}) => {
|
|
33
|
-
const s = SIZE[size] ?? SIZE.md;
|
|
34
|
-
const clx = "flex flex-row items-center " + s.gap + " " + (href ? "hover:opacity-80 cursor-pointer " : "cursor-default ") + outerClx;
|
|
35
|
-
const art = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
36
|
-
variant !== "wordmark" && /* @__PURE__ */ jsxRuntime.jsx(logo.Logo, { variant: "white", size: s.mark }),
|
|
37
|
-
variant !== "mark" && /* @__PURE__ */ jsxRuntime.jsx(logo.Wordmark, { height: s.word })
|
|
38
|
-
] });
|
|
39
|
-
return href ? /* @__PURE__ */ jsxRuntime.jsx(Link__default.default, { href, style: ui.css(clx), onClick, children: art }) : /* @__PURE__ */ jsxRuntime.jsx(ui.Box, { tag: "span", className: clx, onClick, children: art });
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
// src/site/components/auth/resume.ts
|
|
43
|
-
var KEY = "lux-auth-resume";
|
|
44
|
-
var remember = () => {
|
|
45
|
-
sessionStorage.setItem(KEY, window.location.pathname + window.location.search);
|
|
46
|
-
};
|
|
47
|
-
var Widget = ({
|
|
48
|
-
noLogin = false,
|
|
49
|
-
handleLogin,
|
|
50
|
-
className
|
|
51
|
-
}) => {
|
|
52
|
-
const { isAuthenticated, isLoading, login, logout } = react$1.useIam();
|
|
53
|
-
const identity = react$1.useIamIdentity();
|
|
54
|
-
if (isLoading) {
|
|
55
|
-
return null;
|
|
56
|
-
}
|
|
57
|
-
if (!isAuthenticated) {
|
|
58
|
-
return noLogin ? null : /* @__PURE__ */ jsxRuntime.jsx(
|
|
59
|
-
primitives.Button,
|
|
60
|
-
{
|
|
61
|
-
variant: "primary",
|
|
62
|
-
className: ui.cn("h-8 w-fit !min-w-0", className),
|
|
63
|
-
onClick: handleLogin ?? (() => {
|
|
64
|
-
remember();
|
|
65
|
-
void login();
|
|
66
|
-
}),
|
|
67
|
-
children: "Login"
|
|
68
|
-
}
|
|
69
|
-
);
|
|
70
|
-
}
|
|
71
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(primitives.Popover, { children: [
|
|
72
|
-
/* @__PURE__ */ jsxRuntime.jsx(primitives.PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
73
|
-
primitives.Button,
|
|
74
|
-
{
|
|
75
|
-
variant: "outline",
|
|
76
|
-
size: "icon",
|
|
77
|
-
className: ui.cn("rounded-full text-muted border-2 border-muted bg-level-1 hover:bg-level-2 hover:border-foreground hover:text-foreground uppercase w-8 h-8", className),
|
|
78
|
-
children: identity?.initials
|
|
79
|
-
}
|
|
80
|
-
) }),
|
|
81
|
-
/* @__PURE__ */ jsxRuntime.jsx(primitives.PopoverContent, { className: "bg-level-0", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-4", children: [
|
|
82
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2 truncate", children: [
|
|
83
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-medium leading-none truncate", children: identity?.name }),
|
|
84
|
-
identity?.email && identity.email !== identity.name && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm opacity-50 truncate", children: identity.email })
|
|
85
|
-
] }),
|
|
86
|
-
/* @__PURE__ */ jsxRuntime.jsx(primitives.Separator, {}),
|
|
87
|
-
/* @__PURE__ */ jsxRuntime.jsx(primitives.Button, { variant: "outline", onClick: () => {
|
|
88
|
-
logout();
|
|
89
|
-
}, children: "Logout" })
|
|
90
|
-
] }) })
|
|
91
|
-
] });
|
|
92
|
-
};
|
|
93
|
-
var AuthWidget = (props) => react.useContext(react$1.IamContext) ? /* @__PURE__ */ jsxRuntime.jsx(Widget, { ...props }) : null;
|
|
94
|
-
var widget_default = AuthWidget;
|
|
95
|
-
var MobileNavMenuAI = ({ setMenuOpen }) => {
|
|
96
|
-
const [isOpen, setIsOpen] = react.useState(false);
|
|
97
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
98
|
-
/* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: "w-full text-2xl cursor-pointer", children: [
|
|
99
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
|
|
100
|
-
/* @__PURE__ */ jsxRuntime.jsx(Logo, { variant: "wordmark", size: "md", outerClx: "p-6 h-full" }),
|
|
101
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Box, { tag: "span", className: ui.cn("grid", "block h-full aspect-square hover:bg-background sm:hover:bg-level-1 active:scale-75 text-foreground will-change-transform transition-transform transition-scale transition-duration-[1500] mt-6 mr-6 " + (!open ? "rotate-none" : "rotate-[135deg] scale-110")), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { width: 28, height: 28, style: ui.css("w-full h-full"), onClick: () => setMenuOpen(false) }) })
|
|
102
|
-
] }),
|
|
103
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Box, { className: "flex items-center gap-5 border-b border-[#3A3A3A] mt-4 rounded-full bg-muted-4 mx-6", children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: "text-muted-1 font-bold flex-1 flex justify-between min-h-12 items-center px-2", onClick: () => setIsOpen(true), children: [
|
|
104
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-base pl-2 font-light", children: "Ask AI a question" }),
|
|
105
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRight, {})
|
|
106
|
-
] }) })
|
|
107
|
-
] }),
|
|
108
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Box, { className: "fixed bottom-0 sm:bottom-16 right-0 w-full h-full sm:max-w-[400px] sm:max-h-[550px] sm:px-4 z-floating " + (isOpen ? "flex" : "hidden"), children: /* @__PURE__ */ jsxRuntime.jsxs(primitives.Card, { className: "flex flex-col h-full w-full", children: [
|
|
109
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex px-4 py-2 h-16 bg-level-0 items-center justify-between", children: [
|
|
110
|
-
/* @__PURE__ */ jsxRuntime.jsxs("h3", { className: "font-semibold font-heading", children: [
|
|
111
|
-
"LUX",
|
|
112
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "opacity-60", children: "AI" })
|
|
113
|
-
] }),
|
|
114
|
-
/* @__PURE__ */ jsxRuntime.jsx(primitives.Button, { onClick: () => setIsOpen(false), variant: "link", size: "icon", className: "w-fit sm:hidden", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "w-6 h-6 flex-none mr-1 rotate-45 transition-transform" }) })
|
|
115
|
-
] }),
|
|
116
|
-
/* @__PURE__ */ jsxRuntime.jsx("iframe", { src: "https://lux.chat/iframe", className: "h-full" })
|
|
117
|
-
] }) })
|
|
118
|
-
] });
|
|
119
|
-
};
|
|
120
|
-
var mobile_nav_menu_ai_default = MobileNavMenuAI;
|
|
121
18
|
var MobileNav = ({
|
|
122
19
|
currentAs,
|
|
123
20
|
links,
|
|
@@ -127,7 +24,7 @@ var MobileNav = ({
|
|
|
127
24
|
setChatbotOpen,
|
|
128
25
|
setMenuOpen
|
|
129
26
|
}) => links.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn("flex flex-col h-full", className), children: [
|
|
130
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
27
|
+
/* @__PURE__ */ jsxRuntime.jsx(MobileNavMenuAI__default.default, { setMenuOpen }),
|
|
131
28
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Box, { className: "flex flex-col flex-1 overflow-auto", children: /* @__PURE__ */ jsxRuntime.jsx(primitives.Accordion, { type: "single", collapsible: true, className: "w-full h-full", children: links.map((el, index) => {
|
|
132
29
|
const itemClx = commonItemClx ? typeof commonItemClx === "string" ? commonItemClx : commonItemClx(el) : "";
|
|
133
30
|
const variant = el.variant ?? "link";
|
|
@@ -167,7 +64,7 @@ var MobileNav = ({
|
|
|
167
64
|
] }, index);
|
|
168
65
|
}
|
|
169
66
|
}) }) }),
|
|
170
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
67
|
+
/* @__PURE__ */ jsxRuntime.jsx(AuthWidget__default.default, { className: "text-2xl z-10", handleLogin: () => {
|
|
171
68
|
setMenuState("login");
|
|
172
69
|
} })
|
|
173
70
|
] }) : null;
|