@envive-ai/react-toolkit 0.2.3 → 0.2.5

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 (104) hide show
  1. package/dist/Accordion/index.d.cts +2 -2
  2. package/dist/Accordion/index.d.ts +2 -2
  3. package/dist/AnimatedChevron/index.d.cts +2 -2
  4. package/dist/AnimatedChevron/index.d.ts +2 -2
  5. package/dist/AppliedFiltersScrollbar/index.d.cts +2 -2
  6. package/dist/AppliedFiltersScrollbar/index.d.ts +2 -2
  7. package/dist/ButtonBase/index.d.cts +2 -2
  8. package/dist/ButtonBase/index.d.ts +2 -2
  9. package/dist/DynamicFiltersScrollbar/index.d.cts +2 -2
  10. package/dist/DynamicFiltersScrollbar/index.d.ts +2 -2
  11. package/dist/FilterScrollbar/index.d.cts +3 -3
  12. package/dist/FilterScrollbar/index.d.ts +3 -3
  13. package/dist/ImageWithFallback/index.d.cts +2 -2
  14. package/dist/ImageWithFallback/index.d.ts +2 -2
  15. package/dist/ModalSheet/index.d.cts +2 -2
  16. package/dist/ModalSheet/index.d.ts +2 -2
  17. package/dist/ProductCard/index.cjs +2 -2
  18. package/dist/ProductCard/index.d.cts +1 -1
  19. package/dist/ProductCard/index.d.ts +1 -1
  20. package/dist/ProductCard/index.js +2 -2
  21. package/dist/{ProductCard-2aPkjS8z.js → ProductCard-BIlnM2nV.js} +1 -1
  22. package/dist/{ProductCard-D1F9A8Rw.cjs → ProductCard-CByKIsUN.cjs} +1 -1
  23. package/dist/ProductGrid/index.cjs +3 -3
  24. package/dist/ProductGrid/index.d.cts +3 -3
  25. package/dist/ProductGrid/index.d.ts +3 -3
  26. package/dist/ProductGrid/index.js +3 -3
  27. package/dist/{ProductGrid-Dcy7JxVN.cjs → ProductGrid-BeFeluHo.cjs} +1 -1
  28. package/dist/{ProductGrid-NtuMrOtp.js → ProductGrid-Cgkb4vNf.js} +1 -1
  29. package/dist/RadioButton/index.d.cts +2 -2
  30. package/dist/RadioButton/index.d.ts +2 -2
  31. package/dist/RadioButtonGroup/index.d.cts +2 -2
  32. package/dist/RadioButtonGroup/index.d.ts +2 -2
  33. package/dist/SearchAutocomplete/index.cjs +2 -1
  34. package/dist/SearchAutocomplete/index.d.cts +10 -2
  35. package/dist/SearchAutocomplete/index.d.ts +10 -2
  36. package/dist/SearchAutocomplete/index.js +2 -1
  37. package/dist/{SearchAutocomplete-TX8UTczp.cjs → SearchAutocomplete-BBBIDGP_.cjs} +26 -8
  38. package/dist/SearchAutocomplete-DEY_Cmf6.js +69 -0
  39. package/dist/SearchFilter/index.cjs +2 -2
  40. package/dist/SearchFilter/index.d.cts +5 -5
  41. package/dist/SearchFilter/index.d.ts +5 -5
  42. package/dist/SearchFilter/index.js +2 -2
  43. package/dist/{SearchFilter-BQW4o3Xf.js → SearchFilter-B0ICGnqG.js} +1 -1
  44. package/dist/{SearchFilter-t9or-lnj.cjs → SearchFilter-aSgPzPq-.cjs} +1 -1
  45. package/dist/SearchInput/index.cjs +4 -4
  46. package/dist/SearchInput/index.js +4 -4
  47. package/dist/{SearchInput-BaiWd0_O.js → SearchInput-DY2g3Bra.js} +2 -2
  48. package/dist/{SearchInput-CO1poiit.cjs → SearchInput-DkGDEb66.cjs} +2 -2
  49. package/dist/SearchInputForm/index.cjs +50 -30
  50. package/dist/SearchInputForm/index.d.cts +9 -7
  51. package/dist/SearchInputForm/index.d.ts +9 -7
  52. package/dist/SearchInputForm/index.js +49 -31
  53. package/dist/SearchResultsContent/index.cjs +6 -6
  54. package/dist/SearchResultsContent/index.d.cts +4 -4
  55. package/dist/SearchResultsContent/index.d.ts +4 -4
  56. package/dist/SearchResultsContent/index.js +6 -6
  57. package/dist/SearchResultsFilterSidebar/index.cjs +5 -5
  58. package/dist/SearchResultsFilterSidebar/index.d.cts +1 -1
  59. package/dist/SearchResultsFilterSidebar/index.d.ts +1 -1
  60. package/dist/SearchResultsFilterSidebar/index.js +5 -5
  61. package/dist/SearchResultsStates/index.cjs +6 -6
  62. package/dist/SearchResultsStates/index.d.cts +2 -2
  63. package/dist/SearchResultsStates/index.d.ts +6 -6
  64. package/dist/SearchResultsStates/index.js +6 -6
  65. package/dist/{SearchResultsStates-CalOf6QP.js → SearchResultsStates-DzNMYUKh.js} +3 -3
  66. package/dist/{SearchResultsStates-DQlstrHd.cjs → SearchResultsStates-e5W9Ok19.cjs} +3 -3
  67. package/dist/SparkleAnimation/index.d.cts +2 -2
  68. package/dist/SparkleAnimation/index.d.ts +2 -2
  69. package/dist/Spinner/index.cjs +1 -1
  70. package/dist/Spinner/index.d.cts +2 -2
  71. package/dist/Spinner/index.d.ts +2 -2
  72. package/dist/Spinner/index.js +1 -1
  73. package/dist/SuggestionButton/index.cjs +8 -0
  74. package/dist/SuggestionButton/index.d.cts +3 -3
  75. package/dist/SuggestionButton/index.d.ts +3 -3
  76. package/dist/SuggestionButton/index.js +8 -0
  77. package/dist/TextInput/index.cjs +1 -1
  78. package/dist/TextInput/index.js +1 -1
  79. package/dist/ToggleButton/index.cjs +1 -1
  80. package/dist/ToggleButton/index.d.cts +2 -2
  81. package/dist/ToggleButton/index.d.ts +2 -2
  82. package/dist/ToggleButton/index.js +1 -1
  83. package/dist/{index-B-5pBFE7.d.cts → index-BQVJifDf.d.cts} +2 -2
  84. package/dist/{index-BzY_al-V.d.ts → index-BdNJ2gwC.d.ts} +4 -4
  85. package/dist/{index-cx3r6TgQ.d.cts → index-DWTTeC2a.d.cts} +4 -4
  86. package/dist/{index-BcvJf9Sr.d.ts → index-fXyRC79n.d.ts} +2 -2
  87. package/dist/{searchFilterSidebarVariants-DXabOauB.cjs → searchFilterSidebarVariants-CjDvgxxT.cjs} +1 -1
  88. package/dist/{searchFilterSidebarVariants-BD4SYugF.js → searchFilterSidebarVariants-Clm9ddD5.js} +1 -1
  89. package/package.json +1 -1
  90. package/src/components/SearchAutocomplete/SearchAutocomplete.tsx +51 -11
  91. package/src/components/SearchInputForm/SearchInputForm.tsx +52 -18
  92. package/src/components/SuggestionButton/SuggestionButton.tsx +15 -0
  93. package/src/components/SuggestionButton/types.ts +2 -1
  94. package/dist/SearchAutocomplete-obO19yzL.js +0 -51
  95. /package/dist/{SettingsVariant-BsBbdjV5.cjs → SettingsVariant-BzZSQvrw.cjs} +0 -0
  96. /package/dist/{SettingsVariant-CUSFlJEu.js → SettingsVariant-DMgNg4dw.js} +0 -0
  97. /package/dist/{Spinner-BrHoB-Zg.js → Spinner-BqTt55uu.js} +0 -0
  98. /package/dist/{Spinner-B1IEMa00.cjs → Spinner-DjK8ts9E.cjs} +0 -0
  99. /package/dist/{TextInput-iAKCKHwT.cjs → TextInput-BKNorxPl.cjs} +0 -0
  100. /package/dist/{TextInput-B_4Bu2vf.js → TextInput-NKOORtYu.js} +0 -0
  101. /package/dist/{ToggleButton-Br6MgjiG.js → ToggleButton-8P9eNKy1.js} +0 -0
  102. /package/dist/{ToggleButton-CJ74eu-N.cjs → ToggleButton-DCiR4sB5.cjs} +0 -0
  103. /package/dist/{colorsConfig-D-MZuBvt.cjs → colorsConfig-CRxY3SQ_.cjs} +0 -0
  104. /package/dist/{colorsConfig-DEfiLHH0.js → colorsConfig-D_IPWAUL.js} +0 -0
