@envive-ai/react-toolkit 0.2.7 → 0.2.8

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 (91) hide show
  1. package/dist/Accordion/index.d.ts +2 -2
  2. package/dist/AnimatedChevron/index.d.cts +2 -2
  3. package/dist/AnimatedChevron/index.d.ts +2 -2
  4. package/dist/AppliedFiltersScrollbar/index.d.ts +2 -2
  5. package/dist/ButtonBase/index.d.cts +2 -2
  6. package/dist/ButtonBase/index.d.ts +2 -2
  7. package/dist/DynamicFiltersScrollbar/index.d.cts +2 -2
  8. package/dist/DynamicFiltersScrollbar/index.d.ts +2 -2
  9. package/dist/FilterScrollbar/index.d.cts +3 -3
  10. package/dist/FilterScrollbar/index.d.ts +3 -3
  11. package/dist/ImageWithFallback/index.d.cts +2 -2
  12. package/dist/ImageWithFallback/index.d.ts +2 -2
  13. package/dist/ModalSheet/index.d.cts +2 -2
  14. package/dist/ModalSheet/index.d.ts +2 -2
  15. package/dist/ProductCard/index.cjs +1 -1
  16. package/dist/ProductCard/index.d.cts +1 -1
  17. package/dist/ProductCard/index.d.ts +1 -1
  18. package/dist/ProductCard/index.js +1 -1
  19. package/dist/{ProductCard-BIlnM2nV.js → ProductCard-DRczevG8.js} +7 -4
  20. package/dist/{ProductCard-CByKIsUN.cjs → ProductCard-DksbHI3v.cjs} +8 -4
  21. package/dist/ProductGrid/index.cjs +2 -2
  22. package/dist/ProductGrid/index.d.cts +6 -6
  23. package/dist/ProductGrid/index.d.ts +6 -6
  24. package/dist/ProductGrid/index.js +2 -2
  25. package/dist/{ProductGrid-Cgkb4vNf.js → ProductGrid-CGHDHthe.js} +21 -24
  26. package/dist/{ProductGrid-BeFeluHo.cjs → ProductGrid-DxbFvnNs.cjs} +21 -24
  27. package/dist/RadioButton/index.d.cts +2 -2
  28. package/dist/RadioButton/index.d.ts +2 -2
  29. package/dist/RadioButtonGroup/index.d.ts +2 -2
  30. package/dist/SearchAutocomplete/index.cjs +1 -1
  31. package/dist/SearchAutocomplete/index.d.cts +2 -2
  32. package/dist/SearchAutocomplete/index.d.ts +2 -2
  33. package/dist/SearchAutocomplete/index.js +1 -1
  34. package/dist/SearchFilter/index.cjs +2 -2
  35. package/dist/SearchFilter/index.d.cts +5 -5
  36. package/dist/SearchFilter/index.d.ts +5 -5
  37. package/dist/SearchFilter/index.js +2 -2
  38. package/dist/{SearchFilter-DWUm2sZH.js → SearchFilter-wjDCnNiW.js} +1 -1
  39. package/dist/{SearchFilter-Cph7S1yF.cjs → SearchFilter-y4vrVBUC.cjs} +1 -1
  40. package/dist/SearchInput/index.cjs +3 -3
  41. package/dist/SearchInput/index.js +3 -3
  42. package/dist/{SearchInput-Jj8nxPA0.js → SearchInput-Q3knp7tj.js} +2 -2
  43. package/dist/{SearchInput-CAqNnjuE.cjs → SearchInput-Yy6NIiSk.cjs} +2 -2
  44. package/dist/SearchInputForm/index.cjs +4 -4
  45. package/dist/SearchInputForm/index.d.cts +2 -2
  46. package/dist/SearchInputForm/index.d.ts +2 -2
  47. package/dist/SearchInputForm/index.js +4 -4
  48. package/dist/SearchResultsContent/index.cjs +5 -5
  49. package/dist/SearchResultsContent/index.d.cts +4 -4
  50. package/dist/SearchResultsContent/index.d.ts +4 -4
  51. package/dist/SearchResultsContent/index.js +5 -5
  52. package/dist/SearchResultsFilterSidebar/index.cjs +4 -4
  53. package/dist/SearchResultsFilterSidebar/index.d.cts +1 -1
  54. package/dist/SearchResultsFilterSidebar/index.d.ts +1 -1
  55. package/dist/SearchResultsFilterSidebar/index.js +4 -4
  56. package/dist/SearchResultsStates/index.cjs +5 -5
  57. package/dist/SearchResultsStates/index.d.cts +2 -2
  58. package/dist/SearchResultsStates/index.d.ts +6 -6
  59. package/dist/SearchResultsStates/index.js +5 -5
  60. package/dist/{SearchResultsStates-CG8-Ga-G.cjs → SearchResultsStates-CP3HKZao.cjs} +3 -3
  61. package/dist/{SearchResultsStates-CTgVvFe9.js → SearchResultsStates-DUSTcTQK.js} +3 -3
  62. package/dist/SparkleAnimation/index.d.cts +2 -2
  63. package/dist/SparkleAnimation/index.d.ts +2 -2
  64. package/dist/Spinner/index.d.cts +2 -2
  65. package/dist/Spinner/index.d.ts +2 -2
  66. package/dist/SuggestionButton/index.d.cts +2 -2
  67. package/dist/SuggestionButton/index.d.ts +2 -2
  68. package/dist/TextInput/index.cjs +1 -1
  69. package/dist/TextInput/index.js +1 -1
  70. package/dist/ToggleButton/index.cjs +1 -1
  71. package/dist/ToggleButton/index.d.cts +2 -2
  72. package/dist/ToggleButton/index.d.ts +2 -2
  73. package/dist/ToggleButton/index.js +1 -1
  74. package/dist/{index-Br1B7Jta.d.cts → index-4KapT-qa.d.cts} +2 -2
  75. package/dist/{index-CoKLba8Y.d.ts → index-CY3-7i6i.d.cts} +7 -7
  76. package/dist/{index-DZG-p0HX.d.cts → index-DELwJODl.d.ts} +7 -7
  77. package/dist/{index-qY2eo4Dx.d.ts → index-OpwPXBH6.d.ts} +2 -2
  78. package/dist/{searchFilterSidebarVariants-Bv_5N0Qd.cjs → searchFilterSidebarVariants-DzCf_sfh.cjs} +1 -1
  79. package/dist/{searchFilterSidebarVariants-Dc0irQTl.js → searchFilterSidebarVariants-f9PS9fl6.js} +1 -1
  80. package/package.json +4 -4
  81. package/src/components/ProductCard/ProductCard.tsx +13 -9
  82. package/src/components/ProductGrid/ProductGrid.tsx +24 -29
  83. package/src/config/chatElementDisplayLocation.ts +1 -0
  84. /package/dist/{SearchAutocomplete-BzMueTjs.js → SearchAutocomplete-B690CIZB.js} +0 -0
  85. /package/dist/{SearchAutocomplete-Dv2FQmZD.cjs → SearchAutocomplete-DAEDHeqr.cjs} +0 -0
  86. /package/dist/{TextInput-Cih-pWCJ.cjs → TextInput-B70n36-J.cjs} +0 -0
  87. /package/dist/{TextInput-C9wyXFlx.js → TextInput-y6nNxaTI.js} +0 -0
  88. /package/dist/{ToggleButton-8P9eNKy1.js → ToggleButton-Br6MgjiG.js} +0 -0
  89. /package/dist/{ToggleButton-DCiR4sB5.cjs → ToggleButton-CJ74eu-N.cjs} +0 -0
  90. /package/dist/{colorsConfig-CJTKbJsm.cjs → colorsConfig-B3-SMUSx.cjs} +0 -0
  91. /package/dist/{colorsConfig-CYZ8f_gj.js → colorsConfig-DZ-GSPWy.js} +0 -0
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime5 from "react/jsx-runtime";
2
2
  import { SearchFilterDatum, SelectFilterItem } from "@envive-ai/react-hooks/types";
