@luxfi/ui 8.2.7 → 8.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) 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 +25 -28
  168. package/dist/site/components/header/mobile-nav-menu-ai.js +24 -27
  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 +48 -330
  174. package/dist/site/components/header/mobile.js +42 -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/index.cjs +38 -218
  199. package/dist/site/site-def/footer/index.js +14 -215
  200. package/dist/site/site-def/index.cjs +28 -620
  201. package/dist/site/site-def/index.js +3 -624
  202. package/dist/table.cjs +20 -338
  203. package/dist/table.js +19 -338
  204. package/dist/tabs.cjs +3 -10
  205. package/dist/tabs.js +1 -9
  206. package/dist/tag.cjs +9 -270
  207. package/dist/tag.js +6 -268
  208. package/dist/tags.cjs +6 -314
  209. package/dist/tags.js +5 -314
  210. package/dist/textarea.cjs +4 -50
  211. package/dist/textarea.js +3 -49
  212. package/dist/tooltip.cjs +15 -34
  213. package/dist/tooltip.js +13 -33
  214. package/dist/vite.cjs +3 -82
  215. package/dist/vite.js +1 -80
  216. package/package.json +1 -1
  217. package/dist/index.css +0 -132
  218. package/dist/site/components/auth/login-panel.css +0 -4
  219. package/dist/site/components/commerce/bag-button.css +0 -4
  220. package/dist/site/components/commerce/checkout-button.css +0 -4
  221. package/dist/site/components/commerce/checkout-panel/desktop-cp.css +0 -132
  222. package/dist/site/components/commerce/checkout-panel/index.css +0 -132
  223. package/dist/site/components/commerce/checkout-panel/mobile-cp.css +0 -132
  224. package/dist/site/components/commerce/desktop-bag-popup.css +0 -4
  225. package/dist/site/components/commerce/drawer/index.css +0 -132
  226. package/dist/site/components/commerce/drawer/micro.css +0 -4
  227. package/dist/site/components/header/desktop.css +0 -4
  228. package/dist/site/components/header/index.css +0 -132
  229. package/dist/site/components/header/mobile-bag-drawer.css +0 -4
  230. package/dist/site/components/header/mobile-nav-menu-ai.css +0 -132
  231. package/dist/site/components/header/mobile-nav-menu-item.css +0 -132
  232. package/dist/site/components/header/mobile-nav-menu.css +0 -132
  233. package/dist/site/components/header/mobile.css +0 -132
  234. package/dist/site/components/icons/index.css +0 -4
  235. package/dist/site/components/index.css +0 -132
  236. package/dist/site/components/not-found/index.css +0 -132
  237. package/dist/site/components/security/index.css +0 -132
  238. package/dist/site/site-def/footer/community.css +0 -4
  239. package/dist/site/site-def/footer/index.css +0 -4
  240. package/dist/site/site-def/index.css +0 -4
@@ -3,178 +3,20 @@
3
3
 
4
4
  var mobxReactLite = require('mobx-react-lite');
5
5
  var primitives = require('@hanzo/ui/primitives');
6
- var react = require('react');
6
+ var AuthWidget = require('../../auth/widget.js');
7
+ var commerce = require('@hanzo/commerce');
7
8
  var ui = require('@hanzo/ui');
8
- var react$1 = require('@hanzo/iam/react');
9
+ var index_js = require('../../index.js');
10
+ var DesktopBagCarousel = require('./desktop-bag-carousel.js');
11
+ var LinksRow = require('./policy-links.js');
9
12
  var jsxRuntime = require('react/jsx-runtime');
10
- var commerce = require('@hanzo/commerce');
11
- var Link2 = require('next/link');
12
- var logo = require('@luxfi/logo');
13
- var navigation = require('next/navigation');
14
- var lucideReact = require('lucide-react');
15
- var reactTooltip = require('react-tooltip');
16
- require('embla-carousel-autoplay');
17
13
 
18
14
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
19
15
 
