@envive-ai/react-toolkit 0.1.10 → 0.1.12

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 (162) hide show
  1. package/dist/Accordion/index.cjs +3 -82
  2. package/dist/Accordion/index.d.cts +2 -2
  3. package/dist/Accordion/index.d.ts +2 -2
  4. package/dist/Accordion/index.js +2 -75
  5. package/dist/Accordion-Cp3Hx2zm.js +77 -0
  6. package/dist/Accordion-DBZpiQe7.cjs +88 -0
  7. package/dist/AppliedFiltersScrollbar/index.d.cts +2 -2
  8. package/dist/AppliedFiltersScrollbar/index.d.ts +2 -2
  9. package/dist/ButtonBase/index.cjs +2 -2
  10. package/dist/ButtonBase/index.d.cts +2 -2
  11. package/dist/ButtonBase/index.d.ts +2 -2
  12. package/dist/ButtonBase/index.js +2 -2
  13. package/dist/DynamicFiltersScrollbar/index.d.cts +2 -2
  14. package/dist/DynamicFiltersScrollbar/index.d.ts +2 -2
  15. package/dist/FilterScrollbar/index.cjs +1 -1
  16. package/dist/FilterScrollbar/index.d.cts +3 -3
  17. package/dist/FilterScrollbar/index.d.ts +3 -3
  18. package/dist/FilterScrollbar/index.js +1 -1
  19. package/dist/Headline/index.cjs +1 -1
  20. package/dist/Headline/index.d.cts +2 -2
  21. package/dist/Headline/index.d.ts +2 -2
  22. package/dist/Headline/index.js +1 -1
  23. package/dist/ImageWithFallback/index.d.cts +2 -2
  24. package/dist/ImageWithFallback/index.d.ts +2 -2
  25. package/dist/ModalSheet/index.cjs +3 -0
  26. package/dist/ModalSheet/index.d.cts +38 -0
  27. package/dist/ModalSheet/index.d.ts +38 -0
  28. package/dist/ModalSheet/index.js +3 -0
  29. package/dist/ModalSheet-01pxpy_K.js +326 -0
  30. package/dist/ModalSheet-Csz8HIxs.cjs +337 -0
  31. package/dist/ProductCard/index.cjs +3 -3
  32. package/dist/ProductCard/index.d.cts +1 -1
  33. package/dist/ProductCard/index.d.ts +1 -1
  34. package/dist/ProductCard/index.js +3 -3
  35. package/dist/{ProductCard-Dkkhl9pk.js → ProductCard-C3MjnfZJ.js} +3 -3
  36. package/dist/{ProductCard-CymUvJnC.cjs → ProductCard-FDyIMnZs.cjs} +5 -5
  37. package/dist/ProductGrid/index.cjs +4 -4
  38. package/dist/ProductGrid/index.d.cts +3 -3
  39. package/dist/ProductGrid/index.d.ts +3 -3
  40. package/dist/ProductGrid/index.js +4 -4
  41. package/dist/{ProductGrid-B3Ypqh7j.js → ProductGrid-C9OKsyB2.js} +1 -1
  42. package/dist/{ProductGrid-ZNRujkuN.cjs → ProductGrid-TlntVJ6h.cjs} +1 -1
  43. package/dist/RadioButton/index.cjs +6 -0
  44. package/dist/RadioButton/index.d.cts +30 -0
  45. package/dist/RadioButton/index.d.ts +30 -0
  46. package/dist/RadioButton/index.js +6 -0
  47. package/dist/RadioButton-Bf68dZl7.js +68 -0
  48. package/dist/RadioButton-DZ6QXkrN.cjs +77 -0
  49. package/dist/RadioButtonGroup/index.cjs +8 -0
  50. package/dist/RadioButtonGroup/index.d.cts +36 -0
  51. package/dist/RadioButtonGroup/index.d.ts +36 -0
  52. package/dist/RadioButtonGroup/index.js +7 -0
  53. package/dist/RadioButtonGroup-8k7hkJYB.js +37 -0
  54. package/dist/RadioButtonGroup-Dc_n5amh.cjs +51 -0
  55. package/dist/SearchAutocomplete/index.cjs +1 -1
  56. package/dist/SearchAutocomplete/index.js +1 -1
  57. package/dist/SearchFilter/index.cjs +9 -2
  58. package/dist/SearchFilter/index.d.cts +15 -9
  59. package/dist/SearchFilter/index.d.ts +15 -9
  60. package/dist/SearchFilter/index.js +9 -2
  61. package/dist/SearchFilter-CTVBi5s3.cjs +279 -0
  62. package/dist/SearchFilter-DvqBIXa1.js +258 -0
  63. package/dist/SearchInput/index.cjs +3 -3
  64. package/dist/SearchInput/index.d.cts +1 -1
  65. package/dist/SearchInput/index.d.ts +2 -2
  66. package/dist/SearchInput/index.js +3 -3
  67. package/dist/{SearchInput-BT1rrc4F.js → SearchInput-CVaCPWCE.js} +2 -2
  68. package/dist/{SearchInput-CdR_nsR3.cjs → SearchInput-vJMWoLzS.cjs} +2 -2
  69. package/dist/SearchInputForm/index.cjs +4 -4
  70. package/dist/SearchInputForm/index.d.cts +1 -1
  71. package/dist/SearchInputForm/index.d.ts +1 -1
  72. package/dist/SearchInputForm/index.js +4 -4
  73. package/dist/SearchResultsContent/index.cjs +14 -14
  74. package/dist/SearchResultsContent/index.d.cts +5 -5
  75. package/dist/SearchResultsContent/index.d.ts +5 -5
  76. package/dist/SearchResultsContent/index.js +10 -10
  77. package/dist/SearchResultsFilterSidebar/index.cjs +15 -8
  78. package/dist/SearchResultsFilterSidebar/index.d.cts +1 -1
  79. package/dist/SearchResultsFilterSidebar/index.d.ts +1 -1
  80. package/dist/SearchResultsFilterSidebar/index.js +13 -6
  81. package/dist/SearchResultsStates/index.cjs +9 -9
  82. package/dist/SearchResultsStates/index.d.cts +6 -6
  83. package/dist/SearchResultsStates/index.d.ts +6 -6
  84. package/dist/SearchResultsStates/index.js +9 -9
  85. package/dist/{SearchResultsStates-ESlrrf20.cjs → SearchResultsStates-CH4agenX.cjs} +5 -5
  86. package/dist/{SearchResultsStates-BxJphoL-.js → SearchResultsStates-iKz64Pd4.js} +5 -5
  87. package/dist/SparkleAnimation/index.cjs +1 -1
  88. package/dist/SparkleAnimation/index.d.cts +2 -2
  89. package/dist/SparkleAnimation/index.d.ts +2 -2
  90. package/dist/SparkleAnimation/index.js +1 -1
  91. package/dist/Spinner/index.cjs +1 -1
  92. package/dist/Spinner/index.d.cts +2 -2
  93. package/dist/Spinner/index.d.ts +2 -2
  94. package/dist/Spinner/index.js +1 -1
  95. package/dist/SuggestionButton/index.cjs +1 -1
  96. package/dist/SuggestionButton/index.d.cts +2 -2
  97. package/dist/SuggestionButton/index.d.ts +2 -2
  98. package/dist/SuggestionButton/index.js +1 -1
  99. package/dist/Text/index.d.cts +2 -2
  100. package/dist/Text/index.d.ts +3 -3
  101. package/dist/TextInput/index.cjs +1 -1
  102. package/dist/TextInput/index.d.ts +1 -1
  103. package/dist/TextInput/index.js +1 -1
  104. package/dist/ToggleButton/index.cjs +6 -0
  105. package/dist/ToggleButton/index.d.cts +30 -0
  106. package/dist/ToggleButton/index.d.ts +30 -0
  107. package/dist/ToggleButton/index.js +6 -0
  108. package/dist/ToggleButton-CK_vkMvt.cjs +68 -0
  109. package/dist/ToggleButton-GIVd2-Z4.js +60 -0
  110. package/dist/{index-DV2K-9lE.d.cts → index-B8l3muO3.d.ts} +5 -5
  111. package/dist/{index-agU5rfIs.d.ts → index-BMt66uqr.d.cts} +5 -5
  112. package/dist/{index-b4yAASuy.d.cts → index-CFH3KUVw.d.cts} +4 -4
  113. package/dist/{index-uU3sIiRx.d.ts → index-H_9LhS_1.d.cts} +2 -2
  114. package/dist/{index-DggZTKvc.d.ts → index-Vck3pox6.d.ts} +4 -4
  115. package/dist/{index-Bpjv4lP2.d.cts → index-h-QwQNnu.d.ts} +2 -2
  116. package/dist/{searchFilterSidebarVariants-BnIcOVWR.js → searchFilterSidebarVariants-CI782ylo.js} +1 -1
  117. package/dist/{searchFilterSidebarVariants-DVZ7wRlb.cjs → searchFilterSidebarVariants-DFfOTqjc.cjs} +1 -1
  118. package/package.json +20 -3
  119. package/src/components/AnimatedChevron/AnimatedChevron.tsx +37 -0
  120. package/src/components/ModalSheet/ModalSheet.tsx +42 -0
  121. package/src/components/ModalSheet/common/closeIcon.tsx +40 -0
  122. package/src/components/ModalSheet/desktop/desktopHeader.tsx +24 -0
  123. package/src/components/ModalSheet/desktop/index.tsx +119 -0
  124. package/src/components/ModalSheet/index.ts +1 -0
  125. package/src/components/ModalSheet/mobile/index.tsx +118 -0
  126. package/src/components/ModalSheet/mobile/mobileHeader.tsx +42 -0
  127. package/src/components/ModalSheet/types.ts +33 -0
  128. package/src/components/ProductCard/ProductCard.tsx +1 -1
  129. package/src/components/RadioButton/RadioButton.tsx +88 -0
  130. package/src/components/RadioButton/index.ts +1 -0
  131. package/src/components/RadioButtonGroup/RadioButtonGroup.tsx +72 -0
  132. package/src/components/RadioButtonGroup/index.ts +1 -0
  133. package/src/components/SearchFilter/SearchFilter.tsx +161 -64
  134. package/src/components/SearchFilter/SearchFilterFooter.tsx +55 -0
  135. package/src/components/SearchFilter/types.ts +2 -1
  136. package/src/components/SearchFilter/useHasFilterStateChanged.tsx +40 -0
  137. package/src/components/SearchFilter/utils.ts +15 -0
  138. package/src/components/SearchResultsContent/SearchResultsContent.tsx +1 -1
  139. package/src/components/SearchResultsFilterSidebar/SearchResultsFilter.tsx +2 -2
  140. package/src/components/ToggleButton/ToggleButton.tsx +98 -0
  141. package/src/components/ToggleButton/index.ts +1 -0
  142. package/dist/SearchFilter-CLYCSNAa.cjs +0 -137
  143. package/dist/SearchFilter-qQPpx-34.js +0 -117
  144. /package/dist/{ButtonBase-C_uKnl48.js → ButtonBase-0NN6wmX-.js} +0 -0
  145. /package/dist/{ButtonBase-DGbSm0SJ.js → ButtonBase-BAf-nlCm.js} +0 -0
  146. /package/dist/{ButtonBase-DbWQ25n-.cjs → ButtonBase-BIXx56hq.cjs} +0 -0
  147. /package/dist/{ButtonBase-DGpQBeLR.cjs → ButtonBase-Do88ndKa.cjs} +0 -0
  148. /package/dist/{DynamicFiltersScrollbar-Dev5vGsW.js → DynamicFiltersScrollbar-C4kdNSJ9.js} +0 -0
  149. /package/dist/{DynamicFiltersScrollbar-ChvmEiPB.cjs → DynamicFiltersScrollbar-CVw1PINp.cjs} +0 -0
  150. /package/dist/{Headline-DTaT30_m.js → Headline-DNEWF8ly.js} +0 -0
  151. /package/dist/{Headline-DSmu5Mg8.cjs → Headline-DTT4RSv2.cjs} +0 -0
  152. /package/dist/{SearchAutocomplete-C4RY0IoT.js → SearchAutocomplete-BlpII8Xs.js} +0 -0
  153. /package/dist/{SearchAutocomplete-hQDnKtwQ.cjs → SearchAutocomplete-DIEhLT4C.cjs} +0 -0
  154. /package/dist/{SparkleAnimation-fQHP7b-R.js → SparkleAnimation-BLfNojLv.js} +0 -0
  155. /package/dist/{SparkleAnimation-BY5iw7s0.cjs → SparkleAnimation-qi5WCJ9B.cjs} +0 -0
  156. /package/dist/{Spinner-BqTt55uu.js → Spinner-CjGLIRgs.js} +0 -0
  157. /package/dist/{Spinner-DjK8ts9E.cjs → Spinner-DFor2Szi.cjs} +0 -0
  158. /package/dist/{TextInput-BJrdkZsM.cjs → TextInput-B3dTeD3q.cjs} +0 -0
  159. /package/dist/{TextInput-DIjjsSMg.js → TextInput-DoM41M53.js} +0 -0
  160. /package/dist/{colorsConfig-CJTKbJsm.cjs → colorsConfig-D-MZuBvt.cjs} +0 -0
  161. /package/dist/{colorsConfig-CYZ8f_gj.js → colorsConfig-DEfiLHH0.js} +0 -0
  162. /package/dist/{textVariantClasses-ypYGLq0h.d.ts → textVariantClasses-kyZtL8F5.d.ts} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { HeadlineVariantMap, TextStyleVariantMap, TextVariantMap, getVariantPlaceholderClassNames } from "../textVariantClasses-B0gNjzl4.cjs";
