@luxfi/ui 8.2.7 → 8.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/dist/3d-model-viewer.cjs +25 -421
  2. package/dist/3d-model-viewer.js +20 -416
  3. package/dist/accordion.cjs +3 -10
  4. package/dist/accordion.js +2 -10
  5. package/dist/advanced-navigation-bar.cjs +5 -401
  6. package/dist/advanced-navigation-bar.js +5 -401
  7. package/dist/ai-agents.cjs +45 -890
  8. package/dist/ai-agents.js +8 -834
  9. package/dist/ai-assistant.cjs +13 -740
  10. package/dist/ai-assistant.js +10 -738
  11. package/dist/ai-chat.cjs +24 -770
  12. package/dist/ai-chat.js +18 -765
  13. package/dist/ai-code.cjs +67 -923
  14. package/dist/ai-code.js +49 -905
  15. package/dist/ai-playground.cjs +25 -801
  16. package/dist/ai-playground.js +18 -795
  17. package/dist/ai-tools.cjs +22 -767
  18. package/dist/ai-tools.js +15 -761
  19. package/dist/ai-vision.cjs +41 -993
  20. package/dist/ai-vision.js +30 -983
  21. package/dist/ai-voice-settings.cjs +35 -1006
  22. package/dist/ai-voice-settings.js +32 -1004
  23. package/dist/ai-voice.cjs +51 -1024
  24. package/dist/ai-voice.js +9 -963
  25. package/dist/alert.cjs +11 -129
  26. package/dist/alert.js +8 -127
  27. package/dist/announcement.cjs +6 -402
  28. package/dist/announcement.js +6 -402
  29. package/dist/app-switcher-navigation-bar.cjs +5 -401
  30. package/dist/app-switcher-navigation-bar.js +5 -401
  31. package/dist/apple-cards-carousel.cjs +84 -480
  32. package/dist/apple-cards-carousel.js +19 -415
  33. package/dist/auth.cjs +10 -387
  34. package/dist/auth.js +7 -385
  35. package/dist/avatar.cjs +2 -9
  36. package/dist/avatar.js +2 -10
  37. package/dist/badge.cjs +8 -228
  38. package/dist/badge.js +5 -210
  39. package/dist/button.cjs +14 -67
  40. package/dist/button.js +12 -65
  41. package/dist/chrome.cjs +29 -493
  42. package/dist/chrome.js +9 -474
  43. package/dist/code-block.cjs +16 -664
  44. package/dist/code-block.js +13 -662
  45. package/dist/code-compare.cjs +28 -1302
  46. package/dist/code-compare.js +18 -1293
  47. package/dist/code-diff.cjs +21 -669
  48. package/dist/code-diff.js +17 -666
  49. package/dist/code-editor.cjs +13 -409
  50. package/dist/code-editor.js +12 -408
  51. package/dist/code-explorer.cjs +14 -456
  52. package/dist/code-explorer.js +13 -456
  53. package/dist/code-preview.cjs +31 -983
  54. package/dist/code-preview.js +23 -976
  55. package/dist/code-snippet.cjs +19 -667
  56. package/dist/code-snippet.js +14 -663
  57. package/dist/code-terminal.cjs +24 -485
  58. package/dist/code-terminal.js +19 -481
  59. package/dist/collapsible.cjs +13 -347
  60. package/dist/collapsible.js +11 -330
  61. package/dist/color-picker.cjs +8 -450
  62. package/dist/color-picker.js +7 -450
  63. package/dist/combobox.cjs +6 -402
  64. package/dist/combobox.js +6 -402
  65. package/dist/communication-navigation-bar.cjs +7 -403
  66. package/dist/communication-navigation-bar.js +5 -401
  67. package/dist/dashboard-navigation-bar.cjs +6 -402
  68. package/dist/dashboard-navigation-bar.js +5 -401
  69. package/dist/dialog-stack.cjs +5 -401
  70. package/dist/dialog-stack.js +5 -401
  71. package/dist/dialog.cjs +13 -70
  72. package/dist/dialog.js +13 -70
  73. package/dist/drawer.cjs +23 -99
  74. package/dist/drawer.js +19 -96
  75. package/dist/e-commerce-navigation-bar.cjs +7 -403
  76. package/dist/e-commerce-navigation-bar.js +5 -401
  77. package/dist/editor.cjs +9 -405
  78. package/dist/editor.js +6 -402
  79. package/dist/iam.cjs +2 -123
  80. package/dist/iam.js +1 -122
  81. package/dist/icon-button.cjs +2 -56
  82. package/dist/icon-button.js +1 -55
  83. package/dist/identity.cjs +28 -242
  84. package/dist/identity.js +20 -235
  85. package/dist/image-crop.cjs +10 -406
  86. package/dist/image-crop.js +7 -403
  87. package/dist/image.cjs +14 -83
  88. package/dist/image.js +13 -67
  89. package/dist/index.cjs +1868 -38770
  90. package/dist/index.js +174 -38320
  91. package/dist/input-group.cjs +3 -10
  92. package/dist/input-group.js +2 -10
  93. package/dist/item.cjs +2 -27
  94. package/dist/item.js +1 -22
  95. package/dist/kanban.cjs +25 -751
  96. package/dist/kanban.js +15 -742
  97. package/dist/limelight-nav.cjs +10 -452
  98. package/dist/limelight-nav.js +9 -452
  99. package/dist/link.cjs +11 -80
  100. package/dist/link.js +6 -60
  101. package/dist/lux.config.cjs +14 -32
  102. package/dist/lux.config.js +3 -26
  103. package/dist/menu.cjs +5 -13
  104. package/dist/menu.js +1 -9
  105. package/dist/message-dock.cjs +5 -401
  106. package/dist/message-dock.js +5 -401
  107. package/dist/mini-calendar.cjs +7 -403
  108. package/dist/mini-calendar.js +6 -402
  109. package/dist/music-player.cjs +30 -528
  110. package/dist/music-player.js +22 -520
  111. package/dist/next.cjs +8 -89
  112. package/dist/next.js +3 -86
  113. package/dist/popover.cjs +17 -74
  114. package/dist/popover.js +16 -73
  115. package/dist/progress-circle.cjs +3 -10
  116. package/dist/progress-circle.js +2 -10
  117. package/dist/provider.cjs +7 -176
  118. package/dist/provider.js +4 -174
  119. package/dist/select.cjs +36 -89
  120. package/dist/select.js +35 -88
  121. package/dist/sidebar.cjs +22 -493
  122. package/dist/sidebar.js +17 -489
  123. package/dist/site/commerce/ui/context.cjs +9 -214
  124. package/dist/site/commerce/ui/context.js +6 -215
  125. package/dist/site/components/analytics.cjs +2 -42
  126. package/dist/site/components/analytics.js +1 -37
  127. package/dist/site/components/auth/callback.cjs +2 -8
  128. package/dist/site/components/auth/callback.js +1 -7
  129. package/dist/site/components/auth/login-panel.cjs +15 -74
  130. package/dist/site/components/auth/login-panel.js +12 -73
  131. package/dist/site/components/auth/login.cjs +2 -6
  132. package/dist/site/components/auth/login.js +1 -5
  133. package/dist/site/components/auth/widget.cjs +2 -6
  134. package/dist/site/components/auth/widget.js +1 -5
  135. package/dist/site/components/commerce/bag-button.cjs +2 -3
  136. package/dist/site/components/commerce/bag-button.js +2 -3
  137. package/dist/site/components/commerce/buy-button.cjs +2 -11
  138. package/dist/site/components/commerce/buy-button.js +1 -10
  139. package/dist/site/components/commerce/checkout-button.cjs +2 -3
  140. package/dist/site/components/commerce/checkout-button.js +2 -3
  141. package/dist/site/components/commerce/checkout-panel/desktop-cp.cjs +15 -173
  142. package/dist/site/components/commerce/checkout-panel/desktop-cp.js +14 -174
  143. package/dist/site/components/commerce/checkout-panel/index.cjs +9 -400
  144. package/dist/site/components/commerce/checkout-panel/index.js +10 -403
  145. package/dist/site/components/commerce/checkout-panel/mobile-cp.cjs +15 -236
  146. package/dist/site/components/commerce/checkout-panel/mobile-cp.js +13 -237
  147. package/dist/site/components/commerce/desktop-bag-popup.cjs +7 -8
  148. package/dist/site/components/commerce/desktop-bag-popup.js +3 -8
  149. package/dist/site/components/commerce/drawer/index.cjs +15 -289
  150. package/dist/site/components/commerce/drawer/index.js +10 -290
  151. package/dist/site/components/commerce/drawer/micro.cjs +8 -115
  152. package/dist/site/components/commerce/drawer/micro.js +4 -115
  153. package/dist/site/components/commerce/drawer/shell.cjs +2 -10
  154. package/dist/site/components/commerce/drawer/shell.js +2 -10
  155. package/dist/site/components/contact-dialog/index.cjs +6 -69
  156. package/dist/site/components/contact-dialog/index.js +7 -71
  157. package/dist/site/components/drawer-margin.cjs +2 -10
  158. package/dist/site/components/drawer-margin.js +2 -10
  159. package/dist/site/components/footer.cjs +11 -81
  160. package/dist/site/components/footer.js +8 -80
  161. package/dist/site/components/header/desktop.cjs +18 -374
  162. package/dist/site/components/header/desktop.js +12 -355
  163. package/dist/site/components/header/index.cjs +9 -674
  164. package/dist/site/components/header/index.js +8 -657
  165. package/dist/site/components/header/mobile-bag-drawer.cjs +6 -71
  166. package/dist/site/components/header/mobile-bag-drawer.js +5 -74
  167. package/dist/site/components/header/mobile-nav-menu-ai.cjs +2 -31
  168. package/dist/site/components/header/mobile-nav-menu-ai.js +1 -26
  169. package/dist/site/components/header/mobile-nav-menu-item.cjs +6 -60
  170. package/dist/site/components/header/mobile-nav-menu-item.js +6 -61
  171. package/dist/site/components/header/mobile-nav-menu.cjs +7 -110
  172. package/dist/site/components/header/mobile-nav-menu.js +7 -112
  173. package/dist/site/components/header/mobile.cjs +25 -330
  174. package/dist/site/components/header/mobile.js +20 -330
  175. package/dist/site/components/icons/index.cjs +34 -35
  176. package/dist/site/components/icons/index.js +5 -33
  177. package/dist/site/components/index.cjs +118 -1961
  178. package/dist/site/components/index.js +23 -1951
  179. package/dist/site/components/mini-chart/index.cjs +7 -90
  180. package/dist/site/components/mini-chart/index.js +1 -92
  181. package/dist/site/components/mini-chart/wrapper.cjs +7 -76
  182. package/dist/site/components/mini-chart/wrapper.js +4 -77
  183. package/dist/site/components/not-found/index.cjs +9 -819
  184. package/dist/site/components/not-found/index.js +8 -802
  185. package/dist/site/components/security/index.cjs +9 -819
  186. package/dist/site/components/security/index.js +8 -802
  187. package/dist/site/next/analytics/index.cjs +16 -49
  188. package/dist/site/next/analytics/index.js +3 -49
  189. package/dist/site/next/analytics/pixel-analytics.cjs +23 -8
  190. package/dist/site/next/analytics/pixel-analytics.js +4 -8
  191. package/dist/site/next/index.cjs +13 -140
  192. package/dist/site/next/index.js +2 -140
  193. package/dist/site/root-layout/index.cjs +12 -1435
  194. package/dist/site/root-layout/index.css +0 -133
  195. package/dist/site/root-layout/index.js +12 -1416
  196. package/dist/site/site-def/footer/community.cjs +11 -27
  197. package/dist/site/site-def/footer/community.js +2 -18
  198. package/dist/site/site-def/footer/company.d.ts +3 -3
  199. package/dist/site/site-def/footer/index.cjs +38 -218
  200. package/dist/site/site-def/footer/index.js +14 -215
  201. package/dist/site/site-def/index.cjs +28 -620
  202. package/dist/site/site-def/index.js +3 -624
  203. package/dist/table.cjs +20 -338
  204. package/dist/table.js +19 -338
  205. package/dist/tabs.cjs +3 -10
  206. package/dist/tabs.js +1 -9
  207. package/dist/tag.cjs +9 -270
  208. package/dist/tag.js +6 -268
  209. package/dist/tags.cjs +6 -314
  210. package/dist/tags.js +5 -314
  211. package/dist/textarea.cjs +4 -50
  212. package/dist/textarea.js +3 -49
  213. package/dist/tooltip.cjs +15 -34
  214. package/dist/tooltip.js +13 -33
  215. package/dist/vite.cjs +3 -82
  216. package/dist/vite.js +1 -80
  217. package/package.json +1 -1
  218. package/dist/index.css +0 -132
  219. package/dist/site/components/auth/login-panel.css +0 -4
  220. package/dist/site/components/commerce/bag-button.css +0 -4
  221. package/dist/site/components/commerce/checkout-button.css +0 -4
  222. package/dist/site/components/commerce/checkout-panel/desktop-cp.css +0 -132
  223. package/dist/site/components/commerce/checkout-panel/index.css +0 -132
  224. package/dist/site/components/commerce/checkout-panel/mobile-cp.css +0 -132
  225. package/dist/site/components/commerce/desktop-bag-popup.css +0 -4
  226. package/dist/site/components/commerce/drawer/index.css +0 -132
  227. package/dist/site/components/commerce/drawer/micro.css +0 -4
  228. package/dist/site/components/header/desktop.css +0 -4
  229. package/dist/site/components/header/index.css +0 -132
  230. package/dist/site/components/header/mobile-bag-drawer.css +0 -4
  231. package/dist/site/components/header/mobile-nav-menu-ai.css +0 -132
  232. package/dist/site/components/header/mobile-nav-menu-item.css +0 -132
  233. package/dist/site/components/header/mobile-nav-menu.css +0 -132
  234. package/dist/site/components/header/mobile.css +0 -132
  235. package/dist/site/components/icons/index.css +0 -4
  236. package/dist/site/components/index.css +0 -132
  237. package/dist/site/components/not-found/index.css +0 -132
  238. package/dist/site/components/security/index.css +0 -132
  239. package/dist/site/site-def/footer/community.css +0 -4
  240. package/dist/site/site-def/footer/index.css +0 -4
  241. package/dist/site/site-def/index.css +0 -4