@@ -0,0 +1,69 @@
1
+ import { Typography } from "./Typography-D3vDkBMS.js";
2
+ import { motion } from "framer-motion";
3
+ import React from "react";
4
+ import classNames from "classnames";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import OutlinedStar from "@envive-ai/react-icons/OutlinedStar";
7
+
8
+ //#region src/components/SearchAutocomplete/SearchAutocomplete.tsx
9
+ const SearchAutocomplete = ({ id, results, focusedIndex, searchText = "", onSuggestionSelect, iconColor }) => {
10
+ if (results.length === 0) return null;
11
+ const highlightMatchingText = (text, searchQuery) => {
12
+ if (!searchQuery.trim()) return /* @__PURE__ */ jsx(Typography, {
13
+ variant: "body3",
14
+ children: text
15
+ });
16
+ const escapedQuery = searchQuery.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
17
+ const regex = new RegExp(`(${escapedQuery})`, "gi");
18
+ const parts = text.split(regex);
19
+ return /* @__PURE__ */ jsx(Typography, {
20
+ variant: "body3",
21
+ children: parts.map((part, index) => {
22
+ return part.toLowerCase() === searchQuery.toLowerCase() ? /* @__PURE__ */ jsx("strong", {
23
+ className: "spiffy-tw-font-bold",
24
+ children: part
25
+ }, index) : /* @__PURE__ */ jsx("span", { children: part }, index);
26
+ })
27
+ });
28
+ };
29
+ const containerClasses = classNames("spiffy-tw-mt-[16px]", "spiffy-tw-mb-[8px]");
30
+ const getListElementClasses = (index) => classNames("spiffy-tw-flex", "spiffy-tw-items-center", "spiffy-tw-cursor-pointer", "spiffy-tw-py-[8px]", "spiffy-tw-pl-[16px]", "spiffy-tw-text-[--spiffy-colors-text-primary]", "hover:spiffy-tw-bg-neutral-100", { "spiffy-tw-bg-neutral-200": focusedIndex === index });
31
+ return /* @__PURE__ */ jsx(motion.div, {
32
+ className: "spiffy-tw-h-full",
33
+ initial: {
34
+ opacity: 0,
35
+ y: -10
36
+ },
37
+ animate: {
38
+ opacity: 1,
39
+ y: 0
40
+ },
41
+ exit: {
42
+ opacity: 0,
43
+ y: -10
44
+ },
45
+ transition: { duration: .2 },
46
+ children: /* @__PURE__ */ jsx("ul", {
47
+ id,
48
+ role: "listbox",
49
+ className: containerClasses,
50
+ children: results.map((result, index) => /* @__PURE__ */ jsxs("li", {
51
+ id: `option-${index}`,
52
+ role: "option",
53
+ "aria-selected": index === focusedIndex,
54
+ className: getListElementClasses(index),
55
+ onClick: () => onSuggestionSelect(result, index),
56
+ onKeyDown: (event) => {
57
+ if (event.key === "Enter" || event.keyCode === 13) onSuggestionSelect(result, index);
58
+ },
59
+ children: [/* @__PURE__ */ jsx(OutlinedStar, {
60
+ className: "spiffy-tw-w-[16px] spiffy-tw-h-[16px] spiffy-tw-mr-[16px]",
61
+ fill: iconColor
62
+ }), highlightMatchingText(result, searchText)]
63
+ }, index))
64
+ })
65
+ });
66
+ };
67
+
68
+ //#endregion
69
+ export { SearchAutocomplete };
@@ -6,8 +6,8 @@ require('../ButtonBase-DbWQ25n-.cjs');
6
6
  require('../ModalSheet-CcthFeMD.cjs');
