@instockng/storefront-ui 1.0.107 → 1.0.109

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 (228) hide show
  1. package/dist/components/AssistantDrawer.d.ts +1 -3
  2. package/dist/components/AssistantDrawer.d.ts.map +1 -1
  3. package/dist/components/ProductAssistantChips.d.ts +9 -8
  4. package/dist/components/ProductAssistantChips.d.ts.map +1 -1
  5. package/dist/contexts/AssistantContext.d.ts +19 -0
  6. package/dist/contexts/AssistantContext.d.ts.map +1 -0
  7. package/dist/index.d.ts +1 -2
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.mjs +56 -56
  10. package/dist/index10.mjs +103 -73
  11. package/dist/index100.mjs +28 -8
  12. package/dist/index101.mjs +8 -74
  13. package/dist/index102.mjs +74 -3
  14. package/dist/index103.mjs +4 -2
  15. package/dist/index104.mjs +2 -83
  16. package/dist/index105.mjs +81 -52
  17. package/dist/index106.mjs +53 -5
  18. package/dist/index107.mjs +5 -4
  19. package/dist/index108.mjs +4 -178
  20. package/dist/index109.mjs +174 -48
  21. package/dist/index11.mjs +73 -189
  22. package/dist/index110.mjs +51 -67
  23. package/dist/index111.mjs +69 -2
  24. package/dist/index112.mjs +2 -37
  25. package/dist/index113.mjs +25 -40
  26. package/dist/index114.mjs +18 -2
  27. package/dist/index115.mjs +213 -26
  28. package/dist/index116.mjs +175 -13
  29. package/dist/index117.mjs +17 -210
  30. package/dist/index118.mjs +17 -174
  31. package/dist/index119.mjs +25 -14
  32. package/dist/index12.mjs +171 -106
  33. package/dist/index120.mjs +150 -17
  34. package/dist/index121.mjs +13 -26
  35. package/dist/index122.mjs +24 -149
  36. package/dist/index123.mjs +77 -13
  37. package/dist/index124.mjs +27 -20
  38. package/dist/index125.mjs +137 -76
  39. package/dist/index126.mjs +50 -33
  40. package/dist/index127.mjs +19 -141
  41. package/dist/index128.mjs +22 -50
  42. package/dist/index129.mjs +14 -14
  43. package/dist/index13.mjs +127 -98
  44. package/dist/index130.mjs +18 -20
  45. package/dist/index131.mjs +14 -16
  46. package/dist/index132.mjs +14 -17
  47. package/dist/index133.mjs +12 -12
  48. package/dist/index134.mjs +58 -15
  49. package/dist/index135.mjs +11 -14
  50. package/dist/index136.mjs +30 -56
  51. package/dist/index137.mjs +15 -9
  52. package/dist/index138.mjs +26 -31
  53. package/dist/index139.mjs +16 -13
  54. package/dist/index14.mjs +94 -90
  55. package/dist/index140.mjs +11 -26
  56. package/dist/index141.mjs +12 -18
  57. package/dist/index142.mjs +40 -12
  58. package/dist/index143.mjs +16 -14
  59. package/dist/index144.mjs +263 -42
  60. package/dist/index145.mjs +62 -15
  61. package/dist/index146.mjs +7 -267
  62. package/dist/index147.mjs +2 -70
  63. package/dist/index148.mjs +2 -8
  64. package/dist/index149.mjs +33 -2
  65. package/dist/index15.mjs +84 -149
  66. package/dist/index150.mjs +2 -2
  67. package/dist/index151.mjs +37 -33
  68. package/dist/index152.mjs +43 -2
  69. package/dist/index153.mjs +2 -21
  70. package/dist/index154.mjs +19 -54
  71. package/dist/index155.mjs +55 -28
  72. package/dist/index156.mjs +28 -6
  73. package/dist/index157.mjs +6 -51
  74. package/dist/index158.mjs +51 -5
  75. package/dist/index159.mjs +6 -12
  76. package/dist/index16.mjs +157 -203
  77. package/dist/index160.mjs +12 -7
  78. package/dist/index161.mjs +6 -27
  79. package/dist/index162.mjs +28 -2
  80. package/dist/index163.mjs +2 -70
  81. package/dist/index164.mjs +67 -164
  82. package/dist/index165.mjs +167 -2
  83. package/dist/index167.mjs +2 -2
  84. package/dist/index168.mjs +2 -18
  85. package/dist/index169.mjs +11 -25
  86. package/dist/index17.mjs +197 -106
  87. package/dist/index170.mjs +26 -32
  88. package/dist/index171.mjs +32 -12
  89. package/dist/index172.mjs +9 -9
  90. package/dist/index173.mjs +18 -2
  91. package/dist/index174.mjs +2 -20
  92. package/dist/index175.mjs +13 -39
  93. package/dist/index176.mjs +46 -2
  94. package/dist/index177.mjs +2 -30
  95. package/dist/index178.mjs +24 -12
  96. package/dist/index179.mjs +18 -2
  97. package/dist/index18.mjs +96 -129
  98. package/dist/index180.mjs +2 -2
  99. package/dist/index181.mjs +2 -2
  100. package/dist/index182.mjs +2 -2
  101. package/dist/index183.mjs +2 -72
  102. package/dist/index184.mjs +72 -2
  103. package/dist/index185.mjs +2 -53
  104. package/dist/index186.mjs +53 -2
  105. package/dist/index187.mjs +2 -36
  106. package/dist/index188.mjs +30 -146
  107. package/dist/index189.mjs +152 -2
  108. package/dist/index19.mjs +140 -87
  109. package/dist/index190.mjs +2 -2
  110. package/dist/index191.mjs +2 -19
  111. package/dist/index192.mjs +19 -2
  112. package/dist/index193.mjs +2 -2
  113. package/dist/index194.mjs +2 -26
  114. package/dist/index195.mjs +26 -2
  115. package/dist/index196.mjs +2 -2
  116. package/dist/index197.mjs +2 -24
  117. package/dist/index198.mjs +17 -16
  118. package/dist/index199.mjs +23 -2
  119. package/dist/index2.mjs +29 -15
  120. package/dist/index20.mjs +82 -708
  121. package/dist/index201.mjs +2 -2
  122. package/dist/index202.mjs +2 -23
  123. package/dist/index203.mjs +23 -2
  124. package/dist/index204.mjs +2 -23
  125. package/dist/index205.mjs +23 -2
  126. package/dist/index206.mjs +2 -2
  127. package/dist/index208.mjs +2 -23
  128. package/dist/index209.mjs +23 -2
  129. package/dist/index21.mjs +688 -229
  130. package/dist/index210.mjs +2 -23
  131. package/dist/index211.mjs +23 -2
  132. package/dist/index212.mjs +2 -2
  133. package/dist/index213.mjs +2 -2
  134. package/dist/index215.mjs +2 -2
  135. package/dist/index216.mjs +2 -2
  136. package/dist/index217.mjs +2 -2
  137. package/dist/index218.mjs +2 -2
  138. package/dist/index219.mjs +2 -127
  139. package/dist/index22.mjs +260 -42
  140. package/dist/index220.mjs +127 -2
  141. package/dist/index221.mjs +2 -74
  142. package/dist/index222.mjs +59 -59
  143. package/dist/index223.mjs +74 -2
  144. package/dist/index224.mjs +2 -13
  145. package/dist/index225.mjs +108 -7
  146. package/dist/index226.mjs +2 -12
  147. package/dist/index227.mjs +2 -5
  148. package/dist/index228.mjs +2 -33
  149. package/dist/index229.mjs +2 -31
  150. package/dist/index23.mjs +44 -22
  151. package/dist/index230.mjs +2 -28
  152. package/dist/index231.mjs +2 -61
  153. package/dist/index232.mjs +2 -31
  154. package/dist/index233.mjs +2 -11
  155. package/dist/index234.mjs +2 -4
  156. package/dist/index235.mjs +36 -3
  157. package/dist/index236.mjs +2 -2
  158. package/dist/index237.mjs +244 -2
  159. package/dist/index238.mjs +2 -2
  160. package/dist/index239.mjs +33 -2
  161. package/dist/index240.mjs +65 -2
  162. package/dist/index241.mjs +25 -2
  163. package/dist/index242.mjs +2 -2
  164. package/dist/index244.mjs +2 -108
  165. package/dist/index245.mjs +2 -2
  166. package/dist/index246.mjs +2 -2
  167. package/dist/index247.mjs +2 -37
  168. package/dist/index248.mjs +2 -2
  169. package/dist/index249.mjs +2 -2
  170. package/dist/index250.mjs +2 -244
  171. package/dist/index251.mjs +13 -2
  172. package/dist/index252.mjs +7 -33
  173. package/dist/index253.mjs +30 -64
  174. package/dist/index254.mjs +10 -24
  175. package/dist/index255.mjs +4 -2
  176. package/dist/index256.mjs +4 -2
  177. package/dist/index257.mjs +2 -2
  178. package/dist/index258.mjs +4 -2
  179. package/dist/index259.mjs +12 -2
  180. package/dist/index260.mjs +5 -2
  181. package/dist/index261.mjs +33 -2
  182. package/dist/index262.mjs +31 -2
  183. package/dist/index263.mjs +28 -4
  184. package/dist/index264.mjs +61 -2
  185. package/dist/index265.mjs +2 -2
  186. package/dist/index266.mjs +2 -2
  187. package/dist/index277.mjs +1 -1
  188. package/dist/index282.mjs +1 -1
  189. package/dist/index283.mjs +2 -2
  190. package/dist/index3.mjs +3 -3
  191. package/dist/index4.mjs +34 -101
  192. package/dist/index5.mjs +92 -102
  193. package/dist/index50.mjs +1 -1
  194. package/dist/index58.mjs +1 -1
  195. package/dist/index6.mjs +111 -15
  196. package/dist/index63.mjs +17 -17
  197. package/dist/index64.mjs +2 -2
  198. package/dist/index7.mjs +15 -195
  199. package/dist/index8.mjs +135 -189
  200. package/dist/index81.mjs +19 -149
  201. package/dist/index82.mjs +149 -19
  202. package/dist/index85.mjs +1 -1
  203. package/dist/index89.mjs +35 -35
  204. package/dist/index9.mjs +240 -99
  205. package/dist/index90.mjs +1 -1
  206. package/dist/index91.mjs +2 -2
  207. package/dist/index92.mjs +2 -2
  208. package/dist/index94.mjs +2 -235
  209. package/dist/index95.mjs +233 -4
  210. package/dist/index96.mjs +5 -133
  211. package/dist/index97.mjs +129 -63
  212. package/dist/index98.mjs +67 -86
  213. package/dist/index99.mjs +85 -27
  214. package/dist/providers/StorefrontProvider.d.ts +3 -1
  215. package/dist/providers/StorefrontProvider.d.ts.map +1 -1
  216. package/dist/styles.css +1 -1
  217. package/package.json +2 -2
  218. package/src/components/AssistantDrawer.stories.tsx +20 -91
  219. package/src/components/AssistantDrawer.tsx +5 -9
  220. package/src/components/ProductAssistantChips.stories.tsx +11 -6
  221. package/src/components/ProductAssistantChips.tsx +13 -8
  222. package/src/contexts/AssistantContext.tsx +62 -0
  223. package/src/index.ts +3 -2
  224. package/src/providers/StorefrontProvider.tsx +17 -2
  225. package/dist/components/SearchAssistantTrigger.d.ts +0 -12
  226. package/dist/components/SearchAssistantTrigger.d.ts.map +0 -1
  227. package/src/components/SearchAssistantTrigger.stories.tsx +0 -35
  228. package/src/components/SearchAssistantTrigger.tsx +0 -41
