@luxfi/ui 8.2.7 → 8.2.8
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 +25 -28
- package/dist/site/components/header/mobile-nav-menu-ai.js +24 -27
- 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 +48 -330
- package/dist/site/components/header/mobile.js +42 -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/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
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
var
|
|
17
|
-
var
|
|
18
|
-
var
|
|
19
|
-
var
|
|
20
|
-
var
|
|
21
|
-
require('
|
|
22
|
-
var
|
|
23
|
-
var
|
|
24
|
-
var
|
|
3
|
+
var accessCodeInput_js = require('./access-code-input.js');
|
|
4
|
+
var chatWidget_js = require('./chat-widget.js');
|
|
5
|
+
var index_js$2 = require('./contact-dialog/index.js');
|
|
6
|
+
var copyright_js = require('./copyright.js');
|
|
7
|
+
var footer_js = require('./footer.js');
|
|
8
|
+
var index_js$3 = require('./header/index.js');
|
|
9
|
+
var index_js$4 = require('./icons/index.js');
|
|
10
|
+
var logo_js = require('./logo.js');
|
|
11
|
+
var main_js = require('./main.js');
|
|
12
|
+
var index_js$5 = require('./mini-chart/index.js');
|
|
13
|
+
var index_js$6 = require('./not-found/index.js');
|
|
14
|
+
var provider_js = require('./auth/provider.js');
|
|
15
|
+
var login_js = require('./auth/login.js');
|
|
16
|
+
var backButton_js = require('./back-button.js');
|
|
17
|
+
var index_js = require('./commerce/drawer/index.js');
|
|
18
|
+
var drawerMargin_js = require('./drawer-margin.js');
|
|
19
|
+
var buyButton_js = require('./commerce/buy-button.js');
|
|
20
|
+
var checkoutButton_js = require('./commerce/checkout-button.js');
|
|
21
|
+
var index_js$1 = require('./commerce/checkout-panel/index.js');
|
|
22
|
+
var loginPanel_js = require('./auth/login-panel.js');
|
|
23
|
+
var analytics_js = require('./analytics.js');
|
|
24
|
+
var tooltip_js = require('./tooltip.js');
|
|
25
25
|
var emblaCarouselAutoplay = require('embla-carousel-autoplay');
|
|
26
26
|
|
|
27
27
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -44,1961 +44,118 @@ function _interopNamespace(e) {
|
|
|
44
44
|
return Object.freeze(n);
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
var
|
|
48
|
-
var
|
|
49
|
-
var
|
|
50
|
-
var
|
|
47
|
+
var accessCodeInput_js__default = /*#__PURE__*/_interopDefault(accessCodeInput_js);
|
|
48
|
+
var chatWidget_js__default = /*#__PURE__*/_interopDefault(chatWidget_js);
|
|
49
|
+
var index_js__default$2 = /*#__PURE__*/_interopDefault(index_js$2);
|
|
50
|
+
var copyright_js__default = /*#__PURE__*/_interopDefault(copyright_js);
|
|
51
|
+
var footer_js__default = /*#__PURE__*/_interopDefault(footer_js);
|
|
52
|
+
var index_js__default$3 = /*#__PURE__*/_interopDefault(index_js$3);
|
|
53
|
+
var index_js__namespace = /*#__PURE__*/_interopNamespace(index_js$4);
|
|
54
|
+
var logo_js__default = /*#__PURE__*/_interopDefault(logo_js);
|
|
55
|
+
var main_js__default = /*#__PURE__*/_interopDefault(main_js);
|
|
56
|
+
var index_js__default$4 = /*#__PURE__*/_interopDefault(index_js$5);
|
|
57
|
+
var index_js__default$5 = /*#__PURE__*/_interopDefault(index_js$6);
|
|
58
|
+
var provider_js__default = /*#__PURE__*/_interopDefault(provider_js);
|
|
59
|
+
var login_js__default = /*#__PURE__*/_interopDefault(login_js);
|
|
60
|
+
var backButton_js__default = /*#__PURE__*/_interopDefault(backButton_js);
|
|
61
|
+
var index_js__default = /*#__PURE__*/_interopDefault(index_js);
|
|
62
|
+
var drawerMargin_js__default = /*#__PURE__*/_interopDefault(drawerMargin_js);
|
|
63
|
+
var buyButton_js__default = /*#__PURE__*/_interopDefault(buyButton_js);
|
|
64
|
+
var checkoutButton_js__default = /*#__PURE__*/_interopDefault(checkoutButton_js);
|
|
65
|
+
var index_js__default$1 = /*#__PURE__*/_interopDefault(index_js$1);
|
|
66
|
+
var loginPanel_js__default = /*#__PURE__*/_interopDefault(loginPanel_js);
|
|
67
|
+
var analytics_js__default = /*#__PURE__*/_interopDefault(analytics_js);
|
|
68
|
+
var tooltip_js__default = /*#__PURE__*/_interopDefault(tooltip_js);
|
|
51
69
|
var emblaCarouselAutoplay__default = /*#__PURE__*/_interopDefault(emblaCarouselAutoplay);
|
|
52
70
|
|
|
53
|
-
var __defProp = Object.defineProperty;
|
|
54
|
-
var __export = (target, all) => {
|
|
55
|
-
for (var name in all)
|
|
56
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
57
|
-
};
|
|
58
|
-
var AccessCodeInput = ({
|
|
59
|
-
onSuccess,
|
|
60
|
-
onFail,
|
|
61
|
-
validCodes,
|
|
62
|
-
className
|
|
63
|
-
}) => {
|
|
64
|
-
const [status, setStatus] = React7.useState();
|
|
65
|
-
const checkAccessCode = (code) => {
|
|
66
|
-
setStatus(void 0);
|
|
67
|
-
if (code.length === 6) {
|
|
68
|
-
setStatus("checking");
|
|
69
|
-
setTimeout(() => {
|
|
70
|
-
if (validCodes?.includes(code) && onSuccess) {
|
|
71
|
-
setStatus("valid");
|
|
72
|
-
onSuccess();
|
|
73
|
-
} else {
|
|
74
|
-
setStatus("invalid");
|
|
75
|
-
onFail && onFail();
|
|
76
|
-
}
|
|
77
|
-
}, 1e3);
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn("flex flex-col gap-2 mx-auto w-full text-center items-center", className), children: [
|
|
81
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
82
|
-
primitives.InputOTP,
|
|
83
|
-
{
|
|
84
|
-
className: "mx-auto",
|
|
85
|
-
maxLength: 6,
|
|
86
|
-
onInput: (event) => checkAccessCode(event.target.value),
|
|
87
|
-
render: ({ slots }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
88
|
-
/* @__PURE__ */ jsxRuntime.jsxs(primitives.InputOTPGroup, { children: [
|
|
89
|
-
slots.slice(0, 3).map((slot, index) => /* @__PURE__ */ jsxRuntime.jsx(primitives.InputOTPSlot, { ...slot }, index)),
|
|
90
|
-
" "
|
|
91
|
-
] }),
|
|
92
|
-
/* @__PURE__ */ jsxRuntime.jsx(primitives.InputOTPSeparator, {}),
|
|
93
|
-
/* @__PURE__ */ jsxRuntime.jsx(primitives.InputOTPGroup, { children: slots.slice(3).map((slot, index) => /* @__PURE__ */ jsxRuntime.jsx(primitives.InputOTPSlot, { ...slot }, index + 3)) })
|
|
94
|
-
] })
|
|
95
|
-
}
|
|
96
|
-
),
|
|
97
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "h-[3rem]", children: status === "checking" ? "Checking access code..." : status === "invalid" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-destructive", children: "Invalid access code!" }) : status === "valid" ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Access code is valid! Redirecting..." }) : null })
|
|
98
|
-
] });
|
|
99
|
-
};
|
|
100
|
-
var access_code_input_default = AccessCodeInput;
|
|
101
|
-
var ChatWidget = ({
|
|
102
|
-
title: title2,
|
|
103
|
-
chatbotUrl,
|
|
104
|
-
subtitle,
|
|
105
|
-
question,
|
|
106
|
-
suggestedQuestions,
|
|
107
|
-
buttonClx = ""
|
|
108
|
-
}) => {
|
|
109
|
-
const [showChatbot, setShowChatbot] = React7__namespace.default.useState(false);
|
|
110
|
-
const onClick = () => {
|
|
111
|
-
setShowChatbot(!showChatbot);
|
|
112
|
-
};
|
|
113
|
-
const searchParams = new URLSearchParams();
|
|
114
|
-
if (question) {
|
|
115
|
-
searchParams.append("question", question);
|
|
116
|
-
}
|
|
117
|
-
if (suggestedQuestions) {
|
|
118
|
-
searchParams.append("sQuestions", suggestedQuestions.map(({ message }) => message).join(","));
|
|
119
|
-
searchParams.append("sHeadings", suggestedQuestions.map(({ heading }) => heading).join(","));
|
|
120
|
-
searchParams.append("sIcons", suggestedQuestions.map(({ icon }) => icon).join(","));
|
|
121
|
-
}
|
|
122
|
-
const iframeSrc = `${chatbotUrl}?${searchParams.toString()}`;
|
|
123
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
124
|
-
/* @__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 " + (showChatbot ? "flex" : "hidden"), children: /* @__PURE__ */ jsxRuntime.jsxs(primitives.Card, { className: "flex flex-col h-full w-full", children: [
|
|
125
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex px-4 py-2 h-12 bg-level-0 items-center justify-between", children: [
|
|
126
|
-
/* @__PURE__ */ jsxRuntime.jsxs("h1", { className: "font-semibold font-heading", children: [
|
|
127
|
-
title2,
|
|
128
|
-
" ",
|
|
129
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "opacity-60", children: subtitle })
|
|
130
|
-
] }),
|
|
131
|
-
/* @__PURE__ */ jsxRuntime.jsx(primitives.Button, { onClick, variant: "link", size: "icon", className: "w-fit sm:hidden", children: /* @__PURE__ */ jsxRuntime.jsx(logo.LuxLogo, { variant: "white", size: 24 }) })
|
|
132
|
-
] }),
|
|
133
|
-
/* @__PURE__ */ jsxRuntime.jsx("iframe", { src: iframeSrc, className: "h-full" })
|
|
134
|
-
] }) }),
|
|
135
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
136
|
-
ui.Box,
|
|
137
|
-
{
|
|
138
|
-
tag: "span",
|
|
139
|
-
onClick,
|
|
140
|
-
className: ui.cn(
|
|
141
|
-
// z-index should be below anything in commerce-iu (buy drawer and checkout widget)
|
|
142
|
-
"fixed bottom-5 right-[24px] md:z-floating z-16 cursor-pointer",
|
|
143
|
-
"hover:drop-shadow-[0_2px_6px_rgba(255,255,255,1)]",
|
|
144
|
-
"transition-transform",
|
|
145
|
-
showChatbot ? "rotate-180" : "",
|
|
146
|
-
buttonClx
|
|
147
|
-
),
|
|
148
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(logo.LuxLogo, { variant: "white", size: 28 })
|
|
149
|
-
}
|
|
150
|
-
)
|
|
151
|
-
] });
|
|
152
|
-
};
|
|
153
|
-
var chat_widget_default = ChatWidget;
|
|
154
|
-
var ContactFormSchema = zod.z.object({
|
|
155
|
-
email: zod.z.string().min(1, { message: "Email must be provided." }).email("Invalid email."),
|
|
156
|
-
phone: zod.z.string().min(1, { message: "Telephone must be provided." }).refine(validator__default.default.isMobilePhone, { message: "Invalid format." })
|
|
157
|
-
});
|
|
158
|
-
var ContactForm = ({
|
|
159
|
-
onSubmit: _onSubmit,
|
|
160
|
-
enclosure
|
|
161
|
-
}) => {
|
|
162
|
-
const form = reactHookForm.useForm({
|
|
163
|
-
resolver: zod$1.zodResolver(ContactFormSchema),
|
|
164
|
-
defaultValues: {
|
|
165
|
-
email: "",
|
|
166
|
-
phone: ""
|
|
167
|
-
}
|
|
168
|
-
});
|
|
169
|
-
const [isPending, startTransition] = React7.useTransition();
|
|
170
|
-
const onSubmit = (data) => {
|
|
171
|
-
startTransition(async () => {
|
|
172
|
-
await _onSubmit(data, enclosure);
|
|
173
|
-
});
|
|
174
|
-
};
|
|
175
|
-
const MyFormItem = ({
|
|
176
|
-
field,
|
|
177
|
-
placeholder
|
|
178
|
-
}) => /* @__PURE__ */ jsxRuntime.jsxs(ui.FormItem, { className: "space-y-0", children: [
|
|
179
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.FormControl, { children: /* @__PURE__ */ jsxRuntime.jsx(primitives.Input, { placeholder, ...field, className: "mt-0 text-foreground" }) }),
|
|
180
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Box, { className: "flex flex-row justify-start items-stretch gap-2", children: /* @__PURE__ */ jsxRuntime.jsx(ui.FormMessage, {}) })
|
|
181
|
-
] });
|
|
182
|
-
return /* @__PURE__ */ jsxRuntime.jsx(ui.Form, { ...form, children: /* @__PURE__ */ jsxRuntime.jsx(ui.Box, { tag: "form", onSubmit: form.handleSubmit(onSubmit), className: "w-3/4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col justify-start items-stretch mt-4", children: [
|
|
183
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
184
|
-
ui.FormField,
|
|
185
|
-
{
|
|
186
|
-
control: form.control,
|
|
187
|
-
name: "email",
|
|
188
|
-
render: ({ field }) => /* @__PURE__ */ jsxRuntime.jsx(MyFormItem, { field, placeholder: "email" })
|
|
189
|
-
}
|
|
190
|
-
),
|
|
191
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
192
|
-
ui.FormField,
|
|
193
|
-
{
|
|
194
|
-
control: form.control,
|
|
195
|
-
name: "phone",
|
|
196
|
-
render: ({ field }) => /* @__PURE__ */ jsxRuntime.jsx(MyFormItem, { field, placeholder: "phone" })
|
|
197
|
-
}
|
|
198
|
-
),
|
|
199
|
-
/* @__PURE__ */ jsxRuntime.jsx(primitives.Button, { disabled: isPending, type: "submit", className: "bg-primary text-primary-fg hover:bg-primary-hover", children: isPending ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
200
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { style: ui.css("mr-2 h-4 w-4 animate-spin") }),
|
|
201
|
-
"Please wait"
|
|
202
|
-
] }) : /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: "Submit" }) })
|
|
203
|
-
] }) }) });
|
|
204
|
-
};
|
|
205
|
-
var contact_form_default = ContactForm;
|
|
206
|
-
var Disclaimer = () => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
207
|
-
"By entering your mobile number and submitting, you consent to receive text messages from Lux at the number provided. Message and data rates may apply. Message frequency varies. You can unsubscribe at any time by replying STOP. View our ",
|
|
208
|
-
/* @__PURE__ */ jsxRuntime.jsx("a", { href: "/privacy", children: "Privacy Policy" }),
|
|
209
|
-
" and ",
|
|
210
|
-
/* @__PURE__ */ jsxRuntime.jsx("a", { href: "/terms", children: "Terms & conditions" }),
|
|
211
|
-
"."
|
|
212
|
-
] });
|
|
213
|
-
var disclaimer_default = Disclaimer;
|
|
214
|
-
var ContactDialog = ({
|
|
215
|
-
open: open2,
|
|
216
|
-
onOpenChange,
|
|
217
|
-
buttonText,
|
|
218
|
-
buttonProps,
|
|
219
|
-
title: title2,
|
|
220
|
-
byline,
|
|
221
|
-
action,
|
|
222
|
-
actionEnclosure
|
|
223
|
-
}) => {
|
|
224
|
-
const [success, setSuccess] = React7.useState(false);
|
|
225
|
-
const onSubmit = async (formData, enclosure) => {
|
|
226
|
-
const result = await action(formData, enclosure);
|
|
227
|
-
if (result.success) {
|
|
228
|
-
setSuccess(true);
|
|
229
|
-
}
|
|
230
|
-
};
|
|
231
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(primitives.Dialog, { open: open2, onOpenChange, children: [
|
|
232
|
-
/* @__PURE__ */ jsxRuntime.jsx(primitives.DialogTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(primitives.Button, { ...buttonProps, children: buttonText }) }),
|
|
233
|
-
/* @__PURE__ */ jsxRuntime.jsxs(primitives.DialogContent, { className: "sm:max-w-[500px] p-0 gap-0 bg-background border", children: [
|
|
234
|
-
/* @__PURE__ */ jsxRuntime.jsxs(primitives.DialogHeader, { className: "py-6 text-foreground", children: [
|
|
235
|
-
/* @__PURE__ */ jsxRuntime.jsx(primitives.DialogTitle, { className: "text-4xl text-center text-inherit", children: title2 }),
|
|
236
|
-
byline && /* @__PURE__ */ jsxRuntime.jsxs(primitives.DialogDescription, { className: "text-inherit text-lg text-center", children: [
|
|
237
|
-
byline,
|
|
238
|
-
" "
|
|
239
|
-
] })
|
|
240
|
-
] }),
|
|
241
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-8 pb-8 rounded-e-lg flex flex-col justify-start items-center", children: [
|
|
242
|
-
success ? /* @__PURE__ */ jsxRuntime.jsx("p", { children: actionEnclosure?.reply }) : /* @__PURE__ */ jsxRuntime.jsx(contact_form_default, { onSubmit, enclosure: actionEnclosure }),
|
|
243
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-1 text-xs mt-4", children: /* @__PURE__ */ jsxRuntime.jsx(disclaimer_default, {}) })
|
|
244
|
-
] })
|
|
245
|
-
] })
|
|
246
|
-
] });
|
|
247
|
-
};
|
|
248
|
-
var contact_dialog_default = ContactDialog;
|
|
249
|
-
var FIRST = 2020;
|
|
250
|
-
var Copyright = ({
|
|
251
|
-
className = ""
|
|
252
|
-
}) => {
|
|
253
|
-
const year = (/* @__PURE__ */ new Date()).getFullYear();
|
|
254
|
-
const yearString = year > FIRST ? `${FIRST} - ${year}` : FIRST.toString();
|
|
255
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className, children: [
|
|
256
|
-
`Copyright \xA9 ${yearString}`,
|
|
257
|
-
"\xA0",
|
|
258
|
-
/* @__PURE__ */ jsxRuntime.jsx("br", { className: "sm:hidden" }),
|
|
259
|
-
"Lux Industries Inc.\xA0",
|
|
260
|
-
/* @__PURE__ */ jsxRuntime.jsx("br", { className: "md:hidden" }),
|
|
261
|
-
"\xA0All rights reserved."
|
|
262
|
-
] });
|
|
263
|
-
};
|
|
264
|
-
var copyright_default = Copyright;
|
|
265
71
|
|
|
266
|
-
// src/site/site-def/footer/legal.ts
|
|
267
|
-
var legal = [
|
|
268
|
-
{
|
|
269
|
-
title: "Terms and Conditions",
|
|
270
|
-
href: "https://docs.google.com/document/d/1mvkjr1w8Rv8ttirs1mu-_2fw_PXclOyS/preview",
|
|
271
|
-
newTab: true
|
|
272
|
-
},
|
|
273
|
-
{
|
|
274
|
-
title: "Privacy Policy",
|
|
275
|
-
href: "https://docs.google.com/document/d/1vZjOKaNdOoThDIaVLERWxflQLtOsuvLn/preview",
|
|
276
|
-
newTab: true
|
|
277
|
-
}
|
|
278
|
-
];
|
|
279
|
-
var title = {
|
|
280
|
-
title: "Legal",
|
|
281
|
-
href: "",
|
|
282
|
-
variant: "linkFG"
|
|
283
|
-
};
|
|
284
|
-
[title, ...legal];
|
|
285
|
-
var FooterNav = ({
|
|
286
|
-
items,
|
|
287
|
-
currentAs,
|
|
288
|
-
className = ""
|
|
289
|
-
}) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
290
|
-
primitives.NavItems,
|
|
291
|
-
{
|
|
292
|
-
items,
|
|
293
|
-
currentAs,
|
|
294
|
-
as: "nav",
|
|
295
|
-
className,
|
|
296
|
-
itemClx: (def) => def.variant === "linkFG" ? "font-nav text-[15px]/[1.3] font-medium tracking-normal text-muted-1 sm:hover:text-foreground transition-color duration-500" : "text-[15px]/[1.1] font-normal tracking-[0.2px] text-muted-1 sm:hover:text-foreground transition-color duration-500"
|
|
297
|
-
}
|
|
298
|
-
);
|
|
299
|
-
var footer_nav_default = FooterNav;
|
|
300
|
-
var SIZE = {
|
|
301
|
-
xl: { mark: 40, word: 22, gap: "gap-4" },
|
|
302
|
-
lg: { mark: 40, word: 22, gap: "gap-4" },
|
|
303
|
-
md: { mark: 32, word: 18, gap: "gap-3" },
|
|
304
|
-
sm: { mark: 24, word: 13, gap: "gap-2" },
|
|
305
|
-
xs: { mark: 16, word: 9, gap: "gap-1.5" }
|
|
306
|
-
};
|
|
307
|
-
var Logo = ({
|
|
308
|
-
size = "md",
|
|
309
|
-
href,
|
|
310
|
-
// no default please!
|
|
311
|
-
outerClx = "",
|
|
312
|
-
variant = "full",
|
|
313
|
-
onClick
|
|
314
|
-
}) => {
|
|
315
|
-
const s = SIZE[size] ?? SIZE.md;
|
|
316
|
-
const clx = "flex flex-row items-center " + s.gap + " " + (href ? "hover:opacity-80 cursor-pointer " : "cursor-default ") + outerClx;
|
|
317
|
-
const art = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
318
|
-
variant !== "wordmark" && /* @__PURE__ */ jsxRuntime.jsx(logo.Logo, { variant: "white", size: s.mark }),
|
|
319
|
-
variant !== "mark" && /* @__PURE__ */ jsxRuntime.jsx(logo.Wordmark, { height: s.word })
|
|
320
|
-
] });
|
|
321
|
-
return href ? /* @__PURE__ */ jsxRuntime.jsx(Link2__default.default, { href, style: ui.css(clx), onClick, children: art }) : /* @__PURE__ */ jsxRuntime.jsx(ui.Box, { tag: "span", className: clx, onClick, children: art });
|
|
322
|
-
};
|
|
323
|
-
var Footer = ({
|
|
324
|
-
siteDef,
|
|
325
|
-
className = "",
|
|
326
|
-
noHorizPadding = false
|
|
327
|
-
}) => {
|
|
328
|
-
const { footer, aboveCopyright } = siteDef;
|
|
329
|
-
const smGridCols = Math.floor(footer.length / 2);
|
|
330
|
-
const smGridColsClx = `sm:grid-cols-${smGridCols} `;
|
|
331
|
-
const _aboveCopyright = typeof aboveCopyright === "undefined" ? legal : aboveCopyright;
|
|
332
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { tag: "footer", className: ui.cn("grow flex flex-col justify-between gap-6 pb-[2vh]", className), children: [
|
|
333
|
-
/* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: (noHorizPadding ? "" : "px-5 md:px-8 ") + "grid grid-cols-2 gap-4 gap-y-6 md:gap-x-6 lg:gap-8 " + smGridColsClx + "md:w-full sm:justify-items-center md:mx-0 lg:w-full md:flex md:flex-row md:justify-between px-[24px]", children: [
|
|
334
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "hidden lg:flex flex-col", children: /* @__PURE__ */ jsxRuntime.jsx(Logo, { size: "md", variant: "wordmark" }) }, 0),
|
|
335
|
-
footer.map((defs, index) => {
|
|
336
|
-
const xsColSpanClx = index === footer.length - 1 && footer.length % 2 === 1 ? "xs:col-span-2 xs:mx-auto md:col-span-1 md:mx-0 " : "";
|
|
337
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
338
|
-
footer_nav_default,
|
|
339
|
-
{
|
|
340
|
-
items: defs,
|
|
341
|
-
currentAs: siteDef.currentAs,
|
|
342
|
-
className: ui.cn(
|
|
343
|
-
"sm:min-w-[150px] md:min-w-0 flex flex-col justify-start items-start gap-[11px] sm:gap-[12px] md:gap-[15px] ",
|
|
344
|
-
xsColSpanClx
|
|
345
|
-
)
|
|
346
|
-
},
|
|
347
|
-
index + 1
|
|
348
|
-
);
|
|
349
|
-
})
|
|
350
|
-
] }),
|
|
351
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "md:mt-[2vh]", children: [
|
|
352
|
-
_aboveCopyright.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
353
|
-
primitives.NavItems,
|
|
354
|
-
{
|
|
355
|
-
items: _aboveCopyright,
|
|
356
|
-
as: "div",
|
|
357
|
-
className: "flex flex-row justify-center gap-4 mb-2",
|
|
358
|
-
itemClx: "text-sm text-center text-muted-2 underline hover:text-foreground"
|
|
359
|
-
}
|
|
360
|
-
),
|
|
361
|
-
/* @__PURE__ */ jsxRuntime.jsx(copyright_default, { className: "text-sm text-center text-muted-3" })
|
|
362
|
-
] })
|
|
363
|
-
] });
|
|
364
|
-
};
|
|
365
|
-
var footer_default = Footer;
|
|
366
72
|
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
sessionStorage.setItem(KEY, window.location.pathname + window.location.search);
|
|
371
|
-
};
|
|
372
|
-
var Widget = ({
|
|
373
|
-
noLogin = false,
|
|
374
|
-
handleLogin,
|
|
375
|
-
className
|
|
376
|
-
}) => {
|
|
377
|
-
const { isAuthenticated, isLoading, login, logout } = react.useIam();
|
|
378
|
-
const identity = react.useIamIdentity();
|
|
379
|
-
if (isLoading) {
|
|
380
|
-
return null;
|
|
381
|
-
}
|
|
382
|
-
if (!isAuthenticated) {
|
|
383
|
-
return noLogin ? null : /* @__PURE__ */ jsxRuntime.jsx(
|
|
384
|
-
primitives.Button,
|
|
385
|
-
{
|
|
386
|
-
variant: "primary",
|
|
387
|
-
className: ui.cn("h-8 w-fit !min-w-0", className),
|
|
388
|
-
onClick: handleLogin ?? (() => {
|
|
389
|
-
remember();
|
|
390
|
-
void login();
|
|
391
|
-
}),
|
|
392
|
-
children: "Login"
|
|
393
|
-
}
|
|
394
|
-
);
|
|
395
|
-
}
|
|
396
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(primitives.Popover, { children: [
|
|
397
|
-
/* @__PURE__ */ jsxRuntime.jsx(primitives.PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
398
|
-
primitives.Button,
|
|
399
|
-
{
|
|
400
|
-
variant: "outline",
|
|
401
|
-
size: "icon",
|
|
402
|
-
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),
|
|
403
|
-
children: identity?.initials
|
|
404
|
-
}
|
|
405
|
-
) }),
|
|
406
|
-
/* @__PURE__ */ jsxRuntime.jsx(primitives.PopoverContent, { className: "bg-level-0", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-4", children: [
|
|
407
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2 truncate", children: [
|
|
408
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-medium leading-none truncate", children: identity?.name }),
|
|
409
|
-
identity?.email && identity.email !== identity.name && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm opacity-50 truncate", children: identity.email })
|
|
410
|
-
] }),
|
|
411
|
-
/* @__PURE__ */ jsxRuntime.jsx(primitives.Separator, {}),
|
|
412
|
-
/* @__PURE__ */ jsxRuntime.jsx(primitives.Button, { variant: "outline", onClick: () => {
|
|
413
|
-
logout();
|
|
414
|
-
}, children: "Logout" })
|
|
415
|
-
] }) })
|
|
416
|
-
] });
|
|
417
|
-
};
|
|
418
|
-
var AuthWidget = (props) => React7.useContext(react.IamContext) ? /* @__PURE__ */ jsxRuntime.jsx(Widget, { ...props }) : null;
|
|
419
|
-
var widget_default = AuthWidget;
|
|
420
|
-
|
|
421
|
-
// src/site/components/icons/index.ts
|
|
422
|
-
var icons_exports = {};
|
|
423
|
-
__export(icons_exports, {
|
|
424
|
-
Avatar: () => avatar_default,
|
|
425
|
-
Bag: () => bag_icon_default,
|
|
426
|
-
LeftArrow: () => left_arrow_default,
|
|
427
|
-
RightArrow: () => right_arrow_default,
|
|
428
|
-
SocialIcon: () => SocialIcon
|
|
73
|
+
Object.defineProperty(exports, "AccessCodeInput", {
|
|
74
|
+
enumerable: true,
|
|
75
|
+
get: function () { return accessCodeInput_js__default.default; }
|
|
429
76
|
});
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
] });
|
|
434
|
-
var avatar_default = Avatar;
|
|
435
|
-
var BagIcon = (props) => /* @__PURE__ */ jsxRuntime.jsx("svg", { fill: "none", viewBox: "0 0 1019 1281", ...props, children: /* @__PURE__ */ jsxRuntime.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" }) });
|
|
436
|
-
var bag_icon_default = BagIcon;
|
|
437
|
-
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" }) });
|
|
438
|
-
var left_arrow_default = LeftArrow;
|
|
439
|
-
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" }) });
|
|
440
|
-
var right_arrow_default = RightArrow;
|
|
441
|
-
var SocialIcon = ({
|
|
442
|
-
network,
|
|
443
|
-
size,
|
|
444
|
-
className = ""
|
|
445
|
-
}) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
446
|
-
reactSocialIcons.SocialIcon,
|
|
447
|
-
{
|
|
448
|
-
network,
|
|
449
|
-
as: "div",
|
|
450
|
-
className: ui.cn("color-inherit", className),
|
|
451
|
-
bgColor: "transparent",
|
|
452
|
-
fgColor: "currentColor",
|
|
453
|
-
style: { height: size, width: size, flex: "none" }
|
|
454
|
-
}
|
|
455
|
-
);
|
|
456
|
-
|
|
457
|
-
// src/site/next/analytics/google-analytics.ts
|
|
458
|
-
var sendGAEvent = (name, options = {}) => {
|
|
459
|
-
window.gtag("event", name, options);
|
|
460
|
-
};
|
|
461
|
-
var DesktopBagPopup = ({
|
|
462
|
-
triggerClx = "",
|
|
463
|
-
popupClx = "",
|
|
464
|
-
trigger
|
|
465
|
-
}) => {
|
|
466
|
-
const cmmc = commerce.useCommerce();
|
|
467
|
-
const [bagOpen, setBagOpen] = React7.useState(false);
|
|
468
|
-
const router = navigation.useRouter();
|
|
469
|
-
React7.useEffect(() => {
|
|
470
|
-
if (bagOpen) {
|
|
471
|
-
sendGAEvent("view_cart", {
|
|
472
|
-
items: cmmc.cartItems.map((item) => ({
|
|
473
|
-
item_id: item.sku,
|
|
474
|
-
item_name: item.title,
|
|
475
|
-
item_category: item.familyId,
|
|
476
|
-
price: item.price,
|
|
477
|
-
quantity: item.quantity
|
|
478
|
-
})),
|
|
479
|
-
value: cmmc.cartTotal,
|
|
480
|
-
currency: "USD"
|
|
481
|
-
});
|
|
482
|
-
}
|
|
483
|
-
}, [bagOpen]);
|
|
484
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(primitives.Popover, { open: bagOpen, onOpenChange: setBagOpen, children: [
|
|
485
|
-
/* @__PURE__ */ jsxRuntime.jsx(primitives.PopoverTrigger, { className: triggerClx, children: trigger }),
|
|
486
|
-
/* @__PURE__ */ jsxRuntime.jsxs(primitives.PopoverContent, { sideOffset: 28, className: ui.cn("relative flex flex-col p-0 px-4 pb-4 pt-2", popupClx), children: [
|
|
487
|
-
/* @__PURE__ */ jsxRuntime.jsx(primitives.PopoverClose, { className: "absolute z-above-content right-2 top-2 self-end hover:bg-level-3 text-muted hover:text-accent p-1 rounded-full", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "w-5 h-5" }) }),
|
|
488
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
489
|
-
commerce.CartPanel,
|
|
490
|
-
{
|
|
491
|
-
handleCheckout: () => {
|
|
492
|
-
router.push("/checkout");
|
|
493
|
-
},
|
|
494
|
-
className: "mt-4 mb-4 border-none py-0 px-4",
|
|
495
|
-
listClx: "rounded-sm pr-3",
|
|
496
|
-
scrollAfter: 5,
|
|
497
|
-
scrollHeightClx: "h-[70vh]",
|
|
498
|
-
itemClx: "mt-3",
|
|
499
|
-
totalClx: "sticky px-1 pr-2 -bottom-[1px] bg-level-1",
|
|
500
|
-
buttonClx: "max-w-[220px] flex-none",
|
|
501
|
-
children: [
|
|
502
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-row items-center flex-none justify-center ", children: [
|
|
503
|
-
/* @__PURE__ */ jsxRuntime.jsx(bag_icon_default, { className: "mr-2 relative w-6 h-7 fill-foreground " }),
|
|
504
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-heading text-foreground text-default", children: "Your Bag" })
|
|
505
|
-
] }),
|
|
506
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-[1px] w-pr-80 bg-muted-3 mx-auto mt-1.5 flex-none" })
|
|
507
|
-
]
|
|
508
|
-
}
|
|
509
|
-
)
|
|
510
|
-
] })
|
|
511
|
-
] });
|
|
512
|
-
};
|
|
513
|
-
var desktop_bag_popup_default = DesktopBagPopup;
|
|
514
|
-
var BagButton = mobxReactLite.observer(({
|
|
515
|
-
showIfEmpty = false,
|
|
516
|
-
animateOnHover = true,
|
|
517
|
-
animateOnQuantityChange = true,
|
|
518
|
-
size = "default",
|
|
519
|
-
className = "",
|
|
520
|
-
iconClx = "",
|
|
521
|
-
onClick
|
|
522
|
-
}) => {
|
|
523
|
-
const c = commerce.useCommerce();
|
|
524
|
-
const wiggleRef = React7.useRef(mobx.observable.box("none"));
|
|
525
|
-
React7.useEffect(() => (
|
|
526
|
-
// return IReactionDisposer
|
|
527
|
-
animateOnQuantityChange && c ? mobx.reaction(
|
|
528
|
-
() => c.cartQuantity,
|
|
529
|
-
(curr, prev) => {
|
|
530
|
-
if (curr > prev) {
|
|
531
|
-
mobx.runInAction(() => {
|
|
532
|
-
wiggleRef.current.set("more");
|
|
533
|
-
});
|
|
534
|
-
} else {
|
|
535
|
-
mobx.runInAction(() => {
|
|
536
|
-
wiggleRef.current.set("less");
|
|
537
|
-
});
|
|
538
|
-
}
|
|
539
|
-
setTimeout(() => {
|
|
540
|
-
mobx.runInAction(() => {
|
|
541
|
-
wiggleRef.current.set("none");
|
|
542
|
-
});
|
|
543
|
-
}, 800);
|
|
544
|
-
}
|
|
545
|
-
) : void 0
|
|
546
|
-
), []);
|
|
547
|
-
if (!c || !showIfEmpty && c.cartEmpty) {
|
|
548
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", {});
|
|
549
|
-
}
|
|
550
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
551
|
-
ui.Box,
|
|
552
|
-
{
|
|
553
|
-
"aria-label": "Bag",
|
|
554
|
-
role: "button",
|
|
555
|
-
onClick,
|
|
556
|
-
className: ui.cn(
|
|
557
|
-
primitives.buttonVariants({ variant: "ghost", size }),
|
|
558
|
-
"rounded-md",
|
|
559
|
-
// Overides the bg change on hover --not a "hover effect"
|
|
560
|
-
"relative group p-0 aspect-square hover:bg-background",
|
|
561
|
-
wiggleRef.current.get() === "more" ? "item-added-to-cart-animation" : wiggleRef.current.get() === "less" ? "item-removed-from-cart-animation" : "",
|
|
562
|
-
className
|
|
563
|
-
),
|
|
564
|
-
children: [
|
|
565
|
-
!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: [
|
|
566
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-[3px] w-full" }),
|
|
567
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { children: c.cartQuantity })
|
|
568
|
-
] }),
|
|
569
|
-
/* @__PURE__ */ jsxRuntime.jsx(bag_icon_default, { width: "24", height: "28", className: ui.cn(
|
|
570
|
-
"relative -top-[3px] fill-primary",
|
|
571
|
-
iconClx,
|
|
572
|
-
animateOnHover ? "group-hover:fill-primary-hover group-hover:scale-105 transition-scale transition-duration-300" : ""
|
|
573
|
-
), "aria-hidden": "true" })
|
|
574
|
-
]
|
|
575
|
-
}
|
|
576
|
-
);
|
|
77
|
+
Object.defineProperty(exports, "ChatWidget", {
|
|
78
|
+
enumerable: true,
|
|
79
|
+
get: function () { return chatWidget_js__default.default; }
|
|
577
80
|
});
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
const preventScroll = (e) => {
|
|
582
|
-
e.preventDefault();
|
|
583
|
-
};
|
|
584
|
-
if (isMenuOpened) {
|
|
585
|
-
window.addEventListener("wheel", preventScroll, { passive: false });
|
|
586
|
-
window.addEventListener("touchmove", preventScroll, { passive: false });
|
|
587
|
-
window.addEventListener("keydown", preventScrollKeys, { passive: false });
|
|
588
|
-
} else {
|
|
589
|
-
window.removeEventListener("wheel", preventScroll);
|
|
590
|
-
window.removeEventListener("touchmove", preventScroll);
|
|
591
|
-
window.removeEventListener("keydown", preventScrollKeys);
|
|
592
|
-
}
|
|
593
|
-
return () => {
|
|
594
|
-
window.removeEventListener("wheel", preventScroll);
|
|
595
|
-
window.removeEventListener("touchmove", preventScroll);
|
|
596
|
-
window.removeEventListener("keydown", preventScrollKeys);
|
|
597
|
-
};
|
|
598
|
-
}, [isMenuOpened]);
|
|
599
|
-
const preventScrollKeys = (e) => {
|
|
600
|
-
if (["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight", " "].includes(e.key)) {
|
|
601
|
-
e.preventDefault();
|
|
602
|
-
}
|
|
603
|
-
};
|
|
604
|
-
const handleMouseEnter = React7__namespace.useCallback(() => {
|
|
605
|
-
setIsMenuOpen(true);
|
|
606
|
-
}, [setIsMenuOpen]);
|
|
607
|
-
const handleMouseLeave = React7__namespace.useCallback(() => {
|
|
608
|
-
setIsMenuOpen(false);
|
|
609
|
-
}, [setIsMenuOpen]);
|
|
610
|
-
const handleContentMouseMove = () => {
|
|
611
|
-
setIsMenuOpen(false);
|
|
612
|
-
};
|
|
613
|
-
const menuHiddenClass = !isMenuOpened ? "invisible" : "";
|
|
614
|
-
return links.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(primitives.NavigationMenu, { children: /* @__PURE__ */ jsxRuntime.jsx(primitives.NavigationMenuList, { children: links.map((el, index) => /* @__PURE__ */ jsxRuntime.jsx(primitives.NavigationMenuItem, { className: "!m-0", children: el.isAIMenu ? /* @__PURE__ */ jsxRuntime.jsx(Link2__default.default, { href: el.href, style: ui.css(ui.cn(primitives.navigationMenuTriggerStyle(), " text-muted-1 bg-transparent")), children: el.title }) : el.title === "Cards" ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
615
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
616
|
-
primitives.NavigationMenuTrigger,
|
|
617
|
-
{
|
|
618
|
-
className: "text-muted-1 bg-transparent",
|
|
619
|
-
onMouseEnter: handleMouseEnter,
|
|
620
|
-
onFocus: handleMouseEnter,
|
|
621
|
-
onMouseLeave: handleMouseLeave,
|
|
622
|
-
onBlur: handleMouseLeave,
|
|
623
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(Link2__default.default, { href: el.href, children: el.title })
|
|
624
|
-
}
|
|
625
|
-
),
|
|
626
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
627
|
-
primitives.NavigationMenuContent,
|
|
628
|
-
{
|
|
629
|
-
className: ui.cn("fixed left-0 top-14 pt-6 w-screen h-full border-0 !backdrop-blur-3xl bg-transparent mt-0", menuHiddenClass),
|
|
630
|
-
onMouseEnter: handleMouseEnter,
|
|
631
|
-
onMouseLeave: handleMouseLeave,
|
|
632
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center items-start", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
633
|
-
"div",
|
|
634
|
-
{
|
|
635
|
-
className: "grid xl:grid-cols-3 w-full justify-center max-w-[750px]",
|
|
636
|
-
onMouseLeave: handleContentMouseMove,
|
|
637
|
-
children: GroupChildMenu({ childs: el.childMenu, isCards: true })
|
|
638
|
-
}
|
|
639
|
-
) })
|
|
640
|
-
}
|
|
641
|
-
)
|
|
642
|
-
] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
643
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
644
|
-
primitives.NavigationMenuTrigger,
|
|
645
|
-
{
|
|
646
|
-
className: "text-muted-1 bg-transparent",
|
|
647
|
-
onMouseEnter: handleMouseEnter,
|
|
648
|
-
onFocus: handleMouseEnter,
|
|
649
|
-
onMouseLeave: handleMouseLeave,
|
|
650
|
-
onBlur: handleMouseLeave,
|
|
651
|
-
children: el.href && el.href !== "" ? /* @__PURE__ */ jsxRuntime.jsx(Link2__default.default, { href: el.href, children: el.title }) : /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: el.title })
|
|
652
|
-
}
|
|
653
|
-
),
|
|
654
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
655
|
-
primitives.NavigationMenuContent,
|
|
656
|
-
{
|
|
657
|
-
className: ui.cn("fixed left-0 top-14 pt-6 w-screen h-full border-0 !backdrop-blur-3xl bg-transparent mt-0", menuHiddenClass),
|
|
658
|
-
onMouseEnter: handleMouseEnter,
|
|
659
|
-
onMouseLeave: handleMouseLeave,
|
|
660
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
661
|
-
"div",
|
|
662
|
-
{
|
|
663
|
-
className: "flex flex-row w-full justify-center",
|
|
664
|
-
onMouseLeave: handleContentMouseMove,
|
|
665
|
-
children: GroupChildMenu({ childs: el.childMenu })
|
|
666
|
-
}
|
|
667
|
-
)
|
|
668
|
-
}
|
|
669
|
-
)
|
|
670
|
-
] }) }, index)) }) }) : null;
|
|
671
|
-
};
|
|
672
|
-
var desktop_nav_menu_default = DesktopNav;
|
|
673
|
-
var ListItem = React7__namespace.forwardRef(({ className, title: title2, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(primitives.NavigationMenuLink, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
674
|
-
ui.Box,
|
|
675
|
-
{
|
|
676
|
-
tag: "a",
|
|
677
|
-
ref,
|
|
678
|
-
className: ui.cn(
|
|
679
|
-
"block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:text-accent-foreground focus:bg-level-1 focus:text-accent-foreground text-muted-1 hover:text-primary hover:bg-transparent duration-1000 ease-in-out",
|
|
680
|
-
className
|
|
681
|
-
),
|
|
682
|
-
...props,
|
|
683
|
-
children: [
|
|
684
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium leading-none", children: title2 }),
|
|
685
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "line-clamp-3 text-sm leading-snug text-muted-1", children })
|
|
686
|
-
]
|
|
687
|
-
}
|
|
688
|
-
) }) }, title2));
|
|
689
|
-
ListItem.displayName = "ListItem";
|
|
690
|
-
var GroupChildMenu = (params) => {
|
|
691
|
-
const { childs, isCards = false } = params;
|
|
692
|
-
if (!childs) {
|
|
693
|
-
return null;
|
|
694
|
-
}
|
|
695
|
-
const groupedChildMenus = childs.reduce((grouped, childLink) => {
|
|
696
|
-
if (childLink.groupName) {
|
|
697
|
-
grouped[childLink.groupName] = grouped[childLink.groupName] || [];
|
|
698
|
-
grouped[childLink.groupName].push(childLink);
|
|
699
|
-
}
|
|
700
|
-
return grouped;
|
|
701
|
-
}, {});
|
|
702
|
-
const getChildExtraClass = (index) => {
|
|
703
|
-
if (isCards && (index === 3 || index === 4)) {
|
|
704
|
-
return "xl:-mt-32";
|
|
705
|
-
}
|
|
706
|
-
return "";
|
|
707
|
-
};
|
|
708
|
-
return Object.entries(groupedChildMenus).map(([groupName, childLinks], index) => /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn("py-4 px-4 ", getChildExtraClass(index)), children: [
|
|
709
|
-
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-muted-1", children: groupName }),
|
|
710
|
-
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "w-[200px] gap-3 md:w-[250px] lg:w-[250px]", children: childLinks.map((link) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-start items-center", children: [
|
|
711
|
-
link.icon,
|
|
712
|
-
/* @__PURE__ */ jsxRuntime.jsx(ListItem, { title: link.title, href: link.href, className: "ml-[14px]", children: link.contents }, link.title)
|
|
713
|
-
] }, link.title)) })
|
|
714
|
-
] }, groupName));
|
|
715
|
-
};
|
|
716
|
-
var DesktopHeader = ({
|
|
717
|
-
links,
|
|
718
|
-
className = "",
|
|
719
|
-
noAuth = false,
|
|
720
|
-
noCommerce = false,
|
|
721
|
-
children,
|
|
722
|
-
logoVariant = "full"
|
|
723
|
-
}) => {
|
|
724
|
-
const [isMenuOpened, setIsMenuOpen] = React7__namespace.default.useState(false);
|
|
725
|
-
return /* @__PURE__ */ jsxRuntime.jsx(ui.Box, { tag: "header", id: "DESKTOP_HEADER", className: ui.cn(
|
|
726
|
-
"bg-[rgba(0, 0, 0, 0.5)] !backdrop-blur-3xl fixed z-header top-0 left-0 right-0",
|
|
727
|
-
className,
|
|
728
|
-
isMenuOpened ? " h-full" : ""
|
|
729
|
-
), children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: "flex flex-row h-[80px] items-center justify-between mx-[24px] w-full max-w-screen", children: [
|
|
730
|
-
/* @__PURE__ */ jsxRuntime.jsx(Logo, { size: logoVariant === "mark" ? "lg" : "md", href: "/", outerClx: "hidden lg:flex", variant: logoVariant }, "two"),
|
|
731
|
-
/* @__PURE__ */ jsxRuntime.jsx(Logo, { size: "sm", href: "/", outerClx: "hidden md:flex lg:hidden", variant: logoVariant }, "one"),
|
|
732
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex w-full gap-4 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(desktop_nav_menu_default, { links, isMenuOpened, setIsMenuOpen }) }),
|
|
733
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center", children: [
|
|
734
|
-
!noCommerce && /* @__PURE__ */ jsxRuntime.jsx(desktop_bag_popup_default, { popupClx: "w-[340px]", trigger: /* @__PURE__ */ jsxRuntime.jsx(bag_button_default, { className: "text-primary -mr-[3px] lg:min-w-0" }) }),
|
|
735
|
-
!noAuth && /* @__PURE__ */ jsxRuntime.jsx(widget_default, {}),
|
|
736
|
-
children
|
|
737
|
-
] })
|
|
738
|
-
] }) });
|
|
739
|
-
};
|
|
740
|
-
var desktop_default = DesktopHeader;
|
|
741
|
-
var Login = ({
|
|
742
|
-
className,
|
|
743
|
-
onSuccess
|
|
744
|
-
}) => {
|
|
745
|
-
const { config } = react.useIam();
|
|
746
|
-
const [state] = React7.useState(() => crypto.randomUUID());
|
|
747
|
-
React7.useEffect(remember, []);
|
|
748
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
749
|
-
react.Login,
|
|
750
|
-
{
|
|
751
|
-
serverUrl: config.serverUrl,
|
|
752
|
-
clientId: config.clientId,
|
|
753
|
-
redirectUri: config.redirectUri,
|
|
754
|
-
organization: config.organization,
|
|
755
|
-
state,
|
|
756
|
-
className: ui.cn("hanzo-iam-card", className),
|
|
757
|
-
onSuccess
|
|
758
|
-
}
|
|
759
|
-
);
|
|
760
|
-
};
|
|
761
|
-
var login_default = Login;
|
|
762
|
-
var MobileMenuToggleButton = ({
|
|
763
|
-
open: open2,
|
|
764
|
-
setOpen,
|
|
765
|
-
className = ""
|
|
766
|
-
}) => {
|
|
767
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
768
|
-
primitives.Button,
|
|
769
|
-
{
|
|
770
|
-
variant: "ghost",
|
|
771
|
-
size: "default",
|
|
772
|
-
className: ui.cn("rounded-full", ui.cn("p-0 aspect-square hover:bg-background sm:hover:bg-level-1 active:scale-75", className)),
|
|
773
|
-
onClick: () => {
|
|
774
|
-
setOpen(!open2);
|
|
775
|
-
},
|
|
776
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { width: 28, height: 28, style: ui.css(
|
|
777
|
-
"block h-full will-change-transform transition-transform transition-scale transition-duration-[1500] " + (open2 ? "rotate-[135deg] scale-110" : "rotate-none")
|
|
778
|
-
) })
|
|
779
|
-
}
|
|
780
|
-
);
|
|
781
|
-
};
|
|
782
|
-
var mobile_menu_toggle_button_default = MobileMenuToggleButton;
|
|
783
|
-
var MobileBagDrawer = ({
|
|
784
|
-
open: open2,
|
|
785
|
-
setOpen,
|
|
786
|
-
handleCheckout,
|
|
787
|
-
className = ""
|
|
788
|
-
}) => {
|
|
789
|
-
return /* @__PURE__ */ jsxRuntime.jsx(primitives.Drawer, { open: open2, onOpenChange: setOpen, children: /* @__PURE__ */ jsxRuntime.jsx(primitives.DrawerContent, { className: ui.cn("rounded-t-xl mt-6 pb-12 h-auto", className), children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
790
|
-
commerce.CartPanel,
|
|
791
|
-
{
|
|
792
|
-
handleCheckout,
|
|
793
|
-
className: "mt-4 mb-4 border-none py-0 px-4 w-full ",
|
|
794
|
-
listClx: "rounded-sm pr-3",
|
|
795
|
-
scrollAfter: 5,
|
|
796
|
-
itemClx: "mt-2",
|
|
797
|
-
totalClx: "sticky px-1 pr-2 border rounded-sm -bottom-[1px] bg-background",
|
|
798
|
-
buttonClx: "max-w-[220px] flex-none",
|
|
799
|
-
children: [
|
|
800
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-row items-center flex-none justify-center ", children: [
|
|
801
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
802
|
-
bag_button_default,
|
|
803
|
-
{
|
|
804
|
-
animateOnHover: false,
|
|
805
|
-
showIfEmpty: true,
|
|
806
|
-
className: "mr-2 relative w-6 h-7",
|
|
807
|
-
iconClx: "fill-foreground "
|
|
808
|
-
}
|
|
809
|
-
),
|
|
810
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-heading text-foreground text-default", children: "Your Bag" })
|
|
811
|
-
] }),
|
|
812
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-[1px] w-pr-80 bg-muted-3 mx-auto mt-1.5 flex-none" })
|
|
813
|
-
]
|
|
814
|
-
}
|
|
815
|
-
) }) });
|
|
816
|
-
};
|
|
817
|
-
var mobile_bag_drawer_default = MobileBagDrawer;
|
|
818
|
-
var MobileNavMenuAI = ({ setMenuOpen }) => {
|
|
819
|
-
const [isOpen, setIsOpen] = React7.useState(false);
|
|
820
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
821
|
-
/* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: "w-full text-2xl cursor-pointer", children: [
|
|
822
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
|
|
823
|
-
/* @__PURE__ */ jsxRuntime.jsx(Logo, { variant: "wordmark", size: "md", outerClx: "p-6 h-full" }),
|
|
824
|
-
/* @__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) }) })
|
|
825
|
-
] }),
|
|
826
|
-
/* @__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: [
|
|
827
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-base pl-2 font-light", children: "Ask AI a question" }),
|
|
828
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRight, {})
|
|
829
|
-
] }) })
|
|
830
|
-
] }),
|
|
831
|
-
/* @__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: [
|
|
832
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex px-4 py-2 h-16 bg-level-0 items-center justify-between", children: [
|
|
833
|
-
/* @__PURE__ */ jsxRuntime.jsxs("h3", { className: "font-semibold font-heading", children: [
|
|
834
|
-
"LUX",
|
|
835
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "opacity-60", children: "AI" })
|
|
836
|
-
] }),
|
|
837
|
-
/* @__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" }) })
|
|
838
|
-
] }),
|
|
839
|
-
/* @__PURE__ */ jsxRuntime.jsx("iframe", { src: "https://lux.chat/iframe", className: "h-full" })
|
|
840
|
-
] }) })
|
|
841
|
-
] });
|
|
842
|
-
};
|
|
843
|
-
var mobile_nav_menu_ai_default = MobileNavMenuAI;
|
|
844
|
-
var MobileNav = ({
|
|
845
|
-
currentAs,
|
|
846
|
-
links,
|
|
847
|
-
setMenuState,
|
|
848
|
-
className = "",
|
|
849
|
-
commonItemClx,
|
|
850
|
-
setChatbotOpen,
|
|
851
|
-
setMenuOpen
|
|
852
|
-
}) => links.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn("flex flex-col h-full", className), children: [
|
|
853
|
-
/* @__PURE__ */ jsxRuntime.jsx(mobile_nav_menu_ai_default, { setMenuOpen }),
|
|
854
|
-
/* @__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) => {
|
|
855
|
-
const itemClx = commonItemClx ? typeof commonItemClx === "string" ? commonItemClx : commonItemClx(el) : "";
|
|
856
|
-
const variant = el.variant ?? "link";
|
|
857
|
-
let internalClx = variant === "link" ? " text-muted hover:text-foreground active:text-accent rounded-none" : " min-w-0";
|
|
858
|
-
if (currentAs && currentAs === el.href) {
|
|
859
|
-
internalClx += " pointer-events-none";
|
|
860
|
-
if (variant === "link") {
|
|
861
|
-
internalClx += " text-accent";
|
|
862
|
-
}
|
|
863
|
-
}
|
|
864
|
-
if (!el.isAIMenu) {
|
|
865
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(primitives.AccordionItem, { value: el.title ? el.title : "", className: "!no-underline !border-0 px-6", children: [
|
|
866
|
-
/* @__PURE__ */ jsxRuntime.jsxs(primitives.AccordionTrigger, { className: ui.cn(internalClx, itemClx, ""), children: [
|
|
867
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Box, { className: ui.cn(internalClx, itemClx, "flex items-center justify-between w-full pl-3 text-base font-normal leading-6"), children: el.title }),
|
|
868
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { style: ui.css("w-4 h-4 mr-3") })
|
|
869
|
-
] }),
|
|
870
|
-
/* @__PURE__ */ jsxRuntime.jsx(primitives.AccordionContent, { children: el.childMenu && /* @__PURE__ */ jsxRuntime.jsx(ui.Box, { className: "px-4", children: Object.entries(el.childMenu.reduce((acc, child) => {
|
|
871
|
-
const group = acc[child.groupName ? child.groupName : ""] || [];
|
|
872
|
-
group.push(child);
|
|
873
|
-
acc[child.groupName ? child.groupName : ""] = group;
|
|
874
|
-
return acc;
|
|
875
|
-
}, {})).map(([groupName, children]) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
876
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Box, { className: "mt-4 mb-4 font-light text-muted-1", children: groupName }),
|
|
877
|
-
children.map((child, childIndex) => /* @__PURE__ */ jsxRuntime.jsx(ui.Box, { className: "m-2", children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: "flex items-center py-1", children: [
|
|
878
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: child.icon && child.icon }),
|
|
879
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
880
|
-
Link2__default.default,
|
|
881
|
-
{
|
|
882
|
-
href: child.href,
|
|
883
|
-
target: child.newTab ? "_blank" : "_self",
|
|
884
|
-
rel: "noopener noreferrer",
|
|
885
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(ui.Box, { tag: "span", className: "text-muted-2 hover:underline ml-5 hover:text-primary", children: child.title })
|
|
886
|
-
}
|
|
887
|
-
)
|
|
888
|
-
] }) }, childIndex))
|
|
889
|
-
] }, groupName)) }) })
|
|
890
|
-
] }, index);
|
|
891
|
-
}
|
|
892
|
-
}) }) }),
|
|
893
|
-
/* @__PURE__ */ jsxRuntime.jsx(widget_default, { className: "text-2xl z-10", handleLogin: () => {
|
|
894
|
-
setMenuState("login");
|
|
895
|
-
} })
|
|
896
|
-
] }) : null;
|
|
897
|
-
var mobile_nav_menu_default = MobileNav;
|
|
898
|
-
var bagClx = "mt-4 mb-8 border-none py-0 px-4 w-full sm:min-w-[350px] sm:max-w-[500px] sm:mx-auto min-h-[60vh] max-h-[70vh] sm:animate-in sm:zoom-in-90 ";
|
|
899
|
-
var MobileHeader = ({
|
|
900
|
-
currentAs,
|
|
901
|
-
links,
|
|
902
|
-
className = "",
|
|
903
|
-
setChatbotOpen,
|
|
904
|
-
noAuth = false,
|
|
905
|
-
// :aa TODO
|
|
906
|
-
noCommerce = false
|
|
907
|
-
// :aa TODO
|
|
908
|
-
}) => {
|
|
909
|
-
const cmmc = commerce.useCommerce();
|
|
910
|
-
const [menuState, setMenuState] = React7.useState("closed");
|
|
911
|
-
const [bagDrawerOpen, setBagDrawerOpen] = React7.useState(false);
|
|
912
|
-
const router = navigation.useRouter();
|
|
913
|
-
React7.useEffect(() => {
|
|
914
|
-
if (menuState === "bag" || bagDrawerOpen) {
|
|
915
|
-
sendGAEvent("view_cart", {
|
|
916
|
-
items: cmmc.cartItems.map((item) => ({
|
|
917
|
-
item_id: item.sku,
|
|
918
|
-
item_name: item.title,
|
|
919
|
-
item_category: item.familyId,
|
|
920
|
-
price: item.price,
|
|
921
|
-
quantity: item.quantity
|
|
922
|
-
})),
|
|
923
|
-
value: cmmc.cartTotal,
|
|
924
|
-
currency: "USD"
|
|
925
|
-
});
|
|
926
|
-
}
|
|
927
|
-
}, [menuState, bagDrawerOpen]);
|
|
928
|
-
const menuOpen = () => menuState !== "closed";
|
|
929
|
-
const onLoginChanged = (token) => {
|
|
930
|
-
if (!!token) {
|
|
931
|
-
setMenuState("nav");
|
|
932
|
-
}
|
|
933
|
-
};
|
|
934
|
-
const setMenuOpen = (open2) => {
|
|
935
|
-
if (!open2) {
|
|
936
|
-
setMenuState("closed");
|
|
937
|
-
} else {
|
|
938
|
-
setMenuState("nav");
|
|
939
|
-
}
|
|
940
|
-
};
|
|
941
|
-
const handleCheckout = () => {
|
|
942
|
-
setMenuState("closed");
|
|
943
|
-
setBagDrawerOpen(false);
|
|
944
|
-
router.push("/checkout");
|
|
945
|
-
};
|
|
946
|
-
const openBag = () => {
|
|
947
|
-
if (menuOpen()) {
|
|
948
|
-
setMenuState("bag");
|
|
949
|
-
} else {
|
|
950
|
-
setBagDrawerOpen(true);
|
|
951
|
-
}
|
|
952
|
-
};
|
|
953
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
954
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Box, { tag: "header", id: "MOBILE_HEADER", className: ui.cn(
|
|
955
|
-
`bg-background fixed z-header top-0 left-0 w-full ${menuOpen() ? "hidden" : "block"}`,
|
|
956
|
-
className
|
|
957
|
-
), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full h-full flex flex-row justify-between items-center font-bold pr-5", children: [
|
|
958
|
-
/* @__PURE__ */ jsxRuntime.jsx(Logo, { href: "/", size: "md", outerClx: "p-6 h-full", variant: "wordmark" }),
|
|
959
|
-
menuOpen() && /* @__PURE__ */ jsxRuntime.jsx(ui.Box, { className: "absolute left-0 top-0 bottom-0 right-0 pl-8 flex flex-row bg-background animate-mobile-menu-open", children: /* @__PURE__ */ jsxRuntime.jsx(avatar_default, { className: "self-center " }) }),
|
|
960
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-0 flex-row", children: [
|
|
961
|
-
/* @__PURE__ */ jsxRuntime.jsx(bag_button_default, { className: "text-primary -mr-[3px]", onClick: openBag }),
|
|
962
|
-
/* @__PURE__ */ jsxRuntime.jsx(mobile_menu_toggle_button_default, { className: "text-foreground", open: menuOpen(), setOpen: setMenuOpen })
|
|
963
|
-
] })
|
|
964
|
-
] }) }),
|
|
965
|
-
!noCommerce && /* @__PURE__ */ jsxRuntime.jsx(
|
|
966
|
-
mobile_bag_drawer_default,
|
|
967
|
-
{
|
|
968
|
-
className: "",
|
|
969
|
-
open: bagDrawerOpen,
|
|
970
|
-
setOpen: setBagDrawerOpen,
|
|
971
|
-
handleCheckout
|
|
972
|
-
}
|
|
973
|
-
),
|
|
974
|
-
menuOpen() && /* @__PURE__ */ jsxRuntime.jsx(ui.Box, { className: "fixed top-0 left-0 w-full h-full flex flex-column bg-background z-below-header animate-mobile-menu-open", children: !!!noAuth && menuState === "login" ? /* @__PURE__ */ jsxRuntime.jsx(login_default, { onSuccess: onLoginChanged, className: "sm:animate-in sm:zoom-in-90 m-auto w-full max-w-sm px-8" }) : !!!noCommerce && menuState === "bag" ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
975
|
-
commerce.CartPanel,
|
|
976
|
-
{
|
|
977
|
-
handleCheckout: () => {
|
|
978
|
-
router.push("/checkout");
|
|
979
|
-
},
|
|
980
|
-
className: bagClx,
|
|
981
|
-
listClx: "rounded-sm",
|
|
982
|
-
scrollAfter: 6,
|
|
983
|
-
scrollHeightClx: "h-[80vh]",
|
|
984
|
-
itemClx: "mt-2",
|
|
985
|
-
totalClx: "sticky px-1 pr-2 border rounded-sm -bottom-[1px] bg-level-1",
|
|
986
|
-
buttonClx: "max-w-[220px] flex-none",
|
|
987
|
-
children: [
|
|
988
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-row items-center flex-none justify-center ", children: [
|
|
989
|
-
/* @__PURE__ */ jsxRuntime.jsx(bag_icon_default, { className: "mr-2 relative w-4 h-5 fill-foreground " }),
|
|
990
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-heading text-foreground text-default", children: "Your Bag" })
|
|
991
|
-
] }),
|
|
992
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-[1px] w-pr-80 bg-muted-3 mx-auto mt-1.5 flex-none" })
|
|
993
|
-
]
|
|
994
|
-
}
|
|
995
|
-
) : (
|
|
996
|
-
/* menuState === 'nav' */
|
|
997
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
998
|
-
mobile_nav_menu_default,
|
|
999
|
-
{
|
|
1000
|
-
currentAs,
|
|
1001
|
-
links,
|
|
1002
|
-
className: "sm:animate-in sm:zoom-in-90 w-full",
|
|
1003
|
-
commonItemClx: "px-0 text-xl h-16 justify-start ",
|
|
1004
|
-
setMenuState,
|
|
1005
|
-
setChatbotOpen,
|
|
1006
|
-
setMenuOpen
|
|
1007
|
-
}
|
|
1008
|
-
)
|
|
1009
|
-
) })
|
|
1010
|
-
] });
|
|
1011
|
-
};
|
|
1012
|
-
var mobile_default = MobileHeader;
|
|
1013
|
-
var Header = ({
|
|
1014
|
-
siteDef,
|
|
1015
|
-
className = "",
|
|
1016
|
-
children,
|
|
1017
|
-
logoVariant = "full"
|
|
1018
|
-
}) => {
|
|
1019
|
-
const [open2, setOpen] = React7__namespace.default.useState(false);
|
|
1020
|
-
const { nav: { common, featured }, currentAs, noAuth, commerce } = siteDef;
|
|
1021
|
-
const links = featured ? [...common, ...featured] : common;
|
|
1022
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1023
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1024
|
-
desktop_default,
|
|
1025
|
-
{
|
|
1026
|
-
className: ui.cn(className, "hidden md:flex"),
|
|
1027
|
-
links,
|
|
1028
|
-
currentAs,
|
|
1029
|
-
noAuth,
|
|
1030
|
-
noCommerce: !!!commerce,
|
|
1031
|
-
logoVariant,
|
|
1032
|
-
children
|
|
1033
|
-
}
|
|
1034
|
-
),
|
|
1035
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1036
|
-
mobile_default,
|
|
1037
|
-
{
|
|
1038
|
-
className: ui.cn(className, "md:hidden"),
|
|
1039
|
-
links,
|
|
1040
|
-
currentAs,
|
|
1041
|
-
setChatbotOpen: setOpen,
|
|
1042
|
-
noAuth,
|
|
1043
|
-
noCommerce: !!!commerce
|
|
1044
|
-
}
|
|
1045
|
-
)
|
|
1046
|
-
] });
|
|
1047
|
-
};
|
|
1048
|
-
var header_default = Header;
|
|
1049
|
-
var Main = ({
|
|
1050
|
-
children,
|
|
1051
|
-
className = "",
|
|
1052
|
-
headerSpace = true,
|
|
1053
|
-
standardWidth = true,
|
|
1054
|
-
id
|
|
1055
|
-
}) => /* @__PURE__ */ jsxRuntime.jsx(ui.Box, { tag: "main", id: id ?? "LUX_UI_MAIN", className: ui.cn(
|
|
1056
|
-
"flex flex-col justify-start items-center",
|
|
1057
|
-
"px-4 md:px-6 lg:px-8",
|
|
1058
|
-
standardWidth ? "max-w-screen-2xl w-full lg:mx-auto" : "",
|
|
1059
|
-
headerSpace ? "pt-[44px] md:pt-[80px]" : "py-4",
|
|
1060
|
-
className
|
|
1061
|
-
), children });
|
|
1062
|
-
var main_default = Main;
|
|
1063
|
-
var MiniChart = ({
|
|
1064
|
-
widgetProps,
|
|
1065
|
-
containerStyles = {}
|
|
1066
|
-
}) => {
|
|
1067
|
-
const {
|
|
1068
|
-
symbol,
|
|
1069
|
-
exchange,
|
|
1070
|
-
lineColor,
|
|
1071
|
-
topGradientColor,
|
|
1072
|
-
bottomGradientColor,
|
|
1073
|
-
width,
|
|
1074
|
-
height,
|
|
1075
|
-
autosize,
|
|
1076
|
-
locale,
|
|
1077
|
-
...rest
|
|
1078
|
-
} = widgetProps;
|
|
1079
|
-
const symbolString = exchange ? `${exchange}:${symbol}` : symbol;
|
|
1080
|
-
const containerRef = React7.useRef(null);
|
|
1081
|
-
React7.useEffect(() => {
|
|
1082
|
-
if (!containerRef.current) {
|
|
1083
|
-
return;
|
|
1084
|
-
}
|
|
1085
|
-
const script = document.createElement("script");
|
|
1086
|
-
script.type = "text/javascript";
|
|
1087
|
-
script.src = "https://s3.tradingview.com/external-embedding/embed-widget-mini-symbol-overview.js";
|
|
1088
|
-
script.async = true;
|
|
1089
|
-
script.onload = async () => {
|
|
1090
|
-
const iframe = containerRef.current?.querySelector("iframe");
|
|
1091
|
-
if (iframe && iframe instanceof Element) {
|
|
1092
|
-
iframe.style.colorScheme = "normal";
|
|
1093
|
-
setTimeout(() => {
|
|
1094
|
-
document.querySelector("#mini-symbol-overview-ticker");
|
|
1095
|
-
}, 1200);
|
|
1096
|
-
}
|
|
1097
|
-
const copyDiv = document.querySelector(".tradingview-widget-copyright");
|
|
1098
|
-
if (copyDiv) {
|
|
1099
|
-
setTimeout(() => {
|
|
1100
|
-
copyDiv.classList.remove("invisible");
|
|
1101
|
-
}, 1200);
|
|
1102
|
-
}
|
|
1103
|
-
};
|
|
1104
|
-
const config = JSON.stringify({
|
|
1105
|
-
symbol: symbolString,
|
|
1106
|
-
width: autosize ? "100%" : width || 350,
|
|
1107
|
-
height: autosize ? "100%" : height || 220,
|
|
1108
|
-
locale: locale ?? "en",
|
|
1109
|
-
isTransparent: "true",
|
|
1110
|
-
trendLineColor: lineColor || "rgba(41, 98, 255, 1)",
|
|
1111
|
-
underLineColor: topGradientColor || "rgba(41, 98, 255, 0.3)",
|
|
1112
|
-
underLineBottomColor: bottomGradientColor || "rgba(41, 98, 255, 0)",
|
|
1113
|
-
...rest
|
|
1114
|
-
});
|
|
1115
|
-
script.innerHTML = config;
|
|
1116
|
-
containerRef.current.appendChild(script);
|
|
1117
|
-
return () => {
|
|
1118
|
-
while (containerRef.current?.firstChild) {
|
|
1119
|
-
containerRef.current.removeChild(containerRef.current.firstChild);
|
|
1120
|
-
}
|
|
1121
|
-
};
|
|
1122
|
-
}, [JSON.stringify(widgetProps)]);
|
|
1123
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1124
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { style: containerStyles, className: "tradingview-widget-container h-[150px]", ref: containerRef }),
|
|
1125
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "tradingview-widget-copyright border-t w-full invisible", children: [
|
|
1126
|
-
/* @__PURE__ */ jsxRuntime.jsx("a", { href: `https://www.tradingview.com/symbols/${symbol}${exchange ? `/?exchange=${exchange}` : ""}`, rel: "noopener", target: "_blank", children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { tag: "span", className: "text-[--hz-ui-primary]", children: [
|
|
1127
|
-
symbol,
|
|
1128
|
-
" quotes"
|
|
1129
|
-
] }) }),
|
|
1130
|
-
"\xA0by TradingView"
|
|
1131
|
-
] })
|
|
1132
|
-
] });
|
|
1133
|
-
};
|
|
1134
|
-
var mini_chart_default = MiniChart;
|
|
1135
|
-
var Wrapper = ({
|
|
1136
|
-
symbol,
|
|
1137
|
-
exchange
|
|
1138
|
-
}) => /* @__PURE__ */ jsxRuntime.jsx(mini_chart_default, { widgetProps: {
|
|
1139
|
-
symbol,
|
|
1140
|
-
exchange,
|
|
1141
|
-
autosize: true,
|
|
1142
|
-
colorTheme: "dark",
|
|
1143
|
-
lineColor: "rgb(114, 27, 228)",
|
|
1144
|
-
bottomGradientColor: "rgba(255, 255, 255, 0.1)",
|
|
1145
|
-
dateRange: "60M"
|
|
1146
|
-
} });
|
|
1147
|
-
var wrapper_default = Wrapper;
|
|
1148
|
-
var NotFound = ({
|
|
1149
|
-
header = false,
|
|
1150
|
-
siteDef
|
|
1151
|
-
}) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1152
|
-
header && /* @__PURE__ */ jsxRuntime.jsx(header_default, { siteDef }),
|
|
1153
|
-
/* @__PURE__ */ jsxRuntime.jsx(main_default, { className: "h-[100svh] sm:h-[700px] px-8 sm:px-10", headerSpace: header, children: /* @__PURE__ */ jsxRuntime.jsxs(ui.ApplyTypography, { className: "mt-[200px] flex flex-col md:gap-8", children: [
|
|
1154
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { children: "...Huh?" }),
|
|
1155
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { children: "Sorry, we're fresh out of those." }),
|
|
1156
|
-
/* @__PURE__ */ jsxRuntime.jsxs("h4", { children: [
|
|
1157
|
-
"...try something from the ",
|
|
1158
|
-
/* @__PURE__ */ jsxRuntime.jsx("a", { href: "/", children: "Home Page" }),
|
|
1159
|
-
"?"
|
|
1160
|
-
] })
|
|
1161
|
-
] }) }),
|
|
1162
|
-
/* @__PURE__ */ jsxRuntime.jsx(footer_default, { siteDef })
|
|
1163
|
-
] });
|
|
1164
|
-
var not_found_default = NotFound;
|
|
1165
|
-
var ORG = "lux";
|
|
1166
|
-
var CALLBACK = "/auth/callback";
|
|
1167
|
-
var configure = (app) => ({
|
|
1168
|
-
serverUrl: paths.BRAND_SERVER_URLS[ORG],
|
|
1169
|
-
organization: ORG,
|
|
1170
|
-
clientId: `${ORG}-${app}`,
|
|
1171
|
-
/* Read per render rather than at module load: one bundle serves the real
|
|
1172
|
-
host and any preview of it, and each must redeem its code back to itself. */
|
|
1173
|
-
redirectUri: (typeof window === "undefined" ? "" : window.location.origin) + CALLBACK
|
|
81
|
+
Object.defineProperty(exports, "ContactDialog", {
|
|
82
|
+
enumerable: true,
|
|
83
|
+
get: function () { return index_js__default$2.default; }
|
|
1174
84
|
});
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
variant = "ghost",
|
|
1179
|
-
size = "default",
|
|
1180
|
-
clx = "",
|
|
1181
|
-
iconClx = "",
|
|
1182
|
-
onBack
|
|
1183
|
-
}) => {
|
|
1184
|
-
const router = navigation.useRouter();
|
|
1185
|
-
const back = () => {
|
|
1186
|
-
if (onBack) {
|
|
1187
|
-
onBack();
|
|
1188
|
-
}
|
|
1189
|
-
router.back();
|
|
1190
|
-
};
|
|
1191
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1192
|
-
primitives.Button,
|
|
1193
|
-
{
|
|
1194
|
-
variant,
|
|
1195
|
-
size,
|
|
1196
|
-
onClick: back,
|
|
1197
|
-
className: clx,
|
|
1198
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeft, { style: ui.css(iconClx) })
|
|
1199
|
-
}
|
|
1200
|
-
);
|
|
1201
|
-
};
|
|
1202
|
-
var back_button_default = BackButton;
|
|
1203
|
-
mobxReactLite.enableStaticRendering(typeof window === "undefined");
|
|
1204
|
-
var CommerceUIContext = React7.createContext(void 0);
|
|
1205
|
-
var useCommerceDrawer = () => {
|
|
1206
|
-
return React7.useContext(CommerceUIContext);
|
|
1207
|
-
};
|
|
1208
|
-
var useSelectAndBuy = () => {
|
|
1209
|
-
return React7.useContext(CommerceUIContext);
|
|
1210
|
-
};
|
|
1211
|
-
var CommerceDrawer = mobxReactLite.observer(({
|
|
1212
|
-
children,
|
|
1213
|
-
handleHandleClicked,
|
|
1214
|
-
drawerClx = "",
|
|
1215
|
-
...rest
|
|
1216
|
-
}) => {
|
|
1217
|
-
const drawer = useCommerceDrawer();
|
|
1218
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1219
|
-
primitives.Drawer,
|
|
1220
|
-
{
|
|
1221
|
-
open: drawer.open,
|
|
1222
|
-
onOpenChange: () => {
|
|
1223
|
-
},
|
|
1224
|
-
modal: drawer.modal,
|
|
1225
|
-
snapPoints: drawer.points,
|
|
1226
|
-
activeSnapPoint: drawer.activePoint,
|
|
1227
|
-
setActiveSnapPoint: drawer.onActivePointChanged.bind(drawer),
|
|
1228
|
-
fastDragSkipsToEnd: false,
|
|
1229
|
-
dragHandleOnly: true,
|
|
1230
|
-
handleHandleClicked,
|
|
1231
|
-
extendHandleDragRegion: false,
|
|
1232
|
-
...rest,
|
|
1233
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1234
|
-
primitives.DrawerContent,
|
|
1235
|
-
{
|
|
1236
|
-
defaultHandle: false,
|
|
1237
|
-
className: ui.cn(
|
|
1238
|
-
"border-0",
|
|
1239
|
-
drawer.isMobile ? "pt-5" : "pt-6",
|
|
1240
|
-
"w-full h-full"
|
|
1241
|
-
),
|
|
1242
|
-
onOpenAutoFocus: (e) => {
|
|
1243
|
-
e.preventDefault();
|
|
1244
|
-
},
|
|
1245
|
-
children: [
|
|
1246
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1247
|
-
primitives.DrawerHandle,
|
|
1248
|
-
{
|
|
1249
|
-
className: ui.cn(
|
|
1250
|
-
"absolute top-0 left-0 right-0 mx-auto z-10",
|
|
1251
|
-
"flex justify-center items-start",
|
|
1252
|
-
"border-t rounded-t-lg border-muted-3",
|
|
1253
|
-
drawer.isMobile ? "h-5 touch-pan-y" : "h-6"
|
|
1254
|
-
),
|
|
1255
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(ui.Box, { className: ui.cn(
|
|
1256
|
-
// pseudo-handle
|
|
1257
|
-
"rounded-[3px] bg-level-3",
|
|
1258
|
-
drawer.isMobile ? "w-[155px] mt-[5px] h-1.5" : "w-[180px] mt-[3px] h-2.5 hover:bg-level-4",
|
|
1259
|
-
!drawer.isMobile ? "cursor-grab active:cursor-grabbing" : ""
|
|
1260
|
-
) })
|
|
1261
|
-
}
|
|
1262
|
-
),
|
|
1263
|
-
children
|
|
1264
|
-
]
|
|
1265
|
-
}
|
|
1266
|
-
)
|
|
1267
|
-
}
|
|
1268
|
-
);
|
|
85
|
+
Object.defineProperty(exports, "Copyright", {
|
|
86
|
+
enumerable: true,
|
|
87
|
+
get: function () { return copyright_js__default.default; }
|
|
1269
88
|
});
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
showArrow = true,
|
|
1274
|
-
showQuantity = true,
|
|
1275
|
-
clx = "",
|
|
1276
|
-
iconClx = "",
|
|
1277
|
-
digitClx = ""
|
|
1278
|
-
}) => {
|
|
1279
|
-
const cmmc = commerce.useCommerce();
|
|
1280
|
-
const wiggleRef = React7.useRef(mobx.observable.box("none"));
|
|
1281
|
-
React7.useEffect(() => (
|
|
1282
|
-
// return IReactionDisposer
|
|
1283
|
-
animateOnQuantityChange ? mobx.reaction(
|
|
1284
|
-
() => cmmc.cartQuantity,
|
|
1285
|
-
(curr, prev) => {
|
|
1286
|
-
if (curr > prev) {
|
|
1287
|
-
mobx.runInAction(() => {
|
|
1288
|
-
wiggleRef.current.set("more");
|
|
1289
|
-
});
|
|
1290
|
-
} else {
|
|
1291
|
-
mobx.runInAction(() => {
|
|
1292
|
-
wiggleRef.current.set("less");
|
|
1293
|
-
});
|
|
1294
|
-
}
|
|
1295
|
-
setTimeout(() => {
|
|
1296
|
-
mobx.runInAction(() => {
|
|
1297
|
-
wiggleRef.current.set("none");
|
|
1298
|
-
});
|
|
1299
|
-
}, 800);
|
|
1300
|
-
}
|
|
1301
|
-
) : void 0
|
|
1302
|
-
), []);
|
|
1303
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn("flex items-center justify-center", clx), children: [
|
|
1304
|
-
showQuantity && /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn(
|
|
1305
|
-
"relative flex items-center justify-center mr-1",
|
|
1306
|
-
wiggleRef.current.get() === "more" ? "item-added-to-cart-animation" : wiggleRef.current.get() === "less" ? "item-removed-from-cart-animation" : ""
|
|
1307
|
-
), children: [
|
|
1308
|
-
cmmc.cartQuantity > 0 && /* @__PURE__ */ jsxRuntime.jsx(ui.Box, { className: ui.cn(
|
|
1309
|
-
"z-above-content flex flex-col justify-center items-center",
|
|
1310
|
-
"absolute left-0 right-0 top-0 bottom-0",
|
|
1311
|
-
digitClx
|
|
1312
|
-
), children: /* @__PURE__ */ jsxRuntime.jsx("div", { style: {
|
|
1313
|
-
/* color: 'white' tailwind bug? ,*/
|
|
1314
|
-
fontSize: "11px",
|
|
1315
|
-
position: "relative",
|
|
1316
|
-
top: "1px"
|
|
1317
|
-
}, children: cmmc.cartQuantity }) }),
|
|
1318
|
-
/* @__PURE__ */ jsxRuntime.jsx(bag_icon_default, { width: "19", height: "24", className: ui.cn("relative -top-[3px] opacity-70", iconClx), "aria-hidden": "true" })
|
|
1319
|
-
] }),
|
|
1320
|
-
showArrow && /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: "17px" }, children: "\u203A" })
|
|
1321
|
-
] });
|
|
89
|
+
Object.defineProperty(exports, "Footer", {
|
|
90
|
+
enumerable: true,
|
|
91
|
+
get: function () { return footer_js__default.default; }
|
|
1322
92
|
});
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
rounded = "lg",
|
|
1327
|
-
className,
|
|
1328
|
-
showQuantity = true,
|
|
1329
|
-
showArrow = true,
|
|
1330
|
-
animateOnQuantityChange = true,
|
|
1331
|
-
centerText = true,
|
|
1332
|
-
children,
|
|
1333
|
-
...rest
|
|
1334
|
-
}) => {
|
|
1335
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1336
|
-
primitives.Button,
|
|
1337
|
-
{
|
|
1338
|
-
...rest,
|
|
1339
|
-
onClick: handleCheckout,
|
|
1340
|
-
variant,
|
|
1341
|
-
className: ui.cn(`rounded-${rounded}`, ui.cn(
|
|
1342
|
-
"flex justify-between items-stretch group",
|
|
1343
|
-
showQuantity ? centerText ? "px-1.5" : "pl-2.5 pr-1.5" : "",
|
|
1344
|
-
className
|
|
1345
|
-
)),
|
|
1346
|
-
children: [
|
|
1347
|
-
centerText && // must scale this one too, as it effects layout
|
|
1348
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1349
|
-
IconAndQuantity,
|
|
1350
|
-
{
|
|
1351
|
-
showArrow,
|
|
1352
|
-
showQuantity,
|
|
1353
|
-
clx: "invisible group-hover:scale-105 transition-scale transition-duration-300"
|
|
1354
|
-
}
|
|
1355
|
-
),
|
|
1356
|
-
children ?? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center items-center", children: "Checkout" }),
|
|
1357
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1358
|
-
IconAndQuantity,
|
|
1359
|
-
{
|
|
1360
|
-
clx: "group-hover:scale-105 transition-scale transition-duration-300",
|
|
1361
|
-
animateOnQuantityChange,
|
|
1362
|
-
showArrow,
|
|
1363
|
-
showQuantity,
|
|
1364
|
-
iconClx: "fill-background",
|
|
1365
|
-
digitClx: "text-foreground group-hover:opacity-80 leading-none font-bold font-sans"
|
|
1366
|
-
}
|
|
1367
|
-
)
|
|
1368
|
-
]
|
|
1369
|
-
}
|
|
1370
|
-
);
|
|
1371
|
-
};
|
|
1372
|
-
var checkout_button_default = CheckoutButton;
|
|
1373
|
-
var CN = {
|
|
1374
|
-
// h: mind padding!
|
|
1375
|
-
mobile: { w: 36, h: 32 },
|
|
1376
|
-
sm: { w: 60, h: 34 },
|
|
1377
|
-
desktop: { w: 60, h: 32 }
|
|
1378
|
-
};
|
|
1379
|
-
var Info = ({
|
|
1380
|
-
item,
|
|
1381
|
-
clx = ""
|
|
1382
|
-
}) => {
|
|
1383
|
-
const cmmc = commerce.useCommerce();
|
|
1384
|
-
const family = cmmc.getFamilyById(item.familyId);
|
|
1385
|
-
let topLine = family.title;
|
|
1386
|
-
if (item.sku.startsWith("LXM-AG") || item.sku.startsWith("LXM-AU")) {
|
|
1387
|
-
topLine = family.parentTitle + ", " + family.title;
|
|
1388
|
-
}
|
|
1389
|
-
const optionLabel = item.optionLabelShort ?? item.optionLabel;
|
|
1390
|
-
const priceStr = commerce.formatCurrencyValue(item.price);
|
|
1391
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1392
|
-
/* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn("sm:hidden flex flex-col !text-muted items-stretch whitespace-nowrap text-ellipsis ", clx), children: [
|
|
1393
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-left text-xs", children: topLine }),
|
|
1394
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between text-xxs", children: [
|
|
1395
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { children: optionLabel }),
|
|
1396
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "pl-2.5", children: priceStr })
|
|
1397
|
-
] })
|
|
1398
|
-
] }),
|
|
1399
|
-
/* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn("hidden sm:flex !text-muted flex-col items-stretch whitespace-nowrap text-ellipsis text-xs", clx), children: [
|
|
1400
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-left", children: topLine }),
|
|
1401
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
|
|
1402
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { children: optionLabel }),
|
|
1403
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "pl-2.5", children: priceStr })
|
|
1404
|
-
] })
|
|
1405
|
-
] })
|
|
1406
|
-
] });
|
|
1407
|
-
};
|
|
1408
|
-
var PROMPT_COMMON_CLX = "block absolute top-0 left-0 bg-transparent duration-400 transition-opacity";
|
|
1409
|
-
var Micro = mobxReactLite.observer(({
|
|
1410
|
-
clx = "",
|
|
1411
|
-
handleCheckout,
|
|
1412
|
-
handleItemClicked
|
|
1413
|
-
}) => {
|
|
1414
|
-
const drawer = useCommerceDrawer();
|
|
1415
|
-
const cmmc = commerce.useCommerce();
|
|
1416
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn(
|
|
1417
|
-
drawer.showRecent ? "grid grid-cols-2" : "flex justify-center items-center ",
|
|
1418
|
-
drawer.showRecent ? drawer.isMobile ? "-mt-3" : "-mt-3" : "",
|
|
1419
|
-
"gap-2 md:gap-3 relative",
|
|
1420
|
-
clx
|
|
1421
|
-
), children: [
|
|
1422
|
-
drawer.showRecent && /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: "flex flex-col items-stretch " + (drawer.isMobile ? "justify-start" : "group"), children: [
|
|
1423
|
-
/* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { tag: "p", className: "relative text-muted text-xxs md:text-xs leading-none pl-1 self-start " + (drawer.isMobile ? "top-[3px]" : "top-[1px]"), children: [
|
|
1424
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "invisible", children: "scrictly for layout" }),
|
|
1425
|
-
drawer.isMobile ? /* @__PURE__ */ jsxRuntime.jsx(ui.Box, { tag: "span", className: PROMPT_COMMON_CLX, children: "tap for options:" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1426
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Box, { tag: "span", className: PROMPT_COMMON_CLX + " group-hover:opacity-0", children: "recent item:" }),
|
|
1427
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Box, { tag: "span", className: PROMPT_COMMON_CLX + " opacity-0 group-hover:opacity-100", children: "view options:" })
|
|
1428
|
-
] })
|
|
1429
|
-
] }),
|
|
1430
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1431
|
-
primitives.Button,
|
|
1432
|
-
{
|
|
1433
|
-
variant: "ghost",
|
|
1434
|
-
className: ui.cn(`rounded-${drawer.isMobile ? "md" : "lg"}`, ui.cn(
|
|
1435
|
-
"box-content",
|
|
1436
|
-
"flex flex-row justify-between items-center gap-1",
|
|
1437
|
-
"-ml-1.5",
|
|
1438
|
-
"overflow-hidden ",
|
|
1439
|
-
"px-1 md:px-2 py-[2px]",
|
|
1440
|
-
"border border-transparent group-hover:border-muted-3",
|
|
1441
|
-
"group-hover:!bg-transparent",
|
|
1442
|
-
"!min-w-0"
|
|
1443
|
-
)),
|
|
1444
|
-
size: drawer.isMobile ? "sm" : "default",
|
|
1445
|
-
onClick: handleItemClicked,
|
|
1446
|
-
children: [
|
|
1447
|
-
cmmc.recentItem?.item.img && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1448
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.MediaStack, { media: { img: cmmc.recentItem.item.img }, constrainTo: CN.mobile, className: "sm:hidden grow-0 shrink-0" }),
|
|
1449
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.MediaStack, { media: { img: cmmc.recentItem.item.img }, constrainTo: CN.sm, className: "hidden sm:block md:hidden grow-0 shrink-0" }),
|
|
1450
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.MediaStack, { media: { img: cmmc.recentItem.item.img }, constrainTo: CN.desktop, className: "hidden md:block grow-0 shrink-0" })
|
|
1451
|
-
] }),
|
|
1452
|
-
cmmc.recentItem && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grow w-full", children: /* @__PURE__ */ jsxRuntime.jsx(Info, { item: cmmc.recentItem.item, clx: "w-full" }) })
|
|
1453
|
-
]
|
|
1454
|
-
}
|
|
1455
|
-
)
|
|
1456
|
-
] }),
|
|
1457
|
-
drawer.showCheckout && /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn(
|
|
1458
|
-
"flex flex-col w-full",
|
|
1459
|
-
drawer.showRecent ? "items-stretch" : "items-center",
|
|
1460
|
-
drawer.isMobile ? "justify-start" : "justify-center"
|
|
1461
|
-
), children: [
|
|
1462
|
-
drawer.showRecent && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "invisible text-muted text-xxs md:text-xs leading-none pl-1 self-start", children: "for layout" }),
|
|
1463
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1464
|
-
checkout_button_default,
|
|
1465
|
-
{
|
|
1466
|
-
handleCheckout,
|
|
1467
|
-
variant: "primary",
|
|
1468
|
-
size: drawer.isMobile ? "sm" : "lg",
|
|
1469
|
-
className: ui.cn(`rounded-${drawer.isMobile ? "md" : "lg"}`, ui.cn(
|
|
1470
|
-
drawer.isMobile ? drawer.showRecent ? "pl-3.5 pr-2.5" : "min-w-[320px]" : drawer.showRecent ? "" : "w-[320px]",
|
|
1471
|
-
"text-sm font-semibold"
|
|
1472
|
-
)),
|
|
1473
|
-
centerText: drawer.isMobile ? !drawer.showRecent : true
|
|
1474
|
-
}
|
|
1475
|
-
)
|
|
1476
|
-
] })
|
|
1477
|
-
] });
|
|
93
|
+
Object.defineProperty(exports, "Header", {
|
|
94
|
+
enumerable: true,
|
|
95
|
+
get: function () { return index_js__default$3.default; }
|
|
1478
96
|
});
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
const router = navigation.useRouter();
|
|
1484
|
-
const handleCheckout = () => {
|
|
1485
|
-
router.push("/checkout");
|
|
1486
|
-
};
|
|
1487
|
-
const handleHandleClicked = () => {
|
|
1488
|
-
if (drawer.state === "full") {
|
|
1489
|
-
buy.hideVariants();
|
|
1490
|
-
} else if (drawer.state === "micro") {
|
|
1491
|
-
buy.showRecentVariants();
|
|
1492
|
-
}
|
|
1493
|
-
};
|
|
1494
|
-
const handleItemClicked = () => {
|
|
1495
|
-
buy.showRecentVariants();
|
|
1496
|
-
};
|
|
1497
|
-
const handleCloseGesture = () => {
|
|
1498
|
-
if (drawer.state === "full") {
|
|
1499
|
-
buy.hideVariants();
|
|
1500
|
-
return true;
|
|
1501
|
-
}
|
|
1502
|
-
return false;
|
|
1503
|
-
};
|
|
1504
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1505
|
-
shell_default,
|
|
1506
|
-
{
|
|
1507
|
-
handleHandleClicked,
|
|
1508
|
-
handleCloseGesture,
|
|
1509
|
-
drawerClx: "flex flex-col",
|
|
1510
|
-
children: [
|
|
1511
|
-
drawer.state === "full" && /* The actual drawer is larger than the visible area (due to awkward
|
|
1512
|
-
vaul impl. So we have to ask the drawer for its currect snappoint
|
|
1513
|
-
and constrain layout to that.
|
|
1514
|
-
*/
|
|
1515
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { style: {
|
|
1516
|
-
height: drawer.snapPointPx - 24
|
|
1517
|
-
/* fudge factor for handle area */
|
|
1518
|
-
}, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1519
|
-
commerce.CarouselBuyCard,
|
|
1520
|
-
{
|
|
1521
|
-
skuPath: buy.currentSkuPath,
|
|
1522
|
-
checkoutButton: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1523
|
-
checkout_button_default,
|
|
1524
|
-
{
|
|
1525
|
-
handleCheckout,
|
|
1526
|
-
className: "w-full min-w-[160px] sm:max-w-[320px]"
|
|
1527
|
-
}
|
|
1528
|
-
),
|
|
1529
|
-
clx: "justify-between h-full pb-3 gap-8",
|
|
1530
|
-
addBtnClx: "w-full min-w-[160px] sm:max-w-[320px]",
|
|
1531
|
-
buttonsAreaClx: "grow-0 shrink-0 mt-0",
|
|
1532
|
-
selectorClx: "max-w-[475px] justify-between grow"
|
|
1533
|
-
}
|
|
1534
|
-
) }),
|
|
1535
|
-
drawer.state === "micro" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1536
|
-
micro_default,
|
|
1537
|
-
{
|
|
1538
|
-
handleCheckout,
|
|
1539
|
-
handleItemClicked,
|
|
1540
|
-
clx: "w-full px-2 sm:w-[460px] sm:mx-auto md:w-[550px]"
|
|
1541
|
-
}
|
|
1542
|
-
)
|
|
1543
|
-
]
|
|
1544
|
-
}
|
|
1545
|
-
);
|
|
97
|
+
exports.Icons = index_js__namespace;
|
|
98
|
+
Object.defineProperty(exports, "Logo", {
|
|
99
|
+
enumerable: true,
|
|
100
|
+
get: function () { return logo_js__default.default; }
|
|
1546
101
|
});
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
}) => {
|
|
1551
|
-
const drawer = useCommerceDrawer();
|
|
1552
|
-
if (!drawer) {
|
|
1553
|
-
throw new Error("DrawerMargin must be used with a CommerceUIContext!");
|
|
1554
|
-
}
|
|
1555
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1556
|
-
ui.Box,
|
|
1557
|
-
{
|
|
1558
|
-
className: ui.cn("transition-height", clx),
|
|
1559
|
-
style: {
|
|
1560
|
-
height: drawer.state === "micro" ? drawer.microHeight : 0
|
|
1561
|
-
}
|
|
1562
|
-
}
|
|
1563
|
-
);
|
|
102
|
+
Object.defineProperty(exports, "Main", {
|
|
103
|
+
enumerable: true,
|
|
104
|
+
get: function () { return main_js__default.default; }
|
|
1564
105
|
});
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
children,
|
|
1569
|
-
className = "",
|
|
1570
|
-
...rest
|
|
1571
|
-
}) => {
|
|
1572
|
-
const buyOptions = useSelectAndBuy();
|
|
1573
|
-
const handleClick = () => {
|
|
1574
|
-
buyOptions.showVariants(skuPath);
|
|
1575
|
-
};
|
|
1576
|
-
return /* @__PURE__ */ jsxRuntime.jsx(primitives.Button, { onClick: handleClick, ...rest, className: ui.cn(className, ""), children });
|
|
1577
|
-
};
|
|
1578
|
-
var buy_button_default = BuyButton;
|
|
1579
|
-
var ThankYou = ({}) => /* @__PURE__ */ jsxRuntime.jsxs(primitives.ApplyTypography, { className: "flex flex-col gap-4 text-center mt-10", children: [
|
|
1580
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { children: "Thank you for your order!" }),
|
|
1581
|
-
/* @__PURE__ */ jsxRuntime.jsx("h6", { children: "Once your payment has been confirmed, you'll recieve an email with additional information." }),
|
|
1582
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
|
|
1583
|
-
"While you wait, we cordially invite you to join the ",
|
|
1584
|
-
/* @__PURE__ */ jsxRuntime.jsx(Link2__default.default, { href: "https://warpcast.com/~/channel/lux", children: "Lux Channel" }),
|
|
1585
|
-
" on ",
|
|
1586
|
-
/* @__PURE__ */ jsxRuntime.jsx(Link2__default.default, { href: "https://warpcast.com/~/invite-page/227706?id=fbc9ca91", children: "Warpcast" }),
|
|
1587
|
-
"."
|
|
1588
|
-
] })
|
|
1589
|
-
] });
|
|
1590
|
-
var thank_you_default = ThankYou;
|
|
1591
|
-
var DesktopBagCarousel = mobxReactLite.observer(({
|
|
1592
|
-
constrainTo,
|
|
1593
|
-
className = ""
|
|
1594
|
-
}) => {
|
|
1595
|
-
const cmmc = commerce.useCommerce();
|
|
1596
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1597
|
-
commerce.CarouselItemSelector,
|
|
1598
|
-
{
|
|
1599
|
-
items: cmmc.cartItems,
|
|
1600
|
-
selectedItemRef: cmmc,
|
|
1601
|
-
scrollable: false,
|
|
1602
|
-
selectSku: cmmc.setCurrentItem.bind(cmmc),
|
|
1603
|
-
clx: className,
|
|
1604
|
-
ext: {
|
|
1605
|
-
options: { loop: true },
|
|
1606
|
-
constrainTo,
|
|
1607
|
-
imageOnly: true
|
|
1608
|
-
}
|
|
1609
|
-
}
|
|
1610
|
-
);
|
|
106
|
+
Object.defineProperty(exports, "MiniChart", {
|
|
107
|
+
enumerable: true,
|
|
108
|
+
get: function () { return index_js__default$4.default; }
|
|
1611
109
|
});
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
clx = ""
|
|
1616
|
-
}) => /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn("flex flex-col items-center", clx), children: [
|
|
1617
|
-
/* @__PURE__ */ jsxRuntime.jsx(primitives.Separator, {}),
|
|
1618
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-4 py-2 text-sm", children: [
|
|
1619
|
-
/* @__PURE__ */ jsxRuntime.jsx(Link2__default.default, { style: ui.css(linkClx), href: "", children: "refund policy" }),
|
|
1620
|
-
/* @__PURE__ */ jsxRuntime.jsx(Link2__default.default, { style: ui.css(linkClx), href: "", children: "privacy policy" })
|
|
1621
|
-
] })
|
|
1622
|
-
] });
|
|
1623
|
-
var policy_links_default = PolicyLinks;
|
|
1624
|
-
var DesktopCheckoutPanel = mobxReactLite.observer(({
|
|
1625
|
-
step,
|
|
1626
|
-
stepNames,
|
|
1627
|
-
onLeave,
|
|
1628
|
-
clx = "",
|
|
1629
|
-
children
|
|
1630
|
-
}) => {
|
|
1631
|
-
const cmmc = commerce.useCommerce();
|
|
1632
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn("grid grid-cols-2", clx), children: [
|
|
1633
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full bg-background flex flex-row items-start justify-end", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full h-full max-w-[750px] relative flex flex-col items-stretch justify-start px-8 pb-8", children: [
|
|
1634
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "h-[80px] grow-0 flex flex-row items-center z-10", children: [
|
|
1635
|
-
/* @__PURE__ */ jsxRuntime.jsx(Logo, { size: "md", href: "/", onClick: onLeave, variant: "wordmark", outerClx: "logo-outer-tooltip-class" }),
|
|
1636
|
-
/* @__PURE__ */ jsxRuntime.jsx(tooltip_default, { select: ".logo-outer-tooltip-class", text: "home", position: "right", offset: 6 })
|
|
1637
|
-
] }, 1),
|
|
1638
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1639
|
-
back_button_default,
|
|
1640
|
-
{
|
|
1641
|
-
size: "sm",
|
|
1642
|
-
clx: "z-10 absolute top-14 left-6 !px-0 aspect-square rounded-full hover:!bg-level-3 back-button-tooltip-class ",
|
|
1643
|
-
onBack: onLeave
|
|
1644
|
-
}
|
|
1645
|
-
),
|
|
1646
|
-
/* @__PURE__ */ jsxRuntime.jsx(tooltip_default, { select: ".back-button-tooltip-class", text: "back", position: "right", offset: 5 }),
|
|
1647
|
-
/* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn(
|
|
1648
|
-
"w-full grow min-h-0 max-w-[550px] mx-auto flex flex-col gap-3",
|
|
1649
|
-
cmmc.cartItems.length > 4 ? "justify-between" : "justify-start gap-10 pt-10"
|
|
1650
|
-
), children: [
|
|
1651
|
-
/* @__PURE__ */ jsxRuntime.jsx(desktop_bag_carousel_default, { className: "grow-0 h-[260px] w-[360px] lg:w-[420px] mx-auto -mt-8", constrainTo: { w: 250, h: 250 } }),
|
|
1652
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1653
|
-
commerce.CartPanel,
|
|
1654
|
-
{
|
|
1655
|
-
className: "w-full border-none p-0",
|
|
1656
|
-
itemClx: "mb-2",
|
|
1657
|
-
totalClx: "sticky bottom-0 bg-background",
|
|
1658
|
-
listClx: "pr-3",
|
|
1659
|
-
scrollAfter: 4,
|
|
1660
|
-
scrollHeightClx: "min-h-[50vh] grow",
|
|
1661
|
-
showPromoCode: true,
|
|
1662
|
-
showShipping: true,
|
|
1663
|
-
selectItems: true
|
|
1664
|
-
}
|
|
1665
|
-
)
|
|
1666
|
-
] }, 2)
|
|
1667
|
-
] }) }, 1),
|
|
1668
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full h-full flex flex-col bg-level-1 min-h-screen justify-between", children: [
|
|
1669
|
-
/* @__PURE__ */ jsxRuntime.jsx(primitives.ScrollArea, { className: "w-full flex flex-row items-start justify-start overflow-y-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "h-full w-full max-w-[750px] relative flex flex-col items-center px-8 pt-0", children: [
|
|
1670
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-level-1 sticky h-[80px] bg-[#aaaaff] w-full top-0 flex justify-center items-end", children: [
|
|
1671
|
-
/* @__PURE__ */ jsxRuntime.jsx(widget_default, { noLogin: true, className: "hidden md:flex absolute top-4 right-4 " }),
|
|
1672
|
-
/* @__PURE__ */ jsxRuntime.jsx(primitives.StepIndicator, { dotSizeRem: 1.35, steps: stepNames, currentStep: step, className: "gap-2 text-base w-pr-70" })
|
|
1673
|
-
] }, 1),
|
|
1674
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-[550px] mx-auto py-8", children }, 2)
|
|
1675
|
-
] }) }),
|
|
1676
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-[750px] relative flex flex-col items-center px-8 pt-0", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-[550px] mx-auto flex flex-col items-center", children: /* @__PURE__ */ jsxRuntime.jsx(policy_links_default, { clx: "w-full" }) }) })
|
|
1677
|
-
] }, 2)
|
|
1678
|
-
] });
|
|
110
|
+
Object.defineProperty(exports, "NotFound", {
|
|
111
|
+
enumerable: true,
|
|
112
|
+
get: function () { return index_js__default$5.default; }
|
|
1679
113
|
});
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
114
|
+
Object.defineProperty(exports, "Auth", {
|
|
115
|
+
enumerable: true,
|
|
116
|
+
get: function () { return provider_js__default.default; }
|
|
117
|
+
});
|
|
118
|
+
Object.defineProperty(exports, "Login", {
|
|
119
|
+
enumerable: true,
|
|
120
|
+
get: function () { return login_js__default.default; }
|
|
121
|
+
});
|
|
122
|
+
Object.defineProperty(exports, "BackButton", {
|
|
123
|
+
enumerable: true,
|
|
124
|
+
get: function () { return backButton_js__default.default; }
|
|
125
|
+
});
|
|
126
|
+
Object.defineProperty(exports, "BuyDrawer", {
|
|
127
|
+
enumerable: true,
|
|
128
|
+
get: function () { return index_js__default.default; }
|
|
129
|
+
});
|
|
130
|
+
Object.defineProperty(exports, "DrawerMargin", {
|
|
131
|
+
enumerable: true,
|
|
132
|
+
get: function () { return drawerMargin_js__default.default; }
|
|
133
|
+
});
|
|
134
|
+
Object.defineProperty(exports, "BuyButton", {
|
|
135
|
+
enumerable: true,
|
|
136
|
+
get: function () { return buyButton_js__default.default; }
|
|
137
|
+
});
|
|
138
|
+
Object.defineProperty(exports, "CheckoutButton", {
|
|
139
|
+
enumerable: true,
|
|
140
|
+
get: function () { return checkoutButton_js__default.default; }
|
|
141
|
+
});
|
|
142
|
+
Object.defineProperty(exports, "CheckoutPanel", {
|
|
143
|
+
enumerable: true,
|
|
144
|
+
get: function () { return index_js__default$1.default; }
|
|
145
|
+
});
|
|
146
|
+
Object.defineProperty(exports, "LoginPanel", {
|
|
147
|
+
enumerable: true,
|
|
148
|
+
get: function () { return loginPanel_js__default.default; }
|
|
149
|
+
});
|
|
150
|
+
Object.defineProperty(exports, "Analytics", {
|
|
151
|
+
enumerable: true,
|
|
152
|
+
get: function () { return analytics_js__default.default; }
|
|
153
|
+
});
|
|
154
|
+
Object.defineProperty(exports, "Tooltip", {
|
|
155
|
+
enumerable: true,
|
|
156
|
+
get: function () { return tooltip_js__default.default; }
|
|
1718
157
|
});
|
|
1719
|
-
var cart_accordian_default = CartAccordian;
|
|
1720
|
-
var MobileCheckoutPanel = ({
|
|
1721
|
-
step,
|
|
1722
|
-
stepNames,
|
|
1723
|
-
onLeave,
|
|
1724
|
-
clx = "",
|
|
1725
|
-
children
|
|
1726
|
-
}) => /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn("bg-background flex flex-col justify-start px-4 pt-[101px]", clx), children: [
|
|
1727
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "fixed z-11 top-0 h-[45px] w-full flex justify-between items-stretch bg-background", children: [
|
|
1728
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-stretch gap-1 grow-0", children: [
|
|
1729
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1730
|
-
back_button_default,
|
|
1731
|
-
{
|
|
1732
|
-
size: "sm",
|
|
1733
|
-
clx: "-ml-5 !px-0 aspect-square h-full rounded-full active:!bg-level-3 ",
|
|
1734
|
-
onBack: onLeave
|
|
1735
|
-
}
|
|
1736
|
-
),
|
|
1737
|
-
/* @__PURE__ */ jsxRuntime.jsx(Logo, { size: "sm", variant: "wordmark", href: "/", onClick: onLeave, outerClx: "-ml-2" })
|
|
1738
|
-
] }),
|
|
1739
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1740
|
-
primitives.StepIndicator,
|
|
1741
|
-
{
|
|
1742
|
-
dotSizeRem: 1,
|
|
1743
|
-
steps: stepNames,
|
|
1744
|
-
currentStep: step,
|
|
1745
|
-
className: "relative grow mx-2 top-[14px] text-xs font-semibold w-full"
|
|
1746
|
-
}
|
|
1747
|
-
),
|
|
1748
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-[72px] grow-0 shrink-0 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(widget_default, { noLogin: true, className: "" }) })
|
|
1749
|
-
] }),
|
|
1750
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1751
|
-
cart_accordian_default,
|
|
1752
|
-
{
|
|
1753
|
-
icon: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1754
|
-
bag_button_default,
|
|
1755
|
-
{
|
|
1756
|
-
animateOnHover: false,
|
|
1757
|
-
showIfEmpty: true,
|
|
1758
|
-
size: "sm",
|
|
1759
|
-
className: "mr-1 relative w-5 h-6 sm:w-6 sm:h-7",
|
|
1760
|
-
iconClx: "fill-foreground"
|
|
1761
|
-
}
|
|
1762
|
-
),
|
|
1763
|
-
clx: "flex items-center justify-center w-full",
|
|
1764
|
-
triggerClx: "bg-background fixed z-11 top-[45px] left-0 right-0 !m-0 px-4",
|
|
1765
|
-
panelClx: "!py-0",
|
|
1766
|
-
scrollAfter: 3,
|
|
1767
|
-
scrollHeightClx: "h-[385px]"
|
|
1768
|
-
}
|
|
1769
|
-
),
|
|
1770
|
-
children,
|
|
1771
|
-
/* @__PURE__ */ jsxRuntime.jsx(policy_links_default, { clx: "mt-auto mb-3 pt-2" })
|
|
1772
|
-
] });
|
|
1773
|
-
var mobile_cp_default = MobileCheckoutPanel;
|
|
1774
|
-
var STEPS = [
|
|
1775
|
-
{
|
|
1776
|
-
name: "payment",
|
|
1777
|
-
Comp: commerce.PaymentStepForm
|
|
1778
|
-
},
|
|
1779
|
-
{
|
|
1780
|
-
name: "delivery",
|
|
1781
|
-
Comp: commerce.ShippingStepForm
|
|
1782
|
-
},
|
|
1783
|
-
{
|
|
1784
|
-
name: "done",
|
|
1785
|
-
label: "Done!",
|
|
1786
|
-
Comp: thank_you_default
|
|
1787
|
-
}
|
|
1788
|
-
];
|
|
1789
|
-
var STEP_NAMES = STEPS.map((s) => s.label ? s.label : ui.capitalize(s.name));
|
|
1790
|
-
var CheckoutPanel = ({
|
|
1791
|
-
clx = ""
|
|
1792
|
-
}) => {
|
|
1793
|
-
const cmmc = commerce.useCommerce();
|
|
1794
|
-
if (!cmmc) {
|
|
1795
|
-
console.log("CHECKOUT PANEL: cmmc svc undefined!");
|
|
1796
|
-
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {});
|
|
1797
|
-
}
|
|
1798
|
-
const [stepIndex, setStepIndex] = React7.useState(0);
|
|
1799
|
-
const [orderId, setOrderId] = React7.useState(void 0);
|
|
1800
|
-
const setStep = (name) => {
|
|
1801
|
-
if (name === "first") {
|
|
1802
|
-
setStepIndex(0);
|
|
1803
|
-
} else if (name === "last") {
|
|
1804
|
-
setStepIndex(STEPS.length - 1);
|
|
1805
|
-
} else if (name === "next") {
|
|
1806
|
-
if (stepIndex <= STEPS.length - 2) {
|
|
1807
|
-
setStepIndex(stepIndex + 1);
|
|
1808
|
-
} else {
|
|
1809
|
-
throw new Error("CheckoutPanel.setStep(): Attempting to advance past last step!");
|
|
1810
|
-
}
|
|
1811
|
-
} else {
|
|
1812
|
-
const indexFound = STEPS.findIndex((el) => el.name === name);
|
|
1813
|
-
if (indexFound !== -1) {
|
|
1814
|
-
setStepIndex(indexFound);
|
|
1815
|
-
} else {
|
|
1816
|
-
throw new Error("CheckoutPanel.setStep(): Step named " + name + " not found!");
|
|
1817
|
-
}
|
|
1818
|
-
}
|
|
1819
|
-
};
|
|
1820
|
-
const _close = () => {
|
|
1821
|
-
setStep("first");
|
|
1822
|
-
};
|
|
1823
|
-
const desktopElement = React7.useRef(null);
|
|
1824
|
-
const [layout, setLayout] = React7.useState(void 0);
|
|
1825
|
-
React7.useLayoutEffect(() => {
|
|
1826
|
-
const checkLayout = () => {
|
|
1827
|
-
setLayout(!!desktopElement.current?.offsetParent ? "desktop" : "mobile");
|
|
1828
|
-
};
|
|
1829
|
-
checkLayout();
|
|
1830
|
-
window.addEventListener("resize", checkLayout);
|
|
1831
|
-
return () => {
|
|
1832
|
-
window.removeEventListener("resize", checkLayout);
|
|
1833
|
-
};
|
|
1834
|
-
}, []);
|
|
1835
|
-
const StepToRender = STEPS[stepIndex].Comp;
|
|
1836
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1837
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1838
|
-
desktop_cp_default,
|
|
1839
|
-
{
|
|
1840
|
-
clx: ui.cn("h-full", clx, "hidden md:flex"),
|
|
1841
|
-
onLeave: _close,
|
|
1842
|
-
step: stepIndex,
|
|
1843
|
-
stepNames: STEP_NAMES,
|
|
1844
|
-
children: [
|
|
1845
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { ref: desktopElement }),
|
|
1846
|
-
layout === "desktop" && /* @__PURE__ */ jsxRuntime.jsx(StepToRender, { onDone: () => {
|
|
1847
|
-
setStep("next");
|
|
1848
|
-
}, orderId, setOrderId })
|
|
1849
|
-
]
|
|
1850
|
-
}
|
|
1851
|
-
),
|
|
1852
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1853
|
-
mobile_cp_default,
|
|
1854
|
-
{
|
|
1855
|
-
clx: ui.cn("w-full h-full overflow-y-auto", clx, "md:hidden"),
|
|
1856
|
-
onLeave: _close,
|
|
1857
|
-
step: stepIndex,
|
|
1858
|
-
stepNames: STEP_NAMES,
|
|
1859
|
-
children: layout === "mobile" && /* @__PURE__ */ jsxRuntime.jsx(StepToRender, { onDone: () => {
|
|
1860
|
-
setStep("next");
|
|
1861
|
-
}, orderId, setOrderId })
|
|
1862
|
-
}
|
|
1863
|
-
)
|
|
1864
|
-
] });
|
|
1865
|
-
};
|
|
1866
|
-
var checkout_panel_default = CheckoutPanel;
|
|
1867
|
-
var LoginPanel = ({
|
|
1868
|
-
close,
|
|
1869
|
-
className = "",
|
|
1870
|
-
reviews
|
|
1871
|
-
}) => {
|
|
1872
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn("grid grid-cols-1 md:grid-cols-2", className), children: [
|
|
1873
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "hidden md:flex w-full h-full bg-[radial-gradient(circle_at_24.1%_68.8%_,_rgba(15,14,14,0)_,_rgba(9,9,9,99.4))] flex-row items-end justify-end overflow-y-auto min-h-screen", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-full w-full max-w-[750px] px-8 pt-0", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "h-full w-full max-w-[550px] mx-auto flex flex-col justify-between min-h-screen py-10", children: [
|
|
1874
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1875
|
-
primitives.Button,
|
|
1876
|
-
{
|
|
1877
|
-
variant: "ghost",
|
|
1878
|
-
onClick: close,
|
|
1879
|
-
className: "w-fit !min-w-0 p-2",
|
|
1880
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(Logo, { size: "md", variant: "wordmark" })
|
|
1881
|
-
}
|
|
1882
|
-
),
|
|
1883
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1884
|
-
primitives.Carousel,
|
|
1885
|
-
{
|
|
1886
|
-
options: { align: "center", loop: true, autoplay: 5e3 },
|
|
1887
|
-
className: "w-full",
|
|
1888
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(primitives.CarouselContent, { children: reviews.map(({ text, author, href }, index) => /* @__PURE__ */ jsxRuntime.jsx(primitives.CarouselItem, { children: /* @__PURE__ */ jsxRuntime.jsxs(Link2__default.default, { href, className: "flex flex-col gap-3 cursor-pointer", children: [
|
|
1889
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
|
|
1890
|
-
"\u201C",
|
|
1891
|
-
text,
|
|
1892
|
-
"\u201C"
|
|
1893
|
-
] }),
|
|
1894
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm", children: author })
|
|
1895
|
-
] }) }, index)) })
|
|
1896
|
-
}
|
|
1897
|
-
)
|
|
1898
|
-
] }) }) }),
|
|
1899
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full bg-background flex flex-row items-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-[750px] relative flex flex-col items-center px-8 pt-0 text-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative h-full w-full max-w-[400px] mx-auto flex flex-col gap-4 items-center py-10", children: [
|
|
1900
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1901
|
-
primitives.Button,
|
|
1902
|
-
{
|
|
1903
|
-
variant: "ghost",
|
|
1904
|
-
onClick: close,
|
|
1905
|
-
className: "block md:hidden absolute rounded-full p-2 left-0 h-auto hover:bg-background",
|
|
1906
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(logo.LuxLogo, { variant: "white", size: 20 })
|
|
1907
|
-
}
|
|
1908
|
-
),
|
|
1909
|
-
/* @__PURE__ */ jsxRuntime.jsx(login_default, { className: "w-full max-w-sm" }),
|
|
1910
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm opacity-50", children: legal.map(({ title: title2, href }, index) => /* @__PURE__ */ jsxRuntime.jsxs(React7__namespace.default.Fragment, { children: [
|
|
1911
|
-
index > 0 && " \xB7 ",
|
|
1912
|
-
/* @__PURE__ */ jsxRuntime.jsx(Link2__default.default, { href, className: "underline", children: title2 })
|
|
1913
|
-
] }, href)) })
|
|
1914
|
-
] }) }) })
|
|
1915
|
-
] });
|
|
1916
|
-
};
|
|
1917
|
-
var login_panel_default = LoginPanel;
|
|
1918
|
-
|
|
1919
|
-
// src/site/next/analytics/fpixel.ts
|
|
1920
|
-
var FB_PIXEL_ID = process.env.NEXT_PUBLIC_FACEBOOK_PIXEL_ID || "";
|
|
1921
|
-
var pageview = () => {
|
|
1922
|
-
window.fbq("track", "PageView");
|
|
1923
|
-
};
|
|
1924
|
-
var FacebookPixel = () => {
|
|
1925
|
-
const [loaded, setLoaded] = React7.useState(false);
|
|
1926
|
-
const pathname = navigation.usePathname();
|
|
1927
|
-
React7.useEffect(() => {
|
|
1928
|
-
if (!loaded) return;
|
|
1929
|
-
pageview();
|
|
1930
|
-
}, [pathname, loaded]);
|
|
1931
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1932
|
-
Script__default.default,
|
|
1933
|
-
{
|
|
1934
|
-
id: "fb-pixel",
|
|
1935
|
-
strategy: "afterInteractive",
|
|
1936
|
-
onLoad: () => setLoaded(true),
|
|
1937
|
-
dangerouslySetInnerHTML: {
|
|
1938
|
-
__html: `
|
|
1939
|
-
!function(f,b,e,v,n,t,s)
|
|
1940
|
-
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
|
|
1941
|
-
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
|
|
1942
|
-
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
|
|
1943
|
-
n.queue=[];t=b.createElement(e);t.async=!0;
|
|
1944
|
-
t.src=v;s=b.getElementsByTagName(e)[0];
|
|
1945
|
-
s.parentNode.insertBefore(t,s)}(window, document,'script',
|
|
1946
|
-
'https://connect.facebook.net/en_US/fbevents.js');
|
|
1947
|
-
fbq('init', ${FB_PIXEL_ID});
|
|
1948
|
-
`
|
|
1949
|
-
}
|
|
1950
|
-
}
|
|
1951
|
-
) });
|
|
1952
|
-
};
|
|
1953
|
-
var Analytics = () => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1954
|
-
/* @__PURE__ */ jsxRuntime.jsx(FacebookPixel, {}),
|
|
1955
|
-
/* @__PURE__ */ jsxRuntime.jsx(google.GoogleAnalytics, { gaId: process.env.NEXT_PUBLIC_GA_MEASUREMENT_ID ?? "" })
|
|
1956
|
-
] });
|
|
1957
|
-
var Tooltip = ({
|
|
1958
|
-
select,
|
|
1959
|
-
text,
|
|
1960
|
-
clx = "",
|
|
1961
|
-
position = "bottom",
|
|
1962
|
-
offset = 2
|
|
1963
|
-
}) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1964
|
-
reactTooltip.Tooltip,
|
|
1965
|
-
{
|
|
1966
|
-
anchorSelect: select,
|
|
1967
|
-
noArrow: true,
|
|
1968
|
-
opacity: 1,
|
|
1969
|
-
content: text,
|
|
1970
|
-
place: position,
|
|
1971
|
-
offset,
|
|
1972
|
-
delayShow: 100,
|
|
1973
|
-
delayHide: 100,
|
|
1974
|
-
className: "!opacity-100 !bg-level-2 border rounded-[3px] !px-1.5 !py-1 z-floating" + clx
|
|
1975
|
-
}
|
|
1976
|
-
);
|
|
1977
|
-
var tooltip_default = Tooltip;
|
|
1978
|
-
|
|
1979
158
|
Object.defineProperty(exports, "EmblaAutoplay", {
|
|
1980
159
|
enumerable: true,
|
|
1981
160
|
get: function () { return emblaCarouselAutoplay__default.default; }
|
|
1982
161
|
});
|
|
1983
|
-
exports.AccessCodeInput = access_code_input_default;
|
|
1984
|
-
exports.Analytics = Analytics;
|
|
1985
|
-
exports.Auth = provider_default;
|
|
1986
|
-
exports.BackButton = back_button_default;
|
|
1987
|
-
exports.BuyButton = buy_button_default;
|
|
1988
|
-
exports.BuyDrawer = drawer_default;
|
|
1989
|
-
exports.ChatWidget = chat_widget_default;
|
|
1990
|
-
exports.CheckoutButton = checkout_button_default;
|
|
1991
|
-
exports.CheckoutPanel = checkout_panel_default;
|
|
1992
|
-
exports.ContactDialog = contact_dialog_default;
|
|
1993
|
-
exports.Copyright = copyright_default;
|
|
1994
|
-
exports.DrawerMargin = drawer_margin_default;
|
|
1995
|
-
exports.Footer = footer_default;
|
|
1996
|
-
exports.Header = header_default;
|
|
1997
|
-
exports.Icons = icons_exports;
|
|
1998
|
-
exports.Login = login_default;
|
|
1999
|
-
exports.LoginPanel = login_panel_default;
|
|
2000
|
-
exports.Logo = Logo;
|
|
2001
|
-
exports.Main = main_default;
|
|
2002
|
-
exports.MiniChart = wrapper_default;
|
|
2003
|
-
exports.NotFound = not_found_default;
|
|
2004
|
-
exports.Tooltip = tooltip_default;
|