@@ -1,356 +1,13 @@
1
1
  'use client';
2
- import * as React4 from 'react';
3
- import React4__default, { useRef, useEffect, useState, useContext } from 'react';
4
- import { Box, cn, css } from '@hanzo/ui';
5
- import { buttonVariants, NavigationMenuLink, NavigationMenu, NavigationMenuList, NavigationMenuItem, navigationMenuTriggerStyle, NavigationMenuTrigger, NavigationMenuContent, Popover, PopoverTrigger, PopoverContent, PopoverClose, Button, Separator } from '@hanzo/ui/primitives';
6
- import { IamContext, useIam, useIamIdentity } from '@hanzo/iam/react';
7
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
- import Link2 from 'next/link';
9
- import { Logo as Logo$1, Wordmark } from '@luxfi/logo';
10
- import { useRouter } from 'next/navigation';
11
- import { X } from 'lucide-react';
12
- import { useCommerce, CartPanel } from '@hanzo/commerce';
13
- import { observable, reaction, runInAction } from 'mobx';
14
- import { observer } from 'mobx-react-lite';
2
+ import React from 'react';
3
+ import { Box, cn } from '@hanzo/ui';
4
+ import AuthWidget from '../auth/widget.js';
5
+ import Logo from '../logo.js';
6
+ import DesktopBagPopup from '../commerce/desktop-bag-popup.js';
7
+ import BagButton from '../commerce/bag-button.js';
8
+ import DesktopNav from './desktop-nav-menu.js';
9
+ import { jsx, jsxs } from 'react/jsx-runtime';
15
10
 