7
7
  require('../RadioButton-DG0PgZbz.cjs');
8
8
  require('../RadioButtonGroup-3t2kqSFA.cjs');
9
- const require_SearchFilter = require('../SearchFilter-t9or-lnj.cjs');
10
- require('../ToggleButton-CJ74eu-N.cjs');
9
+ const require_SearchFilter = require('../SearchFilter-aSgPzPq-.cjs');
10
+ require('../ToggleButton-DCiR4sB5.cjs');
11
11
 
12
12
  exports.SearchFilter = require_SearchFilter.SearchFilter;
13
13
  exports.SearchFilterFooter = require_SearchFilter.SearchFilterFooter;
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime10 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime23 from "react/jsx-runtime";
2
2
  import { CloseIconVariant, FilterFooterProps, SearchFilterDatum, SearchFilterItemDatum, SelectFilterItem } from "@envive-ai/react-hooks/types";
3
3
 
4
4
  //#region src/components/SearchFilter/types.d.ts
@@ -55,7 +55,7 @@ declare const SearchFilter: ({
55
55
  radioButtonHoverColor,
56
56
  radioButtonUncheckedBorderColor,
57
57
  filterCloseIconVariant
58
- }: SearchFilterProps) => react_jsx_runtime10.JSX.Element;
58
+ }: SearchFilterProps) => react_jsx_runtime23.JSX.Element;
59
59
  //#endregion
60
60
  //#region src/components/SearchFilter/SearchFilterHeader.d.ts
61
61
  declare const SearchFilterHeader: ({
@@ -63,7 +63,7 @@ declare const SearchFilterHeader: ({
63
63
  productCount,
64
64
  headerClassName,
65
65
  filterCloseIconVariant
66
- }: SearchFilterHeaderProps) => react_jsx_runtime10.JSX.Element;
66
+ }: SearchFilterHeaderProps) => react_jsx_runtime23.JSX.Element;
67
67
  //#endregion
68
68
  //#region src/components/SearchFilter/SearchFilterFooter.d.ts
69
69
  declare const SearchFilterFooter: ({
@@ -73,7 +73,7 @@ declare const SearchFilterFooter: ({
73
73
  applyFiltersUnchangedClasses,
74
74
  applyFiltersChangedClasses,
75
75
  hasFiltersChanged
76
- }: FilterFooterProps) => react_jsx_runtime10.JSX.Element;
76
+ }: FilterFooterProps) => react_jsx_runtime23.JSX.Element;
77
77
  //#endregion
78
78
  //#region src/components/SearchFilter/SearchFilterItem.d.ts
79
79
  declare const SearchFilterItem: ({
@@ -82,7 +82,7 @@ declare const SearchFilterItem: ({
82
82
  radioButtonFillColor,
83
83
  radioButtonHoverColor,
84
84
  radioButtonUncheckedBorderColor
85
- }: SearchFilterItemProps) => react_jsx_runtime10.JSX.Element;
85
+ }: SearchFilterItemProps) => react_jsx_runtime23.JSX.Element;
86
86
  //#endregion
87
87
  //#region src/components/SearchFilter/utils.d.ts
88
88
  declare const getSelectedFilterItemsCount: (filter: SearchFilterDatum) => number;
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime11 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime8 from "react/jsx-runtime";
2
2
  import { CloseIconVariant, FilterFooterProps, SearchFilterDatum, SearchFilterItemDatum, SelectFilterItem } from "@envive-ai/react-hooks/types";
3
3
 
4
4
  //#region src/components/SearchFilter/types.d.ts
@@ -55,7 +55,7 @@ declare const SearchFilter: ({
55
55
  radioButtonHoverColor,
56
56
  radioButtonUncheckedBorderColor,
57
57
  filterCloseIconVariant
58
- }: SearchFilterProps) => react_jsx_runtime11.JSX.Element;
58
+ }: SearchFilterProps) => react_jsx_runtime8.JSX.Element;
59
59
  //#endregion
60
60
  //#region src/components/SearchFilter/SearchFilterHeader.d.ts
61
61
  declare const SearchFilterHeader: ({
@@ -63,7 +63,7 @@ declare const SearchFilterHeader: ({
63
63
  productCount,
64
64
  headerClassName,
65
65
  filterCloseIconVariant
66
- }: SearchFilterHeaderProps) => react_jsx_runtime11.JSX.Element;
66
+ }: SearchFilterHeaderProps) => react_jsx_runtime8.JSX.Element;
67
67
  //#endregion
68
68
  //#region src/components/SearchFilter/SearchFilterFooter.d.ts
69
69
  declare const SearchFilterFooter: ({
@@ -73,7 +73,7 @@ declare const SearchFilterFooter: ({
73
73
  applyFiltersUnchangedClasses,
74
74
  applyFiltersChangedClasses,
75
75
  hasFiltersChanged
76
- }: FilterFooterProps) => react_jsx_runtime11.JSX.Element;
76
+ }: FilterFooterProps) => react_jsx_runtime8.JSX.Element;
77
77
  //#endregion
78
78
  //#region src/components/SearchFilter/SearchFilterItem.d.ts