2
- import * as react_jsx_runtime14 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime21 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/Text/types.d.ts
5
5
  declare enum ExpandableTextOverrides {
@@ -37,6 +37,6 @@ declare const Text: ({
37
37
  testId,
38
38
  type,
39
39
  variant
40
- }: TextProps) => react_jsx_runtime14.JSX.Element;
40
+ }: TextProps) => react_jsx_runtime21.JSX.Element;
41
41
  //#endregion
42
42
  export { ExpandableTextOverrides, HeadlineProps, HeadlineVariant, HeadlineVariantMap, Text, TextStyleVariantMap, TextType, TextVariant, TextVariantMap, getVariantPlaceholderClassNames };
@@ -1,5 +1,5 @@
1
- import { HeadlineVariantMap, TextStyleVariantMap, TextVariantMap, getVariantPlaceholderClassNames } from "../textVariantClasses-ypYGLq0h.js";
2
- import * as react_jsx_runtime11 from "react/jsx-runtime";
1
+ import { HeadlineVariantMap, TextStyleVariantMap, TextVariantMap, getVariantPlaceholderClassNames } from "../textVariantClasses-kyZtL8F5.js";
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/Text/types.d.ts
5
5
  declare enum ExpandableTextOverrides {
@@ -37,6 +37,6 @@ declare const Text: ({
37
37
  testId,
38
38
  type,
39
39
  variant
40
- }: TextProps) => react_jsx_runtime11.JSX.Element;
40
+ }: TextProps) => react_jsx_runtime0.JSX.Element;
41
41
  //#endregion