@@ -28,6 +28,7 @@
28
28
  import { ReactNode } from 'react';
29
29
  import { ApiClientProvider, useGetBrand } from '@instockng/api-client';
30
30
  import { CartProvider, CartProviderProps } from '../contexts/CartContext';
31
+ import { AssistantProvider } from '../contexts/AssistantContext';
31
32
  import { MetaPixelProvider } from './MetaPixelProvider';
32
33
  import { TikTokPixelProvider } from './TikTokPixelProvider';
33
34
 
@@ -41,6 +42,8 @@ export interface StorefrontProviderProps {
41
42
  initialCartId?: string;
42
43
  /** Optional: Props to pass to the ShoppingCart component */
43
44
  shoppingCartProps?: CartProviderProps['shoppingCartProps'];
45
+ /** Optional: AI assistant display name */
46
+ assistantName?: string;
44
47
  }
45
48
 
46
49
  /**
@@ -51,7 +54,9 @@ function StorefrontProviderInner({
51
54
  brandSlug,
52
55
  initialCartId,
53
56
  shoppingCartProps,
54
- }: Omit<StorefrontProviderProps, 'apiUrl'>) {
57
+ assistantName,
58
+ apiUrl,
59
+ }: Omit<StorefrontProviderProps, 'apiUrl'> & { apiUrl: string }) {
55
60
  const { data: brand } = useGetBrand(brandSlug);
56
61
 
57
62
  return (
@@ -62,7 +67,13 @@ function StorefrontProviderInner({
62
67
  initialCartId={initialCartId}
63
68
  shoppingCartProps={shoppingCartProps}
64
69
  >
65
- {children}
70
+ <AssistantProvider
71
+ apiUrl={apiUrl}
72
+ brandSlug={brandSlug}
73
+ assistantName={assistantName}
74
+ >
75
+ {children}
76
+ </AssistantProvider>
66
77
  </CartProvider>
67
78
  </TikTokPixelProvider>
68
79
  </MetaPixelProvider>
@@ -83,9 +94,11 @@ export function StorefrontProvider({
83
94
  apiUrl,
84
95
  initialCartId,
85
96
  shoppingCartProps,
97
+ assistantName,
86
98
  }: StorefrontProviderProps) {
87
99
  // Storefront-ui doesn't use authenticated endpoints, so provide a no-op getAuthToken
88
100
  const getAuthToken = async () => '';
101
+ const resolvedApiUrl = apiUrl || 'https://oms-api.instock.ng';
89
102
 
90
103
  return (
91
104
  <ApiClientProvider getAuthToken={getAuthToken} {...(apiUrl && { baseURL: apiUrl })}>
@@ -93,6 +106,8 @@ export function StorefrontProvider({
93
106
  brandSlug={brandSlug}
94
107
  initialCartId={initialCartId}
95
108
  shoppingCartProps={shoppingCartProps}
109
+ assistantName={assistantName}
110
+ apiUrl={resolvedApiUrl}
96
111
  >
97
112
  {children}
98
113
  </StorefrontProviderInner>
@@ -1,12 +0,0 @@
1
- export interface SearchAssistantTriggerProps {
2
- /** The search query to pre-fill */
3
- searchQuery?: string;
4
- /** Callback to open the drawer with a question */
5
- onAsk: (question: string) => void;
6
- /** Custom class name */
7
- className?: string;
8
- /** Custom label */
9
- label?: string;
10
- }
11
- export declare function SearchAssistantTrigger({ searchQuery, onAsk, className, label, }: SearchAssistantTriggerProps): import("react/jsx-runtime").JSX.Element;
12
- //# sourceMappingURL=SearchAssistantTrigger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SearchAssistantTrigger.d.ts","sourceRoot":"","sources":["../../src/components/SearchAssistantTrigger.tsx"],"names":[],"mappings":"AAaA,MAAM,WAAW,2BAA2B;IAC1C,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,WAAgB,EAChB,KAAK,EACL,SAAS,EACT,KAAgB,GACjB,EAAE,2BAA2B,2CAW7B"}
@@ -1,35 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite';
2
- import { SearchAssistantTrigger } from './SearchAssistantTrigger';
3
-
4
- const meta = {
5
- title: 'Components/SearchAssistantTrigger',
6
- component: SearchAssistantTrigger,
7
- parameters: {
8
- layout: 'centered',
9
- },
10
- tags: ['autodocs'],
11
- } satisfies Meta<typeof SearchAssistantTrigger>;
12
-
13
- export default meta;
14
- type Story = StoryObj<typeof meta>;
15
-
16
- export const Default: Story = {
17
- args: {
18
- searchQuery: 'toys for babies',
19
- onAsk: (question) => console.log('Asked:', question),
20
- },
21
- };
22
-
23
- export const CustomLabel: Story = {
24
- args: {
25
- searchQuery: 'maternity leggings',
26
- onAsk: (question) => console.log('Asked:', question),
27
- label: 'Ask AI about "maternity leggings"',
28
- },
29
- };
30
-
31
- export const EmptyQuery: Story = {
32
- args: {
33
- onAsk: (question) => console.log('Asked:', question),
34
- },
35
- };
@@ -1,41 +0,0 @@
1
- 'use client';
2
-
3
- /**
4
- * SearchAssistantTrigger Component
5
- *
6
- * "Ask AI" button shown in search results (e.g., when search returns no results).
7
- * Clicking opens the AssistantDrawer with the search query as the question.
8
- */
9
-
10
- import { Sparkles } from 'lucide-react';
11
- import { Button } from './ui/button';
12
- import { cn } from '../lib/utils';
13
-
14
- export interface SearchAssistantTriggerProps {
15
- /** The search query to pre-fill */
16
- searchQuery?: string;
17
- /** Callback to open the drawer with a question */
18
- onAsk: (question: string) => void;
19
- /** Custom class name */
20
- className?: string;
21
- /** Custom label */
22
- label?: string;
23
- }
24
-
25
- export function SearchAssistantTrigger({
26
- searchQuery = '',
27
- onAsk,
28
- className,
29
- label = 'Ask AI',
30
- }: SearchAssistantTriggerProps) {
31
- return (
32
- <Button
33
- variant="outline"
34
- onClick={() => onAsk(searchQuery)}
35
- className={cn('gap-2', className)}
36
- >
37
- <Sparkles className="h-4 w-4 text-orange-500" />
38
- {label}
39
- </Button>
40
- );
41
- }