79
79
  declare const SearchFilterItem: ({
@@ -82,7 +82,7 @@ declare const SearchFilterItem: ({
82
82
  radioButtonFillColor,
83
83
  radioButtonHoverColor,
84
84
  radioButtonUncheckedBorderColor
85
- }: SearchFilterItemProps) => react_jsx_runtime11.JSX.Element;
85
+ }: SearchFilterItemProps) => react_jsx_runtime8.JSX.Element;
86
86
  //#endregion
87
87
  //#region src/components/SearchFilter/utils.d.ts
88
88
  declare const getSelectedFilterItemsCount: (filter: SearchFilterDatum) => number;
@@ -6,7 +6,7 @@ import "../ButtonBase-C_uKnl48.js";
6
6
  import "../ModalSheet-BSj_g9JF.js";
7
7
  import "../RadioButton-C_soBi7w.js";
8
8
  import "../RadioButtonGroup-DMbVgPQH.js";
9
- import { SearchFilter, SearchFilterFooter, SearchFilterHeader, SearchFilterItem, getSelectedFilterItemsCount, getTotalSelectedFilterItemsCount } from "../SearchFilter-BQW4o3Xf.js";
10
- import "../ToggleButton-Br6MgjiG.js";
9
+ import { SearchFilter, SearchFilterFooter, SearchFilterHeader, SearchFilterItem, getSelectedFilterItemsCount, getTotalSelectedFilterItemsCount } from "../SearchFilter-B0ICGnqG.js";
10
+ import "../ToggleButton-8P9eNKy1.js";
11
11
 
12
12
  export { SearchFilter, SearchFilterFooter, SearchFilterHeader, SearchFilterItem, getSelectedFilterItemsCount, getTotalSelectedFilterItemsCount };
@@ -3,7 +3,7 @@ import { Accordion } from "./Accordion-DxtXK__u.js";
3
3
  import { ButtonBase } from "./ButtonBase-6wjsZ1tU.js";
4
4
  import { ModalSheet } from "./ModalSheet-BSj_g9JF.js";
5
5
  import { RadioButtonGroup } from "./RadioButtonGroup-DMbVgPQH.js";
6
- import { ToggleButton } from "./ToggleButton-Br6MgjiG.js";
6
+ import { ToggleButton } from "./ToggleButton-8P9eNKy1.js";
7
7
  import { useCallback, useEffect, useMemo, useState } from "react";
8
8
  import classNames from "classnames";
9
9
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -4,7 +4,7 @@ const require_Accordion = require('./Accordion-RpyCFs2a.cjs');
4
4
  const require_ButtonBase = require('./ButtonBase-AU23oGQr.cjs');
5
5
  const require_ModalSheet = require('./ModalSheet-CcthFeMD.cjs');
6
6
  const require_RadioButtonGroup = require('./RadioButtonGroup-3t2kqSFA.cjs');
7
- const require_ToggleButton = require('./ToggleButton-CJ74eu-N.cjs');
7
+ const require_ToggleButton = require('./ToggleButton-DCiR4sB5.cjs');
8
8
  let react = require("react");
9
9
  react = require_chunk.__toESM(react);
10
10
  let classnames = require("classnames");
@@ -1,8 +1,8 @@
1
1
  require('../Typography-CFNWgbM5.cjs');
2
- const require_SearchInput = require('../SearchInput-CO1poiit.cjs');
3
- require('../SettingsVariant-BsBbdjV5.cjs');
4
- require('../TextInput-iAKCKHwT.cjs');
5
- require('../colorsConfig-D-MZuBvt.cjs');
2
+ const require_SearchInput = require('../SearchInput-DkGDEb66.cjs');
3
+ require('../SettingsVariant-BzZSQvrw.cjs');
4
+ require('../TextInput-BKNorxPl.cjs');
5
+ require('../colorsConfig-CRxY3SQ_.cjs');
6
6
 
7
7
  exports.SearchInput = require_SearchInput.SearchInput;
8
8
  exports.searchInputVariantClasses = require_SearchInput.searchInputVariantClasses;
@@ -1,7 +1,7 @@
1
1
  import "../Typography-D3vDkBMS.js";
2
- import { SearchInput, searchInputVariantClasses } from "../SearchInput-BaiWd0_O.js";
3
- import "../SettingsVariant-CUSFlJEu.js";
4
- import "../TextInput-B_4Bu2vf.js";
5
- import "../colorsConfig-DEfiLHH0.js";
2
+ import { SearchInput, searchInputVariantClasses } from "../SearchInput-DY2g3Bra.js";
3
+ import "../SettingsVariant-DMgNg4dw.js";
4
+ import "../TextInput-NKOORtYu.js";
5
+ import "../colorsConfig-D_IPWAUL.js";
6
6
 
7
7
  export { SearchInput, searchInputVariantClasses };
@@ -1,5 +1,5 @@
1
- import { TextInput } from "./TextInput-B_4Bu2vf.js";
2
- import { ColorNames, colorVar } from "./colorsConfig-DEfiLHH0.js";
1
+ import { TextInput } from "./TextInput-NKOORtYu.js";
2
+ import { ColorNames, colorVar } from "./colorsConfig-D_IPWAUL.js";
3
3
  import React, { useImperativeHandle, useRef } from "react";
4
4
  import classNames from "classnames";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,6 +1,6 @@
1
1
  const require_chunk = require('./chunk-CUT6urMc.cjs');
2
- const require_TextInput = require('./TextInput-iAKCKHwT.cjs');
3
- const require_colorsConfig = require('./colorsConfig-D-MZuBvt.cjs');
2
+ const require_TextInput = require('./TextInput-BKNorxPl.cjs');
3
+ const require_colorsConfig = require('./colorsConfig-CRxY3SQ_.cjs');
4
4
  let react = require("react");
5
5
  react = require_chunk.__toESM(react);
6
6
  let classnames = require("classnames");
@@ -1,39 +1,59 @@
1
1
  const require_chunk = require('../chunk-CUT6urMc.cjs');
