the-foxy-library 1.0.19 → 1.0.21

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 (185) hide show
  1. package/dist/cjs/{app-globals-DRVRI1ik.js → app-globals-CoHtVZOa.js} +4 -3
  2. package/dist/cjs/app-globals-CoHtVZOa.js.map +1 -0
  3. package/dist/cjs/{factory-CC4cUyGl.js → factory-NSOuLE3E.js} +7 -4
  4. package/dist/cjs/factory-NSOuLE3E.js.map +1 -0
  5. package/dist/cjs/{index-77WT2UXf.js → index-LRS48Qt3.js} +3 -2
  6. package/dist/cjs/index-LRS48Qt3.js.map +1 -0
  7. package/dist/cjs/intravenous.cjs.js +2 -2
  8. package/dist/cjs/ion-icon_12.cjs.entry.js +2 -2
  9. package/dist/cjs/iv-banner.cjs.entry.js +1 -1
  10. package/dist/cjs/iv-card_3.cjs.entry.js +2 -2
  11. package/dist/cjs/iv-carousel.cjs.entry.js +1 -1
  12. package/dist/cjs/iv-compare-product.cjs.entry.js +1 -1
  13. package/dist/cjs/iv-dynamic-products-carousel.cjs.entry.js +2 -2
  14. package/dist/cjs/iv-dynamic-products.cjs.entry.js +2 -2
  15. package/dist/cjs/iv-filters.cjs.entry.js +1 -1
  16. package/dist/cjs/iv-predictive-search.cjs.entry.js +1 -1
  17. package/dist/cjs/iv-product-pin.cjs.entry.js +1 -1
  18. package/dist/cjs/iv-product-upsell.cjs.entry.js +1 -1
  19. package/dist/cjs/iv-recently-viewed.cjs.entry.js +2 -2
  20. package/dist/cjs/iv-shop-the-look.cjs.entry.js +1 -1
  21. package/dist/cjs/iv-suggest.cjs.entry.js +1 -1
  22. package/dist/cjs/iv-tabs.cjs.entry.js +1 -1
  23. package/dist/cjs/iv-toast-container.cjs.entry.js +1 -1
  24. package/dist/cjs/iv-toast.cjs.entry.js +1 -1
  25. package/dist/cjs/iv-wishlist.cjs.entry.js +1 -1
  26. package/dist/cjs/loader.cjs.js +2 -2
  27. package/dist/cjs/sw-in-grid-content.cjs.entry.js +1 -1
  28. package/dist/cjs/sw-size-guide.cjs.entry.js +1 -1
  29. package/dist/collection/global/app.js +1 -0
  30. package/dist/collection/global/app.js.map +1 -1
  31. package/dist/collection/utils/config/factory.js +1 -0
  32. package/dist/collection/utils/config/factory.js.map +1 -1
  33. package/dist/collection/utils/storefront_api/factory.js +4 -1
  34. package/dist/collection/utils/storefront_api/factory.js.map +1 -1
  35. package/dist/components/index.js +3 -2
  36. package/dist/components/index.js.map +1 -1
  37. package/dist/components/ion-icon.js +1 -1
  38. package/dist/components/iv-accordion.js +2 -2
  39. package/dist/components/iv-banner.js +1 -1
  40. package/dist/components/iv-button.js +1 -1
  41. package/dist/components/iv-card.js +1 -1
  42. package/dist/components/iv-carousel.js +1 -1
  43. package/dist/components/iv-compare-product.js +1 -1
  44. package/dist/components/iv-dynamic-products-carousel.js +6 -6
  45. package/dist/components/iv-dynamic-products.js +7 -7
  46. package/dist/components/iv-event-button.js +1 -1
  47. package/dist/components/iv-filters.js +1 -1
  48. package/dist/components/iv-footer.js +1 -1
  49. package/dist/components/iv-layout.js +1 -1
  50. package/dist/components/iv-link-list.js +2 -2
  51. package/dist/components/iv-link.js +1 -1
  52. package/dist/components/iv-modal.js +3 -3
  53. package/dist/components/iv-newsletter.js +2 -2
  54. package/dist/components/iv-predictive-search.js +5 -5
  55. package/dist/components/iv-product-pin.js +1 -1
  56. package/dist/components/iv-product-upsell.js +1 -1
  57. package/dist/components/iv-recently-viewed.js +6 -6
  58. package/dist/components/iv-shop-the-look.js +2 -2
  59. package/dist/components/iv-sidebar.js +3 -3
  60. package/dist/components/iv-spinner.js +1 -1
  61. package/dist/components/iv-suggest.js +6 -6
  62. package/dist/components/iv-tabs.js +1 -1
  63. package/dist/components/iv-toast-container.js +2 -2
  64. package/dist/components/iv-toast.js +1 -1
  65. package/dist/components/iv-two-col-media.js +1 -1
  66. package/dist/components/iv-wishlist-view.js +1 -1
  67. package/dist/components/iv-wishlist.js +2 -2
  68. package/dist/components/{p-CvO-bCed.js → p-B-4VoGV_.js} +3 -3
  69. package/dist/components/{p-CvO-bCed.js.map → p-B-4VoGV_.js.map} +1 -1
  70. package/dist/components/{p-Blz-LJSV.js → p-B4yIesaL.js} +3 -3
  71. package/dist/components/{p-Blz-LJSV.js.map → p-B4yIesaL.js.map} +1 -1
  72. package/dist/components/{p-3lSW4-ii.js → p-BMsgAmDZ.js} +3 -3
  73. package/dist/components/{p-3lSW4-ii.js.map → p-BMsgAmDZ.js.map} +1 -1
  74. package/dist/components/{p-kuABA_Tv.js → p-BVAxyx8A.js} +3 -3
  75. package/dist/components/{p-kuABA_Tv.js.map → p-BVAxyx8A.js.map} +1 -1
  76. package/dist/components/{p-Cmnclx4w.js → p-BVL7DqEj.js} +7 -4
  77. package/dist/components/p-BVL7DqEj.js.map +1 -0
  78. package/dist/components/{p-CmetOj56.js → p-BpdXCMak.js} +3 -3
  79. package/dist/components/{p-CmetOj56.js.map → p-BpdXCMak.js.map} +1 -1
  80. package/dist/components/{p-DV16vkcI.js → p-CUI6hRMI.js} +3 -3
  81. package/dist/components/{p-DV16vkcI.js.map → p-CUI6hRMI.js.map} +1 -1
  82. package/dist/components/{p-HxD8ZMcb.js → p-D8GfK9z_.js} +3 -3
  83. package/dist/components/{p-HxD8ZMcb.js.map → p-D8GfK9z_.js.map} +1 -1
  84. package/dist/components/{p-3YQcGgfQ.js → p-DE0H3IbO.js} +5 -5
  85. package/dist/components/{p-3YQcGgfQ.js.map → p-DE0H3IbO.js.map} +1 -1
  86. package/dist/components/{p-D2SCT3Sb.js → p-DVvBorxR.js} +3 -3
  87. package/dist/components/{p-D2SCT3Sb.js.map → p-DVvBorxR.js.map} +1 -1
  88. package/dist/components/{p-haFsiJTQ.js → p-IJUHvLzw.js} +6 -6
  89. package/dist/components/{p-haFsiJTQ.js.map → p-IJUHvLzw.js.map} +1 -1
  90. package/dist/components/{p-DH3wWIxr.js → p-XXtzVg2d.js} +3 -2
  91. package/dist/components/p-XXtzVg2d.js.map +1 -0
  92. package/dist/components/{p-Dfh8X_q_.js → p-dpzz67iI.js} +3 -3
  93. package/dist/components/{p-Dfh8X_q_.js.map → p-dpzz67iI.js.map} +1 -1
  94. package/dist/components/sw-in-grid-content.js +1 -1
  95. package/dist/components/sw-size-guide.js +1 -1
  96. package/dist/esm/{app-globals-BRJyMwss.js → app-globals-D2HG9z1r.js} +4 -3
  97. package/dist/esm/app-globals-D2HG9z1r.js.map +1 -0
  98. package/dist/esm/{factory-nzeOUOp1.js → factory-Bf2IW1Vz.js} +7 -4
  99. package/dist/esm/factory-Bf2IW1Vz.js.map +1 -0
  100. package/dist/esm/{index-BW0IzFf8.js → index-Cb3Nnjkn.js} +3 -2
  101. package/dist/esm/index-Cb3Nnjkn.js.map +1 -0
  102. package/dist/esm/intravenous.js +3 -3
  103. package/dist/esm/ion-icon_12.entry.js +2 -2
  104. package/dist/esm/iv-banner.entry.js +1 -1
  105. package/dist/esm/iv-card_3.entry.js +2 -2
  106. package/dist/esm/iv-carousel.entry.js +1 -1
  107. package/dist/esm/iv-compare-product.entry.js +1 -1
  108. package/dist/esm/iv-dynamic-products-carousel.entry.js +2 -2
  109. package/dist/esm/iv-dynamic-products.entry.js +2 -2
  110. package/dist/esm/iv-filters.entry.js +1 -1
  111. package/dist/esm/iv-predictive-search.entry.js +1 -1
  112. package/dist/esm/iv-product-pin.entry.js +1 -1
  113. package/dist/esm/iv-product-upsell.entry.js +1 -1
  114. package/dist/esm/iv-recently-viewed.entry.js +2 -2
  115. package/dist/esm/iv-shop-the-look.entry.js +1 -1
  116. package/dist/esm/iv-suggest.entry.js +1 -1
  117. package/dist/esm/iv-tabs.entry.js +1 -1
  118. package/dist/esm/iv-toast-container.entry.js +1 -1
  119. package/dist/esm/iv-toast.entry.js +1 -1
  120. package/dist/esm/iv-wishlist.entry.js +1 -1
  121. package/dist/esm/loader.js +3 -3
  122. package/dist/esm/sw-in-grid-content.entry.js +1 -1
  123. package/dist/esm/sw-size-guide.entry.js +1 -1
  124. package/dist/intravenous/intravenous.esm.js +1 -1
  125. package/dist/intravenous/{p-c1d875cf.entry.js → p-0f07e69c.entry.js} +2 -2
  126. package/dist/intravenous/{p-a35de10b.entry.js → p-1394ddc3.entry.js} +2 -2
  127. package/dist/intravenous/{p-ec7b539d.entry.js → p-19185e49.entry.js} +2 -2
  128. package/dist/intravenous/p-1d169085.entry.js +2 -0
  129. package/dist/intravenous/{p-50008fa6.entry.js → p-28d83a02.entry.js} +2 -2
  130. package/dist/intravenous/{p-45c70b13.entry.js → p-3a43aff3.entry.js} +2 -2
  131. package/dist/intravenous/{p-a617d9d0.entry.js → p-3ad476a3.entry.js} +2 -2
  132. package/dist/intravenous/{p-2c191fe7.entry.js → p-40d5f2dd.entry.js} +2 -2
  133. package/dist/intravenous/{p-78e8d319.entry.js → p-51f91c3c.entry.js} +2 -2
  134. package/dist/intravenous/p-6yYowr-X.js +2 -0
  135. package/dist/intravenous/p-6yYowr-X.js.map +1 -0
  136. package/dist/intravenous/{p-21d5f405.entry.js → p-7a73eb94.entry.js} +2 -2
  137. package/dist/intravenous/{p-55f43ae2.entry.js → p-7e46d5b9.entry.js} +2 -2
  138. package/dist/intravenous/{p-dc8d0b9e.entry.js → p-8d726fec.entry.js} +2 -2
  139. package/dist/intravenous/{p-BW0IzFf8.js → p-Cb3Nnjkn.js} +2 -2
  140. package/dist/intravenous/p-Cb3Nnjkn.js.map +1 -0
  141. package/dist/intravenous/p-DujflZ2b.js +2 -0
  142. package/dist/intravenous/p-DujflZ2b.js.map +1 -0
  143. package/dist/intravenous/{p-145798b2.entry.js → p-a28bd4eb.entry.js} +2 -2
  144. package/dist/intravenous/{p-256a765e.entry.js → p-a66c7492.entry.js} +2 -2
  145. package/dist/intravenous/{p-a7b3baf0.entry.js → p-a7d8309c.entry.js} +2 -2
  146. package/dist/intravenous/{p-aebd8d4b.entry.js → p-affde66d.entry.js} +2 -2
  147. package/dist/intravenous/{p-19cf30b1.entry.js → p-b2e8bb5f.entry.js} +2 -2
  148. package/dist/intravenous/{p-331983d1.entry.js → p-bfe01a14.entry.js} +2 -2
  149. package/dist/intravenous/{p-13ce40ae.entry.js → p-ca10d662.entry.js} +2 -2
  150. package/dist/intravenous/{p-cbf8e7b8.entry.js → p-ff2b5ad8.entry.js} +2 -2
  151. package/package.json +1 -1
  152. package/dist/cjs/app-globals-DRVRI1ik.js.map +0 -1
  153. package/dist/cjs/factory-CC4cUyGl.js.map +0 -1
  154. package/dist/cjs/index-77WT2UXf.js.map +0 -1
  155. package/dist/components/p-Cmnclx4w.js.map +0 -1
  156. package/dist/components/p-DH3wWIxr.js.map +0 -1
  157. package/dist/esm/app-globals-BRJyMwss.js.map +0 -1
  158. package/dist/esm/factory-nzeOUOp1.js.map +0 -1
  159. package/dist/esm/index-BW0IzFf8.js.map +0 -1
  160. package/dist/intravenous/p-BAss6u3X.js +0 -2
  161. package/dist/intravenous/p-BAss6u3X.js.map +0 -1
  162. package/dist/intravenous/p-BW0IzFf8.js.map +0 -1
  163. package/dist/intravenous/p-DHfJNZjh.js +0 -2
  164. package/dist/intravenous/p-DHfJNZjh.js.map +0 -1
  165. package/dist/intravenous/p-e7109ec4.entry.js +0 -2
  166. /package/dist/intravenous/{p-c1d875cf.entry.js.map → p-0f07e69c.entry.js.map} +0 -0
  167. /package/dist/intravenous/{p-a35de10b.entry.js.map → p-1394ddc3.entry.js.map} +0 -0
  168. /package/dist/intravenous/{p-ec7b539d.entry.js.map → p-19185e49.entry.js.map} +0 -0
  169. /package/dist/intravenous/{p-e7109ec4.entry.js.map → p-1d169085.entry.js.map} +0 -0
  170. /package/dist/intravenous/{p-50008fa6.entry.js.map → p-28d83a02.entry.js.map} +0 -0
  171. /package/dist/intravenous/{p-45c70b13.entry.js.map → p-3a43aff3.entry.js.map} +0 -0
  172. /package/dist/intravenous/{p-a617d9d0.entry.js.map → p-3ad476a3.entry.js.map} +0 -0
  173. /package/dist/intravenous/{p-2c191fe7.entry.js.map → p-40d5f2dd.entry.js.map} +0 -0
  174. /package/dist/intravenous/{p-78e8d319.entry.js.map → p-51f91c3c.entry.js.map} +0 -0
  175. /package/dist/intravenous/{p-21d5f405.entry.js.map → p-7a73eb94.entry.js.map} +0 -0
  176. /package/dist/intravenous/{p-55f43ae2.entry.js.map → p-7e46d5b9.entry.js.map} +0 -0
  177. /package/dist/intravenous/{p-dc8d0b9e.entry.js.map → p-8d726fec.entry.js.map} +0 -0
  178. /package/dist/intravenous/{p-145798b2.entry.js.map → p-a28bd4eb.entry.js.map} +0 -0
  179. /package/dist/intravenous/{p-256a765e.entry.js.map → p-a66c7492.entry.js.map} +0 -0
  180. /package/dist/intravenous/{p-a7b3baf0.entry.js.map → p-a7d8309c.entry.js.map} +0 -0
  181. /package/dist/intravenous/{p-aebd8d4b.entry.js.map → p-affde66d.entry.js.map} +0 -0
  182. /package/dist/intravenous/{p-19cf30b1.entry.js.map → p-b2e8bb5f.entry.js.map} +0 -0
  183. /package/dist/intravenous/{p-331983d1.entry.js.map → p-bfe01a14.entry.js.map} +0 -0
  184. /package/dist/intravenous/{p-13ce40ae.entry.js.map → p-ca10d662.entry.js.map} +0 -0
  185. /package/dist/intravenous/{p-cbf8e7b8.entry.js.map → p-ff2b5ad8.entry.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-77WT2UXf.js');
4
- var appGlobals = require('./app-globals-DRVRI1ik.js');
3
+ var index = require('./index-LRS48Qt3.js');
4
+ var appGlobals = require('./app-globals-CoHtVZOa.js');
5
5
 
6
6
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
7
7
  /*
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-77WT2UXf.js');
3
+ var index = require('./index-LRS48Qt3.js');
4
4
  var factory = require('./factory-DYuJXHFx.js');
5
- var factory$1 = require('./factory-CC4cUyGl.js');
5
+ var factory$1 = require('./factory-NSOuLE3E.js');
6
6
 
7
7
  let CACHED_MAP;
8
8
  const getIconMap = () => {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-77WT2UXf.js');
3
+ var index = require('./index-LRS48Qt3.js');
4
4
 
5
5
  const ivBannerCss = ":host{display:block}";
6
6
 
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-77WT2UXf.js');
3
+ var index = require('./index-LRS48Qt3.js');
4
4
  var factory = require('./factory-DYuJXHFx.js');
5
- var factory$1 = require('./factory-CC4cUyGl.js');
5
+ var factory$1 = require('./factory-NSOuLE3E.js');
6
6
 
7
7
  const ivCardCss = ".iv-card{display:var(--iv-card-display, block);box-sizing:border-box;padding:var(--iv-card-padding, 0);margin:var(--iv-card-margin, 0);background:var(--iv-card-bg, transparent);color:var(--iv-card-color, inherit);border:var(--iv-card-border, none);border-radius:var(--iv-card-border-radius, 0);box-shadow:var(--iv-card-shadow, none);font-size:var(--iv-card-font-size, inherit);line-height:var(--iv-card-line-height, 1.4);position:relative;text-decoration:none;transition:var(--iv-card-transition, background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease);gap:var(--iv-card-gap, 0.75rem);display:var(--iv-card-layout, flex);flex-direction:var(--iv-card-flex-direction, column)}.iv-card a,.iv-card a:visited,.iv-card a:hover,.iv-card a:focus{text-decoration:var(--iv-card-link-text-decoration, none);color:var(--iv-card-link-color, inherit)}.iv-card[href],.iv-card.is-interactive{cursor:pointer}.iv-card[href]:hover,.iv-card[href]:focus-visible,.iv-card.is-interactive:hover,.iv-card.is-interactive:focus-visible{background:var(--iv-card-hover-bg, var(--iv-card-bg, transparent));border:var(--iv-card-hover-border, var(--iv-card-border, none));box-shadow:var(--iv-card-hover-shadow, var(--iv-card-shadow, none));outline:var(--iv-card-focus-outline, none);box-shadow:var(--iv-card-focus-ring, var(--iv-card-hover-shadow, var(--iv-card-shadow, none)))}.iv-card-link-wrapper{display:var(--iv-card-link-wrapper-display, contents);text-decoration:none;color:inherit;cursor:pointer}.iv-card-field{display:block;margin:0;padding:0;font-weight:var(--iv-card-field-font-weight, inherit);color:var(--iv-card-field-color, inherit);word-break:break-word;text-decoration:none}.iv-card .iv-card-add-to-cart-btn{position:relative;z-index:2}.iv-card-link-wrapper:hover .iv-card-field,.iv-card-link-wrapper:focus-visible .iv-card-field{text-decoration:none}.iv-card-link-wrapper:hover,.iv-card-link-wrapper:focus-visible{background:var(--iv-card-link-hover-bg, var(--iv-card-hover-bg, transparent))}.iv-card-image{display:block;width:100%;height:auto;aspect-ratio:var(--iv-card-image-aspect-ratio, auto);object-fit:var(--iv-card-image-object-fit, cover);border-radius:var(--iv-card-image-border-radius, var(--iv-card-border-radius, 0));background:var(--iv-card-image-bg, transparent)}.iv-card-title{font-weight:var(--iv-card-heading-font-weight, 600);font-size:var(--iv-card-title-font-size, 1em);line-height:var(--iv-card-title-line-height, 1.2)}.iv-card-price{color:var(--iv-card-price-color, inherit);font-weight:var(--iv-card-price-weight, 500)}.iv-card-controls{display:flex;flex-wrap:wrap;gap:var(--iv-card-control-gap, 0.5rem);align-items:center;margin-top:var(--iv-card-controls-margin-top, var(--iv-card-gap, 0.75rem))}.iv-card-add-to-cart-btn{--iv-button-variant:var(--iv-card-button-variant, primary)}.iv-card-inner{width:100%;display:contents}@media (prefers-reduced-motion: reduce){.iv-card{transition:none}}";
8
8
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-77WT2UXf.js');
3
+ var index = require('./index-LRS48Qt3.js');
4
4
 
5
5
  const ivCarouselCss = "";
6
6
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-77WT2UXf.js');
3
+ var index = require('./index-LRS48Qt3.js');
4
4
 
5
5
  const ivCompareProductCss = ":host{display:block}";
6
6
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-77WT2UXf.js');
4
- var factory = require('./factory-CC4cUyGl.js');
3
+ var index = require('./index-LRS48Qt3.js');
4
+ var factory = require('./factory-NSOuLE3E.js');
5
5
  var productCache = require('./productCache-DAt5ukE_.js');
6
6
 
7
7
  const ivDynamicProductsCarouselCss = ":host{display:block}.iv-dynamic-products-carousel{position:relative}.iv-dynamic-products-carousel-carousel{position:relative}.iv-dynamic-products-carousel-viewport{overflow:hidden;width:100%}.iv-dynamic-products-carousel-track{display:flex;width:100%;transition:transform 0.55s cubic-bezier(0.4, 0.7, 0.2, 1);will-change:transform}.iv-dynamic-products-carousel-slide{flex:0 0 100%;box-sizing:border-box;padding:0.25rem 0.5rem;display:grid;grid-template-columns:repeat(6, minmax(0, 1fr));gap:1rem;align-items:stretch;grid-auto-rows:1fr}@media (max-width: 1200px){.iv-dynamic-products-carousel-slide{grid-template-columns:repeat(4, minmax(0, 1fr))}}@media (max-width: 900px){.iv-dynamic-products-carousel-slide{grid-template-columns:repeat(3, minmax(0, 1fr))}}@media (max-width: 640px){.iv-dynamic-products-carousel-slide{grid-template-columns:repeat(2, minmax(0, 1fr));gap:0.75rem}}.iv-dynamic-products-carousel-card{height:100%;display:flex;flex-direction:column;background:#fff;padding:0.75rem 0.75rem 0.9rem;box-shadow:0 2px 6px rgba(0, 0, 0, 0.08);transition:box-shadow 0.2s ease, transform 0.2s ease}.iv-dynamic-products-carousel-card .iv-card-title{line-height:1.2;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;min-height:2.4em}.iv-dynamic-products-carousel-card .iv-card-controls{margin-top:auto;}.iv-dynamic-products-carousel-card:hover{box-shadow:0 4px 14px rgba(0, 0, 0, 0.15);transform:translateY(-2px)}.iv-dynamic-products-carousel-card:active{transform:translateY(0);box-shadow:0 2px 6px rgba(0, 0, 0, 0.12)}.iv-dynamic-products-carousel-card img,.iv-dynamic-products-carousel-card picture,.iv-dynamic-products-carousel-card .media{width:100%;aspect-ratio:1/1;object-fit:contain;display:flex;align-items:center;justify-content:center;margin:0 0 0.65rem}.iv-dynamic-products-carousel-nav{position:absolute;top:50%;transform:translateY(-50%);background:var(--iv-carousel-nav-bg, rgba(0, 0, 0, 0.55));color:#fff;border:none;width:2.75rem;height:2.75rem;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(6px);box-shadow:0 4px 12px rgba(0, 0, 0, 0.25);transition:background 0.2s ease, transform 0.2s ease;outline:none;z-index:10}.iv-dynamic-products-carousel-nav:focus-visible{outline:2px solid #fff;outline-offset:3px}.iv-dynamic-products-carousel-nav:hover:not(:disabled){background:var(--iv-carousel-nav-bg-hover, rgba(0, 0, 0, 0.75));transform:translateY(-50%) scale(1.05);box-shadow:0 6px 18px rgba(0, 0, 0, 0.35)}.iv-dynamic-products-carousel-nav:disabled{opacity:0.4;cursor:default}.iv-dynamic-products-carousel-nav-prev{left:0.25rem}.iv-dynamic-products-carousel-nav-next{right:0.25rem}.iv-dynamic-products-carousel-status{margin-top:0.75rem;font-size:0.875rem;text-align:center;color:var(--iv-carousel-status-color, #555)}.iv-dynamic-products-carousel-viewport::-webkit-scrollbar{display:none}.iv-dynamic-products-carousel-viewport{-ms-overflow-style:none;scrollbar-width:none}";
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-77WT2UXf.js');
4
- var factory = require('./factory-CC4cUyGl.js');
3
+ var index = require('./index-LRS48Qt3.js');
4
+ var factory = require('./factory-NSOuLE3E.js');
5
5
  var productCache = require('./productCache-DAt5ukE_.js');
6
6
 
7
7
  const ivDynamicProductsCss = ".iv-dynamic-products{box-sizing:border-box;width:var(--iv-dynamic-products-width, 100%);max-width:var(--iv-dynamic-products-max-width, 100%);margin:var(--iv-dynamic-products-margin, 0);padding:var(--iv-dynamic-products-padding, 0);background:var(--iv-dynamic-products-bg, transparent);border:var(--iv-dynamic-products-border, none);border-radius:var(--iv-dynamic-products-radius, 0);box-shadow:var(--iv-dynamic-products-shadow, none);color:var(--iv-dynamic-products-color, inherit);--iv-layout-gap:var(--iv-dynamic-products-gap, 1.5rem)}.iv-dynamic-products-title{margin:var(--iv-dynamic-products-title-margin, 0 0 1rem 0);font-size:var(--iv-dynamic-products-title-font-size, clamp(1.125rem, 1vw + 1rem, 1.75rem));font-weight:var(--iv-dynamic-products-title-font-weight, 600);line-height:var(--iv-dynamic-products-title-line-height, 1.2);letter-spacing:var(--iv-dynamic-products-title-letter-spacing, normal)}.iv-dynamic-products-error,.iv-dynamic-products-empty{padding:var(--iv-dynamic-products-state-padding, 1rem);border:var(--iv-dynamic-products-state-border, none);background:var(--iv-dynamic-products-state-bg, transparent);color:var(--iv-dynamic-products-state-color, inherit);font-size:var(--iv-dynamic-products-state-font-size, 0.875rem);text-align:var(--iv-dynamic-products-state-text-align, center)}.iv-dynamic-products-products{width:100%;margin:var(--iv-dynamic-products-products-margin, 0);padding:var(--iv-dynamic-products-products-padding, 0)}.iv-layout--iv-dynamic-products-layout{--iv-layout-gap:var(--iv-dynamic-products-grid-gap, var(--iv-dynamic-products-gap, 1.5rem));align-items:var(--iv-dynamic-products-grid-align, stretch);justify-content:var(--iv-dynamic-products-grid-justify, flex-start)}.iv-dynamic-products .iv-card{margin:var(--iv-dynamic-products-card-margin, 0);--iv-card-padding:var(--iv-dynamic-products-card-padding, var(--iv-card-padding, 0))}@media (min-width: 40rem){.iv-dynamic-products{--iv-dynamic-products-gap:var(--iv-dynamic-products-gap-md, var(--iv-dynamic-products-gap, 1.5rem))}}@media (min-width: 64rem){.iv-dynamic-products{--iv-dynamic-products-gap:var(--iv-dynamic-products-gap-lg, var(--iv-dynamic-products-gap, 1.5rem))}}.iv-dynamic-products--scroll-x .iv-layout--iv-dynamic-products-layout{display:flex !important;overflow-x:auto;scrollbar-width:var(--iv-dynamic-products-scrollbar-width, thin);-webkit-overflow-scrolling:touch}.iv-dynamic-products--scroll-x .iv-layout--iv-dynamic-products-layout>*{flex:0 0 var(--iv-dynamic-products-scroll-item-width, 75%)}@media (prefers-reduced-motion: reduce){.iv-dynamic-products{scroll-behavior:auto}}";
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-77WT2UXf.js');
3
+ var index = require('./index-LRS48Qt3.js');
4
4
 
5
5
  const ivFiltersCss = ":host{display:block}";
6
6
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-77WT2UXf.js');
3
+ var index = require('./index-LRS48Qt3.js');
4
4
  var factory = require('./factory-DYuJXHFx.js');
5
5
 
6
6
  const ivPredictiveSearchCss = ".iv-predictive-search{box-sizing:border-box;width:var(--iv-predictive-width, 100%);max-width:var(--iv-predictive-max-width, 100%);margin:var(--iv-predictive-margin, 0);padding:var(--iv-predictive-padding, 0);position:relative;background:var(--iv-predictive-background, transparent);border:var(--iv-predictive-border, none);border-radius:var(--iv-predictive-border-radius, 0);box-shadow:var(--iv-predictive-box-shadow, none);font-family:var(--iv-predictive-font-family, inherit);font-size:var(--iv-predictive-font-size, 1rem);color:var(--iv-predictive-text-color, inherit);transition:var(--iv-predictive-transition, box-shadow 0.2s ease, border-color 0.2s ease)}.iv-predictive-search-wrapper{box-sizing:border-box;padding:var(--iv-predictive-wrapper-padding, 0);display:var(--iv-predictive-wrapper-display, block);gap:var(--iv-predictive-wrapper-gap, 0.5rem)}.iv-predictive-search-wrapper.label-top .iv-predictive-search-label{display:block}.iv-predictive-search-wrapper.label-inline{display:flex;align-items:center;gap:var(--iv-predictive-inline-gap, 0.5rem)}.iv-predictive-search-label{margin:var(--iv-predictive-label-margin, 0 0 0.25rem 0);font-size:var(--iv-predictive-label-font-size, 1rem);font-weight:var(--iv-predictive-label-font-weight, 500);color:var(--iv-predictive-label-color, inherit);line-height:var(--iv-predictive-label-line-height, 1.2)}.iv-predictive-search-input{box-sizing:border-box;width:100%;background:var(--iv-predictive-input-background, transparent);color:var(--iv-predictive-input-color, inherit);border:var(--iv-predictive-input-border, 1px solid currentColor);border-radius:var(--iv-predictive-input-border-radius, 0);padding:var(--iv-predictive-input-padding, 0.5rem 0.75rem);font-size:var(--iv-predictive-input-font-size, inherit);line-height:var(--iv-predictive-input-line-height, 1.2);outline:none;transition:var(--iv-predictive-input-transition, border-color 0.2s ease, box-shadow 0.2s ease)}.iv-predictive-search-input:focus{border:var(--iv-predictive-input-focus-border, var(--iv-predictive-input-border, 1px solid currentColor));box-shadow:var(--iv-predictive-input-focus-shadow, 0 0 0 2px rgba(0, 0, 0, 0.15))}.iv-predictive-search-results{position:var(--iv-predictive-results-position, absolute);top:var(--iv-predictive-results-top, 100%);left:var(--iv-predictive-results-left, 0);right:var(--iv-predictive-results-right, 0);z-index:var(--iv-predictive-results-z-index, 10);margin:var(--iv-predictive-results-margin, 0.5rem 0 0 0);padding:var(--iv-predictive-results-padding, 0.5rem);background:var(--iv-predictive-results-background, var(--iv-predictive-background, transparent));border:var(--iv-predictive-results-border, var(--iv-predictive-border, none));border-radius:var(--iv-predictive-results-border-radius, var(--iv-predictive-border-radius, 0));box-shadow:var(--iv-predictive-results-box-shadow, var(--iv-predictive-box-shadow, none));box-sizing:border-box}.iv-predictive-search-prediction-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--iv-predictive-list-gap, 0.5rem)}.iv-predictive-search-prediction-item{background:var(--iv-predictive-item-background, transparent);border-radius:var(--iv-predictive-item-border-radius, 0);transition:var(--iv-predictive-item-transition, background 0.2s ease, color 0.2s ease)}.iv-predictive-search-prediction-item:hover{background:var(--iv-predictive-item-hover-background, var(--iv-predictive-item-background, transparent))}.iv-predictive-search-prediction-link{display:flex;align-items:center;text-decoration:none;color:var(--iv-predictive-link-color, inherit);padding:var(--iv-predictive-link-padding, 0.25rem 0.5rem);border-radius:var(--iv-predictive-link-border-radius, 0);gap:var(--iv-predictive-link-gap, 0.5rem);background:var(--iv-predictive-link-background, transparent);transition:var(--iv-predictive-link-transition, background 0.2s ease, color 0.2s ease)}.iv-predictive-search-prediction-link:hover{color:var(--iv-predictive-link-hover-color, var(--iv-predictive-link-color, inherit));background:var(--iv-predictive-link-hover-background, var(--iv-predictive-link-background, transparent))}.iv-predictive-search-prediction-link .prediction-image{width:var(--iv-predictive-image-width, 48px);height:var(--iv-predictive-image-height, 48px);object-fit:var(--iv-predictive-image-object-fit, cover);border-radius:var(--iv-predictive-image-border-radius, 0);background:var(--iv-predictive-image-background, transparent);border:var(--iv-predictive-image-border, none);flex:0 0 auto}.iv-predictive-search-prediction-link .prediction-part{font-size:var(--iv-predictive-part-font-size, 1rem);color:var(--iv-predictive-part-color, inherit);margin-right:var(--iv-predictive-part-margin-right, 0)}.iv-predictive-search-no-results{padding:var(--iv-predictive-no-results-padding, 0.5rem);font-size:var(--iv-predictive-no-results-font-size, 0.875rem);color:var(--iv-predictive-no-results-color, inherit);text-align:var(--iv-predictive-no-results-text-align, center);opacity:var(--iv-predictive-no-results-opacity, 0.8)}.iv-predictive-search-see-all{margin-top:var(--iv-predictive-see-all-margin-top, 0.75rem);text-align:var(--iv-predictive-see-all-text-align, right)}@media (prefers-reduced-motion: reduce){.iv-predictive-search,.iv-predictive-search-input,.iv-predictive-search-prediction-item,.iv-predictive-search-prediction-link{transition:none}}";
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-77WT2UXf.js');
3
+ var index = require('./index-LRS48Qt3.js');
4
4
 
5
5
  const ivProductPinCss = ".iv-product-pin{position:absolute;width:32px;height:32px;background:#e74c3c;border-radius:50%;border:2px solid #fff;box-shadow:0 2px 8px rgba(0, 0, 0, 0.1);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:bold;cursor:pointer;transition:transform 0.1s}.iv-product-pin:hover{transform:scale(1.1)}";
6
6
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-77WT2UXf.js');
3
+ var index = require('./index-LRS48Qt3.js');
4
4
 
5
5
  const ivProductUpsellCss = ":host{display:block}";
6
6
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-77WT2UXf.js');
4
- var factory$1 = require('./factory-CC4cUyGl.js');
3
+ var index = require('./index-LRS48Qt3.js');
4
+ var factory$1 = require('./factory-NSOuLE3E.js');
5
5
  var factory = require('./factory-DYuJXHFx.js');
6
6
 
7
7
  const ivRecentlyViewedCss = ".iv-recently-viewed{background:var(--iv-recently-viewed-background, none);padding:var(--iv-recently-viewed-padding, 1rem 0);margin:var(--iv-recently-viewed-margin, 0);border:var(--iv-recently-viewed-border, none);border-radius:var(--iv-recently-viewed-radius, 0);position:relative;box-sizing:border-box;width:100%;display:block}.iv-recently-viewed-title{margin:var(--iv-recently-viewed-title-margin, 0 0 0.75rem);font-size:var(--iv-recently-viewed-title-font-size, 1.25rem);line-height:var(--iv-recently-viewed-title-line-height, 1.2);font-weight:var(--iv-recently-viewed-title-weight, 600);color:var(--iv-recently-viewed-title-color, inherit)}.iv-recently-viewed__list,.iv-recently-viewed__items{list-style:none;margin:0;padding:0}.iv-recently-viewed iv-layout,.iv-recently-viewed .iv-layout{--gap:var(--iv-recently-viewed-gap, 1rem);gap:var(--iv-recently-viewed-gap, 1rem)}.iv-recently-viewed iv-card,.iv-recently-viewed .iv-card{max-width:var(--iv-recently-viewed-card-max-width, 260px);width:100%}.iv-recently-viewed-no-history,.iv-recently-viewed__no-history,.iv-recently-viewed-no-history-message{font-size:var(--iv-recently-viewed-no-history-font-size, 0.875rem);color:var(--iv-recently-viewed-no-history-color, #666);padding:var(--iv-recently-viewed-no-history-padding, 0.5rem 0)}.iv-recently-viewed>*+*{margin-top:var(--iv-recently-viewed-stack-gap, 1rem)}@media (min-width: 640px){.iv-recently-viewed{padding:var(--iv-recently-viewed-padding-md, var(--iv-recently-viewed-padding, 1.25rem 0))}.iv-recently-viewed-title{font-size:var(--iv-recently-viewed-title-font-size-md, 1.375rem)}}@media (min-width: 960px){.iv-recently-viewed-title{font-size:var(--iv-recently-viewed-title-font-size-lg, 1.5rem)}}.iv-recently-viewed::after{content:var(--iv-recently-viewed-after-content, \"\");display:var(--iv-recently-viewed-after-display, none);position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--iv-recently-viewed-after-border-color, currentColor);opacity:var(--iv-recently-viewed-after-opacity, 0.1)}.iv-recently-viewed[data-tight]{--iv-recently-viewed-gap:0.5rem;--iv-recently-viewed-stack-gap:0.75rem}";
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-77WT2UXf.js');
3
+ var index = require('./index-LRS48Qt3.js');
4
4
 
5
5
  const ivShopTheLookCss = ":host{display:block}.iv-shop-the-look-image-container{position:relative;width:400px;height:300px;background:#eee;overflow:hidden}";
6
6
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-77WT2UXf.js');
3
+ var index = require('./index-LRS48Qt3.js');
4
4
  var factory = require('./factory-DYuJXHFx.js');
5
5
 
6
6
  const ivSuggestCss = ".iv-suggest{box-sizing:border-box;width:var(--iv-suggest-width, 100%);max-width:var(--iv-suggest-max-width, 100%);margin:var(--iv-suggest-margin, 0);padding:var(--iv-suggest-padding, 0);background:var(--iv-suggest-bg, transparent);border:var(--iv-suggest-border, none);border-radius:var(--iv-suggest-radius, 0);box-shadow:var(--iv-suggest-shadow, none);color:var(--iv-suggest-color, inherit);--iv-layout-gap:var(--iv-suggest-layout-gap, 1.25rem)}.iv-suggest-queries,.iv-suggest-collections,.iv-suggest-products,.iv-suggest-banner{box-sizing:border-box;padding:var(--iv-suggest-section-padding, 0);margin:var(--iv-suggest-section-margin, 0);background:var(--iv-suggest-section-bg, transparent);border:var(--iv-suggest-section-border, none);border-radius:var(--iv-suggest-section-radius, 0)}.iv-suggest-queries-title,.iv-suggest-products-title,.iv-suggest-collections-title{display:block;margin:var(--iv-suggest-title-margin, 0 0 0.75rem 0);font-size:var(--iv-suggest-title-font-size, 1rem);font-weight:var(--iv-suggest-title-font-weight, 600);line-height:var(--iv-suggest-title-line-height, 1.2);letter-spacing:var(--iv-suggest-title-letter-spacing, normal)}.iv-suggest-top-queries{display:flex;flex-wrap:wrap;gap:var(--iv-suggest-queries-gap, 0.5rem)}.iv-suggest-top-queries .iv-link{--iv-link-color:var(--iv-suggest-query-link-color, inherit);--iv-link-hover-color:var(--iv-suggest-query-link-hover-color, var(--iv-link-color, inherit));font-size:var(--iv-suggest-query-link-font-size, 0.875rem);background:var(--iv-suggest-query-link-bg, transparent);padding:var(--iv-suggest-query-link-padding, 0);border:var(--iv-suggest-query-link-border, none);border-radius:var(--iv-suggest-query-link-radius, 0)}.iv-suggest .iv-card{--iv-card-padding:var(--iv-suggest-card-padding, var(--iv-card-padding, 0));margin:var(--iv-suggest-card-margin, 0)}.iv-suggest-banner{position:relative;overflow:hidden}.iv-suggest-banner-image img{display:block;width:100%;height:auto;object-fit:var(--iv-suggest-banner-image-object-fit, cover);aspect-ratio:var(--iv-suggest-banner-image-aspect-ratio, auto)}.iv-suggest-no-data{font-size:var(--iv-suggest-empty-font-size, 0.8125rem);opacity:var(--iv-suggest-empty-opacity, 0.8);padding:var(--iv-suggest-empty-padding, 0)}.iv-suggest--scroll-x .iv-layout{display:flex !important;overflow-x:auto;scrollbar-width:var(--iv-suggest-scrollbar-width, thin);-webkit-overflow-scrolling:touch}.iv-suggest--scroll-x .iv-layout>*{flex:0 0 var(--iv-suggest-scroll-item-width, 70%)}@media (min-width: 40rem){.iv-suggest{--iv-suggest-layout-gap:var(--iv-suggest-layout-gap-md, var(--iv-suggest-layout-gap, 1.25rem))}}@media (min-width: 64rem){.iv-suggest{--iv-suggest-layout-gap:var(--iv-suggest-layout-gap-lg, var(--iv-suggest-layout-gap, 1.25rem))}}@media (prefers-reduced-motion: reduce){.iv-suggest{scroll-behavior:auto}}";
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-77WT2UXf.js');
3
+ var index = require('./index-LRS48Qt3.js');
4
4
 
5
5
  const ivTabsCss = ":host{display:block}";
6
6
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-77WT2UXf.js');
3
+ var index = require('./index-LRS48Qt3.js');
4
4
 
5
5
  const ivToastContainerCss = ".iv-toast-container{position:fixed;top:1rem;left:1rem;display:flex;flex-direction:column;gap:1rem;z-index:10000;pointer-events:none}";
6
6
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-77WT2UXf.js');
3
+ var index = require('./index-LRS48Qt3.js');
4
4
 
5
5
  const ivToastCss = ".iv-toast{position:relative;display:flex;align-items:flex-start;gap:0.75rem;line-height:1.4;min-width:26rem;max-width:36rem;padding:1.1rem 1.5rem 1.1rem 1.75rem;border-radius:0.5rem;font-size:var(--iv-toast-font-size, 1.05rem);font-weight:500;opacity:0;transform:translateY(2rem) scale(0.95);box-shadow:0 8px 32px rgba(0, 0, 0, 0.18), 0 2px 6px rgba(0, 0, 0, 0.12);border:1px solid var(--iv-toast-border, rgba(0, 0, 0, 0.12));background-clip:padding-box;backdrop-filter:var(--iv-toast-backdrop-filter, none);-webkit-font-smoothing:antialiased;animation:toast-in 0.5s cubic-bezier(0.4, 1.4, 0.6, 1) forwards, toast-out 0.5s cubic-bezier(0.4, 1.4, 0.6, 1) forwards;animation-delay:0s, calc(var(--iv-toast-duration, 5s) - 0.5s);pointer-events:all;transition:box-shadow 0.25s ease, transform 0.25s ease}.iv-toast::before{content:\"\";position:absolute;inset:0 auto 0 0;width:0.4rem;border-radius:0.5rem 0 0 0.5rem;background:var(--iv-toast-accent, #6366f1)}.iv-toast:hover{box-shadow:0 10px 42px rgba(0, 0, 0, 0.22), 0 3px 10px rgba(0, 0, 0, 0.18);transform:translateY(-2px)}.iv-toast.info{background-color:var(--iv-toast-info-background, black);color:var(--iv-toast-info-color, white);--iv-toast-accent:var(--iv-toast-info-accent, #6366f1)}.iv-toast.success{background-color:var(--iv-toast-success-background, #d1fadf);color:var(--iv-toast-success-color, #065f46);--iv-toast-accent:var(--iv-toast-success-accent, #12b76a)}.iv-toast.warning{background-color:var(--iv-toast-warning-background, #ffe8c7);color:var(--iv-toast-warning-color, #7c2d12);--iv-toast-accent:var(--iv-toast-warning-accent, #f59e0b)}.iv-toast.error{background-color:var(--iv-toast-error-background, #ffe2e2);color:var(--iv-toast-error-color, #7f1d1d);--iv-toast-accent:var(--iv-toast-error-accent, #ef4444)}.iv-toast .iv-toast-message{margin:0;line-height:1.4;word-break:break-word;font-weight:600}@keyframes toast-in{0%{opacity:0;transform:translateY(1.25rem) scale(0.92)}55%{opacity:1;transform:translateY(-3px) scale(1.03)}75%{transform:translateY(2px) scale(0.997)}100%{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(1rem) scale(0.94)}}";
6
6
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-77WT2UXf.js');
3
+ var index = require('./index-LRS48Qt3.js');
4
4
 
5
5
  const ivWishlistCss = ":host{display:block}";
6
6
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-77WT2UXf.js');
4
- var appGlobals = require('./app-globals-DRVRI1ik.js');
3
+ var index = require('./index-LRS48Qt3.js');
4
+ var appGlobals = require('./app-globals-CoHtVZOa.js');
5
5
 
6
6
  const defineCustomElements = async (win, options) => {
7
7
  if (typeof window === 'undefined') return undefined;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-77WT2UXf.js');
3
+ var index = require('./index-LRS48Qt3.js');
4
4
 
5
5
  const swInGridContentCss = "sw-in-grid-content{grid-column:span 2;grid-row:span 2}@media (max-width: 1024px){sw-in-grid-content{grid-row:span unset;aspect-ratio:4/5}}sw-in-grid-content .promo-card{position:relative;width:100%;height:100%;min-height:250px;padding:var(--promo-tile-padding) !important}@media (max-width: 1024px){sw-in-grid-content .promo-card{padding:calc(var(--promo-tile-padding) * var(--promo-tile-responsive-modifier))}}sw-in-grid-content .promo-card [slot=media]>img,sw-in-grid-content .promo-card [slot=media]>video{object-fit:cover;width:100%;height:100%;position:absolute;top:0;left:0;z-index:1}sw-in-grid-content .promo-card [slot=text]{position:absolute;bottom:var(--promo-tile-padding);left:var(--promo-tile-padding);z-index:2;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;height:100%;width:100%}@media (max-width: 1024px){sw-in-grid-content .promo-card [slot=text]{bottom:calc(var(--promo-tile-padding) * var(--promo-tile-responsive-modifier));left:calc(var(--promo-tile-padding) * var(--promo-tile-responsive-modifier));width:unset}}sw-in-grid-content .promo-card [slot=text].light-infill a,sw-in-grid-content .promo-card [slot=text].light-infill h3,sw-in-grid-content .promo-card [slot=text].light-infill h5,sw-in-grid-content .promo-card [slot=text].light-infill p{color:white}sw-in-grid-content .promo-card [slot=text].light-infill a::before{background:white}sw-in-grid-content .promo-card [slot=text].dark-infill a,sw-in-grid-content .promo-card [slot=text].dark-infill h3,sw-in-grid-content .promo-card [slot=text].dark-infill h5,sw-in-grid-content .promo-card [slot=text].dark-infill p{color:black}sw-in-grid-content .promo-card [slot=text].dark-infill a::before{background:black}sw-in-grid-content .promo-card [slot=text] a{position:relative;transition:all 0.5s}sw-in-grid-content .promo-card [slot=text] a::before{content:\"\";position:absolute;height:2px;width:0;bottom:-4px;left:0;transition:all 0.5s}sw-in-grid-content .promo-card [slot=text] a:hover{transition:all 0.5s}sw-in-grid-content .promo-card [slot=text] a:hover::before{transition:all 0.5s;width:100%}sw-in-grid-content .promo-card [slot=text] h3,sw-in-grid-content .promo-card [slot=text] h5,sw-in-grid-content .promo-card [slot=text] a,sw-in-grid-content .promo-card [slot=text] p{padding:0;margin:0 0 var(--promo-tile-item-spacing) 0;font-family:var(--font-base)}@media (max-width: 1024px){sw-in-grid-content .promo-card [slot=text] h3,sw-in-grid-content .promo-card [slot=text] h5,sw-in-grid-content .promo-card [slot=text] a,sw-in-grid-content .promo-card [slot=text] p{margin:0 0 calc(var(--promo-tile-item-spacing) * var(--promo-tile-responsive-modifier)) 0}}sw-in-grid-content .promo-card [slot=text] h5{font-size:var(--promo-tile-secondary-title-size)}@media (max-width: 1024px){sw-in-grid-content .promo-card [slot=text] h5{font-size:calc(var(--promo-tile-secondary-title-size) * var(--promo-tile-responsive-modifier))}}sw-in-grid-content .promo-card [slot=text] h3{font-size:var(--promo-tile-primary-title-size)}@media (max-width: 1024px){sw-in-grid-content .promo-card [slot=text] h3{font-size:calc(var(--promo-tile-primary-title-size) * var(--promo-tile-responsive-modifier))}}sw-in-grid-content .promo-card [slot=text] p,sw-in-grid-content .promo-card [slot=text] a{font-size:var(--promo-tile-text-size)}@media (max-width: 1024px){sw-in-grid-content .promo-card [slot=text] p,sw-in-grid-content .promo-card [slot=text] a{font-size:calc(var(--promo-tile-text-size) * var(--promo-tile-responsive-modifier))}}";
6
6
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-77WT2UXf.js');
3
+ var index = require('./index-LRS48Qt3.js');
4
4
 
5
5
  const swSizeGuideCss = ".iv-sw-button{margin-bottom:2.5rem;background:black;color:white;border:1px solid transparent;outline:none;padding:0.75rem 1.5rem;text-transform:uppercase;font-weight:400;border-radius:unset;font-size:1rem;cursor:pointer;transition:all 0.5s}.iv-sw-button:hover{transition:all 0.5s;border-color:black;background:white;color:black}.table-wrapper{max-height:420px;overflow-y:auto;background:#fff;border-radius:0.5rem;box-shadow:0 2px 8px rgba(0, 0, 0, 0.03);scrollbar-color:#111 #fff;scrollbar-width:thin}.table-wrapper::-webkit-scrollbar{width:10px;background:#fff}.table-wrapper::-webkit-scrollbar-thumb{background:#111;border-radius:0}.table-wrapper::-webkit-scrollbar-track{background:#fff;border-radius:0}.table-wrapper>table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;color:#222;background:#fff;border-radius:0.5rem}.table-wrapper>table th,.table-wrapper>table td{text-align:center;vertical-align:middle;padding:1.25rem 0.75rem;border-bottom:1px solid #ececec;color:#222;background:#fafafa}.table-wrapper>table th{position:sticky;top:0;font-weight:600;background:#f5f5f5;color:#111}.table-wrapper>table th>select{outline:0;border-radius:0;border:0;position:relative;font-size:inherit;background-color:transparent;padding:0.75em 1em}.table-wrapper>table tr:last-child td{border-bottom:none}.table-wrapper>table tbody tr{transition:background 0.2s}.table-wrapper>table tbody tr:hover{background:#f0f0f0}";
6
6
 
@@ -9,6 +9,7 @@ const w = (typeof window !== 'undefined') ? window : {};
9
9
  export default async function intravenousGlobalInit() {
10
10
  try {
11
11
  if (!w.__IV_API_SETUP_DONE) {
12
+ console.log('[IV] Starting global API setup... app.ts');
12
13
  await ignition();
13
14
  w.__IV_API_SETUP_DONE = true;
14
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/global/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,4EAA4E;AAC5E,+EAA+E;AAC/E,gDAAgD;AAChD,6DAA6D;AAC7D,aAAa;AACb,MAAM,CAAC,GAAQ,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AAE7D,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,qBAAqB;IACjD,IAAI,CAAC;QACH,IAAG,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC;YAC1B,MAAM,QAAQ,EAAE,CAAC;YACjB,CAAC,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAC/B,CAAC;QACD,IAAG,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,wBAAwB,EAAE,CAAC;gBAC9C,IAAG,IAAI;oBAAE,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;YACpD,CAAC;YACD,CAAC,CAAC,wBAAwB,GAAG,IAAI,CAAC;QACpC,CAAC;IACH,CAAC;IAAC,OAAM,GAAG,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;AACH,CAAC","sourcesContent":["import { ignition, fetchShopifyCurrencyCode } from '../utils/config/factory';\r\nimport { state } from '../utils/store/store';\r\n\r\n// Idempotent global init (prevents double execution if script loaded twice)\r\n// Also resolves Stencil v update expecting a default export from globalScript.\r\n// Flags kept minimal to avoid polluting window.\r\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n// @ts-ignore\r\nconst w: any = (typeof window !== 'undefined') ? window : {};\r\n\r\nexport default async function intravenousGlobalInit() {\r\n try {\r\n if(!w.__IV_API_SETUP_DONE) {\r\n await ignition();\r\n w.__IV_API_SETUP_DONE = true;\r\n }\r\n if(!w.__IV_CURRENCY_FETCH_DONE) {\r\n try {\r\n const code = await fetchShopifyCurrencyCode();\r\n if(code) state.setCurrencyCode(code);\r\n } catch (err) {\r\n console.debug('[IV] currency fetch skipped', err);\r\n }\r\n w.__IV_CURRENCY_FETCH_DONE = true;\r\n }\r\n } catch(err) {\r\n console.error('[IV] Global init failed', err);\r\n }\r\n}"]}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/global/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,4EAA4E;AAC5E,+EAA+E;AAC/E,gDAAgD;AAChD,6DAA6D;AAC7D,aAAa;AACb,MAAM,CAAC,GAAQ,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AAE7D,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,qBAAqB;IACjD,IAAI,CAAC;QACH,IAAG,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;YACxD,MAAM,QAAQ,EAAE,CAAC;YACjB,CAAC,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAC/B,CAAC;QACD,IAAG,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,wBAAwB,EAAE,CAAC;gBAC9C,IAAG,IAAI;oBAAE,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;YACpD,CAAC;YACD,CAAC,CAAC,wBAAwB,GAAG,IAAI,CAAC;QACpC,CAAC;IACH,CAAC;IAAC,OAAM,GAAG,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;AACH,CAAC","sourcesContent":["import { ignition, fetchShopifyCurrencyCode } from '../utils/config/factory';\r\nimport { state } from '../utils/store/store';\r\n\r\n// Idempotent global init (prevents double execution if script loaded twice)\r\n// Also resolves Stencil v update expecting a default export from globalScript.\r\n// Flags kept minimal to avoid polluting window.\r\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n// @ts-ignore\r\nconst w: any = (typeof window !== 'undefined') ? window : {};\r\n\r\nexport default async function intravenousGlobalInit(): Promise<void> {\r\n try {\r\n if(!w.__IV_API_SETUP_DONE) {\r\n console.log('[IV] Starting global API setup... app.ts');\r\n await ignition();\r\n w.__IV_API_SETUP_DONE = true;\r\n }\r\n if(!w.__IV_CURRENCY_FETCH_DONE) {\r\n try {\r\n const code = await fetchShopifyCurrencyCode();\r\n if(code) state.setCurrencyCode(code);\r\n } catch (err) {\r\n console.debug('[IV] currency fetch skipped', err);\r\n }\r\n w.__IV_CURRENCY_FETCH_DONE = true;\r\n }\r\n } catch(err) {\r\n console.error('[IV] Global init failed', err);\r\n }\r\n}"]}
@@ -73,6 +73,7 @@ export async function ignition() {
73
73
  }
74
74
  ;
75
75
  if (typeof window !== 'undefined') {
76
+ console.log('Ignition called form factory.ts.');
76
77
  document.readyState === 'loading'
77
78
  ? document.addEventListener('DOMContentLoaded', () => { ignition(); })
78
79
  : ignition();
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/utils/config/factory.ts"],"names":[],"mappings":"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","sourcesContent":["import { state } from '../../utils/store/store';\r\nimport { createErrorHandler } from '../../utils/error_handling/factory';\r\n\r\nconst errors = createErrorHandler({ component: 'iv-set-up' });\r\n\r\nexport async function setStoreDomain(): Promise<void> {\r\n try {\r\n const storeUrl = typeof window !== 'undefined' && window.location ? window.location.hostname : '';\r\n if(!storeUrl) throw new Error('Could not set store domain.');\r\n state.shopDomain = storeUrl;\r\n\r\n console.log('[IV] Set shop domain to', state.shopDomain);\r\n\r\n } catch(err: any) {\r\n errors.handle({\r\n error: err,\r\n scope: 'SetStoreDomain',\r\n userMessage: 'Something has gone wrong, please try again.',\r\n devMessage: 'Failed to set store domain in store.ts',\r\n severity: 'critical'\r\n });\r\n };\r\n};\r\n\r\nexport async function setToken(): Promise<void> {\r\n try {\r\n const token = document.documentElement.getAttribute('store-token');\r\n if(!token) throw new Error('Store token not found on document.');\r\n state.storefrontToken = token;\r\n console.log('[IV] Set store token to', state.storefrontToken);\r\n } catch(err: any) {\r\n errors.handle({\r\n error: err,\r\n scope: 'SetToken',\r\n userMessage: 'Something has gone wrong, please try again.',\r\n devMessage: 'Failed to set store token in store.ts',\r\n severity: 'critical'\r\n });\r\n };\r\n};\r\n\r\nexport async function setEndpoint(): Promise<void> {\r\n try {\r\n const endpoint = state.shopDomain;\r\n if(!endpoint) throw new Error('Shop domain not set in store.');\r\n state.shopDomainApi = endpoint + '.myshopify.com';\r\n console.log('[IV] Set shop domain API to', state.shopDomainApi);\r\n } catch(err: any) {\r\n errors.handle({\r\n error: err,\r\n scope: 'SetEndpoint',\r\n userMessage: 'Something has gone wrong, please try again.',\r\n devMessage: 'Failed to set store endpoint in store.ts',\r\n severity: 'critical'\r\n });\r\n };\r\n}; \r\n\r\n// Check where this is called! \r\nexport async function ignition(): Promise<void> {\r\n console.log('[IV] Starting API setup ignition...');\r\n await setStoreDomain();\r\n console.log('[IV] Store domain set.');\r\n await setToken();\r\n console.log('[IV] Store token set.');\r\n await setEndpoint();\r\n console.log('[IV] Store endpoint set.');\r\n};\r\n\r\nif(typeof window !== 'undefined') {\r\n document.readyState === 'loading'\r\n ? document.addEventListener('DOMContentLoaded', () => { ignition(); })\r\n : ignition();\r\n};\r\n\r\nexport async function fetchShopifyCurrencyCode(): Promise<string> {\r\n try {\r\n const url = '/cart.js';\r\n const response = await fetch(url);\r\n const data = await response.json();\r\n return data.currency || 'GBP';\r\n } catch (error) {\r\n console.error('Error fetching cart:', error);\r\n return 'GBP';\r\n };\r\n};"]}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/utils/config/factory.ts"],"names":[],"mappings":"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","sourcesContent":["import { state } from '../../utils/store/store';\r\nimport { createErrorHandler } from '../../utils/error_handling/factory';\r\n\r\nconst errors = createErrorHandler({ component: 'iv-set-up' });\r\n\r\nexport async function setStoreDomain(): Promise<void> {\r\n try {\r\n const storeUrl = typeof window !== 'undefined' && window.location ? window.location.hostname : '';\r\n if(!storeUrl) throw new Error('Could not set store domain.');\r\n state.shopDomain = storeUrl;\r\n\r\n console.log('[IV] Set shop domain to', state.shopDomain);\r\n\r\n } catch(err: any) {\r\n errors.handle({\r\n error: err,\r\n scope: 'SetStoreDomain',\r\n userMessage: 'Something has gone wrong, please try again.',\r\n devMessage: 'Failed to set store domain in store.ts',\r\n severity: 'critical'\r\n });\r\n };\r\n};\r\n\r\nexport async function setToken(): Promise<void> {\r\n try {\r\n const token = document.documentElement.getAttribute('store-token');\r\n if(!token) throw new Error('Store token not found on document.');\r\n state.storefrontToken = token;\r\n console.log('[IV] Set store token to', state.storefrontToken);\r\n } catch(err: any) {\r\n errors.handle({\r\n error: err,\r\n scope: 'SetToken',\r\n userMessage: 'Something has gone wrong, please try again.',\r\n devMessage: 'Failed to set store token in store.ts',\r\n severity: 'critical'\r\n });\r\n };\r\n};\r\n\r\nexport async function setEndpoint(): Promise<void> {\r\n try {\r\n const endpoint = state.shopDomain;\r\n if(!endpoint) throw new Error('Shop domain not set in store.');\r\n state.shopDomainApi = endpoint + '.myshopify.com';\r\n console.log('[IV] Set shop domain API to', state.shopDomainApi);\r\n } catch(err: any) {\r\n errors.handle({\r\n error: err,\r\n scope: 'SetEndpoint',\r\n userMessage: 'Something has gone wrong, please try again.',\r\n devMessage: 'Failed to set store endpoint in store.ts',\r\n severity: 'critical'\r\n });\r\n };\r\n}; \r\n\r\n// Check where this is called! \r\nexport async function ignition(): Promise<void> {\r\n console.log('[IV] Starting API setup ignition...');\r\n await setStoreDomain();\r\n console.log('[IV] Store domain set.');\r\n await setToken();\r\n console.log('[IV] Store token set.');\r\n await setEndpoint();\r\n console.log('[IV] Store endpoint set.');\r\n};\r\n\r\nif(typeof window !== 'undefined') {\r\n console.log('Ignition called form factory.ts.');\r\n document.readyState === 'loading'\r\n ? document.addEventListener('DOMContentLoaded', () => { ignition(); })\r\n : ignition();\r\n};\r\n\r\nexport async function fetchShopifyCurrencyCode(): Promise<string> {\r\n try {\r\n const url = '/cart.js';\r\n const response = await fetch(url);\r\n const data = await response.json();\r\n return data.currency || 'GBP';\r\n } catch (error) {\r\n console.error('Error fetching cart:', error);\r\n return 'GBP';\r\n };\r\n};"]}
@@ -3,8 +3,11 @@ async function shopifyFetch(query, variables = {}) {
3
3
  try {
4
4
  if (!state.shopDomainApi || !state.storefrontToken)
5
5
  throw new Error('Missing Shopify configuration (shopDomain/storefrontToken)');
6
- const endpoint = `https://${state.shopDomainApi}/api/2025-07/graphql.json`;
6
+ // const endpoint = `https://${state.shopDomainApi}/api/2025-07/graphql.json`;
7
+ const endpoint = 'https://craftnberry-co-uk.myshopify.com/api/2025-07/graphql.json';
8
+ console.log('[IV] Shopify Fetch to', endpoint);
7
9
  const token = state.storefrontToken;
10
+ console.log('[IV] Using storefront token', token);
8
11
  const res = await fetch(endpoint, {
9
12
  method: 'POST',
10
13
  headers: {
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/utils/storefront_api/factory.ts"],"names":[],"mappings":"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","sourcesContent":["import { state, showToast } from \"../store/store\";\r\n\r\nasync function shopifyFetch(query: string, variables: Record<string, any> = {}): Promise<any> {\r\n try {\r\n if(!state.shopDomainApi || !state.storefrontToken) throw new Error('Missing Shopify configuration (shopDomain/storefrontToken)');\r\n const endpoint = `https://${state.shopDomainApi}/api/2025-07/graphql.json`;\r\n const token = state.storefrontToken;\r\n const res = await fetch(endpoint, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'X-Shopify-Storefront-Access-Token': token\r\n },\r\n body: JSON.stringify({ query, variables })\r\n });\r\n const json = await res.json();\r\n if(json.errors) throw new Error(json.errors.map((e: any) => e.message).join(', '));\r\n return json.data;\r\n } catch(error) {\r\n console.error('Shopify Fetch Error:', error);\r\n throw error; \r\n };\r\n};\r\n\r\nexport async function getIdFromHandle(handle: string): Promise<string | null> {\r\n const query = `\r\n query ($handle: String!) {\r\n product(handle: $handle) {\r\n id\r\n }\r\n }`;\r\n try {\r\n const data = await shopifyFetch(query, { handle });\r\n return data?.product?.id || null;\r\n } catch (error) {\r\n console.error('getIdFromHandle error:', error);\r\n return null;\r\n };\r\n};\r\n\r\n// Field + normalization helpers\r\nconst BASE_PRODUCT_FIELDS = ['id','handle','title'];\r\nconst DEFAULT_VARIANT_FIELDS = ['id','title','price { amount currencyCode }'];\r\n\r\nfunction mergeFields(requested: string[] | string, defaults: string[]): string[] {\r\n const req = (Array.isArray(requested) ? requested : requested.split(','))\r\n .map(f => f.trim())\r\n .filter(Boolean);\r\n const seen = new Set<string>();\r\n const ordered: string[] = [];\r\n for(const f of req) { \r\n if(!seen.has(f)) { \r\n seen.add(f); ordered.push(f); \r\n }; \r\n };\r\n for(const d of defaults) { \r\n if(!seen.has(d)) { \r\n seen.add(d); \r\n ordered.push(d); \r\n }; \r\n };\r\n return ordered;\r\n};\r\n\r\nfunction expandProductFields(fields: string[]): string {\r\n return fields\r\n .filter(f => f !== 'price')\r\n .map(f => {\r\n if(f === 'images') return 'images(first: 10) { nodes { url altText } }';\r\n return f;\r\n })\r\n .join('\\n');\r\n};\r\n\r\nfunction variantSelection(fields: string[] = DEFAULT_VARIANT_FIELDS): string {\r\n return fields.join('\\n');\r\n};\r\n\r\ninterface NormalizedProduct {\r\n id: string;\r\n handle?: string;\r\n title?: string;\r\n variantId?: string;\r\n price?: string | null;\r\n imageUrl?: string | null;\r\n imageAlt?: string | null;\r\n // index signature for dynamic requested fields\r\n [key: string]: any;\r\n};\r\n\r\nfunction normalizeProduct(product: any, selectedVariant?: any): NormalizedProduct {\r\n const variant = selectedVariant || product.variants?.edges?.[0]?.node || {};\r\n let imageUrl = null;\r\n let imageAlt = null;\r\n if(product.images?.nodes && product.images.nodes.length > 0) {\r\n imageUrl = product.images.nodes[0].url || null;\r\n imageAlt = product.images.nodes[0].altText || null;\r\n };\r\n const { id: variantId, price } = variant;\r\n return {\r\n id: product.id,\r\n ...Object.fromEntries(Object.entries(product).filter(([key]) => key !== 'variants')),\r\n variantId,\r\n price: price?.amount || null,\r\n imageUrl,\r\n imageAlt,\r\n };\r\n};\r\n\r\n// Query builders\r\nfunction buildProductsQuery(fieldsString: string, variantFieldsString: string) {\r\n return `\r\n query ($limit: Int!, $sortKey: ProductSortKeys!, $reverse: Boolean) {\r\n products(first: $limit, sortKey: $sortKey, reverse: $reverse) {\r\n edges {\r\n node {\r\n ${fieldsString}\r\n variants(first: 1) { edges { node { ${variantFieldsString} } } }\r\n }\r\n }\r\n }\r\n }`;\r\n};\r\n\r\nfunction buildCollectionProductsQuery(fieldsString: string, variantFieldsString: string) {\r\n return `\r\n query ($handle: String!, $limit: Int!, $sortKey: ProductCollectionSortKeys!, $reverse: Boolean) {\r\n collection(handle: $handle) {\r\n products(first: $limit, sortKey: $sortKey, reverse: $reverse) {\r\n edges {\r\n node {\r\n ${fieldsString}\r\n variants(first: 1) { edges { node { ${variantFieldsString} } } }\r\n }\r\n }\r\n }\r\n }\r\n }`;\r\n};\r\n\r\nfunction buildSingleProductQuery(fieldsString: string, variantFieldsString: string) {\r\n return `\r\n query ($id: ID!) {\r\n product(id: $id) {\r\n ${fieldsString}\r\n variants(first: 1) { edges { node { ${variantFieldsString} } } }\r\n }\r\n }`;\r\n};\r\n\r\nfunction buildVariantProductQuery(productFieldsString: string, variantFieldsString: string) {\r\n return `\r\n query ($id: ID!) {\r\n productVariant(id: $id) {\r\n ${variantFieldsString}\r\n product {\r\n ${productFieldsString}\r\n variants(first: 1) { edges { node { ${variantFieldsString} } } }\r\n }\r\n }\r\n }`;\r\n};\r\n\r\n// Public API\r\nexport async function fetchProducts(limit: number, collectionHandle: string, sortKey: string, fields: string[] | string, reversed: boolean = false) {\r\n try {\r\n const merged = mergeFields(fields, BASE_PRODUCT_FIELDS);\r\n const fieldsString = expandProductFields(merged);\r\n const variantFieldsString = variantSelection();\r\n const isAll = !collectionHandle || collectionHandle === 'all';\r\n const query = isAll ? buildProductsQuery(fieldsString, variantFieldsString) : buildCollectionProductsQuery(fieldsString, variantFieldsString);\r\n const reverse = !!reversed;\r\n const variables: Record<string, any> = isAll ? { limit, sortKey, reverse } : { handle: collectionHandle, limit, sortKey, reverse };\r\n const data = await shopifyFetch(query, variables);\r\n const productEdges = data.products?.edges || data.collection?.products?.edges || [];\r\n return productEdges.map((edge: any) => normalizeProduct(edge.node));\r\n } catch(error) { \r\n console.error('Fetch Products Error:', error); throw error;\r\n };\r\n};\r\n\r\nexport async function fetchProductByID(id: string, fields: string[] | string, options?: { variantId?: string }): Promise<NormalizedProduct | null> {\r\n try {\r\n if(options?.variantId) return await getVariantProduct(options.variantId, fields);\r\n const merged = mergeFields(fields, BASE_PRODUCT_FIELDS);\r\n const fieldsString = expandProductFields(merged);\r\n const variantFieldsString = variantSelection();\r\n const query = buildSingleProductQuery(fieldsString, variantFieldsString);\r\n const data = await shopifyFetch(query, { id });\r\n const product = data?.product;\r\n if(!product) return null;\r\n return normalizeProduct(product);\r\n } catch(error) { console.error('Fetch Product By ID Error:', error); throw error; };\r\n};\r\n\r\nexport async function getVariantProduct(variantId: string, fields: string[] | string): Promise<NormalizedProduct | null> {\r\n try {\r\n const merged = mergeFields(fields, BASE_PRODUCT_FIELDS);\r\n const productFieldsString = expandProductFields(merged);\r\n const variantFieldsString = variantSelection();\r\n const query = buildVariantProductQuery(productFieldsString, variantFieldsString);\r\n const data = await shopifyFetch(query, { id: variantId });\r\n const variantNode = data?.productVariant;\r\n if(!variantNode) return null;\r\n const product = variantNode.product;\r\n if(!product) return null;\r\n return normalizeProduct(product, variantNode); \r\n } catch(error) { console.error('Get Variant Product Error:', error); throw error; };\r\n};\r\n\r\nexport async function addToCart(options: {\r\n id: number;\r\n quantity?: number;\r\n properties?: Record<string, any>;\r\n}) {\r\n try {\r\n console.log('IV add to cart called');\r\n if(!options.id) throw new Error('No variant id provided for addToCart');\r\n const quantity = options.quantity || 1;\r\n const properties = options.properties || {};\r\n const payload = {\r\n items: [\r\n {\r\n id: options.id,\r\n quantity,\r\n properties\r\n }\r\n ]\r\n };\r\n const url = '/cart/add.js';\r\n const res = await fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json',\r\n 'X-Requested-With': 'XMLHttpRequest'\r\n },\r\n body: JSON.stringify(payload)\r\n });\r\n if(!res.ok) {\r\n const errorText = await res.text();\r\n throw new Error(errorText);\r\n };\r\n const cartItem = await res.json();\r\n showToast('Added to cart!', 'success', 3000);\r\n return cartItem;\r\n } catch (error) {\r\n showToast('Error adding to cart', 'error', 5000);\r\n throw error;\r\n };\r\n};"]}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/utils/storefront_api/factory.ts"],"names":[],"mappings":"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","sourcesContent":["import { state, showToast } from \"../store/store\";\r\nasync function shopifyFetch(query: string, variables: Record<string, any> = {}): Promise<any> {\r\n try {\r\n if(!state.shopDomainApi || !state.storefrontToken) throw new Error('Missing Shopify configuration (shopDomain/storefrontToken)');\r\n // const endpoint = `https://${state.shopDomainApi}/api/2025-07/graphql.json`;\r\n const endpoint = 'https://craftnberry-co-uk.myshopify.com/api/2025-07/graphql.json';\r\n console.log('[IV] Shopify Fetch to', endpoint);\r\n const token = state.storefrontToken;\r\n console.log('[IV] Using storefront token', token);\r\n const res = await fetch(endpoint, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'X-Shopify-Storefront-Access-Token': token\r\n },\r\n body: JSON.stringify({ query, variables })\r\n });\r\n const json = await res.json();\r\n if(json.errors) throw new Error(json.errors.map((e: any) => e.message).join(', '));\r\n return json.data;\r\n } catch(error) {\r\n console.error('Shopify Fetch Error:', error);\r\n throw error; \r\n };\r\n};\r\n\r\nexport async function getIdFromHandle(handle: string): Promise<string | null> {\r\n const query = `\r\n query ($handle: String!) {\r\n product(handle: $handle) {\r\n id\r\n }\r\n }`;\r\n try {\r\n const data = await shopifyFetch(query, { handle });\r\n return data?.product?.id || null;\r\n } catch (error) {\r\n console.error('getIdFromHandle error:', error);\r\n return null;\r\n };\r\n};\r\n\r\n// Field + normalization helpers\r\nconst BASE_PRODUCT_FIELDS = ['id','handle','title'];\r\nconst DEFAULT_VARIANT_FIELDS = ['id','title','price { amount currencyCode }'];\r\n\r\nfunction mergeFields(requested: string[] | string, defaults: string[]): string[] {\r\n const req = (Array.isArray(requested) ? requested : requested.split(','))\r\n .map(f => f.trim())\r\n .filter(Boolean);\r\n const seen = new Set<string>();\r\n const ordered: string[] = [];\r\n for(const f of req) { \r\n if(!seen.has(f)) { \r\n seen.add(f); ordered.push(f); \r\n }; \r\n };\r\n for(const d of defaults) { \r\n if(!seen.has(d)) { \r\n seen.add(d); \r\n ordered.push(d); \r\n }; \r\n };\r\n return ordered;\r\n};\r\n\r\nfunction expandProductFields(fields: string[]): string {\r\n return fields\r\n .filter(f => f !== 'price')\r\n .map(f => {\r\n if(f === 'images') return 'images(first: 10) { nodes { url altText } }';\r\n return f;\r\n })\r\n .join('\\n');\r\n};\r\n\r\nfunction variantSelection(fields: string[] = DEFAULT_VARIANT_FIELDS): string {\r\n return fields.join('\\n');\r\n};\r\n\r\ninterface NormalizedProduct {\r\n id: string;\r\n handle?: string;\r\n title?: string;\r\n variantId?: string;\r\n price?: string | null;\r\n imageUrl?: string | null;\r\n imageAlt?: string | null;\r\n // index signature for dynamic requested fields\r\n [key: string]: any;\r\n};\r\n\r\nfunction normalizeProduct(product: any, selectedVariant?: any): NormalizedProduct {\r\n const variant = selectedVariant || product.variants?.edges?.[0]?.node || {};\r\n let imageUrl = null;\r\n let imageAlt = null;\r\n if(product.images?.nodes && product.images.nodes.length > 0) {\r\n imageUrl = product.images.nodes[0].url || null;\r\n imageAlt = product.images.nodes[0].altText || null;\r\n };\r\n const { id: variantId, price } = variant;\r\n return {\r\n id: product.id,\r\n ...Object.fromEntries(Object.entries(product).filter(([key]) => key !== 'variants')),\r\n variantId,\r\n price: price?.amount || null,\r\n imageUrl,\r\n imageAlt,\r\n };\r\n};\r\n\r\n// Query builders\r\nfunction buildProductsQuery(fieldsString: string, variantFieldsString: string) {\r\n return `\r\n query ($limit: Int!, $sortKey: ProductSortKeys!, $reverse: Boolean) {\r\n products(first: $limit, sortKey: $sortKey, reverse: $reverse) {\r\n edges {\r\n node {\r\n ${fieldsString}\r\n variants(first: 1) { edges { node { ${variantFieldsString} } } }\r\n }\r\n }\r\n }\r\n }`;\r\n};\r\n\r\nfunction buildCollectionProductsQuery(fieldsString: string, variantFieldsString: string) {\r\n return `\r\n query ($handle: String!, $limit: Int!, $sortKey: ProductCollectionSortKeys!, $reverse: Boolean) {\r\n collection(handle: $handle) {\r\n products(first: $limit, sortKey: $sortKey, reverse: $reverse) {\r\n edges {\r\n node {\r\n ${fieldsString}\r\n variants(first: 1) { edges { node { ${variantFieldsString} } } }\r\n }\r\n }\r\n }\r\n }\r\n }`;\r\n};\r\n\r\nfunction buildSingleProductQuery(fieldsString: string, variantFieldsString: string) {\r\n return `\r\n query ($id: ID!) {\r\n product(id: $id) {\r\n ${fieldsString}\r\n variants(first: 1) { edges { node { ${variantFieldsString} } } }\r\n }\r\n }`;\r\n};\r\n\r\nfunction buildVariantProductQuery(productFieldsString: string, variantFieldsString: string) {\r\n return `\r\n query ($id: ID!) {\r\n productVariant(id: $id) {\r\n ${variantFieldsString}\r\n product {\r\n ${productFieldsString}\r\n variants(first: 1) { edges { node { ${variantFieldsString} } } }\r\n }\r\n }\r\n }`;\r\n};\r\n\r\n// Public API\r\nexport async function fetchProducts(limit: number, collectionHandle: string, sortKey: string, fields: string[] | string, reversed: boolean = false) {\r\n try {\r\n const merged = mergeFields(fields, BASE_PRODUCT_FIELDS);\r\n const fieldsString = expandProductFields(merged);\r\n const variantFieldsString = variantSelection();\r\n const isAll = !collectionHandle || collectionHandle === 'all';\r\n const query = isAll ? buildProductsQuery(fieldsString, variantFieldsString) : buildCollectionProductsQuery(fieldsString, variantFieldsString);\r\n const reverse = !!reversed;\r\n const variables: Record<string, any> = isAll ? { limit, sortKey, reverse } : { handle: collectionHandle, limit, sortKey, reverse };\r\n const data = await shopifyFetch(query, variables);\r\n const productEdges = data.products?.edges || data.collection?.products?.edges || [];\r\n return productEdges.map((edge: any) => normalizeProduct(edge.node));\r\n } catch(error) { \r\n console.error('Fetch Products Error:', error); throw error;\r\n };\r\n};\r\n\r\nexport async function fetchProductByID(id: string, fields: string[] | string, options?: { variantId?: string }): Promise<NormalizedProduct | null> {\r\n try {\r\n if(options?.variantId) return await getVariantProduct(options.variantId, fields);\r\n const merged = mergeFields(fields, BASE_PRODUCT_FIELDS);\r\n const fieldsString = expandProductFields(merged);\r\n const variantFieldsString = variantSelection();\r\n const query = buildSingleProductQuery(fieldsString, variantFieldsString);\r\n const data = await shopifyFetch(query, { id });\r\n const product = data?.product;\r\n if(!product) return null;\r\n return normalizeProduct(product);\r\n } catch(error) { console.error('Fetch Product By ID Error:', error); throw error; };\r\n};\r\n\r\nexport async function getVariantProduct(variantId: string, fields: string[] | string): Promise<NormalizedProduct | null> {\r\n try {\r\n const merged = mergeFields(fields, BASE_PRODUCT_FIELDS);\r\n const productFieldsString = expandProductFields(merged);\r\n const variantFieldsString = variantSelection();\r\n const query = buildVariantProductQuery(productFieldsString, variantFieldsString);\r\n const data = await shopifyFetch(query, { id: variantId });\r\n const variantNode = data?.productVariant;\r\n if(!variantNode) return null;\r\n const product = variantNode.product;\r\n if(!product) return null;\r\n return normalizeProduct(product, variantNode); \r\n } catch(error) { console.error('Get Variant Product Error:', error); throw error; };\r\n};\r\n\r\nexport async function addToCart(options: {\r\n id: number;\r\n quantity?: number;\r\n properties?: Record<string, any>;\r\n}) {\r\n try {\r\n console.log('IV add to cart called');\r\n if(!options.id) throw new Error('No variant id provided for addToCart');\r\n const quantity = options.quantity || 1;\r\n const properties = options.properties || {};\r\n const payload = {\r\n items: [\r\n {\r\n id: options.id,\r\n quantity,\r\n properties\r\n }\r\n ]\r\n };\r\n const url = '/cart/add.js';\r\n const res = await fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json',\r\n 'X-Requested-With': 'XMLHttpRequest'\r\n },\r\n body: JSON.stringify(payload)\r\n });\r\n if(!res.ok) {\r\n const errorText = await res.text();\r\n throw new Error(errorText);\r\n };\r\n const cartItem = await res.json();\r\n showToast('Added to cart!', 'success', 3000);\r\n return cartItem;\r\n } catch (error) {\r\n showToast('Error adding to cart', 'error', 5000);\r\n throw error;\r\n };\r\n};"]}
@@ -1,5 +1,5 @@
1
- import { i as ignition, f as fetchShopifyCurrencyCode, s as state } from './p-DH3wWIxr.js';
2
- export { g as getAssetPath, r as render, a as setAssetPath, b as setNonce, c as setPlatformOptions } from './p-DH3wWIxr.js';
1
+ import { i as ignition, f as fetchShopifyCurrencyCode, s as state } from './p-XXtzVg2d.js';
2
+ export { g as getAssetPath, r as render, a as setAssetPath, b as setNonce, c as setPlatformOptions } from './p-XXtzVg2d.js';
3
3
 
4
4
  // Idempotent global init (prevents double execution if script loaded twice)
5
5
  // Also resolves Stencil v update expecting a default export from globalScript.
@@ -10,6 +10,7 @@ const w = (typeof window !== 'undefined') ? window : {};
10
10
  async function intravenousGlobalInit() {
11
11
  try {
12
12
  if (!w.__IV_API_SETUP_DONE) {
13
+ console.log('[IV] Starting global API setup... app.ts');
13
14
  await ignition();
14
15
  w.__IV_API_SETUP_DONE = true;
15
16
  }
@@ -1 +1 @@
1
- {"file":"index.js","mappings":";;;AAGA;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC,GAAQ,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,GAAG,EAAE;AAE7C,eAAe,qBAAqB,GAAA;AACjD,IAAA,IAAI;AACF,QAAA,IAAG,CAAC,CAAC,CAAC,mBAAmB,EAAE;YACzB,MAAM,QAAQ,EAAE;AAChB,YAAA,CAAC,CAAC,mBAAmB,GAAG,IAAI;;AAE9B,QAAA,IAAG,CAAC,CAAC,CAAC,wBAAwB,EAAE;AAC9B,YAAA,IAAI;AACF,gBAAA,MAAM,IAAI,GAAG,MAAM,wBAAwB,EAAE;AAC7C,gBAAA,IAAG,IAAI;AAAE,oBAAA,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC;;YACpC,OAAO,GAAG,EAAE;AACZ,gBAAA,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC;;AAEnD,YAAA,CAAC,CAAC,wBAAwB,GAAG,IAAI;;;IAEnC,OAAM,GAAG,EAAE;AACX,QAAA,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC;;AAEjD;;AC3BO,MAAM,aAAa,GAAGA,qBAAe;;SCD5B,MAAM,CAAC,KAAc,EAAE,MAAe,EAAE,IAAa,EAAA;AACnE,IAAA,OAAO,CAAC,KAAK,IAAI,EAAE,KAAK,MAAM,GAAG,CAAI,CAAA,EAAA,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,GAAG,CAAI,CAAA,EAAA,IAAI,EAAE,GAAG,EAAE,CAAC;AAChF;;;;;;","names":["appGlobalScript"],"sources":["src/global/app.ts","@stencil/core/internal/app-globals","src/utils/utils.ts"],"sourcesContent":["import { ignition, fetchShopifyCurrencyCode } from '../utils/config/factory';\r\nimport { state } from '../utils/store/store';\r\n\r\n// Idempotent global init (prevents double execution if script loaded twice)\r\n// Also resolves Stencil v update expecting a default export from globalScript.\r\n// Flags kept minimal to avoid polluting window.\r\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n// @ts-ignore\r\nconst w: any = (typeof window !== 'undefined') ? window : {};\r\n\r\nexport default async function intravenousGlobalInit() {\r\n try {\r\n if(!w.__IV_API_SETUP_DONE) {\r\n await ignition();\r\n w.__IV_API_SETUP_DONE = true;\r\n }\r\n if(!w.__IV_CURRENCY_FETCH_DONE) {\r\n try {\r\n const code = await fetchShopifyCurrencyCode();\r\n if(code) state.setCurrencyCode(code);\r\n } catch (err) {\r\n console.debug('[IV] currency fetch skipped', err);\r\n }\r\n w.__IV_CURRENCY_FETCH_DONE = true;\r\n }\r\n } catch(err) {\r\n console.error('[IV] Global init failed', err);\r\n }\r\n}","import appGlobalScript from 'C:/Users/BeauBuxton/OneDrive - Herd Agency Limited/Documents/junk/The-Foxy-Library/src/global/app.ts';\nexport const globalScripts = appGlobalScript;\nexport const globalStyles = \"\";\n","export function format(first?: string, middle?: string, last?: string): string {\r\n return (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '');\r\n};"],"version":3}
1
+ {"file":"index.js","mappings":";;;AAGA;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC,GAAQ,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,GAAG,EAAE;AAE7C,eAAe,qBAAqB,GAAA;AACjD,IAAA,IAAI;AACF,QAAA,IAAG,CAAC,CAAC,CAAC,mBAAmB,EAAE;AACzB,YAAA,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC;YACvD,MAAM,QAAQ,EAAE;AAChB,YAAA,CAAC,CAAC,mBAAmB,GAAG,IAAI;;AAE9B,QAAA,IAAG,CAAC,CAAC,CAAC,wBAAwB,EAAE;AAC9B,YAAA,IAAI;AACF,gBAAA,MAAM,IAAI,GAAG,MAAM,wBAAwB,EAAE;AAC7C,gBAAA,IAAG,IAAI;AAAE,oBAAA,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC;;YACpC,OAAO,GAAG,EAAE;AACZ,gBAAA,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC;;AAEnD,YAAA,CAAC,CAAC,wBAAwB,GAAG,IAAI;;;IAEnC,OAAM,GAAG,EAAE;AACX,QAAA,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC;;AAEjD;;AC5BO,MAAM,aAAa,GAAGA,qBAAe;;SCD5B,MAAM,CAAC,KAAc,EAAE,MAAe,EAAE,IAAa,EAAA;AACnE,IAAA,OAAO,CAAC,KAAK,IAAI,EAAE,KAAK,MAAM,GAAG,CAAI,CAAA,EAAA,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,GAAG,CAAI,CAAA,EAAA,IAAI,EAAE,GAAG,EAAE,CAAC;AAChF;;;;;;","names":["appGlobalScript"],"sources":["src/global/app.ts","@stencil/core/internal/app-globals","src/utils/utils.ts"],"sourcesContent":["import { ignition, fetchShopifyCurrencyCode } from '../utils/config/factory';\r\nimport { state } from '../utils/store/store';\r\n\r\n// Idempotent global init (prevents double execution if script loaded twice)\r\n// Also resolves Stencil v update expecting a default export from globalScript.\r\n// Flags kept minimal to avoid polluting window.\r\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n// @ts-ignore\r\nconst w: any = (typeof window !== 'undefined') ? window : {};\r\n\r\nexport default async function intravenousGlobalInit(): Promise<void> {\r\n try {\r\n if(!w.__IV_API_SETUP_DONE) {\r\n console.log('[IV] Starting global API setup... app.ts');\r\n await ignition();\r\n w.__IV_API_SETUP_DONE = true;\r\n }\r\n if(!w.__IV_CURRENCY_FETCH_DONE) {\r\n try {\r\n const code = await fetchShopifyCurrencyCode();\r\n if(code) state.setCurrencyCode(code);\r\n } catch (err) {\r\n console.debug('[IV] currency fetch skipped', err);\r\n }\r\n w.__IV_CURRENCY_FETCH_DONE = true;\r\n }\r\n } catch(err) {\r\n console.error('[IV] Global init failed', err);\r\n }\r\n}","import appGlobalScript from 'C:/Users/BeauBuxton/OneDrive - Herd Agency Limited/Documents/junk/The-Foxy-Library/src/global/app.ts';\nexport const globalScripts = appGlobalScript;\nexport const globalStyles = \"\";\n","export function format(first?: string, middle?: string, last?: string): string {\r\n return (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '');\r\n};"],"version":3}
@@ -1,4 +1,4 @@
1
- import { I as Icon, d as defineCustomElement$1 } from './p-HxD8ZMcb.js';
1
+ import { I as Icon, d as defineCustomElement$1 } from './p-D8GfK9z_.js';
2
2
 
3
3
  const IonIcon = Icon;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,6 +1,6 @@
1
- import { p as proxyCustomElement, H, h } from './p-DH3wWIxr.js';
1
+ import { p as proxyCustomElement, H, h } from './p-XXtzVg2d.js';
2
2
  import { r as requestedFields } from './p-CN-O5_EW.js';
3
- import { d as defineCustomElement$2 } from './p-HxD8ZMcb.js';
3
+ import { d as defineCustomElement$2 } from './p-D8GfK9z_.js';
4
4
 
5
5
  const ivAccordionCss = ":host{display:block}";
6
6
 
@@ -1,4 +1,4 @@
1
- import { I as IvBanner$1, d as defineCustomElement$1 } from './p-DV16vkcI.js';
1
+ import { I as IvBanner$1, d as defineCustomElement$1 } from './p-CUI6hRMI.js';
2
2
 
3
3
  const IvBanner = IvBanner$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { I as IvButton$1, d as defineCustomElement$1 } from './p-D2SCT3Sb.js';
1
+ import { I as IvButton$1, d as defineCustomElement$1 } from './p-DVvBorxR.js';
2
2
 
3
3
  const IvButton = IvButton$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { I as IvCard$1, d as defineCustomElement$1 } from './p-haFsiJTQ.js';
1
+ import { I as IvCard$1, d as defineCustomElement$1 } from './p-IJUHvLzw.js';
2
2
 
3
3
  const IvCard = IvCard$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, h, d as Host } from './p-DH3wWIxr.js';
1
+ import { p as proxyCustomElement, H, h, d as Host } from './p-XXtzVg2d.js';
2
2
 
3
3
  const ivCarouselCss = "";
4
4
 
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, h } from './p-DH3wWIxr.js';
1
+ import { p as proxyCustomElement, H, h } from './p-XXtzVg2d.js';
2
2
 
3
3
  const ivCompareProductCss = ":host{display:block}";
4
4
 
@@ -1,10 +1,10 @@
1
- import { p as proxyCustomElement, H, e as createErrorHandler, s as state, h } from './p-DH3wWIxr.js';
2
- import { f as fetchProducts } from './p-Cmnclx4w.js';
1
+ import { p as proxyCustomElement, H, e as createErrorHandler, s as state, h } from './p-XXtzVg2d.js';
2
+ import { f as fetchProducts } from './p-BVL7DqEj.js';
3
3
  import { p as productCache } from './p-Cx7D8zH9.js';
4
- import { d as defineCustomElement$5 } from './p-D2SCT3Sb.js';
5
- import { d as defineCustomElement$4 } from './p-haFsiJTQ.js';
6
- import { d as defineCustomElement$3 } from './p-Dfh8X_q_.js';
7
- import { d as defineCustomElement$2 } from './p-3lSW4-ii.js';
4
+ import { d as defineCustomElement$5 } from './p-DVvBorxR.js';
5
+ import { d as defineCustomElement$4 } from './p-IJUHvLzw.js';
6
+ import { d as defineCustomElement$3 } from './p-dpzz67iI.js';
7
+ import { d as defineCustomElement$2 } from './p-BMsgAmDZ.js';
8
8
 
9
9
  const ivDynamicProductsCarouselCss = ":host{display:block}.iv-dynamic-products-carousel{position:relative}.iv-dynamic-products-carousel-carousel{position:relative}.iv-dynamic-products-carousel-viewport{overflow:hidden;width:100%}.iv-dynamic-products-carousel-track{display:flex;width:100%;transition:transform 0.55s cubic-bezier(0.4, 0.7, 0.2, 1);will-change:transform}.iv-dynamic-products-carousel-slide{flex:0 0 100%;box-sizing:border-box;padding:0.25rem 0.5rem;display:grid;grid-template-columns:repeat(6, minmax(0, 1fr));gap:1rem;align-items:stretch;grid-auto-rows:1fr}@media (max-width: 1200px){.iv-dynamic-products-carousel-slide{grid-template-columns:repeat(4, minmax(0, 1fr))}}@media (max-width: 900px){.iv-dynamic-products-carousel-slide{grid-template-columns:repeat(3, minmax(0, 1fr))}}@media (max-width: 640px){.iv-dynamic-products-carousel-slide{grid-template-columns:repeat(2, minmax(0, 1fr));gap:0.75rem}}.iv-dynamic-products-carousel-card{height:100%;display:flex;flex-direction:column;background:#fff;padding:0.75rem 0.75rem 0.9rem;box-shadow:0 2px 6px rgba(0, 0, 0, 0.08);transition:box-shadow 0.2s ease, transform 0.2s ease}.iv-dynamic-products-carousel-card .iv-card-title{line-height:1.2;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;min-height:2.4em}.iv-dynamic-products-carousel-card .iv-card-controls{margin-top:auto;}.iv-dynamic-products-carousel-card:hover{box-shadow:0 4px 14px rgba(0, 0, 0, 0.15);transform:translateY(-2px)}.iv-dynamic-products-carousel-card:active{transform:translateY(0);box-shadow:0 2px 6px rgba(0, 0, 0, 0.12)}.iv-dynamic-products-carousel-card img,.iv-dynamic-products-carousel-card picture,.iv-dynamic-products-carousel-card .media{width:100%;aspect-ratio:1/1;object-fit:contain;display:flex;align-items:center;justify-content:center;margin:0 0 0.65rem}.iv-dynamic-products-carousel-nav{position:absolute;top:50%;transform:translateY(-50%);background:var(--iv-carousel-nav-bg, rgba(0, 0, 0, 0.55));color:#fff;border:none;width:2.75rem;height:2.75rem;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(6px);box-shadow:0 4px 12px rgba(0, 0, 0, 0.25);transition:background 0.2s ease, transform 0.2s ease;outline:none;z-index:10}.iv-dynamic-products-carousel-nav:focus-visible{outline:2px solid #fff;outline-offset:3px}.iv-dynamic-products-carousel-nav:hover:not(:disabled){background:var(--iv-carousel-nav-bg-hover, rgba(0, 0, 0, 0.75));transform:translateY(-50%) scale(1.05);box-shadow:0 6px 18px rgba(0, 0, 0, 0.35)}.iv-dynamic-products-carousel-nav:disabled{opacity:0.4;cursor:default}.iv-dynamic-products-carousel-nav-prev{left:0.25rem}.iv-dynamic-products-carousel-nav-next{right:0.25rem}.iv-dynamic-products-carousel-status{margin-top:0.75rem;font-size:0.875rem;text-align:center;color:var(--iv-carousel-status-color, #555)}.iv-dynamic-products-carousel-viewport::-webkit-scrollbar{display:none}.iv-dynamic-products-carousel-viewport{-ms-overflow-style:none;scrollbar-width:none}";
10
10
 
@@ -1,11 +1,11 @@
1
- import { p as proxyCustomElement, H, e as createErrorHandler, s as state, h } from './p-DH3wWIxr.js';
2
- import { f as fetchProducts } from './p-Cmnclx4w.js';
1
+ import { p as proxyCustomElement, H, e as createErrorHandler, s as state, h } from './p-XXtzVg2d.js';
2
+ import { f as fetchProducts } from './p-BVL7DqEj.js';
3
3
  import { p as productCache } from './p-Cx7D8zH9.js';
4
- import { d as defineCustomElement$6 } from './p-D2SCT3Sb.js';
5
- import { d as defineCustomElement$5 } from './p-haFsiJTQ.js';
6
- import { d as defineCustomElement$4 } from './p-CmetOj56.js';
7
- import { d as defineCustomElement$3 } from './p-Dfh8X_q_.js';
8
- import { d as defineCustomElement$2 } from './p-3lSW4-ii.js';
4
+ import { d as defineCustomElement$6 } from './p-DVvBorxR.js';
5
+ import { d as defineCustomElement$5 } from './p-IJUHvLzw.js';
6
+ import { d as defineCustomElement$4 } from './p-BpdXCMak.js';
7
+ import { d as defineCustomElement$3 } from './p-dpzz67iI.js';
8
+ import { d as defineCustomElement$2 } from './p-BMsgAmDZ.js';
9
9
 
10
10
  const ivDynamicProductsCss = ".iv-dynamic-products{box-sizing:border-box;width:var(--iv-dynamic-products-width, 100%);max-width:var(--iv-dynamic-products-max-width, 100%);margin:var(--iv-dynamic-products-margin, 0);padding:var(--iv-dynamic-products-padding, 0);background:var(--iv-dynamic-products-bg, transparent);border:var(--iv-dynamic-products-border, none);border-radius:var(--iv-dynamic-products-radius, 0);box-shadow:var(--iv-dynamic-products-shadow, none);color:var(--iv-dynamic-products-color, inherit);--iv-layout-gap:var(--iv-dynamic-products-gap, 1.5rem)}.iv-dynamic-products-title{margin:var(--iv-dynamic-products-title-margin, 0 0 1rem 0);font-size:var(--iv-dynamic-products-title-font-size, clamp(1.125rem, 1vw + 1rem, 1.75rem));font-weight:var(--iv-dynamic-products-title-font-weight, 600);line-height:var(--iv-dynamic-products-title-line-height, 1.2);letter-spacing:var(--iv-dynamic-products-title-letter-spacing, normal)}.iv-dynamic-products-error,.iv-dynamic-products-empty{padding:var(--iv-dynamic-products-state-padding, 1rem);border:var(--iv-dynamic-products-state-border, none);background:var(--iv-dynamic-products-state-bg, transparent);color:var(--iv-dynamic-products-state-color, inherit);font-size:var(--iv-dynamic-products-state-font-size, 0.875rem);text-align:var(--iv-dynamic-products-state-text-align, center)}.iv-dynamic-products-products{width:100%;margin:var(--iv-dynamic-products-products-margin, 0);padding:var(--iv-dynamic-products-products-padding, 0)}.iv-layout--iv-dynamic-products-layout{--iv-layout-gap:var(--iv-dynamic-products-grid-gap, var(--iv-dynamic-products-gap, 1.5rem));align-items:var(--iv-dynamic-products-grid-align, stretch);justify-content:var(--iv-dynamic-products-grid-justify, flex-start)}.iv-dynamic-products .iv-card{margin:var(--iv-dynamic-products-card-margin, 0);--iv-card-padding:var(--iv-dynamic-products-card-padding, var(--iv-card-padding, 0))}@media (min-width: 40rem){.iv-dynamic-products{--iv-dynamic-products-gap:var(--iv-dynamic-products-gap-md, var(--iv-dynamic-products-gap, 1.5rem))}}@media (min-width: 64rem){.iv-dynamic-products{--iv-dynamic-products-gap:var(--iv-dynamic-products-gap-lg, var(--iv-dynamic-products-gap, 1.5rem))}}.iv-dynamic-products--scroll-x .iv-layout--iv-dynamic-products-layout{display:flex !important;overflow-x:auto;scrollbar-width:var(--iv-dynamic-products-scrollbar-width, thin);-webkit-overflow-scrolling:touch}.iv-dynamic-products--scroll-x .iv-layout--iv-dynamic-products-layout>*{flex:0 0 var(--iv-dynamic-products-scroll-item-width, 75%)}@media (prefers-reduced-motion: reduce){.iv-dynamic-products{scroll-behavior:auto}}";
11
11
 
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, j as createEvent, h } from './p-DH3wWIxr.js';
1
+ import { p as proxyCustomElement, H, j as createEvent, h } from './p-XXtzVg2d.js';
2
2
 
3
3
  const ivEventButtonCss = ":host{display:block}";
4
4
 
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, h } from './p-DH3wWIxr.js';
1
+ import { p as proxyCustomElement, H, h } from './p-XXtzVg2d.js';
2
2
 
3
3
  const ivFiltersCss = ":host{display:block}";
4
4
 
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, h } from './p-DH3wWIxr.js';
1
+ import { p as proxyCustomElement, H, h } from './p-XXtzVg2d.js';
2
2
 
3
3
  const ivFooterCss = ".iv-footer{display:grid;gap:2rem}.iv-footer .footer-social-links{grid-area:social}.iv-footer .footer-contact-links{grid-area:contact}.iv-footer .footer-newsletter-signup{grid-area:newsletter}.iv-footer .footer-menu{grid-area:menu}.iv-footer .footer-boilerplate{grid-area:boilerplate}.iv-footer .footer-payment-icons{grid-area:payment}";
4
4
 
@@ -1,4 +1,4 @@
1
- import { I as IvLayout$1, d as defineCustomElement$1 } from './p-CmetOj56.js';
1
+ import { I as IvLayout$1, d as defineCustomElement$1 } from './p-BpdXCMak.js';
2
2
 
3
3
  const IvLayout = IvLayout$1;
4
4
  const defineCustomElement = defineCustomElement$1;