42
42
  export { ExpandableTextOverrides, HeadlineProps, HeadlineVariant, HeadlineVariantMap, Text, TextStyleVariantMap, TextType, TextVariant, TextVariantMap, getVariantPlaceholderClassNames };
@@ -1,4 +1,4 @@
1
1
  require('../textVariantClasses-Dgz7Zaql.cjs');
2
- const require_TextInput = require('../TextInput-BJrdkZsM.cjs');
2
+ const require_TextInput = require('../TextInput-B3dTeD3q.cjs');
3
3
 
4
4
  exports.TextInput = require_TextInput.TextInput;
@@ -1,4 +1,4 @@
1
- import { TextStyleVariantMap } from "../textVariantClasses-ypYGLq0h.js";
1
+ import { TextStyleVariantMap } from "../textVariantClasses-kyZtL8F5.js";
2
2
  import React from "react";
3
3
 
4
4
  //#region src/components/TextInput/TextInput.d.ts
@@ -1,4 +1,4 @@
1
1
  import "../textVariantClasses-D77TGEy1.js";
2
- import { TextInput } from "../TextInput-DIjjsSMg.js";
2
+ import { TextInput } from "../TextInput-DoM41M53.js";
3
3
 
4
4
  export { TextInput };
@@ -0,0 +1,6 @@
1
+ require('../textVariantClasses-Dgz7Zaql.cjs');
2
+ require('../Text-MQjxqgZZ.cjs');
3
+ require('../Text-C8t_iEj6.cjs');
4
+ const require_ToggleButton = require('../ToggleButton-CK_vkMvt.cjs');
5
+
6
+ exports.ToggleButton = require_ToggleButton.ToggleButton;
@@ -0,0 +1,30 @@
1
+ import * as react_jsx_runtime27 from "react/jsx-runtime";
2
+
3
+ //#region src/components/ToggleButton/ToggleButton.d.ts
4
+ type ToggleButtonProps = {
5
+ isSelected: boolean;
6
+ variant: ToggleButtonVariant;
7
+ onClick: () => void;
8
+ label: string;
9
+ buttonClassName?: string;
10
+ labelClassName?: string;
11
+ secondaryLabel?: string;
12
+ secondaryLabelClassName?: string;
13
+ icon?: React.ReactNode;
14
+ iconClassName?: string;
15
+ };
16
+ type ToggleButtonVariant = 'default';
17
+ declare const ToggleButton: ({
18
+ isSelected,
19
+ onClick,
20
+ label,
21
+ buttonClassName,
22
+ labelClassName,
23
+ secondaryLabel,
24
+ secondaryLabelClassName,
25
+ icon,
26
+ iconClassName,
27
+ variant
28
+ }: ToggleButtonProps) => react_jsx_runtime27.JSX.Element;
29
+ //#endregion
30
+ export { ToggleButton, ToggleButtonProps, ToggleButtonVariant };
@@ -0,0 +1,30 @@
1
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+
3
+ //#region src/components/ToggleButton/ToggleButton.d.ts
4
+ type ToggleButtonProps = {
5
+ isSelected: boolean;
6
+ variant: ToggleButtonVariant;
7
+ onClick: () => void;
8
+ label: string;
9
+ buttonClassName?: string;
10
+ labelClassName?: string;
11
+ secondaryLabel?: string;
12
+ secondaryLabelClassName?: string;
13
+ icon?: React.ReactNode;
14
+ iconClassName?: string;
15
+ };
16
+ type ToggleButtonVariant = 'default';
17
+ declare const ToggleButton: ({
18
+ isSelected,
19
+ onClick,
20
+ label,
21
+ buttonClassName,
22
+ labelClassName,
23
+ secondaryLabel,
24
+ secondaryLabelClassName,
25
+ icon,
26
+ iconClassName,
27
+ variant
28
+ }: ToggleButtonProps) => react_jsx_runtime0.JSX.Element;
29
+ //#endregion
30
+ export { ToggleButton, ToggleButtonProps, ToggleButtonVariant };
@@ -0,0 +1,6 @@
1
+ import "../textVariantClasses-D77TGEy1.js";
2
+ import "../Text-Bod4OMPk.js";
3
+ import "../Text-BMsncrpY.js";
4
+ import { ToggleButton } from "../ToggleButton-GIVd2-Z4.js";
5
+
6
+ export { ToggleButton };
@@ -0,0 +1,68 @@
1
+ const require_chunk = require('./chunk-CUT6urMc.cjs');
2
+ const require_Text = require('./Text-MQjxqgZZ.cjs');
3
+ let classnames = require("classnames");
4
+ classnames = require_chunk.__toESM(classnames);
5
+ let react_jsx_runtime = require("react/jsx-runtime");
6
+ react_jsx_runtime = require_chunk.__toESM(react_jsx_runtime);
7
+
8
+ //#region src/components/ToggleButton/ToggleButton.tsx
9
+ const toggleButtonVariants = { default: {
10
+ button: ({ isSelected }) => (0, classnames.default)({
11
+ "spiffy-tw-bg-[--spiffy-colors-background-dark]": isSelected,
12
+ "spiffy-tw-border-[--spiffy-colors-background-dark]": isSelected,
13
+ "spiffy-tw-text-[--spiffy-colors-text-light]": isSelected,
14
+ "hover:spiffy-tw-bg-[--spiffy-colors-background-secondary-dark]": true,
15
+ "hover:spiffy-tw-text-[--spiffy-colors-text-primary]": isSelected,
16
+ "spiffy-tw-bg-[--spiffy-colors-background-light]": !isSelected,
17
+ "spiffy-tw-border-[--spiffy-colors-border-light]": !isSelected,
18
+ "spiffy-tw-text-[--spiffy-colors-text-primary]": !isSelected
19
+ }),
20
+ label: () => "",
21
+ secondaryLabel: ({ isSelected }) => (0, classnames.default)({
22
+ "spiffy-tw-text-[--spiffy-colors-text-secondary]": !isSelected,
23
+ "hover:spiffy-tw-text-[--spiffy-colors-text-secondary]": !isSelected
24
+ })
25
+ } };
26
+ const ToggleButton = ({ isSelected, onClick, label, buttonClassName, labelClassName, secondaryLabel, secondaryLabelClassName, icon, iconClassName, variant }) => {
27
+ const buttonClassNames = (0, classnames.default)({
28
+ "spiffy-tw-flex": true,
29
+ "spiffy-tw-items-center": true,
30
+ "spiffy-tw-gap-[4px]": true,
31
+ "spiffy-tw-cursor-pointer": true,
32
+ "spiffy-tw-py-[8px]": true,
33
+ "spiffy-tw-px-[12px]": true,
34
+ "spiffy-tw-rounded-[200px]": true,
35
+ "spiffy-tw-border": true
36
+ }, toggleButtonVariants?.[variant]?.button({ isSelected }), buttonClassName);
37
+ const labelClassNames = (0, classnames.default)({}, toggleButtonVariants?.[variant]?.label({ isSelected }), labelClassName);
38
+ const secondaryLabelClassNames = (0, classnames.default)({}, toggleButtonVariants?.[variant]?.secondaryLabel({ isSelected }), secondaryLabelClassName);
39
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
40
+ className: buttonClassNames,
41
+ onClick,
42
+ type: "button",
43
+ children: [
44
+ icon && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
45
+ className: iconClassName,
46
+ children: icon
47
+ }),
48
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Text.Text, {
49
+ variant: "body3",
50
+ className: labelClassNames,
51
+ children: label
52
+ }),
53
+ secondaryLabel && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Text.Text, {
54
+ variant: "body4",
55
+ className: secondaryLabelClassNames,
56
+ children: secondaryLabel
57
+ })
58
+ ]
59
+ });
60
+ };
61
+
62
+ //#endregion
63
+ Object.defineProperty(exports, 'ToggleButton', {
64
+ enumerable: true,
65
+ get: function () {
66
+ return ToggleButton;
67
+ }
68
+ });
@@ -0,0 +1,60 @@
1
+ import { Text } from "./Text-Bod4OMPk.js";
2
+ import classNames from "classnames";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+
5
+ //#region src/components/ToggleButton/ToggleButton.tsx
6
+ const toggleButtonVariants = { default: {
7
+ button: ({ isSelected }) => classNames({
8
+ "spiffy-tw-bg-[--spiffy-colors-background-dark]": isSelected,
9
+ "spiffy-tw-border-[--spiffy-colors-background-dark]": isSelected,
10
+ "spiffy-tw-text-[--spiffy-colors-text-light]": isSelected,
11
+ "hover:spiffy-tw-bg-[--spiffy-colors-background-secondary-dark]": true,
12
+ "hover:spiffy-tw-text-[--spiffy-colors-text-primary]": isSelected,
13
+ "spiffy-tw-bg-[--spiffy-colors-background-light]": !isSelected,
14
+ "spiffy-tw-border-[--spiffy-colors-border-light]": !isSelected,
15
+ "spiffy-tw-text-[--spiffy-colors-text-primary]": !isSelected
16
+ }),
17
+ label: () => "",
18
+ secondaryLabel: ({ isSelected }) => classNames({
19
+ "spiffy-tw-text-[--spiffy-colors-text-secondary]": !isSelected,
20
+ "hover:spiffy-tw-text-[--spiffy-colors-text-secondary]": !isSelected
21
+ })
22
+ } };
23
+ const ToggleButton = ({ isSelected, onClick, label, buttonClassName, labelClassName, secondaryLabel, secondaryLabelClassName, icon, iconClassName, variant }) => {
24
+ const buttonClassNames = classNames({
25
+ "spiffy-tw-flex": true,
26
+ "spiffy-tw-items-center": true,
27
+ "spiffy-tw-gap-[4px]": true,
28
+ "spiffy-tw-cursor-pointer": true,
29
+ "spiffy-tw-py-[8px]": true,
30
+ "spiffy-tw-px-[12px]": true,
31
+ "spiffy-tw-rounded-[200px]": true,
32
+ "spiffy-tw-border": true
33
+ }, toggleButtonVariants?.[variant]?.button({ isSelected }), buttonClassName);
34
+ const labelClassNames = classNames({}, toggleButtonVariants?.[variant]?.label({ isSelected }), labelClassName);
35
+ const secondaryLabelClassNames = classNames({}, toggleButtonVariants?.[variant]?.secondaryLabel({ isSelected }), secondaryLabelClassName);
36
+ return /* @__PURE__ */ jsxs("button", {
37
+ className: buttonClassNames,
38
+ onClick,
39
+ type: "button",
40
+ children: [
41
+ icon && /* @__PURE__ */ jsx("div", {
42
+ className: iconClassName,
43
+ children: icon
44
+ }),
45
+ /* @__PURE__ */ jsx(Text, {
46
+ variant: "body3",
47
+ className: labelClassNames,
48
+ children: label
49
+ }),
50
+ secondaryLabel && /* @__PURE__ */ jsx(Text, {
51
+ variant: "body4",
52
+ className: secondaryLabelClassNames,
53
+ children: secondaryLabel
54
+ })
55
+ ]
56
+ });
57
+ };
58
+
59
+ //#endregion
60
+ export { ToggleButton };
@@ -1,9 +1,9 @@
1
- import * as react_jsx_runtime23 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
5
5
  type SearchFilterSidebarVariant = 'darkButton' | 'lightButton';