3
3
 
4
4
  //#region src/components/SearchResultsFilterSidebar/types.d.ts
@@ -41,6 +41,6 @@ declare const SearchResultsFilter: ({
41
41
  onSelectFilterItem,
42
42
  onClearAllFilters,
43
43
  filterButtonText
44
- }: SearchResultsFilterProps) => react_jsx_runtime0.JSX.Element;
44
+ }: SearchResultsFilterProps) => react_jsx_runtime5.JSX.Element;
45
45
  //#endregion
46
46
  export { CloseIconVariant$1 as CloseIconVariant, SearchFilterSidebarVariant, SearchResultsFilter, SearchResultsFilterProps, searchFilterSidebarVariantClasses };
@@ -1,6 +1,6 @@
1
- import { FC } from "react";
2
- import * as react_jsx_runtime26 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime22 from "react/jsx-runtime";
3
2
  import { TestProps } from "@envive-ai/react-hooks/types";
3
+ import { FC } from "react";
4
4
  import { ResponseCategory, SearchResponseProduct } from "@spiffy-ai/commerce-api-client";
5
5
 
6
6
  //#region src/util/trim.d.ts
@@ -261,7 +261,7 @@ declare const RatingSummary: ({
261
261
  stars,
262
262
  reviewCount,
263
263
  className
264
- }: RatingSummaryProps) => react_jsx_runtime26.JSX.Element;
264
+ }: RatingSummaryProps) => react_jsx_runtime22.JSX.Element;
265
265
  interface PriceSectionProps {
266
266
  originalPrice?: string;
267
267
  salePrice?: string;
@@ -271,7 +271,7 @@ declare const PriceSection: ({
271
271
  originalPrice,
272
272
  salePrice,
273
273
  pricePrefix
274
- }: PriceSectionProps) => react_jsx_runtime26.JSX.Element;
274
+ }: PriceSectionProps) => react_jsx_runtime22.JSX.Element;
275
275
  interface ProductCardProps extends TestProps {
276
276
  productCardConfig?: ProductCardConfig;
277
277
  merchantShortName: string;
@@ -288,7 +288,7 @@ interface ProductCardProps extends TestProps {
288
288
  zoomOnHover?: boolean;
289
289
  aspectRatio?: '3:4' | 'square' | 'none';
290
290
  growWithContainer?: boolean;
291
- handleClick?: (clickedUrl: string) => void;
291
+ onClick?: () => void;
292
292
  }
293
293
  declare const ProductCard: ({
294
294
  productCardConfig,
@@ -307,8 +307,8 @@ declare const ProductCard: ({
307
307
  zoomOnHover,
308
308
  aspectRatio,
309
309
  growWithContainer,
310
- handleClick
311
- }: ProductCardProps) => react_jsx_runtime26.JSX.Element;
310
+ onClick
311
+ }: ProductCardProps) => react_jsx_runtime22.JSX.Element;
312
312
  //#endregion
313
313
  //#region src/components/ProductCard/ProductCardSkeleton.d.ts
314
314
  declare const ProductCardSkeleton: FC<ProductCardSkeletonProps>;
@@ -1,6 +1,6 @@
1
- import * as react_jsx_runtime19 from "react/jsx-runtime";
2
- import { TestProps } from "@envive-ai/react-hooks/types";
3
1
  import { FC } from "react";
2
+ import * as react_jsx_runtime16 from "react/jsx-runtime";
3
+ import { TestProps } from "@envive-ai/react-hooks/types";
4
4
  import { ResponseCategory, SearchResponseProduct } from "@spiffy-ai/commerce-api-client";
5
5
 
6
6
  //#region src/util/trim.d.ts
@@ -261,7 +261,7 @@ declare const RatingSummary: ({
261
261
  stars,
262
262
  reviewCount,
263
263
  className
264
- }: RatingSummaryProps) => react_jsx_runtime19.JSX.Element;
264
+ }: RatingSummaryProps) => react_jsx_runtime16.JSX.Element;
265
265
  interface PriceSectionProps {
266
266
  originalPrice?: string;
267
267
  salePrice?: string;
@@ -271,7 +271,7 @@ declare const PriceSection: ({
271
271
  originalPrice,
272
272
  salePrice,
273
273
  pricePrefix
274
- }: PriceSectionProps) => react_jsx_runtime19.JSX.Element;
274
+ }: PriceSectionProps) => react_jsx_runtime16.JSX.Element;
275
275
  interface ProductCardProps extends TestProps {
276
276
  productCardConfig?: ProductCardConfig;
277
277
  merchantShortName: string;
@@ -288,7 +288,7 @@ interface ProductCardProps extends TestProps {
288
288
  zoomOnHover?: boolean;
289
289
  aspectRatio?: '3:4' | 'square' | 'none';
290
290
  growWithContainer?: boolean;
291
- handleClick?: (clickedUrl: string) => void;
291
+ onClick?: () => void;
292
292
  }
293
293
  declare const ProductCard: ({
294
294
  productCardConfig,
@@ -307,8 +307,8 @@ declare const ProductCard: ({
307
307
  zoomOnHover,
308
308
  aspectRatio,
309
309
  growWithContainer,
310
- handleClick
311
- }: ProductCardProps) => react_jsx_runtime19.JSX.Element;
310
+ onClick
311
+ }: ProductCardProps) => react_jsx_runtime16.JSX.Element;
312
312
  //#endregion
313
313
  //#region src/components/ProductCard/ProductCardSkeleton.d.ts
314
314
  declare const ProductCardSkeleton: FC<ProductCardSkeletonProps>;
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime14 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime8 from "react/jsx-runtime";
2
2
  import { SearchFilterDatum, SelectFilterItem } from "@envive-ai/react-hooks/types";
3
3
 
4
4
  //#region src/components/SearchResultsFilterSidebar/types.d.ts
@@ -41,6 +41,6 @@ declare const SearchResultsFilter: ({
41
41
  onSelectFilterItem,
42
42
  onClearAllFilters,
43
43
  filterButtonText
44
- }: SearchResultsFilterProps) => react_jsx_runtime14.JSX.Element;
44
+ }: SearchResultsFilterProps) => react_jsx_runtime8.JSX.Element;
45
45
  //#endregion