20
- var Link2__default = /*#__PURE__*/_interopDefault(Link2);
16
+ var AuthWidget__default = /*#__PURE__*/_interopDefault(AuthWidget);
17
+ var DesktopBagCarousel__default = /*#__PURE__*/_interopDefault(DesktopBagCarousel);
18
+ var LinksRow__default = /*#__PURE__*/_interopDefault(LinksRow);
21
19
 
22
- // src/site/components/auth/resume.ts
23
- var KEY = "lux-auth-resume";
24
- var remember = () => {
25
- sessionStorage.setItem(KEY, window.location.pathname + window.location.search);
26
- };
27
- var Widget = ({
28
- noLogin = false,
29
- handleLogin,
30
- className
31
- }) => {
32
- const { isAuthenticated, isLoading, login, logout } = react$1.useIam();
33
- const identity = react$1.useIamIdentity();
34
- if (isLoading) {
35
- return null;
36
- }
37
- if (!isAuthenticated) {
38
- return noLogin ? null : /* @__PURE__ */ jsxRuntime.jsx(
39
- primitives.Button,
40
- {
41
- variant: "primary",
42
- className: ui.cn("h-8 w-fit !min-w-0", className),
43
- onClick: handleLogin ?? (() => {
44
- remember();
45
- void login();
46
- }),
47
- children: "Login"
48
- }
49
- );
50
- }
51
- return /* @__PURE__ */ jsxRuntime.jsxs(primitives.Popover, { children: [
52
- /* @__PURE__ */ jsxRuntime.jsx(primitives.PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
53
- primitives.Button,
54
- {
55
- variant: "outline",
56
- size: "icon",
57
- className: ui.cn("rounded-full text-muted border-2 border-muted bg-level-1 hover:bg-level-2 hover:border-foreground hover:text-foreground uppercase w-8 h-8", className),
58
- children: identity?.initials
59
- }
60
- ) }),
61
- /* @__PURE__ */ jsxRuntime.jsx(primitives.PopoverContent, { className: "bg-level-0", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-4", children: [
62
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2 truncate", children: [
63
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-medium leading-none truncate", children: identity?.name }),
64
- identity?.email && identity.email !== identity.name && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm opacity-50 truncate", children: identity.email })
65
- ] }),
66
- /* @__PURE__ */ jsxRuntime.jsx(primitives.Separator, {}),
67
- /* @__PURE__ */ jsxRuntime.jsx(primitives.Button, { variant: "outline", onClick: () => {
68
- logout();
69
- }, children: "Logout" })
70
- ] }) })
71
- ] });
72
- };
73
- var AuthWidget = (props) => react.useContext(react$1.IamContext) ? /* @__PURE__ */ jsxRuntime.jsx(Widget, { ...props }) : null;
74
- var widget_default = AuthWidget;
75
- var SIZE = {
76
- xl: { mark: 40, word: 22, gap: "gap-4" },
77
- lg: { mark: 40, word: 22, gap: "gap-4" },
78
- md: { mark: 32, word: 18, gap: "gap-3" },
79
- sm: { mark: 24, word: 13, gap: "gap-2" },
80
- xs: { mark: 16, word: 9, gap: "gap-1.5" }
81
- };
82
- var Logo = ({
83
- size = "md",
84
- href,
85
- // no default please!
86
- outerClx = "",
87
- variant = "full",
88
- onClick
89
- }) => {
90
- const s = SIZE[size] ?? SIZE.md;
91
- const clx = "flex flex-row items-center " + s.gap + " " + (href ? "hover:opacity-80 cursor-pointer " : "cursor-default ") + outerClx;
92
- const art = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
93
- variant !== "wordmark" && /* @__PURE__ */ jsxRuntime.jsx(logo.Logo, { variant: "white", size: s.mark }),
94
- variant !== "mark" && /* @__PURE__ */ jsxRuntime.jsx(logo.Wordmark, { height: s.word })
95
- ] });
96
- return href ? /* @__PURE__ */ jsxRuntime.jsx(Link2__default.default, { href, style: ui.css(clx), onClick, children: art }) : /* @__PURE__ */ jsxRuntime.jsx(ui.Box, { tag: "span", className: clx, onClick, children: art });
97
- };
98
- var BackButton = ({
99
- variant = "ghost",
100
- size = "default",
101
- clx = "",
102
- iconClx = "",
103
- onBack
104
- }) => {
105
- const router = navigation.useRouter();
106
- const back = () => {
107
- if (onBack) {
108
- onBack();
109
- }
110
- router.back();
111
- };
112
- return /* @__PURE__ */ jsxRuntime.jsx(
113
- primitives.Button,
114
- {
115
- variant,
116
- size,
117
- onClick: back,
118
- className: clx,
119
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeft, { style: ui.css(iconClx) })
120
- }
121
- );
122
- };
123
- var back_button_default = BackButton;
124
- var linkClx = ui.cn(primitives.buttonVariants({ variant: "linkMuted" }), "rounded-none");
125
- var PolicyLinks = ({
126
- clx = ""
127
- }) => /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn("flex flex-col items-center", clx), children: [
128
- /* @__PURE__ */ jsxRuntime.jsx(primitives.Separator, {}),
129
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-4 py-2 text-sm", children: [
130
- /* @__PURE__ */ jsxRuntime.jsx(Link2__default.default, { style: ui.css(linkClx), href: "", children: "refund policy" }),
131
- /* @__PURE__ */ jsxRuntime.jsx(Link2__default.default, { style: ui.css(linkClx), href: "", children: "privacy policy" })
132
- ] })
133
- ] });
134
- var policy_links_default = PolicyLinks;
135
- var Tooltip = ({
136
- select,
137
- text,
138
- clx = "",
139
- position = "bottom",
140
- offset = 2
141
- }) => /* @__PURE__ */ jsxRuntime.jsx(
142
- reactTooltip.Tooltip,
143
- {
144
- anchorSelect: select,
145
- noArrow: true,
146
- opacity: 1,
147
- content: text,
148
- place: position,
149
- offset,
150
- delayShow: 100,
151
- delayHide: 100,
152
- className: "!opacity-100 !bg-level-2 border rounded-[3px] !px-1.5 !py-1 z-floating" + clx
153
- }
154
- );
155
- var tooltip_default = Tooltip;
156
- var DesktopBagCarousel = mobxReactLite.observer(({
157
- constrainTo,
158
- className = ""
159
- }) => {
160
- const cmmc = commerce.useCommerce();
161
- return /* @__PURE__ */ jsxRuntime.jsx(
162
- commerce.CarouselItemSelector,
163
- {
164
- items: cmmc.cartItems,
165
- selectedItemRef: cmmc,
166
- scrollable: false,
167
- selectSku: cmmc.setCurrentItem.bind(cmmc),
168
- clx: className,
169
- ext: {
170
- options: { loop: true },
171
- constrainTo,
172
- imageOnly: true
173
- }
174
- }
175
- );
176
- });
177
- var desktop_bag_carousel_default = DesktopBagCarousel;
178
20
  var DesktopCheckoutPanel = mobxReactLite.observer(({
179
21
  step,
180
22
  stepNames,
@@ -186,23 +28,23 @@ var DesktopCheckoutPanel = mobxReactLite.observer(({
186
28
  return /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn("grid grid-cols-2", clx), children: [
187
29
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full bg-background flex flex-row items-start justify-end", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full h-full max-w-[750px] relative flex flex-col items-stretch justify-start px-8 pb-8", children: [
188
30
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "h-[80px] grow-0 flex flex-row items-center z-10", children: [
189
- /* @__PURE__ */ jsxRuntime.jsx(Logo, { size: "md", href: "/", onClick: onLeave, variant: "wordmark", outerClx: "logo-outer-tooltip-class" }),
190
- /* @__PURE__ */ jsxRuntime.jsx(tooltip_default, { select: ".logo-outer-tooltip-class", text: "home", position: "right", offset: 6 })
31
+ /* @__PURE__ */ jsxRuntime.jsx(index_js.Logo, { size: "md", href: "/", onClick: onLeave, variant: "wordmark", outerClx: "logo-outer-tooltip-class" }),
32
+ /* @__PURE__ */ jsxRuntime.jsx(index_js.Tooltip, { select: ".logo-outer-tooltip-class", text: "home", position: "right", offset: 6 })
191
33
  ] }, 1),
192
34
  /* @__PURE__ */ jsxRuntime.jsx(
193
- back_button_default,
35
+ index_js.BackButton,
194
36
  {
195
37
  size: "sm",
196
38
  clx: "z-10 absolute top-14 left-6 !px-0 aspect-square rounded-full hover:!bg-level-3 back-button-tooltip-class ",
197
39
  onBack: onLeave
198
40
  }
199
41
  ),
200
- /* @__PURE__ */ jsxRuntime.jsx(tooltip_default, { select: ".back-button-tooltip-class", text: "back", position: "right", offset: 5 }),
42
+ /* @__PURE__ */ jsxRuntime.jsx(index_js.Tooltip, { select: ".back-button-tooltip-class", text: "back", position: "right", offset: 5 }),
201
43
  /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn(
202
44
  "w-full grow min-h-0 max-w-[550px] mx-auto flex flex-col gap-3",
203
45
  cmmc.cartItems.length > 4 ? "justify-between" : "justify-start gap-10 pt-10"
204
46
  ), children: [
205
- /* @__PURE__ */ jsxRuntime.jsx(desktop_bag_carousel_default, { className: "grow-0 h-[260px] w-[360px] lg:w-[420px] mx-auto -mt-8", constrainTo: { w: 250, h: 250 } }),
47
+ /* @__PURE__ */ jsxRuntime.jsx(DesktopBagCarousel__default.default, { className: "grow-0 h-[260px] w-[360px] lg:w-[420px] mx-auto -mt-8", constrainTo: { w: 250, h: 250 } }),
206
48
  /* @__PURE__ */ jsxRuntime.jsx(
207
49
  commerce.CartPanel,
208
50
  {
@@ -222,12 +64,12 @@ var DesktopCheckoutPanel = mobxReactLite.observer(({
222
64
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full h-full flex flex-col bg-level-1 min-h-screen justify-between", children: [
223
65
  /* @__PURE__ */ jsxRuntime.jsx(primitives.ScrollArea, { className: "w-full flex flex-row items-start justify-start overflow-y-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "h-full w-full max-w-[750px] relative flex flex-col items-center px-8 pt-0", children: [
224
66
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-level-1 sticky h-[80px] bg-[#aaaaff] w-full top-0 flex justify-center items-end", children: [
225
- /* @__PURE__ */ jsxRuntime.jsx(widget_default, { noLogin: true, className: "hidden md:flex absolute top-4 right-4 " }),
67
+ /* @__PURE__ */ jsxRuntime.jsx(AuthWidget__default.default, { noLogin: true, className: "hidden md:flex absolute top-4 right-4 " }),
226
68
  /* @__PURE__ */ jsxRuntime.jsx(primitives.StepIndicator, { dotSizeRem: 1.35, steps: stepNames, currentStep: step, className: "gap-2 text-base w-pr-70" })
227
69
  ] }, 1),
228
70
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-[550px] mx-auto py-8", children }, 2)
229
71
  ] }) }),
230
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-[750px] relative flex flex-col items-center px-8 pt-0", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-[550px] mx-auto flex flex-col items-center", children: /* @__PURE__ */ jsxRuntime.jsx(policy_links_default, { clx: "w-full" }) }) })
72
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-[750px] relative flex flex-col items-center px-8 pt-0", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-[550px] mx-auto flex flex-col items-center", children: /* @__PURE__ */ jsxRuntime.jsx(LinksRow__default.default, { clx: "w-full" }) }) })
231
73
  ] }, 2)