2
2
  require('../Typography-CFNWgbM5.cjs');
3
- const require_SearchAutocomplete = require('../SearchAutocomplete-TX8UTczp.cjs');
4
- const require_SearchInput = require('../SearchInput-CO1poiit.cjs');
5
- require('../SettingsVariant-BsBbdjV5.cjs');
6
- require('../TextInput-iAKCKHwT.cjs');
7
- require('../colorsConfig-D-MZuBvt.cjs');
3
+ const require_SearchInput = require('../SearchInput-DkGDEb66.cjs');
4
+ require('../SettingsVariant-BzZSQvrw.cjs');
5
+ require('../TextInput-BKNorxPl.cjs');
6
+ require('../colorsConfig-CRxY3SQ_.cjs');
7
+ const require_SearchAutocomplete = require('../SearchAutocomplete-BBBIDGP_.cjs');
8
+ let classnames = require("classnames");
9
+ classnames = require_chunk.__toESM(classnames);
8
10
  let react_jsx_runtime = require("react/jsx-runtime");
9
11
  react_jsx_runtime = require_chunk.__toESM(react_jsx_runtime);
12
+ let __envive_ai_react_hooks_config_locators_components_search = require("@envive-ai/react-hooks/config/locators/components/search");
13
+ __envive_ai_react_hooks_config_locators_components_search = require_chunk.__toESM(__envive_ai_react_hooks_config_locators_components_search);
10
14
 
11
15
  //#region src/components/SearchInputForm/SearchInputForm.tsx
12
- const SearchInputForm = ({ searchInputVariant, searchText, autocompleteResults, searchBoxPlaceholder, focusedOptionId, isDirty, focusedIndex, onKeyDown, onAutocompleteSelect, onSearchInputChange, onSearchSubmit, searchInputDataTestId }) => {
13
- const { searchInputIconColor } = require_SearchInput.searchInputVariantClasses[searchInputVariant];
14
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("form", {
15
- onSubmit: (e) => {
16
- e.preventDefault();
17
- onSearchSubmit();
18
- },
19
- className: "spiffy-tw-grow",
20
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_SearchInput.SearchInput, {
21
- value: searchText,
22
- placeholder: searchBoxPlaceholder,
23
- suggestions: autocompleteResults,
24
- ariaActivedescendant: focusedOptionId,
25
- searchInputVariant,
26
- dataTestId: searchInputDataTestId,
27
- onKeyDown,
28
- onChange: onSearchInputChange
29
- })
30
- }), isDirty && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_SearchAutocomplete.SearchAutocomplete, {
31
- id: "autocomplete-results",
32
- results: autocompleteResults,
33
- focusedIndex,
34
- iconColor: searchInputIconColor,
35
- onSuggestionSelect: onAutocompleteSelect
36
- })] });
16
+ const SearchInputForm = ({ searchInputVariant, searchText, autocompleteResults, searchBoxPlaceholder, focusedOptionId, shouldShowAutocomplete, focusedIndex, onKeyDown, onAutocompleteSelect, onSearchInputChange, onSearchSubmit, onSearchInputFocus, onSearchInputBlur }) => {
17
+ const { autocompleteIconColor } = require_SearchInput.searchInputVariantClasses[searchInputVariant];
18
+ const containerClasses = (0, classnames.default)("spiffy-tw-relative", "spiffy-tw-w-full");
19
+ const formClasses = (0, classnames.default)({
20
+ "spiffy-tw-grow": true,
21
+ "spiffy-tw-relative": true,
22
+ "spiffy-tw-z-20": shouldShowAutocomplete
23
+ });
24
+ const autocompleteContainerClasses = (0, classnames.default)("spiffy-tw-absolute", "spiffy-tw-top-1/2", "spiffy-tw-z-10", "spiffy-tw-left-0", "spiffy-tw-right-0", "spiffy-tw-bg-white", "spiffy-tw-w-full", "spiffy-tw-rounded-b-lg", "spiffy-tw-border", "spiffy-tw-border-t-0", "spiffy-tw-pt-4");
25
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
26
+ className: containerClasses,
27
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("form", {
28
+ onSubmit: (e) => {
29
+ e.preventDefault();
30
+ onSearchSubmit();
31
+ },
32
+ className: formClasses,
33
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_SearchInput.SearchInput, {
34
+ value: searchText,
35
+ placeholder: searchBoxPlaceholder,
36
+ suggestions: autocompleteResults,
37
+ ariaActivedescendant: focusedOptionId,
38
+ searchInputVariant,
39
+ dataTestId: __envive_ai_react_hooks_config_locators_components_search.SEARCH_INPUT_TESTID,
40
+ onKeyDown,
41
+ onChange: onSearchInputChange,
42
+ onFocus: onSearchInputFocus,
43
+ onBlur: onSearchInputBlur
44
+ })
45
+ }), shouldShowAutocomplete && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
46
+ className: autocompleteContainerClasses,
47
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_SearchAutocomplete.SearchAutocomplete, {
48
+ id: "autocomplete-results",
49
+ results: autocompleteResults,
50
+ focusedIndex,
51
+ searchText,
52
+ iconColor: autocompleteIconColor,
53
+ onSuggestionSelect: onAutocompleteSelect
54
+ })
55
+ })]
56
+ });
37
57
  };
38
58
 
39
59
  //#endregion
@@ -1,5 +1,5 @@
1
1
  import { SearchInputVariant } from "../types-BhGjnuWx.cjs";
