@hanzo/commerce 7.3.7 → 7.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/cart/cart-panel/promo-code.tsx +7 -4
- package/components/checkout/payment-step-form/contact-form.tsx +3 -2
- package/components/checkout/payment-step-form/index.tsx +1 -1
- package/components/checkout/shipping-step-form.tsx +12 -9
- package/hanzo-ui.d.ts +108 -0
- package/package.json +3 -3
- package/tsconfig.json +3 -1
- package/util/promo-codes.ts +0 -2
- package/util/square-payment.ts +34 -27
- package/dist/components/Icons.d.ts +0 -18
- package/dist/components/Icons.jsx +0 -19
- package/dist/components/Icons.jsx.map +0 -1
- package/dist/components/add-to-cart-widget.d.ts +0 -11
- package/dist/components/add-to-cart-widget.jsx +0 -99
- package/dist/components/add-to-cart-widget.jsx.map +0 -1
- package/dist/components/buy/buy-card.d.ts +0 -30
- package/dist/components/buy/buy-card.jsx +0 -123
- package/dist/components/buy/buy-card.jsx.map +0 -1
- package/dist/components/buy/carousel-buy-card.d.ts +0 -12
- package/dist/components/buy/carousel-buy-card.jsx +0 -99
- package/dist/components/buy/carousel-buy-card.jsx.map +0 -1
- package/dist/components/buy/multi-family/all-variants-carousel.d.ts +0 -4
- package/dist/components/buy/multi-family/all-variants-carousel.jsx +0 -147
- package/dist/components/buy/multi-family/all-variants-carousel.jsx.map +0 -1
- package/dist/components/buy/multi-family/family-carousel/index.d.ts +0 -4
- package/dist/components/buy/multi-family/family-carousel/index.jsx +0 -34
- package/dist/components/buy/multi-family/family-carousel/index.jsx.map +0 -1
- package/dist/components/buy/multi-family/family-carousel/slide.d.ts +0 -11
- package/dist/components/buy/multi-family/family-carousel/slide.jsx +0 -41
- package/dist/components/buy/multi-family/family-carousel/slide.jsx.map +0 -1
- package/dist/components/buy/multi-family/family-carousel/state.d.ts +0 -20
- package/dist/components/buy/multi-family/family-carousel/state.js +0 -59
- package/dist/components/buy/multi-family/family-carousel/state.js.map +0 -1
- package/dist/components/buy/multi-family/index.d.ts +0 -2
- package/dist/components/buy/multi-family/index.js +0 -3
- package/dist/components/buy/multi-family/index.js.map +0 -1
- package/dist/components/buy/single-family-selector.d.ts +0 -15
- package/dist/components/buy/single-family-selector.jsx +0 -31
- package/dist/components/buy/single-family-selector.jsx.map +0 -1
- package/dist/components/buy/title-and-byline.d.ts +0 -8
- package/dist/components/buy/title-and-byline.jsx +0 -9
- package/dist/components/buy/title-and-byline.jsx.map +0 -1
- package/dist/components/cart/cart-panel/cart-line-item.d.ts +0 -11
- package/dist/components/cart/cart-panel/cart-line-item.jsx +0 -39
- package/dist/components/cart/cart-panel/cart-line-item.jsx.map +0 -1
- package/dist/components/cart/cart-panel/index.d.ts +0 -19
- package/dist/components/cart/cart-panel/index.jsx +0 -79
- package/dist/components/cart/cart-panel/index.jsx.map +0 -1
- package/dist/components/cart/cart-panel/promo-code.d.ts +0 -4
- package/dist/components/cart/cart-panel/promo-code.jsx +0 -73
- package/dist/components/cart/cart-panel/promo-code.jsx.map +0 -1
- package/dist/components/cart/cart-panel/total-area.d.ts +0 -7
- package/dist/components/cart/cart-panel/total-area.jsx +0 -37
- package/dist/components/cart/cart-panel/total-area.jsx.map +0 -1
- package/dist/components/checkout/payment-step-form/card-icon-row.d.ts +0 -2
- package/dist/components/checkout/payment-step-form/card-icon-row.jsx +0 -22
- package/dist/components/checkout/payment-step-form/card-icon-row.jsx.map +0 -1
- package/dist/components/checkout/payment-step-form/card-icons/amex.d.ts +0 -4
- package/dist/components/checkout/payment-step-form/card-icons/amex.jsx +0 -12
- package/dist/components/checkout/payment-step-form/card-icons/amex.jsx.map +0 -1
- package/dist/components/checkout/payment-step-form/card-icons/diners-club.d.ts +0 -4
- package/dist/components/checkout/payment-step-form/card-icons/diners-club.jsx +0 -10
- package/dist/components/checkout/payment-step-form/card-icons/diners-club.jsx.map +0 -1
- package/dist/components/checkout/payment-step-form/card-icons/discover.d.ts +0 -4
- package/dist/components/checkout/payment-step-form/card-icons/discover.jsx +0 -12
- package/dist/components/checkout/payment-step-form/card-icons/discover.jsx.map +0 -1
- package/dist/components/checkout/payment-step-form/card-icons/jcb.d.ts +0 -4
- package/dist/components/checkout/payment-step-form/card-icons/jcb.jsx +0 -23
- package/dist/components/checkout/payment-step-form/card-icons/jcb.jsx.map +0 -1
- package/dist/components/checkout/payment-step-form/card-icons/mastercard.d.ts +0 -4
- package/dist/components/checkout/payment-step-form/card-icons/mastercard.jsx +0 -12
- package/dist/components/checkout/payment-step-form/card-icons/mastercard.jsx.map +0 -1
- package/dist/components/checkout/payment-step-form/card-icons/visa.d.ts +0 -4
- package/dist/components/checkout/payment-step-form/card-icons/visa.jsx +0 -10
- package/dist/components/checkout/payment-step-form/card-icons/visa.jsx.map +0 -1
- package/dist/components/checkout/payment-step-form/cc-button.d.ts +0 -3
- package/dist/components/checkout/payment-step-form/cc-button.jsx +0 -9
- package/dist/components/checkout/payment-step-form/cc-button.jsx.map +0 -1
- package/dist/components/checkout/payment-step-form/contact-form.d.ts +0 -5
- package/dist/components/checkout/payment-step-form/contact-form.jsx +0 -21
- package/dist/components/checkout/payment-step-form/contact-form.jsx.map +0 -1
- package/dist/components/checkout/payment-step-form/crypto-icons/btc.d.ts +0 -4
- package/dist/components/checkout/payment-step-form/crypto-icons/btc.jsx +0 -8
- package/dist/components/checkout/payment-step-form/crypto-icons/btc.jsx.map +0 -1
- package/dist/components/checkout/payment-step-form/crypto-icons/eth.d.ts +0 -4
- package/dist/components/checkout/payment-step-form/crypto-icons/eth.jsx +0 -17
- package/dist/components/checkout/payment-step-form/crypto-icons/eth.jsx.map +0 -1
- package/dist/components/checkout/payment-step-form/crypto-icons/usdt.d.ts +0 -4
- package/dist/components/checkout/payment-step-form/crypto-icons/usdt.jsx +0 -10
- package/dist/components/checkout/payment-step-form/crypto-icons/usdt.jsx.map +0 -1
- package/dist/components/checkout/payment-step-form/index.d.ts +0 -4
- package/dist/components/checkout/payment-step-form/index.jsx +0 -85
- package/dist/components/checkout/payment-step-form/index.jsx.map +0 -1
- package/dist/components/checkout/payment-step-form/methods/bank-transfer.d.ts +0 -4
- package/dist/components/checkout/payment-step-form/methods/bank-transfer.jsx +0 -44
- package/dist/components/checkout/payment-step-form/methods/bank-transfer.jsx.map +0 -1
- package/dist/components/checkout/payment-step-form/methods/card.d.ts +0 -4
- package/dist/components/checkout/payment-step-form/methods/card.jsx +0 -182
- package/dist/components/checkout/payment-step-form/methods/card.jsx.map +0 -1
- package/dist/components/checkout/payment-step-form/methods/crypto.d.ts +0 -9
- package/dist/components/checkout/payment-step-form/methods/crypto.jsx +0 -167
- package/dist/components/checkout/payment-step-form/methods/crypto.jsx.map +0 -1
- package/dist/components/checkout/payment-step-form/methods/index.d.ts +0 -6
- package/dist/components/checkout/payment-step-form/methods/index.js +0 -21
- package/dist/components/checkout/payment-step-form/methods/index.js.map +0 -1
- package/dist/components/checkout/shipping-step-form.d.ts +0 -3
- package/dist/components/checkout/shipping-step-form.jsx +0 -105
- package/dist/components/checkout/shipping-step-form.jsx.map +0 -1
- package/dist/components/index.d.ts +0 -8
- package/dist/components/index.js +0 -9
- package/dist/components/index.js.map +0 -1
- package/dist/components/item/product-card.d.ts +0 -7
- package/dist/components/item/product-card.jsx +0 -21
- package/dist/components/item/product-card.jsx.map +0 -1
- package/dist/components/item-selector/button.d.ts +0 -4
- package/dist/components/item-selector/button.jsx +0 -65
- package/dist/components/item-selector/button.jsx.map +0 -1
- package/dist/components/item-selector/carousel/index.d.ts +0 -12
- package/dist/components/item-selector/carousel/index.jsx +0 -101
- package/dist/components/item-selector/carousel/index.jsx.map +0 -1
- package/dist/components/item-selector/carousel/slider.d.ts +0 -8
- package/dist/components/item-selector/carousel/slider.jsx +0 -11
- package/dist/components/item-selector/carousel/slider.jsx.map +0 -1
- package/dist/components/item-selector/index.d.ts +0 -2
- package/dist/components/item-selector/index.js +0 -3
- package/dist/components/item-selector/index.js.map +0 -1
- package/dist/components/item-selector/quantity-indicator.d.ts +0 -9
- package/dist/components/item-selector/quantity-indicator.jsx +0 -23
- package/dist/components/item-selector/quantity-indicator.jsx.map +0 -1
- package/dist/components/node-tabs/index.d.ts +0 -14
- package/dist/components/node-tabs/index.jsx +0 -48
- package/dist/components/node-tabs/index.jsx.map +0 -1
- package/dist/components/node-tabs/node-image.d.ts +0 -6
- package/dist/components/node-tabs/node-image.jsx +0 -12
- package/dist/components/node-tabs/node-image.jsx.map +0 -1
- package/dist/index.d.ts +0 -5
- package/dist/index.js +0 -5
- package/dist/index.js.map +0 -1
- package/dist/service/context.d.ts +0 -8
- package/dist/service/context.jsx +0 -20
- package/dist/service/context.jsx.map +0 -1
- package/dist/service/debug.d.ts +0 -10
- package/dist/service/debug.js +0 -30
- package/dist/service/debug.js.map +0 -1
- package/dist/service/impls/standalone/actual-line-item.d.ts +0 -40
- package/dist/service/impls/standalone/actual-line-item.js +0 -84
- package/dist/service/impls/standalone/actual-line-item.js.map +0 -1
- package/dist/service/impls/standalone/get-instance.d.ts +0 -2
- package/dist/service/impls/standalone/get-instance.js +0 -39
- package/dist/service/impls/standalone/get-instance.js.map +0 -1
- package/dist/service/impls/standalone/index.d.ts +0 -67
- package/dist/service/impls/standalone/index.js +0 -416
- package/dist/service/impls/standalone/index.js.map +0 -1
- package/dist/service/impls/standalone/order/firebase.d.ts +0 -2
- package/dist/service/impls/standalone/order/firebase.js +0 -13
- package/dist/service/impls/standalone/order/firebase.js.map +0 -1
- package/dist/service/impls/standalone/order/index.d.ts +0 -24
- package/dist/service/impls/standalone/order/index.js +0 -61
- package/dist/service/impls/standalone/order/index.js.map +0 -1
- package/dist/service/impls/standalone/persistence.d.ts +0 -4
- package/dist/service/impls/standalone/persistence.js +0 -22
- package/dist/service/impls/standalone/persistence.js.map +0 -1
- package/dist/service/path-utils.d.ts +0 -7
- package/dist/service/path-utils.js +0 -16
- package/dist/service/path-utils.js.map +0 -1
- package/dist/service/sep.d.ts +0 -6
- package/dist/service/sep.js +0 -6
- package/dist/service/sep.js.map +0 -1
- package/dist/types/category-node.d.ts +0 -36
- package/dist/types/category-node.js +0 -2
- package/dist/types/category-node.js.map +0 -1
- package/dist/types/checkout.d.ts +0 -33
- package/dist/types/checkout.js +0 -2
- package/dist/types/checkout.js.map +0 -1
- package/dist/types/commerce-config.d.ts +0 -11
- package/dist/types/commerce-config.js +0 -2
- package/dist/types/commerce-config.js.map +0 -1
- package/dist/types/commerce-service.d.ts +0 -109
- package/dist/types/commerce-service.js +0 -2
- package/dist/types/commerce-service.js.map +0 -1
- package/dist/types/components/Icons.d.ts +0 -18
- package/dist/types/components/add-to-cart-widget.d.ts +0 -11
- package/dist/types/components/buy/buy-card.d.ts +0 -30
- package/dist/types/components/buy/carousel-buy-card.d.ts +0 -12
- package/dist/types/components/buy/multi-family/all-variants-carousel.d.ts +0 -4
- package/dist/types/components/buy/multi-family/family-carousel/index.d.ts +0 -4
- package/dist/types/components/buy/multi-family/family-carousel/slide.d.ts +0 -11
- package/dist/types/components/buy/multi-family/family-carousel/state.d.ts +0 -20
- package/dist/types/components/buy/multi-family/index.d.ts +0 -2
- package/dist/types/components/buy/single-family-selector.d.ts +0 -15
- package/dist/types/components/buy/title-and-byline.d.ts +0 -8
- package/dist/types/components/cart/cart-panel/cart-line-item.d.ts +0 -11
- package/dist/types/components/cart/cart-panel/index.d.ts +0 -19
- package/dist/types/components/cart/cart-panel/promo-code.d.ts +0 -4
- package/dist/types/components/cart/cart-panel/total-area.d.ts +0 -7
- package/dist/types/components/checkout/payment-step-form/card-icon-row.d.ts +0 -2
- package/dist/types/components/checkout/payment-step-form/card-icons/amex.d.ts +0 -4
- package/dist/types/components/checkout/payment-step-form/card-icons/diners-club.d.ts +0 -4
- package/dist/types/components/checkout/payment-step-form/card-icons/discover.d.ts +0 -4
- package/dist/types/components/checkout/payment-step-form/card-icons/jcb.d.ts +0 -4
- package/dist/types/components/checkout/payment-step-form/card-icons/mastercard.d.ts +0 -4
- package/dist/types/components/checkout/payment-step-form/card-icons/visa.d.ts +0 -4
- package/dist/types/components/checkout/payment-step-form/cc-button.d.ts +0 -3
- package/dist/types/components/checkout/payment-step-form/contact-form.d.ts +0 -5
- package/dist/types/components/checkout/payment-step-form/crypto-icons/btc.d.ts +0 -4
- package/dist/types/components/checkout/payment-step-form/crypto-icons/eth.d.ts +0 -4
- package/dist/types/components/checkout/payment-step-form/crypto-icons/usdt.d.ts +0 -4
- package/dist/types/components/checkout/payment-step-form/index.d.ts +0 -4
- package/dist/types/components/checkout/payment-step-form/methods/bank-transfer.d.ts +0 -4
- package/dist/types/components/checkout/payment-step-form/methods/card.d.ts +0 -4
- package/dist/types/components/checkout/payment-step-form/methods/crypto.d.ts +0 -9
- package/dist/types/components/checkout/payment-step-form/methods/index.d.ts +0 -6
- package/dist/types/components/checkout/shipping-step-form.d.ts +0 -3
- package/dist/types/components/index.d.ts +0 -8
- package/dist/types/components/item/product-card.d.ts +0 -7
- package/dist/types/components/item-selector/button.d.ts +0 -4
- package/dist/types/components/item-selector/carousel/index.d.ts +0 -12
- package/dist/types/components/item-selector/carousel/slider.d.ts +0 -8
- package/dist/types/components/item-selector/index.d.ts +0 -2
- package/dist/types/components/item-selector/quantity-indicator.d.ts +0 -9
- package/dist/types/components/node-tabs/index.d.ts +0 -14
- package/dist/types/components/node-tabs/node-image.d.ts +0 -6
- package/dist/types/family.d.ts +0 -16
- package/dist/types/family.js +0 -2
- package/dist/types/family.js.map +0 -1
- package/dist/types/index.d.ts +0 -13
- package/dist/types/index.js +0 -8
- package/dist/types/index.js.map +0 -1
- package/dist/types/item-selector.d.ts +0 -72
- package/dist/types/item-selector.js +0 -2
- package/dist/types/item-selector.js.map +0 -1
- package/dist/types/line-item.d.ts +0 -14
- package/dist/types/line-item.js +0 -2
- package/dist/types/line-item.js.map +0 -1
- package/dist/types/multi-family-selector-props.d.ts +0 -16
- package/dist/types/multi-family-selector-props.js +0 -2
- package/dist/types/multi-family-selector-props.js.map +0 -1
- package/dist/types/product.d.ts +0 -15
- package/dist/types/product.js +0 -2
- package/dist/types/product.js.map +0 -1
- package/dist/types/promo.d.ts +0 -7
- package/dist/types/promo.js +0 -2
- package/dist/types/promo.js.map +0 -1
- package/dist/types/selection-ui-specifier.d.ts +0 -40
- package/dist/types/selection-ui-specifier.js +0 -2
- package/dist/types/selection-ui-specifier.js.map +0 -1
- package/dist/types/service/context.d.ts +0 -8
- package/dist/types/service/debug.d.ts +0 -10
- package/dist/types/service/impls/standalone/actual-line-item.d.ts +0 -40
- package/dist/types/service/impls/standalone/get-instance.d.ts +0 -2
- package/dist/types/service/impls/standalone/index.d.ts +0 -67
- package/dist/types/service/impls/standalone/order/firebase.d.ts +0 -2
- package/dist/types/service/impls/standalone/order/index.d.ts +0 -24
- package/dist/types/service/impls/standalone/persistence.d.ts +0 -4
- package/dist/types/service/path-utils.d.ts +0 -7
- package/dist/types/service/sep.d.ts +0 -6
- package/dist/types/string-mutator.d.ts +0 -9
- package/dist/types/string-mutator.js +0 -2
- package/dist/types/string-mutator.js.map +0 -1
- package/dist/types/token-separators.d.ts +0 -6
- package/dist/types/token-separators.js +0 -2
- package/dist/types/token-separators.js.map +0 -1
- package/dist/types/types/category-node.d.ts +0 -36
- package/dist/types/types/checkout.d.ts +0 -33
- package/dist/types/types/commerce-config.d.ts +0 -11
- package/dist/types/types/commerce-service.d.ts +0 -109
- package/dist/types/types/family.d.ts +0 -16
- package/dist/types/types/index.d.ts +0 -13
- package/dist/types/types/item-selector.d.ts +0 -72
- package/dist/types/types/line-item.d.ts +0 -14
- package/dist/types/types/multi-family-selector-props.d.ts +0 -16
- package/dist/types/types/product.d.ts +0 -15
- package/dist/types/types/promo.d.ts +0 -7
- package/dist/types/types/selection-ui-specifier.d.ts +0 -40
- package/dist/types/types/string-mutator.d.ts +0 -9
- package/dist/types/types/token-separators.d.ts +0 -6
- package/dist/types/util/analytics.d.ts +0 -9
- package/dist/types/util/countries.d.ts +0 -7
- package/dist/types/util/error.d.ts +0 -1
- package/dist/types/util/index.d.ts +0 -15
- package/dist/types/util/item-selector-options-accessor.d.ts +0 -3
- package/dist/types/util/line-item-ref.d.ts +0 -8
- package/dist/types/util/multi-family-selector-options-accessor.d.ts +0 -3
- package/dist/types/util/obs-string-mutator.d.ts +0 -8
- package/dist/types/util/product-media-accessor.d.ts +0 -29
- package/dist/types/util/promo-codes.d.ts +0 -3
- package/dist/types/util/selection-ui-specifiers.d.ts +0 -3
- package/dist/types/util/square-payment.d.ts +0 -7
- package/dist/types/util/use-sync-sku-param-w-current-item.d.ts +0 -2
- package/dist/util/analytics.d.ts +0 -9
- package/dist/util/analytics.js +0 -10
- package/dist/util/analytics.js.map +0 -1
- package/dist/util/countries.d.ts +0 -7
- package/dist/util/countries.js +0 -197
- package/dist/util/countries.js.map +0 -1
- package/dist/util/error.d.ts +0 -1
- package/dist/util/error.js +0 -22
- package/dist/util/error.js.map +0 -1
- package/dist/util/index.d.ts +0 -15
- package/dist/util/index.js +0 -54
- package/dist/util/index.js.map +0 -1
- package/dist/util/item-selector-options-accessor.d.ts +0 -3
- package/dist/util/item-selector-options-accessor.js +0 -27
- package/dist/util/item-selector-options-accessor.js.map +0 -1
- package/dist/util/line-item-ref.d.ts +0 -8
- package/dist/util/line-item-ref.js +0 -15
- package/dist/util/line-item-ref.js.map +0 -1
- package/dist/util/multi-family-selector-options-accessor.d.ts +0 -3
- package/dist/util/multi-family-selector-options-accessor.js +0 -11
- package/dist/util/multi-family-selector-options-accessor.js.map +0 -1
- package/dist/util/obs-string-mutator.d.ts +0 -8
- package/dist/util/obs-string-mutator.js +0 -15
- package/dist/util/obs-string-mutator.js.map +0 -1
- package/dist/util/product-media-accessor.d.ts +0 -29
- package/dist/util/product-media-accessor.js +0 -22
- package/dist/util/product-media-accessor.js.map +0 -1
- package/dist/util/promo-codes.d.ts +0 -3
- package/dist/util/promo-codes.js +0 -101
- package/dist/util/promo-codes.js.map +0 -1
- package/dist/util/selection-ui-specifiers.d.ts +0 -3
- package/dist/util/selection-ui-specifiers.js +0 -24
- package/dist/util/selection-ui-specifiers.js.map +0 -1
- package/dist/util/square-payment.d.ts +0 -7
- package/dist/util/square-payment.js +0 -30
- package/dist/util/square-payment.js.map +0 -1
- package/dist/util/use-sync-sku-param-w-current-item.d.ts +0 -2
- package/dist/util/use-sync-sku-param-w-current-item.js +0 -61
- package/dist/util/use-sync-sku-param-w-current-item.js.map +0 -1
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import * as z from 'zod';
|
|
3
|
-
import { useForm } from 'react-hook-form';
|
|
4
|
-
import { zodResolver } from '@hookform/resolvers/zod';
|
|
5
|
-
import { Input, Button, Form, FormControl, FormField, FormItem, FormMessage, Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@hanzo/ui/primitives';
|
|
6
|
-
import { useCommerce } from '../../service/context';
|
|
7
|
-
import countries from '../../util/countries';
|
|
8
|
-
import { sendGAEvent } from '../../util/analytics';
|
|
9
|
-
const shippingFormSchema = z.object({
|
|
10
|
-
addressLine1: z.string().min(2, 'Address must be at least 2 characters.'),
|
|
11
|
-
addressLine2: z.string().optional(),
|
|
12
|
-
zipCode: z.string().min(2, 'Zip code is invalid.'),
|
|
13
|
-
city: z.string().min(2, 'City is invalid.'),
|
|
14
|
-
state: z.string().optional(),
|
|
15
|
-
country: z.string().min(2, 'Country is invalid.'),
|
|
16
|
-
});
|
|
17
|
-
const ShippingStepForm = ({ orderId, onDone }) => {
|
|
18
|
-
const cmmc = useCommerce();
|
|
19
|
-
const shippingForm = useForm({
|
|
20
|
-
resolver: zodResolver(shippingFormSchema),
|
|
21
|
-
defaultValues: {
|
|
22
|
-
addressLine1: '',
|
|
23
|
-
addressLine2: '',
|
|
24
|
-
zipCode: '',
|
|
25
|
-
city: '',
|
|
26
|
-
state: '',
|
|
27
|
-
country: '',
|
|
28
|
-
},
|
|
29
|
-
});
|
|
30
|
-
const onSubmit = async (values) => {
|
|
31
|
-
if (orderId) {
|
|
32
|
-
await cmmc.updateOrderShippingInfo(orderId, values);
|
|
33
|
-
}
|
|
34
|
-
sendGAEvent('add_shipping_info', {
|
|
35
|
-
items: cmmc.cartItems.map((item) => ({
|
|
36
|
-
item_id: item.sku,
|
|
37
|
-
item_name: item.title,
|
|
38
|
-
item_category: item.familyId,
|
|
39
|
-
price: item.price,
|
|
40
|
-
quantity: item.quantity
|
|
41
|
-
})),
|
|
42
|
-
num_items: cmmc.cartItems.length,
|
|
43
|
-
value: cmmc.cartTotal,
|
|
44
|
-
currency: 'USD',
|
|
45
|
-
});
|
|
46
|
-
onDone();
|
|
47
|
-
};
|
|
48
|
-
return (<Form {...shippingForm}>
|
|
49
|
-
<form onSubmit={shippingForm.handleSubmit(onSubmit)} className='text-left'>
|
|
50
|
-
<div className='flex flex-col gap-4'>
|
|
51
|
-
<FormField control={shippingForm.control} name='addressLine1' render={({ field }) => (<FormItem className='space-y-1 w-full'>
|
|
52
|
-
<FormControl>
|
|
53
|
-
<Input {...field} placeholder='Address line 1'/>
|
|
54
|
-
</FormControl>
|
|
55
|
-
<FormMessage />
|
|
56
|
-
</FormItem>)}/>
|
|
57
|
-
<FormField control={shippingForm.control} name='addressLine2' render={({ field }) => (<FormItem className='space-y-1 w-full'>
|
|
58
|
-
<FormControl>
|
|
59
|
-
<Input {...field} placeholder='Address line 2 (optional)'/>
|
|
60
|
-
</FormControl>
|
|
61
|
-
<FormMessage />
|
|
62
|
-
</FormItem>)}/>
|
|
63
|
-
<div className='flex gap-4 items-end'>
|
|
64
|
-
<FormField control={shippingForm.control} name='zipCode' render={({ field }) => (<FormItem className='space-y-1 w-full'>
|
|
65
|
-
<FormControl>
|
|
66
|
-
<Input {...field} placeholder='Zip code'/>
|
|
67
|
-
</FormControl>
|
|
68
|
-
<FormMessage />
|
|
69
|
-
</FormItem>)}/>
|
|
70
|
-
<FormField control={shippingForm.control} name='city' render={({ field }) => (<FormItem className='space-y-1 w-full'>
|
|
71
|
-
<FormControl>
|
|
72
|
-
<Input {...field} placeholder='City'/>
|
|
73
|
-
</FormControl>
|
|
74
|
-
<FormMessage />
|
|
75
|
-
</FormItem>)}/>
|
|
76
|
-
</div>
|
|
77
|
-
<div className='flex gap-4 items-start'>
|
|
78
|
-
<FormField control={shippingForm.control} name='state' render={({ field }) => (<FormItem className='space-y-1 w-full'>
|
|
79
|
-
<FormControl>
|
|
80
|
-
<Input {...field} placeholder='State (optional)'/>
|
|
81
|
-
</FormControl>
|
|
82
|
-
<FormMessage />
|
|
83
|
-
</FormItem>)}/>
|
|
84
|
-
<FormField control={shippingForm.control} name='country' render={({ field }) => (<FormItem className='space-y-1 w-full'>
|
|
85
|
-
<Select onValueChange={field.onChange} defaultValue={field.value}>
|
|
86
|
-
<FormControl>
|
|
87
|
-
<SelectTrigger className='bg-level-1 border-muted-4'>
|
|
88
|
-
<SelectValue placeholder='Country'/>
|
|
89
|
-
</SelectTrigger>
|
|
90
|
-
</FormControl>
|
|
91
|
-
<SelectContent>
|
|
92
|
-
{countries.map((country) => (<SelectItem key={country.id} value={country.name}>
|
|
93
|
-
{country.name}
|
|
94
|
-
</SelectItem>))}
|
|
95
|
-
</SelectContent>
|
|
96
|
-
</Select>
|
|
97
|
-
</FormItem>)}/>
|
|
98
|
-
</div>
|
|
99
|
-
</div>
|
|
100
|
-
<Button type='submit' className='mx-auto w-full mt-4'>Confirm order</Button>
|
|
101
|
-
</form>
|
|
102
|
-
</Form>);
|
|
103
|
-
};
|
|
104
|
-
export default ShippingStepForm;
|
|
105
|
-
//# sourceMappingURL=shipping-step-form.jsx.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shipping-step-form.jsx","sourceRoot":"","sources":["../../../components/checkout/shipping-step-form.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export { default as AddToCartWidget } from './add-to-cart-widget';
|
|
2
|
-
export { default as CarouselBuyCard } from './buy/carousel-buy-card';
|
|
3
|
-
export { default as CartPanel } from './cart/cart-panel';
|
|
4
|
-
export { default as Icons } from './Icons';
|
|
5
|
-
export { default as PaymentStepForm } from './checkout/payment-step-form';
|
|
6
|
-
export { default as ProductCard } from './item/product-card';
|
|
7
|
-
export { default as ShippingStepForm } from './checkout/shipping-step-form';
|
|
8
|
-
export * from './item-selector';
|
package/dist/components/index.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export { default as AddToCartWidget } from './add-to-cart-widget';
|
|
2
|
-
export { default as CarouselBuyCard } from './buy/carousel-buy-card';
|
|
3
|
-
export { default as CartPanel } from './cart/cart-panel';
|
|
4
|
-
export { default as Icons } from './Icons';
|
|
5
|
-
export { default as PaymentStepForm } from './checkout/payment-step-form';
|
|
6
|
-
export { default as ProductCard } from './item/product-card';
|
|
7
|
-
export { default as ShippingStepForm } from './checkout/shipping-step-form';
|
|
8
|
-
export * from './item-selector';
|
|
9
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAEpE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAExD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAE3E,cAAc,iBAAiB,CAAA"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Card, CardContent, CardFooter, CardHeader, CardTitle, MediaStack } from '@hanzo/ui/primitives';
|
|
3
|
-
import { cn } from '@hanzo/ui/util';
|
|
4
|
-
import { formatCurrencyValue } from '../../util';
|
|
5
|
-
import AddToCartWidget from '../add-to-cart-widget';
|
|
6
|
-
const ProductCard = ({ item, className, ...props }) => (<Card className={cn('max-h-[360px] lg:min-w-[200px] max-w-[260px] overflow-hidden', className)} {...props}>
|
|
7
|
-
<CardHeader className='w-full border-b p-6 min-h-[180px] max-h-[240px] relative'>
|
|
8
|
-
<MediaStack media={item} constrainTo={{ w: 700, h: 700 }} clx='p-6'/>
|
|
9
|
-
</CardHeader>
|
|
10
|
-
<CardContent className='grid gap-2.5 p-4'>
|
|
11
|
-
<CardTitle className='text-sm sm:text-base flex flex-col justify-start items-center line-clap-3'>
|
|
12
|
-
{item.title.split(', ').map((e, i) => (<p key={i}>{e}</p>))}
|
|
13
|
-
<p className='mt-1 font-semibold'>{formatCurrencyValue(item.price)}</p>
|
|
14
|
-
</CardTitle>
|
|
15
|
-
</CardContent>
|
|
16
|
-
<CardFooter className='p-4 flex flex-row justify-center'>
|
|
17
|
-
<AddToCartWidget item={item}/>
|
|
18
|
-
</CardFooter>
|
|
19
|
-
</Card>);
|
|
20
|
-
export default ProductCard;
|
|
21
|
-
//# sourceMappingURL=product-card.jsx.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"product-card.jsx","sourceRoot":"","sources":["../../../components/item/product-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EACL,IAAI,EACJ,WAAW,EACX,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACX,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAEnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAGhD,OAAO,eAAe,MAAM,uBAAuB,CAAA;AAMnD,MAAM,WAAW,GAA+B,CAAC,EAC/C,IAAI,EACJ,SAAS,EACT,GAAG,KAAK,EACT,EAAE,EAAE,CAAC,CACJ,CAAC,IAAI,CACH,SAAS,CAAC,CAAC,EAAE,CAAC,8DAA8D,EAAE,SAAS,CAAC,CAAC,CACzF,IAAI,KAAK,CAAC,CAEV;IAAA,CAAC,UAAU,CAAC,SAAS,CAAC,0DAA0D,CAC9E;MAAA,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,EAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAC,GAAG,EAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAClE;IAAA,EAAE,UAAU,CACZ;IAAA,CAAC,WAAW,CAAC,SAAS,CAAC,kBAAkB,CACvC;MAAA,CAAC,SAAS,CAAC,SAAS,CAAC,2EAA2E,CAC9F;QAAA,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAC3D;QAAA,CAAC,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CACxE;MAAA,EAAE,SAAS,CACb;IAAA,EAAE,WAAW,CACb;IAAA,CAAC,UAAU,CAAC,SAAS,CAAC,kCAAkC,CACtD;MAAA,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAC9B;IAAA,EAAE,UAAU,CACd;EAAA,EAAE,IAAI,CAAC,CACR,CAAA;AAGD,eAAe,WAAW,CAAA"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { observer } from 'mobx-react-lite';
|
|
4
|
-
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
5
|
-
import { Image, Label, RadioGroup, ScrollArea } from '@hanzo/ui/primitives';
|
|
6
|
-
import { cn } from '@hanzo/ui/util';
|
|
7
|
-
import { accessItemOptions, formatCurrencyValue } from '../../util';
|
|
8
|
-
import QuantityIndicator from './quantity-indicator';
|
|
9
|
-
const DEFAULT_CONSTRAINT = { h: 36, w: 72 }; // // Apple suggest 42px for clickability
|
|
10
|
-
const ImageRadioGroupItem = React.forwardRef(({ item, constrainTo, className, ...props }, ref) => {
|
|
11
|
-
const img = item.optionImg ? item.optionImg : item.img;
|
|
12
|
-
return (<RadioGroupPrimitive.Item ref={ref} data-vaul-no-drag className={cn('ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring', 'focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50', className, 'overflow-hidden', img?.rounded ? `rounded-${img.rounded}` : 'rounded-sm')} {...props} id={item.sku} value={item.sku}>
|
|
13
|
-
{img ? (<Image def={img} constrainTo={constrainTo} preload className=''/>) : ( // placeholder so things align
|
|
14
|
-
<div style={{ height: constrainTo.h, width: constrainTo.w }}/>)}
|
|
15
|
-
</RadioGroupPrimitive.Item>);
|
|
16
|
-
});
|
|
17
|
-
ImageRadioGroupItem.displayName = 'ImageRadioGroupItem';
|
|
18
|
-
const ButtonItemSelector = observer(({ items, selectedItemRef: itemRef, selectSku, clx = '', itemClx = '', soleItemClx = '', scrollable = false, mobile = false, options = {} }) => {
|
|
19
|
-
const { showPrice, showQuantity, showFamilyInOption, buttonType, horizButtons, showButtonIfOnlyOne } = accessItemOptions(options);
|
|
20
|
-
const showImage = buttonType !== 'text';
|
|
21
|
-
const showText = buttonType !== 'image';
|
|
22
|
-
const showBoth = buttonType === 'image-and-text';
|
|
23
|
-
const labelAndPrice = (item) => ((showFamilyInOption ? (item.familyTitle + ', ' + item.optionLabel) : item.optionLabel) +
|
|
24
|
-
(showPrice ? ((showFamilyInOption ? ': ' : ', ') + formatCurrencyValue(item.price)) : ''));
|
|
25
|
-
const Item = observer(({ item, selected }) => {
|
|
26
|
-
const textClx = (selected) ? 'text-accent' : 'text-muted';
|
|
27
|
-
const cursorClx = (selected) ? 'hover:cursor-default' : 'hover:cursor-pointer';
|
|
28
|
-
const justifyClx = (showBoth) ? '' : 'justify-center';
|
|
29
|
-
// If no image, the Label must fill the entire button since it has to be
|
|
30
|
-
// clickable all the way to the border
|
|
31
|
-
const paddingClx = (showImage) ? (scrollable ? 'px-4 py-2' : 'px-2 py-2') : '';
|
|
32
|
-
let bgClx = '';
|
|
33
|
-
let borderClx = '';
|
|
34
|
-
if (scrollable) {
|
|
35
|
-
borderClx += (selected) ? 'border-foreground border ' : 'border-b border-muted-2 ';
|
|
36
|
-
}
|
|
37
|
-
else if (!showImage) {
|
|
38
|
-
borderClx += 'border rounded-lg ';
|
|
39
|
-
borderClx += (selected) ? 'border-foreground ' : 'border-muted-2 ';
|
|
40
|
-
bgClx += 'hover:bg-level-2';
|
|
41
|
-
}
|
|
42
|
-
const outerClx = ['h-10 flex items-center', justifyClx, paddingClx, bgClx, borderClx];
|
|
43
|
-
return (<div className={cn(...outerClx, itemClx)} data-vaul-no-drag>
|
|
44
|
-
<ImageRadioGroupItem item={item} constrainTo={DEFAULT_CONSTRAINT} className={cn(cursorClx, (scrollable ? '' : 'border-transparent border-2 data-[state=checked]:border-foreground'), showBoth ? 'mr-2' : (showImage ? '' : 'hidden'))}/>
|
|
45
|
-
<Label htmlFor={item.sku} className={cn(showQuantity ? 'flex items-center' : 'block', textClx, cursorClx, (showImage ? '' : 'self-stretch w-full flex items-center justify-center px-3 py-2'), (showText ? '' : 'hidden'))}>
|
|
46
|
-
<div className={showQuantity ? 'grow' : ''}>{labelAndPrice(item)}</div>
|
|
47
|
-
{showQuantity && (<QuantityIndicator item={item} clx='grow-0 shrink-0 h-[20px] ml-2' iconClx={selected ? 'fill-foreground' : 'fill-muted'} digitClx='font-semibold text-primary-fg leading-none font-sans text-xxs'/>)}
|
|
48
|
-
</Label>
|
|
49
|
-
</div>);
|
|
50
|
-
});
|
|
51
|
-
return showButtonIfOnlyOne || items.length > 1 ? (<RadioGroup className={cn((scrollable ? 'shrink min-h-0 gap-0' : (mobile ? 'gap-3' : 'gap-1')), (horizButtons ? `grid grid-cols-${items.length} gap-1` : 'flex flex-col'), (mobile && showText) ? 'min-w-pr-50' : '', clx)} onValueChange={selectSku} value={itemRef.item ? itemRef.item.sku : ''} data-vaul-no-drag>
|
|
52
|
-
{scrollable ? (<ScrollArea className='mt-2 w-full h-full py-0 border border-muted-2' data-vaul-no-drag>
|
|
53
|
-
{items.map((item) => (<Item item={item} selected={itemRef.item?.sku === item.sku} key={item.sku}/>))}
|
|
54
|
-
</ScrollArea>) : (<>
|
|
55
|
-
{items.map((item) => (<Item item={item} selected={itemRef.item?.sku === item.sku} key={item.sku}/>))}
|
|
56
|
-
</>)}
|
|
57
|
-
</RadioGroup>) : (<div className={cn(showQuantity ? 'flex items-center' : 'block', soleItemClx)}>
|
|
58
|
-
<div className={showQuantity ? 'grow' : ''}>
|
|
59
|
-
{labelAndPrice(items[0])}
|
|
60
|
-
</div>
|
|
61
|
-
{showQuantity && (<QuantityIndicator item={items[0]} clx='grow-0 shrink-0 font-semibold text-sm leading-none px-2'/>)}
|
|
62
|
-
</div>);
|
|
63
|
-
});
|
|
64
|
-
export default ButtonItemSelector;
|
|
65
|
-
//# sourceMappingURL=button.jsx.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"button.jsx","sourceRoot":"","sources":["../../../components/item-selector/button.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { Dimensions } from '@hanzo/ui/types';
|
|
3
|
-
import { type CarouselOptions } from '@hanzo/ui/primitives';
|
|
4
|
-
import type { ItemSelectorProps } from '../../../types';
|
|
5
|
-
interface CarouselItemSelectorPropsExt {
|
|
6
|
-
constrainTo: Dimensions;
|
|
7
|
-
options?: CarouselOptions;
|
|
8
|
-
/** Do not show Family and / or Item title and Price */
|
|
9
|
-
imageOnly?: boolean;
|
|
10
|
-
}
|
|
11
|
-
declare const CarouselItemSelector: React.FC<ItemSelectorProps>;
|
|
12
|
-
export { type CarouselItemSelectorPropsExt, CarouselItemSelector as default };
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
3
|
-
import { reaction } from 'mobx';
|
|
4
|
-
import { observer } from 'mobx-react-lite';
|
|
5
|
-
import { cn } from '@hanzo/ui/util';
|
|
6
|
-
import { ApplyTypography, Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext, MediaStack, } from '@hanzo/ui/primitives';
|
|
7
|
-
import { formatCurrencyValue, accessItemOptions } from '../../../util';
|
|
8
|
-
import QuantityIndicator from '../quantity-indicator';
|
|
9
|
-
import ItemCarouselSlider from './slider';
|
|
10
|
-
const DEFAULT_CONSTRAINT = { w: 250, h: 250 };
|
|
11
|
-
const ItemSlide = ({ item, constrainTo, clx = '' }) => (<CarouselItem className={cn('p-2 flex flex-col justify-center items-center', clx)}>
|
|
12
|
-
<MediaStack media={item} constrainTo={constrainTo} clx='my-4'/>
|
|
13
|
-
</CarouselItem>);
|
|
14
|
-
const CarouselItemSelector = observer(({ items, selectSku, selectedItemRef: itemRef, clx = '', itemClx = '', options = {}, ext = {
|
|
15
|
-
options: { loop: true },
|
|
16
|
-
constrainTo: DEFAULT_CONSTRAINT,
|
|
17
|
-
imageOnly: false
|
|
18
|
-
} }) => {
|
|
19
|
-
const { showPrice, showQuantity, showFamilyInOption, showByline, showSlider, } = accessItemOptions(options);
|
|
20
|
-
const elbaApiRef = useRef(undefined);
|
|
21
|
-
const scrollToRef = useRef(undefined);
|
|
22
|
-
const dontRespondRef = useRef(false);
|
|
23
|
-
const setApi = (api) => { elbaApiRef.current = api; };
|
|
24
|
-
const setScrollTo = (scrollTo) => { scrollToRef.current = scrollTo; };
|
|
25
|
-
const carouselOptions = 'options' in ext ? ext.options : undefined;
|
|
26
|
-
const constrainTo = 'constrainTo' in ext ? ext.constrainTo : DEFAULT_CONSTRAINT;
|
|
27
|
-
const imageOnly = 'imageOnly' in ext ? ext.imageOnly : false;
|
|
28
|
-
const onSelect = useCallback((emblaApi) => {
|
|
29
|
-
if (dontRespondRef.current) {
|
|
30
|
-
dontRespondRef.current = false;
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
const index = emblaApi.selectedScrollSnap();
|
|
34
|
-
if (index !== -1) {
|
|
35
|
-
selectSku(items[index].sku);
|
|
36
|
-
if (scrollToRef.current) {
|
|
37
|
-
scrollToRef.current(index);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
dontRespondRef.current = false;
|
|
41
|
-
}, [scrollToRef.current]);
|
|
42
|
-
useEffect(() => {
|
|
43
|
-
return reaction(() => (itemRef.item), (item) => {
|
|
44
|
-
if (elbaApiRef.current) {
|
|
45
|
-
const index = items.findIndex((el) => (el.sku === item?.sku));
|
|
46
|
-
if (index !== -1) {
|
|
47
|
-
dontRespondRef.current = true;
|
|
48
|
-
elbaApiRef.current.scrollTo(index);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
}, []);
|
|
53
|
-
const optionLabel = () => (showFamilyInOption ?
|
|
54
|
-
(itemRef.item?.familyTitle + ', ' + itemRef.item?.optionLabel)
|
|
55
|
-
:
|
|
56
|
-
itemRef.item?.optionLabel);
|
|
57
|
-
const debugBorder = (c) => {
|
|
58
|
-
return '';
|
|
59
|
-
switch (c) {
|
|
60
|
-
case 'r': return ' border border-[#ffaaaa] ';
|
|
61
|
-
case 'g': return ' border border-[#aaffaa] ';
|
|
62
|
-
case 'b': return ' border border-[#aaaaff] ';
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
const onScrollIndexChange = (index) => {
|
|
66
|
-
dontRespondRef.current = true;
|
|
67
|
-
selectSku(items[index].sku);
|
|
68
|
-
elbaApiRef.current?.scrollTo(index);
|
|
69
|
-
};
|
|
70
|
-
return (<div className={cn('w-full flex flex-col items-center', clx)}>
|
|
71
|
-
<Carousel options={showSlider ? { ...carouselOptions, loop: false } : carouselOptions} className={'w-full px-2' + debugBorder('r')} onCarouselSelect={onSelect} setApi={setApi}>
|
|
72
|
-
<CarouselContent>
|
|
73
|
-
{items.map((item) => (<ItemSlide key={item.sku} item={item} constrainTo={constrainTo} clx={itemClx}/>))}
|
|
74
|
-
</CarouselContent>
|
|
75
|
-
{!showSlider && (<>
|
|
76
|
-
<CarouselPrevious className='left-1'/>
|
|
77
|
-
<CarouselNext className='right-1'/>
|
|
78
|
-
</>)}
|
|
79
|
-
</Carousel>
|
|
80
|
-
|
|
81
|
-
{(!imageOnly && itemRef.item) && (<>
|
|
82
|
-
<ApplyTypography className='flex flex-col items-center [&>*]:!m-0 !gap-1 '>
|
|
83
|
-
<div className={'flex items-center gap-1 [&>*]:!m-0 ' + debugBorder('g') +
|
|
84
|
-
(showFamilyInOption ? 'flex-col' : 'flex-row')}>
|
|
85
|
-
<h6 className='font-semibold'>
|
|
86
|
-
{optionLabel() + (showPrice && !showFamilyInOption ? ',' : '')}
|
|
87
|
-
</h6>
|
|
88
|
-
<div className={'flex items-center gap-1 [&>*]:!m-0 flex-row ' + debugBorder('b') +
|
|
89
|
-
(showFamilyInOption ? 'w-full justify-between' : '')}>
|
|
90
|
-
{showPrice && (<p>{formatCurrencyValue(itemRef.item.price)}</p>)}
|
|
91
|
-
{showQuantity && (<QuantityIndicator item={itemRef.item} clx='h-[22px] ml-4' iconClx='fill-foreground' digitClx='not-typography font-semibold text-primary-fg leading-none font-sans text-xs'/>)}
|
|
92
|
-
</div>
|
|
93
|
-
</div>
|
|
94
|
-
{showByline && itemRef.item.byline && (<p>{itemRef.item.byline}</p>)}
|
|
95
|
-
</ApplyTypography>
|
|
96
|
-
{showSlider && items.length > 1 && (<ItemCarouselSlider clx='mt-5 w-[320px]' numStops={items.length} setScrollTo={setScrollTo} onIndexChange={onScrollIndexChange}/>)}
|
|
97
|
-
</>)}
|
|
98
|
-
</div>);
|
|
99
|
-
});
|
|
100
|
-
export { CarouselItemSelector as default };
|
|
101
|
-
//# sourceMappingURL=index.jsx.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../../components/item-selector/carousel/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import React, { useEffect, useState } from 'react';
|
|
3
|
-
import { Slider } from '@hanzo/ui/primitives';
|
|
4
|
-
const ItemCarouselSlider = ({ clx = '', setScrollTo, onIndexChange, numStops, }) => {
|
|
5
|
-
const [index, setIndex] = useState(0);
|
|
6
|
-
useEffect(() => { setScrollTo(setIndex); }, [setScrollTo]);
|
|
7
|
-
const onValueChange = (v) => { setIndex(v[0]); onIndexChange(v[0]); };
|
|
8
|
-
return (<Slider className={clx} thumbClx='w-8 border-muted border-2 bg-level-1 focus-visible:ring-0 focus-visible:ring-offset-0 transition-none' trackBgClx='bg-level-3' rangeBgClx='bg-level-3' thumbSlidingClx='bg-muted-2' defaultValue={[0]} min={0} max={numStops - 1} step={1} value={[index]} onValueChange={onValueChange}/>);
|
|
9
|
-
};
|
|
10
|
-
export default ItemCarouselSlider;
|
|
11
|
-
//# sourceMappingURL=slider.jsx.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"slider.jsx","sourceRoot":"","sources":["../../../../components/item-selector/carousel/slider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,MAAM,kBAAkB,GAKnB,CAAC,EACJ,GAAG,GAAC,EAAE,EACN,WAAW,EACX,aAAa,EACb,QAAQ,GACT,EAAE,EAAE;IAEH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAS,CAAC,CAAC,CAAA;IAC7C,SAAS,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IAEzD,MAAM,aAAa,GAAG,CAAC,CAAW,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAA;IAE9E,OAAO,CACL,CAAC,MAAM,CACL,SAAS,CAAC,CAAC,GAAG,CAAC,CACf,QAAQ,CAAC,uGAAuG,CAChH,UAAU,CAAC,YAAY,CACvB,UAAU,CAAC,YAAY,CACvB,eAAe,CAAC,YAAY,CAC5B,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAClB,GAAG,CAAC,CAAC,CAAC,CAAC,CACP,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAClB,IAAI,CAAC,CAAC,CAAC,CAAC,CACR,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CACf,aAAa,CAAC,CAAC,aAAa,CAAC,EAC7B,CACH,CAAA;AACH,CAAC,CAAA;AAED,eAAe,kBAAkB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../components/item-selector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,UAAU,CAAA;AACxD,OAAO,EACL,OAAO,IAAI,oBAAoB,EAEhC,MAAM,YAAY,CAAA"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { observer } from 'mobx-react-lite';
|
|
4
|
-
import {} from 'lucide-react';
|
|
5
|
-
import { cn } from '@hanzo/ui/util';
|
|
6
|
-
// Generalize this.
|
|
7
|
-
const BagIcon = (props) => (<svg fill="currentColor" viewBox='0 0 20 23' {...props}>
|
|
8
|
-
<path fillRule="evenodd" d="M5 5a5 5 0 0 1 10 0v1h-2V5a3 3 0 1 0-6 0v1H5V5Zm0 1v4h2V6h6v4h2V6h3.5a1 1 0 0 1 1 1v15a1 1 0 0 1-1 1h-17a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1H5Z" clipRule="evenodd"/>
|
|
9
|
-
</svg>);
|
|
10
|
-
const QuantityIndicator = observer(({ item, clx = '', iconClx = '', digitClx = '' }) => {
|
|
11
|
-
if (!item.isInCart) {
|
|
12
|
-
return <div />;
|
|
13
|
-
}
|
|
14
|
-
return (<div className={cn('relative aspect-square flex items-center justify-center', clx)}>
|
|
15
|
-
<div className={cn('z-above-content flex flex-col justify-center items-center', 'absolute left-0 right-0 top-0 bottom-0', digitClx)}>
|
|
16
|
-
<div className='h-[1px] w-full'/>
|
|
17
|
-
<div style={{ color: 'black' /* tailwind bug */ }}>{item.quantity}</div>
|
|
18
|
-
</div>
|
|
19
|
-
<BagIcon className={cn('relative -top-[12%] h-full ', iconClx)} aria-hidden="true"/>
|
|
20
|
-
</div>);
|
|
21
|
-
}); // -top-[3px]
|
|
22
|
-
export default QuantityIndicator;
|
|
23
|
-
//# sourceMappingURL=quantity-indicator.jsx.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"quantity-indicator.jsx","sourceRoot":"","sources":["../../../components/item-selector/quantity-indicator.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE1C,OAAO,EAAoB,MAAM,cAAc,CAAA;AAE/C,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAGjC,mBAAmB;AACrB,MAAM,OAAO,GAA0B,CAAC,KAAkB,EAAE,EAAE,CAAC,CAC7D,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,CACrD;IAAA,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,2IAA2I,CAAC,QAAQ,CAAC,SAAS,EAC3L;EAAA,EAAE,GAAG,CAAC,CACP,CAAA;AAED,MAAM,iBAAiB,GAKlB,QAAQ,CAAC,CAAC,EACb,IAAI,EACJ,GAAG,GAAC,EAAE,EACN,OAAO,GAAC,EAAE,EACV,QAAQ,GAAC,EAAE,EACZ,EAAE,EAAE;IAEH,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,AAAD,EAAG,CAAA;IAChB,CAAC;IAED,OAAO,CACL,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,yDAAyD,EAAE,GAAG,CAAC,CAAC,CACjF;MAAA,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAChB,2DAA2D,EAC3D,wCAAwC,EACxC,QAAQ,CACT,CAAC,CACA;QAAA,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAC/B;QAAA,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAC,KAAK,EAAE,OAAO,CAAC,kBAAkB,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,CACvE;MAAA,EAAE,GAAG,CACL;MAAA,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,6BAA6B,EAAE,OAAO,CAAG,CAAC,CAAC,WAAW,CAAC,MAAM,EACtF;IAAA,EAAE,GAAG,CAAC,CACP,CAAA;AACH,CAAC,CAAC,CAAA,CAAC,cAAc;AAEjB,eAAe,iBAAiB,CAAA"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { CategoryNode, StringMutator, StringArrayMutator } from '../../types';
|
|
3
|
-
declare const NodeTabs: React.FC<{
|
|
4
|
-
levelNodes: CategoryNode[];
|
|
5
|
-
mutator: StringMutator | StringArrayMutator;
|
|
6
|
-
multiple?: boolean;
|
|
7
|
-
className?: string;
|
|
8
|
-
buttonClx?: string;
|
|
9
|
-
itemClx?: string;
|
|
10
|
-
mobile?: boolean;
|
|
11
|
-
tabSize?: string;
|
|
12
|
-
show?: 'image' | 'label' | 'image-and-label';
|
|
13
|
-
}>;
|
|
14
|
-
export default NodeTabs;
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import React, { useState } from 'react';
|
|
3
|
-
import { ToggleGroup, ToggleGroupItem } from "@hanzo/ui/primitives";
|
|
4
|
-
import { cn } from '@hanzo/ui/util';
|
|
5
|
-
import NodeImage from './node-image';
|
|
6
|
-
const NodeTabs = ({ levelNodes, mutator, multiple = false, buttonClx = '', itemClx = '', className = '', mobile = false, tabSize, show = 'image-and-label' }) => {
|
|
7
|
-
const [last, setLast] = useState(undefined);
|
|
8
|
-
const handleChangeMultiple = (selected) => {
|
|
9
|
-
mutator.set(selected);
|
|
10
|
-
setLast(selected.length === 1 ? selected[0] : undefined);
|
|
11
|
-
};
|
|
12
|
-
const handleChangeSingle = (selected) => {
|
|
13
|
-
mutator.set(selected);
|
|
14
|
-
if (selected) {
|
|
15
|
-
setLast(selected);
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
const roundedToSpread = {};
|
|
19
|
-
if (multiple) {
|
|
20
|
-
roundedToSpread.rounded = 'xl';
|
|
21
|
-
}
|
|
22
|
-
const val = multiple ?
|
|
23
|
-
mutator.get()
|
|
24
|
-
:
|
|
25
|
-
mutator.get();
|
|
26
|
-
return (<ToggleGroup type={multiple ? 'multiple' : 'single'} value={val} variant='default' size={tabSize ? tabSize : (mobile ? 'sm' : 'default')} onValueChange={multiple ? handleChangeMultiple : handleChangeSingle} className={className} {...roundedToSpread}>
|
|
27
|
-
{levelNodes.map((treeNode, index) => {
|
|
28
|
-
const roundedToSpread = {};
|
|
29
|
-
if (!multiple) {
|
|
30
|
-
roundedToSpread.rounded = 'none';
|
|
31
|
-
if (index === 0) {
|
|
32
|
-
roundedToSpread.rounded = 'llg';
|
|
33
|
-
}
|
|
34
|
-
else if (index === levelNodes.length - 1) {
|
|
35
|
-
roundedToSpread.rounded = 'rlg';
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return (<ToggleGroupItem key={treeNode.skuToken} value={treeNode.skuToken} disabled={(last && last === treeNode.skuToken || treeNode.skuToken === mutator.get())} aria-label={`Select ${treeNode.label}`} {...roundedToSpread} className={buttonClx}>
|
|
39
|
-
<span className={cn('flex flex-row justify-center gap-1 h-6 items-center', itemClx)}>
|
|
40
|
-
{!(show === 'label') && (<NodeImage treeNode={treeNode}/>)}
|
|
41
|
-
{(!(show === 'image') || !treeNode.img) && (<span className='whitespace-nowrap'>{treeNode.label}</span>)}
|
|
42
|
-
</span>
|
|
43
|
-
</ToggleGroupItem>);
|
|
44
|
-
})}
|
|
45
|
-
</ToggleGroup>);
|
|
46
|
-
};
|
|
47
|
-
export default NodeTabs;
|
|
48
|
-
//# sourceMappingURL=index.jsx.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../components/node-tabs/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import Image from 'next/image';
|
|
3
|
-
const ICON_SIZE = 20;
|
|
4
|
-
const NodeImage = ({ treeNode: { img, imgAR: ar, label } }) => {
|
|
5
|
-
if (!img) {
|
|
6
|
-
return null;
|
|
7
|
-
}
|
|
8
|
-
// treat as URL
|
|
9
|
-
return (typeof img === 'string') ? (<Image src={img} alt={`Toggle ${label}`} className={'block mr-1 '} width={ar ? ar * ICON_SIZE : ICON_SIZE} height={ICON_SIZE}/>) : img;
|
|
10
|
-
};
|
|
11
|
-
export default NodeImage;
|
|
12
|
-
//# sourceMappingURL=node-image.jsx.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"node-image.jsx","sourceRoot":"","sources":["../../../components/node-tabs/node-image.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,MAAM,YAAY,CAAA;AAI9B,MAAM,SAAS,GAAG,EAAE,CAAA;AAEpB,MAAM,SAAS,GAEV,CAAC,EACJ,QAAQ,EAAE,EACR,GAAG,EACH,KAAK,EAAE,EAAE,EACT,KAAK,EACN,EACF,EAAE,EAAE;IAEH,IAAI,CAAC,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAA;IAAC,CAAC;IACvB,eAAe;IACjB,OAAO,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CACjC,CAAC,KAAK,CACJ,GAAG,CAAC,CAAC,GAAa,CAAC,CACnB,GAAG,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,CACvB,SAAS,CAAC,CAAC,aAAa,CAAC,CACzB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CACxC,MAAM,CAAC,CAAC,SAAS,CAAC,EAClB,CACH,CAAC,CAAC,CAAE,GAAuB,CAAA;AAC9B,CAAC,CAAA;AAED,eAAe,SAAS,CAAA"}
|
package/dist/index.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export * from './service/context';
|
|
2
|
-
export * from './components';
|
|
3
|
-
export type { StandaloneServiceOptions as ServiceOptions } from './service/impls/standalone';
|
|
4
|
-
export { useSyncSkuParamWithCurrentItem, getFacetValuesMutator, formatCurrencyValue, ProductMediaAccessor, LineItemRef } from './util';
|
|
5
|
-
export * from './util/selection-ui-specifiers';
|
package/dist/index.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export * from './service/context';
|
|
2
|
-
export * from './components';
|
|
3
|
-
export { useSyncSkuParamWithCurrentItem, getFacetValuesMutator, formatCurrencyValue, ProductMediaAccessor, LineItemRef } from './util';
|
|
4
|
-
export * from './util/selection-ui-specifiers';
|
|
5
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAG5B,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,EACZ,MAAM,QAAQ,CAAA;AAEf,cAAc,gCAAgC,CAAA"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import React, { type PropsWithChildren } from 'react';
|
|
2
|
-
import type CommerceService from '../types/commerce-service';
|
|
3
|
-
import type { CommerceConfig } from '../types';
|
|
4
|
-
declare const useCommerce: () => CommerceService;
|
|
5
|
-
declare const CommerceProvider: React.FC<PropsWithChildren & {
|
|
6
|
-
config: CommerceConfig;
|
|
7
|
-
}>;
|
|
8
|
-
export { useCommerce, CommerceProvider };
|