@luxfi/ui 8.2.4 → 8.2.6
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/index.cjs +2008 -85
- package/dist/index.css +132 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2007 -111
- package/package.json +2 -2
- package/src/index.ts +5 -0
package/dist/index.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { createGui, styled, View, Sheet, Dialog, XStack, YStack, Text, Avatar as Avatar$1, TooltipGroup, Tooltip as Tooltip$1, Label, Checkbox, VisuallyHidden, H3, H2, H1, Input as Input$1, Popover, Progress as Progress$1, RadioGroup, Select as Select$1, Separator as Separator$1, Slider as Slider$1, Switch, TextArea, GuiProvider, Menu as Menu$1, Accordion, Collapsible, Tabs as Tabs$1, useTabsContext, ToastProvider, ToastViewport, Toast } from '@hanzo/gui';
|
|
2
|
+
import { createGui, styled, View, Sheet, Dialog, XStack, YStack, Text, Avatar as Avatar$1, TooltipGroup, Tooltip as Tooltip$1, Label, Checkbox, VisuallyHidden, H3, H2, H1, Input as Input$1, Popover, Progress as Progress$1, RadioGroup, Select as Select$1, Separator as Separator$1, Slider as Slider$1, Switch, TextArea, GuiProvider, Menu as Menu$1, Accordion as Accordion$1, Collapsible, Tabs as Tabs$1, useTabsContext, ToastProvider, ToastViewport, Toast } from '@hanzo/gui';
|
|
3
3
|
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
4
4
|
import * as React64 from 'react';
|
|
5
|
-
import React64__default, { createContext, Children, createElement, useMemo,
|
|
5
|
+
import React64__default, { createContext, useRef, useEffect, Children, createElement, useMemo, useState, useLayoutEffect, useContext, forwardRef, useId, useCallback, isValidElement, useInsertionEffect, Fragment as Fragment$1, useTransition, Component } from 'react';
|
|
6
6
|
import { config as config$1 } from '@hanzo/ui/gui-config';
|
|
7
7
|
import { defaultConfig } from '@hanzogui/config/v5';
|
|
8
8
|
import { animations } from '@hanzogui/config/v5-css';
|
|
9
9
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
10
|
-
import { Box, sx, cn, css, variants, NavigationMenu, NavigationMenuList, NavigationMenuItem, NavigationMenuTrigger, NavigationMenuContent, NavigationMenuLink, Card, ScrollArea, Avatar as Avatar$2, AvatarFallback as AvatarFallback$1, AvatarImage, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, ScrollBar, TooltipProvider, Tooltip as Tooltip$2, TooltipTrigger, TooltipContent, DropdownMenuCheckboxItem, DropdownMenuSeparator, Tabs, TabsList as TabsList$1, TabsTrigger as TabsTrigger$1, TabsContent as TabsContent$1, Select as Select$2, SelectTrigger, SelectValue, SelectContent as SelectContent$1, SelectItem as SelectItem$1, Label as Label$1, SelectSeparator, CardHeader, CardTitle, CardDescription, CardContent, ToggleGroup, ToggleGroupItem, Popover as Popover$1, PopoverTrigger as PopoverTrigger$1, PopoverContent as PopoverContent$1, CardFooter, buttonVariants, Command as Command$1, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, Slot, Collapsible as Collapsible$1, CollapsibleTrigger, CollapsibleContent, Sheet as Sheet$1, SheetContent, SheetHeader, SheetTitle, SheetDescription, Dialog as Dialog$
|
|
10
|
+
import { Box, sx, cn, css, variants, NavigationMenu, NavigationMenuList, NavigationMenuItem, NavigationMenuTrigger, NavigationMenuContent, NavigationMenuLink, Card, ScrollArea, Avatar as Avatar$2, AvatarFallback as AvatarFallback$1, AvatarImage, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, ScrollBar, TooltipProvider, Tooltip as Tooltip$2, TooltipTrigger, TooltipContent, DropdownMenuCheckboxItem, DropdownMenuSeparator, Tabs, TabsList as TabsList$1, TabsTrigger as TabsTrigger$1, TabsContent as TabsContent$1, Select as Select$2, SelectTrigger, SelectValue, SelectContent as SelectContent$1, SelectItem as SelectItem$1, Label as Label$1, SelectSeparator, CardHeader, CardTitle, CardDescription, CardContent, ToggleGroup, ToggleGroupItem, Popover as Popover$1, PopoverTrigger as PopoverTrigger$1, PopoverContent as PopoverContent$1, MediaStack, capitalize, CardFooter, buttonVariants as buttonVariants$1, Command as Command$1, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, Slot, Collapsible as Collapsible$1, CollapsibleTrigger, CollapsibleContent, Sheet as Sheet$1, SheetContent, SheetHeader, SheetTitle, SheetDescription, ApplyTypography as ApplyTypography$1, Dialog as Dialog$2, DialogTrigger as DialogTrigger$2, DialogContent as DialogContent$2, DialogHeader as DialogHeader$2, DialogTitle as DialogTitle$2, DialogDescription as DialogDescription$2, DialogFooter as DialogFooter$1, Form, FormField, FormItem, FormControl, FormMessage } from '@hanzo/ui';
|
|
11
11
|
export { DropdownMenuCheckboxItem as MenubarCheckboxItem, DropdownMenuContent as MenubarContent, DropdownMenuGroup as MenubarGroup, DropdownMenuItem as MenubarItem, DropdownMenuLabel as MenubarLabel, DropdownMenuPortal as MenubarPortal, DropdownMenuRadioGroup as MenubarRadioGroup, DropdownMenuRadioItem as MenubarRadioItem, DropdownMenuSeparator as MenubarSeparator, DropdownMenuShortcut as MenubarShortcut, DropdownMenuSub as MenubarSub, DropdownMenuSubContent as MenubarSubContent, DropdownMenuSubTrigger as MenubarSubTrigger, cn } from '@hanzo/ui';
|
|
12
|
-
import { ChevronLeft, ChevronRight, RotateCcw, ZoomIn, ZoomOut, Move3d, Camera, Eye, Sparkles, Settings, MessageSquare, User, Bot, MoreHorizontal, Copy, Paperclip, Send, Shield, Zap, GitCompare, FileText, TestTube, Bug, Code, Wand2, Loader2, FileCode, Check, EyeOff, ChevronDown, Download, Upload, Search, Calculator, Globe, Wrench, Link as Link$1, Target, Type, Smile, Info, X, Plus, Minus, Square, SplitSquareHorizontal, FolderOpen, Folder, Terminal, RefreshCw, Play, AlertTriangle, Minimize2, Maximize2, Users, Phone, Video, CreditCard as CreditCard$1, Bell, File, ShoppingCart, Bold, Italic, List, ListOrdered, RotateCw, Crop, Dot, Command, Share2, Menu, Circle, VolumeX, Volume2, Maximize, GripVertical, Tag as Tag$1, Palette, BarChart3, FileImage, Clock, ChevronsUpDown, LogOut, Building2, CircleStop, Brain, Activity, Network, Trash2, Settings2, AlertCircle, MicOff, Mic, ListMusic, Shuffle, SkipBack, Pause, SkipForward, Repeat, ChevronUp, TrendingUp, TrendingDown, PanelLeftIcon, Edit, Calendar as Calendar$1, Edit3, CheckCircle } from 'lucide-react';
|
|
12
|
+
import { ChevronLeft, ChevronRight, RotateCcw, ZoomIn, ZoomOut, Move3d, Camera, Eye, Sparkles, Settings, MessageSquare, User, Bot, MoreHorizontal, Copy, Paperclip, Send, Shield, Zap, GitCompare, FileText, TestTube, Bug, Code, Wand2, Loader2, FileCode, Check, EyeOff, ChevronDown, Download, Upload, Search, Calculator, Globe, Wrench, Link as Link$1, Target, Type, Smile, Info, X, Plus, Minus, Square, SplitSquareHorizontal, FolderOpen, Folder, Terminal, RefreshCw, Play, AlertTriangle, Minimize2, Maximize2, Users, Phone, Video, CreditCard as CreditCard$1, Bell, File, ShoppingCart, Bold, Italic, List, ListOrdered, RotateCw, Crop, Dot, Command, Share2, Menu, Circle, VolumeX, Volume2, Maximize, GripVertical, Tag as Tag$1, Palette, BarChart3, FileImage, Clock, ChevronsUpDown, LogOut, Building2, CircleStop, Brain, Activity, Network, Trash2, Settings2, AlertCircle, MicOff, Mic, ListMusic, Shuffle, SkipBack, Pause, SkipForward, Repeat, ChevronUp, TrendingUp, TrendingDown, PanelLeftIcon, Edit, Calendar as Calendar$1, Edit3, CheckCircle, ArrowRight } from 'lucide-react';
|
|
13
13
|
import { useClickAway, useDebounce } from '@uidotdev/usehooks';
|
|
14
14
|
import { debounce, throttle } from 'es-toolkit';
|
|
15
15
|
import { format } from 'date-fns';
|
|
@@ -27,6 +27,23 @@ import { OTPInput, OTPInputContext } from 'input-otp';
|
|
|
27
27
|
import { useSensors, useSensor, PointerSensor, DndContext, closestCorners, DragOverlay } from '@dnd-kit/core';
|
|
28
28
|
import { arrayMove, useSortable, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';
|
|
29
29
|
import { QRCodeSVG } from 'qrcode.react';
|
|
30
|
+
import { buttonVariants, NavigationMenuLink as NavigationMenuLink$1, Drawer, DrawerContent as DrawerContent$1, DrawerHandle, Button as Button$1, ScrollArea as ScrollArea$1, StepIndicator, Accordion, AccordionItem as AccordionItem$1, AccordionTrigger, AccordionContent, Separator as Separator$2, ApplyTypography, Popover as Popover$2, PopoverTrigger as PopoverTrigger$2, PopoverContent as PopoverContent$2, InputOTP as InputOTP$1, InputOTPGroup as InputOTPGroup$1, InputOTPSlot as InputOTPSlot$1, InputOTPSeparator as InputOTPSeparator$1, Card as Card$1, Dialog as Dialog$1, DialogTrigger as DialogTrigger$1, DialogContent as DialogContent$1, DialogHeader as DialogHeader$1, DialogTitle as DialogTitle$1, DialogDescription as DialogDescription$1, NavItems, Carousel, CarouselContent, CarouselItem, Input as Input$2, NavigationMenu as NavigationMenu$1, NavigationMenuList as NavigationMenuList$1, NavigationMenuItem as NavigationMenuItem$1, navigationMenuTriggerStyle, NavigationMenuTrigger as NavigationMenuTrigger$1, NavigationMenuContent as NavigationMenuContent$1, PopoverClose } from '@hanzo/ui/primitives';
|
|
31
|
+
import { Logo as Logo$1, Wordmark, LuxLogo } from '@luxfi/logo';
|
|
32
|
+
import { useForm } from 'react-hook-form';
|
|
33
|
+
import { z } from 'zod';
|
|
34
|
+
import { zodResolver } from '@hookform/resolvers/zod';
|
|
35
|
+
import validator from 'validator';
|
|
36
|
+
import Link5 from 'next/link';
|
|
37
|
+
import { IamContext, useIam, useIamIdentity, Login as Login$1 } from '@hanzo/iam/react';
|
|
38
|
+
import { useRouter, usePathname } from 'next/navigation';
|
|
39
|
+
import { useCommerce, CarouselBuyCard, CarouselItemSelector, CartPanel, formatCurrencyValue, PaymentStepForm, ShippingStepForm } from '@hanzo/commerce';
|
|
40
|
+
import { observable, reaction, runInAction } from 'mobx';
|
|
41
|
+
import { observer as observer$1, enableStaticRendering } from 'mobx-react-lite';
|
|
42
|
+
import 'usehooks-ts';
|
|
43
|
+
import { GoogleAnalytics } from '@next/third-parties/google';
|
|
44
|
+
import Script from 'next/script';
|
|
45
|
+
import { Tooltip as Tooltip$3 } from 'react-tooltip';
|
|
46
|
+
export { default as EmblaAutoplay } from 'embla-carousel-autoplay';
|
|
30
47
|
|
|
31
48
|
var __defProp = Object.defineProperty;
|
|
32
49
|
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
@@ -614,7 +631,7 @@ var DrawerStateContext = React64.createContext({
|
|
|
614
631
|
var DrawerRoot = (props2) => {
|
|
615
632
|
const {
|
|
616
633
|
children,
|
|
617
|
-
open,
|
|
634
|
+
open: open2,
|
|
618
635
|
defaultOpen,
|
|
619
636
|
onOpenChange,
|
|
620
637
|
placement = "right",
|
|
@@ -622,8 +639,8 @@ var DrawerRoot = (props2) => {
|
|
|
622
639
|
size = "md"
|
|
623
640
|
} = props2;
|
|
624
641
|
const [uncontrolled, setUncontrolled] = React64.useState(defaultOpen ?? false);
|
|
625
|
-
const isControlled =
|
|
626
|
-
const isOpen = isControlled ?
|
|
642
|
+
const isControlled = open2 !== void 0;
|
|
643
|
+
const isOpen = isControlled ? open2 : uncontrolled;
|
|
627
644
|
const narrow = useIsNarrow();
|
|
628
645
|
const setOpen = React64.useCallback((nextOpen) => {
|
|
629
646
|
if (!isControlled) setUncontrolled(nextOpen);
|
|
@@ -656,12 +673,12 @@ var DrawerContent = React64.forwardRef(
|
|
|
656
673
|
const { children, portalled = true, portalRef: _portalRef, offset: _offset, backdrop = true, ...rest } = props2;
|
|
657
674
|
const placement = React64.useContext(DrawerPlacementContext);
|
|
658
675
|
const size = React64.useContext(DrawerSizeContext);
|
|
659
|
-
const { open, setOpen, modal, narrow } = React64.useContext(DrawerStateContext);
|
|
676
|
+
const { open: open2, setOpen, modal, narrow } = React64.useContext(DrawerStateContext);
|
|
660
677
|
if (narrow) {
|
|
661
678
|
return /* @__PURE__ */ jsxs(
|
|
662
679
|
Sheet,
|
|
663
680
|
{
|
|
664
|
-
open,
|
|
681
|
+
open: open2,
|
|
665
682
|
onOpenChange: setOpen,
|
|
666
683
|
modal,
|
|
667
684
|
dismissOnSnapToBottom: true,
|
|
@@ -770,7 +787,7 @@ var ROW = {
|
|
|
770
787
|
};
|
|
771
788
|
var MenuRoot = ({
|
|
772
789
|
children,
|
|
773
|
-
open,
|
|
790
|
+
open: open2,
|
|
774
791
|
defaultOpen,
|
|
775
792
|
onOpenChange,
|
|
776
793
|
positioning,
|
|
@@ -778,7 +795,7 @@ var MenuRoot = ({
|
|
|
778
795
|
}) => /* @__PURE__ */ jsx(
|
|
779
796
|
Menu$1,
|
|
780
797
|
{
|
|
781
|
-
open,
|
|
798
|
+
open: open2,
|
|
782
799
|
defaultOpen,
|
|
783
800
|
onOpenChange: onOpenChange ? (isOpen) => onOpenChange({ open: isOpen }) : void 0,
|
|
784
801
|
modal,
|
|
@@ -847,8 +864,8 @@ var MenuSeparator = (props2) => /* @__PURE__ */ jsx(
|
|
|
847
864
|
...props2
|
|
848
865
|
}
|
|
849
866
|
);
|
|
850
|
-
var MenuItemGroup = ({ title, children, ...rest }) => /* @__PURE__ */ jsxs(Menu$1.Group, { unstyled: true, ...rest, children: [
|
|
851
|
-
|
|
867
|
+
var MenuItemGroup = ({ title: title2, children, ...rest }) => /* @__PURE__ */ jsxs(Menu$1.Group, { unstyled: true, ...rest, children: [
|
|
868
|
+
title2 && /* @__PURE__ */ jsx(
|
|
852
869
|
Menu$1.Label,
|
|
853
870
|
{
|
|
854
871
|
unstyled: true,
|
|
@@ -859,7 +876,7 @@ var MenuItemGroup = ({ title, children, ...rest }) => /* @__PURE__ */ jsxs(Menu$
|
|
|
859
876
|
userSelect: "none",
|
|
860
877
|
opacity: 0.6,
|
|
861
878
|
color: TEXT,
|
|
862
|
-
children:
|
|
879
|
+
children: title2
|
|
863
880
|
}
|
|
864
881
|
),
|
|
865
882
|
children
|
|
@@ -952,7 +969,7 @@ var Row = ({ item, onDone, menu }) => {
|
|
|
952
969
|
return menu ? /* @__PURE__ */ jsx(MenuItem, { value: item.id, asChild: true, children: control }) : control;
|
|
953
970
|
};
|
|
954
971
|
var Switcher = ({
|
|
955
|
-
title,
|
|
972
|
+
title: title2,
|
|
956
973
|
label,
|
|
957
974
|
icon,
|
|
958
975
|
items,
|
|
@@ -965,13 +982,13 @@ var Switcher = ({
|
|
|
965
982
|
align = "start",
|
|
966
983
|
testId
|
|
967
984
|
}) => {
|
|
968
|
-
const [
|
|
985
|
+
const [open2, setOpen] = React64.useState(false);
|
|
969
986
|
const narrow = useIsNarrow();
|
|
970
987
|
const close = React64.useCallback(() => setOpen(false), []);
|
|
971
988
|
const message = status === "loading" ? "Loading\u2026" : status === "error" ? error ?? "Could not reach IAM." : status === "anonymous" ? null : items.length === 0 ? empty : null;
|
|
972
989
|
const rows = status === "anonymous" && onSignIn ? [{ id: "sign-in", label: signInLabel, icon: /* @__PURE__ */ jsx(User, { "aria-hidden": "true", style: css("h-4 w-4") }), onSelect: onSignIn }] : status === "ready" ? items : [];
|
|
973
990
|
const panel = (menu) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
974
|
-
/* @__PURE__ */ jsx(Box, { className: "px-2 pb-1 pt-1 text-[11px] font-semibold uppercase tracking-wide opacity-55", children:
|
|
991
|
+
/* @__PURE__ */ jsx(Box, { className: "px-2 pb-1 pt-1 text-[11px] font-semibold uppercase tracking-wide opacity-55", children: title2 }),
|
|
975
992
|
message ? /* @__PURE__ */ jsx(Box, { "data-testid": "chrome-message", className: "px-2 py-2 text-sm opacity-70", children: message }) : null,
|
|
976
993
|
rows.map((item) => /* @__PURE__ */ jsx(Row, { item, onDone: close, menu }, item.id)),
|
|
977
994
|
footer.length > 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -985,9 +1002,9 @@ var Switcher = ({
|
|
|
985
1002
|
tag: "button",
|
|
986
1003
|
type: "button",
|
|
987
1004
|
"data-testid": testId,
|
|
988
|
-
"aria-label":
|
|
1005
|
+
"aria-label": title2,
|
|
989
1006
|
"aria-haspopup": "menu",
|
|
990
|
-
"aria-expanded":
|
|
1007
|
+
"aria-expanded": open2,
|
|
991
1008
|
className: cn(
|
|
992
1009
|
"flex max-w-[14rem] items-center gap-2 rounded-md px-2 py-1.5 text-sm font-medium",
|
|
993
1010
|
"hover:bg-[rgba(127,127,127,0.14)]"
|
|
@@ -1000,10 +1017,10 @@ var Switcher = ({
|
|
|
1000
1017
|
}
|
|
1001
1018
|
);
|
|
1002
1019
|
if (narrow) {
|
|
1003
|
-
return /* @__PURE__ */ jsxs(DrawerRoot, { open, onOpenChange: (d) => setOpen(d.open), placement: "bottom", size: "md", children: [
|
|
1020
|
+
return /* @__PURE__ */ jsxs(DrawerRoot, { open: open2, onOpenChange: (d) => setOpen(d.open), placement: "bottom", size: "md", children: [
|
|
1004
1021
|
React64.cloneElement(trigger, { onClick: () => setOpen(true) }),
|
|
1005
1022
|
/* @__PURE__ */ jsxs(DrawerContent, { "data-testid": testId ? `${testId}-panel` : void 0, children: [
|
|
1006
|
-
/* @__PURE__ */ jsx(DrawerHeader, { children: /* @__PURE__ */ jsx(DrawerTitle, { children:
|
|
1023
|
+
/* @__PURE__ */ jsx(DrawerHeader, { children: /* @__PURE__ */ jsx(DrawerTitle, { children: title2 }) }),
|
|
1007
1024
|
/* @__PURE__ */ jsx(DrawerBody, { children: panel(false) })
|
|
1008
1025
|
] })
|
|
1009
1026
|
] });
|
|
@@ -1011,7 +1028,7 @@ var Switcher = ({
|
|
|
1011
1028
|
return /* @__PURE__ */ jsxs(
|
|
1012
1029
|
MenuRoot,
|
|
1013
1030
|
{
|
|
1014
|
-
open,
|
|
1031
|
+
open: open2,
|
|
1015
1032
|
onOpenChange: (d) => setOpen(d.open),
|
|
1016
1033
|
positioning: { placement: align === "end" ? "bottom-end" : "bottom-start" },
|
|
1017
1034
|
children: [
|
|
@@ -1185,7 +1202,7 @@ var AppNav = ({
|
|
|
1185
1202
|
};
|
|
1186
1203
|
var IndicatorIcon = () => /* @__PURE__ */ jsx("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx("path", { d: "M7.5 15L12.5 10L7.5 5", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
1187
1204
|
var BAR = "var(--color-text-primary)";
|
|
1188
|
-
var Indicator2 = ({ open, variant }) => variant === "faq" ? /* @__PURE__ */ jsxs(XStack, { width: 12, height: 12, flexShrink: 0, alignItems: "center", justifyContent: "center", position: "relative", children: [
|
|
1205
|
+
var Indicator2 = ({ open: open2, variant }) => variant === "faq" ? /* @__PURE__ */ jsxs(XStack, { width: 12, height: 12, flexShrink: 0, alignItems: "center", justifyContent: "center", position: "relative", children: [
|
|
1189
1206
|
/* @__PURE__ */ jsx(View, { position: "absolute", width: "100%", height: 2, borderRadius: 2, backgroundColor: BAR }),
|
|
1190
1207
|
/* @__PURE__ */ jsx(
|
|
1191
1208
|
View,
|
|
@@ -1195,10 +1212,10 @@ var Indicator2 = ({ open, variant }) => variant === "faq" ? /* @__PURE__ */ jsxs
|
|
|
1195
1212
|
height: "100%",
|
|
1196
1213
|
borderRadius: 2,
|
|
1197
1214
|
backgroundColor: BAR,
|
|
1198
|
-
rotate:
|
|
1215
|
+
rotate: open2 ? "90deg" : "0deg"
|
|
1199
1216
|
}
|
|
1200
1217
|
)
|
|
1201
|
-
] }) : /* @__PURE__ */ jsx(XStack, { flexShrink: 0, alignItems: "center", rotate:
|
|
1218
|
+
] }) : /* @__PURE__ */ jsx(XStack, { flexShrink: 0, alignItems: "center", rotate: open2 ? "270deg" : "180deg", children: /* @__PURE__ */ jsx(IndicatorIcon, {}) });
|
|
1202
1219
|
var Variant = React64.createContext(void 0);
|
|
1203
1220
|
var AccordionRoot = ({
|
|
1204
1221
|
value: value2,
|
|
@@ -1209,7 +1226,7 @@ var AccordionRoot = ({
|
|
|
1209
1226
|
children,
|
|
1210
1227
|
...rest
|
|
1211
1228
|
}) => /* @__PURE__ */ jsx(Variant.Provider, { value: variant, children: /* @__PURE__ */ jsx(
|
|
1212
|
-
Accordion,
|
|
1229
|
+
Accordion$1,
|
|
1213
1230
|
{
|
|
1214
1231
|
unstyled: true,
|
|
1215
1232
|
type: "multiple",
|
|
@@ -1224,7 +1241,7 @@ var AccordionRoot = ({
|
|
|
1224
1241
|
}
|
|
1225
1242
|
) });
|
|
1226
1243
|
var AccordionItem = (props2) => /* @__PURE__ */ jsx(
|
|
1227
|
-
Accordion.Item,
|
|
1244
|
+
Accordion$1.Item,
|
|
1228
1245
|
{
|
|
1229
1246
|
unstyled: true,
|
|
1230
1247
|
borderBottomWidth: 1,
|
|
@@ -1242,8 +1259,8 @@ var AccordionItemTrigger = ({
|
|
|
1242
1259
|
}) => {
|
|
1243
1260
|
const variant = variantProp ?? React64.useContext(Variant);
|
|
1244
1261
|
const placement = variant === "faq" ? "start" : placementProp ?? "end";
|
|
1245
|
-
return /* @__PURE__ */ jsx(Accordion.Header, { unstyled: true, render: `h${headingLevel}`, "aria-level": headingLevel, display: "flex", width: "100%", children: /* @__PURE__ */ jsx(
|
|
1246
|
-
Accordion.Trigger,
|
|
1262
|
+
return /* @__PURE__ */ jsx(Accordion$1.Header, { unstyled: true, render: `h${headingLevel}`, "aria-level": headingLevel, display: "flex", width: "100%", children: /* @__PURE__ */ jsx(
|
|
1263
|
+
Accordion$1.Trigger,
|
|
1247
1264
|
{
|
|
1248
1265
|
unstyled: true,
|
|
1249
1266
|
type: "button",
|
|
@@ -1258,16 +1275,16 @@ var AccordionItemTrigger = ({
|
|
|
1258
1275
|
cursor: "pointer",
|
|
1259
1276
|
className: "lux-accordion-trigger",
|
|
1260
1277
|
...rest,
|
|
1261
|
-
children: (({ open }) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1262
|
-
placement === "start" && !noIndicator && /* @__PURE__ */ jsx(Indicator2, { open, variant }),
|
|
1278
|
+
children: (({ open: open2 }) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1279
|
+
placement === "start" && !noIndicator && /* @__PURE__ */ jsx(Indicator2, { open: open2, variant }),
|
|
1263
1280
|
ink(children, void 0, { color: "inherit", textAlign: "left" }),
|
|
1264
|
-
placement === "end" && !noIndicator && /* @__PURE__ */ jsx(Indicator2, { open, variant })
|
|
1281
|
+
placement === "end" && !noIndicator && /* @__PURE__ */ jsx(Indicator2, { open: open2, variant })
|
|
1265
1282
|
] }))
|
|
1266
1283
|
}
|
|
1267
1284
|
) });
|
|
1268
1285
|
};
|
|
1269
1286
|
var AccordionItemContent = ({ children, ...rest }) => /* @__PURE__ */ jsx(
|
|
1270
|
-
Accordion.Content,
|
|
1287
|
+
Accordion$1.Content,
|
|
1271
1288
|
{
|
|
1272
1289
|
unstyled: true,
|
|
1273
1290
|
overflow: "hidden",
|
|
@@ -1381,7 +1398,7 @@ var INDICATOR_SIZE = {
|
|
|
1381
1398
|
var Alert = React64.forwardRef(
|
|
1382
1399
|
function Alert2(props2, ref2) {
|
|
1383
1400
|
const {
|
|
1384
|
-
title,
|
|
1401
|
+
title: title2,
|
|
1385
1402
|
children,
|
|
1386
1403
|
icon,
|
|
1387
1404
|
closable,
|
|
@@ -1470,7 +1487,7 @@ var Alert = React64.forwardRef(
|
|
|
1470
1487
|
children: [
|
|
1471
1488
|
iconElement,
|
|
1472
1489
|
children ? /* @__PURE__ */ jsxs(ContentFrame, { flex: 1, alignItems: inline ? "center" : void 0, children: [
|
|
1473
|
-
|
|
1490
|
+
title2 && /* @__PURE__ */ jsx(Text, { fontWeight: "600", fontSize, color: ALERT_FG, children: title2 }),
|
|
1474
1491
|
/* @__PURE__ */ jsx(
|
|
1475
1492
|
XStack,
|
|
1476
1493
|
{
|
|
@@ -1481,7 +1498,7 @@ var Alert = React64.forwardRef(
|
|
|
1481
1498
|
children: ink(children, void 0, { fontSize, color: ALERT_FG })
|
|
1482
1499
|
}
|
|
1483
1500
|
)
|
|
1484
|
-
] }) : /* @__PURE__ */ jsx(Text, { flex: 1, fontWeight: "600", fontSize, color: ALERT_FG, children:
|
|
1501
|
+
] }) : /* @__PURE__ */ jsx(Text, { flex: 1, fontWeight: "600", fontSize, color: ALERT_FG, children: title2 }),
|
|
1485
1502
|
endElement,
|
|
1486
1503
|
closable && /* @__PURE__ */ jsx(View, { position: "relative", alignSelf: "flex-start", children: /* @__PURE__ */ jsx(CloseButton, { onClick: handleClose }) })
|
|
1487
1504
|
]
|
|
@@ -1626,7 +1643,7 @@ var Tooltip = React64.forwardRef(
|
|
|
1626
1643
|
interactive,
|
|
1627
1644
|
positioning
|
|
1628
1645
|
} = props2;
|
|
1629
|
-
const [
|
|
1646
|
+
const [open2, setOpen] = React64.useState(defaultOpen);
|
|
1630
1647
|
const timeoutRef = React64.useRef(null);
|
|
1631
1648
|
const isMobile = useIsTouch();
|
|
1632
1649
|
const handleOpenChange = React64.useCallback((nextOpen) => {
|
|
@@ -1641,12 +1658,12 @@ var Tooltip = React64.forwardRef(
|
|
|
1641
1658
|
}, nextOpen ? openDelay : closeDelay);
|
|
1642
1659
|
}, [closeDelay, openDelay, onOpenChange]);
|
|
1643
1660
|
const handleClickAway = React64.useCallback(() => {
|
|
1644
|
-
if (
|
|
1645
|
-
}, [
|
|
1661
|
+
if (open2) handleOpenChangeManual(false);
|
|
1662
|
+
}, [open2, handleOpenChangeManual]);
|
|
1646
1663
|
const triggerRef = useClickAway(handleClickAway);
|
|
1647
1664
|
const handleTriggerClick = React64.useCallback(() => {
|
|
1648
|
-
handleOpenChangeManual(!
|
|
1649
|
-
}, [handleOpenChangeManual,
|
|
1665
|
+
handleOpenChangeManual(!open2);
|
|
1666
|
+
}, [handleOpenChangeManual, open2]);
|
|
1650
1667
|
const handleContentClick = React64.useCallback((event) => {
|
|
1651
1668
|
event.stopPropagation();
|
|
1652
1669
|
if (interactive) {
|
|
@@ -1672,7 +1689,7 @@ var Tooltip = React64.forwardRef(
|
|
|
1672
1689
|
return /* @__PURE__ */ jsx(TooltipGroup, { delay: openDelay, children: /* @__PURE__ */ jsxs(
|
|
1673
1690
|
Tooltip$1,
|
|
1674
1691
|
{
|
|
1675
|
-
open,
|
|
1692
|
+
open: open2,
|
|
1676
1693
|
onOpenChange: handleOpenChange,
|
|
1677
1694
|
delay: { open: openDelay, close: closeDelay },
|
|
1678
1695
|
placement,
|
|
@@ -2833,7 +2850,7 @@ function sizeClasses(size) {
|
|
|
2833
2850
|
}
|
|
2834
2851
|
var DialogRoot = ({
|
|
2835
2852
|
children,
|
|
2836
|
-
open,
|
|
2853
|
+
open: open2,
|
|
2837
2854
|
defaultOpen,
|
|
2838
2855
|
onOpenChange,
|
|
2839
2856
|
size = "md",
|
|
@@ -2850,7 +2867,7 @@ var DialogRoot = ({
|
|
|
2850
2867
|
return /* @__PURE__ */ jsx(DialogSizeContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx(
|
|
2851
2868
|
Dialog,
|
|
2852
2869
|
{
|
|
2853
|
-
open,
|
|
2870
|
+
open: open2,
|
|
2854
2871
|
defaultOpen,
|
|
2855
2872
|
onOpenChange: handleOpenChange,
|
|
2856
2873
|
modal,
|
|
@@ -2989,10 +3006,10 @@ var ICONS = {};
|
|
|
2989
3006
|
var MUTED = "var(--color-text-secondary)";
|
|
2990
3007
|
var EmptyState = React64.forwardRef(
|
|
2991
3008
|
function EmptyState2(props2, ref2) {
|
|
2992
|
-
const { title, description, term, type = "query", icon, children, className: className2, ...rest } = props2;
|
|
3009
|
+
const { title: title2, description, term, type = "query", icon, children, className: className2, ...rest } = props2;
|
|
2993
3010
|
const titleContent = (() => {
|
|
2994
|
-
if (
|
|
2995
|
-
return
|
|
3011
|
+
if (title2) {
|
|
3012
|
+
return title2;
|
|
2996
3013
|
}
|
|
2997
3014
|
if (type === "stats") {
|
|
2998
3015
|
return "Collecting data";
|
|
@@ -3888,7 +3905,7 @@ var PositioningContext = React64.createContext({
|
|
|
3888
3905
|
var PopoverRoot = (props2) => {
|
|
3889
3906
|
const {
|
|
3890
3907
|
children,
|
|
3891
|
-
open,
|
|
3908
|
+
open: open2,
|
|
3892
3909
|
defaultOpen,
|
|
3893
3910
|
onOpenChange,
|
|
3894
3911
|
positioning,
|
|
@@ -3935,7 +3952,7 @@ var PopoverRoot = (props2) => {
|
|
|
3935
3952
|
return /* @__PURE__ */ jsx(PositioningContext.Provider, { value: positioningValue, children: /* @__PURE__ */ jsx(
|
|
3936
3953
|
Popover,
|
|
3937
3954
|
{
|
|
3938
|
-
open,
|
|
3955
|
+
open: open2,
|
|
3939
3956
|
defaultOpen,
|
|
3940
3957
|
onOpenChange: handleOpenChange,
|
|
3941
3958
|
placement,
|
|
@@ -4538,8 +4555,8 @@ var SelectRoot = React64.forwardRef(
|
|
|
4538
4555
|
const selectedItems = React64.useMemo(() => {
|
|
4539
4556
|
return currentValue.map((v) => collection.items.find((item) => item.value === v)).filter(Boolean);
|
|
4540
4557
|
}, [currentValue, collection.items]);
|
|
4541
|
-
const [
|
|
4542
|
-
const isOpen = openProp ??
|
|
4558
|
+
const [open2, setOpen] = React64.useState(defaultOpen ?? false);
|
|
4559
|
+
const isOpen = openProp ?? open2;
|
|
4543
4560
|
const handleOpenChange = React64.useCallback((nextOpen) => {
|
|
4544
4561
|
setOpen(nextOpen);
|
|
4545
4562
|
onOpenChange?.(nextOpen);
|
|
@@ -5856,8 +5873,8 @@ var One = ({ entry }) => /* @__PURE__ */ jsxs(
|
|
|
5856
5873
|
Toast,
|
|
5857
5874
|
{
|
|
5858
5875
|
duration: entry.duration ?? DURATION,
|
|
5859
|
-
onOpenChange: (
|
|
5860
|
-
if (!
|
|
5876
|
+
onOpenChange: (open2) => {
|
|
5877
|
+
if (!open2) remove(entry.id);
|
|
5861
5878
|
},
|
|
5862
5879
|
unstyled: true,
|
|
5863
5880
|
flexDirection: "column",
|
|
@@ -6669,7 +6686,7 @@ var PnlDiagram = React64.forwardRef(
|
|
|
6669
6686
|
React64.useEffect(() => {
|
|
6670
6687
|
const el = containerRef.current;
|
|
6671
6688
|
if (!el) return;
|
|
6672
|
-
const
|
|
6689
|
+
const observer11 = new ResizeObserver((entries2) => {
|
|
6673
6690
|
const entry = entries2[0];
|
|
6674
6691
|
if (entry) {
|
|
6675
6692
|
setDims({
|
|
@@ -6678,8 +6695,8 @@ var PnlDiagram = React64.forwardRef(
|
|
|
6678
6695
|
});
|
|
6679
6696
|
}
|
|
6680
6697
|
});
|
|
6681
|
-
|
|
6682
|
-
return () =>
|
|
6698
|
+
observer11.observe(el);
|
|
6699
|
+
return () => observer11.disconnect();
|
|
6683
6700
|
}, []);
|
|
6684
6701
|
const allStrikes = legs.map((l) => l.strike);
|
|
6685
6702
|
const minStrike = Math.min(...allStrikes, spotPrice);
|
|
@@ -8517,7 +8534,7 @@ Grid3D.displayName = "Grid3D";
|
|
|
8517
8534
|
var Grid3DCard = React64.forwardRef(
|
|
8518
8535
|
({
|
|
8519
8536
|
className: className2,
|
|
8520
|
-
title,
|
|
8537
|
+
title: title2,
|
|
8521
8538
|
description,
|
|
8522
8539
|
image,
|
|
8523
8540
|
badge,
|
|
@@ -8545,14 +8562,14 @@ var Grid3DCard = React64.forwardRef(
|
|
|
8545
8562
|
{
|
|
8546
8563
|
tag: "img",
|
|
8547
8564
|
src: image,
|
|
8548
|
-
alt:
|
|
8565
|
+
alt: title2 || "",
|
|
8549
8566
|
className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-110"
|
|
8550
8567
|
}
|
|
8551
8568
|
),
|
|
8552
8569
|
badge && /* @__PURE__ */ jsx(Box, { className: "absolute top-2 right-2 px-2 py-1 text-xs rounded-full bg-primary text-primary-foreground", children: badge })
|
|
8553
8570
|
] }),
|
|
8554
8571
|
/* @__PURE__ */ jsxs(Box, { className: "flex-1 p-4 flex flex-col justify-between", children: [
|
|
8555
|
-
|
|
8572
|
+
title2 && /* @__PURE__ */ jsx(Box, { tag: "h3", className: "font-semibold text-lg mb-2 line-clamp-2 group-hover:text-primary transition-colors", children: title2 }),
|
|
8556
8573
|
description && /* @__PURE__ */ jsx(Box, { tag: "p", className: "text-sm text-muted-foreground line-clamp-3 mb-4", children: description }),
|
|
8557
8574
|
children && /* @__PURE__ */ jsx(Box, { className: "mt-auto", children })
|
|
8558
8575
|
] }),
|
|
@@ -17532,7 +17549,7 @@ function inView(elementOrSelector, onStart, { root, margin: rootMargin, amount =
|
|
|
17532
17549
|
if (typeof newOnEnd === "function") {
|
|
17533
17550
|
activeIntersections.set(entry.target, newOnEnd);
|
|
17534
17551
|
} else {
|
|
17535
|
-
|
|
17552
|
+
observer11.unobserve(entry.target);
|
|
17536
17553
|
}
|
|
17537
17554
|
} else if (typeof onEnd === "function") {
|
|
17538
17555
|
onEnd(entry);
|
|
@@ -17540,13 +17557,13 @@ function inView(elementOrSelector, onStart, { root, margin: rootMargin, amount =
|
|
|
17540
17557
|
}
|
|
17541
17558
|
});
|
|
17542
17559
|
};
|
|
17543
|
-
const
|
|
17560
|
+
const observer11 = new IntersectionObserver(onIntersectionChange, {
|
|
17544
17561
|
root,
|
|
17545
17562
|
rootMargin,
|
|
17546
17563
|
threshold: typeof amount === "number" ? amount : thresholds[amount]
|
|
17547
17564
|
});
|
|
17548
|
-
elements.forEach((element) =>
|
|
17549
|
-
return () =>
|
|
17565
|
+
elements.forEach((element) => observer11.observe(element));
|
|
17566
|
+
return () => observer11.disconnect();
|
|
17550
17567
|
}
|
|
17551
17568
|
|
|
17552
17569
|
// ../../node_modules/.pnpm/framer-motion@12.38.0_@emotion+is-prop-valid@1.4.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/framer-motion/dist/es/utils/use-in-view.mjs
|
|
@@ -18583,7 +18600,7 @@ ModelViewer3DPreset.Basic.displayName = "ModelViewer3DPreset.Basic";
|
|
|
18583
18600
|
ModelViewer3DPreset.Advanced.displayName = "ModelViewer3DPreset.Advanced";
|
|
18584
18601
|
ModelViewer3DPreset.Presentation.displayName = "ModelViewer3DPreset.Presentation";
|
|
18585
18602
|
var Pin3D = React64.forwardRef(
|
|
18586
|
-
({ className: className2, title, href, children, ...props2 }, ref2) => {
|
|
18603
|
+
({ className: className2, title: title2, href, children, ...props2 }, ref2) => {
|
|
18587
18604
|
return /* @__PURE__ */ jsxs(
|
|
18588
18605
|
Box,
|
|
18589
18606
|
{
|
|
@@ -19652,7 +19669,7 @@ var AgentCard = ({
|
|
|
19652
19669
|
);
|
|
19653
19670
|
};
|
|
19654
19671
|
var CreateAgentDialog = ({ onAgentCreate }) => {
|
|
19655
|
-
const [
|
|
19672
|
+
const [open2, setOpen] = useState(false);
|
|
19656
19673
|
const [formData, setFormData] = useState({
|
|
19657
19674
|
name: "",
|
|
19658
19675
|
type: "research",
|
|
@@ -19677,15 +19694,15 @@ var CreateAgentDialog = ({ onAgentCreate }) => {
|
|
|
19677
19694
|
});
|
|
19678
19695
|
setOpen(false);
|
|
19679
19696
|
};
|
|
19680
|
-
return /* @__PURE__ */ jsxs(Dialog$
|
|
19681
|
-
/* @__PURE__ */ jsx(DialogTrigger$
|
|
19697
|
+
return /* @__PURE__ */ jsxs(Dialog$2, { open: open2, onOpenChange: setOpen, children: [
|
|
19698
|
+
/* @__PURE__ */ jsx(DialogTrigger$2, { asChild: true, children: /* @__PURE__ */ jsxs(Button, { children: [
|
|
19682
19699
|
/* @__PURE__ */ jsx(Plus, { style: css("h-4 w-4 mr-2") }),
|
|
19683
19700
|
"Create Agent"
|
|
19684
19701
|
] }) }),
|
|
19685
|
-
/* @__PURE__ */ jsxs(DialogContent$
|
|
19686
|
-
/* @__PURE__ */ jsxs(DialogHeader$
|
|
19687
|
-
/* @__PURE__ */ jsx(DialogTitle$
|
|
19688
|
-
/* @__PURE__ */ jsx(DialogDescription$
|
|
19702
|
+
/* @__PURE__ */ jsxs(DialogContent$2, { children: [
|
|
19703
|
+
/* @__PURE__ */ jsxs(DialogHeader$2, { children: [
|
|
19704
|
+
/* @__PURE__ */ jsx(DialogTitle$2, { children: "Create New Agent" }),
|
|
19705
|
+
/* @__PURE__ */ jsx(DialogDescription$2, { children: "Configure a new AI agent for your workflow" })
|
|
19689
19706
|
] }),
|
|
19690
19707
|
/* @__PURE__ */ jsxs(Box, { className: "space-y-4", children: [
|
|
19691
19708
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -19744,7 +19761,7 @@ var CreateAgentDialog = ({ onAgentCreate }) => {
|
|
|
19744
19761
|
] });
|
|
19745
19762
|
};
|
|
19746
19763
|
var TaskAssignmentDialog = ({ agents, onTaskAssign }) => {
|
|
19747
|
-
const [
|
|
19764
|
+
const [open2, setOpen] = useState(false);
|
|
19748
19765
|
const [taskData, setTaskData] = useState({
|
|
19749
19766
|
title: "",
|
|
19750
19767
|
description: "",
|
|
@@ -19774,15 +19791,15 @@ var TaskAssignmentDialog = ({ agents, onTaskAssign }) => {
|
|
|
19774
19791
|
});
|
|
19775
19792
|
setOpen(false);
|
|
19776
19793
|
};
|
|
19777
|
-
return /* @__PURE__ */ jsxs(Dialog$
|
|
19778
|
-
/* @__PURE__ */ jsx(DialogTrigger$
|
|
19794
|
+
return /* @__PURE__ */ jsxs(Dialog$2, { open: open2, onOpenChange: setOpen, children: [
|
|
19795
|
+
/* @__PURE__ */ jsx(DialogTrigger$2, { asChild: true, children: /* @__PURE__ */ jsxs(Button, { variant: "outline", children: [
|
|
19779
19796
|
/* @__PURE__ */ jsx(MessageSquare, { style: css("h-4 w-4 mr-2") }),
|
|
19780
19797
|
"Assign Task"
|
|
19781
19798
|
] }) }),
|
|
19782
|
-
/* @__PURE__ */ jsxs(DialogContent$
|
|
19783
|
-
/* @__PURE__ */ jsxs(DialogHeader$
|
|
19784
|
-
/* @__PURE__ */ jsx(DialogTitle$
|
|
19785
|
-
/* @__PURE__ */ jsx(DialogDescription$
|
|
19799
|
+
/* @__PURE__ */ jsxs(DialogContent$2, { children: [
|
|
19800
|
+
/* @__PURE__ */ jsxs(DialogHeader$2, { children: [
|
|
19801
|
+
/* @__PURE__ */ jsx(DialogTitle$2, { children: "Assign New Task" }),
|
|
19802
|
+
/* @__PURE__ */ jsx(DialogDescription$2, { children: "Create and assign a task to an agent" })
|
|
19786
19803
|
] }),
|
|
19787
19804
|
/* @__PURE__ */ jsxs(Box, { className: "space-y-4", children: [
|
|
19788
19805
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -26992,7 +27009,7 @@ function Calendar({
|
|
|
26992
27009
|
caption_label: "text-sm font-medium",
|
|
26993
27010
|
nav: "space-x-1 flex items-center",
|
|
26994
27011
|
nav_button: cn(
|
|
26995
|
-
buttonVariants({ variant: "outline" }),
|
|
27012
|
+
buttonVariants$1({ variant: "outline" }),
|
|
26996
27013
|
"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"
|
|
26997
27014
|
),
|
|
26998
27015
|
nav_button_previous: "absolute left-1",
|
|
@@ -27003,7 +27020,7 @@ function Calendar({
|
|
|
27003
27020
|
row: "flex w-full mt-2",
|
|
27004
27021
|
cell: "h-9 w-9 text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected])]:bg-accent first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20",
|
|
27005
27022
|
day: cn(
|
|
27006
|
-
buttonVariants({ variant: "ghost" }),
|
|
27023
|
+
buttonVariants$1({ variant: "ghost" }),
|
|
27007
27024
|
"h-9 w-9 p-0 font-normal aria-selected:opacity-100"
|
|
27008
27025
|
),
|
|
27009
27026
|
day_range_end: "day-range-end",
|
|
@@ -29570,7 +29587,7 @@ var CodeTerminal = React64.forwardRef(
|
|
|
29570
29587
|
className: className2,
|
|
29571
29588
|
theme,
|
|
29572
29589
|
size,
|
|
29573
|
-
title = "Terminal",
|
|
29590
|
+
title: title2 = "Terminal",
|
|
29574
29591
|
prompt = "$",
|
|
29575
29592
|
maxLines = 1e3,
|
|
29576
29593
|
showLineNumbers = false,
|
|
@@ -29749,7 +29766,7 @@ var CodeTerminal = React64.forwardRef(
|
|
|
29749
29766
|
/* @__PURE__ */ jsx(Box, { className: "w-3 h-3 rounded-full bg-[var(--lux-state-success)]" })
|
|
29750
29767
|
] }),
|
|
29751
29768
|
/* @__PURE__ */ jsx(Terminal, { style: css("h-4 w-4") }),
|
|
29752
|
-
/* @__PURE__ */ jsx(Box, { tag: "span", className: "text-sm font-medium", children:
|
|
29769
|
+
/* @__PURE__ */ jsx(Box, { tag: "span", className: "text-sm font-medium", children: title2 }),
|
|
29753
29770
|
lines.length > 0 && /* @__PURE__ */ jsxs(Box, { tag: "span", className: "text-xs text-muted-foreground", children: [
|
|
29754
29771
|
lines.length,
|
|
29755
29772
|
" lines"
|
|
@@ -29842,9 +29859,9 @@ var CodeTerminal = React64.forwardRef(
|
|
|
29842
29859
|
}
|
|
29843
29860
|
);
|
|
29844
29861
|
CodeTerminal.displayName = "CodeTerminal";
|
|
29845
|
-
var CollaborationNavigationBar = React64.forwardRef(({ className: className2, title, collaborators = [], ...props2 }, ref2) => {
|
|
29862
|
+
var CollaborationNavigationBar = React64.forwardRef(({ className: className2, title: title2, collaborators = [], ...props2 }, ref2) => {
|
|
29846
29863
|
return /* @__PURE__ */ jsx(Box, { tag: "nav", ref: ref2, className: cn("border-b", className2), ...props2, children: /* @__PURE__ */ jsxs(Box, { className: "container flex h-16 items-center justify-between", children: [
|
|
29847
|
-
/* @__PURE__ */ jsx(Box, { tag: "h2", className: "text-lg font-semibold", children:
|
|
29864
|
+
/* @__PURE__ */ jsx(Box, { tag: "h2", className: "text-lg font-semibold", children: title2 }),
|
|
29848
29865
|
/* @__PURE__ */ jsxs(Box, { className: "flex items-center gap-3", children: [
|
|
29849
29866
|
/* @__PURE__ */ jsx(Users, { style: css("h-5 w-5 text-muted-foreground") }),
|
|
29850
29867
|
/* @__PURE__ */ jsxs(Box, { className: "flex -space-x-2", children: [
|
|
@@ -29910,15 +29927,15 @@ function Combobox({
|
|
|
29910
29927
|
placeholder = "Select option...",
|
|
29911
29928
|
emptyText = "No option found."
|
|
29912
29929
|
}) {
|
|
29913
|
-
const [
|
|
29930
|
+
const [open2, setOpen] = React64.useState(false);
|
|
29914
29931
|
const [searchValue, setSearchValue] = React64.useState("");
|
|
29915
|
-
return /* @__PURE__ */ jsxs(Popover$1, { open, onOpenChange: setOpen, children: [
|
|
29932
|
+
return /* @__PURE__ */ jsxs(Popover$1, { open: open2, onOpenChange: setOpen, children: [
|
|
29916
29933
|
/* @__PURE__ */ jsx(PopoverTrigger$1, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
29917
29934
|
Button,
|
|
29918
29935
|
{
|
|
29919
29936
|
variant: "outline",
|
|
29920
29937
|
role: "combobox",
|
|
29921
|
-
"aria-expanded":
|
|
29938
|
+
"aria-expanded": open2,
|
|
29922
29939
|
...sx("w-full justify-between"),
|
|
29923
29940
|
children: [
|
|
29924
29941
|
value2 ? options.find((option) => option.value === value2)?.label : placeholder,
|
|
@@ -30116,9 +30133,9 @@ var Cursor = React64.forwardRef(
|
|
|
30116
30133
|
}
|
|
30117
30134
|
);
|
|
30118
30135
|
Cursor.displayName = "Cursor";
|
|
30119
|
-
var DashboardNavigationBar = React64.forwardRef(({ className: className2, title, user, ...props2 }, ref2) => {
|
|
30136
|
+
var DashboardNavigationBar = React64.forwardRef(({ className: className2, title: title2, user, ...props2 }, ref2) => {
|
|
30120
30137
|
return /* @__PURE__ */ jsx(Box, { tag: "nav", ref: ref2, className: cn("border-b", className2), ...props2, children: /* @__PURE__ */ jsxs(Box, { className: "container flex h-16 items-center justify-between", children: [
|
|
30121
|
-
/* @__PURE__ */ jsx(Box, { tag: "h1", className: "text-xl font-semibold", children:
|
|
30138
|
+
/* @__PURE__ */ jsx(Box, { tag: "h1", className: "text-xl font-semibold", children: title2 }),
|
|
30122
30139
|
/* @__PURE__ */ jsxs(Box, { className: "flex items-center gap-4", children: [
|
|
30123
30140
|
/* @__PURE__ */ jsx(Button, { variant: "ghost", size: "icon", children: /* @__PURE__ */ jsx(Search, { style: css("h-5 w-5") }) }),
|
|
30124
30141
|
/* @__PURE__ */ jsx(Button, { variant: "ghost", size: "icon", children: /* @__PURE__ */ jsx(Bell, { style: css("h-5 w-5") }) }),
|
|
@@ -31495,7 +31512,7 @@ function KanbanColumnComponent({
|
|
|
31495
31512
|
);
|
|
31496
31513
|
}
|
|
31497
31514
|
function CardFormDialog({
|
|
31498
|
-
open,
|
|
31515
|
+
open: open2,
|
|
31499
31516
|
onOpenChange,
|
|
31500
31517
|
card,
|
|
31501
31518
|
onSave,
|
|
@@ -31541,10 +31558,10 @@ function CardFormDialog({
|
|
|
31541
31558
|
});
|
|
31542
31559
|
}
|
|
31543
31560
|
}, [card]);
|
|
31544
|
-
return /* @__PURE__ */ jsx(Dialog$
|
|
31545
|
-
/* @__PURE__ */ jsxs(DialogHeader$
|
|
31546
|
-
/* @__PURE__ */ jsx(DialogTitle$
|
|
31547
|
-
/* @__PURE__ */ jsx(DialogDescription$
|
|
31561
|
+
return /* @__PURE__ */ jsx(Dialog$2, { open: open2, onOpenChange, children: /* @__PURE__ */ jsxs(DialogContent$2, { ...sx("max-w-md"), children: [
|
|
31562
|
+
/* @__PURE__ */ jsxs(DialogHeader$2, { children: [
|
|
31563
|
+
/* @__PURE__ */ jsx(DialogTitle$2, { children: card ? "Edit Card" : "Create Card" }),
|
|
31564
|
+
/* @__PURE__ */ jsx(DialogDescription$2, { children: card ? "Update the card details below." : "Create a new card for your kanban board." })
|
|
31548
31565
|
] }),
|
|
31549
31566
|
/* @__PURE__ */ jsxs(Box, { tag: "form", onSubmit: handleSubmit, className: "space-y-4", children: [
|
|
31550
31567
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -31922,7 +31939,7 @@ var LimelightNav = React64.forwardRef(
|
|
|
31922
31939
|
const down = (e) => {
|
|
31923
31940
|
if (e.key === "k" && (e.metaKey || e.ctrlKey)) {
|
|
31924
31941
|
e.preventDefault();
|
|
31925
|
-
setIsOpen((
|
|
31942
|
+
setIsOpen((open2) => !open2);
|
|
31926
31943
|
}
|
|
31927
31944
|
};
|
|
31928
31945
|
document.addEventListener("keydown", down);
|
|
@@ -32123,8 +32140,8 @@ var MenuDock = React64.forwardRef(
|
|
|
32123
32140
|
MenuDock.displayName = "MenuDock";
|
|
32124
32141
|
var BarContext = createContext(null);
|
|
32125
32142
|
function Menubar({ children, ...rest }) {
|
|
32126
|
-
const [
|
|
32127
|
-
return /* @__PURE__ */ jsx(BarContext.Provider, { value: { open, setOpen }, children: /* @__PURE__ */ jsx(
|
|
32143
|
+
const [open2, setOpen] = useState(null);
|
|
32144
|
+
return /* @__PURE__ */ jsx(BarContext.Provider, { value: { open: open2, setOpen }, children: /* @__PURE__ */ jsx(
|
|
32128
32145
|
XStack,
|
|
32129
32146
|
{
|
|
32130
32147
|
role: "menubar",
|
|
@@ -32145,9 +32162,9 @@ function MenubarMenu({ children }) {
|
|
|
32145
32162
|
const bar = useContext(BarContext);
|
|
32146
32163
|
const [id3] = useState(() => `menubar-${seq += 1}`);
|
|
32147
32164
|
const [own, setOwn] = useState(false);
|
|
32148
|
-
const
|
|
32165
|
+
const open2 = bar ? bar.open === id3 : own;
|
|
32149
32166
|
const setOpen = (next) => bar ? bar.setOpen(next ? id3 : null) : setOwn(next);
|
|
32150
|
-
return /* @__PURE__ */ jsx(DropdownMenu, { open, onOpenChange: setOpen, children: /* @__PURE__ */ jsx(MenuIdContext.Provider, { value: { id: id3, open, setOpen }, children }) });
|
|
32167
|
+
return /* @__PURE__ */ jsx(DropdownMenu, { open: open2, onOpenChange: setOpen, children: /* @__PURE__ */ jsx(MenuIdContext.Provider, { value: { id: id3, open: open2, setOpen }, children }) });
|
|
32151
32168
|
}
|
|
32152
32169
|
var MenuIdContext = createContext(null);
|
|
32153
32170
|
function MenubarTrigger({ children, ...rest }) {
|
|
@@ -32927,7 +32944,7 @@ var PaginationLink = ({
|
|
|
32927
32944
|
tag: "a",
|
|
32928
32945
|
"aria-current": isActive ? "page" : void 0,
|
|
32929
32946
|
className: cn(
|
|
32930
|
-
buttonVariants({
|
|
32947
|
+
buttonVariants$1({
|
|
32931
32948
|
variant: isActive ? "outline" : "ghost",
|
|
32932
32949
|
size
|
|
32933
32950
|
}),
|
|
@@ -34317,10 +34334,10 @@ function SidebarProvider({
|
|
|
34317
34334
|
const isMobile = useIsMobile();
|
|
34318
34335
|
const [openMobile, setOpenMobile] = React64.useState(false);
|
|
34319
34336
|
const [_open, _setOpen] = React64.useState(defaultOpen);
|
|
34320
|
-
const
|
|
34337
|
+
const open2 = openProp ?? _open;
|
|
34321
34338
|
const setOpen = React64.useCallback(
|
|
34322
34339
|
(value2) => {
|
|
34323
|
-
const openState = typeof value2 === "function" ? value2(
|
|
34340
|
+
const openState = typeof value2 === "function" ? value2(open2) : value2;
|
|
34324
34341
|
if (setOpenProp) {
|
|
34325
34342
|
setOpenProp(openState);
|
|
34326
34343
|
} else {
|
|
@@ -34328,10 +34345,10 @@ function SidebarProvider({
|
|
|
34328
34345
|
}
|
|
34329
34346
|
document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
|
|
34330
34347
|
},
|
|
34331
|
-
[setOpenProp,
|
|
34348
|
+
[setOpenProp, open2]
|
|
34332
34349
|
);
|
|
34333
34350
|
const toggleSidebar = React64.useCallback(() => {
|
|
34334
|
-
return isMobile ? setOpenMobile((
|
|
34351
|
+
return isMobile ? setOpenMobile((open3) => !open3) : setOpen((open3) => !open3);
|
|
34335
34352
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
34336
34353
|
React64.useEffect(() => {
|
|
34337
34354
|
const handleKeyDown = (event) => {
|
|
@@ -34343,18 +34360,18 @@ function SidebarProvider({
|
|
|
34343
34360
|
window.addEventListener("keydown", handleKeyDown);
|
|
34344
34361
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
34345
34362
|
}, [toggleSidebar]);
|
|
34346
|
-
const state =
|
|
34363
|
+
const state = open2 ? "expanded" : "collapsed";
|
|
34347
34364
|
const contextValue = React64.useMemo(
|
|
34348
34365
|
() => ({
|
|
34349
34366
|
state,
|
|
34350
|
-
open,
|
|
34367
|
+
open: open2,
|
|
34351
34368
|
setOpen,
|
|
34352
34369
|
isMobile,
|
|
34353
34370
|
openMobile,
|
|
34354
34371
|
setOpenMobile,
|
|
34355
34372
|
toggleSidebar
|
|
34356
34373
|
}),
|
|
34357
|
-
[state,
|
|
34374
|
+
[state, open2, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
|
|
34358
34375
|
);
|
|
34359
34376
|
return /* @__PURE__ */ jsx(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(TooltipProvider, { delay: 0, children: /* @__PURE__ */ jsx(
|
|
34360
34377
|
Box,
|
|
@@ -35451,7 +35468,7 @@ var Timeline = React64.forwardRef(
|
|
|
35451
35468
|
setVisibleItems(new Set(items.map((item) => item.id)));
|
|
35452
35469
|
return;
|
|
35453
35470
|
}
|
|
35454
|
-
const
|
|
35471
|
+
const observer11 = new IntersectionObserver(
|
|
35455
35472
|
(entries2) => {
|
|
35456
35473
|
entries2.forEach((entry) => {
|
|
35457
35474
|
if (entry.isIntersecting) {
|
|
@@ -35468,8 +35485,8 @@ var Timeline = React64.forwardRef(
|
|
|
35468
35485
|
}
|
|
35469
35486
|
);
|
|
35470
35487
|
const elements = document.querySelectorAll("[data-timeline-id]");
|
|
35471
|
-
elements.forEach((el) =>
|
|
35472
|
-
return () =>
|
|
35488
|
+
elements.forEach((el) => observer11.observe(el));
|
|
35489
|
+
return () => observer11.disconnect();
|
|
35473
35490
|
}, [items, animated]);
|
|
35474
35491
|
const getStatusIcon = (status) => {
|
|
35475
35492
|
switch (status) {
|
|
@@ -36421,5 +36438,1884 @@ var YouTubePipPlayer = React64.forwardRef(
|
|
|
36421
36438
|
}
|
|
36422
36439
|
);
|
|
36423
36440
|
YouTubePipPlayer.displayName = "YouTubePipPlayer";
|
|
36441
|
+
var AccessCodeInput = ({
|
|
36442
|
+
onSuccess,
|
|
36443
|
+
onFail,
|
|
36444
|
+
validCodes,
|
|
36445
|
+
className: className2
|
|
36446
|
+
}) => {
|
|
36447
|
+
const [status, setStatus] = useState();
|
|
36448
|
+
const checkAccessCode = (code2) => {
|
|
36449
|
+
setStatus(void 0);
|
|
36450
|
+
if (code2.length === 6) {
|
|
36451
|
+
setStatus("checking");
|
|
36452
|
+
setTimeout(() => {
|
|
36453
|
+
if (validCodes?.includes(code2) && onSuccess) {
|
|
36454
|
+
setStatus("valid");
|
|
36455
|
+
onSuccess();
|
|
36456
|
+
} else {
|
|
36457
|
+
setStatus("invalid");
|
|
36458
|
+
onFail && onFail();
|
|
36459
|
+
}
|
|
36460
|
+
}, 1e3);
|
|
36461
|
+
}
|
|
36462
|
+
};
|
|
36463
|
+
return /* @__PURE__ */ jsxs(Box, { className: cn("flex flex-col gap-2 mx-auto w-full text-center items-center", className2), children: [
|
|
36464
|
+
/* @__PURE__ */ jsx(
|
|
36465
|
+
InputOTP$1,
|
|
36466
|
+
{
|
|
36467
|
+
className: "mx-auto",
|
|
36468
|
+
maxLength: 6,
|
|
36469
|
+
onInput: (event) => checkAccessCode(event.target.value),
|
|
36470
|
+
render: ({ slots }) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
36471
|
+
/* @__PURE__ */ jsxs(InputOTPGroup$1, { children: [
|
|
36472
|
+
slots.slice(0, 3).map((slot, index) => /* @__PURE__ */ jsx(InputOTPSlot$1, { ...slot }, index)),
|
|
36473
|
+
" "
|
|
36474
|
+
] }),
|
|
36475
|
+
/* @__PURE__ */ jsx(InputOTPSeparator$1, {}),
|
|
36476
|
+
/* @__PURE__ */ jsx(InputOTPGroup$1, { children: slots.slice(3).map((slot, index) => /* @__PURE__ */ jsx(InputOTPSlot$1, { ...slot }, index + 3)) })
|
|
36477
|
+
] })
|
|
36478
|
+
}
|
|
36479
|
+
),
|
|
36480
|
+
/* @__PURE__ */ jsx("p", { className: "h-[3rem]", children: status === "checking" ? "Checking access code..." : status === "invalid" ? /* @__PURE__ */ jsx("span", { className: "text-destructive", children: "Invalid access code!" }) : status === "valid" ? /* @__PURE__ */ jsx("span", { children: "Access code is valid! Redirecting..." }) : null })
|
|
36481
|
+
] });
|
|
36482
|
+
};
|
|
36483
|
+
var access_code_input_default = AccessCodeInput;
|
|
36484
|
+
var ChatWidget = ({
|
|
36485
|
+
title: title2,
|
|
36486
|
+
chatbotUrl,
|
|
36487
|
+
subtitle,
|
|
36488
|
+
question,
|
|
36489
|
+
suggestedQuestions,
|
|
36490
|
+
buttonClx = ""
|
|
36491
|
+
}) => {
|
|
36492
|
+
const [showChatbot, setShowChatbot] = React64__default.useState(false);
|
|
36493
|
+
const onClick = () => {
|
|
36494
|
+
setShowChatbot(!showChatbot);
|
|
36495
|
+
};
|
|
36496
|
+
const searchParams = new URLSearchParams();
|
|
36497
|
+
if (question) {
|
|
36498
|
+
searchParams.append("question", question);
|
|
36499
|
+
}
|
|
36500
|
+
if (suggestedQuestions) {
|
|
36501
|
+
searchParams.append("sQuestions", suggestedQuestions.map(({ message }) => message).join(","));
|
|
36502
|
+
searchParams.append("sHeadings", suggestedQuestions.map(({ heading }) => heading).join(","));
|
|
36503
|
+
searchParams.append("sIcons", suggestedQuestions.map(({ icon }) => icon).join(","));
|
|
36504
|
+
}
|
|
36505
|
+
const iframeSrc = `${chatbotUrl}?${searchParams.toString()}`;
|
|
36506
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
36507
|
+
/* @__PURE__ */ jsx(Box, { className: "fixed bottom-0 sm:bottom-16 right-0 w-full h-full sm:max-w-[400px] sm:max-h-[550px] sm:px-4 z-floating " + (showChatbot ? "flex" : "hidden"), children: /* @__PURE__ */ jsxs(Card$1, { className: "flex flex-col h-full w-full", children: [
|
|
36508
|
+
/* @__PURE__ */ jsxs("div", { className: "flex px-4 py-2 h-12 bg-level-0 items-center justify-between", children: [
|
|
36509
|
+
/* @__PURE__ */ jsxs("h1", { className: "font-semibold font-heading", children: [
|
|
36510
|
+
title2,
|
|
36511
|
+
" ",
|
|
36512
|
+
/* @__PURE__ */ jsx("span", { className: "opacity-60", children: subtitle })
|
|
36513
|
+
] }),
|
|
36514
|
+
/* @__PURE__ */ jsx(Button$1, { onClick, variant: "link", size: "icon", className: "w-fit sm:hidden", children: /* @__PURE__ */ jsx(LuxLogo, { variant: "white", size: 24 }) })
|
|
36515
|
+
] }),
|
|
36516
|
+
/* @__PURE__ */ jsx("iframe", { src: iframeSrc, className: "h-full" })
|
|
36517
|
+
] }) }),
|
|
36518
|
+
/* @__PURE__ */ jsx(
|
|
36519
|
+
Box,
|
|
36520
|
+
{
|
|
36521
|
+
tag: "span",
|
|
36522
|
+
onClick,
|
|
36523
|
+
className: cn(
|
|
36524
|
+
// z-index should be below anything in commerce-iu (buy drawer and checkout widget)
|
|
36525
|
+
"fixed bottom-5 right-[24px] md:z-floating z-16 cursor-pointer",
|
|
36526
|
+
"hover:drop-shadow-[0_2px_6px_rgba(255,255,255,1)]",
|
|
36527
|
+
"transition-transform",
|
|
36528
|
+
showChatbot ? "rotate-180" : "",
|
|
36529
|
+
buttonClx
|
|
36530
|
+
),
|
|
36531
|
+
children: /* @__PURE__ */ jsx(LuxLogo, { variant: "white", size: 28 })
|
|
36532
|
+
}
|
|
36533
|
+
)
|
|
36534
|
+
] });
|
|
36535
|
+
};
|
|
36536
|
+
var chat_widget_default = ChatWidget;
|
|
36537
|
+
var ContactFormSchema = z.object({
|
|
36538
|
+
email: z.string().min(1, { message: "Email must be provided." }).email("Invalid email."),
|
|
36539
|
+
phone: z.string().min(1, { message: "Telephone must be provided." }).refine(validator.isMobilePhone, { message: "Invalid format." })
|
|
36540
|
+
});
|
|
36541
|
+
var ContactForm = ({
|
|
36542
|
+
onSubmit: _onSubmit,
|
|
36543
|
+
enclosure
|
|
36544
|
+
}) => {
|
|
36545
|
+
const form = useForm({
|
|
36546
|
+
resolver: zodResolver(ContactFormSchema),
|
|
36547
|
+
defaultValues: {
|
|
36548
|
+
email: "",
|
|
36549
|
+
phone: ""
|
|
36550
|
+
}
|
|
36551
|
+
});
|
|
36552
|
+
const [isPending, startTransition] = useTransition();
|
|
36553
|
+
const onSubmit = (data) => {
|
|
36554
|
+
startTransition(async () => {
|
|
36555
|
+
await _onSubmit(data, enclosure);
|
|
36556
|
+
});
|
|
36557
|
+
};
|
|
36558
|
+
const MyFormItem = ({
|
|
36559
|
+
field,
|
|
36560
|
+
placeholder
|
|
36561
|
+
}) => /* @__PURE__ */ jsxs(FormItem, { className: "space-y-0", children: [
|
|
36562
|
+
/* @__PURE__ */ jsx(FormControl, { children: /* @__PURE__ */ jsx(Input$2, { placeholder, ...field, className: "mt-0 text-foreground" }) }),
|
|
36563
|
+
/* @__PURE__ */ jsx(Box, { className: "flex flex-row justify-start items-stretch gap-2", children: /* @__PURE__ */ jsx(FormMessage, {}) })
|
|
36564
|
+
] });
|
|
36565
|
+
return /* @__PURE__ */ jsx(Form, { ...form, children: /* @__PURE__ */ jsx(Box, { tag: "form", onSubmit: form.handleSubmit(onSubmit), className: "w-3/4", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-start items-stretch mt-4", children: [
|
|
36566
|
+
/* @__PURE__ */ jsx(
|
|
36567
|
+
FormField,
|
|
36568
|
+
{
|
|
36569
|
+
control: form.control,
|
|
36570
|
+
name: "email",
|
|
36571
|
+
render: ({ field }) => /* @__PURE__ */ jsx(MyFormItem, { field, placeholder: "email" })
|
|
36572
|
+
}
|
|
36573
|
+
),
|
|
36574
|
+
/* @__PURE__ */ jsx(
|
|
36575
|
+
FormField,
|
|
36576
|
+
{
|
|
36577
|
+
control: form.control,
|
|
36578
|
+
name: "phone",
|
|
36579
|
+
render: ({ field }) => /* @__PURE__ */ jsx(MyFormItem, { field, placeholder: "phone" })
|
|
36580
|
+
}
|
|
36581
|
+
),
|
|
36582
|
+
/* @__PURE__ */ jsx(Button$1, { disabled: isPending, type: "submit", className: "bg-primary text-primary-fg hover:bg-primary-hover", children: isPending ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
36583
|
+
/* @__PURE__ */ jsx(Loader2, { style: css("mr-2 h-4 w-4 animate-spin") }),
|
|
36584
|
+
"Please wait"
|
|
36585
|
+
] }) : /* @__PURE__ */ jsx(Fragment, { children: "Submit" }) })
|
|
36586
|
+
] }) }) });
|
|
36587
|
+
};
|
|
36588
|
+
var contact_form_default = ContactForm;
|
|
36589
|
+
var Disclaimer = () => /* @__PURE__ */ jsxs("div", { children: [
|
|
36590
|
+
"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 ",
|
|
36591
|
+
/* @__PURE__ */ jsx("a", { href: "/privacy", children: "Privacy Policy" }),
|
|
36592
|
+
" and ",
|
|
36593
|
+
/* @__PURE__ */ jsx("a", { href: "/terms", children: "Terms & conditions" }),
|
|
36594
|
+
"."
|
|
36595
|
+
] });
|
|
36596
|
+
var disclaimer_default = Disclaimer;
|
|
36597
|
+
var ContactDialog = ({
|
|
36598
|
+
open: open2,
|
|
36599
|
+
onOpenChange,
|
|
36600
|
+
buttonText,
|
|
36601
|
+
buttonProps,
|
|
36602
|
+
title: title2,
|
|
36603
|
+
byline,
|
|
36604
|
+
action,
|
|
36605
|
+
actionEnclosure
|
|
36606
|
+
}) => {
|
|
36607
|
+
const [success, setSuccess] = useState(false);
|
|
36608
|
+
const onSubmit = async (formData, enclosure) => {
|
|
36609
|
+
const result2 = await action(formData, enclosure);
|
|
36610
|
+
if (result2.success) {
|
|
36611
|
+
setSuccess(true);
|
|
36612
|
+
}
|
|
36613
|
+
};
|
|
36614
|
+
return /* @__PURE__ */ jsxs(Dialog$1, { open: open2, onOpenChange, children: [
|
|
36615
|
+
/* @__PURE__ */ jsx(DialogTrigger$1, { asChild: true, children: /* @__PURE__ */ jsx(Button$1, { ...buttonProps, children: buttonText }) }),
|
|
36616
|
+
/* @__PURE__ */ jsxs(DialogContent$1, { className: "sm:max-w-[500px] p-0 gap-0 bg-background border", children: [
|
|
36617
|
+
/* @__PURE__ */ jsxs(DialogHeader$1, { className: "py-6 text-foreground", children: [
|
|
36618
|
+
/* @__PURE__ */ jsx(DialogTitle$1, { className: "text-4xl text-center text-inherit", children: title2 }),
|
|
36619
|
+
byline && /* @__PURE__ */ jsxs(DialogDescription$1, { className: "text-inherit text-lg text-center", children: [
|
|
36620
|
+
byline,
|
|
36621
|
+
" "
|
|
36622
|
+
] })
|
|
36623
|
+
] }),
|
|
36624
|
+
/* @__PURE__ */ jsxs("div", { className: "px-8 pb-8 rounded-e-lg flex flex-col justify-start items-center", children: [
|
|
36625
|
+
success ? /* @__PURE__ */ jsx("p", { children: actionEnclosure?.reply }) : /* @__PURE__ */ jsx(contact_form_default, { onSubmit, enclosure: actionEnclosure }),
|
|
36626
|
+
/* @__PURE__ */ jsx("div", { className: "text-muted-1 text-xs mt-4", children: /* @__PURE__ */ jsx(disclaimer_default, {}) })
|
|
36627
|
+
] })
|
|
36628
|
+
] })
|
|
36629
|
+
] });
|
|
36630
|
+
};
|
|
36631
|
+
var contact_dialog_default = ContactDialog;
|
|
36632
|
+
var FIRST = 2020;
|
|
36633
|
+
var Copyright = ({
|
|
36634
|
+
className: className2 = ""
|
|
36635
|
+
}) => {
|
|
36636
|
+
const year = (/* @__PURE__ */ new Date()).getFullYear();
|
|
36637
|
+
const yearString = year > FIRST ? `${FIRST} - ${year}` : FIRST.toString();
|
|
36638
|
+
return /* @__PURE__ */ jsxs(Box, { className: className2, children: [
|
|
36639
|
+
`Copyright \xA9 ${yearString}`,
|
|
36640
|
+
"\xA0",
|
|
36641
|
+
/* @__PURE__ */ jsx("br", { className: "sm:hidden" }),
|
|
36642
|
+
"Lux Industries Inc.\xA0",
|
|
36643
|
+
/* @__PURE__ */ jsx("br", { className: "md:hidden" }),
|
|
36644
|
+
"\xA0All rights reserved."
|
|
36645
|
+
] });
|
|
36646
|
+
};
|
|
36647
|
+
var copyright_default = Copyright;
|
|
36648
|
+
|
|
36649
|
+
// src/site/site-def/footer/legal.ts
|
|
36650
|
+
var legal = [
|
|
36651
|
+
{
|
|
36652
|
+
title: "Terms and Conditions",
|
|
36653
|
+
href: "https://docs.google.com/document/d/1mvkjr1w8Rv8ttirs1mu-_2fw_PXclOyS/preview",
|
|
36654
|
+
newTab: true
|
|
36655
|
+
},
|
|
36656
|
+
{
|
|
36657
|
+
title: "Privacy Policy",
|
|
36658
|
+
href: "https://docs.google.com/document/d/1vZjOKaNdOoThDIaVLERWxflQLtOsuvLn/preview",
|
|
36659
|
+
newTab: true
|
|
36660
|
+
}
|
|
36661
|
+
];
|
|
36662
|
+
var title = {
|
|
36663
|
+
title: "Legal",
|
|
36664
|
+
href: "",
|
|
36665
|
+
variant: "linkFG"
|
|
36666
|
+
};
|
|
36667
|
+
[title, ...legal];
|
|
36668
|
+
var FooterNav = ({
|
|
36669
|
+
items,
|
|
36670
|
+
currentAs,
|
|
36671
|
+
className: className2 = ""
|
|
36672
|
+
}) => /* @__PURE__ */ jsx(
|
|
36673
|
+
NavItems,
|
|
36674
|
+
{
|
|
36675
|
+
items,
|
|
36676
|
+
currentAs,
|
|
36677
|
+
as: "nav",
|
|
36678
|
+
className: className2,
|
|
36679
|
+
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"
|
|
36680
|
+
}
|
|
36681
|
+
);
|
|
36682
|
+
var footer_nav_default = FooterNav;
|
|
36683
|
+
var SIZE12 = {
|
|
36684
|
+
xl: { mark: 40, word: 22, gap: "gap-4" },
|
|
36685
|
+
lg: { mark: 40, word: 22, gap: "gap-4" },
|
|
36686
|
+
md: { mark: 32, word: 18, gap: "gap-3" },
|
|
36687
|
+
sm: { mark: 24, word: 13, gap: "gap-2" },
|
|
36688
|
+
xs: { mark: 16, word: 9, gap: "gap-1.5" }
|
|
36689
|
+
};
|
|
36690
|
+
var Logo = ({
|
|
36691
|
+
size = "md",
|
|
36692
|
+
href,
|
|
36693
|
+
// no default please!
|
|
36694
|
+
outerClx = "",
|
|
36695
|
+
variant = "full",
|
|
36696
|
+
onClick
|
|
36697
|
+
}) => {
|
|
36698
|
+
const s = SIZE12[size] ?? SIZE12.md;
|
|
36699
|
+
const clx = "flex flex-row items-center " + s.gap + " " + (href ? "hover:opacity-80 cursor-pointer " : "cursor-default ") + outerClx;
|
|
36700
|
+
const art = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
36701
|
+
variant !== "wordmark" && /* @__PURE__ */ jsx(Logo$1, { variant: "white", size: s.mark }),
|
|
36702
|
+
variant !== "mark" && /* @__PURE__ */ jsx(Wordmark, { height: s.word })
|
|
36703
|
+
] });
|
|
36704
|
+
return href ? /* @__PURE__ */ jsx(Link5, { href, style: css(clx), onClick, children: art }) : /* @__PURE__ */ jsx(Box, { tag: "span", className: clx, onClick, children: art });
|
|
36705
|
+
};
|
|
36706
|
+
var Footer = ({
|
|
36707
|
+
siteDef,
|
|
36708
|
+
className: className2 = "",
|
|
36709
|
+
noHorizPadding = false
|
|
36710
|
+
}) => {
|
|
36711
|
+
const { footer, aboveCopyright } = siteDef;
|
|
36712
|
+
const smGridCols = Math.floor(footer.length / 2);
|
|
36713
|
+
const smGridColsClx = `sm:grid-cols-${smGridCols} `;
|
|
36714
|
+
const _aboveCopyright = typeof aboveCopyright === "undefined" ? legal : aboveCopyright;
|
|
36715
|
+
return /* @__PURE__ */ jsxs(Box, { tag: "footer", className: cn("grow flex flex-col justify-between gap-6 pb-[2vh]", className2), children: [
|
|
36716
|
+
/* @__PURE__ */ jsxs(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: [
|
|
36717
|
+
/* @__PURE__ */ jsx("div", { className: "hidden lg:flex flex-col", children: /* @__PURE__ */ jsx(Logo, { size: "md", variant: "wordmark" }) }, 0),
|
|
36718
|
+
footer.map((defs, index) => {
|
|
36719
|
+
const xsColSpanClx = index === footer.length - 1 && footer.length % 2 === 1 ? "xs:col-span-2 xs:mx-auto md:col-span-1 md:mx-0 " : "";
|
|
36720
|
+
return /* @__PURE__ */ jsx(
|
|
36721
|
+
footer_nav_default,
|
|
36722
|
+
{
|
|
36723
|
+
items: defs,
|
|
36724
|
+
currentAs: siteDef.currentAs,
|
|
36725
|
+
className: cn(
|
|
36726
|
+
"sm:min-w-[150px] md:min-w-0 flex flex-col justify-start items-start gap-[11px] sm:gap-[12px] md:gap-[15px] ",
|
|
36727
|
+
xsColSpanClx
|
|
36728
|
+
)
|
|
36729
|
+
},
|
|
36730
|
+
index + 1
|
|
36731
|
+
);
|
|
36732
|
+
})
|
|
36733
|
+
] }),
|
|
36734
|
+
/* @__PURE__ */ jsxs("div", { className: "md:mt-[2vh]", children: [
|
|
36735
|
+
_aboveCopyright.length > 0 && /* @__PURE__ */ jsx(
|
|
36736
|
+
NavItems,
|
|
36737
|
+
{
|
|
36738
|
+
items: _aboveCopyright,
|
|
36739
|
+
as: "div",
|
|
36740
|
+
className: "flex flex-row justify-center gap-4 mb-2",
|
|
36741
|
+
itemClx: "text-sm text-center text-muted-2 underline hover:text-foreground"
|
|
36742
|
+
}
|
|
36743
|
+
),
|
|
36744
|
+
/* @__PURE__ */ jsx(copyright_default, { className: "text-sm text-center text-muted-3" })
|
|
36745
|
+
] })
|
|
36746
|
+
] });
|
|
36747
|
+
};
|
|
36748
|
+
var footer_default = Footer;
|
|
36749
|
+
|
|
36750
|
+
// src/site/components/auth/resume.ts
|
|
36751
|
+
var KEY = "lux-auth-resume";
|
|
36752
|
+
var remember = () => {
|
|
36753
|
+
sessionStorage.setItem(KEY, window.location.pathname + window.location.search);
|
|
36754
|
+
};
|
|
36755
|
+
var Widget = ({
|
|
36756
|
+
noLogin = false,
|
|
36757
|
+
handleLogin,
|
|
36758
|
+
className: className2
|
|
36759
|
+
}) => {
|
|
36760
|
+
const { isAuthenticated, isLoading, login, logout: logout2 } = useIam();
|
|
36761
|
+
const identity = useIamIdentity();
|
|
36762
|
+
if (isLoading) {
|
|
36763
|
+
return null;
|
|
36764
|
+
}
|
|
36765
|
+
if (!isAuthenticated) {
|
|
36766
|
+
return noLogin ? null : /* @__PURE__ */ jsx(
|
|
36767
|
+
Button$1,
|
|
36768
|
+
{
|
|
36769
|
+
variant: "primary",
|
|
36770
|
+
className: cn("h-8 w-fit !min-w-0", className2),
|
|
36771
|
+
onClick: handleLogin ?? (() => {
|
|
36772
|
+
remember();
|
|
36773
|
+
void login();
|
|
36774
|
+
}),
|
|
36775
|
+
children: "Login"
|
|
36776
|
+
}
|
|
36777
|
+
);
|
|
36778
|
+
}
|
|
36779
|
+
return /* @__PURE__ */ jsxs(Popover$2, { children: [
|
|
36780
|
+
/* @__PURE__ */ jsx(PopoverTrigger$2, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
36781
|
+
Button$1,
|
|
36782
|
+
{
|
|
36783
|
+
variant: "outline",
|
|
36784
|
+
size: "icon",
|
|
36785
|
+
className: 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", className2),
|
|
36786
|
+
children: identity?.initials
|
|
36787
|
+
}
|
|
36788
|
+
) }),
|
|
36789
|
+
/* @__PURE__ */ jsx(PopoverContent$2, { className: "bg-level-0", children: /* @__PURE__ */ jsxs("div", { className: "grid gap-4", children: [
|
|
36790
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-2 truncate", children: [
|
|
36791
|
+
/* @__PURE__ */ jsx("h4", { className: "font-medium leading-none truncate", children: identity?.name }),
|
|
36792
|
+
identity?.email && identity.email !== identity.name && /* @__PURE__ */ jsx("p", { className: "text-sm opacity-50 truncate", children: identity.email })
|
|
36793
|
+
] }),
|
|
36794
|
+
/* @__PURE__ */ jsx(Separator$2, {}),
|
|
36795
|
+
/* @__PURE__ */ jsx(Button$1, { variant: "outline", onClick: () => {
|
|
36796
|
+
logout2();
|
|
36797
|
+
}, children: "Logout" })
|
|
36798
|
+
] }) })
|
|
36799
|
+
] });
|
|
36800
|
+
};
|
|
36801
|
+
var AuthWidget = (props2) => useContext(IamContext) ? /* @__PURE__ */ jsx(Widget, { ...props2 }) : null;
|
|
36802
|
+
var widget_default = AuthWidget;
|
|
36803
|
+
var Avatar9 = (props2) => /* @__PURE__ */ jsxs("svg", { width: "17", height: "21", viewBox: "0 0 17 21", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props2, children: [
|
|
36804
|
+
/* @__PURE__ */ jsx("path", { d: "M8.66112 10.3544C6.14668 10.3544 4.32664 6.91073 4.32664 4.59206C4.32664 2.12213 6.27238 0.115723 8.66112 0.115723C11.0499 0.115723 12.9956 2.12514 12.9956 4.59206C12.9956 6.91398 11.1756 10.3544 8.66112 10.3544ZM8.66112 1.1542C6.82539 1.1542 5.33242 2.69703 5.33242 4.59185C5.33242 6.65402 6.94715 9.31553 8.66112 9.31553C10.3761 9.31553 11.9898 6.65387 11.9898 4.5925C11.9898 2.69668 10.4969 1.15398 8.66112 1.15398V1.1542Z", fill: "white" }),
|
|
36805
|
+
/* @__PURE__ */ jsx("path", { d: "M6.79776 11.3345H10.5242C13.7802 11.3345 16.4302 14.0712 16.4302 17.4338C16.4302 19.0831 15.1297 20.423 13.5356 20.423H3.78923C2.19216 20.423 0.894689 19.0831 0.894689 17.4338C0.893706 14.0712 3.54156 11.3345 6.79776 11.3345ZM3.78819 19.3844H13.5337C14.5749 19.3844 15.4225 18.509 15.4225 17.4338C15.4225 14.6453 13.2253 12.3731 10.5223 12.3731H6.79862C4.0956 12.3731 1.89839 14.6423 1.89839 17.4338C1.89937 18.509 2.74701 19.3844 3.78816 19.3844H3.78819Z", fill: "white" })
|
|
36806
|
+
] });
|
|
36807
|
+
var avatar_default = Avatar9;
|
|
36808
|
+
var BagIcon = (props2) => /* @__PURE__ */ jsx("svg", { fill: "none", viewBox: "0 0 1019 1281", ...props2, children: /* @__PURE__ */ jsx("path", { d: "m977.243 365.553h-175.407v-90.629c0-151.923-131.968-274.924-292.334-274.924-160.367 0-292.337 123.002-292.337 274.924v90.629h-175.4023c-23.3886 0-41.7627 17.051-41.7627 38.756v775.121c0 55.8 48.4456 100.76 108.582 100.76h801.84c60.138 0 108.578-44.96 108.578-100.76v-775.121c0-21.705-18.37-38.756-41.757-38.756zm-676.553-90.629c0-108.517 93.546-196.9408 208.812-196.9408 115.265 0 208.813 88.4218 208.813 196.9408v89.08h-417.625z", fill: "currentColor" }) });
|
|
36809
|
+
var bag_icon_default = BagIcon;
|
|
36810
|
+
|
|
36811
|
+
// src/site/next/analytics/google-analytics.ts
|
|
36812
|
+
var sendGAEvent = (name, options = {}) => {
|
|
36813
|
+
window.gtag("event", name, options);
|
|
36814
|
+
};
|
|
36815
|
+
var DesktopBagPopup = ({
|
|
36816
|
+
triggerClx = "",
|
|
36817
|
+
popupClx = "",
|
|
36818
|
+
trigger
|
|
36819
|
+
}) => {
|
|
36820
|
+
const cmmc = useCommerce();
|
|
36821
|
+
const [bagOpen, setBagOpen] = useState(false);
|
|
36822
|
+
const router = useRouter();
|
|
36823
|
+
useEffect(() => {
|
|
36824
|
+
if (bagOpen) {
|
|
36825
|
+
sendGAEvent("view_cart", {
|
|
36826
|
+
items: cmmc.cartItems.map((item) => ({
|
|
36827
|
+
item_id: item.sku,
|
|
36828
|
+
item_name: item.title,
|
|
36829
|
+
item_category: item.familyId,
|
|
36830
|
+
price: item.price,
|
|
36831
|
+
quantity: item.quantity
|
|
36832
|
+
})),
|
|
36833
|
+
value: cmmc.cartTotal,
|
|
36834
|
+
currency: "USD"
|
|
36835
|
+
});
|
|
36836
|
+
}
|
|
36837
|
+
}, [bagOpen]);
|
|
36838
|
+
return /* @__PURE__ */ jsxs(Popover$2, { open: bagOpen, onOpenChange: setBagOpen, children: [
|
|
36839
|
+
/* @__PURE__ */ jsx(PopoverTrigger$2, { className: triggerClx, children: trigger }),
|
|
36840
|
+
/* @__PURE__ */ jsxs(PopoverContent$2, { sideOffset: 28, className: cn("relative flex flex-col p-0 px-4 pb-4 pt-2", popupClx), children: [
|
|
36841
|
+
/* @__PURE__ */ jsx(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__ */ jsx(X, { className: "w-5 h-5" }) }),
|
|
36842
|
+
/* @__PURE__ */ jsxs(
|
|
36843
|
+
CartPanel,
|
|
36844
|
+
{
|
|
36845
|
+
handleCheckout: () => {
|
|
36846
|
+
router.push("/checkout");
|
|
36847
|
+
},
|
|
36848
|
+
className: "mt-4 mb-4 border-none py-0 px-4",
|
|
36849
|
+
listClx: "rounded-sm pr-3",
|
|
36850
|
+
scrollAfter: 5,
|
|
36851
|
+
scrollHeightClx: "h-[70vh]",
|
|
36852
|
+
itemClx: "mt-3",
|
|
36853
|
+
totalClx: "sticky px-1 pr-2 -bottom-[1px] bg-level-1",
|
|
36854
|
+
buttonClx: "max-w-[220px] flex-none",
|
|
36855
|
+
children: [
|
|
36856
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-row items-center flex-none justify-center ", children: [
|
|
36857
|
+
/* @__PURE__ */ jsx(bag_icon_default, { className: "mr-2 relative w-6 h-7 fill-foreground " }),
|
|
36858
|
+
/* @__PURE__ */ jsx("p", { className: "font-heading text-foreground text-default", children: "Your Bag" })
|
|
36859
|
+
] }),
|
|
36860
|
+
/* @__PURE__ */ jsx("div", { className: "h-[1px] w-pr-80 bg-muted-3 mx-auto mt-1.5 flex-none" })
|
|
36861
|
+
]
|
|
36862
|
+
}
|
|
36863
|
+
)
|
|
36864
|
+
] })
|
|
36865
|
+
] });
|
|
36866
|
+
};
|
|
36867
|
+
var desktop_bag_popup_default = DesktopBagPopup;
|
|
36868
|
+
var BagButton = observer$1(({
|
|
36869
|
+
showIfEmpty = false,
|
|
36870
|
+
animateOnHover = true,
|
|
36871
|
+
animateOnQuantityChange = true,
|
|
36872
|
+
size = "default",
|
|
36873
|
+
className: className2 = "",
|
|
36874
|
+
iconClx = "",
|
|
36875
|
+
onClick
|
|
36876
|
+
}) => {
|
|
36877
|
+
const c = useCommerce();
|
|
36878
|
+
const wiggleRef = useRef(observable.box("none"));
|
|
36879
|
+
useEffect(() => (
|
|
36880
|
+
// return IReactionDisposer
|
|
36881
|
+
animateOnQuantityChange && c ? reaction(
|
|
36882
|
+
() => c.cartQuantity,
|
|
36883
|
+
(curr, prev) => {
|
|
36884
|
+
if (curr > prev) {
|
|
36885
|
+
runInAction(() => {
|
|
36886
|
+
wiggleRef.current.set("more");
|
|
36887
|
+
});
|
|
36888
|
+
} else {
|
|
36889
|
+
runInAction(() => {
|
|
36890
|
+
wiggleRef.current.set("less");
|
|
36891
|
+
});
|
|
36892
|
+
}
|
|
36893
|
+
setTimeout(() => {
|
|
36894
|
+
runInAction(() => {
|
|
36895
|
+
wiggleRef.current.set("none");
|
|
36896
|
+
});
|
|
36897
|
+
}, 800);
|
|
36898
|
+
}
|
|
36899
|
+
) : void 0
|
|
36900
|
+
), []);
|
|
36901
|
+
if (!c || !showIfEmpty && c.cartEmpty) {
|
|
36902
|
+
return /* @__PURE__ */ jsx("div", {});
|
|
36903
|
+
}
|
|
36904
|
+
return /* @__PURE__ */ jsxs(
|
|
36905
|
+
Box,
|
|
36906
|
+
{
|
|
36907
|
+
"aria-label": "Bag",
|
|
36908
|
+
role: "button",
|
|
36909
|
+
onClick,
|
|
36910
|
+
className: cn(
|
|
36911
|
+
buttonVariants({ variant: "ghost", size }),
|
|
36912
|
+
"rounded-md",
|
|
36913
|
+
// Overides the bg change on hover --not a "hover effect"
|
|
36914
|
+
"relative group p-0 aspect-square hover:bg-background",
|
|
36915
|
+
wiggleRef.current.get() === "more" ? "item-added-to-cart-animation" : wiggleRef.current.get() === "less" ? "item-removed-from-cart-animation" : "",
|
|
36916
|
+
className2
|
|
36917
|
+
),
|
|
36918
|
+
children: [
|
|
36919
|
+
!c.cartEmpty && /* @__PURE__ */ jsxs(Box, { className: "z-above-content flex flex-col justify-center items-center absolute left-0 right-0 top-0 bottom-0 leading-none font-sans font-bold text-primary-fg text-xs ", children: [
|
|
36920
|
+
/* @__PURE__ */ jsx("div", { className: "h-[3px] w-full" }),
|
|
36921
|
+
/* @__PURE__ */ jsx("div", { children: c.cartQuantity })
|
|
36922
|
+
] }),
|
|
36923
|
+
/* @__PURE__ */ jsx(bag_icon_default, { width: "24", height: "28", className: cn(
|
|
36924
|
+
"relative -top-[3px] fill-primary",
|
|
36925
|
+
iconClx,
|
|
36926
|
+
animateOnHover ? "group-hover:fill-primary-hover group-hover:scale-105 transition-scale transition-duration-300" : ""
|
|
36927
|
+
), "aria-hidden": "true" })
|
|
36928
|
+
]
|
|
36929
|
+
}
|
|
36930
|
+
);
|
|
36931
|
+
});
|
|
36932
|
+
var bag_button_default = BagButton;
|
|
36933
|
+
var DesktopNav = ({ links, isMenuOpened, setIsMenuOpen }) => {
|
|
36934
|
+
React64.useEffect(() => {
|
|
36935
|
+
const preventScroll = (e) => {
|
|
36936
|
+
e.preventDefault();
|
|
36937
|
+
};
|
|
36938
|
+
if (isMenuOpened) {
|
|
36939
|
+
window.addEventListener("wheel", preventScroll, { passive: false });
|
|
36940
|
+
window.addEventListener("touchmove", preventScroll, { passive: false });
|
|
36941
|
+
window.addEventListener("keydown", preventScrollKeys, { passive: false });
|
|
36942
|
+
} else {
|
|
36943
|
+
window.removeEventListener("wheel", preventScroll);
|
|
36944
|
+
window.removeEventListener("touchmove", preventScroll);
|
|
36945
|
+
window.removeEventListener("keydown", preventScrollKeys);
|
|
36946
|
+
}
|
|
36947
|
+
return () => {
|
|
36948
|
+
window.removeEventListener("wheel", preventScroll);
|
|
36949
|
+
window.removeEventListener("touchmove", preventScroll);
|
|
36950
|
+
window.removeEventListener("keydown", preventScrollKeys);
|
|
36951
|
+
};
|
|
36952
|
+
}, [isMenuOpened]);
|
|
36953
|
+
const preventScrollKeys = (e) => {
|
|
36954
|
+
if (["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight", " "].includes(e.key)) {
|
|
36955
|
+
e.preventDefault();
|
|
36956
|
+
}
|
|
36957
|
+
};
|
|
36958
|
+
const handleMouseEnter = React64.useCallback(() => {
|
|
36959
|
+
setIsMenuOpen(true);
|
|
36960
|
+
}, [setIsMenuOpen]);
|
|
36961
|
+
const handleMouseLeave = React64.useCallback(() => {
|
|
36962
|
+
setIsMenuOpen(false);
|
|
36963
|
+
}, [setIsMenuOpen]);
|
|
36964
|
+
const handleContentMouseMove = () => {
|
|
36965
|
+
setIsMenuOpen(false);
|
|
36966
|
+
};
|
|
36967
|
+
const menuHiddenClass = !isMenuOpened ? "invisible" : "";
|
|
36968
|
+
return links.length > 0 ? /* @__PURE__ */ jsx(NavigationMenu$1, { children: /* @__PURE__ */ jsx(NavigationMenuList$1, { children: links.map((el, index) => /* @__PURE__ */ jsx(NavigationMenuItem$1, { className: "!m-0", children: el.isAIMenu ? /* @__PURE__ */ jsx(Link5, { href: el.href, style: css(cn(navigationMenuTriggerStyle(), " text-muted-1 bg-transparent")), children: el.title }) : el.title === "Cards" ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
36969
|
+
/* @__PURE__ */ jsx(
|
|
36970
|
+
NavigationMenuTrigger$1,
|
|
36971
|
+
{
|
|
36972
|
+
className: "text-muted-1 bg-transparent",
|
|
36973
|
+
onMouseEnter: handleMouseEnter,
|
|
36974
|
+
onFocus: handleMouseEnter,
|
|
36975
|
+
onMouseLeave: handleMouseLeave,
|
|
36976
|
+
onBlur: handleMouseLeave,
|
|
36977
|
+
children: /* @__PURE__ */ jsx(Link5, { href: el.href, children: el.title })
|
|
36978
|
+
}
|
|
36979
|
+
),
|
|
36980
|
+
/* @__PURE__ */ jsx(
|
|
36981
|
+
NavigationMenuContent$1,
|
|
36982
|
+
{
|
|
36983
|
+
className: cn("fixed left-0 top-14 pt-6 w-screen h-full border-0 !backdrop-blur-3xl bg-transparent mt-0", menuHiddenClass),
|
|
36984
|
+
onMouseEnter: handleMouseEnter,
|
|
36985
|
+
onMouseLeave: handleMouseLeave,
|
|
36986
|
+
children: /* @__PURE__ */ jsx("div", { className: "flex justify-center items-start", children: /* @__PURE__ */ jsx(
|
|
36987
|
+
"div",
|
|
36988
|
+
{
|
|
36989
|
+
className: "grid xl:grid-cols-3 w-full justify-center max-w-[750px]",
|
|
36990
|
+
onMouseLeave: handleContentMouseMove,
|
|
36991
|
+
children: GroupChildMenu({ childs: el.childMenu, isCards: true })
|
|
36992
|
+
}
|
|
36993
|
+
) })
|
|
36994
|
+
}
|
|
36995
|
+
)
|
|
36996
|
+
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
36997
|
+
/* @__PURE__ */ jsx(
|
|
36998
|
+
NavigationMenuTrigger$1,
|
|
36999
|
+
{
|
|
37000
|
+
className: "text-muted-1 bg-transparent",
|
|
37001
|
+
onMouseEnter: handleMouseEnter,
|
|
37002
|
+
onFocus: handleMouseEnter,
|
|
37003
|
+
onMouseLeave: handleMouseLeave,
|
|
37004
|
+
onBlur: handleMouseLeave,
|
|
37005
|
+
children: el.href && el.href !== "" ? /* @__PURE__ */ jsx(Link5, { href: el.href, children: el.title }) : /* @__PURE__ */ jsx(Fragment, { children: el.title })
|
|
37006
|
+
}
|
|
37007
|
+
),
|
|
37008
|
+
/* @__PURE__ */ jsx(
|
|
37009
|
+
NavigationMenuContent$1,
|
|
37010
|
+
{
|
|
37011
|
+
className: cn("fixed left-0 top-14 pt-6 w-screen h-full border-0 !backdrop-blur-3xl bg-transparent mt-0", menuHiddenClass),
|
|
37012
|
+
onMouseEnter: handleMouseEnter,
|
|
37013
|
+
onMouseLeave: handleMouseLeave,
|
|
37014
|
+
children: /* @__PURE__ */ jsx(
|
|
37015
|
+
"div",
|
|
37016
|
+
{
|
|
37017
|
+
className: "flex flex-row w-full justify-center",
|
|
37018
|
+
onMouseLeave: handleContentMouseMove,
|
|
37019
|
+
children: GroupChildMenu({ childs: el.childMenu })
|
|
37020
|
+
}
|
|
37021
|
+
)
|
|
37022
|
+
}
|
|
37023
|
+
)
|
|
37024
|
+
] }) }, index)) }) }) : null;
|
|
37025
|
+
};
|
|
37026
|
+
var desktop_nav_menu_default = DesktopNav;
|
|
37027
|
+
var ListItem2 = React64.forwardRef(({ className: className2, title: title2, children, ...props2 }, ref2) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(NavigationMenuLink$1, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
37028
|
+
Box,
|
|
37029
|
+
{
|
|
37030
|
+
tag: "a",
|
|
37031
|
+
ref: ref2,
|
|
37032
|
+
className: cn(
|
|
37033
|
+
"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",
|
|
37034
|
+
className2
|
|
37035
|
+
),
|
|
37036
|
+
...props2,
|
|
37037
|
+
children: [
|
|
37038
|
+
/* @__PURE__ */ jsx("div", { className: "text-sm font-medium leading-none", children: title2 }),
|
|
37039
|
+
/* @__PURE__ */ jsx("p", { className: "line-clamp-3 text-sm leading-snug text-muted-1", children })
|
|
37040
|
+
]
|
|
37041
|
+
}
|
|
37042
|
+
) }) }, title2));
|
|
37043
|
+
ListItem2.displayName = "ListItem";
|
|
37044
|
+
var GroupChildMenu = (params) => {
|
|
37045
|
+
const { childs, isCards = false } = params;
|
|
37046
|
+
if (!childs) {
|
|
37047
|
+
return null;
|
|
37048
|
+
}
|
|
37049
|
+
const groupedChildMenus = childs.reduce((grouped, childLink) => {
|
|
37050
|
+
if (childLink.groupName) {
|
|
37051
|
+
grouped[childLink.groupName] = grouped[childLink.groupName] || [];
|
|
37052
|
+
grouped[childLink.groupName].push(childLink);
|
|
37053
|
+
}
|
|
37054
|
+
return grouped;
|
|
37055
|
+
}, {});
|
|
37056
|
+
const getChildExtraClass = (index) => {
|
|
37057
|
+
if (isCards && (index === 3 || index === 4)) {
|
|
37058
|
+
return "xl:-mt-32";
|
|
37059
|
+
}
|
|
37060
|
+
return "";
|
|
37061
|
+
};
|
|
37062
|
+
return Object.entries(groupedChildMenus).map(([groupName, childLinks], index) => /* @__PURE__ */ jsxs(Box, { className: cn("py-4 px-4 ", getChildExtraClass(index)), children: [
|
|
37063
|
+
/* @__PURE__ */ jsx("h2", { className: "text-muted-1", children: groupName }),
|
|
37064
|
+
/* @__PURE__ */ jsx("ul", { className: "w-[200px] gap-3 md:w-[250px] lg:w-[250px]", children: childLinks.map((link) => /* @__PURE__ */ jsxs("div", { className: "flex justify-start items-center", children: [
|
|
37065
|
+
link.icon,
|
|
37066
|
+
/* @__PURE__ */ jsx(ListItem2, { title: link.title, href: link.href, className: "ml-[14px]", children: link.contents }, link.title)
|
|
37067
|
+
] }, link.title)) })
|
|
37068
|
+
] }, groupName));
|
|
37069
|
+
};
|
|
37070
|
+
var DesktopHeader = ({
|
|
37071
|
+
links,
|
|
37072
|
+
className: className2 = "",
|
|
37073
|
+
noAuth = false,
|
|
37074
|
+
noCommerce = false,
|
|
37075
|
+
children,
|
|
37076
|
+
logoVariant = "full"
|
|
37077
|
+
}) => {
|
|
37078
|
+
const [isMenuOpened, setIsMenuOpen] = React64__default.useState(false);
|
|
37079
|
+
return /* @__PURE__ */ jsx(Box, { tag: "header", id: "DESKTOP_HEADER", className: cn(
|
|
37080
|
+
"bg-[rgba(0, 0, 0, 0.5)] !backdrop-blur-3xl fixed z-header top-0 left-0 right-0",
|
|
37081
|
+
className2,
|
|
37082
|
+
isMenuOpened ? " h-full" : ""
|
|
37083
|
+
), children: /* @__PURE__ */ jsxs(Box, { className: "flex flex-row h-[80px] items-center justify-between mx-[24px] w-full max-w-screen", children: [
|
|
37084
|
+
/* @__PURE__ */ jsx(Logo, { size: logoVariant === "mark" ? "lg" : "md", href: "/", outerClx: "hidden lg:flex", variant: logoVariant }, "two"),
|
|
37085
|
+
/* @__PURE__ */ jsx(Logo, { size: "sm", href: "/", outerClx: "hidden md:flex lg:hidden", variant: logoVariant }, "one"),
|
|
37086
|
+
/* @__PURE__ */ jsx("div", { className: "flex w-full gap-4 items-center justify-center", children: /* @__PURE__ */ jsx(desktop_nav_menu_default, { links, isMenuOpened, setIsMenuOpen }) }),
|
|
37087
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
|
|
37088
|
+
!noCommerce && /* @__PURE__ */ jsx(desktop_bag_popup_default, { popupClx: "w-[340px]", trigger: /* @__PURE__ */ jsx(bag_button_default, { className: "text-primary -mr-[3px] lg:min-w-0" }) }),
|
|
37089
|
+
!noAuth && /* @__PURE__ */ jsx(widget_default, {}),
|
|
37090
|
+
children
|
|
37091
|
+
] })
|
|
37092
|
+
] }) });
|
|
37093
|
+
};
|
|
37094
|
+
var desktop_default = DesktopHeader;
|
|
37095
|
+
var Login = ({
|
|
37096
|
+
className: className2,
|
|
37097
|
+
onSuccess
|
|
37098
|
+
}) => {
|
|
37099
|
+
const { config: config2 } = useIam();
|
|
37100
|
+
const [state] = useState(() => crypto.randomUUID());
|
|
37101
|
+
useEffect(remember, []);
|
|
37102
|
+
return /* @__PURE__ */ jsx(
|
|
37103
|
+
Login$1,
|
|
37104
|
+
{
|
|
37105
|
+
serverUrl: config2.serverUrl,
|
|
37106
|
+
clientId: config2.clientId,
|
|
37107
|
+
redirectUri: config2.redirectUri,
|
|
37108
|
+
organization: config2.organization,
|
|
37109
|
+
state,
|
|
37110
|
+
className: cn("hanzo-iam-card", className2),
|
|
37111
|
+
onSuccess
|
|
37112
|
+
}
|
|
37113
|
+
);
|
|
37114
|
+
};
|
|
37115
|
+
var login_default = Login;
|
|
37116
|
+
var MobileMenuToggleButton = ({
|
|
37117
|
+
open: open2,
|
|
37118
|
+
setOpen,
|
|
37119
|
+
className: className2 = ""
|
|
37120
|
+
}) => {
|
|
37121
|
+
return /* @__PURE__ */ jsx(
|
|
37122
|
+
Button$1,
|
|
37123
|
+
{
|
|
37124
|
+
variant: "ghost",
|
|
37125
|
+
size: "default",
|
|
37126
|
+
className: cn("rounded-full", cn("p-0 aspect-square hover:bg-background sm:hover:bg-level-1 active:scale-75", className2)),
|
|
37127
|
+
onClick: () => {
|
|
37128
|
+
setOpen(!open2);
|
|
37129
|
+
},
|
|
37130
|
+
children: /* @__PURE__ */ jsx(Plus, { width: 28, height: 28, style: css(
|
|
37131
|
+
"block h-full will-change-transform transition-transform transition-scale transition-duration-[1500] " + (open2 ? "rotate-[135deg] scale-110" : "rotate-none")
|
|
37132
|
+
) })
|
|
37133
|
+
}
|
|
37134
|
+
);
|
|
37135
|
+
};
|
|
37136
|
+
var mobile_menu_toggle_button_default = MobileMenuToggleButton;
|
|
37137
|
+
var MobileBagDrawer = ({
|
|
37138
|
+
open: open2,
|
|
37139
|
+
setOpen,
|
|
37140
|
+
handleCheckout,
|
|
37141
|
+
className: className2 = ""
|
|
37142
|
+
}) => {
|
|
37143
|
+
return /* @__PURE__ */ jsx(Drawer, { open: open2, onOpenChange: setOpen, children: /* @__PURE__ */ jsx(DrawerContent$1, { className: cn("rounded-t-xl mt-6 pb-12 h-auto", className2), children: /* @__PURE__ */ jsxs(
|
|
37144
|
+
CartPanel,
|
|
37145
|
+
{
|
|
37146
|
+
handleCheckout,
|
|
37147
|
+
className: "mt-4 mb-4 border-none py-0 px-4 w-full ",
|
|
37148
|
+
listClx: "rounded-sm pr-3",
|
|
37149
|
+
scrollAfter: 5,
|
|
37150
|
+
itemClx: "mt-2",
|
|
37151
|
+
totalClx: "sticky px-1 pr-2 border rounded-sm -bottom-[1px] bg-background",
|
|
37152
|
+
buttonClx: "max-w-[220px] flex-none",
|
|
37153
|
+
children: [
|
|
37154
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-row items-center flex-none justify-center ", children: [
|
|
37155
|
+
/* @__PURE__ */ jsx(
|
|
37156
|
+
bag_button_default,
|
|
37157
|
+
{
|
|
37158
|
+
animateOnHover: false,
|
|
37159
|
+
showIfEmpty: true,
|
|
37160
|
+
className: "mr-2 relative w-6 h-7",
|
|
37161
|
+
iconClx: "fill-foreground "
|
|
37162
|
+
}
|
|
37163
|
+
),
|
|
37164
|
+
/* @__PURE__ */ jsx("p", { className: "font-heading text-foreground text-default", children: "Your Bag" })
|
|
37165
|
+
] }),
|
|
37166
|
+
/* @__PURE__ */ jsx("div", { className: "h-[1px] w-pr-80 bg-muted-3 mx-auto mt-1.5 flex-none" })
|
|
37167
|
+
]
|
|
37168
|
+
}
|
|
37169
|
+
) }) });
|
|
37170
|
+
};
|
|
37171
|
+
var mobile_bag_drawer_default = MobileBagDrawer;
|
|
37172
|
+
var MobileNavMenuAI = ({ setMenuOpen }) => {
|
|
37173
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
37174
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
37175
|
+
/* @__PURE__ */ jsxs(Box, { className: "w-full text-2xl cursor-pointer", children: [
|
|
37176
|
+
/* @__PURE__ */ jsxs("div", { className: "flex justify-between", children: [
|
|
37177
|
+
/* @__PURE__ */ jsx(Logo, { variant: "wordmark", size: "md", outerClx: "p-6 h-full" }),
|
|
37178
|
+
/* @__PURE__ */ jsx(Box, { tag: "span", className: cn("grid", "block h-full aspect-square hover:bg-background sm:hover:bg-level-1 active:scale-75 text-foreground will-change-transform transition-transform transition-scale transition-duration-[1500] mt-6 mr-6 " + (!open ? "rotate-none" : "rotate-[135deg] scale-110")), children: /* @__PURE__ */ jsx(Plus, { width: 28, height: 28, style: css("w-full h-full"), onClick: () => setMenuOpen(false) }) })
|
|
37179
|
+
] }),
|
|
37180
|
+
/* @__PURE__ */ jsx(Box, { className: "flex items-center gap-5 border-b border-[#3A3A3A] mt-4 rounded-full bg-muted-4 mx-6", children: /* @__PURE__ */ jsxs(Box, { className: "text-muted-1 font-bold flex-1 flex justify-between min-h-12 items-center px-2", onClick: () => setIsOpen(true), children: [
|
|
37181
|
+
/* @__PURE__ */ jsx("span", { className: "text-base pl-2 font-light", children: "Ask AI a question" }),
|
|
37182
|
+
/* @__PURE__ */ jsx(ArrowRight, {})
|
|
37183
|
+
] }) })
|
|
37184
|
+
] }),
|
|
37185
|
+
/* @__PURE__ */ jsx(Box, { className: "fixed bottom-0 sm:bottom-16 right-0 w-full h-full sm:max-w-[400px] sm:max-h-[550px] sm:px-4 z-floating " + (isOpen ? "flex" : "hidden"), children: /* @__PURE__ */ jsxs(Card$1, { className: "flex flex-col h-full w-full", children: [
|
|
37186
|
+
/* @__PURE__ */ jsxs("div", { className: "flex px-4 py-2 h-16 bg-level-0 items-center justify-between", children: [
|
|
37187
|
+
/* @__PURE__ */ jsxs("h3", { className: "font-semibold font-heading", children: [
|
|
37188
|
+
"LUX",
|
|
37189
|
+
/* @__PURE__ */ jsx("span", { className: "opacity-60", children: "AI" })
|
|
37190
|
+
] }),
|
|
37191
|
+
/* @__PURE__ */ jsx(Button$1, { onClick: () => setIsOpen(false), variant: "link", size: "icon", className: "w-fit sm:hidden", children: /* @__PURE__ */ jsx(Plus, { className: "w-6 h-6 flex-none mr-1 rotate-45 transition-transform" }) })
|
|
37192
|
+
] }),
|
|
37193
|
+
/* @__PURE__ */ jsx("iframe", { src: "https://lux.chat/iframe", className: "h-full" })
|
|
37194
|
+
] }) })
|
|
37195
|
+
] });
|
|
37196
|
+
};
|
|
37197
|
+
var mobile_nav_menu_ai_default = MobileNavMenuAI;
|
|
37198
|
+
var MobileNav = ({
|
|
37199
|
+
currentAs,
|
|
37200
|
+
links,
|
|
37201
|
+
setMenuState,
|
|
37202
|
+
className: className2 = "",
|
|
37203
|
+
commonItemClx,
|
|
37204
|
+
setChatbotOpen,
|
|
37205
|
+
setMenuOpen
|
|
37206
|
+
}) => links.length > 0 ? /* @__PURE__ */ jsxs(Box, { className: cn("flex flex-col h-full", className2), children: [
|
|
37207
|
+
/* @__PURE__ */ jsx(mobile_nav_menu_ai_default, { setMenuOpen }),
|
|
37208
|
+
/* @__PURE__ */ jsx(Box, { className: "flex flex-col flex-1 overflow-auto", children: /* @__PURE__ */ jsx(Accordion, { type: "single", collapsible: true, className: "w-full h-full", children: links.map((el, index) => {
|
|
37209
|
+
const itemClx = commonItemClx ? typeof commonItemClx === "string" ? commonItemClx : commonItemClx(el) : "";
|
|
37210
|
+
const variant = el.variant ?? "link";
|
|
37211
|
+
let internalClx = variant === "link" ? " text-muted hover:text-foreground active:text-accent rounded-none" : " min-w-0";
|
|
37212
|
+
if (currentAs && currentAs === el.href) {
|
|
37213
|
+
internalClx += " pointer-events-none";
|
|
37214
|
+
if (variant === "link") {
|
|
37215
|
+
internalClx += " text-accent";
|
|
37216
|
+
}
|
|
37217
|
+
}
|
|
37218
|
+
if (!el.isAIMenu) {
|
|
37219
|
+
return /* @__PURE__ */ jsxs(AccordionItem$1, { value: el.title ? el.title : "", className: "!no-underline !border-0 px-6", children: [
|
|
37220
|
+
/* @__PURE__ */ jsxs(AccordionTrigger, { className: cn(internalClx, itemClx, ""), children: [
|
|
37221
|
+
/* @__PURE__ */ jsx(Box, { className: cn(internalClx, itemClx, "flex items-center justify-between w-full pl-3 text-base font-normal leading-6"), children: el.title }),
|
|
37222
|
+
/* @__PURE__ */ jsx(ChevronDown, { style: css("w-4 h-4 mr-3") })
|
|
37223
|
+
] }),
|
|
37224
|
+
/* @__PURE__ */ jsx(AccordionContent, { children: el.childMenu && /* @__PURE__ */ jsx(Box, { className: "px-4", children: Object.entries(el.childMenu.reduce((acc, child) => {
|
|
37225
|
+
const group = acc[child.groupName ? child.groupName : ""] || [];
|
|
37226
|
+
group.push(child);
|
|
37227
|
+
acc[child.groupName ? child.groupName : ""] = group;
|
|
37228
|
+
return acc;
|
|
37229
|
+
}, {})).map(([groupName, children]) => /* @__PURE__ */ jsxs("div", { children: [
|
|
37230
|
+
/* @__PURE__ */ jsx(Box, { className: "mt-4 mb-4 font-light text-muted-1", children: groupName }),
|
|
37231
|
+
children.map((child, childIndex) => /* @__PURE__ */ jsx(Box, { className: "m-2", children: /* @__PURE__ */ jsxs(Box, { className: "flex items-center py-1", children: [
|
|
37232
|
+
/* @__PURE__ */ jsx("span", { children: child.icon && child.icon }),
|
|
37233
|
+
/* @__PURE__ */ jsx(
|
|
37234
|
+
Link5,
|
|
37235
|
+
{
|
|
37236
|
+
href: child.href,
|
|
37237
|
+
target: child.newTab ? "_blank" : "_self",
|
|
37238
|
+
rel: "noopener noreferrer",
|
|
37239
|
+
children: /* @__PURE__ */ jsx(Box, { tag: "span", className: "text-muted-2 hover:underline ml-5 hover:text-primary", children: child.title })
|
|
37240
|
+
}
|
|
37241
|
+
)
|
|
37242
|
+
] }) }, childIndex))
|
|
37243
|
+
] }, groupName)) }) })
|
|
37244
|
+
] }, index);
|
|
37245
|
+
}
|
|
37246
|
+
}) }) }),
|
|
37247
|
+
/* @__PURE__ */ jsx(widget_default, { className: "text-2xl z-10", handleLogin: () => {
|
|
37248
|
+
setMenuState("login");
|
|
37249
|
+
} })
|
|
37250
|
+
] }) : null;
|
|
37251
|
+
var mobile_nav_menu_default = MobileNav;
|
|
37252
|
+
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 ";
|
|
37253
|
+
var MobileHeader = ({
|
|
37254
|
+
currentAs,
|
|
37255
|
+
links,
|
|
37256
|
+
className: className2 = "",
|
|
37257
|
+
setChatbotOpen,
|
|
37258
|
+
noAuth = false,
|
|
37259
|
+
// :aa TODO
|
|
37260
|
+
noCommerce = false
|
|
37261
|
+
// :aa TODO
|
|
37262
|
+
}) => {
|
|
37263
|
+
const cmmc = useCommerce();
|
|
37264
|
+
const [menuState, setMenuState] = useState("closed");
|
|
37265
|
+
const [bagDrawerOpen, setBagDrawerOpen] = useState(false);
|
|
37266
|
+
const router = useRouter();
|
|
37267
|
+
useEffect(() => {
|
|
37268
|
+
if (menuState === "bag" || bagDrawerOpen) {
|
|
37269
|
+
sendGAEvent("view_cart", {
|
|
37270
|
+
items: cmmc.cartItems.map((item) => ({
|
|
37271
|
+
item_id: item.sku,
|
|
37272
|
+
item_name: item.title,
|
|
37273
|
+
item_category: item.familyId,
|
|
37274
|
+
price: item.price,
|
|
37275
|
+
quantity: item.quantity
|
|
37276
|
+
})),
|
|
37277
|
+
value: cmmc.cartTotal,
|
|
37278
|
+
currency: "USD"
|
|
37279
|
+
});
|
|
37280
|
+
}
|
|
37281
|
+
}, [menuState, bagDrawerOpen]);
|
|
37282
|
+
const menuOpen = () => menuState !== "closed";
|
|
37283
|
+
const onLoginChanged = (token) => {
|
|
37284
|
+
if (!!token) {
|
|
37285
|
+
setMenuState("nav");
|
|
37286
|
+
}
|
|
37287
|
+
};
|
|
37288
|
+
const setMenuOpen = (open2) => {
|
|
37289
|
+
if (!open2) {
|
|
37290
|
+
setMenuState("closed");
|
|
37291
|
+
} else {
|
|
37292
|
+
setMenuState("nav");
|
|
37293
|
+
}
|
|
37294
|
+
};
|
|
37295
|
+
const handleCheckout = () => {
|
|
37296
|
+
setMenuState("closed");
|
|
37297
|
+
setBagDrawerOpen(false);
|
|
37298
|
+
router.push("/checkout");
|
|
37299
|
+
};
|
|
37300
|
+
const openBag = () => {
|
|
37301
|
+
if (menuOpen()) {
|
|
37302
|
+
setMenuState("bag");
|
|
37303
|
+
} else {
|
|
37304
|
+
setBagDrawerOpen(true);
|
|
37305
|
+
}
|
|
37306
|
+
};
|
|
37307
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
37308
|
+
/* @__PURE__ */ jsx(Box, { tag: "header", id: "MOBILE_HEADER", className: cn(
|
|
37309
|
+
`bg-background fixed z-header top-0 left-0 w-full ${menuOpen() ? "hidden" : "block"}`,
|
|
37310
|
+
className2
|
|
37311
|
+
), children: /* @__PURE__ */ jsxs("div", { className: "w-full h-full flex flex-row justify-between items-center font-bold pr-5", children: [
|
|
37312
|
+
/* @__PURE__ */ jsx(Logo, { href: "/", size: "md", outerClx: "p-6 h-full", variant: "wordmark" }),
|
|
37313
|
+
menuOpen() && /* @__PURE__ */ jsx(Box, { className: "absolute left-0 top-0 bottom-0 right-0 pl-8 flex flex-row bg-background animate-mobile-menu-open", children: /* @__PURE__ */ jsx(avatar_default, { className: "self-center " }) }),
|
|
37314
|
+
/* @__PURE__ */ jsxs("div", { className: "flex gap-0 flex-row", children: [
|
|
37315
|
+
/* @__PURE__ */ jsx(bag_button_default, { className: "text-primary -mr-[3px]", onClick: openBag }),
|
|
37316
|
+
/* @__PURE__ */ jsx(mobile_menu_toggle_button_default, { className: "text-foreground", open: menuOpen(), setOpen: setMenuOpen })
|
|
37317
|
+
] })
|
|
37318
|
+
] }) }),
|
|
37319
|
+
!noCommerce && /* @__PURE__ */ jsx(
|
|
37320
|
+
mobile_bag_drawer_default,
|
|
37321
|
+
{
|
|
37322
|
+
className: "",
|
|
37323
|
+
open: bagDrawerOpen,
|
|
37324
|
+
setOpen: setBagDrawerOpen,
|
|
37325
|
+
handleCheckout
|
|
37326
|
+
}
|
|
37327
|
+
),
|
|
37328
|
+
menuOpen() && /* @__PURE__ */ jsx(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__ */ 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__ */ jsxs(
|
|
37329
|
+
CartPanel,
|
|
37330
|
+
{
|
|
37331
|
+
handleCheckout: () => {
|
|
37332
|
+
router.push("/checkout");
|
|
37333
|
+
},
|
|
37334
|
+
className: bagClx,
|
|
37335
|
+
listClx: "rounded-sm",
|
|
37336
|
+
scrollAfter: 6,
|
|
37337
|
+
scrollHeightClx: "h-[80vh]",
|
|
37338
|
+
itemClx: "mt-2",
|
|
37339
|
+
totalClx: "sticky px-1 pr-2 border rounded-sm -bottom-[1px] bg-level-1",
|
|
37340
|
+
buttonClx: "max-w-[220px] flex-none",
|
|
37341
|
+
children: [
|
|
37342
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-row items-center flex-none justify-center ", children: [
|
|
37343
|
+
/* @__PURE__ */ jsx(bag_icon_default, { className: "mr-2 relative w-4 h-5 fill-foreground " }),
|
|
37344
|
+
/* @__PURE__ */ jsx("p", { className: "font-heading text-foreground text-default", children: "Your Bag" })
|
|
37345
|
+
] }),
|
|
37346
|
+
/* @__PURE__ */ jsx("div", { className: "h-[1px] w-pr-80 bg-muted-3 mx-auto mt-1.5 flex-none" })
|
|
37347
|
+
]
|
|
37348
|
+
}
|
|
37349
|
+
) : (
|
|
37350
|
+
/* menuState === 'nav' */
|
|
37351
|
+
/* @__PURE__ */ jsx(
|
|
37352
|
+
mobile_nav_menu_default,
|
|
37353
|
+
{
|
|
37354
|
+
currentAs,
|
|
37355
|
+
links,
|
|
37356
|
+
className: "sm:animate-in sm:zoom-in-90 w-full",
|
|
37357
|
+
commonItemClx: "px-0 text-xl h-16 justify-start ",
|
|
37358
|
+
setMenuState,
|
|
37359
|
+
setChatbotOpen,
|
|
37360
|
+
setMenuOpen
|
|
37361
|
+
}
|
|
37362
|
+
)
|
|
37363
|
+
) })
|
|
37364
|
+
] });
|
|
37365
|
+
};
|
|
37366
|
+
var mobile_default = MobileHeader;
|
|
37367
|
+
var Header = ({
|
|
37368
|
+
siteDef,
|
|
37369
|
+
className: className2 = "",
|
|
37370
|
+
children,
|
|
37371
|
+
logoVariant = "full"
|
|
37372
|
+
}) => {
|
|
37373
|
+
const [open2, setOpen] = React64__default.useState(false);
|
|
37374
|
+
const { nav: { common, featured }, currentAs, noAuth, commerce } = siteDef;
|
|
37375
|
+
const links = featured ? [...common, ...featured] : common;
|
|
37376
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
37377
|
+
/* @__PURE__ */ jsx(
|
|
37378
|
+
desktop_default,
|
|
37379
|
+
{
|
|
37380
|
+
className: cn(className2, "hidden md:flex"),
|
|
37381
|
+
links,
|
|
37382
|
+
currentAs,
|
|
37383
|
+
noAuth,
|
|
37384
|
+
noCommerce: !!!commerce,
|
|
37385
|
+
logoVariant,
|
|
37386
|
+
children
|
|
37387
|
+
}
|
|
37388
|
+
),
|
|
37389
|
+
/* @__PURE__ */ jsx(
|
|
37390
|
+
mobile_default,
|
|
37391
|
+
{
|
|
37392
|
+
className: cn(className2, "md:hidden"),
|
|
37393
|
+
links,
|
|
37394
|
+
currentAs,
|
|
37395
|
+
setChatbotOpen: setOpen,
|
|
37396
|
+
noAuth,
|
|
37397
|
+
noCommerce: !!!commerce
|
|
37398
|
+
}
|
|
37399
|
+
)
|
|
37400
|
+
] });
|
|
37401
|
+
};
|
|
37402
|
+
var header_default = Header;
|
|
37403
|
+
var Main = ({
|
|
37404
|
+
children,
|
|
37405
|
+
className: className2 = "",
|
|
37406
|
+
headerSpace = true,
|
|
37407
|
+
standardWidth = true,
|
|
37408
|
+
id: id3
|
|
37409
|
+
}) => /* @__PURE__ */ jsx(Box, { tag: "main", id: id3 ?? "LUX_UI_MAIN", className: cn(
|
|
37410
|
+
"flex flex-col justify-start items-center",
|
|
37411
|
+
"px-4 md:px-6 lg:px-8",
|
|
37412
|
+
standardWidth ? "max-w-screen-2xl w-full lg:mx-auto" : "",
|
|
37413
|
+
headerSpace ? "pt-[44px] md:pt-[80px]" : "py-4",
|
|
37414
|
+
className2
|
|
37415
|
+
), children });
|
|
37416
|
+
var main_default = Main;
|
|
37417
|
+
var MiniChart = ({
|
|
37418
|
+
widgetProps,
|
|
37419
|
+
containerStyles = {}
|
|
37420
|
+
}) => {
|
|
37421
|
+
const {
|
|
37422
|
+
symbol,
|
|
37423
|
+
exchange,
|
|
37424
|
+
lineColor,
|
|
37425
|
+
topGradientColor,
|
|
37426
|
+
bottomGradientColor,
|
|
37427
|
+
width,
|
|
37428
|
+
height,
|
|
37429
|
+
autosize,
|
|
37430
|
+
locale,
|
|
37431
|
+
...rest
|
|
37432
|
+
} = widgetProps;
|
|
37433
|
+
const symbolString = exchange ? `${exchange}:${symbol}` : symbol;
|
|
37434
|
+
const containerRef = useRef(null);
|
|
37435
|
+
useEffect(() => {
|
|
37436
|
+
if (!containerRef.current) {
|
|
37437
|
+
return;
|
|
37438
|
+
}
|
|
37439
|
+
const script = document.createElement("script");
|
|
37440
|
+
script.type = "text/javascript";
|
|
37441
|
+
script.src = "https://s3.tradingview.com/external-embedding/embed-widget-mini-symbol-overview.js";
|
|
37442
|
+
script.async = true;
|
|
37443
|
+
script.onload = async () => {
|
|
37444
|
+
const iframe = containerRef.current?.querySelector("iframe");
|
|
37445
|
+
if (iframe && iframe instanceof Element) {
|
|
37446
|
+
iframe.style.colorScheme = "normal";
|
|
37447
|
+
setTimeout(() => {
|
|
37448
|
+
document.querySelector("#mini-symbol-overview-ticker");
|
|
37449
|
+
}, 1200);
|
|
37450
|
+
}
|
|
37451
|
+
const copyDiv = document.querySelector(".tradingview-widget-copyright");
|
|
37452
|
+
if (copyDiv) {
|
|
37453
|
+
setTimeout(() => {
|
|
37454
|
+
copyDiv.classList.remove("invisible");
|
|
37455
|
+
}, 1200);
|
|
37456
|
+
}
|
|
37457
|
+
};
|
|
37458
|
+
const config2 = JSON.stringify({
|
|
37459
|
+
symbol: symbolString,
|
|
37460
|
+
width: autosize ? "100%" : width || 350,
|
|
37461
|
+
height: autosize ? "100%" : height || 220,
|
|
37462
|
+
locale: locale ?? "en",
|
|
37463
|
+
isTransparent: "true",
|
|
37464
|
+
trendLineColor: lineColor || "rgba(41, 98, 255, 1)",
|
|
37465
|
+
underLineColor: topGradientColor || "rgba(41, 98, 255, 0.3)",
|
|
37466
|
+
underLineBottomColor: bottomGradientColor || "rgba(41, 98, 255, 0)",
|
|
37467
|
+
...rest
|
|
37468
|
+
});
|
|
37469
|
+
script.innerHTML = config2;
|
|
37470
|
+
containerRef.current.appendChild(script);
|
|
37471
|
+
return () => {
|
|
37472
|
+
while (containerRef.current?.firstChild) {
|
|
37473
|
+
containerRef.current.removeChild(containerRef.current.firstChild);
|
|
37474
|
+
}
|
|
37475
|
+
};
|
|
37476
|
+
}, [JSON.stringify(widgetProps)]);
|
|
37477
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
37478
|
+
/* @__PURE__ */ jsx("div", { style: containerStyles, className: "tradingview-widget-container h-[150px]", ref: containerRef }),
|
|
37479
|
+
/* @__PURE__ */ jsxs("div", { className: "tradingview-widget-copyright border-t w-full invisible", children: [
|
|
37480
|
+
/* @__PURE__ */ jsx("a", { href: `https://www.tradingview.com/symbols/${symbol}${exchange ? `/?exchange=${exchange}` : ""}`, rel: "noopener", target: "_blank", children: /* @__PURE__ */ jsxs(Box, { tag: "span", className: "text-[--hz-ui-primary]", children: [
|
|
37481
|
+
symbol,
|
|
37482
|
+
" quotes"
|
|
37483
|
+
] }) }),
|
|
37484
|
+
"\xA0by TradingView"
|
|
37485
|
+
] })
|
|
37486
|
+
] });
|
|
37487
|
+
};
|
|
37488
|
+
var mini_chart_default = MiniChart;
|
|
37489
|
+
var Wrapper = ({
|
|
37490
|
+
symbol,
|
|
37491
|
+
exchange
|
|
37492
|
+
}) => /* @__PURE__ */ jsx(mini_chart_default, { widgetProps: {
|
|
37493
|
+
symbol,
|
|
37494
|
+
exchange,
|
|
37495
|
+
autosize: true,
|
|
37496
|
+
colorTheme: "dark",
|
|
37497
|
+
lineColor: "rgb(114, 27, 228)",
|
|
37498
|
+
bottomGradientColor: "rgba(255, 255, 255, 0.1)",
|
|
37499
|
+
dateRange: "60M"
|
|
37500
|
+
} });
|
|
37501
|
+
var wrapper_default = Wrapper;
|
|
37502
|
+
var NotFound = ({
|
|
37503
|
+
header = false,
|
|
37504
|
+
siteDef
|
|
37505
|
+
}) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
37506
|
+
header && /* @__PURE__ */ jsx(header_default, { siteDef }),
|
|
37507
|
+
/* @__PURE__ */ jsx(main_default, { className: "h-[100svh] sm:h-[700px] px-8 sm:px-10", headerSpace: header, children: /* @__PURE__ */ jsxs(ApplyTypography$1, { className: "mt-[200px] flex flex-col md:gap-8", children: [
|
|
37508
|
+
/* @__PURE__ */ jsx("h3", { children: "...Huh?" }),
|
|
37509
|
+
/* @__PURE__ */ jsx("h4", { children: "Sorry, we're fresh out of those." }),
|
|
37510
|
+
/* @__PURE__ */ jsxs("h4", { children: [
|
|
37511
|
+
"...try something from the ",
|
|
37512
|
+
/* @__PURE__ */ jsx("a", { href: "/", children: "Home Page" }),
|
|
37513
|
+
"?"
|
|
37514
|
+
] })
|
|
37515
|
+
] }) }),
|
|
37516
|
+
/* @__PURE__ */ jsx(footer_default, { siteDef })
|
|
37517
|
+
] });
|
|
37518
|
+
var not_found_default = NotFound;
|
|
37519
|
+
var BackButton = ({
|
|
37520
|
+
variant = "ghost",
|
|
37521
|
+
size = "default",
|
|
37522
|
+
clx = "",
|
|
37523
|
+
iconClx = "",
|
|
37524
|
+
onBack
|
|
37525
|
+
}) => {
|
|
37526
|
+
const router = useRouter();
|
|
37527
|
+
const back = () => {
|
|
37528
|
+
if (onBack) {
|
|
37529
|
+
onBack();
|
|
37530
|
+
}
|
|
37531
|
+
router.back();
|
|
37532
|
+
};
|
|
37533
|
+
return /* @__PURE__ */ jsx(
|
|
37534
|
+
Button$1,
|
|
37535
|
+
{
|
|
37536
|
+
variant,
|
|
37537
|
+
size,
|
|
37538
|
+
onClick: back,
|
|
37539
|
+
className: clx,
|
|
37540
|
+
children: /* @__PURE__ */ jsx(ChevronLeft, { style: css(iconClx) })
|
|
37541
|
+
}
|
|
37542
|
+
);
|
|
37543
|
+
};
|
|
37544
|
+
var back_button_default = BackButton;
|
|
37545
|
+
enableStaticRendering(typeof window === "undefined");
|
|
37546
|
+
var CommerceUIContext = createContext(void 0);
|
|
37547
|
+
var useCommerceDrawer = () => {
|
|
37548
|
+
return useContext(CommerceUIContext);
|
|
37549
|
+
};
|
|
37550
|
+
var useSelectAndBuy = () => {
|
|
37551
|
+
return useContext(CommerceUIContext);
|
|
37552
|
+
};
|
|
37553
|
+
var CommerceDrawer = observer$1(({
|
|
37554
|
+
children,
|
|
37555
|
+
handleHandleClicked,
|
|
37556
|
+
drawerClx = "",
|
|
37557
|
+
...rest
|
|
37558
|
+
}) => {
|
|
37559
|
+
const drawer = useCommerceDrawer();
|
|
37560
|
+
return /* @__PURE__ */ jsx(
|
|
37561
|
+
Drawer,
|
|
37562
|
+
{
|
|
37563
|
+
open: drawer.open,
|
|
37564
|
+
onOpenChange: () => {
|
|
37565
|
+
},
|
|
37566
|
+
modal: drawer.modal,
|
|
37567
|
+
snapPoints: drawer.points,
|
|
37568
|
+
activeSnapPoint: drawer.activePoint,
|
|
37569
|
+
setActiveSnapPoint: drawer.onActivePointChanged.bind(drawer),
|
|
37570
|
+
fastDragSkipsToEnd: false,
|
|
37571
|
+
dragHandleOnly: true,
|
|
37572
|
+
handleHandleClicked,
|
|
37573
|
+
extendHandleDragRegion: false,
|
|
37574
|
+
...rest,
|
|
37575
|
+
children: /* @__PURE__ */ jsxs(
|
|
37576
|
+
DrawerContent$1,
|
|
37577
|
+
{
|
|
37578
|
+
defaultHandle: false,
|
|
37579
|
+
className: cn(
|
|
37580
|
+
"border-0",
|
|
37581
|
+
drawer.isMobile ? "pt-5" : "pt-6",
|
|
37582
|
+
"w-full h-full"
|
|
37583
|
+
),
|
|
37584
|
+
onOpenAutoFocus: (e) => {
|
|
37585
|
+
e.preventDefault();
|
|
37586
|
+
},
|
|
37587
|
+
children: [
|
|
37588
|
+
/* @__PURE__ */ jsx(
|
|
37589
|
+
DrawerHandle,
|
|
37590
|
+
{
|
|
37591
|
+
className: cn(
|
|
37592
|
+
"absolute top-0 left-0 right-0 mx-auto z-10",
|
|
37593
|
+
"flex justify-center items-start",
|
|
37594
|
+
"border-t rounded-t-lg border-muted-3",
|
|
37595
|
+
drawer.isMobile ? "h-5 touch-pan-y" : "h-6"
|
|
37596
|
+
),
|
|
37597
|
+
children: /* @__PURE__ */ jsx(Box, { className: cn(
|
|
37598
|
+
// pseudo-handle
|
|
37599
|
+
"rounded-[3px] bg-level-3",
|
|
37600
|
+
drawer.isMobile ? "w-[155px] mt-[5px] h-1.5" : "w-[180px] mt-[3px] h-2.5 hover:bg-level-4",
|
|
37601
|
+
!drawer.isMobile ? "cursor-grab active:cursor-grabbing" : ""
|
|
37602
|
+
) })
|
|
37603
|
+
}
|
|
37604
|
+
),
|
|
37605
|
+
children
|
|
37606
|
+
]
|
|
37607
|
+
}
|
|
37608
|
+
)
|
|
37609
|
+
}
|
|
37610
|
+
);
|
|
37611
|
+
});
|
|
37612
|
+
var shell_default = CommerceDrawer;
|
|
37613
|
+
var IconAndQuantity = observer$1(({
|
|
37614
|
+
animateOnQuantityChange = false,
|
|
37615
|
+
showArrow = true,
|
|
37616
|
+
showQuantity = true,
|
|
37617
|
+
clx = "",
|
|
37618
|
+
iconClx = "",
|
|
37619
|
+
digitClx = ""
|
|
37620
|
+
}) => {
|
|
37621
|
+
const cmmc = useCommerce();
|
|
37622
|
+
const wiggleRef = useRef(observable.box("none"));
|
|
37623
|
+
useEffect(() => (
|
|
37624
|
+
// return IReactionDisposer
|
|
37625
|
+
animateOnQuantityChange ? reaction(
|
|
37626
|
+
() => cmmc.cartQuantity,
|
|
37627
|
+
(curr, prev) => {
|
|
37628
|
+
if (curr > prev) {
|
|
37629
|
+
runInAction(() => {
|
|
37630
|
+
wiggleRef.current.set("more");
|
|
37631
|
+
});
|
|
37632
|
+
} else {
|
|
37633
|
+
runInAction(() => {
|
|
37634
|
+
wiggleRef.current.set("less");
|
|
37635
|
+
});
|
|
37636
|
+
}
|
|
37637
|
+
setTimeout(() => {
|
|
37638
|
+
runInAction(() => {
|
|
37639
|
+
wiggleRef.current.set("none");
|
|
37640
|
+
});
|
|
37641
|
+
}, 800);
|
|
37642
|
+
}
|
|
37643
|
+
) : void 0
|
|
37644
|
+
), []);
|
|
37645
|
+
return /* @__PURE__ */ jsxs(Box, { className: cn("flex items-center justify-center", clx), children: [
|
|
37646
|
+
showQuantity && /* @__PURE__ */ jsxs(Box, { className: cn(
|
|
37647
|
+
"relative flex items-center justify-center mr-1",
|
|
37648
|
+
wiggleRef.current.get() === "more" ? "item-added-to-cart-animation" : wiggleRef.current.get() === "less" ? "item-removed-from-cart-animation" : ""
|
|
37649
|
+
), children: [
|
|
37650
|
+
cmmc.cartQuantity > 0 && /* @__PURE__ */ jsx(Box, { className: cn(
|
|
37651
|
+
"z-above-content flex flex-col justify-center items-center",
|
|
37652
|
+
"absolute left-0 right-0 top-0 bottom-0",
|
|
37653
|
+
digitClx
|
|
37654
|
+
), children: /* @__PURE__ */ jsx("div", { style: {
|
|
37655
|
+
/* color: 'white' tailwind bug? ,*/
|
|
37656
|
+
fontSize: "11px",
|
|
37657
|
+
position: "relative",
|
|
37658
|
+
top: "1px"
|
|
37659
|
+
}, children: cmmc.cartQuantity }) }),
|
|
37660
|
+
/* @__PURE__ */ jsx(bag_icon_default, { width: "19", height: "24", className: cn("relative -top-[3px] opacity-70", iconClx), "aria-hidden": "true" })
|
|
37661
|
+
] }),
|
|
37662
|
+
showArrow && /* @__PURE__ */ jsx("span", { style: { fontSize: "17px" }, children: "\u203A" })
|
|
37663
|
+
] });
|
|
37664
|
+
});
|
|
37665
|
+
var CheckoutButton = ({
|
|
37666
|
+
handleCheckout,
|
|
37667
|
+
variant = "primary",
|
|
37668
|
+
rounded = "lg",
|
|
37669
|
+
className: className2,
|
|
37670
|
+
showQuantity = true,
|
|
37671
|
+
showArrow = true,
|
|
37672
|
+
animateOnQuantityChange = true,
|
|
37673
|
+
centerText = true,
|
|
37674
|
+
children,
|
|
37675
|
+
...rest
|
|
37676
|
+
}) => {
|
|
37677
|
+
return /* @__PURE__ */ jsxs(
|
|
37678
|
+
Button$1,
|
|
37679
|
+
{
|
|
37680
|
+
...rest,
|
|
37681
|
+
onClick: handleCheckout,
|
|
37682
|
+
variant,
|
|
37683
|
+
className: cn(`rounded-${rounded}`, cn(
|
|
37684
|
+
"flex justify-between items-stretch group",
|
|
37685
|
+
showQuantity ? centerText ? "px-1.5" : "pl-2.5 pr-1.5" : "",
|
|
37686
|
+
className2
|
|
37687
|
+
)),
|
|
37688
|
+
children: [
|
|
37689
|
+
centerText && // must scale this one too, as it effects layout
|
|
37690
|
+
/* @__PURE__ */ jsx(
|
|
37691
|
+
IconAndQuantity,
|
|
37692
|
+
{
|
|
37693
|
+
showArrow,
|
|
37694
|
+
showQuantity,
|
|
37695
|
+
clx: "invisible group-hover:scale-105 transition-scale transition-duration-300"
|
|
37696
|
+
}
|
|
37697
|
+
),
|
|
37698
|
+
children ?? /* @__PURE__ */ jsx("div", { className: "flex justify-center items-center", children: "Checkout" }),
|
|
37699
|
+
/* @__PURE__ */ jsx(
|
|
37700
|
+
IconAndQuantity,
|
|
37701
|
+
{
|
|
37702
|
+
clx: "group-hover:scale-105 transition-scale transition-duration-300",
|
|
37703
|
+
animateOnQuantityChange,
|
|
37704
|
+
showArrow,
|
|
37705
|
+
showQuantity,
|
|
37706
|
+
iconClx: "fill-background",
|
|
37707
|
+
digitClx: "text-foreground group-hover:opacity-80 leading-none font-bold font-sans"
|
|
37708
|
+
}
|
|
37709
|
+
)
|
|
37710
|
+
]
|
|
37711
|
+
}
|
|
37712
|
+
);
|
|
37713
|
+
};
|
|
37714
|
+
var checkout_button_default = CheckoutButton;
|
|
37715
|
+
var CN = {
|
|
37716
|
+
// h: mind padding!
|
|
37717
|
+
mobile: { w: 36, h: 32 },
|
|
37718
|
+
sm: { w: 60, h: 34 },
|
|
37719
|
+
desktop: { w: 60, h: 32 }
|
|
37720
|
+
};
|
|
37721
|
+
var Info2 = ({
|
|
37722
|
+
item,
|
|
37723
|
+
clx = ""
|
|
37724
|
+
}) => {
|
|
37725
|
+
const cmmc = useCommerce();
|
|
37726
|
+
const family = cmmc.getFamilyById(item.familyId);
|
|
37727
|
+
let topLine = family.title;
|
|
37728
|
+
if (item.sku.startsWith("LXM-AG") || item.sku.startsWith("LXM-AU")) {
|
|
37729
|
+
topLine = family.parentTitle + ", " + family.title;
|
|
37730
|
+
}
|
|
37731
|
+
const optionLabel = item.optionLabelShort ?? item.optionLabel;
|
|
37732
|
+
const priceStr = formatCurrencyValue(item.price);
|
|
37733
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
37734
|
+
/* @__PURE__ */ jsxs(Box, { className: cn("sm:hidden flex flex-col !text-muted items-stretch whitespace-nowrap text-ellipsis ", clx), children: [
|
|
37735
|
+
/* @__PURE__ */ jsx("p", { className: "text-left text-xs", children: topLine }),
|
|
37736
|
+
/* @__PURE__ */ jsxs("div", { className: "flex justify-between text-xxs", children: [
|
|
37737
|
+
/* @__PURE__ */ jsx("div", { children: optionLabel }),
|
|
37738
|
+
/* @__PURE__ */ jsx("div", { className: "pl-2.5", children: priceStr })
|
|
37739
|
+
] })
|
|
37740
|
+
] }),
|
|
37741
|
+
/* @__PURE__ */ jsxs(Box, { className: cn("hidden sm:flex !text-muted flex-col items-stretch whitespace-nowrap text-ellipsis text-xs", clx), children: [
|
|
37742
|
+
/* @__PURE__ */ jsx("p", { className: "text-left", children: topLine }),
|
|
37743
|
+
/* @__PURE__ */ jsxs("div", { className: "flex justify-between", children: [
|
|
37744
|
+
/* @__PURE__ */ jsx("div", { children: optionLabel }),
|
|
37745
|
+
/* @__PURE__ */ jsx("div", { className: "pl-2.5", children: priceStr })
|
|
37746
|
+
] })
|
|
37747
|
+
] })
|
|
37748
|
+
] });
|
|
37749
|
+
};
|
|
37750
|
+
var PROMPT_COMMON_CLX = "block absolute top-0 left-0 bg-transparent duration-400 transition-opacity";
|
|
37751
|
+
var Micro = observer$1(({
|
|
37752
|
+
clx = "",
|
|
37753
|
+
handleCheckout,
|
|
37754
|
+
handleItemClicked
|
|
37755
|
+
}) => {
|
|
37756
|
+
const drawer = useCommerceDrawer();
|
|
37757
|
+
const cmmc = useCommerce();
|
|
37758
|
+
return /* @__PURE__ */ jsxs(Box, { className: cn(
|
|
37759
|
+
drawer.showRecent ? "grid grid-cols-2" : "flex justify-center items-center ",
|
|
37760
|
+
drawer.showRecent ? drawer.isMobile ? "-mt-3" : "-mt-3" : "",
|
|
37761
|
+
"gap-2 md:gap-3 relative",
|
|
37762
|
+
clx
|
|
37763
|
+
), children: [
|
|
37764
|
+
drawer.showRecent && /* @__PURE__ */ jsxs(Box, { className: "flex flex-col items-stretch " + (drawer.isMobile ? "justify-start" : "group"), children: [
|
|
37765
|
+
/* @__PURE__ */ jsxs(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: [
|
|
37766
|
+
/* @__PURE__ */ jsx("span", { className: "invisible", children: "scrictly for layout" }),
|
|
37767
|
+
drawer.isMobile ? /* @__PURE__ */ jsx(Box, { tag: "span", className: PROMPT_COMMON_CLX, children: "tap for options:" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
37768
|
+
/* @__PURE__ */ jsx(Box, { tag: "span", className: PROMPT_COMMON_CLX + " group-hover:opacity-0", children: "recent item:" }),
|
|
37769
|
+
/* @__PURE__ */ jsx(Box, { tag: "span", className: PROMPT_COMMON_CLX + " opacity-0 group-hover:opacity-100", children: "view options:" })
|
|
37770
|
+
] })
|
|
37771
|
+
] }),
|
|
37772
|
+
/* @__PURE__ */ jsxs(
|
|
37773
|
+
Button$1,
|
|
37774
|
+
{
|
|
37775
|
+
variant: "ghost",
|
|
37776
|
+
className: cn(`rounded-${drawer.isMobile ? "md" : "lg"}`, cn(
|
|
37777
|
+
"box-content",
|
|
37778
|
+
"flex flex-row justify-between items-center gap-1",
|
|
37779
|
+
"-ml-1.5",
|
|
37780
|
+
"overflow-hidden ",
|
|
37781
|
+
"px-1 md:px-2 py-[2px]",
|
|
37782
|
+
"border border-transparent group-hover:border-muted-3",
|
|
37783
|
+
"group-hover:!bg-transparent",
|
|
37784
|
+
"!min-w-0"
|
|
37785
|
+
)),
|
|
37786
|
+
size: drawer.isMobile ? "sm" : "default",
|
|
37787
|
+
onClick: handleItemClicked,
|
|
37788
|
+
children: [
|
|
37789
|
+
cmmc.recentItem?.item.img && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
37790
|
+
/* @__PURE__ */ jsx(MediaStack, { media: { img: cmmc.recentItem.item.img }, constrainTo: CN.mobile, className: "sm:hidden grow-0 shrink-0" }),
|
|
37791
|
+
/* @__PURE__ */ jsx(MediaStack, { media: { img: cmmc.recentItem.item.img }, constrainTo: CN.sm, className: "hidden sm:block md:hidden grow-0 shrink-0" }),
|
|
37792
|
+
/* @__PURE__ */ jsx(MediaStack, { media: { img: cmmc.recentItem.item.img }, constrainTo: CN.desktop, className: "hidden md:block grow-0 shrink-0" })
|
|
37793
|
+
] }),
|
|
37794
|
+
cmmc.recentItem && /* @__PURE__ */ jsx("div", { className: "grow w-full", children: /* @__PURE__ */ jsx(Info2, { item: cmmc.recentItem.item, clx: "w-full" }) })
|
|
37795
|
+
]
|
|
37796
|
+
}
|
|
37797
|
+
)
|
|
37798
|
+
] }),
|
|
37799
|
+
drawer.showCheckout && /* @__PURE__ */ jsxs(Box, { className: cn(
|
|
37800
|
+
"flex flex-col w-full",
|
|
37801
|
+
drawer.showRecent ? "items-stretch" : "items-center",
|
|
37802
|
+
drawer.isMobile ? "justify-start" : "justify-center"
|
|
37803
|
+
), children: [
|
|
37804
|
+
drawer.showRecent && /* @__PURE__ */ jsx("p", { className: "invisible text-muted text-xxs md:text-xs leading-none pl-1 self-start", children: "for layout" }),
|
|
37805
|
+
/* @__PURE__ */ jsx(
|
|
37806
|
+
checkout_button_default,
|
|
37807
|
+
{
|
|
37808
|
+
handleCheckout,
|
|
37809
|
+
variant: "primary",
|
|
37810
|
+
size: drawer.isMobile ? "sm" : "lg",
|
|
37811
|
+
className: cn(`rounded-${drawer.isMobile ? "md" : "lg"}`, cn(
|
|
37812
|
+
drawer.isMobile ? drawer.showRecent ? "pl-3.5 pr-2.5" : "min-w-[320px]" : drawer.showRecent ? "" : "w-[320px]",
|
|
37813
|
+
"text-sm font-semibold"
|
|
37814
|
+
)),
|
|
37815
|
+
centerText: drawer.isMobile ? !drawer.showRecent : true
|
|
37816
|
+
}
|
|
37817
|
+
)
|
|
37818
|
+
] })
|
|
37819
|
+
] });
|
|
37820
|
+
});
|
|
37821
|
+
var micro_default = Micro;
|
|
37822
|
+
var CommerceUIComponent = observer$1(() => {
|
|
37823
|
+
const buy = useSelectAndBuy();
|
|
37824
|
+
const drawer = useCommerceDrawer();
|
|
37825
|
+
const router = useRouter();
|
|
37826
|
+
const handleCheckout = () => {
|
|
37827
|
+
router.push("/checkout");
|
|
37828
|
+
};
|
|
37829
|
+
const handleHandleClicked = () => {
|
|
37830
|
+
if (drawer.state === "full") {
|
|
37831
|
+
buy.hideVariants();
|
|
37832
|
+
} else if (drawer.state === "micro") {
|
|
37833
|
+
buy.showRecentVariants();
|
|
37834
|
+
}
|
|
37835
|
+
};
|
|
37836
|
+
const handleItemClicked = () => {
|
|
37837
|
+
buy.showRecentVariants();
|
|
37838
|
+
};
|
|
37839
|
+
const handleCloseGesture = () => {
|
|
37840
|
+
if (drawer.state === "full") {
|
|
37841
|
+
buy.hideVariants();
|
|
37842
|
+
return true;
|
|
37843
|
+
}
|
|
37844
|
+
return false;
|
|
37845
|
+
};
|
|
37846
|
+
return /* @__PURE__ */ jsxs(
|
|
37847
|
+
shell_default,
|
|
37848
|
+
{
|
|
37849
|
+
handleHandleClicked,
|
|
37850
|
+
handleCloseGesture,
|
|
37851
|
+
drawerClx: "flex flex-col",
|
|
37852
|
+
children: [
|
|
37853
|
+
drawer.state === "full" && /* The actual drawer is larger than the visible area (due to awkward
|
|
37854
|
+
vaul impl. So we have to ask the drawer for its currect snappoint
|
|
37855
|
+
and constrain layout to that.
|
|
37856
|
+
*/
|
|
37857
|
+
/* @__PURE__ */ jsx("div", { style: {
|
|
37858
|
+
height: drawer.snapPointPx - 24
|
|
37859
|
+
/* fudge factor for handle area */
|
|
37860
|
+
}, children: /* @__PURE__ */ jsx(
|
|
37861
|
+
CarouselBuyCard,
|
|
37862
|
+
{
|
|
37863
|
+
skuPath: buy.currentSkuPath,
|
|
37864
|
+
checkoutButton: /* @__PURE__ */ jsx(
|
|
37865
|
+
checkout_button_default,
|
|
37866
|
+
{
|
|
37867
|
+
handleCheckout,
|
|
37868
|
+
className: "w-full min-w-[160px] sm:max-w-[320px]"
|
|
37869
|
+
}
|
|
37870
|
+
),
|
|
37871
|
+
clx: "justify-between h-full pb-3 gap-8",
|
|
37872
|
+
addBtnClx: "w-full min-w-[160px] sm:max-w-[320px]",
|
|
37873
|
+
buttonsAreaClx: "grow-0 shrink-0 mt-0",
|
|
37874
|
+
selectorClx: "max-w-[475px] justify-between grow"
|
|
37875
|
+
}
|
|
37876
|
+
) }),
|
|
37877
|
+
drawer.state === "micro" && /* @__PURE__ */ jsx(
|
|
37878
|
+
micro_default,
|
|
37879
|
+
{
|
|
37880
|
+
handleCheckout,
|
|
37881
|
+
handleItemClicked,
|
|
37882
|
+
clx: "w-full px-2 sm:w-[460px] sm:mx-auto md:w-[550px]"
|
|
37883
|
+
}
|
|
37884
|
+
)
|
|
37885
|
+
]
|
|
37886
|
+
}
|
|
37887
|
+
);
|
|
37888
|
+
});
|
|
37889
|
+
var drawer_default = CommerceUIComponent;
|
|
37890
|
+
var DrawerMargin = observer$1(({
|
|
37891
|
+
clx = ""
|
|
37892
|
+
}) => {
|
|
37893
|
+
const drawer = useCommerceDrawer();
|
|
37894
|
+
if (!drawer) {
|
|
37895
|
+
throw new Error("DrawerMargin must be used with a CommerceUIContext!");
|
|
37896
|
+
}
|
|
37897
|
+
return /* @__PURE__ */ jsx(
|
|
37898
|
+
Box,
|
|
37899
|
+
{
|
|
37900
|
+
className: cn("transition-height", clx),
|
|
37901
|
+
style: {
|
|
37902
|
+
height: drawer.state === "micro" ? drawer.microHeight : 0
|
|
37903
|
+
}
|
|
37904
|
+
}
|
|
37905
|
+
);
|
|
37906
|
+
});
|
|
37907
|
+
var drawer_margin_default = DrawerMargin;
|
|
37908
|
+
var BuyButton = ({
|
|
37909
|
+
skuPath,
|
|
37910
|
+
children,
|
|
37911
|
+
className: className2 = "",
|
|
37912
|
+
...rest
|
|
37913
|
+
}) => {
|
|
37914
|
+
const buyOptions = useSelectAndBuy();
|
|
37915
|
+
const handleClick = () => {
|
|
37916
|
+
buyOptions.showVariants(skuPath);
|
|
37917
|
+
};
|
|
37918
|
+
return /* @__PURE__ */ jsx(Button$1, { onClick: handleClick, ...rest, className: cn(className2, ""), children });
|
|
37919
|
+
};
|
|
37920
|
+
var buy_button_default = BuyButton;
|
|
37921
|
+
var ThankYou = ({}) => /* @__PURE__ */ jsxs(ApplyTypography, { className: "flex flex-col gap-4 text-center mt-10", children: [
|
|
37922
|
+
/* @__PURE__ */ jsx("h3", { children: "Thank you for your order!" }),
|
|
37923
|
+
/* @__PURE__ */ jsx("h6", { children: "Once your payment has been confirmed, you'll recieve an email with additional information." }),
|
|
37924
|
+
/* @__PURE__ */ jsxs("p", { children: [
|
|
37925
|
+
"While you wait, we cordially invite you to join the ",
|
|
37926
|
+
/* @__PURE__ */ jsx(Link5, { href: "https://warpcast.com/~/channel/lux", children: "Lux Channel" }),
|
|
37927
|
+
" on ",
|
|
37928
|
+
/* @__PURE__ */ jsx(Link5, { href: "https://warpcast.com/~/invite-page/227706?id=fbc9ca91", children: "Warpcast" }),
|
|
37929
|
+
"."
|
|
37930
|
+
] })
|
|
37931
|
+
] });
|
|
37932
|
+
var thank_you_default = ThankYou;
|
|
37933
|
+
var DesktopBagCarousel = observer$1(({
|
|
37934
|
+
constrainTo,
|
|
37935
|
+
className: className2 = ""
|
|
37936
|
+
}) => {
|
|
37937
|
+
const cmmc = useCommerce();
|
|
37938
|
+
return /* @__PURE__ */ jsx(
|
|
37939
|
+
CarouselItemSelector,
|
|
37940
|
+
{
|
|
37941
|
+
items: cmmc.cartItems,
|
|
37942
|
+
selectedItemRef: cmmc,
|
|
37943
|
+
scrollable: false,
|
|
37944
|
+
selectSku: cmmc.setCurrentItem.bind(cmmc),
|
|
37945
|
+
clx: className2,
|
|
37946
|
+
ext: {
|
|
37947
|
+
options: { loop: true },
|
|
37948
|
+
constrainTo,
|
|
37949
|
+
imageOnly: true
|
|
37950
|
+
}
|
|
37951
|
+
}
|
|
37952
|
+
);
|
|
37953
|
+
});
|
|
37954
|
+
var desktop_bag_carousel_default = DesktopBagCarousel;
|
|
37955
|
+
var linkClx = cn(buttonVariants({ variant: "linkMuted" }), "rounded-none");
|
|
37956
|
+
var PolicyLinks = ({
|
|
37957
|
+
clx = ""
|
|
37958
|
+
}) => /* @__PURE__ */ jsxs(Box, { className: cn("flex flex-col items-center", clx), children: [
|
|
37959
|
+
/* @__PURE__ */ jsx(Separator$2, {}),
|
|
37960
|
+
/* @__PURE__ */ jsxs("div", { className: "flex gap-4 py-2 text-sm", children: [
|
|
37961
|
+
/* @__PURE__ */ jsx(Link5, { style: css(linkClx), href: "", children: "refund policy" }),
|
|
37962
|
+
/* @__PURE__ */ jsx(Link5, { style: css(linkClx), href: "", children: "privacy policy" })
|
|
37963
|
+
] })
|
|
37964
|
+
] });
|
|
37965
|
+
var policy_links_default = PolicyLinks;
|
|
37966
|
+
var DesktopCheckoutPanel = observer$1(({
|
|
37967
|
+
step,
|
|
37968
|
+
stepNames,
|
|
37969
|
+
onLeave,
|
|
37970
|
+
clx = "",
|
|
37971
|
+
children
|
|
37972
|
+
}) => {
|
|
37973
|
+
const cmmc = useCommerce();
|
|
37974
|
+
return /* @__PURE__ */ jsxs(Box, { className: cn("grid grid-cols-2", clx), children: [
|
|
37975
|
+
/* @__PURE__ */ jsx("div", { className: "w-full h-full bg-background flex flex-row items-start justify-end", children: /* @__PURE__ */ jsxs("div", { className: "w-full h-full max-w-[750px] relative flex flex-col items-stretch justify-start px-8 pb-8", children: [
|
|
37976
|
+
/* @__PURE__ */ jsxs("div", { className: "h-[80px] grow-0 flex flex-row items-center z-10", children: [
|
|
37977
|
+
/* @__PURE__ */ jsx(Logo, { size: "md", href: "/", onClick: onLeave, variant: "wordmark", outerClx: "logo-outer-tooltip-class" }),
|
|
37978
|
+
/* @__PURE__ */ jsx(tooltip_default, { select: ".logo-outer-tooltip-class", text: "home", position: "right", offset: 6 })
|
|
37979
|
+
] }, 1),
|
|
37980
|
+
/* @__PURE__ */ jsx(
|
|
37981
|
+
back_button_default,
|
|
37982
|
+
{
|
|
37983
|
+
size: "sm",
|
|
37984
|
+
clx: "z-10 absolute top-14 left-6 !px-0 aspect-square rounded-full hover:!bg-level-3 back-button-tooltip-class ",
|
|
37985
|
+
onBack: onLeave
|
|
37986
|
+
}
|
|
37987
|
+
),
|
|
37988
|
+
/* @__PURE__ */ jsx(tooltip_default, { select: ".back-button-tooltip-class", text: "back", position: "right", offset: 5 }),
|
|
37989
|
+
/* @__PURE__ */ jsxs(Box, { className: cn(
|
|
37990
|
+
"w-full grow min-h-0 max-w-[550px] mx-auto flex flex-col gap-3",
|
|
37991
|
+
cmmc.cartItems.length > 4 ? "justify-between" : "justify-start gap-10 pt-10"
|
|
37992
|
+
), children: [
|
|
37993
|
+
/* @__PURE__ */ jsx(desktop_bag_carousel_default, { className: "grow-0 h-[260px] w-[360px] lg:w-[420px] mx-auto -mt-8", constrainTo: { w: 250, h: 250 } }),
|
|
37994
|
+
/* @__PURE__ */ jsx(
|
|
37995
|
+
CartPanel,
|
|
37996
|
+
{
|
|
37997
|
+
className: "w-full border-none p-0",
|
|
37998
|
+
itemClx: "mb-2",
|
|
37999
|
+
totalClx: "sticky bottom-0 bg-background",
|
|
38000
|
+
listClx: "pr-3",
|
|
38001
|
+
scrollAfter: 4,
|
|
38002
|
+
scrollHeightClx: "min-h-[50vh] grow",
|
|
38003
|
+
showPromoCode: true,
|
|
38004
|
+
showShipping: true,
|
|
38005
|
+
selectItems: true
|
|
38006
|
+
}
|
|
38007
|
+
)
|
|
38008
|
+
] }, 2)
|
|
38009
|
+
] }) }, 1),
|
|
38010
|
+
/* @__PURE__ */ jsxs("div", { className: "w-full h-full flex flex-col bg-level-1 min-h-screen justify-between", children: [
|
|
38011
|
+
/* @__PURE__ */ jsx(ScrollArea$1, { className: "w-full flex flex-row items-start justify-start overflow-y-auto", children: /* @__PURE__ */ jsxs("div", { className: "h-full w-full max-w-[750px] relative flex flex-col items-center px-8 pt-0", children: [
|
|
38012
|
+
/* @__PURE__ */ jsxs("div", { className: "bg-level-1 sticky h-[80px] bg-[#aaaaff] w-full top-0 flex justify-center items-end", children: [
|
|
38013
|
+
/* @__PURE__ */ jsx(widget_default, { noLogin: true, className: "hidden md:flex absolute top-4 right-4 " }),
|
|
38014
|
+
/* @__PURE__ */ jsx(StepIndicator, { dotSizeRem: 1.35, steps: stepNames, currentStep: step, className: "gap-2 text-base w-pr-70" })
|
|
38015
|
+
] }, 1),
|
|
38016
|
+
/* @__PURE__ */ jsx("div", { className: "w-full max-w-[550px] mx-auto py-8", children }, 2)
|
|
38017
|
+
] }) }),
|
|
38018
|
+
/* @__PURE__ */ jsx("div", { className: "w-full max-w-[750px] relative flex flex-col items-center px-8 pt-0", children: /* @__PURE__ */ jsx("div", { className: "w-full max-w-[550px] mx-auto flex flex-col items-center", children: /* @__PURE__ */ jsx(policy_links_default, { clx: "w-full" }) }) })
|
|
38019
|
+
] }, 2)
|
|
38020
|
+
] });
|
|
38021
|
+
});
|
|
38022
|
+
var desktop_cp_default = DesktopCheckoutPanel;
|
|
38023
|
+
var CartAccordian = observer$1(({
|
|
38024
|
+
icon,
|
|
38025
|
+
clx = "",
|
|
38026
|
+
panelClx = "",
|
|
38027
|
+
triggerClx = "",
|
|
38028
|
+
scrollAfter,
|
|
38029
|
+
scrollHeightClx
|
|
38030
|
+
}) => {
|
|
38031
|
+
const cmmc = useCommerce();
|
|
38032
|
+
return /* @__PURE__ */ jsx(Accordion, { type: "single", collapsible: true, className: clx, children: /* @__PURE__ */ jsxs(AccordionItem$1, { value: "cart", className: "w-full border-b-0", children: [
|
|
38033
|
+
/* @__PURE__ */ jsxs(AccordionTrigger, { className: "!no-underline group flex justify-between ", children: [
|
|
38034
|
+
/* @__PURE__ */ jsxs("div", { className: "flex gap-0 items-center", children: [
|
|
38035
|
+
icon,
|
|
38036
|
+
/* @__PURE__ */ jsxs("h5", { className: "text-sm sm:text-xl grow", children: [
|
|
38037
|
+
/* @__PURE__ */ jsx("span", { className: "group-data-[state=open]:hidden", children: "Order Total:" }),
|
|
38038
|
+
/* @__PURE__ */ jsx("span", { className: "group-data-[state=closed]:hidden", children: "Your Order" })
|
|
38039
|
+
] })
|
|
38040
|
+
] }),
|
|
38041
|
+
/* @__PURE__ */ jsxs("div", { className: "flex gap-1 items-center", children: [
|
|
38042
|
+
/* @__PURE__ */ jsx("h5", { className: "text-sm sm:text-xl grow truncate", children: formatCurrencyValue(cmmc.promoAppliedCartTotal) }),
|
|
38043
|
+
/* @__PURE__ */ jsx(ChevronRight, { style: css("h-5 w-5 -mr-2 shrink-0 transition-transform duration-200 group-data-[state=open]:rotate-90") })
|
|
38044
|
+
] })
|
|
38045
|
+
] }),
|
|
38046
|
+
/* @__PURE__ */ jsx(AccordionContent, { className: "data-[state=open]:mb-4", children: /* @__PURE__ */ jsx(
|
|
38047
|
+
CartPanel,
|
|
38048
|
+
{
|
|
38049
|
+
className: cn("w-full", panelClx),
|
|
38050
|
+
scrollAfter,
|
|
38051
|
+
scrollHeightClx,
|
|
38052
|
+
listClx: "mt-0",
|
|
38053
|
+
itemClx: "mt-0.5 mb-0",
|
|
38054
|
+
totalClx: "sticky px-1 pr-2 border-t -bottom-[1px] bg-background",
|
|
38055
|
+
showShipping: true,
|
|
38056
|
+
showPromoCode: true
|
|
38057
|
+
}
|
|
38058
|
+
) })
|
|
38059
|
+
] }) });
|
|
38060
|
+
});
|
|
38061
|
+
var cart_accordian_default = CartAccordian;
|
|
38062
|
+
var MobileCheckoutPanel = ({
|
|
38063
|
+
step,
|
|
38064
|
+
stepNames,
|
|
38065
|
+
onLeave,
|
|
38066
|
+
clx = "",
|
|
38067
|
+
children
|
|
38068
|
+
}) => /* @__PURE__ */ jsxs(Box, { className: cn("bg-background flex flex-col justify-start px-4 pt-[101px]", clx), children: [
|
|
38069
|
+
/* @__PURE__ */ jsxs("div", { className: "fixed z-11 top-0 h-[45px] w-full flex justify-between items-stretch bg-background", children: [
|
|
38070
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-stretch gap-1 grow-0", children: [
|
|
38071
|
+
/* @__PURE__ */ jsx(
|
|
38072
|
+
back_button_default,
|
|
38073
|
+
{
|
|
38074
|
+
size: "sm",
|
|
38075
|
+
clx: "-ml-5 !px-0 aspect-square h-full rounded-full active:!bg-level-3 ",
|
|
38076
|
+
onBack: onLeave
|
|
38077
|
+
}
|
|
38078
|
+
),
|
|
38079
|
+
/* @__PURE__ */ jsx(Logo, { size: "sm", variant: "wordmark", href: "/", onClick: onLeave, outerClx: "-ml-2" })
|
|
38080
|
+
] }),
|
|
38081
|
+
/* @__PURE__ */ jsx(
|
|
38082
|
+
StepIndicator,
|
|
38083
|
+
{
|
|
38084
|
+
dotSizeRem: 1,
|
|
38085
|
+
steps: stepNames,
|
|
38086
|
+
currentStep: step,
|
|
38087
|
+
className: "relative grow mx-2 top-[14px] text-xs font-semibold w-full"
|
|
38088
|
+
}
|
|
38089
|
+
),
|
|
38090
|
+
/* @__PURE__ */ jsx("div", { className: "w-[72px] grow-0 shrink-0 flex items-center justify-center", children: /* @__PURE__ */ jsx(widget_default, { noLogin: true, className: "" }) })
|
|
38091
|
+
] }),
|
|
38092
|
+
/* @__PURE__ */ jsx(
|
|
38093
|
+
cart_accordian_default,
|
|
38094
|
+
{
|
|
38095
|
+
icon: /* @__PURE__ */ jsx(
|
|
38096
|
+
bag_button_default,
|
|
38097
|
+
{
|
|
38098
|
+
animateOnHover: false,
|
|
38099
|
+
showIfEmpty: true,
|
|
38100
|
+
size: "sm",
|
|
38101
|
+
className: "mr-1 relative w-5 h-6 sm:w-6 sm:h-7",
|
|
38102
|
+
iconClx: "fill-foreground"
|
|
38103
|
+
}
|
|
38104
|
+
),
|
|
38105
|
+
clx: "flex items-center justify-center w-full",
|
|
38106
|
+
triggerClx: "bg-background fixed z-11 top-[45px] left-0 right-0 !m-0 px-4",
|
|
38107
|
+
panelClx: "!py-0",
|
|
38108
|
+
scrollAfter: 3,
|
|
38109
|
+
scrollHeightClx: "h-[385px]"
|
|
38110
|
+
}
|
|
38111
|
+
),
|
|
38112
|
+
children,
|
|
38113
|
+
/* @__PURE__ */ jsx(policy_links_default, { clx: "mt-auto mb-3 pt-2" })
|
|
38114
|
+
] });
|
|
38115
|
+
var mobile_cp_default = MobileCheckoutPanel;
|
|
38116
|
+
var STEPS = [
|
|
38117
|
+
{
|
|
38118
|
+
name: "payment",
|
|
38119
|
+
Comp: PaymentStepForm
|
|
38120
|
+
},
|
|
38121
|
+
{
|
|
38122
|
+
name: "delivery",
|
|
38123
|
+
Comp: ShippingStepForm
|
|
38124
|
+
},
|
|
38125
|
+
{
|
|
38126
|
+
name: "done",
|
|
38127
|
+
label: "Done!",
|
|
38128
|
+
Comp: thank_you_default
|
|
38129
|
+
}
|
|
38130
|
+
];
|
|
38131
|
+
var STEP_NAMES = STEPS.map((s) => s.label ? s.label : capitalize(s.name));
|
|
38132
|
+
var CheckoutPanel = ({
|
|
38133
|
+
clx = ""
|
|
38134
|
+
}) => {
|
|
38135
|
+
const cmmc = useCommerce();
|
|
38136
|
+
if (!cmmc) {
|
|
38137
|
+
console.log("CHECKOUT PANEL: cmmc svc undefined!");
|
|
38138
|
+
return /* @__PURE__ */ jsx(Fragment, {});
|
|
38139
|
+
}
|
|
38140
|
+
const [stepIndex, setStepIndex] = useState(0);
|
|
38141
|
+
const [orderId, setOrderId] = useState(void 0);
|
|
38142
|
+
const setStep = (name) => {
|
|
38143
|
+
if (name === "first") {
|
|
38144
|
+
setStepIndex(0);
|
|
38145
|
+
} else if (name === "last") {
|
|
38146
|
+
setStepIndex(STEPS.length - 1);
|
|
38147
|
+
} else if (name === "next") {
|
|
38148
|
+
if (stepIndex <= STEPS.length - 2) {
|
|
38149
|
+
setStepIndex(stepIndex + 1);
|
|
38150
|
+
} else {
|
|
38151
|
+
throw new Error("CheckoutPanel.setStep(): Attempting to advance past last step!");
|
|
38152
|
+
}
|
|
38153
|
+
} else {
|
|
38154
|
+
const indexFound = STEPS.findIndex((el) => el.name === name);
|
|
38155
|
+
if (indexFound !== -1) {
|
|
38156
|
+
setStepIndex(indexFound);
|
|
38157
|
+
} else {
|
|
38158
|
+
throw new Error("CheckoutPanel.setStep(): Step named " + name + " not found!");
|
|
38159
|
+
}
|
|
38160
|
+
}
|
|
38161
|
+
};
|
|
38162
|
+
const _close = () => {
|
|
38163
|
+
setStep("first");
|
|
38164
|
+
};
|
|
38165
|
+
const desktopElement = useRef(null);
|
|
38166
|
+
const [layout2, setLayout] = useState(void 0);
|
|
38167
|
+
useLayoutEffect(() => {
|
|
38168
|
+
const checkLayout = () => {
|
|
38169
|
+
setLayout(!!desktopElement.current?.offsetParent ? "desktop" : "mobile");
|
|
38170
|
+
};
|
|
38171
|
+
checkLayout();
|
|
38172
|
+
window.addEventListener("resize", checkLayout);
|
|
38173
|
+
return () => {
|
|
38174
|
+
window.removeEventListener("resize", checkLayout);
|
|
38175
|
+
};
|
|
38176
|
+
}, []);
|
|
38177
|
+
const StepToRender = STEPS[stepIndex].Comp;
|
|
38178
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
38179
|
+
/* @__PURE__ */ jsxs(
|
|
38180
|
+
desktop_cp_default,
|
|
38181
|
+
{
|
|
38182
|
+
clx: cn("h-full", clx, "hidden md:flex"),
|
|
38183
|
+
onLeave: _close,
|
|
38184
|
+
step: stepIndex,
|
|
38185
|
+
stepNames: STEP_NAMES,
|
|
38186
|
+
children: [
|
|
38187
|
+
/* @__PURE__ */ jsx("div", { ref: desktopElement }),
|
|
38188
|
+
layout2 === "desktop" && /* @__PURE__ */ jsx(StepToRender, { onDone: () => {
|
|
38189
|
+
setStep("next");
|
|
38190
|
+
}, orderId, setOrderId })
|
|
38191
|
+
]
|
|
38192
|
+
}
|
|
38193
|
+
),
|
|
38194
|
+
/* @__PURE__ */ jsx(
|
|
38195
|
+
mobile_cp_default,
|
|
38196
|
+
{
|
|
38197
|
+
clx: cn("w-full h-full overflow-y-auto", clx, "md:hidden"),
|
|
38198
|
+
onLeave: _close,
|
|
38199
|
+
step: stepIndex,
|
|
38200
|
+
stepNames: STEP_NAMES,
|
|
38201
|
+
children: layout2 === "mobile" && /* @__PURE__ */ jsx(StepToRender, { onDone: () => {
|
|
38202
|
+
setStep("next");
|
|
38203
|
+
}, orderId, setOrderId })
|
|
38204
|
+
}
|
|
38205
|
+
)
|
|
38206
|
+
] });
|
|
38207
|
+
};
|
|
38208
|
+
var checkout_panel_default = CheckoutPanel;
|
|
38209
|
+
var LoginPanel = ({
|
|
38210
|
+
close,
|
|
38211
|
+
className: className2 = "",
|
|
38212
|
+
reviews
|
|
38213
|
+
}) => {
|
|
38214
|
+
return /* @__PURE__ */ jsxs(Box, { className: cn("grid grid-cols-1 md:grid-cols-2", className2), children: [
|
|
38215
|
+
/* @__PURE__ */ 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__ */ jsx("div", { className: "h-full w-full max-w-[750px] px-8 pt-0", children: /* @__PURE__ */ jsxs("div", { className: "h-full w-full max-w-[550px] mx-auto flex flex-col justify-between min-h-screen py-10", children: [
|
|
38216
|
+
/* @__PURE__ */ jsx(
|
|
38217
|
+
Button$1,
|
|
38218
|
+
{
|
|
38219
|
+
variant: "ghost",
|
|
38220
|
+
onClick: close,
|
|
38221
|
+
className: "w-fit !min-w-0 p-2",
|
|
38222
|
+
children: /* @__PURE__ */ jsx(Logo, { size: "md", variant: "wordmark" })
|
|
38223
|
+
}
|
|
38224
|
+
),
|
|
38225
|
+
/* @__PURE__ */ jsx(
|
|
38226
|
+
Carousel,
|
|
38227
|
+
{
|
|
38228
|
+
options: { align: "center", loop: true, autoplay: 5e3 },
|
|
38229
|
+
className: "w-full",
|
|
38230
|
+
children: /* @__PURE__ */ jsx(CarouselContent, { children: reviews.map(({ text, author, href }, index) => /* @__PURE__ */ jsx(CarouselItem, { children: /* @__PURE__ */ jsxs(Link5, { href, className: "flex flex-col gap-3 cursor-pointer", children: [
|
|
38231
|
+
/* @__PURE__ */ jsxs("p", { children: [
|
|
38232
|
+
"\u201C",
|
|
38233
|
+
text,
|
|
38234
|
+
"\u201C"
|
|
38235
|
+
] }),
|
|
38236
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm", children: author })
|
|
38237
|
+
] }) }, index)) })
|
|
38238
|
+
}
|
|
38239
|
+
)
|
|
38240
|
+
] }) }) }),
|
|
38241
|
+
/* @__PURE__ */ jsx("div", { className: "w-full h-full bg-background flex flex-row items-center", children: /* @__PURE__ */ jsx("div", { className: "w-full max-w-[750px] relative flex flex-col items-center px-8 pt-0 text-center", children: /* @__PURE__ */ jsxs("div", { className: "relative h-full w-full max-w-[400px] mx-auto flex flex-col gap-4 items-center py-10", children: [
|
|
38242
|
+
/* @__PURE__ */ jsx(
|
|
38243
|
+
Button$1,
|
|
38244
|
+
{
|
|
38245
|
+
variant: "ghost",
|
|
38246
|
+
onClick: close,
|
|
38247
|
+
className: "block md:hidden absolute rounded-full p-2 left-0 h-auto hover:bg-background",
|
|
38248
|
+
children: /* @__PURE__ */ jsx(LuxLogo, { variant: "white", size: 20 })
|
|
38249
|
+
}
|
|
38250
|
+
),
|
|
38251
|
+
/* @__PURE__ */ jsx(login_default, { className: "w-full max-w-sm" }),
|
|
38252
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm opacity-50", children: legal.map(({ title: title2, href }, index) => /* @__PURE__ */ jsxs(React64__default.Fragment, { children: [
|
|
38253
|
+
index > 0 && " \xB7 ",
|
|
38254
|
+
/* @__PURE__ */ jsx(Link5, { href, className: "underline", children: title2 })
|
|
38255
|
+
] }, href)) })
|
|
38256
|
+
] }) }) })
|
|
38257
|
+
] });
|
|
38258
|
+
};
|
|
38259
|
+
var login_panel_default = LoginPanel;
|
|
38260
|
+
|
|
38261
|
+
// src/site/next/analytics/fpixel.ts
|
|
38262
|
+
var FB_PIXEL_ID = process.env.NEXT_PUBLIC_FACEBOOK_PIXEL_ID || "";
|
|
38263
|
+
var pageview = () => {
|
|
38264
|
+
window.fbq("track", "PageView");
|
|
38265
|
+
};
|
|
38266
|
+
var FacebookPixel = () => {
|
|
38267
|
+
const [loaded, setLoaded] = useState(false);
|
|
38268
|
+
const pathname = usePathname();
|
|
38269
|
+
useEffect(() => {
|
|
38270
|
+
if (!loaded) return;
|
|
38271
|
+
pageview();
|
|
38272
|
+
}, [pathname, loaded]);
|
|
38273
|
+
return /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
|
|
38274
|
+
Script,
|
|
38275
|
+
{
|
|
38276
|
+
id: "fb-pixel",
|
|
38277
|
+
strategy: "afterInteractive",
|
|
38278
|
+
onLoad: () => setLoaded(true),
|
|
38279
|
+
dangerouslySetInnerHTML: {
|
|
38280
|
+
__html: `
|
|
38281
|
+
!function(f,b,e,v,n,t,s)
|
|
38282
|
+
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
|
|
38283
|
+
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
|
|
38284
|
+
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
|
|
38285
|
+
n.queue=[];t=b.createElement(e);t.async=!0;
|
|
38286
|
+
t.src=v;s=b.getElementsByTagName(e)[0];
|
|
38287
|
+
s.parentNode.insertBefore(t,s)}(window, document,'script',
|
|
38288
|
+
'https://connect.facebook.net/en_US/fbevents.js');
|
|
38289
|
+
fbq('init', ${FB_PIXEL_ID});
|
|
38290
|
+
`
|
|
38291
|
+
}
|
|
38292
|
+
}
|
|
38293
|
+
) });
|
|
38294
|
+
};
|
|
38295
|
+
var Analytics = () => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
38296
|
+
/* @__PURE__ */ jsx(FacebookPixel, {}),
|
|
38297
|
+
/* @__PURE__ */ jsx(GoogleAnalytics, { gaId: process.env.NEXT_PUBLIC_GA_MEASUREMENT_ID ?? "" })
|
|
38298
|
+
] });
|
|
38299
|
+
var Tooltip6 = ({
|
|
38300
|
+
select,
|
|
38301
|
+
text,
|
|
38302
|
+
clx = "",
|
|
38303
|
+
position = "bottom",
|
|
38304
|
+
offset = 2
|
|
38305
|
+
}) => /* @__PURE__ */ jsx(
|
|
38306
|
+
Tooltip$3,
|
|
38307
|
+
{
|
|
38308
|
+
anchorSelect: select,
|
|
38309
|
+
noArrow: true,
|
|
38310
|
+
opacity: 1,
|
|
38311
|
+
content: text,
|
|
38312
|
+
place: position,
|
|
38313
|
+
offset,
|
|
38314
|
+
delayShow: 100,
|
|
38315
|
+
delayHide: 100,
|
|
38316
|
+
className: "!opacity-100 !bg-level-2 border rounded-[3px] !px-1.5 !py-1 z-floating" + clx
|
|
38317
|
+
}
|
|
38318
|
+
);
|
|
38319
|
+
var tooltip_default = Tooltip6;
|
|
36424
38320
|
|
|
36425
|
-
export { AIActions, AIAgents, AIAssistant, AIChat, AICode, AIModelSelectorNavigationBar, AIModels, AIPlayground, AITools, AIVision, AIVoice, AIVoiceSettings, AI_MODELS, AccordionItem, AccordionItemContent, AccordionItemTrigger, AccordionRoot, AdvancedNavigationBar, Alert, Android, AnimatedBackground, AnimatedBackgroundPresets, AnimatedBeam, AnimatedCounter, AnimatedCursor, AnimatedIcon, AnimatedIconPresets, AnimatedList, AnimatedListPresets, AnimatedNumber, AnimatedTestimonials, AnimatedText, AnimatedTooltip, Announcement, AppNav, AppProvider, AppSwitcherNavigationBar, AppleCardsCarousel, AppleHelloEffect, AttachmentPreview, AuthCallback, AuthProvider, AutoListenToggle, Avatar, AvatarGroup, Badge, BankAlert, BankAlertText, BankButton, BankButtonText, BankCard, BankDivider, BankField, BankHeading, BankInput, BankPage, BankPinBox, BankText, Banner, BreadcrumbAndFiltersNavigationBar, BreadcrumbNavigationBar, BreathingPulse, Button, Button3D, Button3DLoading, Button3DPreset, ButtonGroup, ButtonGroupRadio, CALLBACK_PATH, Calendar, Card3D, Card3DContent, Card3DDescription, Card3DFooter, Card3DHeader, Card3DTitle, Carousel3D, Carousel3DCard, Carousel3DCardContent, Carousel3DCardDescription, Carousel3DCardImage, Carousel3DCardTitle, CenteredLogoNavigationBar, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChatMessageComponent as ChatMessage, Checkbox2 as Checkbox, CheckboxGroup2 as CheckboxGroup, Choicebox, CloseButton, CodeBlock, CodeCompare, CodeDiff, CodeEditor, CodeExplorer, CodePreview, CodeSnippet, CodeTabs, CodeTerminal, CollaborationNavigationBar, CollapsibleDetails, CollapsibleList, ColorModeProvider, ColorPicker, Combobox, CommunicationNavigationBar, Comparison, ContextSwitcherNavigationBar, CreditCard, Cursor, CustomInstructions, DEFAULT_ORG, DashboardNavigationBar, DialogActionTrigger, DialogBackdrop, DialogBody, DialogCloseTrigger, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogRoot, DialogStack, DialogTitle, DialogTrigger, DirectionProvider, Dock, DockItem, DrawerActionTrigger, DrawerBody, DrawerCloseTrigger, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerRoot, DrawerTitle, DrawerTrigger, Dropzone, ECommerceNavigationBar, Editor3 as Editor, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyState, EmptyTitle, ExpirationSelector, Field, Gantt, GreeksDisplay, Grid3D, Grid3DAuto, Grid3DCard, Grid3DPreset, GridPattern, GridPatternPresets, Heading, HeartbeatPulse, IAM_PAGE_SIZE, IPhone15Pro, IamError, IconButton, IconNavigationBar, IdentityProvider, Image2 as Image, ImageCrop, ImageZoom, InlineCode, Input, InputGroup, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, KanbanBoard, Kbd, KbdGroup, LUX_BRAND, LanguageSelector, LimelightNav, LimelightNavNavigationBar, Link, LinkBox, LinkExternalIcon, LinkOverlay, List2 as List, ListItem, LoadingBar, Magnetic, Marquee, Marquee3D, Marquee3DFloating, Marquee3DPreset, MenuArrow, MenuCheckboxItem, MenuContent, MenuDock, MenuItem, MenuItemGroup, MenuItemText, MenuRadioItem, MenuRadioItemGroup, MenuRoot, MenuSeparator, MenuTrigger, MenuTriggerItem, Menubar, MenubarMenu, MenubarTrigger, MessageDock, MiniCalendar, MinimalTiptap, ModelViewer3D, ModelViewer3DPreset, MotionHighlight, MusicPlayer, NARROW_PX, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NoiseCancellationToggle, OptionChain, OptionPositionCard, OrderEntry, OrdersHistory, OrgSwitcher, PARS_GOLD, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, ParticlesBackground2 as ParticlesBackground, PersonalitySelector, Pill, Pin3D, PinInput, PitchControl, PixelImage, PnlDiagram, PopoverArrow, PopoverBody, PopoverCloseTrigger, PopoverCloseTriggerWrapper, PopoverContent, PopoverDescription, PopoverFooter, PopoverHeader, PopoverRoot, PopoverTitle, PopoverTrigger, PositionsList, Progress, ProgressCircleRing, ProgressCircleRoot, ProgressCircleValueText, ProjectSwitcher, PulseAnimation, PulseDot, PulsePresets, QRCode, Radio2 as Radio, RadioGroup2 as RadioGroup, Rating, RelativeTime, ResizableHandle, ResizablePanel, ResizablePanelGroup, RevealAnimation, RevealGroup, RevealPresets, Safari, Sandbox, Scene3D, Scene3DPreset, ScrollReveal, SearchAndToggleNavigationBar, Select, SelectAsync, SelectClearTrigger, SelectContent, SelectControl, SelectItem, SelectItemGroup, SelectItemText, SelectLabel, SelectRoot, SelectValueText, Separator, SettingsMenu, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, SimpleNavigationBar, Skeleton, SkeletonCircle, SkeletonText, Slider, SpeedControl, Status, StatusDashboardNavigationBar, StrategyBuilder, Switch2 as Switch, Switcher, TOUCH_PX, TableBody, TableCaption, TableCell, TableColumnHeader, TableColumnHeaderSortable, TableFooter, TableHeader, TableHeaderSticky, TableRoot, TableRow, TableScrollWrapper, TabsContent, TabsCounter, TabsList, TabsRoot, TabsTrigger, Tag, Tags, TeamSwitcherNavigationBar, Terminal3 as Terminal, Text3D, Text3DAnimated, Text3DFloating, Text3DPreset, Textarea, Ticker, Timeline, Toaster, Toggle, Tooltip, TradingPanel, TwoTierNavigationBar, TypingIndicator, UnderlineNavigationBar, UserMenu, VoiceSelector, WakeWordInput, YouTubePipPlayer, bankColors, config, createListCollection, currentHost, lux_config_default as guiConfig, iam, iamBase, initials, luxThemes, orgIdentity, ORGS as orgs, resolveWhiteLabel, toaster, useAccordion, useBelow, useColorMode, useColorModeValue, useIdentity, useIsNarrow, useIsTouch, useWhiteLabel };
|
|
38321
|
+
export { AIActions, AIAgents, AIAssistant, AIChat, AICode, AIModelSelectorNavigationBar, AIModels, AIPlayground, AITools, AIVision, AIVoice, AIVoiceSettings, AI_MODELS, access_code_input_default as AccessCodeInput, AccordionItem, AccordionItemContent, AccordionItemTrigger, AccordionRoot, AdvancedNavigationBar, Alert, Analytics, Android, AnimatedBackground, AnimatedBackgroundPresets, AnimatedBeam, AnimatedCounter, AnimatedCursor, AnimatedIcon, AnimatedIconPresets, AnimatedList, AnimatedListPresets, AnimatedNumber, AnimatedTestimonials, AnimatedText, AnimatedTooltip, Announcement, AppNav, AppProvider, AppSwitcherNavigationBar, AppleCardsCarousel, AppleHelloEffect, AttachmentPreview, AuthCallback, AuthProvider, AutoListenToggle, Avatar, AvatarGroup, back_button_default as BackButton, Badge, BankAlert, BankAlertText, BankButton, BankButtonText, BankCard, BankDivider, BankField, BankHeading, BankInput, BankPage, BankPinBox, BankText, Banner, BreadcrumbAndFiltersNavigationBar, BreadcrumbNavigationBar, BreathingPulse, Button, Button3D, Button3DLoading, Button3DPreset, ButtonGroup, ButtonGroupRadio, buy_button_default as BuyButton, drawer_default as BuyDrawer, CALLBACK_PATH, Calendar, Card3D, Card3DContent, Card3DDescription, Card3DFooter, Card3DHeader, Card3DTitle, Carousel3D, Carousel3DCard, Carousel3DCardContent, Carousel3DCardDescription, Carousel3DCardImage, Carousel3DCardTitle, CenteredLogoNavigationBar, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChatMessageComponent as ChatMessage, chat_widget_default as ChatWidget, Checkbox2 as Checkbox, CheckboxGroup2 as CheckboxGroup, checkout_button_default as CheckoutButton, checkout_panel_default as CheckoutPanel, Choicebox, CloseButton, CodeBlock, CodeCompare, CodeDiff, CodeEditor, CodeExplorer, CodePreview, CodeSnippet, CodeTabs, CodeTerminal, CollaborationNavigationBar, CollapsibleDetails, CollapsibleList, ColorModeProvider, ColorPicker, Combobox, CommunicationNavigationBar, Comparison, contact_dialog_default as ContactDialog, ContextSwitcherNavigationBar, copyright_default as Copyright, CreditCard, Cursor, CustomInstructions, DEFAULT_ORG, DashboardNavigationBar, DialogActionTrigger, DialogBackdrop, DialogBody, DialogCloseTrigger, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogRoot, DialogStack, DialogTitle, DialogTrigger, DirectionProvider, Dock, DockItem, DrawerActionTrigger, DrawerBody, DrawerCloseTrigger, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, drawer_margin_default as DrawerMargin, DrawerRoot, DrawerTitle, DrawerTrigger, Dropzone, ECommerceNavigationBar, Editor3 as Editor, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyState, EmptyTitle, ExpirationSelector, Field, footer_default as Footer, Gantt, GreeksDisplay, Grid3D, Grid3DAuto, Grid3DCard, Grid3DPreset, GridPattern, GridPatternPresets, header_default as Header, Heading, HeartbeatPulse, IAM_PAGE_SIZE, IPhone15Pro, IamError, IconButton, IconNavigationBar, IdentityProvider, Image2 as Image, ImageCrop, ImageZoom, InlineCode, Input, InputGroup, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, KanbanBoard, Kbd, KbdGroup, LUX_BRAND, LanguageSelector, LimelightNav, LimelightNavNavigationBar, Link, LinkBox, LinkExternalIcon, LinkOverlay, List2 as List, ListItem, LoadingBar, login_default as Login, login_panel_default as LoginPanel, Logo, Magnetic, main_default as Main, Marquee, Marquee3D, Marquee3DFloating, Marquee3DPreset, MenuArrow, MenuCheckboxItem, MenuContent, MenuDock, MenuItem, MenuItemGroup, MenuItemText, MenuRadioItem, MenuRadioItemGroup, MenuRoot, MenuSeparator, MenuTrigger, MenuTriggerItem, Menubar, MenubarMenu, MenubarTrigger, MessageDock, MiniCalendar, wrapper_default as MiniChart, MinimalTiptap, ModelViewer3D, ModelViewer3DPreset, MotionHighlight, MusicPlayer, NARROW_PX, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NoiseCancellationToggle, not_found_default as NotFound, OptionChain, OptionPositionCard, OrderEntry, OrdersHistory, OrgSwitcher, PARS_GOLD, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, ParticlesBackground2 as ParticlesBackground, PersonalitySelector, Pill, Pin3D, PinInput, PitchControl, PixelImage, PnlDiagram, PopoverArrow, PopoverBody, PopoverCloseTrigger, PopoverCloseTriggerWrapper, PopoverContent, PopoverDescription, PopoverFooter, PopoverHeader, PopoverRoot, PopoverTitle, PopoverTrigger, PositionsList, Progress, ProgressCircleRing, ProgressCircleRoot, ProgressCircleValueText, ProjectSwitcher, PulseAnimation, PulseDot, PulsePresets, QRCode, Radio2 as Radio, RadioGroup2 as RadioGroup, Rating, RelativeTime, ResizableHandle, ResizablePanel, ResizablePanelGroup, RevealAnimation, RevealGroup, RevealPresets, Safari, Sandbox, Scene3D, Scene3DPreset, ScrollReveal, SearchAndToggleNavigationBar, Select, SelectAsync, SelectClearTrigger, SelectContent, SelectControl, SelectItem, SelectItemGroup, SelectItemText, SelectLabel, SelectRoot, SelectValueText, Separator, SettingsMenu, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, SimpleNavigationBar, Skeleton, SkeletonCircle, SkeletonText, Slider, SpeedControl, Status, StatusDashboardNavigationBar, StrategyBuilder, Switch2 as Switch, Switcher, TOUCH_PX, TableBody, TableCaption, TableCell, TableColumnHeader, TableColumnHeaderSortable, TableFooter, TableHeader, TableHeaderSticky, TableRoot, TableRow, TableScrollWrapper, TabsContent, TabsCounter, TabsList, TabsRoot, TabsTrigger, Tag, Tags, TeamSwitcherNavigationBar, Terminal3 as Terminal, Text3D, Text3DAnimated, Text3DFloating, Text3DPreset, Textarea, Ticker, Timeline, Toaster, Toggle, Tooltip, TradingPanel, TwoTierNavigationBar, TypingIndicator, UnderlineNavigationBar, UserMenu, VoiceSelector, WakeWordInput, YouTubePipPlayer, bankColors, config, createListCollection, currentHost, lux_config_default as guiConfig, iam, iamBase, initials, luxThemes, orgIdentity, ORGS as orgs, resolveWhiteLabel, toaster, useAccordion, useBelow, useColorMode, useColorModeValue, useIdentity, useIsNarrow, useIsTouch, useWhiteLabel };
|