6
- type CloseIconVariant = 'light' | 'tertiary' | 'dark';
6
+ type CloseIconVariant$1 = 'light' | 'tertiary' | 'dark';
7
7
  //#endregion
8
8
  //#region src/components/SearchResultsFilterSidebar/searchFilterSidebarVariants.d.ts
9
9
  interface SearchFilterSidebarVariantClasses {
@@ -17,7 +17,7 @@ interface SearchFilterSidebarVariantClasses {
17
17
  appliedFilterBackgroundClasses: string;
18
18
  applyFiltersUnchangedClasses: string;
19
19
  applyFiltersChangedClasses: string;
20
- filterCloseIconVariant: CloseIconVariant;
20
+ filterCloseIconVariant: CloseIconVariant$1;
21
21
  }
22
22
  declare const searchFilterSidebarVariantClasses: Record<SearchFilterSidebarVariant, SearchFilterSidebarVariantClasses>;
23
23
  //#endregion
@@ -42,6 +42,6 @@ declare const SearchResultsFilter: ({
42
42
  onSelectFilterItem,
43
43
  onClearAllFilters,
44
44
  filterButtonText
45
- }: SearchResultsFilterProps) => react_jsx_runtime23.JSX.Element;
45
+ }: SearchResultsFilterProps) => react_jsx_runtime5.JSX.Element;
46
46
  //#endregion
