@faststore/core 3.2.1 → 3.3.0

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 (146) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +29 -29
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/config.json +3 -3
  5. package/.next/cache/eslint/.cache_1gneedd +1 -1
  6. package/.next/cache/webpack/client-production/0.pack +0 -0
  7. package/.next/cache/webpack/client-production/index.pack +0 -0
  8. package/.next/cache/webpack/server-production/0.pack +0 -0
  9. package/.next/cache/webpack/server-production/index.pack +0 -0
  10. package/.next/next-minimal-server.js.nft.json +1 -1
  11. package/.next/next-server.js.nft.json +1 -1
  12. package/.next/prerender-manifest.js +1 -1
  13. package/.next/prerender-manifest.json +1 -1
  14. package/.next/react-loadable-manifest.json +81 -41
  15. package/.next/routes-manifest.json +1 -1
  16. package/.next/server/chunks/2295.js +1 -0
  17. package/.next/server/chunks/2552.js +1 -1
  18. package/.next/server/chunks/2710.js +1 -0
  19. package/.next/server/chunks/3779.js +1 -0
  20. package/.next/server/chunks/4358.js +1 -0
  21. package/.next/server/chunks/5110.js +1 -0
  22. package/.next/server/chunks/5342.js +1 -0
  23. package/.next/server/chunks/5671.js +1 -1
  24. package/.next/server/chunks/5754.js +1 -1
  25. package/.next/server/chunks/6335.js +1 -0
  26. package/.next/server/chunks/64.js +1 -0
  27. package/.next/server/chunks/7228.js +1 -0
  28. package/.next/server/chunks/7468.js +1 -0
  29. package/.next/server/chunks/7986.js +1 -0
  30. package/.next/server/chunks/9088.js +1 -1
  31. package/.next/server/chunks/9160.js +1 -0
  32. package/.next/server/chunks/9410.js +1 -0
  33. package/.next/server/chunks/945.js +1 -1
  34. package/.next/server/chunks/9572.js +5 -5
  35. package/.next/server/chunks/983.js +1 -1
  36. package/.next/server/chunks/FilterSkeleton.js +1 -0
  37. package/.next/server/chunks/UIBannerText.js +1 -1
  38. package/.next/server/middleware-build-manifest.js +1 -1
  39. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  40. package/.next/server/pages/404.js +1 -1
  41. package/.next/server/pages/404.js.nft.json +1 -1
  42. package/.next/server/pages/500.js +1 -1
  43. package/.next/server/pages/500.js.nft.json +1 -1
  44. package/.next/server/pages/[...slug].js +1 -1
  45. package/.next/server/pages/[...slug].js.nft.json +1 -1
  46. package/.next/server/pages/[slug]/p.js +1 -1
  47. package/.next/server/pages/[slug]/p.js.nft.json +1 -1
  48. package/.next/server/pages/_app.js.nft.json +1 -1
  49. package/.next/server/pages/_document.js.nft.json +1 -1
  50. package/.next/server/pages/_error.js.nft.json +1 -1
  51. package/.next/server/pages/account.js.nft.json +1 -1
  52. package/.next/server/pages/api/graphql.js.nft.json +1 -1
  53. package/.next/server/pages/api/health/live.js.nft.json +1 -1
  54. package/.next/server/pages/api/health/ready.js.nft.json +1 -1
  55. package/.next/server/pages/api/preview.js.nft.json +1 -1
  56. package/.next/server/pages/checkout.js.nft.json +1 -1
  57. package/.next/server/pages/en-US/404.html +1 -1
  58. package/.next/server/pages/en-US/404.json +1 -1
  59. package/.next/server/pages/en-US/500.html +1 -1
  60. package/.next/server/pages/en-US/500.json +1 -1
  61. package/.next/server/pages/en-US/account.html +1 -1
  62. package/.next/server/pages/en-US/account.json +1 -1
  63. package/.next/server/pages/en-US/checkout.html +1 -1
  64. package/.next/server/pages/en-US/checkout.json +1 -1
  65. package/.next/server/pages/en-US/login.html +1 -1
  66. package/.next/server/pages/en-US/login.json +1 -1
  67. package/.next/server/pages/en-US/s.html +1 -1
  68. package/.next/server/pages/en-US/s.json +1 -1
  69. package/.next/server/pages/en-US.html +1 -1
  70. package/.next/server/pages/en-US.json +1 -1
  71. package/.next/server/pages/index.js +1 -1
  72. package/.next/server/pages/index.js.nft.json +1 -1
  73. package/.next/server/pages/login.js +1 -1
  74. package/.next/server/pages/login.js.nft.json +1 -1
  75. package/.next/server/pages/s.js +1 -1
  76. package/.next/server/pages/s.js.nft.json +1 -1
  77. package/.next/server/pages-manifest.json +1 -1
  78. package/.next/server/webpack-runtime.js +1 -1
  79. package/.next/static/U_FZZ36fhz5jUdj4hsVOx/_buildManifest.js +1 -0
  80. package/.next/static/chunks/{1153.7f616071da309cf5.js → 1153.d7522522b6c917ed.js} +1 -1
  81. package/.next/static/chunks/1550-630692a9badd8065.js +1 -0
  82. package/.next/static/chunks/1978.6d1246731da0f1b0.js +1 -0
  83. package/.next/static/chunks/2552.35321485d927aa08.js +1 -0
  84. package/.next/static/chunks/299.0f890f8a7e5b1846.js +1 -0
  85. package/.next/static/chunks/4501-e4bf228242a711bc.js +1 -0
  86. package/.next/static/chunks/4551.fd8f840c3f6ab36f.js +1 -0
  87. package/.next/static/chunks/6379-6050cc5d5e5f2fa2.js +1 -0
  88. package/.next/static/chunks/64.225f7439e13cc375.js +1 -0
  89. package/.next/static/chunks/9024.a746900e79690cf9.js +1 -0
  90. package/.next/static/chunks/9160.f23fc2e8b2b6b813.js +1 -0
  91. package/.next/static/chunks/9540.d020c6959e15207a.js +1 -0
  92. package/.next/static/chunks/9638-24a86482d4a4b434.js +1 -0
  93. package/.next/static/chunks/983.c7179ebdb154d450.js +1 -0
  94. package/.next/static/chunks/BannerNewsletter.86e9f9fcf3d3e173.js +1 -0
  95. package/.next/static/chunks/BannerText.9822381f787e697d.js +1 -0
  96. package/.next/static/chunks/CartSidebar.c6b00aa5b0667b40.js +1 -0
  97. package/.next/static/chunks/FilterSkeleton.5cea0252ed1ff951.js +1 -0
  98. package/.next/static/chunks/ProductShelf.9341a11c5282b611.js +1 -0
  99. package/.next/static/chunks/RegionModal.5dc5ba359a7f5350.js +1 -0
  100. package/.next/static/chunks/Toast.fabbe374f1d57665.js +1 -0
  101. package/.next/static/chunks/UIBannerText.6284ec1895c33657.js +1 -0
  102. package/.next/static/chunks/UIToast.1e5aada1a1b104f5.js +1 -0
  103. package/.next/static/chunks/pages/{[...slug]-c2bf068f3f84b127.js → [...slug]-0203b74377537f7d.js} +1 -1
  104. package/.next/static/chunks/pages/[slug]/p-d9260cfe3d276855.js +1 -0
  105. package/.next/static/chunks/pages/s-da1c36b5dafdf07b.js +1 -0
  106. package/.next/static/chunks/webpack-d4f52bd51f6992df.js +1 -0
  107. package/.next/trace +97 -98
  108. package/.turbo/turbo-build.log +11 -11
  109. package/.turbo/turbo-lint.log +1 -1
  110. package/.turbo/turbo-test.log +5 -5
  111. package/CHANGELOG.md +6 -0
  112. package/package.json +2 -2
  113. package/src/components/search/Filter/FilterDesktop.tsx +34 -0
  114. package/src/components/search/Filter/FilterSlider.tsx +38 -9
  115. package/src/components/search/Filter/index.ts +1 -1
  116. package/src/components/sections/ProductGallery/DefaultComponents.ts +23 -7
  117. package/src/components/ui/ProductGallery/ProductGallery.tsx +48 -14
  118. package/.next/server/chunks/1844.js +0 -1
  119. package/.next/server/chunks/2195.js +0 -1
  120. package/.next/server/chunks/3199.js +0 -1
  121. package/.next/server/chunks/4350.js +0 -1
  122. package/.next/server/chunks/6150.js +0 -1
  123. package/.next/server/chunks/7917.js +0 -1
  124. package/.next/server/chunks/8419.js +0 -1
  125. package/.next/static/PmpN0_4SJrpkkEJ4TZn7l/_buildManifest.js +0 -1
  126. package/.next/static/chunks/1550-48e8637718c2dd74.js +0 -1
  127. package/.next/static/chunks/2552.b245748eb0e40257.js +0 -1
  128. package/.next/static/chunks/459-404aa12d42b08af1.js +0 -1
  129. package/.next/static/chunks/5810.470a769e37e4b13b.js +0 -1
  130. package/.next/static/chunks/6379-1578190b254c09a6.js +0 -1
  131. package/.next/static/chunks/6999-078369e946149546.js +0 -1
  132. package/.next/static/chunks/9463.6f5675e44c925bfc.js +0 -1
  133. package/.next/static/chunks/983.024c2c324d061242.js +0 -1
  134. package/.next/static/chunks/BannerNewsletter.0b61ee5e562a55e0.js +0 -1
  135. package/.next/static/chunks/BannerText.a10d4f428fc5cd97.js +0 -1
  136. package/.next/static/chunks/CartSidebar.dfa8017080b88d46.js +0 -1
  137. package/.next/static/chunks/ProductShelf.0493dbf6e9982f10.js +0 -1
  138. package/.next/static/chunks/RegionModal.23513fc5245a511f.js +0 -1
  139. package/.next/static/chunks/Toast.8635143b7896eb54.js +0 -1
  140. package/.next/static/chunks/UIBannerText.ac22c6843ac720b8.js +0 -1
  141. package/.next/static/chunks/UIToast.a3b2b8fb137a7e55.js +0 -1
  142. package/.next/static/chunks/pages/[slug]/p-fa2418810fa3abeb.js +0 -1
  143. package/.next/static/chunks/pages/s-c4ff9fe20587e49e.js +0 -1
  144. package/.next/static/chunks/webpack-fcd6fda2fae47824.js +0 -1
  145. package/src/components/search/Filter/Filter.tsx +0 -101
  146. /package/.next/static/{PmpN0_4SJrpkkEJ4TZn7l → U_FZZ36fhz5jUdj4hsVOx}/_ssgManifest.js +0 -0
