@envive-ai/react-toolkit 0.1.7 → 0.1.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.
Files changed (147) hide show
  1. package/dist/Accordion/index.cjs +6 -5
  2. package/dist/Accordion/index.d.cts +2 -2
  3. package/dist/Accordion/index.d.ts +2 -2
  4. package/dist/Accordion/index.js +4 -2
  5. package/dist/AppliedFiltersScrollbar/index.cjs +4 -3
  6. package/dist/AppliedFiltersScrollbar/index.d.cts +3 -3
  7. package/dist/AppliedFiltersScrollbar/index.d.ts +3 -3
  8. package/dist/AppliedFiltersScrollbar/index.js +3 -1
  9. package/dist/ButtonBase/index.cjs +4 -4
  10. package/dist/ButtonBase/index.d.cts +3 -3
  11. package/dist/ButtonBase/index.d.ts +3 -3
  12. package/dist/ButtonBase/index.js +4 -4
  13. package/dist/{ButtonBase-BIAu5fIG.js → ButtonBase-DGbSm0SJ.js} +1 -1
  14. package/dist/{ButtonBase-DcyxOe2v.cjs → ButtonBase-DGpQBeLR.cjs} +1 -1
  15. package/dist/DynamicFiltersScrollbar/index.cjs +4 -3
  16. package/dist/DynamicFiltersScrollbar/index.d.cts +2 -2
  17. package/dist/DynamicFiltersScrollbar/index.d.ts +2 -2
  18. package/dist/DynamicFiltersScrollbar/index.js +3 -1
  19. package/dist/{DynamicFiltersScrollbar-BmPTqym5.js → DynamicFiltersScrollbar-D4d6pGke.js} +1 -1
  20. package/dist/{DynamicFiltersScrollbar-BTopFhyl.cjs → DynamicFiltersScrollbar-DCElnZJa.cjs} +1 -1
  21. package/dist/FilterScrollbar/index.cjs +3 -3
  22. package/dist/FilterScrollbar/index.d.cts +4 -4
  23. package/dist/FilterScrollbar/index.d.ts +4 -4
  24. package/dist/FilterScrollbar/index.js +3 -3
  25. package/dist/Headline/index.cjs +2 -2
  26. package/dist/Headline/index.d.cts +2 -2
  27. package/dist/Headline/index.d.ts +2 -2
  28. package/dist/Headline/index.js +2 -2
  29. package/dist/{Headline-XpaAeTSR.js → Headline-BkOW1lQj.js} +1 -1
  30. package/dist/{Headline-iP_MckEO.cjs → Headline-QpruZlcg.cjs} +1 -1
  31. package/dist/ImageWithFallback/index.d.cts +2 -2
  32. package/dist/ImageWithFallback/index.d.ts +2 -2
  33. package/dist/ProductCard/index.cjs +5 -5
  34. package/dist/ProductCard/index.d.cts +2 -3
  35. package/dist/ProductCard/index.d.ts +2 -3
  36. package/dist/ProductCard/index.js +5 -5
  37. package/dist/{ProductCard-DZZKutY-.cjs → ProductCard-BcQBegyj.cjs} +3 -3
  38. package/dist/{ProductCard-SF8-lXlT.js → ProductCard-D44lhkxO.js} +3 -3
  39. package/dist/ProductGrid/index.cjs +6 -6
  40. package/dist/ProductGrid/index.d.cts +6 -5
  41. package/dist/ProductGrid/index.d.ts +6 -5
  42. package/dist/ProductGrid/index.js +6 -6
  43. package/dist/{ProductGrid-BSSmPr7K.cjs → ProductGrid-50PmrwA4.cjs} +3 -28
  44. package/dist/{ProductGrid-DTUhH219.js → ProductGrid-ZXF7LBVG.js} +3 -28
  45. package/dist/SearchAutocomplete/index.cjs +1 -1
  46. package/dist/SearchAutocomplete/index.js +1 -1
  47. package/dist/SearchFilter/index.cjs +4 -4
  48. package/dist/SearchFilter/index.d.cts +71 -2
  49. package/dist/SearchFilter/index.d.ts +71 -2
  50. package/dist/SearchFilter/index.js +4 -4
  51. package/dist/{SearchFilter-D427M2UE.js → SearchFilter-B3vl3aWK.js} +8 -5
  52. package/dist/{SearchFilter-B15tybnV.cjs → SearchFilter-QV5AH7gk.cjs} +8 -5
  53. package/dist/SearchInput/index.cjs +3 -3
  54. package/dist/SearchInput/index.d.cts +2 -2
  55. package/dist/SearchInput/index.d.ts +2 -2
  56. package/dist/SearchInput/index.js +3 -3
  57. package/dist/{SearchInput-D6UW79wT.cjs → SearchInput-BFlu_3iT.cjs} +1 -1
  58. package/dist/{SearchInput-C0wB4hSV.js → SearchInput-DxDC1mcq.js} +1 -1
  59. package/dist/SearchInputForm/index.cjs +4 -4
  60. package/dist/SearchInputForm/index.d.cts +1 -1
  61. package/dist/SearchInputForm/index.d.ts +1 -1
  62. package/dist/SearchInputForm/index.js +4 -4
  63. package/dist/SearchResultsContent/index.cjs +11 -11
  64. package/dist/SearchResultsContent/index.d.cts +5 -7
  65. package/dist/SearchResultsContent/index.d.ts +5 -7
  66. package/dist/SearchResultsContent/index.js +11 -11
  67. package/dist/SearchResultsFilterSidebar/index.cjs +6 -7
  68. package/dist/SearchResultsFilterSidebar/index.d.cts +2 -3
  69. package/dist/SearchResultsFilterSidebar/index.d.ts +2 -3
  70. package/dist/SearchResultsFilterSidebar/index.js +6 -7
  71. package/dist/SearchResultsStates/index.cjs +11 -11
  72. package/dist/SearchResultsStates/index.d.cts +7 -9
  73. package/dist/SearchResultsStates/index.d.ts +7 -9
  74. package/dist/SearchResultsStates/index.js +11 -11
  75. package/dist/{SearchResultsStates-Du7HXBi8.cjs → SearchResultsStates-B7a6B6-P.cjs} +9 -10
  76. package/dist/{SearchResultsStates-CNp6YCqF.js → SearchResultsStates-T--7xKI7.js} +9 -9
  77. package/dist/SparkleAnimation/index.cjs +1 -1
  78. package/dist/SparkleAnimation/index.d.cts +2 -2
  79. package/dist/SparkleAnimation/index.d.ts +2 -2
  80. package/dist/SparkleAnimation/index.js +1 -1
  81. package/dist/{SparkleAnimation-D1QpGZIg.cjs → SparkleAnimation-2m4gwmrY.cjs} +5 -5
  82. package/dist/{SparkleAnimation-B0u6JtO3.js → SparkleAnimation-DT3coYkB.js} +1 -1
  83. package/dist/Spinner/index.cjs +1 -1
  84. package/dist/Spinner/index.d.cts +2 -2
  85. package/dist/Spinner/index.js +1 -1
  86. package/dist/SuggestionButton/index.cjs +9 -9
  87. package/dist/SuggestionButton/index.d.cts +3 -3
  88. package/dist/SuggestionButton/index.d.ts +3 -3
  89. package/dist/SuggestionButton/index.js +5 -5
  90. package/dist/Text/index.cjs +3 -3
  91. package/dist/Text/index.d.cts +3 -3
  92. package/dist/Text/index.d.ts +3 -3
  93. package/dist/Text/index.js +3 -3
  94. package/dist/{Text-BMg3d10t.js → Text-Bod4OMPk.js} +1 -1
  95. package/dist/{Text-CgOYTs8D.cjs → Text-MQjxqgZZ.cjs} +1 -1
  96. package/dist/TextInput/index.cjs +2 -2
  97. package/dist/TextInput/index.d.cts +1 -1
  98. package/dist/TextInput/index.d.ts +1 -1
  99. package/dist/TextInput/index.js +2 -2
  100. package/dist/{TextInput-CRMqBW3X.js → TextInput-BFPXhSAY.js} +1 -1
  101. package/dist/{TextInput-C6fF9cSB.cjs → TextInput-DLSgpP6b.cjs} +1 -1
  102. package/dist/{index-B8bifyF-.d.ts → index-BkxuyRJ6.d.cts} +2 -2
  103. package/dist/{index-C2iKBk7w.d.cts → index-Bl5T42aR.d.ts} +2 -2
  104. package/dist/{index-ByucvlTy.d.ts → index-C5sr5-A0.d.cts} +6 -34
  105. package/dist/{index-BFdFh46m.d.cts → index-CC5ru80z.d.ts} +5 -16
  106. package/dist/{index-14eDYe9f.d.ts → index-ozZ5JSZp.d.cts} +3 -14
  107. package/dist/{index-B3iEVxkL.d.cts → index-vrOLXtJO.d.ts} +6 -34
  108. package/package.json +4 -2
  109. package/src/components/Accordion/Accordion.tsx +1 -1
  110. package/src/components/AppliedFiltersScrollbar/AppliedFiltersScrollbar.tsx +2 -2
  111. package/src/components/ButtonBase/types.ts +1 -1
  112. package/src/components/DynamicFiltersScrollbar/DynamicFiltersScrollbar.tsx +1 -1
  113. package/src/components/FilterScrollbar/AppliedFiltersScrollbar.tsx +1 -1
  114. package/src/components/ProductCard/ProductCard.tsx +3 -4
  115. package/src/components/ProductCard/ProductCardSkeleton.tsx +1 -7
  116. package/src/components/ProductCard/types.ts +1 -1
  117. package/src/components/ProductGrid/ProductGrid.tsx +3 -2
  118. package/src/components/SearchFilter/SearchFilter.tsx +4 -4
  119. package/src/components/SearchFilter/index.ts +0 -1
  120. package/src/components/SearchFilter/types.ts +22 -26
  121. package/src/components/SearchResultsContent/SearchResultsContent.tsx +1 -1
  122. package/src/components/SearchResultsFilterSidebar/SearchResultsFilter.tsx +5 -4
  123. package/src/components/SearchResultsFilterSidebar/types.ts +0 -13
  124. package/src/components/SearchResultsStates/SearchResultsGrid.tsx +2 -1
  125. package/src/components/SearchResultsStates/SearchResultsLoadingGrid.tsx +1 -1
  126. package/src/components/SparkleAnimation/SparkleAnimation.tsx +1 -1
  127. package/src/components/SuggestionButton/SuggestionButton.tsx +3 -3
  128. package/dist/index-DLbdcczl.d.ts +0 -78
  129. package/dist/index-DlvTcfAg.d.cts +0 -78
  130. package/dist/types-Bm-qQyO3.d.ts +0 -8
  131. package/dist/types-C0UWKVvw.d.ts +0 -6
  132. package/dist/types-CZHc-1wI.d.cts +0 -8
  133. package/dist/types-D2xCS4y9.d.cts +0 -6
  134. /package/dist/{ButtonBase-BRfuPPzN.js → ButtonBase-C_uKnl48.js} +0 -0
  135. /package/dist/{ButtonBase-BleAVeo-.cjs → ButtonBase-DbWQ25n-.cjs} +0 -0
  136. /package/dist/{SearchAutocomplete-BPjlo6qq.js → SearchAutocomplete-C4RY0IoT.js} +0 -0
  137. /package/dist/{SearchAutocomplete-BzaEXmRQ.cjs → SearchAutocomplete-hQDnKtwQ.cjs} +0 -0
  138. /package/dist/{Spinner-BgGihEfJ.js → Spinner-BqTt55uu.js} +0 -0
  139. /package/dist/{Spinner-DzdIkS6t.cjs → Spinner-DjK8ts9E.cjs} +0 -0
  140. /package/dist/{Text-DkwDPbHy.js → Text-BMsncrpY.js} +0 -0
  141. /package/dist/{Text-Ji61nRRE.cjs → Text-C8t_iEj6.cjs} +0 -0
  142. /package/dist/{searchFilterSidebarVariants-CZT1frB-.js → searchFilterSidebarVariants-B8nMp970.js} +0 -0
  143. /package/dist/{searchFilterSidebarVariants-xyhy0PmQ.cjs → searchFilterSidebarVariants-BMZs5kyL.cjs} +0 -0
  144. /package/dist/{textVariantClasses-C8OCWZAw.d.ts → textVariantClasses-B0gNjzl4.d.cts} +0 -0
  145. /package/dist/{textVariantClasses-CnjwO2Fv.js → textVariantClasses-D77TGEy1.js} +0 -0
  146. /package/dist/{textVariantClasses-BnV4wXaw.cjs → textVariantClasses-Dgz7Zaql.cjs} +0 -0
  147. /package/dist/{textVariantClasses-DwnnFNBf.d.cts → textVariantClasses-ypYGLq0h.d.ts} +0 -0