47
- export { CloseIconVariant, SearchFilterSidebarVariant, SearchResultsFilter, SearchResultsFilterProps, searchFilterSidebarVariantClasses };
47
+ export { CloseIconVariant$1 as CloseIconVariant, SearchFilterSidebarVariant, SearchResultsFilter, SearchResultsFilterProps, searchFilterSidebarVariantClasses };
@@ -1,9 +1,9 @@
1
- import * as react_jsx_runtime14 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime10 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
5
5
  type SearchFilterSidebarVariant = 'darkButton' | 'lightButton';
6
- type CloseIconVariant = 'light' | 'tertiary' | 'dark';
6
+ type CloseIconVariant$1 = 'light' | 'tertiary' | 'dark';
7
7
  //#endregion
8
8
  //#region src/components/SearchResultsFilterSidebar/searchFilterSidebarVariants.d.ts
9
9
  interface SearchFilterSidebarVariantClasses {
@@ -17,7 +17,7 @@ interface SearchFilterSidebarVariantClasses {
17
17
  appliedFilterBackgroundClasses: string;
18
18
  applyFiltersUnchangedClasses: string;
19
19
  applyFiltersChangedClasses: string;
20
- filterCloseIconVariant: CloseIconVariant;
20
+ filterCloseIconVariant: CloseIconVariant$1;
21
21
  }
22
22
  declare const searchFilterSidebarVariantClasses: Record<SearchFilterSidebarVariant, SearchFilterSidebarVariantClasses>;
23
23
  //#endregion
@@ -42,6 +42,6 @@ declare const SearchResultsFilter: ({
42
42
  onSelectFilterItem,
43
43
  onClearAllFilters,
44
44
  filterButtonText
45
- }: SearchResultsFilterProps) => react_jsx_runtime14.JSX.Element;
45
+ }: SearchResultsFilterProps) => react_jsx_runtime10.JSX.Element;
46
46
  //#endregion