@@ -48,31 +48,31 @@ Warning: Dynamic Content not found for the page: home. Refer to the Dynamic Cont
48
48
  Route (pages) Size First Load JS
49
49
  ┌ ● / 3.21 kB 121 kB
50
50
  ├ └ css/b1806cbafd0c1f81.css 3.06 kB
51
- ├ /_app 0 B 91.7 kB
52
- ├ ● /[...slug] 2 kB 137 kB
53
- ├ ● /[slug]/p 30.3 kB 148 kB
51
+ ├ /_app 0 B 91.8 kB
52
+ ├ ● /[...slug] 2 kB 131 kB
53
+ ├ ● /[slug]/p 30.5 kB 149 kB
54
54
  ├ ├ css/bf1560439df2c1a1.css 5.66 kB
55
55
  ├ ├ css/e3ff5d95518a5c79.css 6.01 kB
56
56
  ├ └ css/9718991cd57978e9.css 14.8 kB
57
57
  ├ ○ /404 1.46 kB 120 kB
58
58
  ├ ● /500 1.46 kB 120 kB
59
59
  ├ ● /account 712 B 119 kB
60
- ├ λ /api/graphql 0 B 91.7 kB
61
- ├ λ /api/health/live 0 B 91.7 kB
62
- ├ λ /api/health/ready 0 B 91.7 kB
63
- ├ λ /api/preview 0 B 91.7 kB
60
+ ├ λ /api/graphql 0 B 91.8 kB
61
+ ├ λ /api/health/live 0 B 91.8 kB
62
+ ├ λ /api/health/ready 0 B 91.8 kB
63
+ ├ λ /api/preview 0 B 91.8 kB
64
64
  ├ ● /checkout 694 B 119 kB
65
65
  ├ ● /login 1.57 kB 120 kB
66
- └ ● /s 2.44 kB 137 kB
67
- + First Load JS shared by all 94.7 kB
66
+ └ ● /s 2.63 kB 132 kB
67
+ + First Load JS shared by all 94.8 kB
68
68
  ├ chunks/framework-12a146e94cfcf7c4.js 45.4 kB
69
69
  ├ chunks/main-209ac4974b020af1.js 33.1 kB
70
70
  ├ chunks/pages/_app-7d970aad41a57338.js 9.84 kB
71
- ├ chunks/webpack-fcd6fda2fae47824.js 3.39 kB
71
+ ├ chunks/webpack-d4f52bd51f6992df.js 3.48 kB
72
72
  └ css/ee0556daedda6306.css 3.07 kB
73
73
 
74
74
  λ (Server) server-side renders at runtime (uses getInitialProps or getServerSideProps)
75
75
  ○ (Static) automatically rendered as static HTML (uses no initial props)
76
76
  ● (SSG) automatically generated as static HTML + JSON (uses getStaticProps)
77
77
 
78
- Done in 70.31s.
78
+ Done in 70.52s.
@@ -1,4 +1,4 @@
1
1
  yarn run v1.22.22
2
2
  $ next lint
3
3
  ✔ No ESLint warnings or errors
4
- Done in 5.88s.
4
+ Done in 6.28s.
@@ -1,12 +1,12 @@
1
1
  yarn run v1.22.22
2
2
  $ jest
3
- PASS test/utils/multipleTemplates.test.ts (35.749 s)
4
- PASS test/server/cms/index.test.ts (36.923 s)
5
- PASS test/server/index.test.ts (40.444 s)
3
+ PASS test/server/cms/index.test.ts (38.3 s)
4
+ PASS test/utils/multipleTemplates.test.ts (38.303 s)
5
+ PASS test/server/index.test.ts (42.018 s)
6
6
 
7
7
  Test Suites: 3 passed, 3 total
8
8
  Tests: 19 passed, 19 total
9
9
  Snapshots: 0 total
10
- Time: 41.653 s
10
+ Time: 43.199 s
11
11
  Ran all test suites.