@@ -1,31 +1,8 @@
1
- import { TestProps } from "./types-C0UWKVvw.js";
2
- import { FC } from "react";
3
1
  import * as react_jsx_runtime20 from "react/jsx-runtime";
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
- //#region src/config/chatElementDisplayLocation.d.ts
7
- declare enum ChatElementDisplayLocation {
8
- IN_CHAT = "in_chat",
9
- CHAT_PREVIEW = "chat_preview",
10
- FLOATING_BUTTON = "floating_button",
11
- HELP_ME_CHOOSE = "help_me_choose",
12
- PLP_IMAGE_BANNER = "plp_image_banner",
13
- TOP_REVIEWS_SNIPPET = "top_reviews_snippet",
14
- BOTTOM_REVIEWS_SNIPPET = "bottom_reviews_snippet",
15
- BLOCK_BACK_BUTTON = "block_back_button",
16
- SWITCH_TO_AGENT = "switch_to_agent",
17
- CONVERSATIONAL_SEARCH = "conversational_search",
18
- GLOBAL_SEARCH_ENTRYPOINT = "global_search_entrypoint",
19
- SEARCH_NAV_ENTRYPOINT = "search_nav_entrypoint",
20
- SEARCH_PROMPT = "search_prompt",
21
- SEARCH_PROMPT_BUTTON = "search_prompt_button",
22
- PRODUCT_GRID = "product_grid",
23
- UNSPECIFIED = "unspecified",
24
- FILTER_MODAL = "filter_modal",
25
- PROMPT_CARD = "prompt_card",
26
- WINDOW_API_CALL = "window_api_call",
27
- }
28
- //#endregion
29
6
  //#region src/util/trim.d.ts