47
- export { CloseIconVariant, SearchFilterSidebarVariant, SearchResultsFilter, SearchResultsFilterProps, searchFilterSidebarVariantClasses };
47
+ export { CloseIconVariant$1 as CloseIconVariant, SearchFilterSidebarVariant, SearchResultsFilter, SearchResultsFilterProps, searchFilterSidebarVariantClasses };
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime18 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime6 from "react/jsx-runtime";
2
2
  import { TestProps } from "@envive-ai/react-hooks/types";
3
3
  import { FC } from "react";
4
4
  import { ResponseCategory, SearchResponseProduct } from "@spiffy-ai/commerce-api-client";
@@ -261,7 +261,7 @@ declare const RatingSummary: ({
261
261
  stars,
262
262
  reviewCount,
263
263
  className
264
- }: RatingSummaryProps) => react_jsx_runtime18.JSX.Element;
264
+ }: RatingSummaryProps) => react_jsx_runtime6.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_runtime18.JSX.Element;
274
+ }: PriceSectionProps) => react_jsx_runtime6.JSX.Element;
275
275
  interface ProductCardProps extends TestProps {
276
276
  productCardConfig?: ProductCardConfig;
277
277
  merchantShortName: string;
@@ -312,7 +312,7 @@ declare const ProductCard: ({
312
312
  aspectRatio,
313
313
  growWithContainer,
314
314
  handleClick
315
- }: ProductCardProps) => react_jsx_runtime18.JSX.Element;
315
+ }: ProductCardProps) => react_jsx_runtime6.JSX.Element;
316
316
  //#endregion
317
317
  //#region src/components/ProductCard/ProductCardSkeleton.d.ts
318
318
  declare const ProductCardSkeleton: FC<ProductCardSkeletonProps>;
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime15 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime11 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/components/SearchInputForm/types.d.ts
4
4
  type SearchInputVariant = 'standard';
@@ -31,6 +31,6 @@ declare const SearchInputForm: ({
31
31
  onSearchInputChange,
32
32
  onSearchSubmit,
33
33
  searchInputDataTestId
34
- }: SearchInputFormProps) => react_jsx_runtime15.JSX.Element;
34
+ }: SearchInputFormProps) => react_jsx_runtime11.JSX.Element;
35
35
  //#endregion
36
36
  export { SearchInputForm, SearchInputVariant };
@@ -1,5 +1,5 @@
1
1
  import { FC } from "react";
