@hanzo/commerce 7.3.0 → 7.3.2

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 (83) hide show
  1. package/components/Icons.tsx +34 -34
  2. package/components/add-to-cart-widget.tsx +183 -183
  3. package/components/buy/buy-card.tsx +259 -259
  4. package/components/buy/carousel-buy-card.tsx +242 -242
  5. package/components/buy/multi-family/all-variants-carousel.tsx +261 -261
  6. package/components/buy/multi-family/family-carousel/index.tsx +77 -77
  7. package/components/buy/multi-family/family-carousel/slide.tsx +83 -83
  8. package/components/buy/multi-family/family-carousel/state.ts +87 -87
  9. package/components/buy/multi-family/index.ts +2 -2
  10. package/components/buy/single-family-selector.tsx +90 -90
  11. package/components/buy/title-and-byline.tsx +25 -25
  12. package/components/cart/cart-panel/cart-line-item.tsx +76 -76
  13. package/components/cart/cart-panel/index.tsx +154 -154
  14. package/components/cart/cart-panel/promo-code.tsx +106 -106
  15. package/components/cart/cart-panel/total-area.tsx +60 -60
  16. package/components/checkout/payment-step-form/card-icon-row.tsx +26 -26
  17. package/components/checkout/payment-step-form/card-icons/amex.tsx +32 -32
  18. package/components/checkout/payment-step-form/card-icons/diners-club.tsx +13 -13
  19. package/components/checkout/payment-step-form/card-icons/discover.tsx +25 -25
  20. package/components/checkout/payment-step-form/card-icons/jcb.tsx +26 -26
  21. package/components/checkout/payment-step-form/card-icons/mastercard.tsx +27 -27
  22. package/components/checkout/payment-step-form/card-icons/visa.tsx +25 -25
  23. package/components/checkout/payment-step-form/cc-button.tsx +17 -17
  24. package/components/checkout/payment-step-form/contact-form.tsx +49 -49
  25. package/components/checkout/payment-step-form/crypto-icons/btc.tsx +11 -11
  26. package/components/checkout/payment-step-form/crypto-icons/eth.tsx +20 -20
  27. package/components/checkout/payment-step-form/crypto-icons/usdt.tsx +13 -13
  28. package/components/checkout/payment-step-form/index.tsx +122 -122
  29. package/components/checkout/payment-step-form/methods/bank-transfer.tsx +79 -79
  30. package/components/checkout/payment-step-form/methods/card.tsx +232 -232
  31. package/components/checkout/payment-step-form/methods/crypto.tsx +227 -227
  32. package/components/checkout/payment-step-form/methods/index.ts +22 -22
  33. package/components/checkout/shipping-step-form.tsx +172 -172
  34. package/components/index.ts +11 -11
  35. package/components/item/product-card.tsx +48 -48
  36. package/components/item-selector/button.tsx +188 -188
  37. package/components/item-selector/carousel/index.tsx +197 -197
  38. package/components/item-selector/carousel/slider.tsx +40 -40
  39. package/components/item-selector/index.ts +5 -5
  40. package/components/item-selector/quantity-indicator.tsx +48 -48
  41. package/components/node-tabs/index.tsx +91 -91
  42. package/components/node-tabs/node-image.tsx +31 -31
  43. package/index.ts +12 -12
  44. package/package.json +60 -60
  45. package/service/context.tsx +45 -45
  46. package/service/debug.ts +41 -41
  47. package/service/impls/standalone/actual-line-item.ts +135 -135
  48. package/service/impls/standalone/get-instance.ts +64 -64
  49. package/service/impls/standalone/index.ts +579 -579
  50. package/service/impls/standalone/order/firebase.ts +14 -14
  51. package/service/impls/standalone/order/index.ts +128 -128
  52. package/service/impls/standalone/persistence.ts +33 -33
  53. package/service/path-utils.ts +25 -25
  54. package/service/sep.ts +6 -6
  55. package/tsconfig.json +10 -10
  56. package/types/README.md +1 -1
  57. package/types/category-node.ts +49 -49
  58. package/types/checkout.ts +46 -46
  59. package/types/commerce-config.ts +13 -13
  60. package/types/commerce-service.ts +127 -127
  61. package/types/family.ts +25 -25
  62. package/types/index.ts +15 -15
  63. package/types/item-selector.ts +96 -96
  64. package/types/line-item.ts +29 -29
  65. package/types/multi-family-selector-props.ts +19 -19
  66. package/types/product.ts +20 -20
  67. package/types/promo.ts +9 -9
  68. package/types/selection-ui-specifier.ts +51 -51
  69. package/types/string-mutator.ts +13 -13
  70. package/types/token-separators.ts +7 -7
  71. package/util/analytics.ts +20 -20
  72. package/util/countries.ts +195 -195
  73. package/util/error.ts +34 -34
  74. package/util/index.ts +70 -70
  75. package/util/item-selector-options-accessor.ts +34 -34
  76. package/util/line-item-ref.ts +23 -23
  77. package/util/multi-family-selector-options-accessor.ts +14 -14
  78. package/util/obs-string-mutator.ts +22 -22
  79. package/util/product-media-accessor.ts +58 -58
  80. package/util/promo-codes.ts +108 -108
  81. package/util/selection-ui-specifiers.ts +29 -29
  82. package/util/square-payment.ts +42 -42
  83. package/util/use-sync-sku-param-w-current-item.ts +88 -88