30
7
  /**
31
8
  * Remove spaces from the left side.
@@ -248,7 +225,7 @@ type ProductGridVariant = 'standard' | 'square';
248
225
  type ProductCardVariant = 'filled' | 'bordered' | 'minimal' | 'transparentBordered';
249
226
  type ProductCardHoverVariant = 'backgroundDark' | 'none';
250
227
  type ProductCardLayoutVariant = 'normal' | 'tall' | 'square';
251
- type ProductCardImageAspectRatio = '1/1' | '4/3' | '3/4' | '16/9' | '9/16';
228
+ type ProductCardImageAspectRatio = '3:4' | 'square' | 'none';
252
229
  interface ProductCardConfig {
253
230
  variant: ProductCardVariant;
254
231
  hoverVariant: ProductCardHoverVariant;
@@ -259,7 +236,7 @@ interface SearchResponseProductAttributes {
259
236
  category: ResponseCategory.Product;
260
237
  attributes: CamelCasedPropertiesDeep<SearchResponseProduct>;
261
238
  }
262
- interface ProductCardSkeletonProps$1 {
239
+ interface ProductCardSkeletonProps {
263
240
  layoutVariant: ProductCardLayoutVariant;
264
241
  aspectRatio: ProductCardImageAspectRatio;
265
242
  growWithContainer?: boolean;
@@ -302,7 +279,7 @@ interface ProductCardProps extends TestProps {
302
279
  url: string;
303
280
  searchResponseId?: string;
304
281
  productResponseId?: string;
305
- cardDisplayLocation: ChatElementDisplayLocation.IN_CHAT | ChatElementDisplayLocation.PRODUCT_GRID;
282
+ cardDisplayLocation: string;
306
283
  imageUrl?: string;
307
284
  originalPrice?: number;
308
285
  averageRating?: number;
@@ -338,11 +315,6 @@ declare const ProductCard: ({
338
315
  }: ProductCardProps) => react_jsx_runtime20.JSX.Element;
339
316
  //#endregion
340
317
  //#region src/components/ProductCard/ProductCardSkeleton.d.ts
341
- interface ProductCardSkeletonProps {
342
- layoutVariant: ProductCardLayoutVariant;
343
- aspectRatio?: '3:4' | 'square' | 'none';
344
- growWithContainer?: boolean;
345
- }
346
318
  declare const ProductCardSkeleton: FC<ProductCardSkeletonProps>;
347
319
  //#endregion
348
320
  //#region src/components/ProductCard/productCardVariants.d.ts
@@ -354,4 +326,4 @@ declare const variantHoverClassMap: Map<ProductCardHoverVariant, string[]>;
354
326
  declare const variantTitleColorMap: Map<ProductCardVariant, string>;
355
327
  declare const productCardLayoutVariantClasses: Record<ProductCardLayoutVariant, Record<string, string[]>>;
356
328
  //#endregion
357
- export { AnimatedProductCardOverrides, PriceSection, ProductCard, ProductCardConfig, ProductCardHoverVariant, ProductCardImageAspectRatio, ProductCardLayoutVariant, ProductCardSkeleton, ProductCardSkeletonOverrides, ProductCardSkeletonProps$1 as ProductCardSkeletonProps, ProductCardVariant, ProductGridProps, ProductGridVariant, RatingSummary, SearchResponseProductAttributes, productCardLayoutVariantClasses, variantClassMap, variantHoverClassMap, variantTitleColorMap };
329
+ export { AnimatedProductCardOverrides, PriceSection, ProductCard, ProductCardConfig, ProductCardHoverVariant, ProductCardImageAspectRatio, ProductCardLayoutVariant, ProductCardSkeleton, ProductCardSkeletonOverrides, ProductCardSkeletonProps, ProductCardVariant, ProductGridProps, ProductGridVariant, RatingSummary, RatingSummaryProps, SearchResponseProductAttributes, productCardLayoutVariantClasses, variantClassMap, variantHoverClassMap, variantTitleColorMap };
@@ -1,20 +1,9 @@
1
- import { SelectFilterItem } from "./index-DlvTcfAg.cjs";
2
- import * as react_jsx_runtime23 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime1 from "react/jsx-runtime";
2
+ import { SearchFilterDatum, SelectFilterItem } from "@envive-ai/react-hooks/types";
3
3
 
4
4
  //#region src/components/SearchResultsFilterSidebar/types.d.ts
5
5
  type SearchFilterSidebarVariant = 'darkButton' | 'lightButton';
6
6
  type CloseIconVariant = 'light' | 'tertiary' | 'dark';
7
- type SearchFilter = {
8
- id: string;
9
- displayName: string;
10
- items: SearchFilterItem[];
11
- };
12
- type SearchFilterItem = {
13
- id: string;
14
- displayName: string;
15
- value: string;
16
- isSelected: boolean;
17
- };
18
7
  //#endregion
19
8
  //#region src/components/SearchResultsFilterSidebar/searchFilterSidebarVariants.d.ts
20
9
  interface SearchFilterSidebarVariantClasses {
@@ -37,7 +26,7 @@ type SearchResultsFilterProps = {
37
26
  productCount: number;
38
27
  isOpen: boolean;
39
28
  setIsOpen: (isOpen: boolean) => void;
40
- searchFilters: SearchFilter[];
29
+ searchFilters: SearchFilterDatum[];
41
30
  searchFilterSidebarVariant: SearchFilterSidebarVariant;
42
31
  searchText: string;
43
32
  onSelectFilterItem: SelectFilterItem;
@@ -53,6 +42,6 @@ declare const SearchResultsFilter: ({
53
42
  onSelectFilterItem,
54
43
  onClearAllFilters,
55
44
  filterButtonText
56
- }: SearchResultsFilterProps) => react_jsx_runtime23.JSX.Element;
45
+ }: SearchResultsFilterProps) => react_jsx_runtime1.JSX.Element;
57
46
  //#endregion
58
- export { CloseIconVariant, SearchFilter, SearchFilterItem, SearchFilterSidebarVariant, SearchResultsFilter, SearchResultsFilterProps, searchFilterSidebarVariantClasses };
47
+ export { CloseIconVariant, SearchFilterSidebarVariant, SearchResultsFilter, SearchResultsFilterProps, searchFilterSidebarVariantClasses };
@@ -1,20 +1,9 @@
1
- import { SelectFilterItem } from "./index-DLbdcczl.js";
2
1
  import * as react_jsx_runtime11 from "react/jsx-runtime";
2
+ import { SearchFilterDatum, SelectFilterItem } from "@envive-ai/react-hooks/types";
3
3
 
4
4
  //#region src/components/SearchResultsFilterSidebar/types.d.ts
5
5
  type SearchFilterSidebarVariant = 'darkButton' | 'lightButton';
6
6
  type CloseIconVariant = 'light' | 'tertiary' | 'dark';
7
- type SearchFilter = {
8
- id: string;
9
- displayName: string;
10
- items: SearchFilterItem[];
11
- };
12
- type SearchFilterItem = {
13
- id: string;
14
- displayName: string;
15
- value: string;
16
- isSelected: boolean;
17
- };
18
7
  //#endregion
19
8
  //#region src/components/SearchResultsFilterSidebar/searchFilterSidebarVariants.d.ts
20
9
  interface SearchFilterSidebarVariantClasses {
@@ -37,7 +26,7 @@ type SearchResultsFilterProps = {
37
26
  productCount: number;
38
27
  isOpen: boolean;
39
28
  setIsOpen: (isOpen: boolean) => void;
40
- searchFilters: SearchFilter[];
29
+ searchFilters: SearchFilterDatum[];
41
30
  searchFilterSidebarVariant: SearchFilterSidebarVariant;
42
31
  searchText: string;
43
32
  onSelectFilterItem: SelectFilterItem;
@@ -55,4 +44,4 @@ declare const SearchResultsFilter: ({
55
44
  filterButtonText
56
45
  }: SearchResultsFilterProps) => react_jsx_runtime11.JSX.Element;
57
46
  //#endregion
58
- export { CloseIconVariant, SearchFilter, SearchFilterItem, SearchFilterSidebarVariant, SearchResultsFilter, SearchResultsFilterProps, searchFilterSidebarVariantClasses };
47
+ export { CloseIconVariant, SearchFilterSidebarVariant, SearchResultsFilter, SearchResultsFilterProps, searchFilterSidebarVariantClasses };
@@ -1,31 +1,8 @@
1
- import { TestProps } from "./types-D2xCS4y9.cjs";
2
- import * as react_jsx_runtime19 from "react/jsx-runtime";
3
1
  import { FC } from "react";
2
+ import * as react_jsx_runtime19 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
- //#region src/config/chatElementDisplayLocation.d.ts
7
- declare enum ChatElementDisplayLocation {
8
- IN_CHAT = "in_chat",
9
- CHAT_PREVIEW = "chat_preview",
10
- FLOATING_BUTTON = "floating_button",
11
- HELP_ME_CHOOSE = "help_me_choose",
12
- PLP_IMAGE_BANNER = "plp_image_banner",
13
- TOP_REVIEWS_SNIPPET = "top_reviews_snippet",
14
- BOTTOM_REVIEWS_SNIPPET = "bottom_reviews_snippet",
15
- BLOCK_BACK_BUTTON = "block_back_button",
16
- SWITCH_TO_AGENT = "switch_to_agent",
17
- CONVERSATIONAL_SEARCH = "conversational_search",
18
- GLOBAL_SEARCH_ENTRYPOINT = "global_search_entrypoint",
19
- SEARCH_NAV_ENTRYPOINT = "search_nav_entrypoint",
20
- SEARCH_PROMPT = "search_prompt",
21
- SEARCH_PROMPT_BUTTON = "search_prompt_button",
22
- PRODUCT_GRID = "product_grid",
23
- UNSPECIFIED = "unspecified",
24
- FILTER_MODAL = "filter_modal",
25
- PROMPT_CARD = "prompt_card",
26
- WINDOW_API_CALL = "window_api_call",
27
- }
28
- //#endregion
29
6
  //#region src/util/trim.d.ts
30
7
  /**
31
8
  * Remove spaces from the left side.
@@ -248,7 +225,7 @@ type ProductGridVariant = 'standard' | 'square';
248
225
  type ProductCardVariant = 'filled' | 'bordered' | 'minimal' | 'transparentBordered';
249
226
  type ProductCardHoverVariant = 'backgroundDark' | 'none';
250
227
  type ProductCardLayoutVariant = 'normal' | 'tall' | 'square';
251
- type ProductCardImageAspectRatio = '1/1' | '4/3' | '3/4' | '16/9' | '9/16';
228
+ type ProductCardImageAspectRatio = '3:4' | 'square' | 'none';
252
229
  interface ProductCardConfig {
253
230
  variant: ProductCardVariant;
254
231
  hoverVariant: ProductCardHoverVariant;
@@ -259,7 +236,7 @@ interface SearchResponseProductAttributes {
259
236
  category: ResponseCategory.Product;
260
237
  attributes: CamelCasedPropertiesDeep<SearchResponseProduct>;
261
238
  }
262
- interface ProductCardSkeletonProps$1 {
239
+ interface ProductCardSkeletonProps {
263
240
  layoutVariant: ProductCardLayoutVariant;
264
241
  aspectRatio: ProductCardImageAspectRatio;
265
242
  growWithContainer?: boolean;
@@ -302,7 +279,7 @@ interface ProductCardProps extends TestProps {
302
279
  url: string;
303
280
  searchResponseId?: string;
304
281
  productResponseId?: string;
305
- cardDisplayLocation: ChatElementDisplayLocation.IN_CHAT | ChatElementDisplayLocation.PRODUCT_GRID;
282
+ cardDisplayLocation: string;
306
283
  imageUrl?: string;
307
284
  originalPrice?: number;
308
285
  averageRating?: number;
@@ -338,11 +315,6 @@ declare const ProductCard: ({
338
315
  }: ProductCardProps) => react_jsx_runtime19.JSX.Element;
339
316
  //#endregion
340
317
  //#region src/components/ProductCard/ProductCardSkeleton.d.ts
341
- interface ProductCardSkeletonProps {
342
- layoutVariant: ProductCardLayoutVariant;
343
- aspectRatio?: '3:4' | 'square' | 'none';
344
- growWithContainer?: boolean;
345
- }
346
318
  declare const ProductCardSkeleton: FC<ProductCardSkeletonProps>;
347
319
  //#endregion
348
320
  //#region src/components/ProductCard/productCardVariants.d.ts
@@ -354,4 +326,4 @@ declare const variantHoverClassMap: Map<ProductCardHoverVariant, string[]>;
354
326
  declare const variantTitleColorMap: Map<ProductCardVariant, string>;
355
327
  declare const productCardLayoutVariantClasses: Record<ProductCardLayoutVariant, Record<string, string[]>>;
356
328
  //#endregion
357
- export { AnimatedProductCardOverrides, PriceSection, ProductCard, ProductCardConfig, ProductCardHoverVariant, ProductCardImageAspectRatio, ProductCardLayoutVariant, ProductCardSkeleton, ProductCardSkeletonOverrides, ProductCardSkeletonProps$1 as ProductCardSkeletonProps, ProductCardVariant, ProductGridProps, ProductGridVariant, RatingSummary, SearchResponseProductAttributes, productCardLayoutVariantClasses, variantClassMap, variantHoverClassMap, variantTitleColorMap };
329
+ export { AnimatedProductCardOverrides, PriceSection, ProductCard, ProductCardConfig, ProductCardHoverVariant, ProductCardImageAspectRatio, ProductCardLayoutVariant, ProductCardSkeleton, ProductCardSkeletonOverrides, ProductCardSkeletonProps, ProductCardVariant, ProductGridProps, ProductGridVariant, RatingSummary, RatingSummaryProps, SearchResponseProductAttributes, productCardLayoutVariantClasses, variantClassMap, variantHoverClassMap, variantTitleColorMap };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@envive-ai/react-toolkit",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
4
4
  "description": "React component library for Envive services.",
5
5
  "keywords": [
6
6
  "react",
@@ -24,8 +24,9 @@
24
24
  "prepublish": "npm run build"
25
25
  },
26
26
  "dependencies": {
27
- "@envive-ai/react-hooks": "^0.1.1",
27
+ "@envive-ai/react-hooks": "^0.1.4",
28
28
  "@envive-ai/react-icons": "0.1.1",
29
+ "@tailwindcss/typography": "^0.5.15",
29
30
  "classnames": "^2.5.1",
30
31
  "framer-motion": "^12.23.12",
31
32
  "react-icons": "^5.0.1",
@@ -36,6 +37,7 @@
36
37
  "react-dom": "^18.3.1"
37
38
  },
38
39
  "devDependencies": {
40
+ "@types/react": "^19.1.12",
39
41
  "tsdown": "^0.14.2",
40
42
  "typescript": "~5.8.3"
41
43
  },
@@ -1,7 +1,7 @@
1
1
  import { motion } from 'framer-motion';
2
2
  import { useRef, useState } from 'react';
3
3
  import classNames from 'classnames';
4
- import { Text } from '@envive-ai/react-toolkit/Text';
4
+ import { Text } from 'src/components/Text';
5
5
  import ChevronDown from '@envive-ai/react-icons/ChevronDown';
6
6
 
7
7
  interface AccordionProps {
@@ -1,7 +1,7 @@
1
1
  import classNames from 'classnames';
2
2
  import ScrollContainer from 'react-indiana-drag-scroll';
3
- import { SelectedFilterOption } from 'src/atoms/search/types';
4
- import { Text } from '@envive-ai/react-toolkit/Text';
3
+ import { Text } from 'src/components/Text';
4
+ import { SelectedFilterOption } from '@envive-ai/react-hooks/atoms/search';
5
5
 
6
6
  interface AppliedFiltersScrollbarProps {
7
7
  selectedFilterOptions: SelectedFilterOption[];
@@ -1,5 +1,5 @@
1
+ import { TestProps } from '@envive-ai/react-hooks/types';
1
2
  import { ButtonHTMLAttributes, CSSProperties } from 'react';
2
- import { TestProps } from 'src/test/types';
3
3
 
4
4
  export interface ButtonHoverStyles extends CSSProperties {
5
5
  backgroundColor?: string;
@@ -1,6 +1,6 @@
1
1
  import classNames from 'classnames';
2
2
  import ScrollContainer from 'react-indiana-drag-scroll';
3
- import { Text } from '@envive-ai/react-toolkit/Text';
3
+ import { Text } from 'src/components/Text';
4
4
 
5
5
  interface DynamicFiltersScrollbarProps {
6
6
  availableDynamicFilters: { name: string; displayName: string }[];
@@ -1,7 +1,7 @@
1
+ import { SelectedFilterOption } from '@envive-ai/react-hooks/atoms/search';
1
2
  import classNames from 'classnames';
2
3
  import ScrollContainer from 'react-indiana-drag-scroll';
3
4
  import { Text } from 'src/components/Text/Text';
4
- import type { SelectedFilterOption } from 'src/atoms/search/types';
5
5
 
6
6
  interface AppliedFiltersScrollbarProps {
7
7
  selectedFilterOptions: SelectedFilterOption[];
@@ -6,9 +6,7 @@ import {
6
6
  productCardLayoutVariantClasses,
7
7
  variantTitleColorMap,
8
8
  } from './productCardVariants';
9
- import { ChatElementDisplayLocation } from 'src/config/chatElementDisplayLocation';
10
9
  import Logger from 'src/logging/logger';
11
- import { TestProps } from 'src/test/types';
12
10
  import { Headline } from '../Headline';
13
11
  import { ImageWithFallback } from '../ImageWithFallback';
14
12
  import { Spinner } from '../Spinner';
@@ -21,13 +19,14 @@ import {
21
19
  import { Text } from 'src/components/Text/Text';
22
20
  import { formatPrice } from 'src/util/formatPrice';
23
21
  import { useImageResolver } from '@envive-ai/react-hooks/hooks';
22
+ import { TestProps } from '@envive-ai/react-hooks/types';
24
23
 
25
24
  const formatReviews = (stars: number) =>
26
25
  String(
27
26
  Number(stars).toLocaleString('en-US', { minimumFractionDigits: 1, maximumFractionDigits: 1 }),
28
27
  );
29
28
 
30
- interface RatingSummaryProps {
29
+ export interface RatingSummaryProps {
31
30
  stars: number;
32
31
  reviewCount: number;
33
32
  className?: string;
@@ -118,7 +117,7 @@ interface ProductCardProps extends TestProps {
118
117
  url: string;
119
118
  searchResponseId?: string;
120
119
  productResponseId?: string;
121
- cardDisplayLocation: ChatElementDisplayLocation.IN_CHAT | ChatElementDisplayLocation.PRODUCT_GRID;
120
+ cardDisplayLocation: string;
122
121
  imageUrl?: string;
123
122
  originalPrice?: number;
124
123
  averageRating?: number;
@@ -1,14 +1,8 @@
1
1
  import type { FC } from 'react';
2
2
  import classNames from 'classnames';
3
- import { ProductCardSkeletonOverrides, type ProductCardLayoutVariant } from './types';
3
+ import { ProductCardSkeletonOverrides, ProductCardSkeletonProps } from './types';
4
4
  import { productCardLayoutVariantClasses } from './productCardVariants';
5
5
 
6
- interface ProductCardSkeletonProps {
7
- layoutVariant: ProductCardLayoutVariant;
8
- aspectRatio?: '3:4' | 'square' | 'none';
9
- growWithContainer?: boolean;
10
- }
11
-
12
6
  export const ProductCardSkeleton: FC<ProductCardSkeletonProps> = ({
13
7
  layoutVariant,
14
8
  aspectRatio,
@@ -18,7 +18,7 @@ export type ProductCardVariant = 'filled' | 'bordered' | 'minimal' | 'transparen
18
18
  export type ProductCardHoverVariant = 'backgroundDark' | 'none';
19
19
 
20
20
  export type ProductCardLayoutVariant = 'normal' | 'tall' | 'square';
21
- export type ProductCardImageAspectRatio = '1/1' | '4/3' | '3/4' | '16/9' | '9/16';
21
+ export type ProductCardImageAspectRatio = '3:4' | 'square' | 'none';
22
22
 
23
23
  export interface ProductCardConfig {
24
24
  variant: ProductCardVariant;
@@ -1,4 +1,3 @@
1
- import { ChatElementDisplayLocation } from 'src/config/chatElementDisplayLocation';
2
1
  import { ProductGridVariant, ProductCardConfig, ProductCard } from '../ProductCard';
3
2
  import { productGridVariantClasses } from './productGridVariants';
4
3
  import classNames from 'classnames';
@@ -13,6 +12,7 @@ interface ProductGridProps {
13
12
  merchantShortName: string;
14
13
  searchResponseId: string;
15
14
  cardsGrowWithContainer?: boolean;
15
+ cardDisplayLocation: string;
16
16
  }
17
17
 
18
18
  export const ProductGrid = ({
@@ -23,6 +23,7 @@ export const ProductGrid = ({
23
23
  merchantShortName,
24
24
  searchResponseId,
25
25
  cardsGrowWithContainer = true,
26
+ cardDisplayLocation,
26
27
  }: ProductGridProps) => {
27
28
  const {
28
29
  productCardVariant,
@@ -56,7 +57,7 @@ export const ProductGrid = ({
56
57
  salePrice={camelCasedProduct.salePrice}
57
58
  averageRating={camelCasedProduct.averageRating}
58
59
  numberReviews={camelCasedProduct.numberReviews}
59
- cardDisplayLocation={ChatElementDisplayLocation.PRODUCT_GRID}
60
+ cardDisplayLocation={cardDisplayLocation}
60
61
  layoutVariant={productCardLayoutVariant}
61
62
  variant={productCardVariant}
62
63
  hoverVariant={productCardHoverVariant}
@@ -1,8 +1,8 @@
1
1
  import classNames from 'classnames';
2
2
  import { SearchFilterItem } from './SearchFilterItem';
3
- import type { SearchFilterProps } from './types';
4
3
  import { Text } from 'src/components/Text/Text';
5
4
  import { ButtonBase } from 'src/components/ButtonBase/ButtonBase';
5
+ import { SearchFilterProps } from './types';
6
6
 
7
7
  export const SearchFilter = ({
8
8
  isOpen,
@@ -47,15 +47,15 @@ export const SearchFilter = ({
47
47
  {headerContent}
48
48
  <div className="spiffy-tw-flex-1 spiffy-tw-px-4 spiffy-tw-py-6">
49
49
  {filters.map((filter) => (
50
- <div key={filter.id} className="spiffy-tw-mb-6">
50
+ <div key={filter.filterId} className="spiffy-tw-mb-6">
51
51
  <Text variant="body2" className="spiffy-tw-font-medium spiffy-tw-mb-3">
52
52
  {filter.displayName}
53
53
  </Text>
54
54
  <ul>
55
55
  {filter.items.map((item) => (
56
56
  <SearchFilterItem
57
- key={item.id}
58
- filterItem={item}
57
+ key={item.filterItemId}
58
+ filterItem={{ ...item, filterId: filter.filterId }}
59
59
  onSelectFilterItem={selectFilterItem}
60
60
  radioButtonFillColor={radioButtonFillColor}
61
61
  radioButtonHoverColor={radioButtonHoverColor}
@@ -1,4 +1,3 @@
1
1
  export { SearchFilter } from './SearchFilter';
2
2
  export * from './SearchFilterHeader';
3
3
  export { SearchFilterItem } from './SearchFilterItem';
4
- export * from './types';
@@ -1,19 +1,13 @@
1
- import type { ReactNode } from 'react';
1
+ import {
2
+ SearchFilterDatum,
3
+ SearchFilterItemDatum,
4
+ SelectFilterItem,
5
+ } from '@envive-ai/react-hooks/types';
2
6
 
3
- export type SearchFilterItem = {
4
- id: string;
5
- displayName: string;
6
- value: string;
7
- isSelected: boolean;
8
- };
9
-
10
- export type SearchFilter = {
11
- id: string;
12
- displayName: string;
13
- items: SearchFilterItem[];
14
- };
15
-
16
- export type SelectFilterItem = (filterItem: SearchFilterItem) => void;
7
+ export interface SearchFilterItem extends SearchFilterItemDatum {
8
+ filterId: string;
9
+ filterItemId: string;
10
+ }
17
11
 
18
12
  export interface SearchFilterItemProps {
19
13
  filterItem: SearchFilterItem;
@@ -30,19 +24,21 @@ export interface SearchFilterHeaderProps {
30
24
  filterCloseIconVariant: 'dark' | 'light' | 'tertiary';
31
25
  }
32
26
 
33
- export interface SearchFilterProps {
34
- isOpen: boolean;
35
- setIsOpen: (isOpen: boolean) => void;
36
- filters: SearchFilter[];
37
- productCount: number;
27
+ export type SearchFilterProps = {
28
+ filters: SearchFilterDatum[];
38
29
  selectFilterItem: SelectFilterItem;
39
30
  clearAllFilters: () => void;
31
+ productCount: number;
32
+ isOpen: boolean;
33
+ setIsOpen: (isOpen: boolean) => void;
40
34
  applyFiltersUnchangedClasses: string;
41
35
  applyFiltersChangedClasses: string;
42
- filterButtonText: string;
36
+ headerContent?: React.ReactNode;
37
+ footerContent?: React.ReactNode;
38
+ filterButtonText?: string; // New prop for custom button text
39
+ headerClassName?: string;
43
40
  radioButtonFillColor: string;
44
- radioButtonHoverColor: string;
45
- radioButtonUncheckedBorderColor: string;
46
- filterCloseIconVariant: 'dark' | 'light' | 'tertiary';
47
- headerContent: ReactNode;
48
- }
41
+ radioButtonHoverColor?: string;
42
+ radioButtonUncheckedBorderColor?: string;
43
+ // filterCloseIconVariant: CloseIconVariant;
44
+ };
@@ -1,4 +1,4 @@
1
- import { SelectedFilterOption } from 'src/atoms/search/types';
1
+ import { SelectedFilterOption } from '@envive-ai/react-hooks/atoms/search';
2
2
  import {
3
3
  ProductCardConfig,
4
4
  ProductGridVariant,
@@ -3,14 +3,15 @@ import { useCallback } from 'react';
3
3
  import { searchFilterSidebarVariantClasses } from './searchFilterSidebarVariants';
4
4
  import SettingsVariant from '@envive-ai/react-icons/SettingsVariant';
5
5
  import { ButtonBase } from '../ButtonBase';
6
- import { SelectFilterItem, SearchFilter, SearchFilterHeader } from '../SearchFilter';
7
- import { SearchFilterSidebarVariant, type SearchFilter as SearchFilterType } from './types';
6
+ import { SearchFilter, SearchFilterHeader } from '../SearchFilter';
7
+ import { SearchFilterSidebarVariant } from './types';
8
+ import { SearchFilterDatum, SelectFilterItem } from '@envive-ai/react-hooks/types';
8
9
 
9
10
  export type SearchResultsFilterProps = {
10
11
  productCount: number;
11
12
  isOpen: boolean;
12
13
  setIsOpen: (isOpen: boolean) => void;
13
- searchFilters: SearchFilterType[];
14
+ searchFilters: SearchFilterDatum[];
14
15
  searchFilterSidebarVariant: SearchFilterSidebarVariant;
15
16
  searchText: string;
16
17
  onSelectFilterItem: SelectFilterItem;
@@ -57,7 +58,7 @@ export const SearchResultsFilter = ({
57
58
  radioButtonFillColor={radioButtonFillColor}
58
59
  radioButtonHoverColor={radioButtonHoverColor}
59
60
  radioButtonUncheckedBorderColor={radioButtonUncheckedBorderColor}
60
- filterCloseIconVariant={filterCloseIconVariant}
61
+ // filterCloseIconVariant={filterCloseIconVariant}
61
62
  headerContent={
62
63
  <SearchFilterHeader
63
64
  closeModal={() => setIsOpen(false)}
@@ -1,15 +1,2 @@
1
1
  export type SearchFilterSidebarVariant = 'darkButton' | 'lightButton';
2
2
  export type CloseIconVariant = 'light' | 'tertiary' | 'dark';
3
-
4
- export type SearchFilter = {
5
- id: string;
6
- displayName: string;
7
- items: SearchFilterItem[];
8
- };
9
-
10
- export type SearchFilterItem = {
11
- id: string;
12
- displayName: string;
13
- value: string;
14
- isSelected: boolean;
15
- };
@@ -5,10 +5,10 @@ import { motion } from 'framer-motion';
5
5
  import { searchFilterSidebarVariantClasses } from '../SearchResultsFilterSidebar/searchFilterSidebarVariants';
6
6
  import classNames from 'classnames';
7
7
  import { SearchResponseProduct } from '@spiffy-ai/commerce-api-client';
8
- import { SelectedFilterOption } from 'src/atoms/search/types';
9
8
  import { ProductCardConfig, ProductGridVariant } from '../ProductCard';
10
9
  import { ProductGrid } from '../ProductGrid';
11
10
  import { SearchFilterSidebarVariant } from '../SearchResultsFilterSidebar';
11
+ import { SelectedFilterOption } from '@envive-ai/react-hooks/atoms/search';
12
12
 
13
13
  interface SearchResultsGridProps {
14
14
  productList: SearchResponseProduct[];
@@ -101,6 +101,7 @@ export const SearchResultsGrid = ({
101
101
  productCardConfig={productCardConfig}
102
102
  merchantShortName={merchantShortName}
103
103
  searchResponseId={searchResponseId}
104
+ cardDisplayLocation=""
104
105
  />
105
106
  </motion.div>
106
107
  );
@@ -2,7 +2,7 @@ import { motion } from 'framer-motion';
2
2
  import { ProductGridVariant, ProductCardSkeleton } from '../ProductCard';
3
3
  import { productGridVariantClasses } from '../ProductGrid';
4
4
  import { SparkleAnimation } from '../SparkleAnimation';
5
- import { Text } from '@envive-ai/react-toolkit/Text';
5
+ import { Text } from 'src/components/Text';
6
6
 
7
7
  export const SearchResultsLoadingGrid = ({
8
8
  productGridVariant,
@@ -2,7 +2,7 @@ import { useEffect, useState } from 'react';
2
2
  import { type Transition, motion } from 'framer-motion';
3
3
  import classNames from 'classnames';
4
4
 
5
- import FourPointStar from '@envive-ai/react-icons/src/FourPointStar';
5
+ import FourPointStar from '@envive-ai/react-icons/FourPointStar';
6
6
  import { SparkleAnimationOverride } from './types';
7
7
 
8
8
  // Animation timing constants
@@ -1,9 +1,9 @@
1
1
  import classNames from 'classnames';
2
- import OutlinedStar from '@envive-ai/react-icons/src/OutlinedStar';
3
- import FourPointStar from '@envive-ai/react-icons/src/FourPointStar';
2
+ import OutlinedStar from '@envive-ai/react-icons/OutlinedStar';
3
+ import FourPointStar from '@envive-ai/react-icons/FourPointStar';
4
4
  import type { SuggestionButtonVariant } from './types';
5
5
  import { ButtonBase } from '../ButtonBase/ButtonBase';
6
- import { TestProps } from '../../test/types';
6
+ import { TestProps } from '@envive-ai/react-hooks/types';
7
7
 
8
8
  export const SPIFFY_SUGGESTION_BUTTON_QUESTION_CLASS = 'spiffy-suggestion-button-question-class';
9
9
  export const SPIFFY_SUGGESTION_BUTTON_ANSWER_CLASS = 'spiffy-suggestion-button-answer-class';