2
- import * as react_jsx_runtime21 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime16 from "react/jsx-runtime";
3
3
  import { TestProps } from "@envive-ai/react-hooks/types";
4
4
  import { ResponseCategory, SearchResponseProduct } from "@spiffy-ai/commerce-api-client";
5
5
 
@@ -261,7 +261,7 @@ declare const RatingSummary: ({
261
261
  stars,
262
262
  reviewCount,
263
263
  className
264
- }: RatingSummaryProps) => react_jsx_runtime21.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_runtime21.JSX.Element;
274
+ }: PriceSectionProps) => react_jsx_runtime16.JSX.Element;
275
275
  interface ProductCardProps extends TestProps {
276
276
  productCardConfig?: ProductCardConfig;
277
277
  merchantShortName: string;
@@ -312,7 +312,7 @@ declare const ProductCard: ({
312
312
  aspectRatio,
313
313
  growWithContainer,
314
314
  handleClick
315
- }: ProductCardProps) => react_jsx_runtime21.JSX.Element;
315
+ }: ProductCardProps) => react_jsx_runtime16.JSX.Element;
316
316
  //#endregion
317
317
  //#region src/components/ProductCard/ProductCardSkeleton.d.ts
318
318
  declare const ProductCardSkeleton: FC<ProductCardSkeletonProps>;
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime2 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime14 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/components/SearchInputForm/types.d.ts
4
4
  type SearchInputVariant = 'standard';
@@ -31,6 +31,6 @@ declare const SearchInputForm: ({
31
31
  onSearchInputChange,
32
32
  onSearchSubmit,
33
33
  searchInputDataTestId
34
- }: SearchInputFormProps) => react_jsx_runtime2.JSX.Element;
34
+ }: SearchInputFormProps) => react_jsx_runtime14.JSX.Element;
35
35
  //#endregion
36
36
  export { SearchInputForm, SearchInputVariant };
@@ -1,4 +1,4 @@
1
- import { ColorNames, colorVar } from "./colorsConfig-CYZ8f_gj.js";
1
+ import { ColorNames, colorVar } from "./colorsConfig-DEfiLHH0.js";
2
2
 
3
3
  //#region src/components/SearchResultsFilterSidebar/searchFilterSidebarVariants.ts
4
4
  const searchFilterSidebarVariantClasses = {
@@ -1,4 +1,4 @@
1
- const require_colorsConfig = require('./colorsConfig-CJTKbJsm.cjs');
1
+ const require_colorsConfig = require('./colorsConfig-D-MZuBvt.cjs');
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.1.10",
3
+ "version": "0.1.12",
4
4
  "description": "React component library for Envive services.",
5
5
  "keywords": [
6
6
  "react",
@@ -23,11 +23,12 @@
23
23
  "scripts": {
24
24
  "build": "tsdown",
25
25
  "build:watch": "tsdown --watch",
26
- "prepublish": "npm run build"
26
+ "prepublish": "npm run build",
27
+ "typecheck": "tsc"
27
28
  },
28
29
  "dependencies": {
29
- "@envive-ai/react-hooks": "^0.1.5",
30
30
  "@envive-ai/react-icons": "0.1.1",
31
+ "@envive-ai/react-hooks": "^0.1.8",
31
32
  "@tailwindcss/typography": "^0.5.15",
32
33
  "classnames": "^2.5.1",
33
34
  "framer-motion": "^12.23.12",
@@ -75,6 +76,10 @@
75
76
  "import": "./dist/ImageWithFallback/index.js",
76
77
  "require": "./dist/ImageWithFallback/index.cjs"
77
78
  },
79
+ "./ModalSheet": {
80
+ "import": "./dist/ModalSheet/index.js",
81
+ "require": "./dist/ModalSheet/index.cjs"
82
+ },
78
83
  "./ProductCard": {
79
84
  "import": "./dist/ProductCard/index.js",
80
85
  "require": "./dist/ProductCard/index.cjs"
@@ -83,6 +88,14 @@
83
88
  "import": "./dist/ProductGrid/index.js",
84
89
  "require": "./dist/ProductGrid/index.cjs"
85
90
  },
91
+ "./RadioButton": {
92
+ "import": "./dist/RadioButton/index.js",
93
+ "require": "./dist/RadioButton/index.cjs"
94
+ },
95
+ "./RadioButtonGroup": {
96
+ "import": "./dist/RadioButtonGroup/index.js",
97
+ "require": "./dist/RadioButtonGroup/index.cjs"
98
+ },
86
99
  "./SearchAutocomplete": {
87
100
  "import": "./dist/SearchAutocomplete/index.js",
88
101
  "require": "./dist/SearchAutocomplete/index.cjs"
@@ -135,6 +148,10 @@
135
148
  "import": "./dist/TextInput/index.js",
136
149
  "require": "./dist/TextInput/index.cjs"
137
150
  },
151
+ "./ToggleButton": {
152
+ "import": "./dist/ToggleButton/index.js",
153
+ "require": "./dist/ToggleButton/index.cjs"
154
+ },
138
155
  "./package.json": "./package.json"
139
156
  }
140
157
  }
