@hanzo/commerce 7.5.1 → 7.6.0

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 (328) hide show
  1. package/client.ts +455 -57
  2. package/components/checkout/payment-step-form/index.tsx +3 -16
  3. package/index.ts +25 -2
  4. package/package.json +9 -12
  5. package/.turbo/turbo-build.log +0 -5
  6. package/LICENSE.md +0 -21
  7. package/dist/billing.d.ts +0 -2
  8. package/dist/billing.js +0 -3
  9. package/dist/billing.js.map +0 -1
  10. package/dist/client.d.ts +0 -151
  11. package/dist/client.js +0 -188
  12. package/dist/client.js.map +0 -1
  13. package/dist/components/Icons.d.ts +0 -18
  14. package/dist/components/Icons.js +0 -19
  15. package/dist/components/Icons.js.map +0 -1
  16. package/dist/components/Icons.jsx +0 -19
  17. package/dist/components/Icons.jsx.map +0 -1
  18. package/dist/components/add-to-cart-widget.d.ts +0 -11
  19. package/dist/components/add-to-cart-widget.js +0 -85
  20. package/dist/components/add-to-cart-widget.js.map +0 -1
  21. package/dist/components/add-to-cart-widget.jsx +0 -99
  22. package/dist/components/add-to-cart-widget.jsx.map +0 -1
  23. package/dist/components/buy/buy-card.d.ts +0 -30
  24. package/dist/components/buy/buy-card.js +0 -109
  25. package/dist/components/buy/buy-card.js.map +0 -1
  26. package/dist/components/buy/buy-card.jsx +0 -123
  27. package/dist/components/buy/buy-card.jsx.map +0 -1
  28. package/dist/components/buy/carousel-buy-card.d.ts +0 -12
  29. package/dist/components/buy/carousel-buy-card.js +0 -94
  30. package/dist/components/buy/carousel-buy-card.js.map +0 -1
  31. package/dist/components/buy/carousel-buy-card.jsx +0 -99
  32. package/dist/components/buy/carousel-buy-card.jsx.map +0 -1
  33. package/dist/components/buy/multi-family/all-variants-carousel.d.ts +0 -4
  34. package/dist/components/buy/multi-family/all-variants-carousel.js +0 -115
  35. package/dist/components/buy/multi-family/all-variants-carousel.js.map +0 -1
  36. package/dist/components/buy/multi-family/all-variants-carousel.jsx +0 -147
  37. package/dist/components/buy/multi-family/all-variants-carousel.jsx.map +0 -1
  38. package/dist/components/buy/multi-family/family-carousel/index.d.ts +0 -4
  39. package/dist/components/buy/multi-family/family-carousel/index.js +0 -27
  40. package/dist/components/buy/multi-family/family-carousel/index.js.map +0 -1
  41. package/dist/components/buy/multi-family/family-carousel/index.jsx +0 -34
  42. package/dist/components/buy/multi-family/family-carousel/index.jsx.map +0 -1
  43. package/dist/components/buy/multi-family/family-carousel/slide.d.ts +0 -11
  44. package/dist/components/buy/multi-family/family-carousel/slide.js +0 -35
  45. package/dist/components/buy/multi-family/family-carousel/slide.js.map +0 -1
  46. package/dist/components/buy/multi-family/family-carousel/slide.jsx +0 -41
  47. package/dist/components/buy/multi-family/family-carousel/slide.jsx.map +0 -1
  48. package/dist/components/buy/multi-family/family-carousel/state.d.ts +0 -20
  49. package/dist/components/buy/multi-family/family-carousel/state.js +0 -59
  50. package/dist/components/buy/multi-family/family-carousel/state.js.map +0 -1
  51. package/dist/components/buy/multi-family/index.d.ts +0 -2
  52. package/dist/components/buy/multi-family/index.js +0 -3
  53. package/dist/components/buy/multi-family/index.js.map +0 -1
  54. package/dist/components/buy/single-family-selector.d.ts +0 -15
  55. package/dist/components/buy/single-family-selector.js +0 -28
  56. package/dist/components/buy/single-family-selector.js.map +0 -1
  57. package/dist/components/buy/single-family-selector.jsx +0 -31
  58. package/dist/components/buy/single-family-selector.jsx.map +0 -1
  59. package/dist/components/buy/title-and-byline.d.ts +0 -8
  60. package/dist/components/buy/title-and-byline.js +0 -7
  61. package/dist/components/buy/title-and-byline.js.map +0 -1
  62. package/dist/components/buy/title-and-byline.jsx +0 -9
  63. package/dist/components/buy/title-and-byline.jsx.map +0 -1
  64. package/dist/components/cart/cart-panel/cart-line-item.d.ts +0 -11
  65. package/dist/components/cart/cart-panel/cart-line-item.js +0 -25
  66. package/dist/components/cart/cart-panel/cart-line-item.js.map +0 -1
  67. package/dist/components/cart/cart-panel/cart-line-item.jsx +0 -39
  68. package/dist/components/cart/cart-panel/cart-line-item.jsx.map +0 -1
  69. package/dist/components/cart/cart-panel/index.d.ts +0 -19
  70. package/dist/components/cart/cart-panel/index.js +0 -65
  71. package/dist/components/cart/cart-panel/index.js.map +0 -1
  72. package/dist/components/cart/cart-panel/index.jsx +0 -79
  73. package/dist/components/cart/cart-panel/index.jsx.map +0 -1
  74. package/dist/components/cart/cart-panel/promo-code.d.ts +0 -4
  75. package/dist/components/cart/cart-panel/promo-code.js +0 -62
  76. package/dist/components/cart/cart-panel/promo-code.js.map +0 -1
  77. package/dist/components/cart/cart-panel/promo-code.jsx +0 -74
  78. package/dist/components/cart/cart-panel/promo-code.jsx.map +0 -1
  79. package/dist/components/cart/cart-panel/total-area.d.ts +0 -7
  80. package/dist/components/cart/cart-panel/total-area.js +0 -14
  81. package/dist/components/cart/cart-panel/total-area.js.map +0 -1
  82. package/dist/components/cart/cart-panel/total-area.jsx +0 -37
  83. package/dist/components/cart/cart-panel/total-area.jsx.map +0 -1
  84. package/dist/components/checkout/payment-step-form/card-icon-row.d.ts +0 -2
  85. package/dist/components/checkout/payment-step-form/card-icon-row.js +0 -14
  86. package/dist/components/checkout/payment-step-form/card-icon-row.js.map +0 -1
  87. package/dist/components/checkout/payment-step-form/card-icon-row.jsx +0 -22
  88. package/dist/components/checkout/payment-step-form/card-icon-row.jsx.map +0 -1
  89. package/dist/components/checkout/payment-step-form/card-icons/amex.d.ts +0 -4
  90. package/dist/components/checkout/payment-step-form/card-icons/amex.js +0 -6
  91. package/dist/components/checkout/payment-step-form/card-icons/amex.js.map +0 -1
  92. package/dist/components/checkout/payment-step-form/card-icons/amex.jsx +0 -12
  93. package/dist/components/checkout/payment-step-form/card-icons/amex.jsx.map +0 -1
  94. package/dist/components/checkout/payment-step-form/card-icons/diners-club.d.ts +0 -4
  95. package/dist/components/checkout/payment-step-form/card-icons/diners-club.js +0 -6
  96. package/dist/components/checkout/payment-step-form/card-icons/diners-club.js.map +0 -1
  97. package/dist/components/checkout/payment-step-form/card-icons/diners-club.jsx +0 -10
  98. package/dist/components/checkout/payment-step-form/card-icons/diners-club.jsx.map +0 -1
  99. package/dist/components/checkout/payment-step-form/card-icons/discover.d.ts +0 -4
  100. package/dist/components/checkout/payment-step-form/card-icons/discover.js +0 -6
  101. package/dist/components/checkout/payment-step-form/card-icons/discover.js.map +0 -1
  102. package/dist/components/checkout/payment-step-form/card-icons/discover.jsx +0 -12
  103. package/dist/components/checkout/payment-step-form/card-icons/discover.jsx.map +0 -1
  104. package/dist/components/checkout/payment-step-form/card-icons/jcb.d.ts +0 -4
  105. package/dist/components/checkout/payment-step-form/card-icons/jcb.js +0 -6
  106. package/dist/components/checkout/payment-step-form/card-icons/jcb.js.map +0 -1
  107. package/dist/components/checkout/payment-step-form/card-icons/jcb.jsx +0 -23
  108. package/dist/components/checkout/payment-step-form/card-icons/jcb.jsx.map +0 -1
  109. package/dist/components/checkout/payment-step-form/card-icons/mastercard.d.ts +0 -4
  110. package/dist/components/checkout/payment-step-form/card-icons/mastercard.js +0 -6
  111. package/dist/components/checkout/payment-step-form/card-icons/mastercard.js.map +0 -1
  112. package/dist/components/checkout/payment-step-form/card-icons/mastercard.jsx +0 -12
  113. package/dist/components/checkout/payment-step-form/card-icons/mastercard.jsx.map +0 -1
  114. package/dist/components/checkout/payment-step-form/card-icons/visa.d.ts +0 -4
  115. package/dist/components/checkout/payment-step-form/card-icons/visa.js +0 -6
  116. package/dist/components/checkout/payment-step-form/card-icons/visa.js.map +0 -1
  117. package/dist/components/checkout/payment-step-form/card-icons/visa.jsx +0 -10
  118. package/dist/components/checkout/payment-step-form/card-icons/visa.jsx.map +0 -1
  119. package/dist/components/checkout/payment-step-form/cc-button.d.ts +0 -3
  120. package/dist/components/checkout/payment-step-form/cc-button.js +0 -6
  121. package/dist/components/checkout/payment-step-form/cc-button.js.map +0 -1
  122. package/dist/components/checkout/payment-step-form/cc-button.jsx +0 -9
  123. package/dist/components/checkout/payment-step-form/cc-button.jsx.map +0 -1
  124. package/dist/components/checkout/payment-step-form/contact-form.d.ts +0 -5
  125. package/dist/components/checkout/payment-step-form/contact-form.js +0 -6
  126. package/dist/components/checkout/payment-step-form/contact-form.js.map +0 -1
  127. package/dist/components/checkout/payment-step-form/contact-form.jsx +0 -21
  128. package/dist/components/checkout/payment-step-form/contact-form.jsx.map +0 -1
  129. package/dist/components/checkout/payment-step-form/crypto-icons/btc.d.ts +0 -4
  130. package/dist/components/checkout/payment-step-form/crypto-icons/btc.js +0 -6
  131. package/dist/components/checkout/payment-step-form/crypto-icons/btc.js.map +0 -1
  132. package/dist/components/checkout/payment-step-form/crypto-icons/btc.jsx +0 -8
  133. package/dist/components/checkout/payment-step-form/crypto-icons/btc.jsx.map +0 -1
  134. package/dist/components/checkout/payment-step-form/crypto-icons/eth.d.ts +0 -4
  135. package/dist/components/checkout/payment-step-form/crypto-icons/eth.js +0 -6
  136. package/dist/components/checkout/payment-step-form/crypto-icons/eth.js.map +0 -1
  137. package/dist/components/checkout/payment-step-form/crypto-icons/eth.jsx +0 -17
  138. package/dist/components/checkout/payment-step-form/crypto-icons/eth.jsx.map +0 -1
  139. package/dist/components/checkout/payment-step-form/crypto-icons/usdt.d.ts +0 -4
  140. package/dist/components/checkout/payment-step-form/crypto-icons/usdt.js +0 -6
  141. package/dist/components/checkout/payment-step-form/crypto-icons/usdt.js.map +0 -1
  142. package/dist/components/checkout/payment-step-form/crypto-icons/usdt.jsx +0 -10
  143. package/dist/components/checkout/payment-step-form/crypto-icons/usdt.jsx.map +0 -1
  144. package/dist/components/checkout/payment-step-form/index.d.ts +0 -4
  145. package/dist/components/checkout/payment-step-form/index.js +0 -77
  146. package/dist/components/checkout/payment-step-form/index.js.map +0 -1
  147. package/dist/components/checkout/payment-step-form/index.jsx +0 -86
  148. package/dist/components/checkout/payment-step-form/index.jsx.map +0 -1
  149. package/dist/components/checkout/payment-step-form/methods/bank-transfer.d.ts +0 -4
  150. package/dist/components/checkout/payment-step-form/methods/bank-transfer.js +0 -24
  151. package/dist/components/checkout/payment-step-form/methods/bank-transfer.js.map +0 -1
  152. package/dist/components/checkout/payment-step-form/methods/bank-transfer.jsx +0 -44
  153. package/dist/components/checkout/payment-step-form/methods/bank-transfer.jsx.map +0 -1
  154. package/dist/components/checkout/payment-step-form/methods/card.d.ts +0 -4
  155. package/dist/components/checkout/payment-step-form/methods/card.js +0 -160
  156. package/dist/components/checkout/payment-step-form/methods/card.js.map +0 -1
  157. package/dist/components/checkout/payment-step-form/methods/card.jsx +0 -182
  158. package/dist/components/checkout/payment-step-form/methods/card.jsx.map +0 -1
  159. package/dist/components/checkout/payment-step-form/methods/crypto.d.ts +0 -9
  160. package/dist/components/checkout/payment-step-form/methods/crypto.js +0 -137
  161. package/dist/components/checkout/payment-step-form/methods/crypto.js.map +0 -1
  162. package/dist/components/checkout/payment-step-form/methods/crypto.jsx +0 -167
  163. package/dist/components/checkout/payment-step-form/methods/crypto.jsx.map +0 -1
  164. package/dist/components/checkout/payment-step-form/methods/index.d.ts +0 -6
  165. package/dist/components/checkout/payment-step-form/methods/index.js +0 -21
  166. package/dist/components/checkout/payment-step-form/methods/index.js.map +0 -1
  167. package/dist/components/checkout/shipping-step-form.d.ts +0 -3
  168. package/dist/components/checkout/shipping-step-form.js +0 -53
  169. package/dist/components/checkout/shipping-step-form.js.map +0 -1
  170. package/dist/components/checkout/shipping-step-form.jsx +0 -106
  171. package/dist/components/checkout/shipping-step-form.jsx.map +0 -1
  172. package/dist/components/index.d.ts +0 -8
  173. package/dist/components/index.js +0 -9
  174. package/dist/components/index.js.map +0 -1
  175. package/dist/components/item/product-card.d.ts +0 -7
  176. package/dist/components/item/product-card.js +0 -9
  177. package/dist/components/item/product-card.js.map +0 -1
  178. package/dist/components/item/product-card.jsx +0 -21
  179. package/dist/components/item/product-card.jsx.map +0 -1
  180. package/dist/components/item-selector/button.d.ts +0 -4
  181. package/dist/components/item-selector/button.js +0 -47
  182. package/dist/components/item-selector/button.js.map +0 -1
  183. package/dist/components/item-selector/button.jsx +0 -65
  184. package/dist/components/item-selector/button.jsx.map +0 -1
  185. package/dist/components/item-selector/carousel/index.d.ts +0 -12
  186. package/dist/components/item-selector/carousel/index.js +0 -74
  187. package/dist/components/item-selector/carousel/index.js.map +0 -1
  188. package/dist/components/item-selector/carousel/index.jsx +0 -101
  189. package/dist/components/item-selector/carousel/index.jsx.map +0 -1
  190. package/dist/components/item-selector/carousel/slider.d.ts +0 -8
  191. package/dist/components/item-selector/carousel/slider.js +0 -12
  192. package/dist/components/item-selector/carousel/slider.js.map +0 -1
  193. package/dist/components/item-selector/carousel/slider.jsx +0 -11
  194. package/dist/components/item-selector/carousel/slider.jsx.map +0 -1
  195. package/dist/components/item-selector/index.d.ts +0 -2
  196. package/dist/components/item-selector/index.js +0 -3
  197. package/dist/components/item-selector/index.js.map +0 -1
  198. package/dist/components/item-selector/quantity-indicator.d.ts +0 -9
  199. package/dist/components/item-selector/quantity-indicator.js +0 -16
  200. package/dist/components/item-selector/quantity-indicator.js.map +0 -1
  201. package/dist/components/item-selector/quantity-indicator.jsx +0 -23
  202. package/dist/components/item-selector/quantity-indicator.jsx.map +0 -1
  203. package/dist/components/node-tabs/index.d.ts +0 -14
  204. package/dist/components/node-tabs/index.js +0 -42
  205. package/dist/components/node-tabs/index.js.map +0 -1
  206. package/dist/components/node-tabs/index.jsx +0 -48
  207. package/dist/components/node-tabs/index.jsx.map +0 -1
  208. package/dist/components/node-tabs/node-image.d.ts +0 -6
  209. package/dist/components/node-tabs/node-image.js +0 -13
  210. package/dist/components/node-tabs/node-image.js.map +0 -1
  211. package/dist/components/node-tabs/node-image.jsx +0 -12
  212. package/dist/components/node-tabs/node-image.jsx.map +0 -1
  213. package/dist/index.d.ts +0 -7
  214. package/dist/index.js +0 -7
  215. package/dist/index.js.map +0 -1
  216. package/dist/service/context.d.ts +0 -8
  217. package/dist/service/context.js +0 -19
  218. package/dist/service/context.js.map +0 -1
  219. package/dist/service/context.jsx +0 -20
  220. package/dist/service/context.jsx.map +0 -1
  221. package/dist/service/debug.d.ts +0 -10
  222. package/dist/service/debug.js +0 -30
  223. package/dist/service/debug.js.map +0 -1
  224. package/dist/service/impls/standalone/actual-line-item.d.ts +0 -40
  225. package/dist/service/impls/standalone/actual-line-item.js +0 -84
  226. package/dist/service/impls/standalone/actual-line-item.js.map +0 -1
  227. package/dist/service/impls/standalone/get-instance.d.ts +0 -2
  228. package/dist/service/impls/standalone/get-instance.js +0 -39
  229. package/dist/service/impls/standalone/get-instance.js.map +0 -1
  230. package/dist/service/impls/standalone/index.d.ts +0 -67
  231. package/dist/service/impls/standalone/index.js +0 -416
  232. package/dist/service/impls/standalone/index.js.map +0 -1
  233. package/dist/service/impls/standalone/order/firebase.d.ts +0 -6
  234. package/dist/service/impls/standalone/order/firebase.js +0 -6
  235. package/dist/service/impls/standalone/order/firebase.js.map +0 -1
  236. package/dist/service/impls/standalone/order/index.d.ts +0 -30
  237. package/dist/service/impls/standalone/order/index.js +0 -21
  238. package/dist/service/impls/standalone/order/index.js.map +0 -1
  239. package/dist/service/impls/standalone/persistence.d.ts +0 -4
  240. package/dist/service/impls/standalone/persistence.js +0 -22
  241. package/dist/service/impls/standalone/persistence.js.map +0 -1
  242. package/dist/service/path-utils.d.ts +0 -7
  243. package/dist/service/path-utils.js +0 -16
  244. package/dist/service/path-utils.js.map +0 -1
  245. package/dist/service/sep.d.ts +0 -6
  246. package/dist/service/sep.js +0 -6
  247. package/dist/service/sep.js.map +0 -1
  248. package/dist/types/category-node.d.ts +0 -36
  249. package/dist/types/category-node.js +0 -2
  250. package/dist/types/category-node.js.map +0 -1
  251. package/dist/types/checkout.d.ts +0 -33
  252. package/dist/types/checkout.js +0 -2
  253. package/dist/types/checkout.js.map +0 -1
  254. package/dist/types/commerce-config.d.ts +0 -11
  255. package/dist/types/commerce-config.js +0 -2
  256. package/dist/types/commerce-config.js.map +0 -1
  257. package/dist/types/commerce-service.d.ts +0 -109
  258. package/dist/types/commerce-service.js +0 -2
  259. package/dist/types/commerce-service.js.map +0 -1
  260. package/dist/types/family.d.ts +0 -16
  261. package/dist/types/family.js +0 -2
  262. package/dist/types/family.js.map +0 -1
  263. package/dist/types/index.d.ts +0 -13
  264. package/dist/types/index.js +0 -8
  265. package/dist/types/index.js.map +0 -1
  266. package/dist/types/item-selector.d.ts +0 -72
  267. package/dist/types/item-selector.js +0 -2
  268. package/dist/types/item-selector.js.map +0 -1
  269. package/dist/types/line-item.d.ts +0 -14
  270. package/dist/types/line-item.js +0 -2
  271. package/dist/types/line-item.js.map +0 -1
  272. package/dist/types/multi-family-selector-props.d.ts +0 -16
  273. package/dist/types/multi-family-selector-props.js +0 -2
  274. package/dist/types/multi-family-selector-props.js.map +0 -1
  275. package/dist/types/product.d.ts +0 -15
  276. package/dist/types/product.js +0 -2
  277. package/dist/types/product.js.map +0 -1
  278. package/dist/types/promo.d.ts +0 -7
  279. package/dist/types/promo.js +0 -2
  280. package/dist/types/promo.js.map +0 -1
  281. package/dist/types/selection-ui-specifier.d.ts +0 -40
  282. package/dist/types/selection-ui-specifier.js +0 -2
  283. package/dist/types/selection-ui-specifier.js.map +0 -1
  284. package/dist/types/string-mutator.d.ts +0 -9
  285. package/dist/types/string-mutator.js +0 -2
  286. package/dist/types/string-mutator.js.map +0 -1
  287. package/dist/types/token-separators.d.ts +0 -6
  288. package/dist/types/token-separators.js +0 -2
  289. package/dist/types/token-separators.js.map +0 -1
  290. package/dist/util/analytics.d.ts +0 -9
  291. package/dist/util/analytics.js +0 -10
  292. package/dist/util/analytics.js.map +0 -1
  293. package/dist/util/countries.d.ts +0 -7
  294. package/dist/util/countries.js +0 -197
  295. package/dist/util/countries.js.map +0 -1
  296. package/dist/util/error.d.ts +0 -1
  297. package/dist/util/error.js +0 -22
  298. package/dist/util/error.js.map +0 -1
  299. package/dist/util/index.d.ts +0 -15
  300. package/dist/util/index.js +0 -54
  301. package/dist/util/index.js.map +0 -1
  302. package/dist/util/item-selector-options-accessor.d.ts +0 -3
  303. package/dist/util/item-selector-options-accessor.js +0 -27
  304. package/dist/util/item-selector-options-accessor.js.map +0 -1
  305. package/dist/util/line-item-ref.d.ts +0 -8
  306. package/dist/util/line-item-ref.js +0 -15
  307. package/dist/util/line-item-ref.js.map +0 -1
  308. package/dist/util/multi-family-selector-options-accessor.d.ts +0 -3
  309. package/dist/util/multi-family-selector-options-accessor.js +0 -11
  310. package/dist/util/multi-family-selector-options-accessor.js.map +0 -1
  311. package/dist/util/obs-string-mutator.d.ts +0 -8
  312. package/dist/util/obs-string-mutator.js +0 -15
  313. package/dist/util/obs-string-mutator.js.map +0 -1
  314. package/dist/util/product-media-accessor.d.ts +0 -29
  315. package/dist/util/product-media-accessor.js +0 -22
  316. package/dist/util/product-media-accessor.js.map +0 -1
  317. package/dist/util/promo-codes.d.ts +0 -3
  318. package/dist/util/promo-codes.js +0 -100
  319. package/dist/util/promo-codes.js.map +0 -1
  320. package/dist/util/selection-ui-specifiers.d.ts +0 -3
  321. package/dist/util/selection-ui-specifiers.js +0 -24
  322. package/dist/util/selection-ui-specifiers.js.map +0 -1
  323. package/dist/util/square-payment.d.ts +0 -7
  324. package/dist/util/square-payment.js +0 -37
  325. package/dist/util/square-payment.js.map +0 -1
  326. package/dist/util/use-sync-sku-param-w-current-item.d.ts +0 -2
  327. package/dist/util/use-sync-sku-param-w-current-item.js +0 -61
  328. package/dist/util/use-sync-sku-param-w-current-item.js.map +0 -1