16
- // src/site/components/auth/resume.ts
17
- var KEY = "lux-auth-resume";
18
- var remember = () => {
19
- sessionStorage.setItem(KEY, window.location.pathname + window.location.search);
20
- };
21
- var Widget = ({
22
- noLogin = false,
23
- handleLogin,
24
- className
25
- }) => {
26
- const { isAuthenticated, isLoading, login, logout } = useIam();
27
- const identity = useIamIdentity();
28
- if (isLoading) {
29
- return null;
30
- }
31
- if (!isAuthenticated) {
32
- return noLogin ? null : /* @__PURE__ */ jsx(
33
- Button,
34
- {
35
- variant: "primary",
36
- className: cn("h-8 w-fit !min-w-0", className),
37
- onClick: handleLogin ?? (() => {
38
- remember();
39
- void login();
40
- }),
41
- children: "Login"
42
- }
43
- );
44
- }
45
- return /* @__PURE__ */ jsxs(Popover, { children: [
46
- /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
47
- Button,
48
- {
49
- variant: "outline",
50
- size: "icon",
51
- 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", className),
52
- children: identity?.initials
53
- }
54
- ) }),
55
- /* @__PURE__ */ jsx(PopoverContent, { className: "bg-level-0", children: /* @__PURE__ */ jsxs("div", { className: "grid gap-4", children: [
56
- /* @__PURE__ */ jsxs("div", { className: "space-y-2 truncate", children: [
57
- /* @__PURE__ */ jsx("h4", { className: "font-medium leading-none truncate", children: identity?.name }),
58
- identity?.email && identity.email !== identity.name && /* @__PURE__ */ jsx("p", { className: "text-sm opacity-50 truncate", children: identity.email })
59
- ] }),
60
- /* @__PURE__ */ jsx(Separator, {}),
61
- /* @__PURE__ */ jsx(Button, { variant: "outline", onClick: () => {
62
- logout();
63
- }, children: "Logout" })
64
- ] }) })
65
- ] });
66
- };
67
- var AuthWidget = (props) => useContext(IamContext) ? /* @__PURE__ */ jsx(Widget, { ...props }) : null;
68
- var widget_default = AuthWidget;
69
- var SIZE = {
70
- xl: { mark: 40, word: 22, gap: "gap-4" },
71
- lg: { mark: 40, word: 22, gap: "gap-4" },
72
- md: { mark: 32, word: 18, gap: "gap-3" },
73
- sm: { mark: 24, word: 13, gap: "gap-2" },
74
- xs: { mark: 16, word: 9, gap: "gap-1.5" }
75
- };
76
- var Logo = ({
77
- size = "md",
78
- href,
79
- // no default please!
80
- outerClx = "",
81
- variant = "full",
82
- onClick
83
- }) => {
84
- const s = SIZE[size] ?? SIZE.md;
85
- const clx = "flex flex-row items-center " + s.gap + " " + (href ? "hover:opacity-80 cursor-pointer " : "cursor-default ") + outerClx;
86
- const art = /* @__PURE__ */ jsxs(Fragment, { children: [
87
- variant !== "wordmark" && /* @__PURE__ */ jsx(Logo$1, { variant: "white", size: s.mark }),
88
- variant !== "mark" && /* @__PURE__ */ jsx(Wordmark, { height: s.word })
89
- ] });
90
- return href ? /* @__PURE__ */ jsx(Link2, { href, style: css(clx), onClick, children: art }) : /* @__PURE__ */ jsx(Box, { tag: "span", className: clx, onClick, children: art });
91
- };
92
- var BagIcon = (props) => /* @__PURE__ */ jsx("svg", { fill: "none", viewBox: "0 0 1019 1281", ...props, children: /* @__PURE__ */ jsx("path", { d: "m977.243 365.553h-175.407v-90.629c0-151.923-131.968-274.924-292.334-274.924-160.367 0-292.337 123.002-292.337 274.924v90.629h-175.4023c-23.3886 0-41.7627 17.051-41.7627 38.756v775.121c0 55.8 48.4456 100.76 108.582 100.76h801.84c60.138 0 108.578-44.96 108.578-100.76v-775.121c0-21.705-18.37-38.756-41.757-38.756zm-676.553-90.629c0-108.517 93.546-196.9408 208.812-196.9408 115.265 0 208.813 88.4218 208.813 196.9408v89.08h-417.625z", fill: "currentColor" }) });
93
- var bag_icon_default = BagIcon;
94
-
95
- // src/site/next/analytics/google-analytics.ts
96
- var sendGAEvent = (name, options = {}) => {
97
- window.gtag("event", name, options);
98
- };
99
- var DesktopBagPopup = ({
100
- triggerClx = "",
101
- popupClx = "",
102
- trigger
103
- }) => {
104
- const cmmc = useCommerce();
105
- const [bagOpen, setBagOpen] = useState(false);
106
- const router = useRouter();
107
- useEffect(() => {
108
- if (bagOpen) {
109
- sendGAEvent("view_cart", {
110
- items: cmmc.cartItems.map((item) => ({
111
- item_id: item.sku,
112
- item_name: item.title,
113
- item_category: item.familyId,
114
- price: item.price,
115
- quantity: item.quantity
116
- })),
117
- value: cmmc.cartTotal,
118
- currency: "USD"
119
- });
120
- }
121
- }, [bagOpen]);
122
- return /* @__PURE__ */ jsxs(Popover, { open: bagOpen, onOpenChange: setBagOpen, children: [
123
- /* @__PURE__ */ jsx(PopoverTrigger, { className: triggerClx, children: trigger }),
124
- /* @__PURE__ */ jsxs(PopoverContent, { sideOffset: 28, className: cn("relative flex flex-col p-0 px-4 pb-4 pt-2", popupClx), children: [
125
- /* @__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" }) }),
126
- /* @__PURE__ */ jsxs(
127
- CartPanel,
128
- {
129
- handleCheckout: () => {
130
- router.push("/checkout");
131
- },
132
- className: "mt-4 mb-4 border-none py-0 px-4",
133
- listClx: "rounded-sm pr-3",
134
- scrollAfter: 5,
135
- scrollHeightClx: "h-[70vh]",
136
- itemClx: "mt-3",
137
- totalClx: "sticky px-1 pr-2 -bottom-[1px] bg-level-1",
138
- buttonClx: "max-w-[220px] flex-none",
139
- children: [
140
- /* @__PURE__ */ jsxs("div", { className: "flex flex-row items-center flex-none justify-center ", children: [
141
- /* @__PURE__ */ jsx(bag_icon_default, { className: "mr-2 relative w-6 h-7 fill-foreground " }),
142
- /* @__PURE__ */ jsx("p", { className: "font-heading text-foreground text-default", children: "Your Bag" })
143
- ] }),
144
- /* @__PURE__ */ jsx("div", { className: "h-[1px] w-pr-80 bg-muted-3 mx-auto mt-1.5 flex-none" })
145
- ]
146
- }
147
- )
148
- ] })
149
- ] });
150
- };
151
- var desktop_bag_popup_default = DesktopBagPopup;
152
- var BagButton = observer(({
153
- showIfEmpty = false,
154
- animateOnHover = true,
155
- animateOnQuantityChange = true,
156
- size = "default",
157
- className = "",
158
- iconClx = "",
159
- onClick
160
- }) => {
161
- const c = useCommerce();
162
- const wiggleRef = useRef(observable.box("none"));
163
- useEffect(() => (
164
- // return IReactionDisposer
165
- animateOnQuantityChange && c ? reaction(
166
- () => c.cartQuantity,
167
- (curr, prev) => {
168
- if (curr > prev) {
169
- runInAction(() => {
170
- wiggleRef.current.set("more");
171
- });
172
- } else {
173
- runInAction(() => {
174
- wiggleRef.current.set("less");
175
- });
176
- }
177
- setTimeout(() => {
178
- runInAction(() => {
179
- wiggleRef.current.set("none");
180
- });
181
- }, 800);
182
- }
183
- ) : void 0
184
- ), []);
185
- if (!c || !showIfEmpty && c.cartEmpty) {
186
- return /* @__PURE__ */ jsx("div", {});
187
- }
188
- return /* @__PURE__ */ jsxs(
189
- Box,
190
- {
191
- "aria-label": "Bag",
192
- role: "button",
193
- onClick,
194
- className: cn(
195
- buttonVariants({ variant: "ghost", size }),
196
- "rounded-md",
197
- // Overides the bg change on hover --not a "hover effect"
198
- "relative group p-0 aspect-square hover:bg-background",
199
- wiggleRef.current.get() === "more" ? "item-added-to-cart-animation" : wiggleRef.current.get() === "less" ? "item-removed-from-cart-animation" : "",
200
- className
201
- ),
202
- children: [
203
- !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: [
204
- /* @__PURE__ */ jsx("div", { className: "h-[3px] w-full" }),
205
- /* @__PURE__ */ jsx("div", { children: c.cartQuantity })
206
- ] }),
207
- /* @__PURE__ */ jsx(bag_icon_default, { width: "24", height: "28", className: cn(
208
- "relative -top-[3px] fill-primary",
209
- iconClx,
210
- animateOnHover ? "group-hover:fill-primary-hover group-hover:scale-105 transition-scale transition-duration-300" : ""
211
- ), "aria-hidden": "true" })
212
- ]
213
- }
214
- );
215
- });
216
- var bag_button_default = BagButton;
217
- var DesktopNav = ({ links, isMenuOpened, setIsMenuOpen }) => {
218
- React4.useEffect(() => {
219
- const preventScroll = (e) => {
220
- e.preventDefault();
221
- };
222
- if (isMenuOpened) {
223
- window.addEventListener("wheel", preventScroll, { passive: false });
224
- window.addEventListener("touchmove", preventScroll, { passive: false });
225
- window.addEventListener("keydown", preventScrollKeys, { passive: false });
226
- } else {
227
- window.removeEventListener("wheel", preventScroll);
228
- window.removeEventListener("touchmove", preventScroll);
229
- window.removeEventListener("keydown", preventScrollKeys);
230
- }
231
- return () => {
232
- window.removeEventListener("wheel", preventScroll);
233
- window.removeEventListener("touchmove", preventScroll);
234
- window.removeEventListener("keydown", preventScrollKeys);
235
- };
236
- }, [isMenuOpened]);
237
- const preventScrollKeys = (e) => {
238
- if (["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight", " "].includes(e.key)) {
239
- e.preventDefault();
240
- }
241
- };
242
- const handleMouseEnter = React4.useCallback(() => {
243
- setIsMenuOpen(true);
244
- }, [setIsMenuOpen]);
245
- const handleMouseLeave = React4.useCallback(() => {
246
- setIsMenuOpen(false);
247
- }, [setIsMenuOpen]);
248
- const handleContentMouseMove = () => {
249
- setIsMenuOpen(false);
250
- };
251
- const menuHiddenClass = !isMenuOpened ? "invisible" : "";
252
- return links.length > 0 ? /* @__PURE__ */ jsx(NavigationMenu, { children: /* @__PURE__ */ jsx(NavigationMenuList, { children: links.map((el, index) => /* @__PURE__ */ jsx(NavigationMenuItem, { className: "!m-0", children: el.isAIMenu ? /* @__PURE__ */ jsx(Link2, { href: el.href, style: css(cn(navigationMenuTriggerStyle(), " text-muted-1 bg-transparent")), children: el.title }) : el.title === "Cards" ? /* @__PURE__ */ jsxs(Fragment, { children: [
253
- /* @__PURE__ */ jsx(
254
- NavigationMenuTrigger,
255
- {
256
- className: "text-muted-1 bg-transparent",
257
- onMouseEnter: handleMouseEnter,
258
- onFocus: handleMouseEnter,
259
- onMouseLeave: handleMouseLeave,
260
- onBlur: handleMouseLeave,
261
- children: /* @__PURE__ */ jsx(Link2, { href: el.href, children: el.title })
262
- }
263
- ),
264
- /* @__PURE__ */ jsx(
265
- NavigationMenuContent,
266
- {
267
- className: cn("fixed left-0 top-14 pt-6 w-screen h-full border-0 !backdrop-blur-3xl bg-transparent mt-0", menuHiddenClass),
268
- onMouseEnter: handleMouseEnter,
269
- onMouseLeave: handleMouseLeave,
270
- children: /* @__PURE__ */ jsx("div", { className: "flex justify-center items-start", children: /* @__PURE__ */ jsx(
271
- "div",
272
- {
273
- className: "grid xl:grid-cols-3 w-full justify-center max-w-[750px]",
274
- onMouseLeave: handleContentMouseMove,
275
- children: GroupChildMenu({ childs: el.childMenu, isCards: true })
276
- }
277
- ) })
278
- }
279
- )
280
- ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
281
- /* @__PURE__ */ jsx(
282
- NavigationMenuTrigger,
283
- {
284
- className: "text-muted-1 bg-transparent",
285
- onMouseEnter: handleMouseEnter,
286
- onFocus: handleMouseEnter,
287
- onMouseLeave: handleMouseLeave,
288
- onBlur: handleMouseLeave,
289
- children: el.href && el.href !== "" ? /* @__PURE__ */ jsx(Link2, { href: el.href, children: el.title }) : /* @__PURE__ */ jsx(Fragment, { children: el.title })
290
- }
291
- ),
292
- /* @__PURE__ */ jsx(
293
- NavigationMenuContent,
294
- {
295
- className: cn("fixed left-0 top-14 pt-6 w-screen h-full border-0 !backdrop-blur-3xl bg-transparent mt-0", menuHiddenClass),
296
- onMouseEnter: handleMouseEnter,
297
- onMouseLeave: handleMouseLeave,
298
- children: /* @__PURE__ */ jsx(
299
- "div",
300
- {
301
- className: "flex flex-row w-full justify-center",
302
- onMouseLeave: handleContentMouseMove,
303
- children: GroupChildMenu({ childs: el.childMenu })
304
- }
305
- )
306
- }
307
- )
308
- ] }) }, index)) }) }) : null;
309
- };
310
- var desktop_nav_menu_default = DesktopNav;
311
- var ListItem = React4.forwardRef(({ className, title, children, ...props }, ref) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(NavigationMenuLink, { asChild: true, children: /* @__PURE__ */ jsxs(
312
- Box,
313
- {
314
- tag: "a",
315
- ref,
316
- className: cn(
317
- "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",
318
- className
319
- ),
320
- ...props,
321
- children: [
322
- /* @__PURE__ */ jsx("div", { className: "text-sm font-medium leading-none", children: title }),
323
- /* @__PURE__ */ jsx("p", { className: "line-clamp-3 text-sm leading-snug text-muted-1", children })
324
- ]
325
- }
326
- ) }) }, title));
327
- ListItem.displayName = "ListItem";
328
- var GroupChildMenu = (params) => {
329
- const { childs, isCards = false } = params;
330
- if (!childs) {
331
- return null;
332
- }
333
- const groupedChildMenus = childs.reduce((grouped, childLink) => {
334
- if (childLink.groupName) {
335
- grouped[childLink.groupName] = grouped[childLink.groupName] || [];
336
- grouped[childLink.groupName].push(childLink);
337
- }
338
- return grouped;
339
- }, {});
340
- const getChildExtraClass = (index) => {
341
- if (isCards && (index === 3 || index === 4)) {
342
- return "xl:-mt-32";
343
- }
344
- return "";
345
- };
346
- return Object.entries(groupedChildMenus).map(([groupName, childLinks], index) => /* @__PURE__ */ jsxs(Box, { className: cn("py-4 px-4 ", getChildExtraClass(index)), children: [
347
- /* @__PURE__ */ jsx("h2", { className: "text-muted-1", children: groupName }),
348
- /* @__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: [
349
- link.icon,
350
- /* @__PURE__ */ jsx(ListItem, { title: link.title, href: link.href, className: "ml-[14px]", children: link.contents }, link.title)
351
- ] }, link.title)) })
352
- ] }, groupName));
353
- };
354
11
  var DesktopHeader = ({
355
12
  links,
356
13
  className = "",
@@ -359,7 +16,7 @@ var DesktopHeader = ({
359
16
  children,
360
17
  logoVariant = "full"
361
18
  }) => {
362
- const [isMenuOpened, setIsMenuOpen] = React4__default.useState(false);
19
+ const [isMenuOpened, setIsMenuOpen] = React.useState(false);
363
20
  return /* @__PURE__ */ jsx(Box, { tag: "header", id: "DESKTOP_HEADER", className: cn(
364
21
  "bg-[rgba(0, 0, 0, 0.5)] !backdrop-blur-3xl fixed z-header top-0 left-0 right-0",
365
22
  className,
@@ -367,10 +24,10 @@ var DesktopHeader = ({
367
24
  ), children: /* @__PURE__ */ jsxs(Box, { className: "flex flex-row h-[80px] items-center justify-between mx-[24px] w-full max-w-screen", children: [
368
25
  /* @__PURE__ */ jsx(Logo, { size: logoVariant === "mark" ? "lg" : "md", href: "/", outerClx: "hidden lg:flex", variant: logoVariant }, "two"),
369
26
  /* @__PURE__ */ jsx(Logo, { size: "sm", href: "/", outerClx: "hidden md:flex lg:hidden", variant: logoVariant }, "one"),
370
- /* @__PURE__ */ jsx("div", { className: "flex w-full gap-4 items-center justify-center", children: /* @__PURE__ */ jsx(desktop_nav_menu_default, { links, isMenuOpened, setIsMenuOpen }) }),
27
+ /* @__PURE__ */ jsx("div", { className: "flex w-full gap-4 items-center justify-center", children: /* @__PURE__ */ jsx(DesktopNav, { links, isMenuOpened, setIsMenuOpen }) }),
371
28
  /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
372
- !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" }) }),
373
- !noAuth && /* @__PURE__ */ jsx(widget_default, {}),
29
+ !noCommerce && /* @__PURE__ */ jsx(DesktopBagPopup, { popupClx: "w-[340px]", trigger: /* @__PURE__ */ jsx(BagButton, { className: "text-primary -mr-[3px] lg:min-w-0" }) }),
30
+ !noAuth && /* @__PURE__ */ jsx(AuthWidget, {}),
374
31
  children
375
32
  ] })
376
33
  ] }) });