2
- import * as react_jsx_runtime2 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/SearchInputForm/SearchInputForm.d.ts
5
5
  interface SearchInputFormProps {
@@ -8,13 +8,14 @@ interface SearchInputFormProps {
8
8
  autocompleteResults: string[];
9
9
  searchBoxPlaceholder: string;
10
10
  focusedOptionId: string | undefined;
11
- isDirty: boolean;
12
11
  focusedIndex: number;
13
12
  onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;
14
- onAutocompleteSelect: (suggestion: string) => void;
13
+ onAutocompleteSelect: (suggestion: string, rankPosition?: number) => void;
15
14
  onSearchInputChange: (value: string) => void;
16
15
  onSearchSubmit: () => void;
17
- searchInputDataTestId?: string;
16
+ onSearchInputFocus: () => void;
17
+ onSearchInputBlur: () => void;
18
+ shouldShowAutocomplete: boolean;
18
19
  }
19
20
  declare const SearchInputForm: ({
20
21
  searchInputVariant,
@@ -22,13 +23,14 @@ declare const SearchInputForm: ({
22
23
  autocompleteResults,
23
24
  searchBoxPlaceholder,
24
25
  focusedOptionId,
25
- isDirty,
26
+ shouldShowAutocomplete,
26
27
  focusedIndex,
27
28
  onKeyDown,
28
29
  onAutocompleteSelect,
29
30
  onSearchInputChange,
30
31
  onSearchSubmit,
31
- searchInputDataTestId
32
- }: SearchInputFormProps) => react_jsx_runtime2.JSX.Element;
32
+ onSearchInputFocus,
33
+ onSearchInputBlur
34
+ }: SearchInputFormProps) => react_jsx_runtime0.JSX.Element;
33
35
  //#endregion
34
36
  export { SearchInputForm };
@@ -1,5 +1,5 @@
1
1
  import { SearchInputVariant } from "../types-CGRog8XL.js";
2
- import * as react_jsx_runtime17 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime5 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/SearchInputForm/SearchInputForm.d.ts
5
5
  interface SearchInputFormProps {
@@ -8,13 +8,14 @@ interface SearchInputFormProps {
8
8
  autocompleteResults: string[];
9
9
  searchBoxPlaceholder: string;
10
10
  focusedOptionId: string | undefined;
11
- isDirty: boolean;
12
11
  focusedIndex: number;
13
12
  onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;
14
- onAutocompleteSelect: (suggestion: string) => void;
13
+ onAutocompleteSelect: (suggestion: string, rankPosition?: number) => void;
15
14
  onSearchInputChange: (value: string) => void;
16
15
  onSearchSubmit: () => void;
17
- searchInputDataTestId?: string;
16
+ onSearchInputFocus: () => void;
17
+ onSearchInputBlur: () => void;
18
+ shouldShowAutocomplete: boolean;
18
19
  }
19
20
  declare const SearchInputForm: ({
20
21
  searchInputVariant,
@@ -22,13 +23,14 @@ declare const SearchInputForm: ({
22
23
  autocompleteResults,
23
24
  searchBoxPlaceholder,
24
25
  focusedOptionId,
25
- isDirty,
26
+ shouldShowAutocomplete,
26
27
  focusedIndex,
27
28
  onKeyDown,
28
29
  onAutocompleteSelect,
29
30
  onSearchInputChange,
30
31
  onSearchSubmit,
31
- searchInputDataTestId
32
- }: SearchInputFormProps) => react_jsx_runtime17.JSX.Element;
32
+ onSearchInputFocus,
33
+ onSearchInputBlur
34
+ }: SearchInputFormProps) => react_jsx_runtime5.JSX.Element;
33
35
  //#endregion
34
36
  export { SearchInputForm };
@@ -1,37 +1,55 @@
1
1
  import "../Typography-D3vDkBMS.js";
2
- import { SearchAutocomplete } from "../SearchAutocomplete-obO19yzL.js";
3
- import { SearchInput, searchInputVariantClasses } from "../SearchInput-BaiWd0_O.js";
4
- import "../SettingsVariant-CUSFlJEu.js";
5
- import "../TextInput-B_4Bu2vf.js";
6
- import "../colorsConfig-DEfiLHH0.js";
7
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import { SearchInput, searchInputVariantClasses } from "../SearchInput-DY2g3Bra.js";
3
+ import "../SettingsVariant-DMgNg4dw.js";
4
+ import "../TextInput-NKOORtYu.js";
5
+ import "../colorsConfig-D_IPWAUL.js";
6
+ import { SearchAutocomplete } from "../SearchAutocomplete-DEY_Cmf6.js";
7
+ import classNames from "classnames";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
+ import { SEARCH_INPUT_TESTID } from "@envive-ai/react-hooks/config/locators/components/search";
8
10
 
9
11
  //#region src/components/SearchInputForm/SearchInputForm.tsx
10
- const SearchInputForm = ({ searchInputVariant, searchText, autocompleteResults, searchBoxPlaceholder, focusedOptionId, isDirty, focusedIndex, onKeyDown, onAutocompleteSelect, onSearchInputChange, onSearchSubmit, searchInputDataTestId }) => {
11
- const { searchInputIconColor } = searchInputVariantClasses[searchInputVariant];
12
- return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("form", {
13
- onSubmit: (e) => {
14
- e.preventDefault();
15
- onSearchSubmit();
16
- },
17
- className: "spiffy-tw-grow",
18
- children: /* @__PURE__ */ jsx(SearchInput, {
19
- value: searchText,
20
- placeholder: searchBoxPlaceholder,
21
- suggestions: autocompleteResults,
22
- ariaActivedescendant: focusedOptionId,
23
- searchInputVariant,
24
- dataTestId: searchInputDataTestId,
25
- onKeyDown,
26
- onChange: onSearchInputChange
27
- })
28
- }), isDirty && /* @__PURE__ */ jsx(SearchAutocomplete, {
29
- id: "autocomplete-results",
30
- results: autocompleteResults,
31
- focusedIndex,
32
- iconColor: searchInputIconColor,
33
- onSuggestionSelect: onAutocompleteSelect
34
- })] });
12
+ const SearchInputForm = ({ searchInputVariant, searchText, autocompleteResults, searchBoxPlaceholder, focusedOptionId, shouldShowAutocomplete, focusedIndex, onKeyDown, onAutocompleteSelect, onSearchInputChange, onSearchSubmit, onSearchInputFocus, onSearchInputBlur }) => {
13
+ const { autocompleteIconColor } = searchInputVariantClasses[searchInputVariant];
14
+ const containerClasses = classNames("spiffy-tw-relative", "spiffy-tw-w-full");
15
+ const formClasses = classNames({
16
+ "spiffy-tw-grow": true,
17
+ "spiffy-tw-relative": true,
18
+ "spiffy-tw-z-20": shouldShowAutocomplete
19
+ });
20
+ const autocompleteContainerClasses = classNames("spiffy-tw-absolute", "spiffy-tw-top-1/2", "spiffy-tw-z-10", "spiffy-tw-left-0", "spiffy-tw-right-0", "spiffy-tw-bg-white", "spiffy-tw-w-full", "spiffy-tw-rounded-b-lg", "spiffy-tw-border", "spiffy-tw-border-t-0", "spiffy-tw-pt-4");
21
+ return /* @__PURE__ */ jsxs("div", {
22
+ className: containerClasses,
23
+ children: [/* @__PURE__ */ jsx("form", {
24
+ onSubmit: (e) => {
25
+ e.preventDefault();
26
+ onSearchSubmit();
27
+ },
28
+ className: formClasses,
29
+ children: /* @__PURE__ */ jsx(SearchInput, {
30
+ value: searchText,
31
+ placeholder: searchBoxPlaceholder,
32
+ suggestions: autocompleteResults,
33
+ ariaActivedescendant: focusedOptionId,
34
+ searchInputVariant,
35
+ dataTestId: SEARCH_INPUT_TESTID,
36
+ onKeyDown,
37
+ onChange: onSearchInputChange,
38
+ onFocus: onSearchInputFocus,
39
+ onBlur: onSearchInputBlur
40
+ })
41
+ }), shouldShowAutocomplete && /* @__PURE__ */ jsx("div", {
42
+ className: autocompleteContainerClasses,
43
+ children: /* @__PURE__ */ jsx(SearchAutocomplete, {
44
+ id: "autocomplete-results",
45
+ results: autocompleteResults,
46
+ focusedIndex,
47
+ searchText,
48
+ iconColor: autocompleteIconColor,
49
+ onSuggestionSelect: onAutocompleteSelect
50
+ })
51
+ })]
52
+ });
35
53
  };
