@instockng/storefront-ui 1.0.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 (152) hide show
  1. package/README.md +394 -0
  2. package/dist/components/CartItem.d.ts +15 -0
  3. package/dist/components/CartItem.d.ts.map +1 -0
  4. package/dist/components/Checkout.d.ts +39 -0
  5. package/dist/components/Checkout.d.ts.map +1 -0
  6. package/dist/components/DiscountCodeInput.d.ts +20 -0
  7. package/dist/components/DiscountCodeInput.d.ts.map +1 -0
  8. package/dist/components/OrderConfirmation.d.ts +30 -0
  9. package/dist/components/OrderConfirmation.d.ts.map +1 -0
  10. package/dist/components/ProductCard.d.ts +42 -0
  11. package/dist/components/ProductCard.d.ts.map +1 -0
  12. package/dist/components/ProductGrid.d.ts +33 -0
  13. package/dist/components/ProductGrid.d.ts.map +1 -0
  14. package/dist/components/ShoppingCart.d.ts +28 -0
  15. package/dist/components/ShoppingCart.d.ts.map +1 -0
  16. package/dist/components/ui/badge.d.ts +10 -0
  17. package/dist/components/ui/badge.d.ts.map +1 -0
  18. package/dist/components/ui/button.d.ts +12 -0
  19. package/dist/components/ui/button.d.ts.map +1 -0
  20. package/dist/components/ui/card.d.ts +9 -0
  21. package/dist/components/ui/card.d.ts.map +1 -0
  22. package/dist/components/ui/form-input.d.ts +20 -0
  23. package/dist/components/ui/form-input.d.ts.map +1 -0
  24. package/dist/components/ui/form-select.d.ts +18 -0
  25. package/dist/components/ui/form-select.d.ts.map +1 -0
  26. package/dist/components/ui/modal.d.ts +31 -0
  27. package/dist/components/ui/modal.d.ts.map +1 -0
  28. package/dist/contexts/CartContext.d.ts +60 -0
  29. package/dist/contexts/CartContext.d.ts.map +1 -0
  30. package/dist/hooks/usePaystackPayment.d.ts +46 -0
  31. package/dist/hooks/usePaystackPayment.d.ts.map +1 -0
  32. package/dist/index.d.ts +34 -0
  33. package/dist/index.d.ts.map +1 -0
  34. package/dist/index.mjs +99 -0
  35. package/dist/index10.mjs +644 -0
  36. package/dist/index100.mjs +7 -0
  37. package/dist/index101.mjs +35 -0
  38. package/dist/index102.mjs +33 -0
  39. package/dist/index103.mjs +30 -0
  40. package/dist/index104.mjs +63 -0
  41. package/dist/index105.mjs +5 -0
  42. package/dist/index106.mjs +4 -0
  43. package/dist/index107.mjs +4 -0
  44. package/dist/index108.mjs +19 -0
  45. package/dist/index109.mjs +15 -0
  46. package/dist/index11.mjs +62 -0
  47. package/dist/index110.mjs +8 -0
  48. package/dist/index111.mjs +32 -0
  49. package/dist/index12.mjs +64 -0
  50. package/dist/index13.mjs +26 -0
  51. package/dist/index14.mjs +117 -0
  52. package/dist/index15.mjs +44 -0
  53. package/dist/index16.mjs +44 -0
  54. package/dist/index17.mjs +44 -0
  55. package/dist/index18.mjs +43 -0
  56. package/dist/index19.mjs +11 -0
  57. package/dist/index2.mjs +24 -0
  58. package/dist/index20.mjs +29 -0
  59. package/dist/index21.mjs +34 -0
  60. package/dist/index22.mjs +22 -0
  61. package/dist/index23.mjs +90 -0
  62. package/dist/index24.mjs +22 -0
  63. package/dist/index25.mjs +13 -0
  64. package/dist/index26.mjs +99 -0
  65. package/dist/index27.mjs +20 -0
  66. package/dist/index28.mjs +67 -0
  67. package/dist/index29.mjs +98 -0
  68. package/dist/index3.mjs +121 -0
  69. package/dist/index30.mjs +21 -0
  70. package/dist/index31.mjs +21 -0
  71. package/dist/index32.mjs +13 -0
  72. package/dist/index33.mjs +6 -0
  73. package/dist/index34.mjs +1435 -0
  74. package/dist/index35.mjs +4 -0
  75. package/dist/index36.mjs +59 -0
  76. package/dist/index37.mjs +53 -0
  77. package/dist/index38.mjs +35 -0
  78. package/dist/index39.mjs +17 -0
  79. package/dist/index4.mjs +201 -0
  80. package/dist/index40.mjs +2265 -0
  81. package/dist/index41.mjs +25 -0
  82. package/dist/index42.mjs +38 -0
  83. package/dist/index43.mjs +46 -0
  84. package/dist/index44.mjs +101 -0
  85. package/dist/index45.mjs +114 -0
  86. package/dist/index46.mjs +78 -0
  87. package/dist/index47.mjs +89 -0
  88. package/dist/index48.mjs +106 -0
  89. package/dist/index49.mjs +87 -0
  90. package/dist/index5.mjs +112 -0
  91. package/dist/index50.mjs +76 -0
  92. package/dist/index51.mjs +20 -0
  93. package/dist/index52.mjs +19 -0
  94. package/dist/index53.mjs +64 -0
  95. package/dist/index54.mjs +131 -0
  96. package/dist/index55.mjs +135 -0
  97. package/dist/index56.mjs +77 -0
  98. package/dist/index57.mjs +17 -0
  99. package/dist/index58.mjs +65 -0
  100. package/dist/index59.mjs +6 -0
  101. package/dist/index6.mjs +82 -0
  102. package/dist/index60.mjs +4 -0
  103. package/dist/index61.mjs +7 -0
  104. package/dist/index62.mjs +36 -0
  105. package/dist/index63.mjs +45 -0
  106. package/dist/index64.mjs +237 -0
  107. package/dist/index65.mjs +8 -0
  108. package/dist/index66.mjs +136 -0
  109. package/dist/index67.mjs +70 -0
  110. package/dist/index68.mjs +89 -0
  111. package/dist/index69.mjs +31 -0
  112. package/dist/index7.mjs +100 -0
  113. package/dist/index70.mjs +11 -0
  114. package/dist/index71.mjs +77 -0
  115. package/dist/index72.mjs +6 -0
  116. package/dist/index73.mjs +4 -0
  117. package/dist/index74.mjs +85 -0
  118. package/dist/index75.mjs +56 -0
  119. package/dist/index76.mjs +8 -0
  120. package/dist/index77.mjs +7 -0
  121. package/dist/index78.mjs +181 -0
  122. package/dist/index79.mjs +55 -0
  123. package/dist/index8.mjs +165 -0
  124. package/dist/index80.mjs +71 -0
  125. package/dist/index81.mjs +23 -0
  126. package/dist/index82.mjs +58 -0
  127. package/dist/index83.mjs +31 -0
  128. package/dist/index84.mjs +9 -0
  129. package/dist/index85.mjs +54 -0
  130. package/dist/index86.mjs +8 -0
  131. package/dist/index87.mjs +14 -0
  132. package/dist/index88.mjs +9 -0
  133. package/dist/index89.mjs +30 -0
  134. package/dist/index9.mjs +100 -0
  135. package/dist/index90.mjs +4 -0
  136. package/dist/index91.mjs +72 -0
  137. package/dist/index92.mjs +169 -0
  138. package/dist/index93.mjs +15 -0
  139. package/dist/index94.mjs +9 -0
  140. package/dist/index95.mjs +33 -0
  141. package/dist/index96.mjs +13 -0
  142. package/dist/index97.mjs +6 -0
  143. package/dist/index98.mjs +6 -0
  144. package/dist/index99.mjs +14 -0
  145. package/dist/lib/utils.d.ts +7 -0
  146. package/dist/lib/utils.d.ts.map +1 -0
  147. package/dist/mockServiceWorker.js +349 -0
  148. package/dist/providers/StorefrontProvider.d.ts +47 -0
  149. package/dist/providers/StorefrontProvider.d.ts.map +1 -0
  150. package/dist/test-utils/MockCartProvider.d.ts +21 -0
  151. package/dist/test-utils/MockCartProvider.d.ts.map +1 -0
  152. package/package.json +77 -0
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ declare const Card: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
3
+ declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
4
+ declare const CardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
5
+ declare const CardDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
6
+ declare const CardContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
7
+ declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
8
+ export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };
9
+ //# sourceMappingURL=card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../src/components/ui/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,QAAA,MAAM,IAAI,6GAYR,CAAA;AAGF,QAAA,MAAM,UAAU,6GASd,CAAA;AAGF,QAAA,MAAM,SAAS,6GAYb,CAAA;AAGF,QAAA,MAAM,eAAe,6GASnB,CAAA;AAGF,QAAA,MAAM,WAAW,6GAKf,CAAA;AAGF,QAAA,MAAM,UAAU,6GASd,CAAA;AAGF,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,CAAA"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * FormInput Component
3
+ *
4
+ * A styled input field with label, error handling, and optional icon.
5
+ */
6
+ import React from 'react';
7
+ export interface FormInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange'> {
8
+ /** Input label */
9
+ label?: string;
10
+ /** Error message to display */
11
+ error?: string;
12
+ /** Optional icon to display inside the input */
13
+ icon?: React.ReactNode;
14
+ /** Callback when input value changes */
15
+ onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
16
+ /** Additional CSS class for the container */
17
+ containerClassName?: string;
18
+ }
19
+ export declare const FormInput: React.ForwardRefExoticComponent<FormInputProps & React.RefAttributes<HTMLInputElement>>;
20
+ //# sourceMappingURL=form-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-input.d.ts","sourceRoot":"","sources":["../../../src/components/ui/form-input.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,UAAU,CAAC;IACrE,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC5D,6CAA6C;IAC7C,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,SAAS,yFAoDrB,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * FormSelect Component
3
+ *
4
+ * A styled select dropdown with label and error handling.
5
+ */
6
+ import React from 'react';
7
+ export interface FormSelectProps extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, 'onChange'> {
8
+ /** Select label */
9
+ label?: string;
10
+ /** Error message to display */
11
+ error?: string;
12
+ /** Callback when select value changes */
13
+ onChange?: (e: React.ChangeEvent<HTMLSelectElement>) => void;
14
+ /** Additional CSS class for the container */
15
+ containerClassName?: string;
16
+ }
17
+ export declare const FormSelect: React.ForwardRefExoticComponent<FormSelectProps & React.RefAttributes<HTMLSelectElement>>;
18
+ //# sourceMappingURL=form-select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-select.d.ts","sourceRoot":"","sources":["../../../src/components/ui/form-select.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC;IACvE,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC7D,6CAA6C;IAC7C,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,UAAU,2FAiDtB,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Modal Component
3
+ *
4
+ * A floating modal dialog with overlay, header, content area, and footer.
5
+ * Built with React portals for proper z-index stacking.
6
+ */
7
+ import React from 'react';
8
+ export interface ModalProps {
9
+ /** Controls modal visibility */
10
+ isOpen: boolean;
11
+ /** Callback when modal should close */
12
+ onClose: () => void;
13
+ /** Modal title - can be string or React element */
14
+ title?: React.ReactNode;
15
+ /** Modal content */
16
+ children: React.ReactNode;
17
+ /** Footer content (typically buttons) */
18
+ footer?: React.ReactNode;
19
+ /** Additional CSS class for the modal container */
20
+ className?: string;
21
+ /** Additional CSS class for the modal content area */
22
+ contentClassName?: string;
23
+ /** Size of the modal */
24
+ size?: 'sm' | 'md' | 'lg' | 'xl' | 'full';
25
+ /** Whether clicking the overlay closes the modal */
26
+ closeOnOverlayClick?: boolean;
27
+ /** Whether to show the close button */
28
+ showCloseButton?: boolean;
29
+ }
30
+ export declare function Modal({ isOpen, onClose, title, children, footer, className, contentClassName, size, closeOnOverlayClick, showCloseButton, }: ModalProps): JSX.Element | null;
31
+ //# sourceMappingURL=modal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../src/components/ui/modal.tsx"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAsC,MAAM,OAAO,CAAC;AAK3D,MAAM,WAAW,UAAU;IACzB,gCAAgC;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,uCAAuC;IACvC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,mDAAmD;IACnD,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,oBAAoB;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,yCAAyC;IACzC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB;IACxB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;IAC1C,oDAAoD;IACpD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,uCAAuC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,KAAK,CAAC,EACpB,MAAM,EACN,OAAO,EACP,KAAK,EACL,QAAQ,EACR,MAAM,EACN,SAAS,EACT,gBAAgB,EAChB,IAAW,EACX,mBAA0B,EAC1B,eAAsB,GACvB,EAAE,UAAU,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAoIjC"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Cart Context Provider
3
+ *
4
+ * Manages cart state with localStorage persistence and auto-creation.
5
+ * Uses @oms/api-client hooks for all cart operations.
6
+ * Includes built-in ShoppingCart modal that can be opened/closed from anywhere.
7
+ */
8
+ import { ReactNode } from 'react';
9
+ import { useUpdateCart, useCheckoutCart, type Cart } from '@oms/api-client';
10
+ interface CartContextValue {
11
+ /** Current cart data */
12
+ cart: Cart | null;
13
+ /** Cart ID (from localStorage or newly created) */
14
+ cartId: string | null;
15
+ /** Loading state */
16
+ isLoading: boolean;
17
+ /** Error state */
18
+ error: Error | null;
19
+ /** Update cart mutation (from useUpdateCart) */
20
+ updateCartMutation: ReturnType<typeof useUpdateCart>;
21
+ /** Checkout mutation (from useCheckoutCart) */
22
+ checkoutMutation: ReturnType<typeof useCheckoutCart>;
23
+ /** Add item to cart by SKU */
24
+ addItem: (sku: string, quantity: number) => Promise<void>;
25
+ /** Update item quantity */
26
+ updateItem: (itemId: string, quantity: number) => Promise<void>;
27
+ /** Remove item from cart */
28
+ removeItem: (itemId: string) => Promise<void>;
29
+ /** Apply discount code */
30
+ applyDiscount: (code: string) => Promise<void>;
31
+ /** Remove discount code */
32
+ removeDiscount: () => Promise<void>;
33
+ /** Clear cart (removes from localStorage) */
34
+ clearCart: () => void;
35
+ /** Refresh cart data */
36
+ refetch: () => void;
37
+ /** Whether the cart modal is open */
38
+ isOpen: boolean;
39
+ /** Open the cart modal */
40
+ open: () => void;
41
+ /** Close the cart modal */
42
+ close: () => void;
43
+ }
44
+ export declare const CartContext: import("react").Context<CartContextValue | null>;
45
+ export interface CartProviderProps {
46
+ children: ReactNode;
47
+ /** Brand slug for cart operations */
48
+ brandSlug: string;
49
+ /** Optional initial cart ID (overrides localStorage) */
50
+ initialCartId?: string;
51
+ /** Props to pass to the ShoppingCart component */
52
+ shoppingCartProps?: Omit<import('../components/ShoppingCart').ShoppingCartProps, 'isOpen' | 'onClose'>;
53
+ }
54
+ export declare function CartProvider({ children, brandSlug, initialCartId, shoppingCartProps }: CartProviderProps): import("react/jsx-runtime").JSX.Element;
55
+ /**
56
+ * Hook to access cart context
57
+ */
58
+ export declare function useCart(): CartContextValue;
59
+ export {};
60
+ //# sourceMappingURL=CartContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CartContext.d.ts","sourceRoot":"","sources":["../../src/contexts/CartContext.tsx"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,EAAkD,SAAS,EAAe,MAAM,OAAO,CAAC;AAC/F,OAAO,EAGL,aAAa,EAMb,eAAe,EACf,KAAK,IAAI,EACV,MAAM,iBAAiB,CAAC;AAKzB,UAAU,gBAAgB;IACxB,wBAAwB;IACxB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,mDAAmD;IACnD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,oBAAoB;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,gDAAgD;IAChD,kBAAkB,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;IACrD,+CAA+C;IAC/C,gBAAgB,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;IACrD,8BAA8B;IAC9B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,2BAA2B;IAC3B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,4BAA4B;IAC5B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,0BAA0B;IAC1B,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,2BAA2B;IAC3B,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,6CAA6C;IAC7C,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,wBAAwB;IACxB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,qCAAqC;IACrC,MAAM,EAAE,OAAO,CAAC;IAChB,0BAA0B;IAC1B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,eAAO,MAAM,WAAW,kDAA+C,CAAC;AAExE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,SAAS,CAAC;IACpB,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,IAAI,CAAC,OAAO,4BAA4B,EAAE,iBAAiB,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC;CACxG;AAED,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,iBAAiB,2CA0KxG;AAED;;GAEG;AACH,wBAAgB,OAAO,qBAMtB"}
@@ -0,0 +1,46 @@
1
+ declare global {
2
+ interface Window {
3
+ PaystackPop?: {
4
+ setup: (config: PaystackConfig) => {
5
+ openIframe: () => void;
6
+ };
7
+ };
8
+ }
9
+ }
10
+ export interface PaystackConfig {
11
+ key: string;
12
+ email: string;
13
+ amount: number;
14
+ currency?: string;
15
+ ref?: string;
16
+ metadata?: {
17
+ custom_fields?: Array<{
18
+ display_name: string;
19
+ variable_name: string;
20
+ value: string | number;
21
+ }>;
22
+ [key: string]: any;
23
+ };
24
+ callback?: (response: PaystackResponse) => void;
25
+ onClose?: () => void;
26
+ }
27
+ export interface PaystackResponse {
28
+ reference: string;
29
+ status: string;
30
+ trans: string;
31
+ transaction: string;
32
+ trxref: string;
33
+ message: string;
34
+ }
35
+ export interface UsePaystackPaymentOptions {
36
+ publicKey: string;
37
+ onSuccess?: (response: PaystackResponse) => void;
38
+ onClose?: () => void;
39
+ }
40
+ export declare function usePaystackPayment({ publicKey, onSuccess, onClose, }: UsePaystackPaymentOptions): {
41
+ isLoaded: boolean;
42
+ isLoading: boolean;
43
+ error: string | null;
44
+ initializePayment: (config: Omit<PaystackConfig, "key" | "callback" | "onClose">) => void;
45
+ };
46
+ //# sourceMappingURL=usePaystackPayment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePaystackPayment.d.ts","sourceRoot":"","sources":["../../src/hooks/usePaystackPayment.ts"],"names":[],"mappings":"AAYA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,WAAW,CAAC,EAAE;YACZ,KAAK,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK;gBACjC,UAAU,EAAE,MAAM,IAAI,CAAC;aACxB,CAAC;SACH,CAAC;KACH;CACF;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE;QACT,aAAa,CAAC,EAAE,KAAK,CAAC;YACpB,YAAY,EAAE,MAAM,CAAC;YACrB,aAAa,EAAE,MAAM,CAAC;YACtB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;SACxB,CAAC,CAAC;QACH,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IACF,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,SAAS,EACT,OAAO,GACR,EAAE,yBAAyB;;;;gCAuCf,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;EAsChE"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @oms/storefront-ui
3
+ *
4
+ * Pre-built UI components for OMS e-commerce sites
5
+ */
6
+ export { StorefrontProvider } from './providers/StorefrontProvider';
7
+ export type { StorefrontProviderProps } from './providers/StorefrontProvider';
8
+ export { CartProvider, useCart } from './contexts/CartContext';
9
+ export { OrderConfirmation } from './components/OrderConfirmation';
10
+ export type { OrderConfirmationProps } from './components/OrderConfirmation';
11
+ export { ProductCard } from './components/ProductCard';
12
+ export type { ProductCardProps, ProductCardProduct } from './components/ProductCard';
13
+ export { ProductGrid } from './components/ProductGrid';
14
+ export type { ProductGridProps } from './components/ProductGrid';
15
+ export { CartItem } from './components/CartItem';
16
+ export type { CartItemProps } from './components/CartItem';
17
+ export { ShoppingCart } from './components/ShoppingCart';
18
+ export type { ShoppingCartProps } from './components/ShoppingCart';
19
+ export { DiscountCodeInput } from './components/DiscountCodeInput';
20
+ export type { DiscountCodeInputProps } from './components/DiscountCodeInput';
21
+ export { Checkout } from './components/Checkout';
22
+ export type { CheckoutProps, CheckoutFormData } from './components/Checkout';
23
+ export { Button } from './components/ui/button';
24
+ export { Card, CardContent, CardHeader, CardTitle, CardDescription, CardFooter } from './components/ui/card';
25
+ export { Badge } from './components/ui/badge';
26
+ export { Modal } from './components/ui/modal';
27
+ export type { ModalProps } from './components/ui/modal';
28
+ export { FormInput } from './components/ui/form-input';
29
+ export type { FormInputProps } from './components/ui/form-input';
30
+ export { FormSelect } from './components/ui/form-select';
31
+ export type { FormSelectProps } from './components/ui/form-select';
32
+ export { cn, formatCurrency, formatDate, formatDateTime, getStatusColor } from './lib/utils';
33
+ export * from '@oms/api-client';
34
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,YAAY,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAG9E,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAG/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,YAAY,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAErF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,YAAY,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG7E,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC7G,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,YAAY,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAGnE,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7F,cAAc,iBAAiB,CAAC"}
package/dist/index.mjs ADDED
@@ -0,0 +1,99 @@
1
+ import { StorefrontProvider as m } from "./index2.mjs";
2
+ import { CartProvider as a, useCart as i } from "./index3.mjs";
3
+ import { OrderConfirmation as C } from "./index4.mjs";
4
+ import { ProductCard as d } from "./index5.mjs";
5
+ import { ProductGrid as n } from "./index6.mjs";
6
+ import { CartItem as c } from "./index7.mjs";
7
+ import { ShoppingCart as h } from "./index8.mjs";
8
+ import { DiscountCodeInput as v } from "./index9.mjs";
9
+ import { Checkout as A } from "./index10.mjs";
10
+ import { Button as P } from "./index11.mjs";
11
+ import { Card as G, CardContent as B, CardDescription as O, CardFooter as S, CardHeader as R, CardTitle as k } from "./index12.mjs";
12
+ import { Badge as H } from "./index13.mjs";
13
+ import { Modal as U } from "./index14.mjs";
14
+ import { FormInput as b } from "./index15.mjs";
15
+ import { FormSelect as z } from "./index16.mjs";
16
+ import { cn as M, formatCurrency as $, formatDate as j, formatDateTime as w, getStatusColor as E } from "./index17.mjs";
17
+ import { ApiClientProvider as L, useApiClientContext as N } from "./index18.mjs";
18
+ import { useApiConfig as V } from "./index19.mjs";
19
+ import { getApiClient as X, initializeApiClient as Y, resetApiClient as _ } from "./index20.mjs";
20
+ import { authHeaders as er, createAdminRpcClients as tr, createRpcClients as or } from "./index21.mjs";
21
+ import { fetchProductBySlug as pr, fetchProductsByBrand as ar } from "./index22.mjs";
22
+ import { addCartItem as fr, applyDiscount as Cr, checkoutCart as ur, createCart as dr, fetchCart as sr, removeCartItem as nr, removeDiscount as xr, updateCart as cr, updateCartItem as lr } from "./index23.mjs";
23
+ import { confirmOrder as Dr, fetchOrder as vr } from "./index24.mjs";
24
+ import { fetchDeliveryZones as Ar } from "./index25.mjs";
25
+ import { queryKeys as Pr } from "./index26.mjs";
26
+ import * as r from "./index27.mjs";
27
+ import * as e from "./index28.mjs";
28
+ import { useAddCartItem as Gr, useApplyDiscount as Br, useCheckoutCart as Or, useCreateCart as Sr, useGetCart as Rr, useRemoveCartItem as kr, useRemoveDiscount as Fr, useUpdateCart as Hr, useUpdateCartItem as Tr } from "./index29.mjs";
29
+ import { useConfirmOrder as Zr, useGetOrder as br } from "./index30.mjs";
30
+ import { useGetProduct as zr, useGetProducts as Kr } from "./index31.mjs";
31
+ import { useGetDeliveryZones as $r } from "./index32.mjs";
32
+ export {
33
+ L as ApiClientProvider,
34
+ H as Badge,
35
+ P as Button,
36
+ G as Card,
37
+ B as CardContent,
38
+ O as CardDescription,
39
+ S as CardFooter,
40
+ R as CardHeader,
41
+ k as CardTitle,
42
+ c as CartItem,
43
+ a as CartProvider,
44
+ A as Checkout,
45
+ v as DiscountCodeInput,
46
+ b as FormInput,
47
+ z as FormSelect,
48
+ U as Modal,
49
+ C as OrderConfirmation,
50
+ d as ProductCard,
51
+ n as ProductGrid,
52
+ h as ShoppingCart,
53
+ m as StorefrontProvider,
54
+ fr as addCartItem,
55
+ e as admin,
56
+ Cr as applyDiscount,
57
+ er as authHeaders,
58
+ ur as checkoutCart,
59
+ M as cn,
60
+ Dr as confirmOrder,
61
+ tr as createAdminRpcClients,
62
+ dr as createCart,
63
+ or as createRpcClients,
64
+ sr as fetchCart,
65
+ Ar as fetchDeliveryZones,
66
+ vr as fetchOrder,
67
+ pr as fetchProductBySlug,
68
+ ar as fetchProductsByBrand,
69
+ $ as formatCurrency,
70
+ j as formatDate,
71
+ w as formatDateTime,
72
+ X as getApiClient,
73
+ E as getStatusColor,
74
+ Y as initializeApiClient,
75
+ r as public,
76
+ Pr as queryKeys,
77
+ nr as removeCartItem,
78
+ xr as removeDiscount,
79
+ _ as resetApiClient,
80
+ cr as updateCart,
81
+ lr as updateCartItem,
82
+ Gr as useAddCartItem,
83
+ N as useApiClientContext,
84
+ V as useApiConfig,
85
+ Br as useApplyDiscount,
86
+ i as useCart,
87
+ Or as useCheckoutCart,
88
+ Zr as useConfirmOrder,
89
+ Sr as useCreateCart,
90
+ Rr as useGetCart,
91
+ $r as useGetDeliveryZones,
92
+ br as useGetOrder,
93
+ zr as useGetProduct,
94
+ Kr as useGetProducts,
95
+ kr as useRemoveCartItem,
96
+ Fr as useRemoveDiscount,
97
+ Hr as useUpdateCart,
98
+ Tr as useUpdateCartItem
99
+ };