@@ -0,0 +1,37 @@
1
+ import { MotionValue, motion, useTransform } from 'framer-motion';
2
+ import { FC } from 'react';
3
+
4
+ interface AnimatedChevronProps {
5
+ animationKey: MotionValue;
6
+ chevronColor: string;
7
+ }
8
+
9
+ export const AnimatedChevron: FC<AnimatedChevronProps> = ({ animationKey, chevronColor }) => {
10
+ const leftRotation = useTransform(animationKey, [300, 0], [-12, 0]);
11
+ const rightRotation = useTransform(animationKey, [300, 0], [12, 0]);
12
+
13
+ return (
14
+ <div style={{ display: 'flex' }}>
15
+ <motion.div
16
+ style={{
17
+ x: 1,
18
+ width: '25px',
19
+ height: '4px',
20
+ background: chevronColor,
21
+ borderRadius: '8px',
22
+ rotate: leftRotation,
23
+ }}
24
+ />
25
+ <motion.div
26
+ style={{
27
+ x: -1,
28
+ width: '25px',
29
+ height: '4px',
30
+ background: chevronColor,
31
+ borderRadius: '8px',
32
+ rotate: rightRotation,
33
+ }}
34
+ />
35
+ </div>
36
+ );
37
+ };
@@ -0,0 +1,42 @@
1
+ import { ModalSheetMobile } from './mobile';
2
+ import { ModalSheetDesktop } from './desktop';
3
+ import { ModalSheetProps } from './types';
4
+ import { useIsSmallScreen } from '@envive-ai/react-hooks/hooks/IsSmallScreen';
5
+
6
+ const ANIMATION_DURATION = 0.3;
7
+
8
+ export const ModalSheet = ({
9
+ children,
10
+ isOpen,
11
+ closeModal,
12
+ animationDuration = ANIMATION_DURATION,
13
+ desktopWidth = 512,
14
+ headerProps,
15
+ footerProps,
16
+ }: ModalSheetProps) => {
17
+ const isSmallScreen = useIsSmallScreen();
18
+
19
+ return isSmallScreen ? (
20
+ <ModalSheetMobile
21
+ isOpen={isOpen}
22
+ closeModal={closeModal}
23
+ desktopWidth={desktopWidth}
24
+ animationDuration={animationDuration}
25
+ headerProps={headerProps}
26
+ footerProps={footerProps}
27
+ >
28
+ {children}
29
+ </ModalSheetMobile>
30
+ ) : (
31
+ <ModalSheetDesktop
32
+ isOpen={isOpen}
33
+ closeModal={closeModal}
34
+ desktopWidth={desktopWidth}
35
+ animationDuration={animationDuration}
36
+ headerProps={headerProps}
37
+ footerProps={footerProps}
38
+ >
39
+ {children}
40
+ </ModalSheetDesktop>
41
+ );
42
+ };
@@ -0,0 +1,40 @@
1
+ import { useMemo } from 'react';
2
+ import classNames from 'classnames';
3
+ import { GrFormClose } from 'react-icons/gr';
4
+ import { IconContext } from 'react-icons/lib';
5
+ import { ModalSheetCloseIconProps } from '../types';
6
+
7
+ const closeIconVariantMapping = {
8
+ light: {
9
+ 'spiffy-tw-bg-[--spiffy-colors-background-light]': true,
10
+ 'spiffy-tw-text-[--spiffy-colors-text-primary]': true,
11
+ },
12
+ dark: {
13
+ 'spiffy-tw-bg-[--spiffy-colors-background-dark]': true,
14
+ 'spiffy-tw-text-[--spiffy-colors-background-primary]': true,
15
+ },
16
+ tertiary: {
17
+ 'spiffy-tw-text-[--spiffy-colors-background-primary]': true,
18
+ 'spiffy-tw-bg-[--spiffy-colors-background-tertiary]': true,
19
+ },
20
+ };
21
+
22
+ export const ModalSheetCloseIcon = ({
23
+ closeIconVariant = 'tertiary',
24
+ closeIcon = <GrFormClose />,
25
+ iconSize = '20px',
26
+ closeModal,
27
+ }: ModalSheetCloseIconProps) => {
28
+ const closeIconClassNames = classNames({
29
+ 'spiffy-modal-sheet-close-icon': true,
30
+ 'spiffy-tw-rounded-[99px]': true,
31
+ ...closeIconVariantMapping[closeIconVariant],
32
+ });
33
+
34
+ const closeIconContextValue = useMemo(() => ({ size: iconSize }), [iconSize]);
35
+ return (
36
+ <div className={closeIconClassNames} onClick={closeModal}>
37
+ <IconContext.Provider value={closeIconContextValue}>{closeIcon}</IconContext.Provider>
38
+ </div>
39
+ );
40
+ };
@@ -0,0 +1,24 @@
1
+ import classNames from 'classnames';
2
+ import { ModalSheetHeaderProps } from '../types';
3
+
4
+ const modalSheetVariants = {
5
+ primary: {
6
+ 'spiffy-tw-bg-[--spiffy-colors-background-primary]': true,
7
+ 'spiffy-tw-text-[--spiffy-colors-text-light]': true,
8
+ },
9
+ };
10
+
11
+ export const ModalSheetDesktopHeader = ({
12
+ headerVariant = 'primary',
13
+ headerContent,
14
+ }: ModalSheetHeaderProps) => {
15
+ const headerStyles = classNames({
16
+ 'spiffy-modal-sheet-header': true,
17
+ 'spiffy-tw-flex': true,
18
+ 'spiffy-tw-items-center': true,
19
+ 'spiffy-tw-justify-between': true,
20
+ 'spiffy-tw-w-full': true,
21
+ ...modalSheetVariants[headerVariant],
22
+ });
23
+ return <div className={headerStyles}>{headerContent}</div>;
24
+ };