36
54
 
37
55
  //#endregion
@@ -2,12 +2,12 @@ const require_chunk = require('../chunk-CUT6urMc.cjs');
2
2
  require('../Typography-CFNWgbM5.cjs');
3
3
  require('../DynamicFiltersScrollbar-50i_InZz.cjs');
4
4
  require('../ImageWithFallback-1LqhQK1q.cjs');
5
- require('../ProductGrid-Dcy7JxVN.cjs');
6
- require('../ProductCard-D1F9A8Rw.cjs');
7
- require('../Spinner-B1IEMa00.cjs');
8
- require('../colorsConfig-D-MZuBvt.cjs');
9
- const require_SearchResultsStates = require('../SearchResultsStates-DQlstrHd.cjs');
10
- require('../searchFilterSidebarVariants-DXabOauB.cjs');
5
+ require('../ProductCard-CByKIsUN.cjs');
6
+ require('../Spinner-DjK8ts9E.cjs');
7
+ require('../ProductGrid-BeFeluHo.cjs');
8
+ require('../colorsConfig-CRxY3SQ_.cjs');
9
+ const require_SearchResultsStates = require('../SearchResultsStates-e5W9Ok19.cjs');
10
+ require('../searchFilterSidebarVariants-CjDvgxxT.cjs');
11
11
  require('../SparkleAnimation-Bm3fk2FJ.cjs');
12
12
  let react_jsx_runtime = require("react/jsx-runtime");
13
13
  react_jsx_runtime = require_chunk.__toESM(react_jsx_runtime);
@@ -1,6 +1,6 @@
1
- import { ProductCardConfig, ProductGridVariant, SearchResponseProductAttributes } from "../index-cx3r6TgQ.cjs";
2
- import { SearchFilterSidebarVariant } from "../index-B-5pBFE7.cjs";
3
- import * as react_jsx_runtime9 from "react/jsx-runtime";
1
+ import { ProductCardConfig, ProductGridVariant, SearchResponseProductAttributes } from "../index-DWTTeC2a.cjs";
2
+ import { SearchFilterSidebarVariant } from "../index-BQVJifDf.cjs";
3
+ import * as react_jsx_runtime3 from "react/jsx-runtime";
4
4
  import { SelectedFilterOption } from "@envive-ai/react-hooks/atoms/search";
5
5
  import { SearchResultsState } from "@envive-ai/react-hooks/hooks/utils";
6
6
 
@@ -43,6 +43,6 @@ declare const SearchResultsContent: ({
43
43
  onRemoveFilter,
44
44
  onToggleDynamicFilter,
45
45
  noResultsFoundText
46
- }: SearchResultsContentProps) => react_jsx_runtime9.JSX.Element;
46
+ }: SearchResultsContentProps) => react_jsx_runtime3.JSX.Element;
47
47
  //#endregion
48
48
  export { SearchResultsContent };
@@ -1,6 +1,6 @@
1
- import { ProductCardConfig, ProductGridVariant, SearchResponseProductAttributes } from "../index-BzY_al-V.js";
2
- import { SearchFilterSidebarVariant } from "../index-BcvJf9Sr.js";
3
- import * as react_jsx_runtime6 from "react/jsx-runtime";
1
+ import { ProductCardConfig, ProductGridVariant, SearchResponseProductAttributes } from "../index-BdNJ2gwC.js";
2
+ import { SearchFilterSidebarVariant } from "../index-fXyRC79n.js";
3
+ import * as react_jsx_runtime28 from "react/jsx-runtime";
4
4
  import { SearchResultsState } from "@envive-ai/react-hooks/hooks/utils";
