@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
@@ -4,295 +4,21 @@
4
4
  var navigation = require('next/navigation');
5
5
  var mobxReactLite = require('mobx-react-lite');
6
6
  var commerce = require('@hanzo/commerce');
7
- var react = require('react');
8
- require('usehooks-ts');
7
+ var context_js = require('../../../commerce/ui/context.js');
8
+ var CommerceDrawer = require('./shell.js');
9
+ var CheckoutButton = require('../checkout-button.js');
10
+ var Micro = require('./micro.js');
9
11
  var jsxRuntime = require('react/jsx-runtime');
10
- var primitives = require('@hanzo/ui/primitives');
11
- var ui = require('@hanzo/ui');
12
- var mobx = require('mobx');
13
12
 
14
- mobxReactLite.enableStaticRendering(typeof window === "undefined");
15
- var CommerceUIContext = react.createContext(void 0);
16
- var useCommerceDrawer = () => {
17
- return react.useContext(CommerceUIContext);
18
- };
19
- var useSelectAndBuy = () => {
20
- return react.useContext(CommerceUIContext);
21
- };
22
- var CommerceDrawer = mobxReactLite.observer(({
23
- children,
24
- handleHandleClicked,
25
- drawerClx = "",
26
- ...rest
27
- }) => {
28
- const drawer = useCommerceDrawer();
29
- return /* @__PURE__ */ jsxRuntime.jsx(
30
- primitives.Drawer,
31
- {
32
- open: drawer.open,
33
- onOpenChange: () => {
34
- },
35
- modal: drawer.modal,
36
- snapPoints: drawer.points,
37
- activeSnapPoint: drawer.activePoint,
38
- setActiveSnapPoint: drawer.onActivePointChanged.bind(drawer),
39
- fastDragSkipsToEnd: false,
40
- dragHandleOnly: true,
41
- handleHandleClicked,
42
- extendHandleDragRegion: false,
43
- ...rest,
44
- children: /* @__PURE__ */ jsxRuntime.jsxs(
45
- primitives.DrawerContent,
46
- {
47
- defaultHandle: false,
48
- className: ui.cn(
49
- "border-0",
50
- drawer.isMobile ? "pt-5" : "pt-6",
51
- "w-full h-full"
52
- ),
53
- onOpenAutoFocus: (e) => {
54
- e.preventDefault();
55
- },
56
- children: [
57
- /* @__PURE__ */ jsxRuntime.jsx(
58
- primitives.DrawerHandle,
59
- {
60
- className: ui.cn(
61
- "absolute top-0 left-0 right-0 mx-auto z-10",
62
- "flex justify-center items-start",
63
- "border-t rounded-t-lg border-muted-3",
64
- drawer.isMobile ? "h-5 touch-pan-y" : "h-6"
65
- ),
66
- children: /* @__PURE__ */ jsxRuntime.jsx(ui.Box, { className: ui.cn(
67
- // pseudo-handle
68
- "rounded-[3px] bg-level-3",
69
- drawer.isMobile ? "w-[155px] mt-[5px] h-1.5" : "w-[180px] mt-[3px] h-2.5 hover:bg-level-4",
70
- !drawer.isMobile ? "cursor-grab active:cursor-grabbing" : ""
71
- ) })
72
- }
73
- ),
74
- children
75
- ]
76
- }
77
- )
78
- }
79
- );
80
- });
81
- var shell_default = CommerceDrawer;
82
- var BagIcon = (props) => /* @__PURE__ */ jsxRuntime.jsx("svg", { fill: "none", viewBox: "0 0 1019 1281", ...props, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m977.243 365.553h-175.407v-90.629c0-151.923-131.968-274.924-292.334-274.924-160.367 0-292.337 123.002-292.337 274.924v90.629h-175.4023c-23.3886 0-41.7627 17.051-41.7627 38.756v775.121c0 55.8 48.4456 100.76 108.582 100.76h801.84c60.138 0 108.578-44.96 108.578-100.76v-775.121c0-21.705-18.37-38.756-41.757-38.756zm-676.553-90.629c0-108.517 93.546-196.9408 208.812-196.9408 115.265 0 208.813 88.4218 208.813 196.9408v89.08h-417.625z", fill: "currentColor" }) });
83
- var bag_icon_default = BagIcon;
84
- var IconAndQuantity = mobxReactLite.observer(({
85
- animateOnQuantityChange = false,
86
- showArrow = true,
87
- showQuantity = true,
88
- clx = "",
89
- iconClx = "",
90
- digitClx = ""
91
- }) => {
92
- const cmmc = commerce.useCommerce();
93
- const wiggleRef = react.useRef(mobx.observable.box("none"));
94
- react.useEffect(() => (
95
- // return IReactionDisposer
96
- animateOnQuantityChange ? mobx.reaction(
97
- () => cmmc.cartQuantity,
98
- (curr, prev) => {
99
- if (curr > prev) {
100
- mobx.runInAction(() => {
101
- wiggleRef.current.set("more");
102
- });
103
- } else {
104
- mobx.runInAction(() => {
105
- wiggleRef.current.set("less");
106
- });
107
- }
108
- setTimeout(() => {
109
- mobx.runInAction(() => {
110
- wiggleRef.current.set("none");
111
- });
112
- }, 800);
113
- }
114
- ) : void 0
115
- ), []);
116
- return /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn("flex items-center justify-center", clx), children: [
117
- showQuantity && /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn(
118
- "relative flex items-center justify-center mr-1",
119
- wiggleRef.current.get() === "more" ? "item-added-to-cart-animation" : wiggleRef.current.get() === "less" ? "item-removed-from-cart-animation" : ""
120
- ), children: [
121
- cmmc.cartQuantity > 0 && /* @__PURE__ */ jsxRuntime.jsx(ui.Box, { className: ui.cn(
122
- "z-above-content flex flex-col justify-center items-center",
123
- "absolute left-0 right-0 top-0 bottom-0",
124
- digitClx
125
- ), children: /* @__PURE__ */ jsxRuntime.jsx("div", { style: {
126
- /* color: 'white' tailwind bug? ,*/
127
- fontSize: "11px",
128
- position: "relative",
129
- top: "1px"
130
- }, children: cmmc.cartQuantity }) }),
131
- /* @__PURE__ */ jsxRuntime.jsx(bag_icon_default, { width: "19", height: "24", className: ui.cn("relative -top-[3px] opacity-70", iconClx), "aria-hidden": "true" })
132
- ] }),
133
- showArrow && /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: "17px" }, children: "\u203A" })
134
- ] });
135
- });
136
- var CheckoutButton = ({
137
- handleCheckout,
138
- variant = "primary",
139
- rounded = "lg",
140
- className,
141
- showQuantity = true,
142
- showArrow = true,
143
- animateOnQuantityChange = true,
144
- centerText = true,
145
- children,
146
- ...rest
147
- }) => {
148
- return /* @__PURE__ */ jsxRuntime.jsxs(
149
- primitives.Button,
150
- {
151
- ...rest,
152
- onClick: handleCheckout,
153
- variant,
154
- className: ui.cn(`rounded-${rounded}`, ui.cn(
155
- "flex justify-between items-stretch group",
156
- showQuantity ? centerText ? "px-1.5" : "pl-2.5 pr-1.5" : "",
157
- className
158
- )),
159
- children: [
160
- centerText && // must scale this one too, as it effects layout
161
- /* @__PURE__ */ jsxRuntime.jsx(
162
- IconAndQuantity,
163
- {
164
- showArrow,
165
- showQuantity,
166
- clx: "invisible group-hover:scale-105 transition-scale transition-duration-300"
167
- }
168
- ),
169
- children ?? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center items-center", children: "Checkout" }),
170
- /* @__PURE__ */ jsxRuntime.jsx(
171
- IconAndQuantity,
172
- {
173
- clx: "group-hover:scale-105 transition-scale transition-duration-300",
174
- animateOnQuantityChange,
175
- showArrow,
176
- showQuantity,
177
- iconClx: "fill-background",
178
- digitClx: "text-foreground group-hover:opacity-80 leading-none font-bold font-sans"
179
- }
180
- )
181
- ]
182
- }
183
- );
184
- };
185
- var checkout_button_default = CheckoutButton;
186
- var CN = {
187
- // h: mind padding!
188
- mobile: { w: 36, h: 32 },
189
- sm: { w: 60, h: 34 },
190
- desktop: { w: 60, h: 32 }
191
- };
192
- var Info = ({
193
- item,
194
- clx = ""
195
- }) => {
196
- const cmmc = commerce.useCommerce();
197
- const family = cmmc.getFamilyById(item.familyId);
198
- let topLine = family.title;
199
- if (item.sku.startsWith("LXM-AG") || item.sku.startsWith("LXM-AU")) {
200
- topLine = family.parentTitle + ", " + family.title;
201
- }
202
- const optionLabel = item.optionLabelShort ?? item.optionLabel;
203
- const priceStr = commerce.formatCurrencyValue(item.price);
204
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
205
- /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn("sm:hidden flex flex-col !text-muted items-stretch whitespace-nowrap text-ellipsis ", clx), children: [
206
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-left text-xs", children: topLine }),
207
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between text-xxs", children: [
208
- /* @__PURE__ */ jsxRuntime.jsx("div", { children: optionLabel }),
209
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pl-2.5", children: priceStr })
210
- ] })
211
- ] }),
212
- /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn("hidden sm:flex !text-muted flex-col items-stretch whitespace-nowrap text-ellipsis text-xs", clx), children: [
213
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-left", children: topLine }),
214
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
215
- /* @__PURE__ */ jsxRuntime.jsx("div", { children: optionLabel }),
216
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pl-2.5", children: priceStr })
217
- ] })
218
- ] })
219
- ] });
220
- };
221
- var PROMPT_COMMON_CLX = "block absolute top-0 left-0 bg-transparent duration-400 transition-opacity";
222
- var Micro = mobxReactLite.observer(({
223
- clx = "",
224
- handleCheckout,
225
- handleItemClicked
226
- }) => {
227
- const drawer = useCommerceDrawer();
228
- const cmmc = commerce.useCommerce();
229
- return /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn(
230
- drawer.showRecent ? "grid grid-cols-2" : "flex justify-center items-center ",
231
- drawer.showRecent ? drawer.isMobile ? "-mt-3" : "-mt-3" : "",
232
- "gap-2 md:gap-3 relative",
233
- clx
234
- ), children: [
235
- drawer.showRecent && /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: "flex flex-col items-stretch " + (drawer.isMobile ? "justify-start" : "group"), children: [
236
- /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { tag: "p", className: "relative text-muted text-xxs md:text-xs leading-none pl-1 self-start " + (drawer.isMobile ? "top-[3px]" : "top-[1px]"), children: [
237
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "invisible", children: "scrictly for layout" }),
238
- drawer.isMobile ? /* @__PURE__ */ jsxRuntime.jsx(ui.Box, { tag: "span", className: PROMPT_COMMON_CLX, children: "tap for options:" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
239
- /* @__PURE__ */ jsxRuntime.jsx(ui.Box, { tag: "span", className: PROMPT_COMMON_CLX + " group-hover:opacity-0", children: "recent item:" }),
240
- /* @__PURE__ */ jsxRuntime.jsx(ui.Box, { tag: "span", className: PROMPT_COMMON_CLX + " opacity-0 group-hover:opacity-100", children: "view options:" })
241
- ] })
242
- ] }),
243
- /* @__PURE__ */ jsxRuntime.jsxs(
244
- primitives.Button,
245
- {
246
- variant: "ghost",
247
- className: ui.cn(`rounded-${drawer.isMobile ? "md" : "lg"}`, ui.cn(
248
- "box-content",
249
- "flex flex-row justify-between items-center gap-1",
250
- "-ml-1.5",
251
- "overflow-hidden ",
252
- "px-1 md:px-2 py-[2px]",
253
- "border border-transparent group-hover:border-muted-3",
254
- "group-hover:!bg-transparent",
255
- "!min-w-0"
256
- )),
257
- size: drawer.isMobile ? "sm" : "default",
258
- onClick: handleItemClicked,
259
- children: [
260
- cmmc.recentItem?.item.img && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
261
- /* @__PURE__ */ jsxRuntime.jsx(ui.MediaStack, { media: { img: cmmc.recentItem.item.img }, constrainTo: CN.mobile, className: "sm:hidden grow-0 shrink-0" }),
262
- /* @__PURE__ */ jsxRuntime.jsx(ui.MediaStack, { media: { img: cmmc.recentItem.item.img }, constrainTo: CN.sm, className: "hidden sm:block md:hidden grow-0 shrink-0" }),
263
- /* @__PURE__ */ jsxRuntime.jsx(ui.MediaStack, { media: { img: cmmc.recentItem.item.img }, constrainTo: CN.desktop, className: "hidden md:block grow-0 shrink-0" })
264
- ] }),
265
- cmmc.recentItem && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grow w-full", children: /* @__PURE__ */ jsxRuntime.jsx(Info, { item: cmmc.recentItem.item, clx: "w-full" }) })
266
- ]
267
- }
268
- )
269
- ] }),
270
- drawer.showCheckout && /* @__PURE__ */ jsxRuntime.jsxs(ui.Box, { className: ui.cn(
271
- "flex flex-col w-full",
272
- drawer.showRecent ? "items-stretch" : "items-center",
273
- drawer.isMobile ? "justify-start" : "justify-center"
274
- ), children: [
275
- drawer.showRecent && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "invisible text-muted text-xxs md:text-xs leading-none pl-1 self-start", children: "for layout" }),
276
- /* @__PURE__ */ jsxRuntime.jsx(
277
- checkout_button_default,
278
- {
279
- handleCheckout,
280
- variant: "primary",
281
- size: drawer.isMobile ? "sm" : "lg",
282
- className: ui.cn(`rounded-${drawer.isMobile ? "md" : "lg"}`, ui.cn(
283
- drawer.isMobile ? drawer.showRecent ? "pl-3.5 pr-2.5" : "min-w-[320px]" : drawer.showRecent ? "" : "w-[320px]",
284
- "text-sm font-semibold"
285
- )),
286
- centerText: drawer.isMobile ? !drawer.showRecent : true
287
- }
288
- )
289
- ] })
290
- ] });
291
- });
292
- var micro_default = Micro;
13
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
14
+
15
+ var CommerceDrawer__default = /*#__PURE__*/_interopDefault(CommerceDrawer);
16
+ var CheckoutButton__default = /*#__PURE__*/_interopDefault(CheckoutButton);
17
+ var Micro__default = /*#__PURE__*/_interopDefault(Micro);
18
+
293
19
  var CommerceUIComponent = mobxReactLite.observer(() => {
294
- const buy = useSelectAndBuy();
295
- const drawer = useCommerceDrawer();
20
+ const buy = context_js.useSelectAndBuy();
21
+ const drawer = context_js.useCommerceDrawer();
296
22
  const router = navigation.useRouter();
297
23
  const handleCheckout = () => {
298
24
  router.push("/checkout");
@@ -315,7 +41,7 @@ var CommerceUIComponent = mobxReactLite.observer(() => {
315
41
  return false;
316
42
  };
317
43
  return /* @__PURE__ */ jsxRuntime.jsxs(
318
- shell_default,
44
+ CommerceDrawer__default.default,
319
45
  {
320
46
  handleHandleClicked,
321
47
  handleCloseGesture,
@@ -333,7 +59,7 @@ var CommerceUIComponent = mobxReactLite.observer(() => {
333
59
  {
334
60
  skuPath: buy.currentSkuPath,
335
61
  checkoutButton: /* @__PURE__ */ jsxRuntime.jsx(
336
- checkout_button_default,
62
+ CheckoutButton__default.default,
337
63
  {
338
64
  handleCheckout,
339
65
  className: "w-full min-w-[160px] sm:max-w-[320px]"
@@ -346,7 +72,7 @@ var CommerceUIComponent = mobxReactLite.observer(() => {
346
72
  }
347
73
  ) }),
348
74
  drawer.state === "micro" && /* @__PURE__ */ jsxRuntime.jsx(
349
- micro_default,
75
+ Micro__default.default,
350
76
  {
351
77
  handleCheckout,
352
78
  handleItemClicked,
@@ -1,293 +1,13 @@
1
1
  'use client';
2
2
  import { useRouter } from 'next/navigation';
3
- import { enableStaticRendering, observer } from 'mobx-react-lite';
4
- import { useCommerce, CarouselBuyCard, formatCurrencyValue } from '@hanzo/commerce';
5
- import { createContext, useRef, useEffect, useContext } from 'react';
6
- import 'usehooks-ts';
7
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
- import { Drawer, DrawerContent, DrawerHandle, Button } from '@hanzo/ui/primitives';
9
- import { cn, Box, MediaStack } from '@hanzo/ui';
10
- import { observable, reaction, runInAction } from 'mobx';
3
+ import { observer } from 'mobx-react-lite';
4
+ import { CarouselBuyCard } from '@hanzo/commerce';
5
+ import { useSelectAndBuy, useCommerceDrawer } from '../../../commerce/ui/context.js';
6
+ import CommerceDrawer from './shell.js';
7
+ import CheckoutButton from '../checkout-button.js';
8
+ import Micro from './micro.js';
9
+ import { jsxs, jsx } from 'react/jsx-runtime';
11
10
 
12
- enableStaticRendering(typeof window === "undefined");
13
- var CommerceUIContext = createContext(void 0);
14
- var useCommerceDrawer = () => {
15
- return useContext(CommerceUIContext);
16
- };
17
- var useSelectAndBuy = () => {
18
- return useContext(CommerceUIContext);
19
- };
20
- var CommerceDrawer = observer(({
21
- children,
22
- handleHandleClicked,
23
- drawerClx = "",
24
- ...rest
25
- }) => {
26
- const drawer = useCommerceDrawer();
27
- return /* @__PURE__ */ jsx(
28
- Drawer,
29
- {
30
- open: drawer.open,
31
- onOpenChange: () => {
32
- },
33
- modal: drawer.modal,
34
- snapPoints: drawer.points,
35
- activeSnapPoint: drawer.activePoint,
36
- setActiveSnapPoint: drawer.onActivePointChanged.bind(drawer),
37
- fastDragSkipsToEnd: false,
38
- dragHandleOnly: true,
39
- handleHandleClicked,
40
- extendHandleDragRegion: false,
41
- ...rest,
42
- children: /* @__PURE__ */ jsxs(
43
- DrawerContent,
44
- {
45
- defaultHandle: false,
46
- className: cn(
47
- "border-0",
48
- drawer.isMobile ? "pt-5" : "pt-6",
49
- "w-full h-full"
50
- ),
51
- onOpenAutoFocus: (e) => {
52
- e.preventDefault();
53
- },
54
- children: [
55
- /* @__PURE__ */ jsx(
56
- DrawerHandle,
57
- {
58
- className: cn(
59
- "absolute top-0 left-0 right-0 mx-auto z-10",
60
- "flex justify-center items-start",
61
- "border-t rounded-t-lg border-muted-3",
62
- drawer.isMobile ? "h-5 touch-pan-y" : "h-6"
63
- ),
64
- children: /* @__PURE__ */ jsx(Box, { className: cn(
65
- // pseudo-handle
66
- "rounded-[3px] bg-level-3",
67
- drawer.isMobile ? "w-[155px] mt-[5px] h-1.5" : "w-[180px] mt-[3px] h-2.5 hover:bg-level-4",
68
- !drawer.isMobile ? "cursor-grab active:cursor-grabbing" : ""
69
- ) })
70
- }
71
- ),
72
- children
73
- ]
74
- }
75
- )
76
- }
77
- );
78
- });
79
- var shell_default = CommerceDrawer;
80
- 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" }) });
81
- var bag_icon_default = BagIcon;
82
- var IconAndQuantity = observer(({
83
- animateOnQuantityChange = false,
84
- showArrow = true,
85
- showQuantity = true,
86
- clx = "",
87
- iconClx = "",
88
- digitClx = ""
89
- }) => {
90
- const cmmc = useCommerce();
91
- const wiggleRef = useRef(observable.box("none"));
92
- useEffect(() => (
93
- // return IReactionDisposer
94
- animateOnQuantityChange ? reaction(
95
- () => cmmc.cartQuantity,
96
- (curr, prev) => {
97
- if (curr > prev) {
98
- runInAction(() => {
99
- wiggleRef.current.set("more");
100
- });
101
- } else {
102
- runInAction(() => {
103
- wiggleRef.current.set("less");
104
- });
105
- }
106
- setTimeout(() => {
107
- runInAction(() => {
108
- wiggleRef.current.set("none");
109
- });
110
- }, 800);
111
- }
112
- ) : void 0
113
- ), []);
114
- return /* @__PURE__ */ jsxs(Box, { className: cn("flex items-center justify-center", clx), children: [
115
- showQuantity && /* @__PURE__ */ jsxs(Box, { className: cn(
116
- "relative flex items-center justify-center mr-1",
117
- wiggleRef.current.get() === "more" ? "item-added-to-cart-animation" : wiggleRef.current.get() === "less" ? "item-removed-from-cart-animation" : ""
118
- ), children: [
119
- cmmc.cartQuantity > 0 && /* @__PURE__ */ jsx(Box, { className: cn(
120
- "z-above-content flex flex-col justify-center items-center",
121
- "absolute left-0 right-0 top-0 bottom-0",
122
- digitClx
123
- ), children: /* @__PURE__ */ jsx("div", { style: {
124
- /* color: 'white' tailwind bug? ,*/
125
- fontSize: "11px",
126
- position: "relative",
127
- top: "1px"
128
- }, children: cmmc.cartQuantity }) }),
129
- /* @__PURE__ */ jsx(bag_icon_default, { width: "19", height: "24", className: cn("relative -top-[3px] opacity-70", iconClx), "aria-hidden": "true" })
130
- ] }),
131
- showArrow && /* @__PURE__ */ jsx("span", { style: { fontSize: "17px" }, children: "\u203A" })
132
- ] });
133
- });
134
- var CheckoutButton = ({
135
- handleCheckout,
136
- variant = "primary",
137
- rounded = "lg",
138
- className,
139
- showQuantity = true,
140
- showArrow = true,
141
- animateOnQuantityChange = true,
142
- centerText = true,
143
- children,
144
- ...rest
145
- }) => {
146
- return /* @__PURE__ */ jsxs(
147
- Button,
148
- {
149
- ...rest,
150
- onClick: handleCheckout,
151
- variant,
152
- className: cn(`rounded-${rounded}`, cn(
153
- "flex justify-between items-stretch group",
154
- showQuantity ? centerText ? "px-1.5" : "pl-2.5 pr-1.5" : "",
155
- className
156
- )),
157
- children: [
158
- centerText && // must scale this one too, as it effects layout
159
- /* @__PURE__ */ jsx(
160
- IconAndQuantity,
161
- {
162
- showArrow,
163
- showQuantity,
164
- clx: "invisible group-hover:scale-105 transition-scale transition-duration-300"
165
- }
166
- ),
167
- children ?? /* @__PURE__ */ jsx("div", { className: "flex justify-center items-center", children: "Checkout" }),
168
- /* @__PURE__ */ jsx(
169
- IconAndQuantity,
170
- {
171
- clx: "group-hover:scale-105 transition-scale transition-duration-300",
172
- animateOnQuantityChange,
173
- showArrow,
174
- showQuantity,
175
- iconClx: "fill-background",
176
- digitClx: "text-foreground group-hover:opacity-80 leading-none font-bold font-sans"
177
- }
178
- )
179
- ]
180
- }
181
- );
182
- };
183
- var checkout_button_default = CheckoutButton;
184
- var CN = {
185
- // h: mind padding!
186
- mobile: { w: 36, h: 32 },
187
- sm: { w: 60, h: 34 },
188
- desktop: { w: 60, h: 32 }
189
- };
190
- var Info = ({
191
- item,
192
- clx = ""
193
- }) => {
194
- const cmmc = useCommerce();
195
- const family = cmmc.getFamilyById(item.familyId);
196
- let topLine = family.title;
197
- if (item.sku.startsWith("LXM-AG") || item.sku.startsWith("LXM-AU")) {
198
- topLine = family.parentTitle + ", " + family.title;
199
- }
200
- const optionLabel = item.optionLabelShort ?? item.optionLabel;
201
- const priceStr = formatCurrencyValue(item.price);
202
- return /* @__PURE__ */ jsxs(Fragment, { children: [
203
- /* @__PURE__ */ jsxs(Box, { className: cn("sm:hidden flex flex-col !text-muted items-stretch whitespace-nowrap text-ellipsis ", clx), children: [
204
- /* @__PURE__ */ jsx("p", { className: "text-left text-xs", children: topLine }),
205
- /* @__PURE__ */ jsxs("div", { className: "flex justify-between text-xxs", children: [
206
- /* @__PURE__ */ jsx("div", { children: optionLabel }),
207
- /* @__PURE__ */ jsx("div", { className: "pl-2.5", children: priceStr })
208
- ] })
209
- ] }),
210
- /* @__PURE__ */ jsxs(Box, { className: cn("hidden sm:flex !text-muted flex-col items-stretch whitespace-nowrap text-ellipsis text-xs", clx), children: [
211
- /* @__PURE__ */ jsx("p", { className: "text-left", children: topLine }),
212
- /* @__PURE__ */ jsxs("div", { className: "flex justify-between", children: [
213
- /* @__PURE__ */ jsx("div", { children: optionLabel }),
214
- /* @__PURE__ */ jsx("div", { className: "pl-2.5", children: priceStr })
215
- ] })
216
- ] })
217
- ] });
218
- };
219
- var PROMPT_COMMON_CLX = "block absolute top-0 left-0 bg-transparent duration-400 transition-opacity";
220
- var Micro = observer(({
221
- clx = "",
222
- handleCheckout,
223
- handleItemClicked
224
- }) => {
225
- const drawer = useCommerceDrawer();
226
- const cmmc = useCommerce();
227
- return /* @__PURE__ */ jsxs(Box, { className: cn(
228
- drawer.showRecent ? "grid grid-cols-2" : "flex justify-center items-center ",
229
- drawer.showRecent ? drawer.isMobile ? "-mt-3" : "-mt-3" : "",
230
- "gap-2 md:gap-3 relative",
231
- clx
232
- ), children: [
233
- drawer.showRecent && /* @__PURE__ */ jsxs(Box, { className: "flex flex-col items-stretch " + (drawer.isMobile ? "justify-start" : "group"), children: [
234
- /* @__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: [
235
- /* @__PURE__ */ jsx("span", { className: "invisible", children: "scrictly for layout" }),
236
- drawer.isMobile ? /* @__PURE__ */ jsx(Box, { tag: "span", className: PROMPT_COMMON_CLX, children: "tap for options:" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
237
- /* @__PURE__ */ jsx(Box, { tag: "span", className: PROMPT_COMMON_CLX + " group-hover:opacity-0", children: "recent item:" }),
238
- /* @__PURE__ */ jsx(Box, { tag: "span", className: PROMPT_COMMON_CLX + " opacity-0 group-hover:opacity-100", children: "view options:" })
239
- ] })
240
- ] }),
241
- /* @__PURE__ */ jsxs(
242
- Button,
243
- {
244
- variant: "ghost",
245
- className: cn(`rounded-${drawer.isMobile ? "md" : "lg"}`, cn(
246
- "box-content",
247
- "flex flex-row justify-between items-center gap-1",
248
- "-ml-1.5",
249
- "overflow-hidden ",
250
- "px-1 md:px-2 py-[2px]",
251
- "border border-transparent group-hover:border-muted-3",
252
- "group-hover:!bg-transparent",
253
- "!min-w-0"
254
- )),
255
- size: drawer.isMobile ? "sm" : "default",
256
- onClick: handleItemClicked,
257
- children: [
258
- cmmc.recentItem?.item.img && /* @__PURE__ */ jsxs(Fragment, { children: [
259
- /* @__PURE__ */ jsx(MediaStack, { media: { img: cmmc.recentItem.item.img }, constrainTo: CN.mobile, className: "sm:hidden grow-0 shrink-0" }),
260
- /* @__PURE__ */ jsx(MediaStack, { media: { img: cmmc.recentItem.item.img }, constrainTo: CN.sm, className: "hidden sm:block md:hidden grow-0 shrink-0" }),
261
- /* @__PURE__ */ jsx(MediaStack, { media: { img: cmmc.recentItem.item.img }, constrainTo: CN.desktop, className: "hidden md:block grow-0 shrink-0" })
262
- ] }),
263
- cmmc.recentItem && /* @__PURE__ */ jsx("div", { className: "grow w-full", children: /* @__PURE__ */ jsx(Info, { item: cmmc.recentItem.item, clx: "w-full" }) })
264
- ]
265
- }
266
- )
267
- ] }),
268
- drawer.showCheckout && /* @__PURE__ */ jsxs(Box, { className: cn(
269
- "flex flex-col w-full",
270
- drawer.showRecent ? "items-stretch" : "items-center",
271
- drawer.isMobile ? "justify-start" : "justify-center"
272
- ), children: [
273
- drawer.showRecent && /* @__PURE__ */ jsx("p", { className: "invisible text-muted text-xxs md:text-xs leading-none pl-1 self-start", children: "for layout" }),
274
- /* @__PURE__ */ jsx(
275
- checkout_button_default,
276
- {
277
- handleCheckout,
278
- variant: "primary",
279
- size: drawer.isMobile ? "sm" : "lg",
280
- className: cn(`rounded-${drawer.isMobile ? "md" : "lg"}`, cn(
281
- drawer.isMobile ? drawer.showRecent ? "pl-3.5 pr-2.5" : "min-w-[320px]" : drawer.showRecent ? "" : "w-[320px]",
282
- "text-sm font-semibold"
283
- )),
284
- centerText: drawer.isMobile ? !drawer.showRecent : true
285
- }
286
- )
287
- ] })
288
- ] });
289
- });
290
- var micro_default = Micro;
291
11
  var CommerceUIComponent = observer(() => {
292
12
  const buy = useSelectAndBuy();
293
13
  const drawer = useCommerceDrawer();
@@ -313,7 +33,7 @@ var CommerceUIComponent = observer(() => {
313
33
  return false;
314
34
  };
315
35
  return /* @__PURE__ */ jsxs(
316
- shell_default,
36
+ CommerceDrawer,
317
37
  {
318
38
  handleHandleClicked,
319
39
  handleCloseGesture,
@@ -331,7 +51,7 @@ var CommerceUIComponent = observer(() => {
331
51
  {
332
52
  skuPath: buy.currentSkuPath,
333
53
  checkoutButton: /* @__PURE__ */ jsx(
334
- checkout_button_default,
54
+ CheckoutButton,
335
55
  {
336
56
  handleCheckout,
337
57
  className: "w-full min-w-[160px] sm:max-w-[320px]"
@@ -344,7 +64,7 @@ var CommerceUIComponent = observer(() => {
344
64
  }
345
65
  ) }),
346
66
  drawer.state === "micro" && /* @__PURE__ */ jsx(
347
- micro_default,
67
+ Micro,
348
68
  {
349
69
  handleCheckout,
350
70
  handleItemClicked,