@envive-ai/react-toolkit 0.2.13-arthur-1 → 0.2.14
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.
- package/dist/{chunk-CUT6urMc.cjs → _virtual/rolldown_runtime.cjs} +11 -12
- package/dist/{types--eyQnaEA.d.cts → atoms/search/types.d.cts} +1 -1
- package/dist/{types-D6fl4HOx.d.ts → atoms/search/types.d.ts} +1 -1
- package/dist/{Accordion-DPUaEXiE.cjs → components/Accordion/Accordion.cjs} +8 -30
- package/dist/components/Accordion/{index-D_7-KJa0.d.cts → Accordion.d.cts} +2 -2
- package/dist/components/Accordion/{index-Dd_9XeqA.d.ts → Accordion.d.ts} +2 -2
- package/dist/{Accordion-8zFBEEaN.js → components/Accordion/Accordion.js} +5 -23
- package/dist/components/Accordion/index.cjs +1 -3
- package/dist/components/Accordion/index.d.cts +2 -0
- package/dist/components/Accordion/index.d.ts +2 -0
- package/dist/components/Accordion/index.js +1 -3
- package/dist/{AnimatedChevron-CPW5KPLr.cjs → components/AnimatedChevron/AnimatedChevron.cjs} +2 -7
- package/dist/components/AnimatedChevron/{index-BwQ6tJL8.d.cts → AnimatedChevron.d.cts} +2 -2
- package/dist/components/AnimatedChevron/{index-DZdGWikh.d.ts → AnimatedChevron.d.ts} +2 -2
- package/dist/{AnimatedChevron-DO_jcnJg.js → components/AnimatedChevron/AnimatedChevron.js} +1 -1
- package/dist/components/AnimatedChevron/index.cjs +1 -1
- package/dist/components/AnimatedChevron/index.d.cts +2 -0
- package/dist/components/AnimatedChevron/index.d.ts +2 -0
- package/dist/components/AnimatedChevron/index.js +1 -1
- package/dist/components/AppliedFiltersScrollbar/AppliedFiltersScrollbar.cjs +45 -0
- package/dist/components/AppliedFiltersScrollbar/AppliedFiltersScrollbar.d.cts +22 -0
- package/dist/components/AppliedFiltersScrollbar/AppliedFiltersScrollbar.d.ts +22 -0
- package/dist/components/AppliedFiltersScrollbar/AppliedFiltersScrollbar.js +42 -0
- package/dist/components/AppliedFiltersScrollbar/index.cjs +2 -43
- package/dist/components/AppliedFiltersScrollbar/index.d.cts +2 -0
- package/dist/components/AppliedFiltersScrollbar/index.d.ts +2 -0
- package/dist/components/AppliedFiltersScrollbar/index.js +1 -39
- package/dist/{ButtonBase-C44g6llb.cjs → components/ButtonBase/ButtonBase.cjs} +12 -29
- package/dist/components/ButtonBase/ButtonBase.d.cts +18 -0
- package/dist/components/ButtonBase/ButtonBase.d.ts +18 -0
- package/dist/{ButtonBase-Cjo-fBg2.js → components/ButtonBase/ButtonBase.js} +8 -14
- package/dist/components/ButtonBase/index.cjs +3 -4
- package/dist/components/ButtonBase/index.d.cts +3 -0
- package/dist/components/ButtonBase/index.d.ts +3 -0
- package/dist/components/ButtonBase/index.js +2 -3
- package/dist/components/ButtonBase/types.cjs +11 -0
- package/dist/components/ButtonBase/{index-Bxdhf_O8.d.cts → types.d.cts} +4 -19
- package/dist/components/ButtonBase/{index-VoanK6Pr.d.ts → types.d.ts} +4 -19
- package/dist/components/ButtonBase/types.js +10 -0
- package/dist/components/DynamicFiltersScrollbar/DynamicFiltersScrollbar.cjs +33 -0
- package/dist/components/DynamicFiltersScrollbar/{index-CHzxQmaW.d.cts → DynamicFiltersScrollbar.d.cts} +2 -2
- package/dist/components/DynamicFiltersScrollbar/{index-vVNOOaOF.d.ts → DynamicFiltersScrollbar.d.ts} +2 -2
- package/dist/components/DynamicFiltersScrollbar/DynamicFiltersScrollbar.js +30 -0
- package/dist/components/DynamicFiltersScrollbar/index.cjs +2 -31
- package/dist/components/DynamicFiltersScrollbar/index.d.cts +2 -0
- package/dist/components/DynamicFiltersScrollbar/index.d.ts +2 -0
- package/dist/components/DynamicFiltersScrollbar/index.js +1 -27
- package/dist/{DynamicFiltersScrollbar-IO886VXD.cjs → components/FilterScrollbar/AppliedFiltersScrollbar.cjs} +6 -39
- package/dist/components/{AppliedFiltersScrollbar/index-Dcyc-5Bv.d.ts → FilterScrollbar/AppliedFiltersScrollbar.d.cts} +1 -1
- package/dist/components/{AppliedFiltersScrollbar/index-VbXAIfym.d.cts → FilterScrollbar/AppliedFiltersScrollbar.d.ts} +1 -1
- package/dist/{DynamicFiltersScrollbar-s5yfmMau.js → components/FilterScrollbar/AppliedFiltersScrollbar.js} +3 -25
- package/dist/components/FilterScrollbar/DynamicFiltersScrollbar.cjs +33 -0
- package/dist/components/FilterScrollbar/DynamicFiltersScrollbar.d.cts +28 -0
- package/dist/components/FilterScrollbar/DynamicFiltersScrollbar.d.ts +28 -0
- package/dist/components/FilterScrollbar/DynamicFiltersScrollbar.js +30 -0
- package/dist/components/FilterScrollbar/index.cjs +3 -3
- package/dist/components/FilterScrollbar/index.d.cts +3 -0
- package/dist/components/FilterScrollbar/index.d.ts +3 -0
- package/dist/components/FilterScrollbar/index.js +2 -2
- package/dist/{ImageWithFallback-C-ZQn7tR.cjs → components/ImageWithFallback/ImageWithFallback.cjs} +4 -9
- package/dist/components/ImageWithFallback/{index-NJZsMOXc.d.ts → ImageWithFallback.d.ts} +2 -2
- package/dist/{ImageWithFallback-DjDNefaG.js → components/ImageWithFallback/ImageWithFallback.js} +1 -1
- package/dist/components/ImageWithFallback/index.cjs +1 -1
- package/dist/components/ImageWithFallback/index.d.cts +2 -0
- package/dist/components/ImageWithFallback/index.d.ts +2 -0
- package/dist/components/ImageWithFallback/index.js +1 -1
- package/dist/components/ModalSheet/ModalSheet.cjs +30 -0
- package/dist/components/ModalSheet/ModalSheet.d.cts +15 -0
- package/dist/components/ModalSheet/ModalSheet.d.ts +15 -0
- package/dist/components/ModalSheet/ModalSheet.js +29 -0
- package/dist/components/ModalSheet/desktop/desktopHeader.cjs +26 -0
- package/dist/components/ModalSheet/desktop/desktopHeader.js +24 -0
- package/dist/components/ModalSheet/desktop/index.cjs +122 -0
- package/dist/components/ModalSheet/desktop/index.js +120 -0
- package/dist/components/ModalSheet/index.cjs +1 -2
- package/dist/components/ModalSheet/index.d.cts +2 -0
- package/dist/components/ModalSheet/index.d.ts +2 -0
- package/dist/components/ModalSheet/index.js +1 -2
- package/dist/components/ModalSheet/mobile/index.cjs +116 -0
- package/dist/components/ModalSheet/mobile/index.js +114 -0
- package/dist/components/ModalSheet/mobile/mobileHeader.cjs +38 -0
- package/dist/components/ModalSheet/mobile/mobileHeader.js +36 -0
- package/dist/components/ModalSheet/{index-B5q4MHdq.d.cts → types.d.cts} +1 -14
- package/dist/components/ModalSheet/{index-BN20-QS0.d.ts → types.d.ts} +1 -14
- package/dist/{ProductCard-C7rZyWpj.cjs → components/ProductCard/ProductCard.cjs} +20 -172
- package/dist/components/ProductCard/ProductCard.d.cts +64 -0
- package/dist/components/ProductCard/ProductCard.d.ts +64 -0
- package/dist/{ProductCard-GxpFxjh0.js → components/ProductCard/ProductCard.js} +11 -106
- package/dist/components/ProductCard/ProductCardSkeleton.cjs +33 -0
- package/dist/components/ProductCard/ProductCardSkeleton.d.cts +7 -0
- package/dist/components/ProductCard/ProductCardSkeleton.d.ts +7 -0
- package/dist/components/ProductCard/ProductCardSkeleton.js +31 -0
- package/dist/components/ProductCard/index.cjs +11 -12
- package/dist/components/ProductCard/index.d.cts +5 -0
- package/dist/components/ProductCard/index.d.ts +5 -0
- package/dist/components/ProductCard/index.js +4 -5
- package/dist/components/ProductCard/productCardVariants.cjs +49 -0
- package/dist/components/ProductCard/productCardVariants.d.cts +13 -0
- package/dist/components/ProductCard/productCardVariants.d.ts +13 -0
- package/dist/components/ProductCard/productCardVariants.js +45 -0
- package/dist/components/ProductCard/types.cjs +16 -0
- package/dist/components/ProductCard/types.d.cts +43 -0
- package/dist/components/ProductCard/types.d.ts +43 -0
- package/dist/components/ProductCard/types.js +14 -0
- package/dist/{ProductGrid-0A8vml2y.cjs → components/ProductGrid/ProductGrid.cjs} +7 -35
- package/dist/components/ProductGrid/ProductGrid.d.cts +25 -0
- package/dist/components/ProductGrid/ProductGrid.d.ts +25 -0
- package/dist/{ProductGrid-DAwc9dKV.js → components/ProductGrid/ProductGrid.js} +4 -21
- package/dist/components/ProductGrid/index.cjs +3 -7
- package/dist/components/ProductGrid/index.d.cts +3 -0
- package/dist/components/ProductGrid/index.d.ts +3 -0
- package/dist/components/ProductGrid/index.js +2 -6
- package/dist/components/ProductGrid/productGridVariants.cjs +21 -0
- package/dist/components/ProductGrid/productGridVariants.d.cts +13 -0
- package/dist/components/ProductGrid/productGridVariants.d.ts +13 -0
- package/dist/components/ProductGrid/productGridVariants.js +20 -0
- package/dist/{RadioButton-DpF1wymL.cjs → components/RadioButton/RadioButton.cjs} +5 -9
- package/dist/components/RadioButton/{index-BeOT_AlW.d.cts → RadioButton.d.cts} +2 -2
- package/dist/components/RadioButton/{index-CxluCaJw.d.ts → RadioButton.d.ts} +2 -2
- package/dist/{RadioButton-DOc8g47U.js → components/RadioButton/RadioButton.js} +3 -2
- package/dist/components/RadioButton/index.cjs +1 -2
- package/dist/components/RadioButton/index.d.cts +2 -0
- package/dist/components/RadioButton/index.d.ts +2 -0
- package/dist/components/RadioButton/index.js +1 -2
- package/dist/{RadioButtonGroup-ByzTXNAb.cjs → components/RadioButtonGroup/RadioButtonGroup.cjs} +6 -15
- package/dist/components/RadioButtonGroup/{index-KeOIiYNW.d.ts → RadioButtonGroup.d.ts} +2 -2
- package/dist/{RadioButtonGroup-YQIxmR7j.js → components/RadioButtonGroup/RadioButtonGroup.js} +3 -2
- package/dist/components/RadioButtonGroup/index.cjs +1 -3
- package/dist/components/RadioButtonGroup/index.d.cts +2 -0
- package/dist/components/RadioButtonGroup/index.d.ts +2 -0
- package/dist/components/RadioButtonGroup/index.js +1 -3
- package/dist/{RecommendedProducts-qkPxXVJn.cjs → components/RecommendedProducts/RecommendedProducts.cjs} +7 -10
- package/dist/{RecommendedProducts-C6dLpLPP.js → components/RecommendedProducts/RecommendedProducts.js} +5 -3
- package/dist/components/RecommendedProducts/index.cjs +1 -8
- package/dist/components/RecommendedProducts/index.d.cts +2 -0
- package/dist/components/RecommendedProducts/index.d.ts +2 -0
- package/dist/components/RecommendedProducts/index.js +1 -8
- package/dist/{SearchAutocomplete-BdTWETDB.cjs → components/SearchAutocomplete/SearchAutocomplete.cjs} +10 -13
- package/dist/components/SearchAutocomplete/{index-BcnHcv7Q.d.cts → SearchAutocomplete.d.cts} +2 -2
- package/dist/components/SearchAutocomplete/{index-Br_POGOz.d.ts → SearchAutocomplete.d.ts} +2 -2
- package/dist/{SearchAutocomplete-DNe193EV.js → components/SearchAutocomplete/SearchAutocomplete.js} +6 -5
- package/dist/components/SearchAutocomplete/index.cjs +1 -4
- package/dist/components/SearchAutocomplete/index.d.cts +2 -0
- package/dist/components/SearchAutocomplete/index.d.ts +2 -0
- package/dist/components/SearchAutocomplete/index.js +1 -4
- package/dist/components/SearchFilter/SearchFilter.cjs +134 -0
- package/dist/components/SearchFilter/SearchFilter.d.cts +23 -0
- package/dist/components/SearchFilter/SearchFilter.d.ts +23 -0
- package/dist/components/SearchFilter/SearchFilter.js +132 -0
- package/dist/components/SearchFilter/SearchFilterFooter.cjs +48 -0
- package/dist/components/SearchFilter/SearchFilterFooter.d.cts +14 -0
- package/dist/components/SearchFilter/SearchFilterFooter.d.ts +14 -0
- package/dist/components/SearchFilter/SearchFilterFooter.js +46 -0
- package/dist/components/SearchFilter/SearchFilterHeader.cjs +42 -0
- package/dist/components/SearchFilter/SearchFilterHeader.d.cts +12 -0
- package/dist/components/SearchFilter/SearchFilterHeader.d.ts +12 -0
- package/dist/components/SearchFilter/SearchFilterHeader.js +40 -0
- package/dist/components/SearchFilter/SearchFilterItem.cjs +41 -0
- package/dist/components/SearchFilter/SearchFilterItem.d.cts +13 -0
- package/dist/components/SearchFilter/SearchFilterItem.d.ts +13 -0
- package/dist/components/SearchFilter/SearchFilterItem.js +39 -0
- package/dist/components/SearchFilter/index.cjs +10 -16
- package/dist/components/SearchFilter/index.d.cts +6 -0
- package/dist/components/SearchFilter/index.d.ts +6 -0
- package/dist/components/SearchFilter/index.js +5 -11
- package/dist/components/SearchFilter/types.d.cts +42 -0
- package/dist/components/SearchFilter/types.d.ts +42 -0
- package/dist/components/SearchFilter/useHasFilterStateChanged.cjs +27 -0
- package/dist/components/SearchFilter/useHasFilterStateChanged.js +26 -0
- package/dist/components/SearchFilter/utils.cjs +11 -0
- package/dist/components/SearchFilter/utils.d.cts +7 -0
- package/dist/components/SearchFilter/utils.d.ts +7 -0
- package/dist/components/SearchFilter/utils.js +9 -0
- package/dist/components/SearchInput/SearchInput.cjs +83 -0
- package/dist/components/SearchInput/{index-C0H51Flv.d.ts → SearchInput.d.cts} +1 -15
- package/dist/components/SearchInput/{index-rFDdhvqg.d.cts → SearchInput.d.ts} +1 -15
- package/dist/components/SearchInput/SearchInput.js +78 -0
- package/dist/components/SearchInput/index.cjs +3 -6
- package/dist/components/SearchInput/index.d.cts +3 -0
- package/dist/components/SearchInput/index.d.ts +3 -0
- package/dist/components/SearchInput/index.js +2 -5
- package/dist/components/SearchInput/searchInputVariants.cjs +15 -0
- package/dist/components/SearchInput/searchInputVariants.d.cts +16 -0
- package/dist/components/SearchInput/searchInputVariants.d.ts +16 -0
- package/dist/components/SearchInput/searchInputVariants.js +15 -0
- package/dist/{SearchInputForm-ZgNNEX6E.cjs → components/SearchInputForm/SearchInputForm.cjs} +8 -11
- package/dist/components/SearchInputForm/{index-DjjoY7MQ.d.ts → SearchInputForm.d.cts} +3 -3
- package/dist/components/SearchInputForm/{index-Cleto06d.d.cts → SearchInputForm.d.ts} +1 -1
- package/dist/{SearchInputForm-CFm_hUvX.js → components/SearchInputForm/SearchInputForm.js} +5 -3
- package/dist/components/SearchInputForm/index.cjs +1 -8
- package/dist/components/SearchInputForm/index.d.cts +2 -0
- package/dist/components/SearchInputForm/index.d.ts +2 -0
- package/dist/components/SearchInputForm/index.js +1 -8
- package/dist/components/SearchResultsContent/SearchResultsContent.cjs +52 -0
- package/dist/components/SearchResultsContent/{index-C4qsTFUd.d.cts → SearchResultsContent.d.cts} +4 -4
- package/dist/components/SearchResultsContent/{index-KdFf9yzs.d.ts → SearchResultsContent.d.ts} +4 -4
- package/dist/components/SearchResultsContent/SearchResultsContent.js +50 -0
- package/dist/components/SearchResultsContent/index.cjs +2 -61
- package/dist/components/SearchResultsContent/index.d.cts +2 -0
- package/dist/components/SearchResultsContent/index.d.ts +2 -0
- package/dist/components/SearchResultsContent/index.js +1 -58
- package/dist/components/SearchResultsFilterButton/SearchResultsFilterButton.cjs +25 -0
- package/dist/components/SearchResultsFilterButton/{index-BvntKdyC.d.ts → SearchResultsFilterButton.d.cts} +2 -2
- package/dist/components/SearchResultsFilterButton/{index-zgQsT6vz.d.cts → SearchResultsFilterButton.d.ts} +2 -2
- package/dist/components/SearchResultsFilterButton/SearchResultsFilterButton.js +23 -0
- package/dist/components/SearchResultsFilterButton/index.cjs +1 -6
- package/dist/components/SearchResultsFilterButton/index.d.cts +2 -0
- package/dist/components/SearchResultsFilterButton/index.d.ts +2 -0
- package/dist/components/SearchResultsFilterButton/index.js +1 -6
- package/dist/components/SearchResultsFilterModal/SearchResultsFilterModal.cjs +36 -0
- package/dist/components/SearchResultsFilterModal/{index-CNBQ1ikL.d.ts → SearchResultsFilterModal.d.cts} +3 -3
- package/dist/components/SearchResultsFilterModal/{index-mRcnKysU.d.cts → SearchResultsFilterModal.d.ts} +3 -3
- package/dist/components/SearchResultsFilterModal/SearchResultsFilterModal.js +35 -0
- package/dist/components/SearchResultsFilterModal/index.cjs +2 -45
- package/dist/components/SearchResultsFilterModal/index.d.cts +2 -0
- package/dist/components/SearchResultsFilterModal/index.d.ts +2 -0
- package/dist/components/SearchResultsFilterModal/index.js +1 -43
- package/dist/components/SearchResultsFilterSidebar/SearchResultsFilter.cjs +51 -0
- package/dist/components/SearchResultsFilterSidebar/SearchResultsFilter.d.cts +27 -0
- package/dist/components/SearchResultsFilterSidebar/SearchResultsFilter.d.ts +27 -0
- package/dist/{SearchResultsFilterSidebar-DLzQoFGD.js → components/SearchResultsFilterSidebar/SearchResultsFilter.js} +9 -72
- package/dist/components/SearchResultsFilterSidebar/index.cjs +3 -15
- package/dist/components/SearchResultsFilterSidebar/index.d.cts +4 -0
- package/dist/components/SearchResultsFilterSidebar/index.d.ts +4 -0
- package/dist/components/SearchResultsFilterSidebar/index.js +2 -14
- package/dist/{searchFilterSidebarVariants-CjyRGKK_.cjs → components/SearchResultsFilterSidebar/searchFilterSidebarVariants.cjs} +2 -7
- package/dist/components/SearchResultsFilterSidebar/searchFilterSidebarVariants.d.cts +19 -0
- package/dist/components/SearchResultsFilterSidebar/searchFilterSidebarVariants.d.ts +19 -0
- package/dist/{searchFilterSidebarVariants-gkgkflXx.js → components/SearchResultsFilterSidebar/searchFilterSidebarVariants.js} +2 -2
- package/dist/components/SearchResultsFilterSidebar/types.d.cts +5 -0
- package/dist/components/SearchResultsFilterSidebar/types.d.ts +5 -0
- package/dist/components/SearchResultsStates/NoSearchResultsFound.cjs +57 -0
- package/dist/components/SearchResultsStates/NoSearchResultsFound.d.cts +25 -0
- package/dist/components/SearchResultsStates/NoSearchResultsFound.d.ts +25 -0
- package/dist/components/SearchResultsStates/NoSearchResultsFound.js +54 -0
- package/dist/components/SearchResultsStates/SearchResultsGrid.cjs +53 -0
- package/dist/components/SearchResultsStates/SearchResultsGrid.d.cts +46 -0
- package/dist/components/SearchResultsStates/SearchResultsGrid.d.ts +46 -0
- package/dist/components/SearchResultsStates/SearchResultsGrid.js +51 -0
- package/dist/components/SearchResultsStates/SearchResultsLoadingGrid.cjs +52 -0
- package/dist/components/SearchResultsStates/SearchResultsLoadingGrid.d.cts +15 -0
- package/dist/components/SearchResultsStates/SearchResultsLoadingGrid.d.ts +15 -0
- package/dist/components/SearchResultsStates/SearchResultsLoadingGrid.js +51 -0
- package/dist/components/SearchResultsStates/index.cjs +6 -17
- package/dist/components/SearchResultsStates/index.d.cts +4 -0
- package/dist/components/SearchResultsStates/index.d.ts +4 -0
- package/dist/components/SearchResultsStates/index.js +3 -14
- package/dist/components/SearchResultsToolbar/SearchResultsToolbar.cjs +60 -0
- package/dist/components/SearchResultsToolbar/{index-CIvuccni.d.ts → SearchResultsToolbar.d.cts} +2 -2
- package/dist/components/SearchResultsToolbar/{index-PYr086HM.d.cts → SearchResultsToolbar.d.ts} +2 -2
- package/dist/components/SearchResultsToolbar/SearchResultsToolbar.js +57 -0
- package/dist/components/SearchResultsToolbar/index.cjs +2 -65
- package/dist/components/SearchResultsToolbar/index.d.cts +2 -0
- package/dist/components/SearchResultsToolbar/index.d.ts +2 -0
- package/dist/components/SearchResultsToolbar/index.js +1 -61
- package/dist/components/SparkleAnimation/SparkleAnimation.cjs +78 -0
- package/dist/components/SparkleAnimation/SparkleAnimation.d.cts +15 -0
- package/dist/components/SparkleAnimation/SparkleAnimation.d.ts +15 -0
- package/dist/{SparkleAnimation-szzXiTam.js → components/SparkleAnimation/SparkleAnimation.js} +11 -20
- package/dist/components/SparkleAnimation/index.cjs +3 -4
- package/dist/components/SparkleAnimation/index.d.cts +3 -0
- package/dist/components/SparkleAnimation/index.d.ts +3 -0
- package/dist/components/SparkleAnimation/index.js +2 -3
- package/dist/components/SparkleAnimation/types.cjs +12 -0
- package/dist/components/SparkleAnimation/types.d.cts +9 -0
- package/dist/components/SparkleAnimation/types.d.ts +9 -0
- package/dist/components/SparkleAnimation/types.js +11 -0
- package/dist/{Spinner-7HblFCja.cjs → components/Spinner/Spinner.cjs} +3 -8
- package/dist/components/Spinner/{index-TKsPifGM.d.ts → Spinner.d.cts} +2 -2
- package/dist/components/Spinner/{index-DrYhRG9D.d.cts → Spinner.d.ts} +2 -2
- package/dist/{Spinner-OFbXMms8.js → components/Spinner/Spinner.js} +1 -1
- package/dist/components/Spinner/index.cjs +1 -1
- package/dist/components/Spinner/index.d.cts +2 -0
- package/dist/components/Spinner/index.d.ts +2 -0
- package/dist/components/Spinner/index.js +1 -1
- package/dist/components/SuggestionButton/SuggestionButton.cjs +195 -0
- package/dist/components/SuggestionButton/{index-BioM3QHW.d.ts → SuggestionButton.d.cts} +6 -8
- package/dist/components/SuggestionButton/{index-CjV6Ar4Y.d.cts → SuggestionButton.d.ts} +6 -8
- package/dist/components/SuggestionButton/SuggestionButton.js +188 -0
- package/dist/components/SuggestionButton/index.cjs +5 -191
- package/dist/components/SuggestionButton/index.d.cts +3 -0
- package/dist/components/SuggestionButton/index.d.ts +3 -0
- package/dist/components/SuggestionButton/index.js +1 -185
- package/dist/components/SuggestionButton/types.d.cts +4 -0
- package/dist/components/SuggestionButton/types.d.ts +4 -0
- package/dist/{TextInput-CaynCoDf.cjs → components/TextInput/TextInput.cjs} +7 -11
- package/dist/components/TextInput/{index-DAhxej1K.d.ts → TextInput.d.cts} +1 -2
- package/dist/components/TextInput/{index-CRJMRe-b.d.cts → TextInput.d.ts} +1 -2
- package/dist/{TextInput-CsdOvLBQ.js → components/TextInput/TextInput.js} +3 -2
- package/dist/components/TextInput/index.cjs +1 -2
- package/dist/components/TextInput/index.d.cts +2 -0
- package/dist/components/TextInput/index.d.ts +2 -0
- package/dist/components/TextInput/index.js +1 -2
- package/dist/{ToggleButton-Dxk3U1hR.cjs → components/ToggleButton/ToggleButton.cjs} +5 -9
- package/dist/components/ToggleButton/{index-pFQuGdoj.d.ts → ToggleButton.d.cts} +2 -2
- package/dist/components/ToggleButton/{index-eLDrp4ic.d.cts → ToggleButton.d.ts} +2 -2
- package/dist/{ToggleButton-D8--AKKK.js → components/ToggleButton/ToggleButton.js} +3 -2
- package/dist/components/ToggleButton/index.cjs +1 -2
- package/dist/components/ToggleButton/index.d.cts +2 -0
- package/dist/components/ToggleButton/index.d.ts +2 -0
- package/dist/components/ToggleButton/index.js +1 -2
- package/dist/components/Typography/Typography.cjs +53 -0
- package/dist/{index-DXGw5Z56.d.ts → components/Typography/Typography.d.cts} +2 -2
- package/dist/{index-Bw6lDfEp.d.cts → components/Typography/Typography.d.ts} +2 -2
- package/dist/components/Typography/Typography.js +50 -0
- package/dist/components/Typography/index.cjs +5 -4
- package/dist/components/Typography/index.d.cts +3 -0
- package/dist/components/Typography/index.d.ts +3 -0
- package/dist/components/Typography/index.js +2 -1
- package/dist/{Typography-xehJH05l.js → components/Typography/typographyVariantClasses.cjs} +3 -54
- package/dist/{typographyVariantClasses-CoRhazCU.d.cts → components/Typography/typographyVariantClasses.d.cts} +1 -1
- package/dist/{typographyVariantClasses-_oNpv-aN.d.ts → components/Typography/typographyVariantClasses.d.ts} +1 -1
- package/dist/{Typography-Ds4gfOJz.cjs → components/Typography/typographyVariantClasses.js} +1 -81
- package/dist/components/Typography/util.cjs +10 -0
- package/dist/components/Typography/util.js +10 -0
- package/dist/logging/logger.cjs +20 -0
- package/dist/logging/logger.js +19 -0
- package/dist/{colorsConfig-Dp7w5LPb.cjs → models/colorsConfig.cjs} +2 -12
- package/dist/{colorsConfig-CFI1KN8R.js → models/colorsConfig.js} +1 -1
- package/dist/util/camelCase.d.cts +69 -0
- package/dist/util/camelCase.d.ts +69 -0
- package/dist/util/camelCasedPropertiesDeep.d.cts +55 -0
- package/dist/util/camelCasedPropertiesDeep.d.ts +55 -0
- package/dist/util/colorVar.cjs +6 -0
- package/dist/util/colorVar.d.cts +6 -0
- package/dist/util/colorVar.d.ts +6 -0
- package/dist/util/colorVar.js +5 -0
- package/dist/{formatPrice-CyfkjZ3R.cjs → util/formatPrice.cjs} +1 -6
- package/dist/util/formatPrice.d.cts +4 -0
- package/dist/util/formatPrice.d.ts +4 -0
- package/dist/{formatPrice-DexQu2aZ.js → util/formatPrice.js} +1 -1
- package/dist/util/index.cjs +7 -78
- package/dist/util/index.d.cts +5 -0
- package/dist/util/index.d.ts +5 -0
- package/dist/util/index.js +4 -74
- package/dist/util/internal.d.cts +22 -0
- package/dist/util/internal.d.ts +22 -0
- package/dist/util/splitWords.d.cts +28 -0
- package/dist/util/splitWords.d.ts +28 -0
- package/dist/util/trim.d.cts +28 -0
- package/dist/util/trim.d.ts +28 -0
- package/dist/util/unknownArray.d.cts +28 -0
- package/dist/util/unknownArray.d.ts +28 -0
- package/dist/util/useScrollDirection.cjs +39 -0
- package/dist/util/useScrollDirection.d.cts +5 -0
- package/dist/util/useScrollDirection.d.ts +5 -0
- package/dist/util/useScrollDirection.js +38 -0
- package/dist/util/useStickyVisibility.cjs +38 -0
- package/dist/util/useStickyVisibility.d.cts +10 -0
- package/dist/util/useStickyVisibility.d.ts +10 -0
- package/dist/util/useStickyVisibility.js +37 -0
- package/package.json +14 -2
- package/src/components/Accordion/Accordion.tsx +4 -1
- package/src/components/AppliedFiltersScrollbar/AppliedFiltersScrollbar.tsx +5 -2
- package/src/components/ButtonBase/ButtonBase.tsx +3 -5
- package/src/components/ButtonBase/types.ts +3 -3
- package/src/components/DynamicFiltersScrollbar/DynamicFiltersScrollbar.tsx +4 -1
- package/src/components/FilterScrollbar/AppliedFiltersScrollbar.tsx +5 -2
- package/src/components/FilterScrollbar/DynamicFiltersScrollbar.tsx +4 -1
- package/src/components/ModalSheet/common/closeIcon.tsx +8 -7
- package/src/components/ModalSheet/desktop/index.tsx +1 -1
- package/src/components/ModalSheet/mobile/index.tsx +1 -1
- package/src/components/ModalSheet/mobile/mobileHeader.tsx +4 -1
- package/src/components/ProductCard/ProductCard.tsx +28 -14
- package/src/components/ProductCard/productCardVariants.ts +1 -1
- package/src/components/ProductGrid/ProductGrid.tsx +5 -2
- package/src/components/RadioButton/RadioButton.tsx +15 -2
- package/src/components/RadioButtonGroup/RadioButtonGroup.tsx +1 -1
- package/src/components/RecommendedProducts/RecommendedProducts.tsx +11 -9
- package/src/components/RecommendedProducts/index.ts +1 -1
- package/src/components/SearchAutocomplete/SearchAutocomplete.tsx +25 -19
- package/src/components/SearchFilter/SearchFilter.tsx +24 -10
- package/src/components/SearchFilter/SearchFilterHeader.tsx +4 -1
- package/src/components/SearchFilter/SearchFilterItem.tsx +3 -3
- package/src/components/SearchFilter/types.ts +2 -0
- package/src/components/SearchFilter/useHasFilterStateChanged.tsx +4 -4
- package/src/components/SearchInput/SearchInput.tsx +6 -2
- package/src/components/SearchInput/searchInputVariants.ts +1 -1
- package/src/components/SearchInputForm/SearchInputForm.tsx +4 -7
- package/src/components/SearchResultsContent/SearchResultsContent.tsx +1 -1
- package/src/components/SearchResultsFilterButton/SearchResultsFilterButton.tsx +1 -1
- package/src/components/SearchResultsFilterModal/SearchResultsFilterModal.tsx +4 -1
- package/src/components/SearchResultsFilterSidebar/SearchResultsFilter.tsx +2 -2
- package/src/components/SearchResultsFilterSidebar/searchFilterSidebarVariants.ts +1 -1
- package/src/components/SearchResultsStates/NoSearchResultsFound.tsx +2 -2
- package/src/components/SearchResultsStates/SearchResultsGrid.tsx +2 -2
- package/src/components/SearchResultsStates/SearchResultsLoadingGrid.tsx +9 -5
- package/src/components/SearchResultsToolbar/SearchResultsToolbar.tsx +10 -7
- package/src/components/SparkleAnimation/SparkleAnimation.tsx +17 -8
- package/src/components/SuggestionButton/SuggestionButton.tsx +22 -17
- package/src/components/SuggestionButton/types.ts +1 -1
- package/src/components/TextInput/TextInput.tsx +9 -2
- package/src/components/ToggleButton/ToggleButton.tsx +13 -3
- package/src/components/Typography/Typography.spec.tsx +1 -1
- package/src/components/Typography/util.ts +2 -2
- package/src/models/colorsConfig.ts +2 -1
- package/src/stories/ButtonBase.stories.tsx +1 -1
- package/src/stories/NoSearchResultsFound.stories.tsx +7 -0
- package/src/stories/ProductCardSkeleton.stories.tsx +46 -16
- package/src/stories/SearchResultsFilter.stories.tsx +3 -3
- package/src/stories/SparkleAnimation.stories.tsx +5 -2
- package/src/util/camelCasedPropertiesDeep.ts +0 -1
- package/src/util/colorVar.ts +1 -1
- package/src/util/useScrollDirection.ts +1 -1
- package/src/util/useStickyVisibility.ts +1 -1
- package/dist/ButtonBase-Cb6Iec6f.cjs +0 -0
- package/dist/ButtonBase-D2eXuapk.js +0 -1
- package/dist/FourPointStar-3DqnYmfN.js +0 -21
- package/dist/FourPointStar-AQ9OSu0S.cjs +0 -26
- package/dist/ModalSheet-C5f5abw1.js +0 -301
- package/dist/ModalSheet-JZerJZ1T.cjs +0 -308
- package/dist/OutlinedStar-CC0V_jAK.cjs +0 -26
- package/dist/OutlinedStar-WWs3gRwt.js +0 -21
- package/dist/SearchFilter-BRtCSuAn.cjs +0 -301
- package/dist/SearchFilter-DvJx0b0W.js +0 -264
- package/dist/SearchInput-CImlqrau.cjs +0 -159
- package/dist/SearchInput-kLhxkpgq.js +0 -145
- package/dist/SearchResultsFilterButton-D929tRt9.cjs +0 -96
- package/dist/SearchResultsFilterButton-Dk7u7rgn.js +0 -90
- package/dist/SearchResultsFilterSidebar-BRFONIEq.cjs +0 -118
- package/dist/SearchResultsStates-CQR5Il4l.cjs +0 -196
- package/dist/SearchResultsStates-D7HfsLeZ.js +0 -177
- package/dist/SparkleAnimation-BikAiAmb.cjs +0 -97
- package/dist/components/FilterScrollbar/index-DXcZLcQi.d.cts +0 -47
- package/dist/components/FilterScrollbar/index-DwLyxqQl.d.ts +0 -47
- package/dist/components/ProductCard/index-CglXQ3wh.d.ts +0 -2
- package/dist/components/ProductCard/index-XVlN6iMl.d.cts +0 -2
- package/dist/components/ProductGrid/index-BPBgwFsa.d.cts +0 -35
- package/dist/components/ProductGrid/index-D_YpwJCd.d.ts +0 -35
- package/dist/components/SearchFilter/index-BbIqmoO8.d.ts +0 -91
- package/dist/components/SearchFilter/index-DAL3Wl6U.d.cts +0 -91
- package/dist/components/SearchResultsFilterSidebar/index-C7PE9z5a.d.ts +0 -2
- package/dist/components/SearchResultsFilterSidebar/index-DKzEKFV3.d.cts +0 -2
- package/dist/components/SearchResultsStates/index-Dugoegtn.d.ts +0 -78
- package/dist/components/SearchResultsStates/index-RVgPTFiH.d.cts +0 -78
- package/dist/components/SparkleAnimation/index-BFqUibyY.d.ts +0 -23
- package/dist/components/SparkleAnimation/index-CSBR76H5.d.cts +0 -23
- package/dist/components/Typography/index-DzSBreyM.d.cts +0 -3
- package/dist/components/Typography/index-ymH7f3jB.d.ts +0 -3
- package/dist/index-BCBtAzCc.d.ts +0 -325
- package/dist/index-BiKhzraQ.d.cts +0 -46
- package/dist/index-CzbumwVZ.d.cts +0 -325
- package/dist/index-DK0xpfMg.d.ts +0 -46
- package/dist/jsx-runtime-Dg2m6dxZ-B-pkyyHT.cjs +0 -2586
- package/dist/jsx-runtime-Dg2m6dxZ-CU_SzTu4.js +0 -2580
- package/dist/util/index-C2ueYGXh.d.ts +0 -21
- package/dist/util/index-DUzbpjPa.d.cts +0 -21
- /package/dist/components/ImageWithFallback/{index-BLbkDyG8.d.cts → ImageWithFallback.d.cts} +0 -0
- /package/dist/components/RadioButtonGroup/{index-BOhV-rG3.d.cts → RadioButtonGroup.d.cts} +0 -0
- /package/dist/components/RecommendedProducts/{index-BFM83Qu3.d.cts → RecommendedProducts.d.cts} +0 -0
- /package/dist/components/RecommendedProducts/{index-DlbCfGof.d.ts → RecommendedProducts.d.ts} +0 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { CamelCase, CamelCaseOptions } from "./camelCase.cjs";
|
|
2
|
+
import { UnknownArray } from "./unknownArray.cjs";
|
|
3
|
+
|
|
4
|
+
//#region src/util/camelCasedPropertiesDeep.d.ts
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Convert object properties to camel case recursively.
|
|
8
|
+
*
|
|
9
|
+
* This can be useful when, for example, converting some API types from a different style.
|
|
10
|
+
*
|
|
11
|
+
* @see CamelCasedProperties
|
|
12
|
+
* @see CamelCase
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```
|
|
16
|
+
* import type {CamelCasedPropertiesDeep} from 'type-fest';
|
|
17
|
+
*
|
|
18
|
+
* interface User {
|
|
19
|
+
* UserId: number;
|
|
20
|
+
* UserName: string;
|
|
21
|
+
* }
|
|
22
|
+
*
|
|
23
|
+
* interface UserWithFriends {
|
|
24
|
+
* UserInfo: User;
|
|
25
|
+
* UserFriends: User[];
|
|
26
|
+
* }
|
|
27
|
+
*
|
|
28
|
+
* const result: CamelCasedPropertiesDeep<UserWithFriends> = {
|
|
29
|
+
* userInfo: {
|
|
30
|
+
* userId: 1,
|
|
31
|
+
* userName: 'Tom',
|
|
32
|
+
* },
|
|
33
|
+
* userFriends: [
|
|
34
|
+
* {
|
|
35
|
+
* userId: 2,
|
|
36
|
+
* userName: 'Jerry',
|
|
37
|
+
* },
|
|
38
|
+
* {
|
|
39
|
+
* userId: 3,
|
|
40
|
+
* userName: 'Spike',
|
|
41
|
+
* },
|
|
42
|
+
* ],
|
|
43
|
+
* };
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* @category Change case
|
|
47
|
+
* @category Template literal
|
|
48
|
+
* @category Object
|
|
49
|
+
*/
|
|
50
|
+
type CamelCasedPropertiesDeep<Value, Options extends CamelCaseOptions = {
|
|
51
|
+
preserveConsecutiveUppercase: true;
|
|
52
|
+
}> = Value extends Function ? Value : Value extends UnknownArray ? CamelCasedPropertiesArrayDeep<Value> : Value extends Set<infer U> ? Set<CamelCasedPropertiesDeep<U, Options>> : { [K in keyof Value as CamelCase<K, Options>]: CamelCasedPropertiesDeep<Value[K], Options> };
|
|
53
|
+
type CamelCasedPropertiesArrayDeep<Value extends UnknownArray> = Value extends [] ? [] : Value extends [infer U, ...infer V] ? [CamelCasedPropertiesDeep<U>, ...CamelCasedPropertiesDeep<V>] : Value extends readonly [infer U, ...infer V] ? readonly [CamelCasedPropertiesDeep<U>, ...CamelCasedPropertiesDeep<V>] : Value extends readonly [...infer U, infer V] ? [...CamelCasedPropertiesDeep<U>, CamelCasedPropertiesDeep<V>] : Value extends readonly [...infer U, infer V] ? readonly [...CamelCasedPropertiesDeep<U>, CamelCasedPropertiesDeep<V>] : Value extends Array<infer U> ? Array<CamelCasedPropertiesDeep<U>> : Value extends ReadonlyArray<infer U> ? ReadonlyArray<CamelCasedPropertiesDeep<U>> : never;
|
|
54
|
+
//#endregion
|
|
55
|
+
export { CamelCasedPropertiesDeep };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { CamelCase, CamelCaseOptions } from "./camelCase.js";
|
|
2
|
+
import { UnknownArray } from "./unknownArray.js";
|
|
3
|
+
|
|
4
|
+
//#region src/util/camelCasedPropertiesDeep.d.ts
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Convert object properties to camel case recursively.
|
|
8
|
+
*
|
|
9
|
+
* This can be useful when, for example, converting some API types from a different style.
|
|
10
|
+
*
|
|
11
|
+
* @see CamelCasedProperties
|
|
12
|
+
* @see CamelCase
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```
|
|
16
|
+
* import type {CamelCasedPropertiesDeep} from 'type-fest';
|
|
17
|
+
*
|
|
18
|
+
* interface User {
|
|
19
|
+
* UserId: number;
|
|
20
|
+
* UserName: string;
|
|
21
|
+
* }
|
|
22
|
+
*
|
|
23
|
+
* interface UserWithFriends {
|
|
24
|
+
* UserInfo: User;
|
|
25
|
+
* UserFriends: User[];
|
|
26
|
+
* }
|
|
27
|
+
*
|
|
28
|
+
* const result: CamelCasedPropertiesDeep<UserWithFriends> = {
|
|
29
|
+
* userInfo: {
|
|
30
|
+
* userId: 1,
|
|
31
|
+
* userName: 'Tom',
|
|
32
|
+
* },
|
|
33
|
+
* userFriends: [
|
|
34
|
+
* {
|
|
35
|
+
* userId: 2,
|
|
36
|
+
* userName: 'Jerry',
|
|
37
|
+
* },
|
|
38
|
+
* {
|
|
39
|
+
* userId: 3,
|
|
40
|
+
* userName: 'Spike',
|
|
41
|
+
* },
|
|
42
|
+
* ],
|
|
43
|
+
* };
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* @category Change case
|
|
47
|
+
* @category Template literal
|
|
48
|
+
* @category Object
|
|
49
|
+
*/
|
|
50
|
+
type CamelCasedPropertiesDeep<Value, Options extends CamelCaseOptions = {
|
|
51
|
+
preserveConsecutiveUppercase: true;
|
|
52
|
+
}> = Value extends Function ? Value : Value extends UnknownArray ? CamelCasedPropertiesArrayDeep<Value> : Value extends Set<infer U> ? Set<CamelCasedPropertiesDeep<U, Options>> : { [K in keyof Value as CamelCase<K, Options>]: CamelCasedPropertiesDeep<Value[K], Options> };
|
|
53
|
+
type CamelCasedPropertiesArrayDeep<Value extends UnknownArray> = Value extends [] ? [] : Value extends [infer U, ...infer V] ? [CamelCasedPropertiesDeep<U>, ...CamelCasedPropertiesDeep<V>] : Value extends readonly [infer U, ...infer V] ? readonly [CamelCasedPropertiesDeep<U>, ...CamelCasedPropertiesDeep<V>] : Value extends readonly [...infer U, infer V] ? [...CamelCasedPropertiesDeep<U>, CamelCasedPropertiesDeep<V>] : Value extends readonly [...infer U, infer V] ? readonly [...CamelCasedPropertiesDeep<U>, CamelCasedPropertiesDeep<V>] : Value extends Array<infer U> ? Array<CamelCasedPropertiesDeep<U>> : Value extends ReadonlyArray<infer U> ? ReadonlyArray<CamelCasedPropertiesDeep<U>> : never;
|
|
54
|
+
//#endregion
|
|
55
|
+
export { CamelCasedPropertiesDeep };
|
package/dist/util/index.cjs
CHANGED
|
@@ -1,80 +1,9 @@
|
|
|
1
|
-
const
|
|
2
|
-
const
|
|
3
|
-
|
|
1
|
+
const require_formatPrice = require('./formatPrice.cjs');
|
|
2
|
+
const require_useScrollDirection = require('./useScrollDirection.cjs');
|
|
3
|
+
const require_useStickyVisibility = require('./useStickyVisibility.cjs');
|
|
4
|
+
const require_colorVar = require('./colorVar.cjs');
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
const useScrollDirection = (scrollContainerRef) => {
|
|
7
|
-
const [scrollDirection, setScrollDirection] = (0, react.useState)(null);
|
|
8
|
-
const touchStartY = (0, react.useRef)(0);
|
|
9
|
-
(0, react.useEffect)(() => {
|
|
10
|
-
const container = scrollContainerRef?.current || window;
|
|
11
|
-
const touchTarget = scrollContainerRef?.current || document;
|
|
12
|
-
const handleWheel = (e) => {
|
|
13
|
-
if (e.deltaY > 0) setScrollDirection("down");
|
|
14
|
-
else setScrollDirection("up");
|
|
15
|
-
};
|
|
16
|
-
const handleTouchStart = (e) => {
|
|
17
|
-
touchStartY.current = e.touches[0].clientY;
|
|
18
|
-
};
|
|
19
|
-
const handleTouchMove = (e) => {
|
|
20
|
-
const currentTouchY = e.touches[0].clientY;
|
|
21
|
-
const deltaY = touchStartY.current - currentTouchY;
|
|
22
|
-
if (Math.abs(deltaY) < 10) return;
|
|
23
|
-
if (deltaY > 0) setScrollDirection("down");
|
|
24
|
-
else setScrollDirection("up");
|
|
25
|
-
touchStartY.current = currentTouchY;
|
|
26
|
-
};
|
|
27
|
-
container.addEventListener("wheel", handleWheel, { passive: true });
|
|
28
|
-
touchTarget.addEventListener("touchstart", handleTouchStart, { passive: true });
|
|
29
|
-
touchTarget.addEventListener("touchmove", handleTouchMove, { passive: true });
|
|
30
|
-
return () => {
|
|
31
|
-
container.removeEventListener("wheel", handleWheel);
|
|
32
|
-
touchTarget.removeEventListener("touchstart", handleTouchStart);
|
|
33
|
-
touchTarget.removeEventListener("touchmove", handleTouchMove);
|
|
34
|
-
};
|
|
35
|
-
}, [scrollContainerRef]);
|
|
36
|
-
return scrollDirection;
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
//#endregion
|
|
40
|
-
//#region src/util/useStickyVisibility.ts
|
|
41
|
-
const useStickyVisibility = () => {
|
|
42
|
-
const [isVisible, setIsVisible] = (0, react.useState)(true);
|
|
43
|
-
const toolbarRef = (0, react.useRef)(null);
|
|
44
|
-
const [toolbarHeight, setToolbarHeight] = (0, react.useState)(0);
|
|
45
|
-
const [scrollY, setScrollY] = (0, react.useState)(0);
|
|
46
|
-
const scrollDirection = useScrollDirection();
|
|
47
|
-
(0, react.useEffect)(() => {
|
|
48
|
-
const handleScroll = () => {
|
|
49
|
-
setScrollY(window.scrollY);
|
|
50
|
-
};
|
|
51
|
-
window.addEventListener("scroll", handleScroll, { passive: true });
|
|
52
|
-
return () => window.removeEventListener("scroll", handleScroll);
|
|
53
|
-
}, []);
|
|
54
|
-
(0, react.useEffect)(() => {
|
|
55
|
-
if (toolbarRef.current) setToolbarHeight(toolbarRef.current.offsetHeight);
|
|
56
|
-
}, []);
|
|
57
|
-
(0, react.useEffect)(() => {
|
|
58
|
-
if (scrollDirection === "down" && scrollY > toolbarHeight && toolbarHeight > 0) setIsVisible(false);
|
|
59
|
-
else setIsVisible(true);
|
|
60
|
-
}, [
|
|
61
|
-
scrollDirection,
|
|
62
|
-
toolbarHeight,
|
|
63
|
-
scrollY
|
|
64
|
-
]);
|
|
65
|
-
return {
|
|
66
|
-
toolbarRef,
|
|
67
|
-
isVisible,
|
|
68
|
-
toolbarHeight
|
|
69
|
-
};
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
//#endregion
|
|
73
|
-
//#region src/util/colorVar.ts
|
|
74
|
-
const colorVar = (color) => `var(--spiffy-colors-${color})`;
|
|
75
|
-
|
|
76
|
-
//#endregion
|
|
77
|
-
exports.colorVar = colorVar;
|
|
6
|
+
exports.colorVar = require_colorVar.colorVar;
|
|
78
7
|
exports.formatPrice = require_formatPrice.formatPrice;
|
|
79
|
-
exports.useScrollDirection = useScrollDirection;
|
|
80
|
-
exports.useStickyVisibility = useStickyVisibility;
|
|
8
|
+
exports.useScrollDirection = require_useScrollDirection.useScrollDirection;
|
|
9
|
+
exports.useStickyVisibility = require_useStickyVisibility.useStickyVisibility;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { formatPrice } from "./formatPrice.cjs";
|
|
2
|
+
import { ScrollDirection, useScrollDirection } from "./useScrollDirection.cjs";
|
|
3
|
+
import { useStickyVisibility } from "./useStickyVisibility.cjs";
|
|
4
|
+
import { colorVar } from "./colorVar.cjs";
|
|
5
|
+
export { ScrollDirection, colorVar, formatPrice, useScrollDirection, useStickyVisibility };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { formatPrice } from "./formatPrice.js";
|
|
2
|
+
import { ScrollDirection, useScrollDirection } from "./useScrollDirection.js";
|
|
3
|
+
import { useStickyVisibility } from "./useStickyVisibility.js";
|
|
4
|
+
import { colorVar } from "./colorVar.js";
|
|
5
|
+
export { ScrollDirection, colorVar, formatPrice, useScrollDirection, useStickyVisibility };
|
package/dist/util/index.js
CHANGED
|
@@ -1,76 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { formatPrice } from "./formatPrice.js";
|
|
2
|
+
import { useScrollDirection } from "./useScrollDirection.js";
|
|
3
|
+
import { useStickyVisibility } from "./useStickyVisibility.js";
|
|
4
|
+
import { colorVar } from "./colorVar.js";
|
|
3
5
|
|
|
4
|
-
//#region src/util/useScrollDirection.ts
|
|
5
|
-
const useScrollDirection = (scrollContainerRef) => {
|
|
6
|
-
const [scrollDirection, setScrollDirection] = useState(null);
|
|
7
|
-
const touchStartY = useRef(0);
|
|
8
|
-
useEffect(() => {
|
|
9
|
-
const container = scrollContainerRef?.current || window;
|
|
10
|
-
const touchTarget = scrollContainerRef?.current || document;
|
|
11
|
-
const handleWheel = (e) => {
|
|
12
|
-
if (e.deltaY > 0) setScrollDirection("down");
|
|
13
|
-
else setScrollDirection("up");
|
|
14
|
-
};
|
|
15
|
-
const handleTouchStart = (e) => {
|
|
16
|
-
touchStartY.current = e.touches[0].clientY;
|
|
17
|
-
};
|
|
18
|
-
const handleTouchMove = (e) => {
|
|
19
|
-
const currentTouchY = e.touches[0].clientY;
|
|
20
|
-
const deltaY = touchStartY.current - currentTouchY;
|
|
21
|
-
if (Math.abs(deltaY) < 10) return;
|
|
22
|
-
if (deltaY > 0) setScrollDirection("down");
|
|
23
|
-
else setScrollDirection("up");
|
|
24
|
-
touchStartY.current = currentTouchY;
|
|
25
|
-
};
|
|
26
|
-
container.addEventListener("wheel", handleWheel, { passive: true });
|
|
27
|
-
touchTarget.addEventListener("touchstart", handleTouchStart, { passive: true });
|
|
28
|
-
touchTarget.addEventListener("touchmove", handleTouchMove, { passive: true });
|
|
29
|
-
return () => {
|
|
30
|
-
container.removeEventListener("wheel", handleWheel);
|
|
31
|
-
touchTarget.removeEventListener("touchstart", handleTouchStart);
|
|
32
|
-
touchTarget.removeEventListener("touchmove", handleTouchMove);
|
|
33
|
-
};
|
|
34
|
-
}, [scrollContainerRef]);
|
|
35
|
-
return scrollDirection;
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
//#endregion
|
|
39
|
-
//#region src/util/useStickyVisibility.ts
|
|
40
|
-
const useStickyVisibility = () => {
|
|
41
|
-
const [isVisible, setIsVisible] = useState(true);
|
|
42
|
-
const toolbarRef = useRef(null);
|
|
43
|
-
const [toolbarHeight, setToolbarHeight] = useState(0);
|
|
44
|
-
const [scrollY, setScrollY] = useState(0);
|
|
45
|
-
const scrollDirection = useScrollDirection();
|
|
46
|
-
useEffect(() => {
|
|
47
|
-
const handleScroll = () => {
|
|
48
|
-
setScrollY(window.scrollY);
|
|
49
|
-
};
|
|
50
|
-
window.addEventListener("scroll", handleScroll, { passive: true });
|
|
51
|
-
return () => window.removeEventListener("scroll", handleScroll);
|
|
52
|
-
}, []);
|
|
53
|
-
useEffect(() => {
|
|
54
|
-
if (toolbarRef.current) setToolbarHeight(toolbarRef.current.offsetHeight);
|
|
55
|
-
}, []);
|
|
56
|
-
useEffect(() => {
|
|
57
|
-
if (scrollDirection === "down" && scrollY > toolbarHeight && toolbarHeight > 0) setIsVisible(false);
|
|
58
|
-
else setIsVisible(true);
|
|
59
|
-
}, [
|
|
60
|
-
scrollDirection,
|
|
61
|
-
toolbarHeight,
|
|
62
|
-
scrollY
|
|
63
|
-
]);
|
|
64
|
-
return {
|
|
65
|
-
toolbarRef,
|
|
66
|
-
isVisible,
|
|
67
|
-
toolbarHeight
|
|
68
|
-
};
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
//#endregion
|
|
72
|
-
//#region src/util/colorVar.ts
|
|
73
|
-
const colorVar = (color) => `var(--spiffy-colors-${color})`;
|
|
74
|
-
|
|
75
|
-
//#endregion
|
|
76
6
|
export { colorVar, formatPrice, useScrollDirection, useStickyVisibility };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Trim } from "./trim.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/util/internal.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Returns a boolean for whether the string is numeric.
|
|
7
|
+
*
|
|
8
|
+
* This type is a workaround for [Microsoft/TypeScript#46109](https://github.com/microsoft/TypeScript/issues/46109#issuecomment-930307987).
|
|
9
|
+
*/
|
|
10
|
+
type IsNumeric<T extends string> = T extends `${number}` ? Trim<T> extends T ? true : false : false;
|
|
11
|
+
/**
|
|
12
|
+
* Returns a boolean for whether the string is lowercased.
|
|
13
|
+
*/
|
|
14
|
+
type IsLowerCase<T extends string> = T extends Lowercase<T> ? true : false;
|
|
15
|
+
/**
|
|
16
|
+
* Returns a boolean for whether the string is upper-cased.
|
|
17
|
+
*/
|
|
18
|
+
type IsUpperCase<T extends string> = T extends Uppercase<T> ? true : false;
|
|
19
|
+
type WordSeparators = '-' | '_' | Whitespace;
|
|
20
|
+
type Whitespace = '\u{9}' | '\u{A}' | '\u{B}' | '\u{C}' | '\u{D}' | '\u{20}' | '\u{85}' | '\u{A0}' | '\u{1680}' | '\u{2000}' | '\u{2001}' | '\u{2002}' | '\u{2003}' | '\u{2004}' | '\u{2005}' | '\u{2006}' | '\u{2007}' | '\u{2008}' | '\u{2009}' | '\u{200A}' | '\u{2028}' | '\u{2029}' | '\u{202F}' | '\u{205F}' | '\u{3000}' | '\u{FEFF}';
|
|
21
|
+
//#endregion
|
|
22
|
+
export { IsLowerCase, IsNumeric, IsUpperCase, Whitespace, WordSeparators };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Trim } from "./trim.js";
|
|
2
|
+
|
|
3
|
+
//#region src/util/internal.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Returns a boolean for whether the string is numeric.
|
|
7
|
+
*
|
|
8
|
+
* This type is a workaround for [Microsoft/TypeScript#46109](https://github.com/microsoft/TypeScript/issues/46109#issuecomment-930307987).
|
|
9
|
+
*/
|
|
10
|
+
type IsNumeric<T extends string> = T extends `${number}` ? Trim<T> extends T ? true : false : false;
|
|
11
|
+
/**
|
|
12
|
+
* Returns a boolean for whether the string is lowercased.
|
|
13
|
+
*/
|
|
14
|
+
type IsLowerCase<T extends string> = T extends Lowercase<T> ? true : false;
|
|
15
|
+
/**
|
|
16
|
+
* Returns a boolean for whether the string is upper-cased.
|
|
17
|
+
*/
|
|
18
|
+
type IsUpperCase<T extends string> = T extends Uppercase<T> ? true : false;
|
|
19
|
+
type WordSeparators = '-' | '_' | Whitespace;
|
|
20
|
+
type Whitespace = '\u{9}' | '\u{A}' | '\u{B}' | '\u{C}' | '\u{D}' | '\u{20}' | '\u{85}' | '\u{A0}' | '\u{1680}' | '\u{2000}' | '\u{2001}' | '\u{2002}' | '\u{2003}' | '\u{2004}' | '\u{2005}' | '\u{2006}' | '\u{2007}' | '\u{2008}' | '\u{2009}' | '\u{200A}' | '\u{2028}' | '\u{2029}' | '\u{202F}' | '\u{205F}' | '\u{3000}' | '\u{FEFF}';
|
|
21
|
+
//#endregion
|
|
22
|
+
export { IsLowerCase, IsNumeric, IsUpperCase, Whitespace, WordSeparators };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { IsLowerCase, IsNumeric, IsUpperCase, WordSeparators } from "./internal.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/util/splitWords.d.ts
|
|
4
|
+
type SkipEmptyWord<Word extends string> = Word extends '' ? [] : [Word];
|
|
5
|
+
type RemoveLastCharacter<Sentence extends string, Character extends string> = Sentence extends `${infer LeftSide}${Character}` ? SkipEmptyWord<LeftSide> : never;
|
|
6
|
+
/**
|
|
7
|
+
* Split a string (almost) like Lodash's `_.words()` function.
|
|
8
|
+
*
|
|
9
|
+
* - Split on each word that begins with a capital letter.
|
|
10
|
+
* - Split on each {@link WordSeparators}.
|
|
11
|
+
* - Split on numeric sequence.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```
|
|
15
|
+
* type Words0 = SplitWords<'helloWorld'>; // ['hello', 'World']
|
|
16
|
+
* type Words1 = SplitWords<'helloWORLD'>; // ['hello', 'WORLD']
|
|
17
|
+
* type Words2 = SplitWords<'hello-world'>; // ['hello', 'world']
|
|
18
|
+
* type Words3 = SplitWords<'--hello the_world'>; // ['hello', 'the', 'world']
|
|
19
|
+
* type Words4 = SplitWords<'lifeIs42'>; // ['life', 'Is', '42']
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @internal
|
|
23
|
+
* @category Change case
|
|
24
|
+
* @category Template literal
|
|
25
|
+
*/
|
|
26
|
+
type SplitWords<Sentence extends string, LastCharacter extends string = '', CurrentWord extends string = ''> = Sentence extends `${infer FirstCharacter}${infer RemainingCharacters}` ? FirstCharacter extends WordSeparators ? [...SkipEmptyWord<CurrentWord>, ...SplitWords<RemainingCharacters>] : LastCharacter extends '' ? SplitWords<RemainingCharacters, FirstCharacter, FirstCharacter> : [false, true] extends [IsNumeric<LastCharacter>, IsNumeric<FirstCharacter>] ? [...SkipEmptyWord<CurrentWord>, ...SplitWords<RemainingCharacters, FirstCharacter, FirstCharacter>] : [true, false] extends [IsNumeric<LastCharacter>, IsNumeric<FirstCharacter>] ? [...SkipEmptyWord<CurrentWord>, ...SplitWords<RemainingCharacters, FirstCharacter, FirstCharacter>] : [true, true] extends [IsNumeric<LastCharacter>, IsNumeric<FirstCharacter>] ? SplitWords<RemainingCharacters, FirstCharacter, `${CurrentWord}${FirstCharacter}`> : [true, true] extends [IsLowerCase<LastCharacter>, IsUpperCase<FirstCharacter>] ? [...SkipEmptyWord<CurrentWord>, ...SplitWords<RemainingCharacters, FirstCharacter, FirstCharacter>] : [true, true] extends [IsUpperCase<LastCharacter>, IsLowerCase<FirstCharacter>] ? [...RemoveLastCharacter<CurrentWord, LastCharacter>, ...SplitWords<RemainingCharacters, FirstCharacter, `${LastCharacter}${FirstCharacter}`>] : SplitWords<RemainingCharacters, FirstCharacter, `${CurrentWord}${FirstCharacter}`> : [...SkipEmptyWord<CurrentWord>];
|
|
27
|
+
//#endregion
|
|
28
|
+
export { SplitWords };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { IsLowerCase, IsNumeric, IsUpperCase, WordSeparators } from "./internal.js";
|
|
2
|
+
|
|
3
|
+
//#region src/util/splitWords.d.ts
|
|
4
|
+
type SkipEmptyWord<Word extends string> = Word extends '' ? [] : [Word];
|
|
5
|
+
type RemoveLastCharacter<Sentence extends string, Character extends string> = Sentence extends `${infer LeftSide}${Character}` ? SkipEmptyWord<LeftSide> : never;
|
|
6
|
+
/**
|
|
7
|
+
* Split a string (almost) like Lodash's `_.words()` function.
|
|
8
|
+
*
|
|
9
|
+
* - Split on each word that begins with a capital letter.
|
|
10
|
+
* - Split on each {@link WordSeparators}.
|
|
11
|
+
* - Split on numeric sequence.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```
|
|
15
|
+
* type Words0 = SplitWords<'helloWorld'>; // ['hello', 'World']
|
|
16
|
+
* type Words1 = SplitWords<'helloWORLD'>; // ['hello', 'WORLD']
|
|
17
|
+
* type Words2 = SplitWords<'hello-world'>; // ['hello', 'world']
|
|
18
|
+
* type Words3 = SplitWords<'--hello the_world'>; // ['hello', 'the', 'world']
|
|
19
|
+
* type Words4 = SplitWords<'lifeIs42'>; // ['life', 'Is', '42']
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @internal
|
|
23
|
+
* @category Change case
|
|
24
|
+
* @category Template literal
|
|
25
|
+
*/
|
|
26
|
+
type SplitWords<Sentence extends string, LastCharacter extends string = '', CurrentWord extends string = ''> = Sentence extends `${infer FirstCharacter}${infer RemainingCharacters}` ? FirstCharacter extends WordSeparators ? [...SkipEmptyWord<CurrentWord>, ...SplitWords<RemainingCharacters>] : LastCharacter extends '' ? SplitWords<RemainingCharacters, FirstCharacter, FirstCharacter> : [false, true] extends [IsNumeric<LastCharacter>, IsNumeric<FirstCharacter>] ? [...SkipEmptyWord<CurrentWord>, ...SplitWords<RemainingCharacters, FirstCharacter, FirstCharacter>] : [true, false] extends [IsNumeric<LastCharacter>, IsNumeric<FirstCharacter>] ? [...SkipEmptyWord<CurrentWord>, ...SplitWords<RemainingCharacters, FirstCharacter, FirstCharacter>] : [true, true] extends [IsNumeric<LastCharacter>, IsNumeric<FirstCharacter>] ? SplitWords<RemainingCharacters, FirstCharacter, `${CurrentWord}${FirstCharacter}`> : [true, true] extends [IsLowerCase<LastCharacter>, IsUpperCase<FirstCharacter>] ? [...SkipEmptyWord<CurrentWord>, ...SplitWords<RemainingCharacters, FirstCharacter, FirstCharacter>] : [true, true] extends [IsUpperCase<LastCharacter>, IsLowerCase<FirstCharacter>] ? [...RemoveLastCharacter<CurrentWord, LastCharacter>, ...SplitWords<RemainingCharacters, FirstCharacter, `${LastCharacter}${FirstCharacter}`>] : SplitWords<RemainingCharacters, FirstCharacter, `${CurrentWord}${FirstCharacter}`> : [...SkipEmptyWord<CurrentWord>];
|
|
27
|
+
//#endregion
|
|
28
|
+
export { SplitWords };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Whitespace } from "./internal.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/util/trim.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Remove spaces from the left side.
|
|
7
|
+
*/
|
|
8
|
+
type TrimLeft<V extends string> = V extends `${Whitespace}${infer R}` ? TrimLeft<R> : V;
|
|
9
|
+
/**
|
|
10
|
+
* Remove spaces from the right side.
|
|
11
|
+
*/
|
|
12
|
+
type TrimRight<V extends string> = V extends `${infer R}${Whitespace}` ? TrimRight<R> : V;
|
|
13
|
+
/**
|
|
14
|
+
* Remove leading and trailing spaces from a string.
|
|
15
|
+
* @example
|
|
16
|
+
* ```
|
|
17
|
+
* import type {Trim} from 'type-fest';
|
|
18
|
+
*
|
|
19
|
+
* Trim<' foo '>
|
|
20
|
+
* //=> 'foo'
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @category String
|
|
24
|
+
* @category Template literal
|
|
25
|
+
*/
|
|
26
|
+
type Trim<V extends string> = TrimLeft<TrimRight<V>>;
|
|
27
|
+
//#endregion
|
|
28
|
+
export { Trim };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Whitespace } from "./internal.js";
|
|
2
|
+
|
|
3
|
+
//#region src/util/trim.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Remove spaces from the left side.
|
|
7
|
+
*/
|
|
8
|
+
type TrimLeft<V extends string> = V extends `${Whitespace}${infer R}` ? TrimLeft<R> : V;
|
|
9
|
+
/**
|
|
10
|
+
* Remove spaces from the right side.
|
|
11
|
+
*/
|
|
12
|
+
type TrimRight<V extends string> = V extends `${infer R}${Whitespace}` ? TrimRight<R> : V;
|
|
13
|
+
/**
|
|
14
|
+
* Remove leading and trailing spaces from a string.
|
|
15
|
+
* @example
|
|
16
|
+
* ```
|
|
17
|
+
* import type {Trim} from 'type-fest';
|
|
18
|
+
*
|
|
19
|
+
* Trim<' foo '>
|
|
20
|
+
* //=> 'foo'
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @category String
|
|
24
|
+
* @category Template literal
|
|
25
|
+
*/
|
|
26
|
+
type Trim<V extends string> = TrimLeft<TrimRight<V>>;
|
|
27
|
+
//#endregion
|
|
28
|
+
export { Trim };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
//#region src/util/unknownArray.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Represents an array with `unknown` value.
|
|
4
|
+
*
|
|
5
|
+
* Use case: You want a type that all arrays can be assigned to, but you don't care about the value.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```
|
|
9
|
+
* import type {UnknownArray} from 'type-fest';
|
|
10
|
+
*
|
|
11
|
+
* type IsArray<T> = T extends UnknownArray ? true : false;
|
|
12
|
+
*
|
|
13
|
+
* type A = IsArray<['foo']>;
|
|
14
|
+
* //=> true
|
|
15
|
+
*
|
|
16
|
+
* type B = IsArray<readonly number[]>;
|
|
17
|
+
* //=> true
|
|
18
|
+
*
|
|
19
|
+
* type C = IsArray<string>;
|
|
20
|
+
* //=> false
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @category Type
|
|
24
|
+
* @category Array
|
|
25
|
+
*/
|
|
26
|
+
type UnknownArray = readonly unknown[];
|
|
27
|
+
//#endregion
|
|
28
|
+
export { UnknownArray };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
//#region src/util/unknownArray.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Represents an array with `unknown` value.
|
|
4
|
+
*
|
|
5
|
+
* Use case: You want a type that all arrays can be assigned to, but you don't care about the value.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```
|
|
9
|
+
* import type {UnknownArray} from 'type-fest';
|
|
10
|
+
*
|
|
11
|
+
* type IsArray<T> = T extends UnknownArray ? true : false;
|
|
12
|
+
*
|
|
13
|
+
* type A = IsArray<['foo']>;
|
|
14
|
+
* //=> true
|
|
15
|
+
*
|
|
16
|
+
* type B = IsArray<readonly number[]>;
|
|
17
|
+
* //=> true
|
|
18
|
+
*
|
|
19
|
+
* type C = IsArray<string>;
|
|
20
|
+
* //=> false
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @category Type
|
|
24
|
+
* @category Array
|
|
25
|
+
*/
|
|
26
|
+
type UnknownArray = readonly unknown[];
|
|
27
|
+
//#endregion
|
|
28
|
+
export { UnknownArray };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
let react = require("react");
|
|
3
|
+
|
|
4
|
+
//#region src/util/useScrollDirection.ts
|
|
5
|
+
const useScrollDirection = (scrollContainerRef) => {
|
|
6
|
+
const [scrollDirection, setScrollDirection] = (0, react.useState)(null);
|
|
7
|
+
const touchStartY = (0, react.useRef)(0);
|
|
8
|
+
(0, react.useEffect)(() => {
|
|
9
|
+
const container = scrollContainerRef?.current || window;
|
|
10
|
+
const touchTarget = scrollContainerRef?.current || document;
|
|
11
|
+
const handleWheel = (e) => {
|
|
12
|
+
if (e.deltaY > 0) setScrollDirection("down");
|
|
13
|
+
else setScrollDirection("up");
|
|
14
|
+
};
|
|
15
|
+
const handleTouchStart = (e) => {
|
|
16
|
+
touchStartY.current = e.touches[0].clientY;
|
|
17
|
+
};
|
|
18
|
+
const handleTouchMove = (e) => {
|
|
19
|
+
const currentTouchY = e.touches[0].clientY;
|
|
20
|
+
const deltaY = touchStartY.current - currentTouchY;
|
|
21
|
+
if (Math.abs(deltaY) < 10) return;
|
|
22
|
+
if (deltaY > 0) setScrollDirection("down");
|
|
23
|
+
else setScrollDirection("up");
|
|
24
|
+
touchStartY.current = currentTouchY;
|
|
25
|
+
};
|
|
26
|
+
container.addEventListener("wheel", handleWheel, { passive: true });
|
|
27
|
+
touchTarget.addEventListener("touchstart", handleTouchStart, { passive: true });
|
|
28
|
+
touchTarget.addEventListener("touchmove", handleTouchMove, { passive: true });
|
|
29
|
+
return () => {
|
|
30
|
+
container.removeEventListener("wheel", handleWheel);
|
|
31
|
+
touchTarget.removeEventListener("touchstart", handleTouchStart);
|
|
32
|
+
touchTarget.removeEventListener("touchmove", handleTouchMove);
|
|
33
|
+
};
|
|
34
|
+
}, [scrollContainerRef]);
|
|
35
|
+
return scrollDirection;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
//#endregion
|
|
39
|
+
exports.useScrollDirection = useScrollDirection;
|