232
74
  ] });
233
75
  });
@@ -1,174 +1,14 @@
1
1
  'use client';
2
2
  import { observer } from 'mobx-react-lite';
3
- import { buttonVariants, ScrollArea, StepIndicator, Button, Separator, Popover, PopoverTrigger, PopoverContent } from '@hanzo/ui/primitives';
4
- import { useContext } from 'react';
5
- import { cn, Box, css } from '@hanzo/ui';
6
- import { IamContext, useIam, useIamIdentity } from '@hanzo/iam/react';
7
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
- import { useCommerce, CarouselItemSelector, CartPanel } from '@hanzo/commerce';
9
- import Link2 from 'next/link';
10
- import { Logo as Logo$1, Wordmark } from '@luxfi/logo';
11
- import { useRouter } from 'next/navigation';
12
- import { ChevronLeft } from 'lucide-react';
13
- import { Tooltip as Tooltip$1 } from 'react-tooltip';
14
- import 'embla-carousel-autoplay';
3
+ import { ScrollArea, StepIndicator } from '@hanzo/ui/primitives';
4
+ import AuthWidget from '../../auth/widget.js';
5
+ import { useCommerce, CartPanel } from '@hanzo/commerce';
6
+ import { Box, cn } from '@hanzo/ui';
7
+ import { Logo, Tooltip, BackButton } from '../../index.js';
8
+ import DesktopBagCarousel from './desktop-bag-carousel.js';
9
+ import LinksRow from './policy-links.js';
10
+ import { jsxs, jsx } from 'react/jsx-runtime';
15
11
 
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 BackButton = ({
93
- variant = "ghost",
94
- size = "default",
95
- clx = "",
96
- iconClx = "",
97
- onBack
98
- }) => {
99
- const router = useRouter();
100
- const back = () => {
101
- if (onBack) {
102
- onBack();
103
- }
104
- router.back();
105
- };
106
- return /* @__PURE__ */ jsx(
107
- Button,
108
- {
109
- variant,
110
- size,
111
- onClick: back,
112
- className: clx,
113
- children: /* @__PURE__ */ jsx(ChevronLeft, { style: css(iconClx) })
114
- }
115
- );
116
- };
117
- var back_button_default = BackButton;
118
- var linkClx = cn(buttonVariants({ variant: "linkMuted" }), "rounded-none");
119
- var PolicyLinks = ({
120
- clx = ""
121
- }) => /* @__PURE__ */ jsxs(Box, { className: cn("flex flex-col items-center", clx), children: [
122
- /* @__PURE__ */ jsx(Separator, {}),
123
- /* @__PURE__ */ jsxs("div", { className: "flex gap-4 py-2 text-sm", children: [
124
- /* @__PURE__ */ jsx(Link2, { style: css(linkClx), href: "", children: "refund policy" }),
125
- /* @__PURE__ */ jsx(Link2, { style: css(linkClx), href: "", children: "privacy policy" })
126
- ] })
127
- ] });
128
- var policy_links_default = PolicyLinks;
129
- var Tooltip = ({
130
- select,
131
- text,
132
- clx = "",
133
- position = "bottom",
134
- offset = 2
135
- }) => /* @__PURE__ */ jsx(
136
- Tooltip$1,
137
- {
138
- anchorSelect: select,
139
- noArrow: true,
140
- opacity: 1,
141
- content: text,
142
- place: position,
143
- offset,
144
- delayShow: 100,
145
- delayHide: 100,
146
- className: "!opacity-100 !bg-level-2 border rounded-[3px] !px-1.5 !py-1 z-floating" + clx
147
- }
148
- );
149
- var tooltip_default = Tooltip;
150
- var DesktopBagCarousel = observer(({
151
- constrainTo,
152
- className = ""
153
- }) => {
154
- const cmmc = useCommerce();
155
- return /* @__PURE__ */ jsx(
156
- CarouselItemSelector,
157
- {
158
- items: cmmc.cartItems,
159
- selectedItemRef: cmmc,
160
- scrollable: false,
161
- selectSku: cmmc.setCurrentItem.bind(cmmc),
162
- clx: className,
163
- ext: {
164
- options: { loop: true },
165
- constrainTo,
166
- imageOnly: true
167
- }
168
- }
169
- );
170
- });
171
- var desktop_bag_carousel_default = DesktopBagCarousel;
172
12
  var DesktopCheckoutPanel = observer(({
173
13
  step,
174
14
  stepNames,
@@ -181,22 +21,22 @@ var DesktopCheckoutPanel = observer(({
181
21
  /* @__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: [
182
22
  /* @__PURE__ */ jsxs("div", { className: "h-[80px] grow-0 flex flex-row items-center z-10", children: [
183
23
  /* @__PURE__ */ jsx(Logo, { size: "md", href: "/", onClick: onLeave, variant: "wordmark", outerClx: "logo-outer-tooltip-class" }),
184
- /* @__PURE__ */ jsx(tooltip_default, { select: ".logo-outer-tooltip-class", text: "home", position: "right", offset: 6 })
24
+ /* @__PURE__ */ jsx(Tooltip, { select: ".logo-outer-tooltip-class", text: "home", position: "right", offset: 6 })
185
25
  ] }, 1),
186
26
  /* @__PURE__ */ jsx(
187
- back_button_default,
27
+ BackButton,
188
28
  {
189
29
  size: "sm",
190
30
  clx: "z-10 absolute top-14 left-6 !px-0 aspect-square rounded-full hover:!bg-level-3 back-button-tooltip-class ",
191
31
  onBack: onLeave
192
32
  }
193
33
  ),
194
- /* @__PURE__ */ jsx(tooltip_default, { select: ".back-button-tooltip-class", text: "back", position: "right", offset: 5 }),
34
+ /* @__PURE__ */ jsx(Tooltip, { select: ".back-button-tooltip-class", text: "back", position: "right", offset: 5 }),
195
35
  /* @__PURE__ */ jsxs(Box, { className: cn(
196
36
  "w-full grow min-h-0 max-w-[550px] mx-auto flex flex-col gap-3",
197
37
  cmmc.cartItems.length > 4 ? "justify-between" : "justify-start gap-10 pt-10"
198
38
  ), children: [
199
- /* @__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 } }),
39
+ /* @__PURE__ */ jsx(DesktopBagCarousel, { className: "grow-0 h-[260px] w-[360px] lg:w-[420px] mx-auto -mt-8", constrainTo: { w: 250, h: 250 } }),
200
40
  /* @__PURE__ */ jsx(
201
41
  CartPanel,
202
42
  {
@@ -216,12 +56,12 @@ var DesktopCheckoutPanel = observer(({
216
56
  /* @__PURE__ */ jsxs("div", { className: "w-full h-full flex flex-col bg-level-1 min-h-screen justify-between", children: [
217
57
  /* @__PURE__ */ jsx(ScrollArea, { 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: [
218
58
  /* @__PURE__ */ jsxs("div", { className: "bg-level-1 sticky h-[80px] bg-[#aaaaff] w-full top-0 flex justify-center items-end", children: [
219
- /* @__PURE__ */ jsx(widget_default, { noLogin: true, className: "hidden md:flex absolute top-4 right-4 " }),
59
+ /* @__PURE__ */ jsx(AuthWidget, { noLogin: true, className: "hidden md:flex absolute top-4 right-4 " }),
220
60
  /* @__PURE__ */ jsx(StepIndicator, { dotSizeRem: 1.35, steps: stepNames, currentStep: step, className: "gap-2 text-base w-pr-70" })
221
61
  ] }, 1),
222
62
  /* @__PURE__ */ jsx("div", { className: "w-full max-w-[550px] mx-auto py-8", children }, 2)
223
63
  ] }) }),
224
- /* @__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" }) }) })
64
+ /* @__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(LinksRow, { clx: "w-full" }) }) })
225
65
  ] }, 2)
226
66
  ] });
227
67
  });