@@ -1,28 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React from 'react';
3
- import { observer } from 'mobx-react-lite';
4
- import { MediaStack, Skeleton } from '@hanzo/ui/primitives';
5
- import { useCommerce } from '../..';
6
- import TitleAndByline from './title-and-byline';
7
- import { accessItemOptions } from '../../util';
8
- import { cn } from '@hanzo/ui/util';
9
- const DEF_MEDIA_CONSTRAINT = { w: 200, h: 200 };
10
- const SingleFamilySelector = ({ items, Selector, selOptions, scrollable = false, showItemMedia = true, mediaConstraint = DEF_MEDIA_CONSTRAINT, mobile = false, clx = '', titleAreaClx = '' }) => {
11
- const cmmc = useCommerce();
12
- const MyTitleAndByline = observer(({ clx = '' }) => {
13
- const { familyTitle, showFamilyByline } = accessItemOptions(selOptions);
14
- const title = (familyTitle === 'none' ?
15
- undefined
16
- :
17
- (familyTitle === 'long' ?
18
- cmmc.currentFamily?.title
19
- :
20
- (cmmc.currentFamily?.titleShort ?? cmmc.currentFamily?.title)));
21
- const byline = (familyTitle !== 'none') && showFamilyByline ? cmmc.currentFamily?.byline : undefined;
22
- return (_jsx(TitleAndByline, { clx: clx, title: title, byline: byline }));
23
- });
24
- const ItemMedia = observer(() => (cmmc.currentItem ? (_jsx(MediaStack, { media: cmmc.currentItem, constrainTo: mediaConstraint, clx: 'mb-2 ' + (scrollable ? 'shrink-0' : '') })) : (_jsx(Skeleton, { className: 'w-[200px] h-[200px] my-2 ' + (scrollable ? 'shrink-0' : '') }))));
25
- return (_jsxs("div", { className: cn(clx, 'flex flex-col items-center', (scrollable ? 'shrink' : '')), children: [_jsx(MyTitleAndByline, { clx: cn(titleAreaClx, (scrollable ? 'shrink-0' : '')) }), showItemMedia && (_jsx(ItemMedia, {})), items && (_jsx(Selector, { items: items, selectedItemRef: cmmc, selectSku: cmmc.setCurrentItem.bind(cmmc), scrollable: scrollable, mobile: mobile, options: selOptions, clx: (scrollable ? 'shrink' : '') }))] }));
26
- };
27
- export default SingleFamilySelector;
28
- //# sourceMappingURL=single-family-selector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"single-family-selector.js","sourceRoot":"","sources":["../../../components/buy/single-family-selector.tsx"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- import React from 'react';
2
- import { observer } from 'mobx-react-lite';
3
- import { MediaStack, Skeleton } from '@hanzo/ui/primitives';
4
- import { useCommerce } from '../..';
5
- import TitleAndByline from './title-and-byline';
6
- import { accessItemOptions } from '../../util';
7
- import { cn } from '@hanzo/ui/util';
8
- const DEF_MEDIA_CONSTRAINT = { w: 200, h: 200 };
9
- const SingleFamilySelector = ({ items, Selector, selOptions, scrollable = false, showItemMedia = true, mediaConstraint = DEF_MEDIA_CONSTRAINT, mobile = false, clx = '', titleAreaClx = '' }) => {
10
- const cmmc = useCommerce();
11
- const MyTitleAndByline = observer(({ clx = '' }) => {
12
- const { familyTitle, showFamilyByline } = accessItemOptions(selOptions);
13
- const title = (familyTitle === 'none' ?
14
- undefined
15
- :
16
- (familyTitle === 'long' ?
17
- cmmc.currentFamily?.title
18
- :
19
- (cmmc.currentFamily?.titleShort ?? cmmc.currentFamily?.title)));
20
- const byline = (familyTitle !== 'none') && showFamilyByline ? cmmc.currentFamily?.byline : undefined;
21
- return (<TitleAndByline clx={clx} title={title} byline={byline}/>);
22
- });
23
- const ItemMedia = observer(() => (cmmc.currentItem ? (<MediaStack media={cmmc.currentItem} constrainTo={mediaConstraint} clx={'mb-2 ' + (scrollable ? 'shrink-0' : '')}/>) : (<Skeleton className={'w-[200px] h-[200px] my-2 ' + (scrollable ? 'shrink-0' : '')}/>)));
24
- return (<div className={cn(clx, 'flex flex-col items-center', (scrollable ? 'shrink' : ''))}>
25
- <MyTitleAndByline clx={cn(titleAreaClx, (scrollable ? 'shrink-0' : ''))}/>
26
- {showItemMedia && (<ItemMedia />)}
27
- {items && (<Selector items={items} selectedItemRef={cmmc} selectSku={cmmc.setCurrentItem.bind(cmmc)} scrollable={scrollable} mobile={mobile} options={selOptions} clx={(scrollable ? 'shrink' : '')}/>)}
28
- </div>);
29
- };
30
- export default SingleFamilySelector;
31
- //# sourceMappingURL=single-family-selector.jsx.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"single-family-selector.jsx","sourceRoot":"","sources":["../../../components/buy/single-family-selector.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import React from 'react';
2
- declare const TitleAndByline: React.FC<{
3
- title: string | undefined;
4
- byline?: string | undefined;
5
- clx?: string;
6
- bylineClx?: string;
7
- }>;
8
- export default TitleAndByline;
@@ -1,7 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React from 'react';
3
- import { ApplyTypography } from '@hanzo/ui/primitives';
4
- import { cn } from '@hanzo/ui/util';
5
- const TitleAndByline = ({ title, byline, clx = '', bylineClx = '' }) => ((title || byline) ? (_jsxs(ApplyTypography, { className: cn('flex flex-col items-center !gap-0 [&>*]:!m-0 ', clx), children: [_jsx("h4", { children: title }), byline && (_jsx("h6", { className: bylineClx, children: byline }))] })) : (null));
6
- export default TitleAndByline;
7
- //# sourceMappingURL=title-and-byline.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"title-and-byline.js","sourceRoot":"","sources":["../../../components/buy/title-and-byline.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAEnC,MAAM,cAAc,GAKf,CAAC,EACJ,KAAK,EACL,MAAM,EACN,GAAG,GAAC,EAAE,EACN,SAAS,GAAC,EAAE,EACb,EAAE,EAAE,CAAC,CAAE,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CACxB,MAAC,eAAe,IAAC,SAAS,EAAE,EAAE,CAAC,+CAA+C,EAAE,GAAG,CAAC,aAClF,uBAAK,KAAK,GAAM,EACf,MAAM,IAAI,CAAC,aAAI,SAAS,EAAE,SAAS,YAAG,MAAM,GAAM,CAAC,IACpC,CACnB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CACX,CAAA;AAED,eAAe,cAAc,CAAA"}
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- import { ApplyTypography } from '@hanzo/ui/primitives';
3
- import { cn } from '@hanzo/ui/util';
4
- const TitleAndByline = ({ title, byline, clx = '', bylineClx = '' }) => ((title || byline) ? (<ApplyTypography className={cn('flex flex-col items-center !gap-0 [&>*]:!m-0 ', clx)}>
5
- <h4>{title}</h4>
6
- {byline && (<h6 className={bylineClx}>{byline}</h6>)}
7
- </ApplyTypography>) : (null));
8
- export default TitleAndByline;
9
- //# sourceMappingURL=title-and-byline.jsx.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"title-and-byline.jsx","sourceRoot":"","sources":["../../../components/buy/title-and-byline.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAEnC,MAAM,cAAc,GAKf,CAAC,EACJ,KAAK,EACL,MAAM,EACN,GAAG,GAAC,EAAE,EACN,SAAS,GAAC,EAAE,EACb,EAAE,EAAE,CAAC,CAAE,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CACxB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,+CAA+C,EAAE,GAAG,CAAC,CAAC,CACnF;MAAA,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CACf;MAAA,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CACtD;IAAA,EAAE,eAAe,CAAC,CACnB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CACX,CAAA;AAED,eAAe,cAAc,CAAA"}
@@ -1,11 +0,0 @@
1
- import React from 'react';
2
- import type { LineItem } from '../../../types';
3
- declare const CartLineItem: React.FC<{
4
- item: LineItem;
5
- className?: string;
6
- imgSizePx?: number;
7
- showPromoCode?: boolean;
8
- itemClicked?: (item: LineItem) => void;
9
- selected?: boolean;
10
- }>;
11
- export default CartLineItem;
@@ -1,25 +0,0 @@
1
- 'use client';
2
- import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
3
- import React from 'react';
4
- import { observer } from 'mobx-react-lite';
5
- import { cn } from '@hanzo/ui/util';
6
- import { Image } from '@hanzo/ui/primitives';
7
- import { formatCurrencyValue } from '../../../util';
8
- import AddToCartWidget from '../../add-to-cart-widget';
9
- import { useCommerce } from '../../../service/context';
10
- const DEF_IMG_SIZE = 40;
11
- const renderTitle = (t) => {
12
- const toks = t.split(', ');
13
- if (toks.length === 2) {
14
- return _jsxs(_Fragment, { children: [_jsxs("p", { children: [toks[0], ","] }), _jsx("p", { className: '', children: toks[1] })] });
15
- }
16
- return _jsx("p", { children: t });
17
- };
18
- const CartLineItem = observer(({ item, className = '', imgSizePx = DEF_IMG_SIZE, showPromoCode = false, itemClicked, selected = false }) => {
19
- const cmmc = useCommerce();
20
- const promoPrice = showPromoCode ? cmmc.itemPromoPrice(item) : undefined;
21
- return (_jsxs("div", { className: cn('flex flex-col justify-start items-start text-sm font-sans', 'border border-background rounded-sm p-1', selected ? 'border-foreground' : '', (itemClicked && !selected ? 'cursor-pointer hover:!border-muted-4' : 'cursor-default '), className), onClick: () => { itemClicked && itemClicked(item); }, children: [_jsxs("div", { className: 'flex flex-row justify-between items-center gap-1', children: [item.img ? (_jsx(Image, { def: item.img, constrainTo: { w: imgSizePx, h: imgSizePx } })) : ( // placeholder so things align
22
- _jsx("div", { style: { height: imgSizePx, width: imgSizePx }, className: 'bg-level-3' })), _jsx("div", { className: 'grow leading-tight ml-1', children: renderTitle(item.title) })] }), _jsxs("div", { className: 'flex flex-row items-center justify-between w-full', children: [_jsxs("div", { className: 'flex flex-row items-center', children: [_jsx(AddToCartWidget, { variant: 'minimal', item: item }), item.quantity > 1 && (_jsx("span", { className: 'pl-2.5', children: '@' + formatCurrencyValue(item.price) }))] }), _jsxs("div", { className: 'flex flex-row gap-1 items-center justify-end', children: [_jsx("span", { className: promoPrice ? 'line-through text-muted-2' : '', children: formatCurrencyValue(item.price * item.quantity) }), promoPrice && _jsx("span", { children: formatCurrencyValue(promoPrice * item.quantity) })] })] })] }));
23
- });
24
- export default CartLineItem;
25
- //# sourceMappingURL=cart-line-item.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cart-line-item.js","sourceRoot":"","sources":["../../../../components/cart/cart-panel/cart-line-item.tsx"],"names":[],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- 'use client';
2
- import React from 'react';
3
- import { observer } from 'mobx-react-lite';
4
- import { cn } from '@hanzo/ui/util';
5
- import { Image } from '@hanzo/ui/primitives';
6
- import { formatCurrencyValue } from '../../../util';
7
- import AddToCartWidget from '../../add-to-cart-widget';
8
- import { useCommerce } from '../../../service/context';
9
- const DEF_IMG_SIZE = 40;
10
- const renderTitle = (t) => {
11
- const toks = t.split(', ');
12
- if (toks.length === 2) {
13
- return <><p>{toks[0]},</p><p className=''>{toks[1]}</p></>;
14
- }
15
- return <p>{t}</p>;
16
- };
17
- const CartLineItem = observer(({ item, className = '', imgSizePx = DEF_IMG_SIZE, showPromoCode = false, itemClicked, selected = false }) => {
18
- const cmmc = useCommerce();
19
- const promoPrice = showPromoCode ? cmmc.itemPromoPrice(item) : undefined;
20
- return (<div className={cn('flex flex-col justify-start items-start text-sm font-sans', 'border border-background rounded-sm p-1', selected ? 'border-foreground' : '', (itemClicked && !selected ? 'cursor-pointer hover:!border-muted-4' : 'cursor-default '), className)} onClick={() => { itemClicked && itemClicked(item); }}>
21
- <div className='flex flex-row justify-between items-center gap-1'>
22
- {item.img ? (<Image def={item.img} constrainTo={{ w: imgSizePx, h: imgSizePx }}/>) : ( // placeholder so things align
23
- <div style={{ height: imgSizePx, width: imgSizePx }} className='bg-level-3'/>)}
24
- <div className='grow leading-tight ml-1'>{renderTitle(item.title)}</div>
25
- </div>
26
- <div className='flex flex-row items-center justify-between w-full'>
27
- <div className='flex flex-row items-center'>
28
- <AddToCartWidget variant='minimal' item={item}/>
29
- {item.quantity > 1 && (<span className='pl-2.5'>{'@' + formatCurrencyValue(item.price)}</span>)}
30
- </div>
31
- <div className='flex flex-row gap-1 items-center justify-end'>
32
- <span className={promoPrice ? 'line-through text-muted-2' : ''}>{formatCurrencyValue(item.price * item.quantity)}</span>
33
- {promoPrice && <span>{formatCurrencyValue(promoPrice * item.quantity)}</span>}
34
- </div>
35
- </div>
36
- </div>);
37
- });
38
- export default CartLineItem;
39
- //# sourceMappingURL=cart-line-item.jsx.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cart-line-item.jsx","sourceRoot":"","sources":["../../../../components/cart/cart-panel/cart-line-item.tsx"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import React, { type PropsWithChildren } from 'react';
2
- declare const CartPanel: React.FC<PropsWithChildren & {
3
- /** fix size and scroll after 'scrollAfter items in teh cart. */
4
- scrollAfter?: number;
5
- scrollHeightClx?: string;
6
- imgSizePx?: number;
7
- className?: string;
8
- itemClx?: string;
9
- listClx?: string;
10
- noItemsClx?: string;
11
- totalClx?: string;
12
- buttonClx?: string;
13
- showPromoCode?: boolean;
14
- showShipping?: boolean;
15
- selectItems?: boolean;
16
- /** if not provided, 'checkout' button will be rendered */
17
- handleCheckout?: () => void;
18
- }>;
19
- export default CartPanel;
@@ -1,65 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
- import React, { useLayoutEffect } from 'react';
4
- import { reaction } from 'mobx';
5
- import { observer } from 'mobx-react-lite';
6
- import { Button, ScrollArea } from '@hanzo/ui/primitives';
7
- import { cn } from '@hanzo/ui/util';
8
- import { useCommerce } from '../../../service/context';
9
- import { sendFBEvent, sendGAEvent } from '../../../util/analytics';
10
- import CartLineItem from './cart-line-item';
11
- import TotalArea from './total-area';
12
- const CartPanel = observer(({
13
- /** If provided, 'children' is rendered above the items. eg, a heading. */
14
- children, scrollAfter = 5, scrollHeightClx = 'h-[70vh]', imgSizePx = 40, className = '', itemClx = '', listClx = '', noItemsClx = '', totalClx = '', buttonClx = '', showPromoCode = false, showShipping = false, selectItems = false, handleCheckout, }) => {
15
- const cmmc = useCommerce();
16
- useLayoutEffect(() => {
17
- if (!cmmc) {
18
- return;
19
- }
20
- if (!cmmc.cartEmpty && !cmmc.currentItem) {
21
- cmmc.setCurrentItem(cmmc.cartItems[0].sku);
22
- }
23
- // return mobx disposer
24
- return reaction(() => (cmmc.cartItems.length), (itemCount) => {
25
- if (itemCount > 0) {
26
- cmmc.setCurrentItem(cmmc.cartItems[0].sku);
27
- }
28
- });
29
- }, []);
30
- if (!cmmc) {
31
- return _jsx("div", {});
32
- }
33
- const _handleCheckout = () => {
34
- sendGAEvent('begin_checkout', {
35
- currency: 'USD',
36
- value: cmmc.cartTotal,
37
- items: cmmc.cartItems.map((item) => ({
38
- item_id: item.sku,
39
- item_name: item.title,
40
- item_category: item.familyId,
41
- price: item.price,
42
- quantity: item.quantity
43
- })),
44
- });
45
- sendFBEvent('InitiateCheckout', {
46
- content_ids: cmmc.cartItems.map((item) => item.sku),
47
- contents: cmmc.cartItems.map(item => ({
48
- id: item.sku,
49
- quantity: item.quantity
50
- })),
51
- num_items: cmmc.cartItems.length,
52
- value: cmmc.cartTotal,
53
- currency: 'USD',
54
- });
55
- handleCheckout && handleCheckout();
56
- };
57
- const itemClicked = (item) => {
58
- cmmc.setCurrentItem(item.sku);
59
- };
60
- const MainStuff = observer(() => (_jsxs(_Fragment, { children: [cmmc.cartEmpty ? (_jsx("p", { className: cn('text-center my-3', noItemsClx), children: "No items" })) : (_jsx(_Fragment, { children: cmmc.cartItems.map((item) => (_jsx(CartLineItem, { imgSizePx: imgSizePx, item: item, className: cn('mb-2', itemClx), showPromoCode: showPromoCode, itemClicked: selectItems ? itemClicked : undefined, selected: selectItems ? cmmc.currentItem?.sku === item.sku : false }, `mobile-${item.sku}`))) })), _jsx(TotalArea, { clx: totalClx, showPromoCode: showPromoCode, showShipping: showShipping })] })));
61
- const scrolling = (cmmc.cartItems.length > scrollAfter);
62
- return (_jsxs("div", { className: cn('border p-4 rounded-lg flex flex-col', className, scrolling ? scrollHeightClx : 'h-auto'), children: [children, scrolling ? (_jsx(ScrollArea, { className: cn('mt-2 w-full shrink py-0', listClx), children: _jsx(MainStuff, {}) })) : (_jsx("div", { className: cn('mt-2 w-full', listClx), children: _jsx(MainStuff, {}) })), handleCheckout && !cmmc.cartEmpty && (_jsx(Button, { onClick: _handleCheckout, variant: 'primary', rounded: 'lg', className: cn('mt-12 mx-auto w-full sm:max-w-[220px]', buttonClx), children: "Checkout" }))] }));
63
- });
64
- export default CartPanel;
65
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../components/cart/cart-panel/index.tsx"],"names":[],"mappings":"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"}
@@ -1,79 +0,0 @@
1
- 'use client';
2
- import React, { useLayoutEffect } from 'react';
3
- import { reaction } from 'mobx';
4
- import { observer } from 'mobx-react-lite';
5
- import { Button, ScrollArea } from '@hanzo/ui/primitives';
6
- import { cn } from '@hanzo/ui/util';
7
- import { useCommerce } from '../../../service/context';
8
- import { sendFBEvent, sendGAEvent } from '../../../util/analytics';
9
- import CartLineItem from './cart-line-item';
10
- import TotalArea from './total-area';
11
- const CartPanel = observer(({
12
- /** If provided, 'children' is rendered above the items. eg, a heading. */
13
- children, scrollAfter = 5, scrollHeightClx = 'h-[70vh]', imgSizePx = 40, className = '', itemClx = '', listClx = '', noItemsClx = '', totalClx = '', buttonClx = '', showPromoCode = false, showShipping = false, selectItems = false, handleCheckout, }) => {
14
- const cmmc = useCommerce();
15
- useLayoutEffect(() => {
16
- if (!cmmc) {
17
- return;
18
- }
19
- if (!cmmc.cartEmpty && !cmmc.currentItem) {
20
- cmmc.setCurrentItem(cmmc.cartItems[0].sku);
21
- }
22
- // return mobx disposer
23
- return reaction(() => (cmmc.cartItems.length), (itemCount) => {
24
- if (itemCount > 0) {
25
- cmmc.setCurrentItem(cmmc.cartItems[0].sku);
26
- }
27
- });
28
- }, []);
29
- if (!cmmc) {
30
- return <div />;
31
- }
32
- const _handleCheckout = () => {
33
- sendGAEvent('begin_checkout', {
34
- currency: 'USD',
35
- value: cmmc.cartTotal,
36
- items: cmmc.cartItems.map((item) => ({
37
- item_id: item.sku,
38
- item_name: item.title,
39
- item_category: item.familyId,
40
- price: item.price,
41
- quantity: item.quantity
42
- })),
43
- });
44
- sendFBEvent('InitiateCheckout', {
45
- content_ids: cmmc.cartItems.map((item) => item.sku),
46
- contents: cmmc.cartItems.map(item => ({
47
- id: item.sku,
48
- quantity: item.quantity
49
- })),
50
- num_items: cmmc.cartItems.length,
51
- value: cmmc.cartTotal,
52
- currency: 'USD',
53
- });
54
- handleCheckout && handleCheckout();
55
- };
56
- const itemClicked = (item) => {
57
- cmmc.setCurrentItem(item.sku);
58
- };
59
- const MainStuff = observer(() => (<>
60
- {cmmc.cartEmpty ? (<p className={cn('text-center my-3', noItemsClx)}>No items</p>) : (<>
61
- {cmmc.cartItems.map((item) => (<CartLineItem key={`mobile-${item.sku}`} imgSizePx={imgSizePx} item={item} className={cn('mb-2', itemClx)} showPromoCode={showPromoCode} itemClicked={selectItems ? itemClicked : undefined} selected={selectItems ? cmmc.currentItem?.sku === item.sku : false}/>))}
62
- </>)}
63
- <TotalArea clx={totalClx} showPromoCode={showPromoCode} showShipping={showShipping}/>
64
- </>));
65
- const scrolling = (cmmc.cartItems.length > scrollAfter);
66
- return (<div className={cn('border p-4 rounded-lg flex flex-col', className, scrolling ? scrollHeightClx : 'h-auto')}>
67
- {children}
68
- {scrolling ? (<ScrollArea className={cn('mt-2 w-full shrink py-0', listClx)}>
69
- <MainStuff />
70
- </ScrollArea>) : (<div className={cn('mt-2 w-full', listClx)}>
71
- <MainStuff />
72
- </div>)}
73
- {handleCheckout && !cmmc.cartEmpty && (<Button onClick={_handleCheckout} variant='primary' rounded='lg' className={cn('mt-12 mx-auto w-full sm:max-w-[220px]', buttonClx)}>
74
- Checkout
75
- </Button>)}
76
- </div>);
77
- });
78
- export default CartPanel;
79
- //# sourceMappingURL=index.jsx.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../../components/cart/cart-panel/index.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- declare const PromoCode: (() => import("react/jsx-runtime").JSX.Element) & {
2
- displayName: string;
3
- };
4
- export default PromoCode;
@@ -1,62 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useEffect, useState } from 'react';
4
- import { useSearchParams } from 'next/navigation';
5
- import { observer } from 'mobx-react-lite';
6
- import { useForm } from 'react-hook-form';
7
- import * as z from 'zod';
8
- import { zodResolver } from '@hookform/resolvers/zod';
9
- import { Check } from 'lucide-react';
10
- import { Button, Input } from '@hanzo/ui/primitives';
11
- import { Form, FormControl, FormField, FormItem, } from '@hanzo/ui/form';
12
- import { useCommerce } from '../../../service/context';
13
- import getPromoFromApi from '../../../util/promo-codes';
14
- const formSchema = z.object({
15
- code: z.string().min(1, 'Invalid code'),
16
- });
17
- const PromoCode = observer(() => {
18
- const cmmc = useCommerce();
19
- const searchParams = useSearchParams();
20
- const [codeAccepted, setCodeAccepted] = useState(false);
21
- useEffect(() => {
22
- const code = searchParams.get('code');
23
- if (code) {
24
- getPromoFromApi(code).then((promo) => {
25
- if (promo) {
26
- form.setValue('code', code);
27
- setCodeAccepted(true);
28
- cmmc.setAppliedPromo(promo);
29
- }
30
- });
31
- }
32
- }, [searchParams]);
33
- useEffect(() => {
34
- if (cmmc.appliedPromo) {
35
- form.setValue('code', cmmc.appliedPromo.code);
36
- setCodeAccepted(true);
37
- }
38
- }, [cmmc.appliedPromo]);
39
- const form = useForm({
40
- resolver: zodResolver(formSchema),
41
- defaultValues: {
42
- code: '',
43
- },
44
- });
45
- const applyPromoCode = async (values) => {
46
- const { code } = values;
47
- const promo = await getPromoFromApi(code);
48
- if (!promo) {
49
- form.setError('code', { message: 'Invalid code' });
50
- return;
51
- }
52
- setCodeAccepted(true);
53
- cmmc.setAppliedPromo(promo);
54
- };
55
- const removePromoCode = () => {
56
- cmmc.setAppliedPromo(null);
57
- setCodeAccepted(false);
58
- };
59
- return (_jsx("div", { className: 'flex flex-col gap-2 border-t py-1', children: _jsx(Form, { ...form, children: _jsx("form", { onSubmit: form.handleSubmit(applyPromoCode), children: _jsxs("div", { className: 'flex gap-2 items-center', children: [_jsx(FormField, { control: form.control, name: 'code', render: ({ field }) => (_jsx(FormItem, { className: 'w-full', children: _jsx(FormControl, { children: _jsx(Input, { ...field, className: 'h-9', placeholder: 'Discount or invite code', onInput: removePromoCode }) }) })) }), codeAccepted ? (_jsx(Check, {})) : (_jsx(Button, { variant: 'outline', className: '!w-fit !min-w-0 font-inter text-muted text-sm', children: "Apply" }))] }) }) }) }));
60
- });
61
- export default PromoCode;
62
- //# sourceMappingURL=promo-code.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"promo-code.js","sourceRoot":"","sources":["../../../../components/cart/cart-panel/promo-code.tsx"],"names":[],"mappings":"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"}
@@ -1,74 +0,0 @@
1
- 'use client';
2
- import { useEffect, useState } from 'react';
3
- import { useSearchParams } from 'next/navigation';
4
- import { observer } from 'mobx-react-lite';
5
- import { useForm } from 'react-hook-form';
6
- import * as z from 'zod';
7
- import { zodResolver } from '@hookform/resolvers/zod';
8
- import { Check } from 'lucide-react';
9
- import { Button, Form, FormControl, FormField, FormItem, Input } from '@hanzo/ui/primitives';
10
- import { useCommerce } from '../../../service/context';
11
- import getPromoFromApi from '../../../util/promo-codes';
12
- const formSchema = z.object({
13
- code: z.string().min(1, 'Invalid code'),
14
- });
15
- const PromoCode = observer(() => {
16
- const cmmc = useCommerce();
17
- const searchParams = useSearchParams();
18
- const [codeAccepted, setCodeAccepted] = useState(false);
19
- useEffect(() => {
20
- const code = searchParams.get('code');
21
- if (code) {
22
- getPromoFromApi(code).then((promo) => {
23
- if (promo) {
24
- form.setValue('code', code);
25
- setCodeAccepted(true);
26
- cmmc.setAppliedPromo(promo);
27
- }
28
- });
29
- }
30
- }, [searchParams]);
31
- useEffect(() => {
32
- if (cmmc.appliedPromo) {
33
- form.setValue('code', cmmc.appliedPromo.code);
34
- setCodeAccepted(true);
35
- }
36
- }, [cmmc.appliedPromo]);
37
- const form = useForm({
38
- // @ts-expect-error Zod version incompatibility between ZodTypeDef and $ZodTypeInternals
39
- resolver: zodResolver(formSchema),
40
- defaultValues: {
41
- code: '',
42
- },
43
- });
44
- const applyPromoCode = async (values) => {
45
- const { code } = values;
46
- const promo = await getPromoFromApi(code);
47
- if (!promo) {
48
- form.setError('code', { message: 'Invalid code' });
49
- return;
50
- }
51
- setCodeAccepted(true);
52
- cmmc.setAppliedPromo(promo);
53
- };
54
- const removePromoCode = () => {
55
- cmmc.setAppliedPromo(null);
56
- setCodeAccepted(false);
57
- };
58
- return (<div className='flex flex-col gap-2 border-t py-1'>
59
- <Form {...form}>
60
- <form onSubmit={form.handleSubmit(applyPromoCode)}>
61
- <div className='flex gap-2 items-center'>
62
- <FormField control={form.control} name='code' render={({ field }) => (<FormItem className='w-full'>
63
- <FormControl>
64
- <Input {...field} className='h-9' placeholder='Discount or invite code' onInput={removePromoCode}/>
65
- </FormControl>
66
- </FormItem>)}/>
67
- {codeAccepted ? (<Check />) : (<Button variant='outline' className='!w-fit !min-w-0 font-inter text-muted text-sm'>Apply</Button>)}
68
- </div>
69
- </form>
70
- </Form>
71
- </div>);
72
- });
73
- export default PromoCode;
74
- //# sourceMappingURL=promo-code.jsx.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"promo-code.jsx","sourceRoot":"","sources":["../../../../components/cart/cart-panel/promo-code.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEpC,OAAO,EACL,MAAM,EACN,IAAI,EACJ,WAAW,EACX,SAAS,EACT,QAAQ,EACR,KAAK,EACN,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD,OAAO,eAAe,MAAM,2BAA2B,CAAA;AAEvD,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC;CACxC,CAAC,CAAA;AAEF,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE;IAC9B,MAAM,IAAI,GAAG,WAAW,EAAE,CAAA;IAC1B,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;IAEtC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAA;IAEhE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACrC,IAAI,IAAI,EAAE,CAAC;YACT,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAa,EAAE,EAAE;gBAC3C,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;oBAC3B,eAAe,CAAC,IAAI,CAAC,CAAA;oBACrB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;gBAC7B,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAElB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;YAC7C,eAAe,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAA;IAEvB,MAAM,IAAI,GAAG,OAAO,CAA6B;QAC/C,wFAAwF;QACxF,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC;QACjC,aAAa,EAAE;YACb,IAAI,EAAE,EAAE;SACT;KACF,CAAC,CAAA;IAEF,MAAM,cAAc,GAAG,KAAK,EAAE,MAAkC,EAAE,EAAE;QAClE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;QACvB,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAA;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAA;YAClD,OAAM;QACR,CAAC;QACD,eAAe,CAAC,IAAI,CAAC,CAAA;QACrB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC,CAAA;IAED,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAC1B,eAAe,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC,CAAA;IAED,OAAO,CACL,CAAC,GAAG,CAAC,SAAS,CAAC,mCAAmC,CAChD;MAAA,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CACb;QAAA,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAChD;UAAA,CAAC,GAAG,CAAC,SAAS,CAAC,yBAAyB,CACtC;YAAA,CAAC,SAAS,CACR,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CACtB,IAAI,CAAC,MAAM,CACX,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACrB,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAC1B;kBAAA,CAAC,WAAW,CACV;oBAAA,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,EACnG;kBAAA,EAAE,WAAW,CACf;gBAAA,EAAE,QAAQ,CAAC,CACZ,CAAC,EAEJ;YAAA,CAAC,YAAY,CAAC,CAAC,CAAC,CACd,CAAC,KAAK,CAAA,EAAE,CACT,CAAC,CAAC,CAAC,CACF,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,+CAA+C,CAAC,KAAK,EAAE,MAAM,CAAC,CACnG,CACH;UAAA,EAAE,GAAG,CACP;QAAA,EAAE,IAAI,CACR;MAAA,EAAE,IAAI,CACR;IAAA,EAAE,GAAG,CAAC,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,SAAS,CAAA"}
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- declare const TotalArea: React.FC<{
3
- showPromoCode?: boolean;
4
- showShipping?: boolean;
5
- clx?: string;
6
- }>;
7
- export default TotalArea;
@@ -1,14 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import React, { Suspense } from 'react';
4
- import { observer } from 'mobx-react-lite';
5
- import { cn } from '@hanzo/ui/util';
6
- import { formatCurrencyValue } from '../../../util';
7
- import PromoCode from './promo-code';
8
- import { useCommerce } from '../../../service/context';
9
- const TotalArea = observer(({ showPromoCode = false, showShipping = false, clx }) => {
10
- const cmmc = useCommerce();
11
- return (_jsxs("div", { className: clx, children: [showPromoCode && (_jsx(Suspense, { children: _jsx(PromoCode, {}) })), (showShipping || showPromoCode) && (_jsxs("div", { className: 'flex flex-col gap-0.5 pb-1.5 text-sm ' + (!showPromoCode ? 'border-t pt-1.5' : ''), children: [_jsxs("p", { className: 'flex justify-between', children: [_jsx("span", { className: 'text-muted-1', children: "Subtotal" }), _jsx("span", { className: 'font-semibold', children: cmmc.cartTotal === 0 ? '0' : formatCurrencyValue(cmmc.cartTotal) })] }), cmmc.promoAppliedCartTotal !== cmmc.cartTotal && (_jsxs("p", { className: 'flex justify-between', children: [_jsx("span", { className: 'text-muted-1', children: "Promo Discount" }), _jsxs("span", { className: 'font-semibold', children: ["-", formatCurrencyValue(cmmc.cartTotal - cmmc.promoAppliedCartTotal)] })] })), showShipping && (_jsxs("p", { className: 'flex justify-between', children: [_jsx("span", { className: 'text-muted-1', children: "Shipping" }), _jsx("span", { className: 'font-semibold', children: "Free Global Shipping" })] }))] })), _jsxs("p", { className: cn('border-t py-2 flex justify-between'), children: ["TOTAL", _jsx("span", { className: 'font-semibold', children: formatCurrencyValue(showPromoCode ? cmmc.promoAppliedCartTotal : cmmc.cartTotal) })] })] }));
12
- });
13
- export default TotalArea;
14
- //# sourceMappingURL=total-area.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"total-area.js","sourceRoot":"","sources":["../../../../components/cart/cart-panel/total-area.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AACZ,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE1C,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAEnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,SAAS,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD,MAAM,SAAS,GAIV,QAAQ,CAAC,CAAC,EACb,aAAa,GAAC,KAAK,EACnB,YAAY,GAAC,KAAK,EAClB,GAAG,EACJ,EAAE,EAAE;IAEH,MAAM,IAAI,GAAG,WAAW,EAAE,CAAA;IAE1B,OAAO,CACL,eAAK,SAAS,EAAE,GAAG,aAClB,aAAa,IAAI,CAChB,KAAC,QAAQ,cACP,KAAC,SAAS,KAAE,GACH,CACZ,EACA,CAAC,YAAY,IAAI,aAAa,CAAC,IAAI,CAClC,eAAK,SAAS,EAAE,uCAAuC,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,aACjG,aAAG,SAAS,EAAC,sBAAsB,aACjC,eAAM,SAAS,EAAC,cAAc,yBAAgB,EAC9C,eAAM,SAAS,EAAC,eAAe,YAAE,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,GAAQ,IACvG,EACH,IAAI,CAAC,qBAAqB,KAAK,IAAI,CAAC,SAAS,IAAI,CAChD,aAAG,SAAS,EAAC,sBAAsB,aACjC,eAAM,SAAS,EAAC,cAAc,+BAAsB,EACpD,gBAAM,SAAS,EAAC,eAAe,kBAAG,mBAAmB,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAQ,IACxG,CACL,EACA,YAAY,IAAI,CACf,aAAG,SAAS,EAAC,sBAAsB,aACjC,eAAM,SAAS,EAAC,cAAc,yBAAgB,EAC9C,eAAM,SAAS,EAAC,eAAe,qCAA4B,IACzD,CACL,IACG,CACP,EACC,aAAG,SAAS,EAAE,EAAE,CAAC,oCAAoC,CAAC,sBAEpD,eAAM,SAAS,EAAC,eAAe,YAC5B,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAC5E,IACL,IACA,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,SAAS,CAAA"}