package/types/product.ts CHANGED
@@ -1,21 +1,21 @@
1
- import type { ImageDef, MediaStackDef } from '@hanzo/ui/types'
2
-
3
- interface Product extends MediaStackDef {
4
- id: string // DB index // not a logical aspect of our domain. may not be necessary at all
5
- sku: string // human visible on orders etc.
6
- fullTitle?: string
7
- optionLabel: string
8
- optionLabelShort?: string
9
- familyId: string // skuPath, eg LXB-AU-B
10
- familyTitle: string
11
- byline?: string
12
- desc?: string
13
- price: number
14
- // image to by uses as an image button in a list of choices
15
- // defaults to (MediaStackDef's) img
16
- optionImg?: ImageDef
17
- }
18
-
19
- export {
20
- type Product as default
1
+ import type { ImageDef, MediaStackDef } from '@hanzo/ui/types'
2
+
3
+ interface Product extends MediaStackDef {
4
+ id: string // DB index // not a logical aspect of our domain. may not be necessary at all
5
+ sku: string // human visible on orders etc.
6
+ fullTitle?: string
7
+ optionLabel: string
8
+ optionLabelShort?: string
9
+ familyId: string // skuPath, eg LXB-AU-B
10
+ familyTitle: string
11
+ byline?: string
12
+ desc?: string
13
+ price: number
14
+ // image to by uses as an image button in a list of choices
15
+ // defaults to (MediaStackDef's) img
16
+ optionImg?: ImageDef
17
+ }
18
+
19
+ export {
20
+ type Product as default
21
21
  }
package/types/promo.ts CHANGED
@@ -1,10 +1,10 @@
1
- interface Promo {
2
- type: 'percent' | 'amount'
3
- code: string
4
- value: number,
5
- skus?: string[]
6
- }
7
-
8
- export {
9
- type Promo as default
1
+ interface Promo {
2
+ type: 'percent' | 'amount'
3
+ code: string
4
+ value: number,
5
+ skus?: string[]
6
+ }
7
+
8
+ export {
9
+ type Promo as default
10
10
  }
@@ -1,52 +1,52 @@
1
- import type { ItemSelectorOptions } from './item-selector'
2
-
3
- type SingleFamilySelector = 'buttons' | 'carousel'
4
- type MultiFamilySelector = 'family-carousel' | 'all-variants-carousel'
5
-
6
- type MultiFamilySelectorOptions = {
7
- /**
8
- * Show title of parent node of families.
9
- * eg,
10
- * Lux Credit
11
- * Black Card
12
- *
13
- * vs just Black Card
14
- *
15
- * ( parent CategoryNode.label)
16
- *
17
- * (goes to one line if only one family)
18
- * default: true
19
- * */
20
- showParentTitle?: boolean
21
-
22
- /** parent CategoryNode.subNodesLabel
23
- *
24
- * default: 'none'
25
- */
26
- parentByline?: 'none' | 'own-line' | 'comma-sep' | 'colon-sep'
27
-
28
- /** show horiz image buttons of
29
- * all sibling items below item info
30
- * default: true*/
31
- showItemSwatches?: boolean
32
- }
33
-
34
- interface SelectionUISpecifier {
35
- multiFamily?: {
36
- type: MultiFamilySelector
37
- selectorOptions?: MultiFamilySelectorOptions
38
- itemOptions?: ItemSelectorOptions
39
- }
40
- singleFamily?: {
41
- type: SingleFamilySelector
42
- options?: ItemSelectorOptions
43
- }
44
- }
45
-
46
- export {
47
- type SelectionUISpecifier,
48
- type ItemSelectorOptions,
49
- type SingleFamilySelector,
50
- type MultiFamilySelector,
51
- type MultiFamilySelectorOptions
1
+ import type { ItemSelectorOptions } from './item-selector'
2
+
3
+ type SingleFamilySelector = 'buttons' | 'carousel'
4
+ type MultiFamilySelector = 'family-carousel' | 'all-variants-carousel'
5
+
6
+ type MultiFamilySelectorOptions = {
7
+ /**
8
+ * Show title of parent node of families.
9
+ * eg,
10
+ * Lux Credit
11
+ * Black Card
12
+ *
13
+ * vs just Black Card
14
+ *
15
+ * ( parent CategoryNode.label)
16
+ *
17
+ * (goes to one line if only one family)
18
+ * default: true
19
+ * */
20
+ showParentTitle?: boolean
21
+
22
+ /** parent CategoryNode.subNodesLabel
23
+ *
24
+ * default: 'none'
25
+ */
26
+ parentByline?: 'none' | 'own-line' | 'comma-sep' | 'colon-sep'
27
+
28
+ /** show horiz image buttons of
29
+ * all sibling items below item info
30
+ * default: true*/
31
+ showItemSwatches?: boolean
32
+ }
33
+
34
+ interface SelectionUISpecifier {
35
+ multiFamily?: {
36
+ type: MultiFamilySelector
37
+ selectorOptions?: MultiFamilySelectorOptions
38
+ itemOptions?: ItemSelectorOptions
39
+ }
40
+ singleFamily?: {
41
+ type: SingleFamilySelector
42
+ options?: ItemSelectorOptions
43
+ }
44
+ }
45
+
46
+ export {
47
+ type SelectionUISpecifier,
48
+ type ItemSelectorOptions,
49
+ type SingleFamilySelector,
50
+ type MultiFamilySelector,
51
+ type MultiFamilySelectorOptions
52
52
  }
@@ -1,14 +1,14 @@
1
- interface StringMutator {
2
- get(): string | null
3
- set(v: string | null): void
4
- }
5
-
6
- interface StringArrayMutator {
7
- get(): string[] | null
8
- set(v: string[] | null): void
9
- }
10
-
11
- export type {
12
- StringMutator,
13
- StringArrayMutator
1
+ interface StringMutator {
2
+ get(): string | null
3
+ set(v: string | null): void
4
+ }
5
+
6
+ interface StringArrayMutator {
7
+ get(): string[] | null
8
+ set(v: string[] | null): void
9
+ }
10
+
11
+ export type {
12
+ StringMutator,
13
+ StringArrayMutator
14
14
  }
@@ -1,7 +1,7 @@
1
- interface TokenSeparators {
2
- readonly tok: string
3
- readonly subTok: string
4
- readonly decimal: string
5
- }
6
-
7
- export { type TokenSeparators as default }
1
+ interface TokenSeparators {
2
+ readonly tok: string
3
+ readonly subTok: string
4
+ readonly decimal: string
5
+ }
6
+
7
+ export { type TokenSeparators as default }
package/util/analytics.ts CHANGED
@@ -1,21 +1,21 @@
1
- declare global {
2
- interface Window {
3
- fbq: Function;
4
- gtag: Function;
5
- }
6
- }
7
-
8
- // https://developers.facebook.com/docs/meta-pixel/reference
9
- const sendFBEvent = (name: string, options = {}) => {
10
- window.fbq('track', name, options)
11
- }
12
-
13
- // https://developers.google.com/analytics/devguides/collection/ga4/ecommerce?client_type=gtag
14
- const sendGAEvent = (name: string, options = {}) => {
15
- window.gtag('event', name, options)
16
- }
17
-
18
- export {
19
- sendFBEvent,
20
- sendGAEvent,
1
+ declare global {
2
+ interface Window {
3
+ fbq: Function;
4
+ gtag: Function;
5
+ }
6
+ }
7
+
8
+ // https://developers.facebook.com/docs/meta-pixel/reference
9
+ const sendFBEvent = (name: string, options = {}) => {
10
+ window.fbq('track', name, options)
11
+ }
12
+
13
+ // https://developers.google.com/analytics/devguides/collection/ga4/ecommerce?client_type=gtag
14
+ const sendGAEvent = (name: string, options = {}) => {
15
+ window.gtag('event', name, options)
16
+ }
17
+
18
+ export {
19
+ sendFBEvent,
20
+ sendGAEvent,
21
21
  }