12
- Done in 43.25s.
12
+ Done in 44.92s.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,12 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.3.0](https://github.com/vtex/faststore/compare/v3.2.1...v3.3.0) (2024-12-18)
7
+
8
+ ### Features
9
+
10
+ - `Filter` with next/dynamic and lazy import ([#2596](https://github.com/vtex/faststore/issues/2596)) ([73e5496](https://github.com/vtex/faststore/commit/73e54965e656f848c20865cd2760158d634bb0c0))
11
+
6
12
  ## [3.2.1](https://github.com/vtex/faststore/compare/v3.2.0...v3.2.1) (2024-12-16)
7
13
 
8
14
  **Note:** Version bump only for package @faststore/core
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/core",
3
- "version": "3.2.1",
3
+ "version": "3.3.0",
4
4
  "license": "MIT",
5
5
  "repository": "vtex/faststore",
6
6
  "browserslist": "supports es6-module and not dead",
@@ -128,5 +128,5 @@
128
128
  "node": "18.19.0",
129
129
  "yarn": "1.19.1"
130
130
  },
131
- "gitHead": "3b311ad0a99db4cf44c396bde2aa4a01c30a3646"
131
+ "gitHead": "950a3810ce7bb5c482c0ee1332f25669a0585820"
132
132
  }
@@ -7,6 +7,7 @@ import {
7
7
  FilterFacetRange as UIFilterFacetRange,
8
8
  FilterFacets as UIFilterFacets,
9
9
  } from '@faststore/ui'
10
+ import { gql } from '@generated/gql'
10
11
  import type { Filter_FacetsFragment } from '@generated/graphql'
11
12
  import { useFormattedPrice } from 'src/sdk/product/useFormattedPrice'
12
13
  import { useFilter } from 'src/sdk/search/useFilter'
@@ -110,4 +111,37 @@ function FilterDesktop({
110
111
  )
111
112
  }
112
113
 
114
+ export const fragment = gql(`
115
+ fragment Filter_facets on StoreFacet {
116
+ ... on StoreFacetRange {
117
+ key
118
+ label
119
+
120
+ min {
121
+ selected
122
+ absolute
123
+ }
124
+
125
+ max {
126
+ selected
127
+ absolute
128
+ }
129
+
130
+ __typename
131
+ }
132
+ ... on StoreFacetBoolean {
133
+ key
134
+ label
135
+ values {
136
+ label
137
+ value
138
+ selected
139
+ quantity
140
+ }
141
+
142
+ __typename
143
+ }
144
+ }
145
+ `)
146
+
113
147
  export default FilterDesktop
@@ -1,14 +1,43 @@
1
+ import dynamic from 'next/dynamic'
2
+
1
3
  import { useSearch } from '@faststore/sdk'
2
- import {
3
- Filter as UIFilter,
4
- FilterFacetBoolean as UIFilterFacetBoolean,
5
- FilterFacetBooleanItem as UIFilterFacetBooleanItem,
6
- FilterFacetRange as UIFilterFacetRange,
7
- FilterFacets as UIFilterFacets,
8
- FilterSlider as UIFilterSlider,
9
- } from '@faststore/ui'
10
4
  import { useFormattedPrice } from 'src/sdk/product/useFormattedPrice'
11
5
 
6
+ import type {
7
+ FilterFacetBooleanItemProps as UIFilterFacetBooleanItemProps,
8
+ FilterFacetRangeProps as UIFilterFacetRangeProps,
9
+ FilterFacetsProps as UIFilterFacetsProps,
10
+ FilterProps as UIFilterProps,
11
+ FilterSliderProps as UIFilterSliderProps,
12
+ } from '@faststore/ui'
13
+
14
+ const UIFilter = dynamic<{ children: React.ReactNode } & UIFilterProps>(() =>
15
+ /* webpackChunkName: "UIFilter" */
16
+ import('@faststore/ui').then((mod) => mod.Filter)
17
+ )
18
+ const UIFilterFacetBoolean = dynamic<{ children: React.ReactNode }>(() =>
19
+ /* webpackChunkName: "UIFilterFacetBoolean" */
20
+ import('@faststore/ui').then((mod) => mod.FilterFacetBoolean)
21
+ )
22
+ const UIFilterFacetBooleanItem = dynamic<UIFilterFacetBooleanItemProps>(() =>
23
+ /* webpackChunkName: "UIFilterFacetBooleanItem" */
24
+ import('@faststore/ui').then((mod) => mod.FilterFacetBooleanItem)
25
+ )
26
+ const UIFilterFacetRange = dynamic<UIFilterFacetRangeProps>(() =>
27
+ /* webpackChunkName: "UIFilterFacetRange" */
28
+ import('@faststore/ui').then((mod) => mod.FilterFacetRange)
29
+ )
30
+ const UIFilterFacets = dynamic<
31
+ { children: React.ReactNode } & UIFilterFacetsProps
32
+ >(() =>
33
+ /* webpackChunkName: "UIFilterFacets" */
34
+ import('@faststore/ui').then((mod) => mod.FilterFacets)
35
+ )
36
+ const UIFilterSlider = dynamic<UIFilterSliderProps>(() =>
37
+ /* webpackChunkName: "UIFilterSlider" */
38
+ import('@faststore/ui').then((mod) => mod.FilterSlider)
39
+ )
40
+
12
41
  import type { Filter_FacetsFragment } from '@generated/graphql'
13
42
 
14
43
  import type { useFilter } from 'src/sdk/search/useFilter'
@@ -87,7 +116,7 @@ function FilterSlider({
87
116
  <UIFilter
88
117
  testId={`mobile-${testId}`}
89
118
  indicesExpanded={expanded}
90
- onAccordionChange={(index) =>
119
+ onAccordionChange={(index: number) =>
91
120
  dispatch({ type: 'toggleExpanded', payload: index })
92
121
  }
93
122
  >
@@ -1,2 +1,2 @@
1
- export { default } from './Filter'
1
+ export { default as FilterDesktop } from './FilterDesktop'
2
2
  export { default as FilterSlider } from './FilterSlider'
@@ -1,18 +1,34 @@
1
- import { lazy } from 'react'
2
1
  import {
3
2
  Button as UIButton,
3
+ Icon as UIIcon,
4
4
  LinkButton as UILinkButton,
5
5
  Skeleton as UISkeleton,
6
- Icon as UIIcon,
7
6
  } from '@faststore/ui'
8
7
 
9
- import ProductCard from 'src/components/product/ProductCard'
10
- import FilterDesktop from 'src/components/search/Filter/FilterDesktop'
11
- import EmptyGallery from './EmptyGallery'
8
+ import dynamic from 'next/dynamic'
12
9
 
13
- const FilterSlider = lazy(
14
- () => import('src/components/search/Filter/FilterSlider')
10
+ const ProductCard = dynamic(
11
+ () =>
12
+ /* webpackChunkName: "ProductCard" */
13
+ import('src/components/product/ProductCard')
15
14
  )
15
+ const EmptyGallery = dynamic(
16
+ () =>
17
+ /* webpackChunkName: "EmptyGallery" */
18
+ import('./EmptyGallery')
19
+ )
20
+
21
+ const FilterDesktop = dynamic(
22
+ () =>
23
+ /* webpackChunkName: "FilterDesktop" */
24
+ import('src/components/search/Filter/FilterDesktop')
25
+ )
26
+ const FilterSlider = dynamic(
27
+ () =>
28
+ /* webpackChunkName: "FilterSlider" */
29
+ import('src/components/search/Filter/FilterSlider')
30
+ )
31
+
16
32
  export const ProductGalleryDefaultComponents = {
17
33
  MobileFilterButton: UIButton,
18
34
  FilterIcon: UIIcon,
@@ -4,11 +4,11 @@ import type { MouseEvent } from 'react'
4
4
  import { Suspense, lazy } from 'react'
5
5
 
6
6
  import { useUI } from '@faststore/ui'
7
- import Filter from 'src/components/search/Filter'
8
7
  import Sort from 'src/components/search/Sort'
9
- import FilterSkeleton from 'src/components/skeletons/FilterSkeleton'
10
8
  import ProductGridSkeleton from 'src/components/skeletons/ProductGridSkeleton'
11
9
 
10
+ import dynamic from 'next/dynamic'
11
+
12
12
  import { ProductCardProps } from 'src/components/product/ProductCard'
13
13
  import { FilterSliderProps } from 'src/components/search/Filter/FilterSlider'
14
14
  import { SortProps } from 'src/components/search/Sort/Sort'
@@ -21,8 +21,18 @@ import {
21
21
  import { useProductsPrefetch } from 'src/sdk/product/useProductsPrefetch'
22
22
  import { useDelayedFacets } from 'src/sdk/search/useDelayedFacets'
23
23
  import { useDelayedPagination } from 'src/sdk/search/useDelayedPagination'
24
+ import { useFilter } from 'src/sdk/search/useFilter'
25
+ import useScreenResize from 'src/sdk/ui/useScreenResize'
24
26
 
25
27
  const ProductGalleryPage = lazy(() => import('./ProductGalleryPage'))
28
+ const FilterSkeleton = dynamic(
29
+ () =>
30
+ import(
31
+ /* webpackChunkName: "FilterSkeleton" */
32
+ 'src/components/skeletons/FilterSkeleton'
33
+ )
34
+ )
35
+
26
36
  const GalleryPageSkeleton = <ProductGridSkeleton loading />
27
37
 
28
38
  export interface ProductGalleryProps {
@@ -69,7 +79,7 @@ function ProductGallery({
69
79
  totalCount,
70
80
  searchTermLabel,
71
81
  totalCountLabel,
72
- filter,
82
+ filter: filterCmsData,
73
83
  previousPageButton,
74
84
  loadMorePageButton,
75
85
  sortBySelector,
@@ -84,20 +94,25 @@ function ProductGallery({
84
94
  PrevIcon,
85
95
  ResultsCountSkeleton,
86
96
  SortSkeleton,
97
+ __experimentalFilterDesktop: FilterDesktop,
98
+ __experimentalFilterSlider: FilterSlider,
87
99
  } = useOverrideComponents<'ProductGallery'>()
88
100
 
89
- const { openFilter } = useUI()
101
+ const { openFilter, filter: displayFilter } = useUI()
90
102
  const { pages, addNextPage, addPrevPage, itemsPerPage } = useSearch()
91
103
  const context = usePage<SearchPageContext | PLPContext>()
92
104
  const data = context?.data
93
105
  const facets = useDelayedFacets(data) ?? []
94
106
  const { next, prev } = useDelayedPagination(totalCount)
95
107
 
108
+ const { isDesktop } = useScreenResize()
109
+
96
110
  useProductsPrefetch(prev ? prev.cursor : null)
97
111
  useProductsPrefetch(next ? next.cursor : null)
98
112
 
99
113
  const hasFacetsLoaded = Boolean(data?.search?.facets)
100
114
  const hasProductsLoaded = Boolean(data?.search?.products)
115
+ const filter = useFilter(facets)
101
116
 
102
117
  return (
103
118
  <section data-testid="product-gallery" data-fs-product-listing>
@@ -115,13 +130,32 @@ function ProductGallery({
115
130
  data-fs-product-listing-content-grid
116
131
  data-fs-content="product-gallery"
117
132
  >
118
- <div data-fs-product-listing-filters>
119
- <FilterSkeleton loading={!hasFacetsLoaded}>
120
- {hasFacetsLoaded && facets?.length > 0 && (
121
- <Filter facets={facets} filter={filter} />
122
- )}
123
- </FilterSkeleton>
124
- </div>
133
+ {isDesktop && (
134
+ <div data-fs-product-listing-filters>
135
+ <FilterSkeleton loading={!hasFacetsLoaded}>
136
+ {hasFacetsLoaded && facets?.length > 0 && (
137
+ <div className="hidden-mobile">
138
+ <FilterDesktop.Component
139
+ {...FilterDesktop.props}
140
+ {...filter}
141
+ title={filterCmsData?.title}
142
+ />
143
+ </div>
144
+ )}
145
+ </FilterSkeleton>
146
+ </div>
147
+ )}
148
+ {!isDesktop && displayFilter && (
149
+ <div data-fs-product-listing-filters>
150
+ <FilterSlider.Component
151
+ {...FilterSlider.props}
152
+ {...filter}
153
+ title={filterCmsData?.title}
154
+ clearButtonLabel={filterCmsData?.mobileOnly?.clearButtonLabel}
155
+ applyButtonLabel={filterCmsData?.mobileOnly?.applyButtonLabel}
156
+ />
157
+ </div>
158
+ )}
125
159
  <div data-fs-product-listing-results-count data-count={totalCount}>
126
160
  <ResultsCountSkeleton.Component
127
161
  data-fs-product-listing-results-count-skeleton
@@ -168,11 +202,11 @@ function ProductGallery({
168
202
  height={16}
169
203
  {...FilterIcon.props}
170
204
  name={
171
- filter?.mobileOnly?.filterButton?.icon?.icon ??
205
+ filterCmsData?.mobileOnly?.filterButton?.icon?.icon ??
172
206
  FilterIcon.props.name
173
207
  }
174
208
  aria-label={
175
- filter?.mobileOnly?.filterButton?.icon?.alt ??
209
+ filterCmsData?.mobileOnly?.filterButton?.icon?.alt ??
176
210
  FilterIcon.props['aria-label']
177
211
  }
178
212
  />
@@ -183,7 +217,7 @@ function ProductGallery({
183
217
  // This decision can be reviewed later if needed
184
218
  onClick={openFilter}
185
219
  >
186
- {filter?.mobileOnly?.filterButton?.label}
220
+ {filterCmsData?.mobileOnly?.filterButton?.label}
187
221
  </MobileFilterButton.Component>
188
222
  )}
189
223
  </FilterButtonSkeleton.Component>
@@ -1 +0,0 @@
1
- "use strict";exports.id=1844,exports.ids=[1844],exports.modules={1857:(e,t,r)=>{r.d(t,{Z:()=>l});var a=r(6689),n=r.n(a);let o=(0,a.forwardRef)(function({testId:e="fs-overlay",...t},r){return n().createElement("div",{ref:r,"data-fs-overlay":!0,role:"presentation","data-testid":e,...t})}),l=o},3666:(e,t,r)=>{r.d(t,{b:()=>useFadeEffect});var a=r(6689);let useFadeEffect=()=>{let[e,t]=(0,a.useState)("out"),r=(0,a.useCallback)(()=>t("out"),[]),n=(0,a.useCallback)(()=>t("in"),[]);return(0,a.useEffect)(()=>(n(),()=>{r()}),[n,r]),{fade:e,fadeIn:n,fadeOut:r}}},6973:(e,t,r)=>{r.d(t,{E:()=>useTrapFocus});var a=r(6689),n=r(3823);let useTrapFocus=({trapFocusRef:e,beforeElementRef:t,afterElementRef:r})=>{let o=(0,a.useRef)(),l=(0,a.useRef)(document.hasFocus()?document.activeElement:null);(0,a.useEffect)(()=>{let e=l.current;return()=>{e?.focus()}},[l]),(0,a.useEffect)(()=>{if(!e.current)return;o.current||(o.current=(0,n.tabbable)(e.current));let[t]=o.current;if(!t){e.current.focus();return}t.focus()},[e]),(0,a.useEffect)(()=>{if(!e.current||!t.current||!r.current)return;let a=t.current,l=r.current,s=e.current,handleLoopFocus=t=>{document.hasFocus()&&(o.current=(0,n.tabbable)(e.current),o.current.length||s.focus(),t.target===a&&o.current[o.current.length-1]?.focus(),t.target===l&&o.current[0]?.focus())};return a?.addEventListener("focusin",handleLoopFocus),l?.addEventListener("focusin",handleLoopFocus),()=>{a?.removeEventListener("focusin",handleLoopFocus),l?.removeEventListener("focusin",handleLoopFocus)}},[o,r,t,e])}},8373:(e,t,r)=>{r.d(t,{Z:()=>Modal_Modal});var a=r(6689),n=r.n(a),o=r(6405),l=r(1857),s=r(6652),d=r(3666),u=r(6973);let ModalContentPure=({beforeElementRef:e,trapFocusRef:t,afterElementRef:r,testId:a="store-modal-content",children:o,...l})=>n().createElement(n().Fragment,null,n().createElement("div",{ref:e,"data-testid":"beforeElement",tabIndex:0,"aria-hidden":"true"}),n().createElement("div",{"data-fs-modal-content":!0,"data-testid":a,ref:t,"aria-modal":"true",role:"dialog",tabIndex:-1,...l},o),n().createElement("div",{ref:r,"data-testid":"afterElement",tabIndex:0,"aria-hidden":"true"})),Modal_ModalContent=({children:e,...t})=>{let r=(0,a.useRef)(null),o=(0,a.useRef)(null),l=(0,a.useRef)(null);return(0,u.E)({beforeElementRef:o,trapFocusRef:r,afterElementRef:l}),n().createElement(ModalContentPure,{...t,trapFocusRef:r,beforeElementRef:o,afterElementRef:l,onClick:e=>{e.stopPropagation()}},e)},Modal_Modal=({children:e,testId:t="fs-modal",isOpen:r=!0,onDismiss:a,overlayProps:u,...c})=>{let{closeModal:i}=(0,s.l)(),{fade:f,fadeOut:E,fadeIn:m}=(0,d.b)();return r?(0,o.createPortal)(n().createElement(l.Z,{onClick:e=>{e.defaultPrevented||(e.stopPropagation(),E?.(),a?.())},onKeyDown:e=>{"Escape"!==e.key||e.defaultPrevented||(e.stopPropagation(),E?.(),a?.())},...u},n().createElement(Modal_ModalContent,{onTransitionEnd:()=>"out"===f&&i(),"data-fs-modal":!0,"data-fs-modal-state":f,testId:t,...c},"function"==typeof e?e({fade:f,fadeOut:E,fadeIn:m}):e)),document.body):null}},1844:(e,t,r)=>{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var a=r(6689),n=r.n(a),o=r(3666),l=r(6652),s=r(7215),d=r(5049),u=r(3339);let __WEBPACK_DEFAULT_EXPORT__=function({title:e,size:t,direction:r,children:a,applyBtnProps:c,clearBtnProps:i,overlayProps:f,onClose:E,...m}){let{fade:_,fadeOut:v}=(0,o.b)(),{closeFilter:p}=(0,l.l)();return n().createElement(s.Z,{"data-fs-filter-slider":!0,isOpen:!0,fade:_,onDismiss:v,size:t,direction:r,onTransitionEnd:()=>"out"===_&&p(),overlayProps:f,...m},n().createElement("div",{"data-fs-filter-slider-content":!0},n().createElement(d.Z,{onClose:()=>{E(),v()}},n().createElement("h2",{"data-fs-filter-slider-title":!0},e)),a),n().createElement("footer",{"data-fs-filter-slider-footer":!0},n().createElement(u.Z,{"data-fs-filter-slider-footer-button-clear":!0,...i}),n().createElement(u.Z,{"data-fs-filter-slider-footer-button-apply":!0,"data-testid":"filter-slider-button-apply",...c,onClick:e=>{c?.onClick?.(e),v()}})))}},7215:(e,t,r)=>{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var a=r(6689),n=r.n(a),o=r(8373);let __WEBPACK_DEFAULT_EXPORT__=function({testId:e="fs-slide-over",isOpen:t,direction:r="leftSide",size:a="full",fade:l="out",children:s,overlayProps:d,onDismiss:u,...c}){return n().createElement(o.Z,{"data-fs-modal":null,"data-fs-slide-over":!0,"data-fs-slide-over-direction":r,"data-fs-slide-over-size":a,"data-fs-slide-over-state":l,isOpen:t,onDismiss:u,testId:e,overlayProps:d,...c},s)}},5049:(e,t,r)=>{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var a=r(6689),n=r.n(a),o=r(7041),l=r(2614);let __WEBPACK_DEFAULT_EXPORT__=({children:e,closeBtnProps:t={},onClose:r,...a})=>n().createElement("header",{"data-fs-slide-over-header":!0,...a},e,n().createElement(o.Z,{"data-fs-slide-over-header-icon":!0,"aria-label":"Close",icon:n().createElement(l.Z,{name:"X"}),onClick:r,...t}))}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=2195,exports.ids=[2195],exports.modules={6133:(e,t,r)=>{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var n=r(6689),a=r.n(n);let __WEBPACK_DEFAULT_EXPORT__=function({testId:e="fs-empty-state",title:t,titleIcon:r,variant:n="default",bkgColor:o="default",children:c,...s}){return a().createElement("section",{"data-fs-empty-state":!0,"data-fs-empty-state-variant":n,"data-fs-empty-state-bkg-color":o,"data-fs-content":"empty-state","data-testid":e,...s},t&&a().createElement("header",{"data-fs-empty-state-title":!0},r&&a().createElement(a().Fragment,null,r),a().createElement("p",null,t)),c)}},5110:(e,t,r)=>{r.d(t,{C:()=>o});var n=r(7296),a=r(945);function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let o=(0,n.v)(_objectSpread(_objectSpread({},{section:"EmptyState"}),{},{Section:a.Z}))}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=3199,exports.ids=[3199],exports.modules={2256:(e,t,r)=>{r.d(t,{Z:()=>d});var n=r(6689),a=r.n(n);let o=(0,n.forwardRef)(function({testId:e="fs-input",...t},r){return a().createElement("input",{ref:r,"data-fs-input":!0,"data-testid":e,...t})}),d=o},1953:(e,t,r)=>{r.d(t,{Z:()=>d});var n=r(6689),a=r.n(n);let o=(0,n.forwardRef)(function({testId:e="fs-label",children:t,...r},n){return a().createElement("label",{ref:n,"data-fs-label":!0,"data-testid":e,...r},t)}),d=o},792:(e,t,r)=>{r.d(t,{Z:()=>d});var n=r(6689),a=r.n(n);let o=(0,n.forwardRef)(function({testId:e="fs-skeleton",loading:t=!0,shimmer:r=!0,children:n,size:o,border:d,borderRadius:l,...i},c){let s={width:o.width,height:o.height};return t?a().createElement("div",{ref:c,"data-fs-skeleton":!0,"data-testid":e,"data-fs-skeleton-border":d||null,style:l?{...s,borderRadius:l}:s,...i},r&&a().createElement("div",{"data-fs-skeleton-shimmer":!0})):a().createElement(a().Fragment,null,n)}),d=o},1516:(e,t,r)=>{r.d(t,{A:()=>useAccordion,Z:()=>l});var n=r(6689),a=r.n(n);let o=(0,n.createContext)(void 0),d=(0,n.forwardRef)(function({testId:e="fs-accordion",indices:t,onChange:r,children:d,...l},i){let c=a().Children.map(d,(e,t)=>(0,n.cloneElement)(e,{index:e.props.index??t})),s={indices:new Set(t),onChange:r,numberOfItems:c.length};return a().createElement(o.Provider,{value:s},a().createElement("div",{ref:i,"data-fs-accordion":!0,role:"region","data-testid":e,...l},c))});function useAccordion(){let e=(0,n.useContext)(o);if(void 0===e)throw Error("Do not use Accordion components outside the Accordion context.");return e}let l=d},7734:(e,t,r)=>{r.d(t,{Z:()=>s});var n=r(6689),a=r.n(n),o=r(1516),d=r(783),l=r(2614),i=r(3339);let c=(0,n.forwardRef)(function({testId:e="fs-accordion-button",expandedIcon:t=a().createElement(l.Z,{name:"MinusCircle","data-icon":"expanded"}),collapsedIcon:r=a().createElement(l.Z,{name:"PlusCircle","data-icon":"collapsed"}),children:n,...c},s){let{indices:u,onChange:m,numberOfItems:f}=(0,o.A)(),{index:p,panel:E,button:b,prefixId:v}=(0,d.D)();return a().createElement(i.Z,{ref:s,id:b,variant:"tertiary","data-fs-accordion-button":!0,"aria-expanded":u.has(p),icon:u.has(p)?t:r,iconPosition:"right","aria-controls":E,onKeyDown:e=>{if(["ArrowDown","ArrowUp"].includes(e.key))switch(e.key){case"ArrowDown":e.preventDefault(),(()=>{let e=Number(p)+1===f?0:Number(p)+1;return document.getElementById(`${v&&`${v}-`}button--${e}`)})()?.focus();break;case"ArrowUp":e.preventDefault(),(()=>{let e=Number(p)-1<0?f-1:Number(p)-1;return document.getElementById(`${v&&`${v}-`}button--${e}`)})()?.focus()}},onClick:()=>{m(p)},"data-testid":e,...c},n)}),s=c},783:(e,t,r)=>{r.d(t,{D:()=>useAccordionItem,Z:()=>l});var n=r(6689),a=r.n(n);let o=(0,n.createContext)(void 0),d=(0,n.forwardRef)(function({prefixId:e="",index:t=0,as:r,children:n,testId:d="fs-accordion-item",...l},i){let c=r??"div",s={index:t,prefixId:e,panel:`${e&&`${e}-`}panel--${t}`,button:`${e&&`${e}-`}button--${t}`};return a().createElement(o.Provider,{value:s},a().createElement(c,{ref:i,"data-fs-accordion-item":!0,"data-testid":d,...l},n))});function useAccordionItem(){let e=(0,n.useContext)(o);if(void 0===e)throw Error("Do not use AccordionItem components outside the AccordionItem context.");return e}let l=d},7583:(e,t,r)=>{r.d(t,{Z:()=>i});var n=r(6689),a=r.n(n),o=r(1516),d=r(783);let l=(0,n.forwardRef)(function({testId:e="fs-accordion-panel",children:t,...r},n){let{indices:l}=(0,o.A)(),{index:i,button:c,panel:s}=(0,d.D)();return a().createElement("div",{ref:n,id:s,"data-fs-accordion-panel":!0,"aria-labelledby":c,role:"region",hidden:!l.has(i),"data-testid":e,...r},t)}),i=l},1972:(e,t,r)=>{r.d(t,{Z:()=>Breadcrumb_Breadcrumb});var n=r(6689),a=r.n(n),o=r(2614),d=r(727),l=r(7169),i=r(9570),c=r(5741),s=r(4451),u=r(6588);let m=(0,n.forwardRef)(function({children:e,divider:t="",testId:r="fs-breadcrumb",breadcrumbList:m,isDesktop:f=!1,renderLink:p,homeLink:E,dropdownButtonIcon:b=a().createElement(o.Z,{name:"DotsThree"}),collapsedItemsIcon:v=a().createElement(o.Z,{"data-fs-dropdown-item-icon":!0,name:"ArrowElbowDownRight"}),...w},g){let h=f?m[0]:null,Z=f?m.slice(1,-2):m.slice(0,-2),P=m.slice(-2),D=m.length>4,k=(0,n.useCallback)(e=>{let t=p?.(e),r=e.collapsed?{"data-fs-breadcrumb-dropdown-link":!0}:{"data-fs-breadcrumb-link":!0};return t?(0,n.cloneElement)(t,{...r,key:e.itemProps.position}):a().createElement(d.Z,{...r,href:e.itemProps.item,key:e.itemProps.position},e.itemProps.name)},[p]);return a().createElement(u.Z,{ref:g,"data-fs-breadcrumb-is-desktop":f,...w},E,!D&&m.map((e,t)=>m.length===t+1?a().createElement("span",{key:String(e.position)},e.name):k({itemProps:e,collapsed:!1})),D&&h&&k({itemProps:h,collapsed:!1}),D&&a().createElement(l.Z,null,a().createElement(i.Z,{"aria-label":"View More","data-fs-breadcrumb-dropdown-button":!0,size:"small"},b),a().createElement(c.Z,{"data-fs-breadcrumb-dropdown-menu":!0},Z.map(e=>a().createElement(s.Z,{"data-fs-breadcrumb-dropdown-item":!0,key:String(e.position),icon:v},k({itemProps:e,collapsed:!0}))))),D&&P.map((e,t)=>P.length===t+1?a().createElement("span",{key:String(e.position)},e.name):k({itemProps:e,collapsed:!1})))}),Breadcrumb_Breadcrumb=({breadcrumbList:e,...t})=>a().createElement(a().Fragment,null,a().createElement(m,{breadcrumbList:e,...t}),a().createElement(m,{breadcrumbList:e,isDesktop:!0,...t}))},6588:(e,t,r)=>{r.d(t,{Z:()=>l});var n=r(6689),a=r.n(n),o=r(4564);let Breadcrumb_Divider=({divider:e,testId:t})=>{let r={"data-fs-breadcrumb-divider":!0,"aria-hidden":!0,"data-testid":`${t}-divider`};return a().isValidElement(e)?a().cloneElement(e,r):a().createElement("span",{...r},e??"/")},Breadcrumb_ListItem=({children:e,isLastItem:t,divider:r,testId:n})=>{let o={"data-testid":`${n}-item`,"data-fs-breadcrumb-item":!t||"current","aria-current":t?"page":void 0};return a().isValidElement(e)?a().createElement("li",{"data-fs-breadcrumb-list-item":!0},a().cloneElement(e,o),t?null:a().createElement(Breadcrumb_Divider,{divider:r,testId:n})):a().createElement("li",{"data-fs-breadcrumb-list-item":!0},a().createElement("span",{...o},e,t?null:a().createElement(Breadcrumb_Divider,{divider:r,testId:n})))},d=(0,n.forwardRef)(function({children:e,divider:t="",testId:r="fs-breadcrumb",...n},d){return a().createElement("nav",{"aria-label":"Breadcrumb",role:"navigation",ref:d,"data-fs-breadcrumb":!0,"data-testid":r,...n},a().createElement(o.Z,{as:"ol","data-fs-breadcrumb-list":!0,"data-fs-content":"breadcrumb"},a().Children.toArray(e).map((e,n,o)=>{let d=n===o.length-1;return a().createElement(Breadcrumb_ListItem,{isLastItem:d,divider:t,key:`breadcrumb-${n}`,testId:r},e)})))}),l=d},2946:(e,t,r)=>{r.d(t,{Z:()=>DiscountBadge_DiscountBadge});var n=r(6689),a=r.n(n),o=r(276);let useDiscountPercent=(e,t)=>(0,n.useMemo)(()=>{let r=e-t,n=100*r/e;return Math.round(n)},[t,e]),DiscountBadge_DiscountBadge=({listPrice:e,spotPrice:t,thresholdLow:r=15,thresholdHigh:n=40,size:d,testId:l="fs-discount-badge"})=>{let i=useDiscountPercent(e,t);if(0===i)return a().createElement(a().Fragment,null);let c=i<=r?"low":i<=n?"medium":"high";return a().createElement(o.Z,{"data-fs-discount-badge":!0,"data-fs-discount-badge-variant":c,size:d,"data-testid":l},i,"% off")}},7169:(e,t,r)=>{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var n=r(6689),a=r.n(n),o=r(5317);let __WEBPACK_DEFAULT_EXPORT__=({children:e,isOpen:t,onDismiss:r,id:d="fs-dropdown"})=>{let[l,i]=(0,n.useState)(!1),c=(0,n.useRef)([]),s=(0,n.useRef)(0),u=(0,n.useRef)(null),m=t??l,f=(0,n.useCallback)(()=>{i(!1),r?.()},[r]),open=()=>{i(!0)},p=(0,n.useCallback)(()=>{i(e=>(e&&(r?.(),u.current?.focus()),!e))},[r]),E=(0,n.useCallback)(e=>{u.current=e},[]);(0,n.useEffect)(()=>{i(t??!1)},[t]),(0,n.useEffect)(()=>{m&&c?.current[0]?.focus()},[m]),(0,n.useEffect)(()=>{let e=!0,event=t=>{let r=c?.current.some(e=>t.target===e||e.contains(t.target));if(e){e=!1;return}r||f()};return m?document.addEventListener("click",event):document.removeEventListener("click",event),()=>{document.removeEventListener("click",event)}},[f,m]);let b=(0,n.useMemo)(()=>({isOpen:m,close:f,open,toggle:p,dropdownTriggerRef:u,addDropdownTriggerRef:E,selectedDropdownItemIndexRef:s,dropdownItemsRef:c,id:d}),[m,f,p,E,d]);return a().createElement(o.Z.Provider,{value:b},e)}},9570:(e,t,r)=>{r.d(t,{Z:()=>i});var n=r(6689),a=r.n(n),o=r(3339),d=r(5494);let useDropdownTrigger=({triggerRef:e})=>{let{toggle:t,dropdownTriggerRef:r,addDropdownTriggerRef:a,isOpen:o,id:l}=(0,d.x)();return(0,n.useImperativeHandle)(e,()=>r.current,[r]),{onClick:t,ref:a,"aria-expanded":o,"aria-controls":l,"aria-haspopup":"menu"}},l=(0,n.forwardRef)(function({testId:e="fs-dropdown-button",children:t,asChild:r=!1,...d},l){let i=useDropdownTrigger({triggerRef:l}),c=a().isValidElement(t)?(0,n.cloneElement)(t,{...i,...t.props}):t;return a().createElement(a().Fragment,null,r?c:a().createElement(o.Z,{"data-fs-dropdown-button":!0,"data-testid":e,variant:"tertiary",...i,...d},t))}),i=l},4451:(e,t,r)=>{r.d(t,{Z:()=>l});var n=r(6689),a=r.n(n),o=r(5494);let useDropdownItem=({ref:e,onClick:t,dismissOnClick:r=!0})=>{let{dropdownItemsRef:a,selectedDropdownItemIndexRef:d,close:l}=(0,o.x)(),[i,c]=(0,n.useState)(0),s=(0,n.useRef)(),onFocusItem=()=>{d.current=i,a?.current[d.current]?.focus()};return(0,n.useImperativeHandle)(e,()=>s.current,[]),{ref:e=>{e&&!a?.current.includes(e)&&(a?.current.push(e),c(a?.current.findIndex(t=>t===e)??0)),s.current=e},onFocus:onFocusItem,onMouseEnter:onFocusItem,onClick:e=>{t?.(e),r&&l?.()},role:"menuitem",tabIndex:-1,"data-index":i}},d=(0,n.forwardRef)(function({children:e,asChild:t,icon:r,onClick:o,dismissOnClick:d=!0,testId:l="fs-dropdown-item",...i},c){let s=useDropdownItem({ref:c,onClick:o,dismissOnClick:d}),u=a().isValidElement(e)?(0,n.cloneElement)(e,{...s,...e.props}):e;return a().createElement(a().Fragment,null,t?u:a().createElement("button",{"data-fs-dropdown-item":!0,"data-testid":l,...s,...i},!!r&&r,e))}),l=d},5741:(e,t,r)=>{r.d(t,{Z:()=>Dropdown_DropdownMenu});var n=r(6689),a=r.n(n),o=r(6405),d=r(5494);let useDropdownPosition=(e="left")=>{let{dropdownTriggerRef:t,isOpen:r}=(0,d.x)(),[a,o]=(0,n.useState)({top:0,left:0,right:"auto",transform:"none",loading:!0});return(0,n.useEffect)(()=>{let updateMenuPosition=()=>{let r="undefined"!=typeof window;if(!t?.current)return;let n=t.current.getBoundingClientRect(),a=n?.top??0,d=n?.height??0,l=n?.left??0,i=n?.width??0,c=r?document?.documentElement?.scrollTop:0,s=r?document?.documentElement?.scrollLeft:0,u=l+s,m="auto",f="none";"right"===e?(m=`${document.documentElement.clientWidth-l-i}px`,u="auto"):"center"===e&&(u=l+i/2+s,f="translateX(-50%)"),o({top:a+d+c,left:u,right:m,transform:f,loading:!1})};return r&&(updateMenuPosition(),window.addEventListener("resize",updateMenuPosition)),()=>{window.removeEventListener("resize",updateMenuPosition)}},[t,r,e]),{...a,position:"absolute"}},Dropdown_DropdownMenu=({children:e,testId:t="fs-dropdown-menu",size:r="regular",align:n="left",style:l,...i})=>{let{isOpen:c,close:s,dropdownItemsRef:u,selectedDropdownItemIndexRef:m,dropdownTriggerRef:f,id:p}=(0,d.x)(),{loading:E,...b}=useDropdownPosition(n),v=a().Children.toArray(e).length,handleDownPress=()=>{m.current<v-1?m.current++:m.current=0,u?.current[m.current]?.focus()},handleUpPress=()=>{m.current>0?m.current--:m.current=v-1,u?.current[m.current]?.focus()},handleHomePress=()=>{m.current=0,u?.current[m.current]?.focus()},handleEndPress=()=>{m.current=v-1,u?.current[m.current]?.focus()},handleEscapePress=()=>{s?.(),f?.current?.focus()},handleKeyNavigatePress=e=>{let t=u?.current??[],r=m.current,n=[...t.slice(r+1),...t.slice(0,r+1)],a=n.find(t=>t.textContent?.[0]?.toLowerCase()===e.toLowerCase());a&&(m.current=t.indexOf(a),a.focus())};return c&&!E?(0,o.createPortal)(a().createElement("div",{role:"presentation","data-fs-dropdown-overlay":!0,onKeyDown:e=>{if(!e.defaultPrevented&&"Enter"!==e.key&&" "!==e.key){switch(e.preventDefault(),e.key){case"Escape":handleEscapePress();break;case"ArrowDown":handleDownPress();break;case"ArrowUp":handleUpPress();break;case"Home":handleHomePress();break;case"End":handleEndPress();break;default:handleKeyNavigatePress(e.key)}e.stopPropagation()}},"data-testid":`${t}-overlay`},a().createElement("div",{role:"menu","aria-orientation":"vertical","data-fs-dropdown-menu":!0,"data-fs-dropdown-menu-size":r,"data-testid":t,style:{...b,...l},id:p,...i},e)),document.body):(u.current=[],null)}},5317:(e,t,r)=>{r.d(t,{Z:()=>o});var n=r(6689);let a=(0,n.createContext)({isOpen:!1,dropdownTriggerRef:null,selectedDropdownItemIndexRef:null,dropdownItemsRef:null,id:"fs-dropdown"}),o=a},5494:(e,t,r)=>{r.d(t,{x:()=>useDropdown});var n=r(6689),a=r(5317);let useDropdown=()=>{let e=(0,n.useContext)(a.Z);if(void 0===e)throw Error("Do not use useDropdown hook outside the Dropdown context.");return e}},3779:(e,t,r)=>{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var n=r(6689),a=r.n(n),o=r(2256),d=r(1953),l=r(7041),i=r(2614),c=r(3339);let __WEBPACK_DEFAULT_EXPORT__=({id:e,label:t,type:r="text",error:n,displayClearButton:s,actionable:u,buttonActionText:m="Apply",onSubmit:f,onClear:p,placeholder:E=" ",inputRef:b,disabled:v,value:w,testId:g="fs-input-field",...h})=>{let Z=!v&&n&&""!==n,P=u&&!v&&""!==w;return a().createElement("div",{"data-fs-input-field":!0,"data-fs-input-field-actionable":u,"data-fs-input-field-error":n&&""!==n,"data-testid":g},a().createElement(o.Z,{id:e,type:r,value:w,ref:b,disabled:v,placeholder:E,...h}),a().createElement(d.Z,{htmlFor:e},t),P&&(s||n?a().createElement(l.Z,{size:"small","aria-label":"Clear Field",icon:a().createElement(i.Z,{name:"XCircle"}),onClick:()=>{p?.(),b?.current?.focus()}}):a().createElement(c.Z,{variant:"tertiary",size:"small",onClick:f},m)),Z&&a().createElement("span",{"data-fs-input-field-error-message":!0},n))}},8394:(e,t,r)=>{r.d(t,{Z:()=>d});var n=r(6689),a=r.n(n);let o=(0,n.forwardRef)(function({testId:e="fs-product-card",variant:t="default",bordered:r=!1,outOfStock:n,children:o,...d},l){return a().createElement("article",{ref:l,"data-fs-product-card":n?"out-of-stock":"","data-fs-product-card-variant":t,"data-fs-product-card-bordered":r,"data-testid":e,...d},o)}),d=o},547:(e,t,r)=>{r.d(t,{Z:()=>p});var n=r(6689),a=r.n(n),o=r(727),d=r(9088),l=r(1953),i=r(3024),c=r(2614),s=r(2946),u=r(276),m=r(3339);let f=(0,n.forwardRef)(function({testId:e="fs-product-card-content",title:t,linkProps:r,price:n,outOfStock:f,outOfStockLabel:p="Out of stock",ratingValue:E,showDiscountBadge:b,buttonLabel:v="Add",onButtonClick:w,children:g,includeTaxes:h=!1,includeTaxesLabel:Z="Tax included",sponsored:P=!1,sponsoredLabel:D="Sponsored",...k},y){let _=n?.listPrice?n.listPrice:0,C=n?.value?n.value:0;return a().createElement("section",{ref:y,"data-fs-product-card-content":!0,"data-fs-product-card-badge":b,"data-testid":e,...k},P&&a().createElement("span",{"data-fs-product-card-sponsored-label":!0},D),a().createElement("div",{"data-fs-product-card-heading":!0},a().createElement("h3",{"data-fs-product-card-title":!0},a().createElement(o.Z,{...r,title:t},a().createElement("span",null,t))),!f&&a().createElement(d.Z,{"data-fs-product-card-prices":!0,value:C,listPrice:_,formatter:n?.formatter}),h&&a().createElement(l.Z,{"data-fs-product-card-taxes-label":!0},Z),E&&a().createElement(i.Z,{value:E,icon:a().createElement(c.Z,{name:"Star"})})),b&&!f&&a().createElement(s.Z,{listPrice:_,spotPrice:C}),f&&a().createElement(u.Z,null,p),w&&!f&&a().createElement("div",{"data-fs-product-card-actions":!0},a().createElement(m.Z,{variant:"primary",icon:a().createElement(c.Z,{name:"ShoppingCart"}),iconPosition:"left",size:"small",onClick:w},v)))}),p=f},5167:(e,t,r)=>{r.d(t,{Z:()=>d});var n=r(6689),a=r.n(n);let o=(0,n.forwardRef)(function({testId:e="fs-product-card-image",aspectRatio:t=1,children:r,...n},o){return a().createElement("div",{ref:o,"data-fs-product-card-image":!0,"data-testid":e,style:{"--fs-product-card-image-aspect-ratio":t},...n},r)}),d=o},3024:(e,t,r)=>{r.d(t,{Z:()=>c});var n=r(6689),a=r.n(n),o=r(2614),d=r(7041),l=r(4564);let i=(0,n.forwardRef)(function({children:e,testId:t="fs-rating",length:r=5,value:i=0,icon:c,onChange:s,...u},m){let[f,p]=(0,n.useState)(0),E={"data-fs-rating-icon-outline":!0},b=a().isValidElement(c)?c:a().createElement(o.Z,{name:"Star"});return a().createElement(l.Z,{ref:m,"data-fs-rating":!0,"data-fs-rating-actionable":"function"==typeof s,"data-testid":t,...u},Array.from({length:r}).map((e,r)=>{let n=r+1;return a().createElement("li",{key:`rating-${r}`,"data-fs-rating-item":n<=(f||i)?"full":n-i>0&&n-i<1?"partial":"empty","data-testid":`${t}-item`},s?a().createElement(d.Z,{"data-fs-rating-button":!0,icon:b,size:"small","aria-label":"rate",onClick:()=>{s(n)},onMouseEnter:()=>p(n),onMouseLeave:()=>p(i)}):a().createElement(a().Fragment,null,a().createElement("div",{"data-fs-rating-icon-wrapper":!0},b),a().isValidElement(c)?a().cloneElement(c,E):a().createElement(o.Z,{name:"Star","data-fs-rating-icon-outline":!0})))}))}),c=i}};
@@ -1 +0,0 @@
1
- exports.id=4350,exports.ids=[4350],exports.modules={3835:(e,n,t)=>{"use strict";t.d(n,{Z:()=>sections_Incentives_Incentives});var i=t(4564),s=t(2659),c=t(2614),o=t(997);let Incentives_Incentives=function({incentives:e,variant:n="horizontal",colored:t=!1,label:a}){return o.jsx("section",{"data-fs-incentives":!0,"data-fs-incentives-colored":t,"data-fs-incentives-variant":n,"aria-label":`Incentives List ${a}`,children:o.jsx(i.Z,{"data-fs-content":"incentives",children:e.map((e,n)=>o.jsx("li",{role:"listitem",children:(0,o.jsxs)(s.Z,{tabIndex:0,children:[o.jsx(c.Z,{"data-fs-incentive-icon":!0,"aria-label":e.alt,name:e.icon,width:32,height:32}),(0,o.jsxs)("section",{"data-fs-incentive-content":!0,children:[o.jsx("p",{"data-fs-incentive-title":!0,children:e.title}),o.jsx("span",{"data-fs-incentive-description":!0,children:e.firstLineText}),e.secondLineText&&o.jsx("span",{"data-fs-incentive-description":!0,children:e.secondLineText})]})]})},String(n)))})})};var a=t(9089),r=t(4890),d=t.n(r);let sections_Incentives_Incentives=function({incentives:e,label:n}){return o.jsx(a.Z,{className:`${d().section} section-incentives layout__section`,children:o.jsx(Incentives_Incentives,{incentives:e,colored:!0,label:n??""})})}},1820:(e,n,t)=>{"use strict";t.d(n,{V:()=>getDynamicContent});let i={};async function getDynamicContent({pageType:e}){try{let n=i[e];if(!n)return console.warn(`Warning: Dynamic Content not found for the page: ${e}. Refer to the Dynamic Content documentation at https://developers.vtex.com/docs/guides/faststore/dynamic-content-overview for mapping the page and the corresponding data-fetching function.`),null;let{data:t,errors:s=[]}=await n();return s.length>0&&console.error(...s),t}catch(e){return console.error("Error while fetching Dynamic Content:",e),console.warn("Refer to the Dynamic Content documentation at https://developers.vtex.com/docs/guides/faststore/dynamic-content-overview for mapping the page and the corresponding data-fetching function."),null}}},4890:e=>{e.exports={section:"section_section__jnQ3q"}},2659:(e,n,t)=>{"use strict";t.d(n,{Z:()=>o});var i=t(6689),s=t.n(i);let c=(0,i.forwardRef)(function({testId:e="store-incentive",children:n,...t},i){return s().createElement("section",{ref:i,"data-fs-incentive":!0,"data-testid":e,...t},n)}),o=c}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=6150,exports.ids=[6150],exports.modules={2740:(e,t,a)=>{a.d(t,{Z:()=>i});var r=a(6689),l=a.n(r);let n=(0,r.forwardRef)(function({testId:e="fs-checkbox",partial:t,...a},r){return l().createElement("input",{ref:r,"data-fs-checkbox":!0,"data-testid":e,"data-fs-checkbox-partial":t,type:"checkbox",...a})}),i=n},4873:(e,t,a)=>{a.d(t,{Z:()=>u});var r=a(6689),l=a.n(r),n=a(2614);let i=(0,r.forwardRef)(function({options:e,id:t,testId:a="fs-select",...r},i){return l().createElement("div",{"data-fs-select":!0},l().createElement("select",{ref:i,id:t,"data-testid":a,...r},Object.keys(e).map(t=>l().createElement("option",{key:t,value:t},e[t]))),l().createElement(n.Z,{"data-fs-select-icon":!0,name:"CaretDown"}))}),u=i},9395:(e,t,a)=>{a.d(t,{Z:()=>i});var r=a(6689),l=a.n(r);let percent=(e,t,a)=>Math.round((e-t)/(a-t)*100),n=(0,r.forwardRef)(function({min:e,max:t,absoluteValuesLabel:a,onChange:n,onEnd:i,testId:u="fs-slider",getAriaValueText:s,step:o,minValueLabelComponent:m,maxValueLabelComponent:d,...c},f){let b=(0,r.useMemo)(()=>(t.absolute-e.absolute)/100,[t.absolute,e.absolute]),[E,_]=(0,r.useState)(()=>percent(e.selected,e.absolute,t.absolute)),[p,v]=(0,r.useState)(()=>percent(t.selected,e.absolute,t.absolute)),[x,h]=(0,r.useState)(()=>Math.floor(e.absolute+E*b)),[g,M]=(0,r.useState)(()=>Math.round(e.absolute+p*b));return(0,r.useImperativeHandle)(f,()=>({setSliderValues:a=>{let r=Math.min(Number(a.min),g);if(h(r),_(percent(r,e.absolute,t.absolute)),a.max>t.absolute){M(t.absolute),v(percent(t.absolute,e.absolute,t.absolute));return}let l=Math.max(Number(a.max),x);M(l),v(percent(l,e.absolute,t.absolute))}})),l().createElement("div",{"data-fs-slider":!0,"data-testid":u,...c},l().createElement("div",{"data-fs-slider-absolute-values":!0},l().createElement("span",null,a.min),l().createElement("span",null,a.max)),l().createElement("div",{"data-fs-slider-wrapper":!0},l().createElement("div",{"data-fs-slider-range":!0,style:{left:`${E}%`,width:`${p-E}%`}}),l().createElement("input",{type:"range",min:Math.floor(e.absolute),max:Math.round(t.absolute),value:x,step:o,onMouseUp:()=>i?.({min:x,max:g}),onTouchEnd:()=>i?.({min:x,max:g}),onChange:a=>{let r=Math.min(Number(a.target.value),g);h(r),_(percent(r,e.absolute,t.absolute)),n?.({min:r,max:g})},"data-fs-slider-thumb":"left","aria-valuemin":e.absolute,"aria-valuemax":t.absolute,"aria-valuenow":x,"aria-label":String(x),"aria-labelledby":s?.(x,"min")}),m&&l().createElement("span",{"data-fs-slider-value-label":"min",style:{left:`calc(${x/t.absolute*100}% + (${8-.2*(x/t.absolute*100)}px))`}},m(x)),l().createElement("input",{type:"range",min:Math.floor(e.absolute),max:Math.round(t.absolute),value:g,step:o,onMouseUp:()=>i?.({min:x,max:g}),onTouchEnd:()=>i?.({min:x,max:g}),onChange:a=>{let r=Math.max(Number(a.target.value),x);M(r),v(percent(r,e.absolute,t.absolute)),n?.({min:x,max:r})},"data-fs-slider-thumb":"right","aria-valuemin":e.absolute,"aria-valuemax":t.absolute,"aria-valuenow":g,"aria-label":String(g),"aria-labelledby":s?.(g,"max")}),d&&l().createElement("span",{"data-fs-slider-value-label":"max",style:{left:`calc(${g/t.absolute*100}% + (${8-.2*(g/t.absolute*100)}px))`}},d(g))))}),i=n},6335:(e,t,a)=>{a.d(t,{Z:()=>s});var r=a(6689),l=a.n(r),n=a(1953),i=a(4873);let u=(0,r.forwardRef)(function({id:e,label:t,options:a,testId:r="fs-select-field",...u},s){return l().createElement("div",{ref:s,"data-fs-select-field":!0},l().createElement(n.Z,{"data-fs-select-field-label":!0,htmlFor:e},t),l().createElement(i.Z,{id:e,options:a,"data-testid":r,...u}))}),s=u},6133:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var r=a(6689),l=a.n(r);let __WEBPACK_DEFAULT_EXPORT__=function({testId:e="fs-empty-state",title:t,titleIcon:a,variant:r="default",bkgColor:n="default",children:i,...u}){return l().createElement("section",{"data-fs-empty-state":!0,"data-fs-empty-state-variant":r,"data-fs-empty-state-bkg-color":n,"data-fs-content":"empty-state","data-testid":e,...u},t&&l().createElement("header",{"data-fs-empty-state-title":!0},a&&l().createElement(l().Fragment,null,a),l().createElement("p",null,t)),i)}},5699:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var r=a(6689),l=a.n(r),n=a(1516);let __WEBPACK_DEFAULT_EXPORT__=function({testId:e,title:t,indicesExpanded:a,onAccordionChange:r,children:i}){return l().createElement("div",{"data-fs-filter":!0,"data-testid":e},l().createElement("h2",{"data-fs-filter-title":!0},t),l().createElement(n.Z,{indices:a,onChange:r,"data-fs-filter-accordion":!0},i))}},2815:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var r=a(6689),l=a.n(r),n=a(4564);let __WEBPACK_DEFAULT_EXPORT__=function({children:e}){return l().createElement(n.Z,{"data-fs-filter-list":!0},e)}},6174:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var r=a(6689),l=a.n(r),n=a(2740),i=a(1953),u=a(276);let __WEBPACK_DEFAULT_EXPORT__=function({testId:e,id:t,selected:a,value:r,quantity:s,facetKey:o,label:m,onFacetChange:d}){return l().createElement("li",{key:t,"data-fs-filter-list-item":!0},l().createElement(n.Z,{id:t,checked:a,onChange:()=>d({key:o,value:r},"BOOLEAN"),"data-fs-filter-list-item-checkbox":!0,"data-testid":`${e}-accordion-panel-checkbox`,"data-value":r,"data-quantity":s}),l().createElement(i.Z,{htmlFor:t,className:"text__title-mini-alt","data-fs-filter-list-item-label":!0},m," ",l().createElement(u.Z,{"data-fs-filter-list-item-badge":!0},s)))}},2230:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var r=a(6689),l=a.n(r),n=a(8110);let formatRange=(e,t)=>`${e.toFixed(2)}-to-${t.toFixed(2)}`,__WEBPACK_DEFAULT_EXPORT__=function({min:e,max:t,formatter:a,facetKey:r,onFacetChange:i}){return l().createElement(n.Z,{"data-fs-filter-facet-range":!0,min:e,max:t,formatter:a,step:1,onEnd:e=>i({key:r,value:formatRange(e.min,e.max)},"RANGE")})}},4199:(e,t,a)=>{a.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var r=a(6689),l=a.n(r),n=a(783),i=a(7734),u=a(7583);let __WEBPACK_DEFAULT_EXPORT__=function({testId:e,label:t,index:a,children:r,type:s}){return l().createElement(n.Z,{key:`${t}-${a}`,prefixId:e,testId:`${e}-accordion`,index:a,"data-type":s,"data-fs-filter-accordion-item":!0},l().createElement(i.Z,{testId:`${e}-accordion-button`},t),l().createElement(u.Z,null,r))}},8110:(e,t,a)=>{a.d(t,{Z:()=>o});var r=a(6689),l=a.n(r),n=a(9395),i=a(9767),u=a(3779);let s=(0,r.forwardRef)(function({formatter:e,max:t,min:a,step:s=1,onChange:o,onEnd:m,testId:d="fs-price-range",variant:c,"aria-label":f,...b},E){let _=(0,r.useRef)();(0,r.useImperativeHandle)(E,()=>({setPriceRangeValues:e=>{o?.(e),_.current?.setSliderValues(e)}}));let p=(0,r.useRef)(null),v=(0,r.useRef)(null),[x,h]=(0,r.useState)(),[g,M]=(0,r.useState)(),[Z,A]=(0,r.useState)({min:Math.floor(a.selected),max:Math.round(t.selected)});return l().createElement("div",{"data-fs-price-range":!0,"data-testid":d,...b},l().createElement(n.Z,{ref:_,min:a,max:t,step:s,onEnd:e=>{m?.(e),h(void 0),M(void 0),A({min:e.min,max:e.max}),p.current?.value&&(p.current.value=String(e.min)),v.current?.value&&(v.current.value=String(e.max))},"aria-label":f,onChange:e=>o?.(e),absoluteValuesLabel:{min:l().createElement(i.Z,{value:Math.floor(a.absolute),variant:c,formatter:e}),max:l().createElement(i.Z,{value:Math.round(t.absolute),variant:c,formatter:e})},minValueLabelComponent:t=>l().createElement(i.Z,{value:t,variant:c,formatter:e}),maxValueLabelComponent:t=>l().createElement(i.Z,{value:t,variant:c,formatter:e})}),l().createElement("div",{"data-fs-price-range-inputs":!0},l().createElement(u.Z,{id:"price-range-min",step:s,label:"Min",type:"number",inputMode:"numeric",error:x,inputRef:p,min:Math.floor(a.absolute),max:Z.max,value:Z.min,onChange:e=>{var t;return t=e.target.value,void(h(void 0),Number(t)<Math.floor(a.absolute)||(Number(t)>Math.floor(Z.max)&&h("Min price can't be greater than max"),A({...Z,min:Number(t)}),_.current?.setSliderValues({...Z,min:Number(t)})))},onBlur:()=>!x&&m?.(Z)}),l().createElement(u.Z,{id:"price-range-max",label:"Max",step:s,type:"number",inputMode:"numeric",error:g,inputRef:v,max:Math.round(t.absolute),min:Z.min,value:Z.max,onChange:e=>{var a;return a=e.target.value,void(M(void 0),Number(a)>Math.round(t.absolute)||(Number(a)<Math.round(Z.min)&&M("Max price can't be smaller than min"),A({...Z,max:Number(a)}),_.current?.setSliderValues({...Z,max:Number(a)})))},onBlur:()=>!g&&m?.(Z)})))}),o=s}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=7917,exports.ids=[7917],exports.modules={7855:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.d(t,{P:()=>sendAutocompleteClickEvent,Z:()=>__WEBPACK_DEFAULT_EXPORT__});var o=r(1933),c=r(4583),i=r(2174),l=r(757),a=r(9994),s=r(35),u=r(9156),p=r(2796),b=r(3295),O=r(997),f=e([u,p]);[u,p]=f.then?(await f)():f;let y=["sort"];function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function sendAutocompleteClickEvent({url:e,term:t,position:n,productId:o}){Promise.all([r.e(2880),r.e(1153)]).then(r.bind(r,1153)).then(({sendAnalyticsEvent:r})=>{r({name:"intelligent_search_autocomplete_click",params:{term:t,url:e,productId:o,position:n}})})}let __WEBPACK_DEFAULT_EXPORT__=function(e){let{sort:t}=e,r=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,y),{values:{onSearchSelection:n,products:f,term:j,terms:_}}=(0,o.R)();return(0,O.jsxs)(c.Z,_objectSpread(_objectSpread({},r),{},{children:[O.jsx(s.Z,{sort:t}),O.jsx(u.Z,{sort:t}),O.jsx(i.Z,{children:_?.map(({value:e})=>O.jsx(l.Z,{term:j,suggestion:e,linkProps:{href:b.u({term:e,sort:t}),onClick:()=>{n?.(e,b.u({term:e,sort:t})),sendAutocompleteClickEvent({term:e,url:window.location.href})}}},e))}),O.jsx(a.Z,{children:f.map((e,t)=>O.jsx(p.Z,{product:e,index:t},e.id))})]}))};n()}catch(e){n(e)}})},7917:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.r(t),r.d(t,{default:()=>o.Z,sendAutocompleteClickEvent:()=>o.P});var o=r(7855),c=e([o]);o=(c.then?(await c)():c)[0],n()}catch(e){n(e)}})},35:(e,t,r)=>{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var n=r(1933),o=r(2701),c=r(9482),i=r(8543),l=r(997);function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let __WEBPACK_DEFAULT_EXPORT__=e=>{let t=Object.assign({},e),{values:{onSearchSelection:r}}=(0,n.R)(),{searchHistory:a,clearSearchHistory:s}=(0,i.Z)();return a.length?l.jsx(o.Z,_objectSpread(_objectSpread({title:"History",onClear:s},t),{},{children:a.map(e=>l.jsx(c.Z,{value:e.term,linkProps:{href:e.path,onClick:()=>r?.(e.term,e.path)}},e.term))})):null}},2796:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var o=r(1933),c=r(6035),i=r(9082),l=r(3454),a=r(8918),s=r(113),u=r(5679),p=r(7855),b=r(997),O=e([p]);p=(O.then?(await O)():O)[0];let f=["product","index"],y=["href","onClick"];function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function _objectWithoutProperties(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}let __WEBPACK_DEFAULT_EXPORT__=function(e){let{product:t,index:r}=e,n=_objectWithoutProperties(e,f),{values:{onSearchSelection:O}}=(0,o.R)(),j=(0,u.w)({product:t,selectedOffer:0,index:r}),{href:_,onClick:P}=j,d=_objectWithoutProperties(j,y),{isVariantOf:{name:h},image:[v],offers:{lowPrice:w,offers:[{listPrice:g}]}}=t,m=_objectSpread({href:_,onClick:()=>{P(),O?.(h,_),(0,p.P)({url:_,term:h,position:r,productId:t.isVariantOf.productGroupID??t.sku})}},d);return(0,b.jsxs)(c.Z,_objectSpread(_objectSpread({linkProps:m},n),{},{children:[b.jsx(i.Z,{children:b.jsx(a.Z,{src:v.url,alt:v.alternateName,width:56,height:56})}),b.jsx(l.Z,{title:h,price:{value:w,listPrice:g,formatter:s.P}})]}))};n()}catch(e){n(e)}})},9156:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var o=r(1933),c=r(3311),i=r(1287),l=r(3295),a=r(7627),s=r(997),u=e([a]);a=(u.then?(await u)():u)[0];let p=["topTerms","sort"];function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}let __WEBPACK_DEFAULT_EXPORT__=function(e){let{topTerms:t=[],sort:r}=e,n=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},c=Object.keys(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n<c.length;n++)r=c[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,p),{values:{onSearchSelection:u}}=(0,o.R)(),{data:b}=(0,a.Z)(),O=(b?.search.suggestions.terms??t).slice(0,5);return 0===O.length?null:s.jsx(c.Z,_objectSpread(_objectSpread({title:"Top Search"},n),{},{children:O.map((e,t)=>s.jsx(i.Z,{value:e.value,index:t,linkProps:{href:(0,l.u)({term:e.value,sort:r}),onClick:()=>u?.(e.value,l.u({term:e.value,sort:r}))}},t))}))};n()}catch(e){n(e)}})},7627:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.d(t,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var o=r(3523),c=r(7553),i=r(5238),l=e([c]);c=(l.then?(await l)():l)[0];let a=o.M,__WEBPACK_DEFAULT_EXPORT__=function(){let{channel:e,locale:t}=(0,i.kP)(),{data:r,error:n}=(0,c.aM)(a,{term:"",selectedFacets:[{key:"channel",value:e??""},{key:"locale",value:t}]});return{data:r,error:n}};n()}catch(e){n(e)}})}};
@@ -1 +0,0 @@
1
- exports.id=8419,exports.ids=[8419],exports.modules={5342:(e,r,t)=>{"use strict";t.d(r,{Z:()=>f});var n=t(8394),o=t(5167),a=t(547),c=t(6689),i=t(1664),s=t.n(i),u=t(8918),l=t(113),d=t(5679),b=t(997);let p=["product","index","bordered","variant","aspectRatio","imgProps","ratingValue","buttonLabel","onButtonClick","showDiscountBadge","taxesConfiguration","sponsoredLabel"];function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,n)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}let f=(0,c.memo)(function(e){let{product:r,index:t,bordered:i=!0,variant:f="default",aspectRatio:O=1,imgProps:y,ratingValue:j,buttonLabel:m="Add",onButtonClick:v,showDiscountBadge:g=!0,taxesConfiguration:w,sponsoredLabel:P}=e,h=function(e,r){if(null==e)return{};var t,n,o=function(e,r){if(null==e)return{};var t,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)t=a[n],r.indexOf(t)>=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)t=a[n],!(r.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,p),{sku:x,isVariantOf:{name:S},image:[D],advertisement:B,offers:{lowPrice:_,lowPriceWithTaxes:k,offers:[{listPrice:L,availability:K,listPriceWithTaxes:E}]}}=r,Z=_objectSpread(_objectSpread({},(0,d.w)({product:r,selectedOffer:0,index:t})),{},{as:s(),passHref:!0,legacyBehavior:!1,prefetch:!1}),A=(0,c.useMemo)(()=>"https://schema.org/InStock"!==K,[K]),C=w?.usePriceWithTaxes?k:_,I=w?.usePriceWithTaxes?E:L,T=B?{"data-van-res-id":B.adResponseId,"data-van-aid":B.adId,"data-van-prod-name":S}:{};return(0,b.jsxs)(n.Z,_objectSpread(_objectSpread(_objectSpread({outOfStock:A,bordered:i,variant:f,"data-fs-product-card-sku":x},T),h),{},{children:[b.jsx(o.Z,{aspectRatio:O,children:b.jsx(u.Z,{src:D.url,alt:D.alternateName,sizes:`${y?.sizes??"(max-width: 768px) 40vw, 30vw"}`,width:y?.width??360,height:Math.round((Number(y?.height)||360)/O),loading:y?.loading})}),b.jsx(a.Z,{title:S,price:{value:C,listPrice:I,formatter:l.P},ratingValue:j,outOfStock:A,onButtonClick:v,linkProps:Z,showDiscountBadge:C<=I&&g,includeTaxes:w?.usePriceWithTaxes,includeTaxesLabel:w?.taxesLabel,sponsored:!!B,sponsoredLabel:P})]}))})},3472:(e,r,t)=>{"use strict";t.d(r,{j:()=>y});var n=t(7296),o=t(6689),a=t(9089),c=t(8642),i=t.n(c),s=t(4960),u=t(5502),l=t(1972),d=t(2614);let b={Breadcrumb:l.Z,Icon:d.Z};var p=t(997);function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,n)}return t}let f=(0,n.B)("Breadcrumb",function(e){let r=Object.assign({},e),{Breadcrumb:t}=(0,u.r3)(),n=(0,s.qt)(),o=(0,s.OJ)(n)?n?.data?.collection?.seo?.title:"All Products",c=(0,s.tS)(n)?n?.data?.product?.breadcrumbList?.itemListElement:(0,s.OJ)(n)?n?.data?.collection?.breadcrumbList?.itemListElement:[{item:"/",name:o,position:1}];return p.jsx(a.Z,{className:`${i().section} section-breadcrumb`,children:p.jsx(t.Component,function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}({breadcrumbList:c},r))})},b),O=(0,o.memo)(f);function OverriddenDefaultBreadcrumb_ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,n)}return t}function OverriddenDefaultBreadcrumb_objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?OverriddenDefaultBreadcrumb_ownKeys(Object(t),!0).forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):OverriddenDefaultBreadcrumb_ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}let y=(0,n.v)(OverriddenDefaultBreadcrumb_objectSpread(OverriddenDefaultBreadcrumb_objectSpread({},{section:"Breadcrumb"}),{},{Section:O}))},1023:(e,r,t)=>{"use strict";t.d(r,{K:()=>o,g:()=>n});let n=12,o=5},5081:(e,r,t)=>{"use strict";t.d(r,{y:()=>useLocalizedVariables});var n=t(6689),o=t(1023),a=t(5238);let toArray=e=>Array.isArray(e)?e:e?[e]:[],useLocalizedVariables=({first:e,after:r,sort:t,term:c,selectedFacets:i,sponsoredCount:s})=>{let{channel:u,locale:l}=(0,a.kP)();return(0,n.useMemo)(()=>{let n=toArray(i);return{first:e??o.K,after:r??"0",sort:t??"score_desc",term:c??"",selectedFacets:[...n,{key:"channel",value:u??""},{key:"locale",value:l}],sponsoredCount:s??3}},[i,e,r,t,c,u,l,s])}},8642:e=>{e.exports={section:"section_section__dvBbv"}}};
@@ -1 +0,0 @@
1
- self.__BUILD_MANIFEST=function(s,c,a,t,e,i){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},"/":[s,c,a,"static/css/b1806cbafd0c1f81.css","static/chunks/pages/index-ad532cf8840c5d3f.js"],"/404":[s,c,a,t,"static/chunks/pages/404-358f6795222bf991.js"],"/500":[s,c,a,t,"static/chunks/pages/500-7adc48c3231ccee1.js"],"/_error":["static/chunks/pages/_error-85cabf0d7a5ea2f2.js"],"/account":[s,c,a,"static/chunks/pages/account-9db0ef5c4174c7dd.js"],"/checkout":[s,c,a,"static/chunks/pages/checkout-abaa6374ae946641.js"],"/login":[s,c,a,t,"static/chunks/pages/login-8d2eb8db226d6363.js"],"/s":[s,c,a,e,i,t,"static/chunks/pages/s-c4ff9fe20587e49e.js"],"/[slug]/p":[s,c,a,"static/chunks/459-404aa12d42b08af1.js","static/css/bf1560439df2c1a1.css","static/css/e3ff5d95518a5c79.css","static/chunks/6379-1578190b254c09a6.js","static/css/9718991cd57978e9.css","static/chunks/pages/[slug]/p-fa2418810fa3abeb.js"],"/[...slug]":[s,c,a,e,i,"static/chunks/pages/[...slug]-c2bf068f3f84b127.js"],sortedPages:["/","/404","/500","/_app","/_error","/account","/checkout","/login","/s","/[slug]/p","/[...slug]"]}}("static/chunks/6941-6223429b182b7109.js","static/css/93d239c461485bdf.css","static/chunks/1550-48e8637718c2dd74.js","static/css/2980acad3f8e1028.css","static/css/6e34c6c07086e3df.css","static/chunks/6999-078369e946149546.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();