5
5
  import { SelectedFilterOption } from "@envive-ai/react-hooks/atoms/search";
6
6
 
@@ -43,6 +43,6 @@ declare const SearchResultsContent: ({
43
43
  onRemoveFilter,
44
44
  onToggleDynamicFilter,
45
45
  noResultsFoundText
46
- }: SearchResultsContentProps) => react_jsx_runtime6.JSX.Element;
46
+ }: SearchResultsContentProps) => react_jsx_runtime28.JSX.Element;
47
47
  //#endregion
48
48
  export { SearchResultsContent };
@@ -1,12 +1,12 @@
1
1
  import "../Typography-D3vDkBMS.js";
2
2
  import "../DynamicFiltersScrollbar-AhyHehrB.js";
3
3
  import "../ImageWithFallback-Ckwsmd8P.js";
4
- import "../ProductGrid-NtuMrOtp.js";
5
- import "../ProductCard-2aPkjS8z.js";
6
- import "../Spinner-BrHoB-Zg.js";
7
- import "../colorsConfig-DEfiLHH0.js";
8
- import { NoSearchResultsFound, SearchResultsGrid, SearchResultsLoadingGrid } from "../SearchResultsStates-CalOf6QP.js";
9
- import "../searchFilterSidebarVariants-BD4SYugF.js";
4
+ import "../ProductCard-BIlnM2nV.js";
5
+ import "../Spinner-BqTt55uu.js";
6
+ import "../ProductGrid-Cgkb4vNf.js";
7
+ import "../colorsConfig-D_IPWAUL.js";
8
+ import { NoSearchResultsFound, SearchResultsGrid, SearchResultsLoadingGrid } from "../SearchResultsStates-DzNMYUKh.js";
9
+ import "../searchFilterSidebarVariants-Clm9ddD5.js";
10
10
  import "../SparkleAnimation-D1QjYho_.js";
11
11
  import { jsx, jsxs } from "react/jsx-runtime";
12
12
  import { SearchResultsState } from "@envive-ai/react-hooks/hooks/utils";
@@ -7,11 +7,11 @@ require('../ButtonBase-DbWQ25n-.cjs');
7
7
  require('../ModalSheet-CcthFeMD.cjs');
8
8
  require('../RadioButton-DG0PgZbz.cjs');
9
9
  require('../RadioButtonGroup-3t2kqSFA.cjs');
10
- const require_SearchFilter = require('../SearchFilter-t9or-lnj.cjs');
11
- require('../ToggleButton-CJ74eu-N.cjs');
12
- const require_SettingsVariant = require('../SettingsVariant-BsBbdjV5.cjs');
13
- require('../colorsConfig-D-MZuBvt.cjs');
14
- const require_searchFilterSidebarVariants = require('../searchFilterSidebarVariants-DXabOauB.cjs');
10
+ const require_SettingsVariant = require('../SettingsVariant-BzZSQvrw.cjs');
11
+ require('../colorsConfig-CRxY3SQ_.cjs');
12
+ const require_SearchFilter = require('../SearchFilter-aSgPzPq-.cjs');
13
+ require('../ToggleButton-DCiR4sB5.cjs');
14
+ const require_searchFilterSidebarVariants = require('../searchFilterSidebarVariants-CjDvgxxT.cjs');
15
15
  let react = require("react");
16
16
  react = require_chunk.__toESM(react);
17
17
  let react_jsx_runtime = require("react/jsx-runtime");
@@ -1,2 +1,2 @@
1
- import { CloseIconVariant, SearchFilterSidebarVariant, SearchResultsFilter, SearchResultsFilterProps, searchFilterSidebarVariantClasses } from "../index-B-5pBFE7.cjs";
1
+ import { CloseIconVariant, SearchFilterSidebarVariant, SearchResultsFilter, SearchResultsFilterProps, searchFilterSidebarVariantClasses } from "../index-BQVJifDf.cjs";
2
2
  export { CloseIconVariant, SearchFilterSidebarVariant, SearchResultsFilter, SearchResultsFilterProps, searchFilterSidebarVariantClasses };
@@ -1,2 +1,2 @@
1
- import { CloseIconVariant, SearchFilterSidebarVariant, SearchResultsFilter, SearchResultsFilterProps, searchFilterSidebarVariantClasses } from "../index-BcvJf9Sr.js";
1
+ import { CloseIconVariant, SearchFilterSidebarVariant, SearchResultsFilter, SearchResultsFilterProps, searchFilterSidebarVariantClasses } from "../index-fXyRC79n.js";
2
2
  export { CloseIconVariant, SearchFilterSidebarVariant, SearchResultsFilter, SearchResultsFilterProps, searchFilterSidebarVariantClasses };
@@ -6,11 +6,11 @@ import "../ButtonBase-C_uKnl48.js";
6
6
  import "../ModalSheet-BSj_g9JF.js";
7
7
  import "../RadioButton-C_soBi7w.js";
8
8
  import "../RadioButtonGroup-DMbVgPQH.js";
9
- import { SearchFilter, SearchFilterHeader } from "../SearchFilter-BQW4o3Xf.js";
10
- import "../ToggleButton-Br6MgjiG.js";
11
- import { SettingsVariant_default } from "../SettingsVariant-CUSFlJEu.js";
12
- import "../colorsConfig-DEfiLHH0.js";
13
- import { searchFilterSidebarVariantClasses } from "../searchFilterSidebarVariants-BD4SYugF.js";
9
+ import { SettingsVariant_default } from "../SettingsVariant-DMgNg4dw.js";
10
+ import "../colorsConfig-D_IPWAUL.js";
11
+ import { SearchFilter, SearchFilterHeader } from "../SearchFilter-B0ICGnqG.js";
12
+ import "../ToggleButton-8P9eNKy1.js";
13
+ import { searchFilterSidebarVariantClasses } from "../searchFilterSidebarVariants-Clm9ddD5.js";
14
14
  import { useCallback } from "react";
15
15
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
16
16