46
46
  export { CloseIconVariant$1 as CloseIconVariant, SearchFilterSidebarVariant, SearchResultsFilter, SearchResultsFilterProps, searchFilterSidebarVariantClasses };
@@ -1,4 +1,4 @@
1
- const require_colorsConfig = require('./colorsConfig-CJTKbJsm.cjs');
1
+ const require_colorsConfig = require('./colorsConfig-B3-SMUSx.cjs');
2
2
 
3
3
  //#region src/components/SearchResultsFilterSidebar/searchFilterSidebarVariants.ts
4
4
  const searchFilterSidebarVariantClasses = {
@@ -1,4 +1,4 @@
1
- import { ColorNames, colorVar } from "./colorsConfig-CYZ8f_gj.js";
1
+ import { ColorNames, colorVar } from "./colorsConfig-DZ-GSPWy.js";
2
2
 
3
3
  //#region src/components/SearchResultsFilterSidebar/searchFilterSidebarVariants.ts
4
4
  const searchFilterSidebarVariantClasses = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@envive-ai/react-toolkit",
3
- "version": "0.2.7",
3
+ "version": "0.2.8",
4
4
  "description": "React component library for Envive services.",
5
5
  "keywords": [
6
6
  "react",
@@ -28,16 +28,16 @@
28
28
  "test": "vitest"
29
29
  },
30
30
  "dependencies": {
31
- "@envive-ai/react-hooks": "^0.1.8",
31
+ "@envive-ai/react-hooks": "0.2.5",
32
32
  "@tailwindcss/typography": "^0.5.15",
33
33
  "classnames": "^2.5.1",
34
34
  "react-icons": "^5.0.1",
35
35
  "react-indiana-drag-scroll": "^3.0.3-alpha"
36
36
  },
37
37
  "peerDependencies": {
38
+ "framer-motion": ">=12.23.24",
38
39
  "react": "^18.3.1",
39
- "react-dom": "^18.3.1",
40
- "framer-motion": ">=12.23.24"
40
+ "react-dom": "^18.3.1"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/node": "^24.3.2",
@@ -5,6 +5,7 @@ import { Typography } from 'src/components/Typography';
5
5
  import { formatPrice } from 'src/util/formatPrice';
6
6
  import { TestProps } from '@envive-ai/react-hooks/types';
7
7
  import { useImageResolver } from '@envive-ai/react-hooks/hooks/ImageResolver';
8
+ import { PRODUCT_CARD_TESTID } from '@envive-ai/react-hooks/config';
8
9
  import {
9
10
  variantClassMap,
10
11
  variantHoverClassMap,
@@ -112,7 +113,7 @@ interface ProductCardProps extends TestProps {
112
113
  zoomOnHover?: boolean;
113
114
  aspectRatio?: '3:4' | 'square' | 'none';
114
115
  growWithContainer?: boolean;
115
- handleClick?: (clickedUrl: string) => void;
116
+ onClick?: () => void;
116
117
  }
117
118
 
118
119
  export const ProductCard = ({
@@ -132,7 +133,7 @@ export const ProductCard = ({
132
133
  zoomOnHover = false,
133
134
  aspectRatio = 'none',
134
135
  growWithContainer = false,
135
- handleClick,
136
+ onClick,
136
137
  }: ProductCardProps) => {
137
138
  const { resolve } = useImageResolver();
138
139
 
@@ -141,6 +142,8 @@ export const ProductCard = ({
141
142
  const finalLayoutVariant = layoutVariant ?? productCardConfig?.layoutVariant ?? 'normal';
142
143
  const pricePrefix = productCardConfig?.pricePrefix;
143
144
 
145
+ const handleClick = () => onClick();
146
+
144
147
  if (productCardConfig == null) {
145
148
  Logger.logError('[ProductCard] productCardConfig is null', undefined, {
146
149
  merchant: merchantShortName,
@@ -161,6 +164,7 @@ export const ProductCard = ({
161
164
  'spiffy-tw-h-full': growWithContainer,
162
165
  'spiffy-tw-w-full': growWithContainer,
163
166
  'spiffy-tw-max-w-full': growWithContainer,
167
+ 'spiffy-tw-rounded-[8px]': layoutVariant === 'normal',
164
168
  },
165
169
  !growWithContainer && layoutClasses.container,
166
170
  variantClassMap.get(finalVariant) ?? [],
@@ -209,11 +213,11 @@ export const ProductCard = ({
209
213
  linkClassnames,
210
214
  zoomOnHover
211
215
  ? [
212
- 'spiffy-tw-transition-transform',
213
- 'spiffy-tw-duration-200',
214
- 'spiffy-tw-origin-top',
215
- 'hover:spiffy-tw-scale-105',
216
- ]
216
+ 'spiffy-tw-transition-transform',
217
+ 'spiffy-tw-duration-200',
218
+ 'spiffy-tw-origin-top',
219
+ 'hover:spiffy-tw-scale-105',
220
+ ]
217
221
  : [],
218
222
  );
219
223
 
@@ -260,8 +264,8 @@ export const ProductCard = ({
260
264
  );
261
265
 
262
266
  return (
263
- <div className={containerClassnames} data-testid={dataTestId}>
264
- <a href={url} onClick={() => handleClick(url)} target="_self" draggable={false}>
267
+ <div className={containerClassnames} data-testid={dataTestId ?? PRODUCT_CARD_TESTID}>
268
+ <a href={url} onClick={() => handleClick()} target="_self" draggable={false}>
265
269
  <div className={verticalContainerClassnames}>
266
270
  <div className={imageClipContainerClassnames}>
267
271
  <div className={imageContainerClassnames}>
@@ -1,14 +1,13 @@
1
1
  import classNames from 'classnames';
2
- import { SearchResponseProduct } from '@spiffy-ai/commerce-api-client';
3
- import { CamelCasedPropertiesDeep } from 'src/util/camelCasedPropertiesDeep';
2
+ import { SearchResponseProductAttributes } from '@envive-ai/react-hooks/application/models';
4
3
  import { productGridVariantClasses } from './productGridVariants';
5
4
  import { ProductGridVariant, ProductCardConfig, ProductCard } from '../ProductCard';
6
5
 
7
6
  interface ProductGridProps {
8
- productList: SearchResponseProduct[];
7
+ productList: SearchResponseProductAttributes['attributes'][];
9
8
  productGridVariant: ProductGridVariant;
10
9
  productGridClasses: string;
11
- productCardConfig?: ProductCardConfig;
10
+ productCardConfig: ProductCardConfig;
12
11
  merchantShortName: string;
13
12
  cardsGrowWithContainer?: boolean;
14
13
  }
@@ -36,31 +35,27 @@ export const ProductGrid = ({
36
35
 
37
36
  return (
38
37
  <div className={productGridClasses}>
39
- {productList.map((product: SearchResponseProduct) => {
40
- const camelCasedProduct: CamelCasedPropertiesDeep<SearchResponseProduct> = product;
41
- return (
42
- <div key={camelCasedProduct.id} className={cardContainerClasses}>
43
- <ProductCard
44
- productCardConfig={productCardConfig}
45
- merchantShortName={merchantShortName}
46
- key={camelCasedProduct.id}
47
- imageUrl={camelCasedProduct.imageUrl}
48
- title={camelCasedProduct.title}
49
- url={camelCasedProduct.url}
50
- originalPrice={camelCasedProduct.originalPrice}
51
- salePrice={camelCasedProduct.salePrice}
52
- averageRating={camelCasedProduct.averageRating}
53
- numberReviews={camelCasedProduct.numberReviews}
54
- layoutVariant={productCardLayoutVariant}
55
- variant={productCardVariant}
56
- hoverVariant={productCardHoverVariant}
57
- zoomOnHover={zoomOnHover}
58
- aspectRatio={productCardImageAspectRatio}
59
- growWithContainer={cardsGrowWithContainer}
60
- />
61
- </div>
62
- );
63
- })}
38
+ {productList.map((product: (typeof productList)[0]) => (
39
+ <div key={product.id} className={cardContainerClasses}>
40
+ <ProductCard
41
+ productCardConfig={productCardConfig}
42
+ merchantShortName={merchantShortName}
43
+ imageUrl={product.imageUrl}
44
+ title={product.title}
45
+ url={product.url}
46
+ originalPrice={product.originalPrice}
47
+ salePrice={product.salePrice}
48
+ averageRating={product.averageRating}
49
+ numberReviews={product.numberReviews}
50
+ layoutVariant={productCardLayoutVariant}
51
+ variant={productCardVariant}
52
+ hoverVariant={productCardHoverVariant}
53
+ zoomOnHover={zoomOnHover}
54
+ aspectRatio={productCardImageAspectRatio}
55
+ growWithContainer={cardsGrowWithContainer}
56
+ />
57
+ </div>
58
+ ))}
64
59
  </div>
65
60
  );
66
61
  };
@@ -14,6 +14,7 @@ export enum ChatElementDisplayLocation {
14
14
  SEARCH_NAV_ENTRYPOINT = 'search_nav_entrypoint',
15
15
  SEARCH_PROMPT = 'search_prompt',
16
16
  SEARCH_PROMPT_BUTTON = 'search_prompt_button',
17
+ SEARCH_ZERO_STATE_SUGGESTED_PRODUCTS = 'search_zero_state_suggested_products',
17
18
  PRODUCT_GRID = 'product_grid',
18
19
  UNSPECIFIED = 'unspecified',
19
20
  FILTER_MODAL = 'filter_modal',