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,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, i as isValueEmail, a as isValuePhoneNumber } 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 ivLinkListCss = ":host{display:block}";
6
6
 
@@ -1,4 +1,4 @@
1
- import { I as IvLink$1, d as defineCustomElement$1 } from './p-Dfh8X_q_.js';
1
+ import { I as IvLink$1, d as defineCustomElement$1 } from './p-dpzz67iI.js';
2
2
 
3
3
  const IvLink = IvLink$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,7 +1,7 @@
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
  import { c as createNewsletterTimerState, p as pauseNewsletterTimer, h as hasNewsletterPopupShown, s as startNewsletterTimer, a as handleNewsletterExitIntent, r as resumeNewsletterTimer } from './p-C9_L_NlM.js';
3
- import { d as defineCustomElement$3 } from './p-D2SCT3Sb.js';
4
- import { d as defineCustomElement$2 } from './p-3YQcGgfQ.js';
3
+ import { d as defineCustomElement$3 } from './p-DVvBorxR.js';
4
+ import { d as defineCustomElement$2 } from './p-DE0H3IbO.js';
5
5
 
6
6
  const ivModalCss = ".iv-modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(0, 0, 0, 0.5);display:flex;align-items:center;justify-content:center;z-index:9999}.iv-modal{background:#fff;border-radius:8px;box-shadow:0 4px 24px rgba(0, 0, 0, 0.18);padding:2rem;min-width:320px;max-width:90vw;max-height:90vh;overflow-y:auto;position:relative}.iv-modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:2rem;cursor:pointer;color:#333}.iv-modal-wishlist{margin-top:1rem}.iv-modal-wishlist-item{border-bottom:1px solid #eee;padding:1rem 0;display:flex;gap:1rem;align-items:center}.iv-modal-wishlist-field{font-size:1rem;color:#222}.iv-modal-wishlist-empty{text-align:center;color:#888;padding:2rem 0}";
7
7
 
@@ -1,6 +1,6 @@
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
  import { i as isValueEmail } from './p-CN-O5_EW.js';
3
- import { d as defineCustomElement$2 } from './p-3lSW4-ii.js';
3
+ import { d as defineCustomElement$2 } from './p-BMsgAmDZ.js';
4
4
 
5
5
  const ivNewsletterCss = ":host{display:block}";
6
6
 
@@ -1,9 +1,9 @@
1
- import { p as proxyCustomElement, H, j as createEvent, s as state, h } from './p-DH3wWIxr.js';
1
+ import { p as proxyCustomElement, H, j as createEvent, s as state, h } from './p-XXtzVg2d.js';
2
2
  import { f as formatMoney, g as getCurrencySymbol } from './p-CN-O5_EW.js';
3
- import { d as defineCustomElement$5 } from './p-D2SCT3Sb.js';
4
- import { d as defineCustomElement$4 } from './p-CmetOj56.js';
5
- import { d as defineCustomElement$3 } from './p-3lSW4-ii.js';
6
- import { d as defineCustomElement$2 } from './p-kuABA_Tv.js';
3
+ import { d as defineCustomElement$5 } from './p-DVvBorxR.js';
4
+ import { d as defineCustomElement$4 } from './p-BpdXCMak.js';
5
+ import { d as defineCustomElement$3 } from './p-BMsgAmDZ.js';
6
+ import { d as defineCustomElement$2 } from './p-BVAxyx8A.js';
7
7
 
8
8
  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}}";
9
9
 
@@ -1,4 +1,4 @@
1
- import { I as IvProductPin$1, d as defineCustomElement$1 } from './p-CvO-bCed.js';
1
+ import { I as IvProductPin$1, d as defineCustomElement$1 } from './p-B-4VoGV_.js';
2
2
 
3
3
  const IvProductPin = IvProductPin$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 ivProductUpsellCss = ":host{display:block}";
4
4
 
@@ -1,10 +1,10 @@
1
- import { p as proxyCustomElement, H, h } from './p-DH3wWIxr.js';
2
- import { g as getIdFromHandle, a as fetchProductByID } from './p-Cmnclx4w.js';
1
+ import { p as proxyCustomElement, H, h } from './p-XXtzVg2d.js';
2
+ import { g as getIdFromHandle, a as fetchProductByID } from './p-BVL7DqEj.js';
3
3
  import { b as getProductHandle } from './p-CN-O5_EW.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-CmetOj56.js';
7
- import { d as defineCustomElement$2 } from './p-Dfh8X_q_.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-BpdXCMak.js';
7
+ import { d as defineCustomElement$2 } from './p-dpzz67iI.js';
8
8
 
9
9
  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}";
10
10
 
@@ -1,5 +1,5 @@
1
- import { p as proxyCustomElement, H, h } from './p-DH3wWIxr.js';
2
- import { d as defineCustomElement$2 } from './p-CvO-bCed.js';
1
+ import { p as proxyCustomElement, H, h } from './p-XXtzVg2d.js';
2
+ import { d as defineCustomElement$2 } from './p-B-4VoGV_.js';
3
3
 
4
4
  const ivShopTheLookCss = ":host{display:block}.iv-shop-the-look-image-container{position:relative;width:400px;height:300px;background:#eee;overflow:hidden}";
5
5
 
@@ -1,7 +1,7 @@
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 { c as createNewsletterTimerState, p as pauseNewsletterTimer, h as hasNewsletterPopupShown, s as startNewsletterTimer, a as handleNewsletterExitIntent, r as resumeNewsletterTimer } from './p-C9_L_NlM.js';
3
- import { d as defineCustomElement$3 } from './p-D2SCT3Sb.js';
4
- import { d as defineCustomElement$2 } from './p-3YQcGgfQ.js';
3
+ import { d as defineCustomElement$3 } from './p-DVvBorxR.js';
4
+ import { d as defineCustomElement$2 } from './p-DE0H3IbO.js';
5
5
 
6
6
  const ivSidebarCss = "iv-sidebar .iv-sidebar{position:fixed;top:0;right:0;left:auto;height:100%;background-color:#fff;box-shadow:2px 0 5px rgba(0, 0, 0, 0.1);transform:translateX(100%);transition:transform 0.3s ease-in-out;z-index:1001;padding:var(--iv-sidebar-padding-top, 2rem) var(--iv-sidebar-padding-right, 2rem) var(--iv-sidebar-padding-bottom, 2rem) var(--iv-sidebar-padding-left, 2rem);overflow-y:auto;max-height:100vh;box-sizing:border-box;display:flex;flex-direction:column;width:40%}@media (max-width: 1024px){iv-sidebar .iv-sidebar{width:95%}}iv-sidebar .iv-sidebar.close{font-size:2.25rem;font-weight:400;pointer-events:none;user-select:none;line-height:1;color:inherit;display:flex;align-items:center;justify-content:center}iv-sidebar .iv-sidebar.open{transform:translateX(0)}iv-sidebar .iv-sidebar-close-button{position:absolute;top:1rem;right:1rem;background:none;border:none;color:#111;font-size:2.25rem;font-weight:400;line-height:1;cursor:pointer;padding:0;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;z-index:1002;transition:color 0.2s}iv-sidebar .iv-sidebar-close-button:hover{color:#000}iv-sidebar .iv-sidebar-close-button:focus{outline:none;color:#000}iv-sidebar .iv-sidebar-overlay{position:fixed;top:0;left:0;width:100%;height:100%;backdrop-filter:blur(8px);background-color:rgba(14, 13, 13, 0.5019607843);opacity:0;visibility:hidden;transition:opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;z-index:1000}iv-sidebar .iv-sidebar-overlay.open{opacity:1;visibility:visible}";
7
7
 
@@ -1,4 +1,4 @@
1
- import { I as IvSpinner$1, d as defineCustomElement$1 } from './p-3lSW4-ii.js';
1
+ import { I as IvSpinner$1, d as defineCustomElement$1 } from './p-BMsgAmDZ.js';
2
2
 
3
3
  const IvSpinner = IvSpinner$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,10 +1,10 @@
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 { d as decodeJsonString } from './p-CN-O5_EW.js';
3
- import { d as defineCustomElement$6 } from './p-DV16vkcI.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-CmetOj56.js';
7
- import { d as defineCustomElement$2 } from './p-Dfh8X_q_.js';
3
+ import { d as defineCustomElement$6 } from './p-CUI6hRMI.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-BpdXCMak.js';
7
+ import { d as defineCustomElement$2 } from './p-dpzz67iI.js';
8
8
 
9
9
  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}}";
10
10
 
@@ -1,4 +1,4 @@
1
- import { I as IvTabs$1, d as defineCustomElement$1 } from './p-kuABA_Tv.js';
1
+ import { I as IvTabs$1, d as defineCustomElement$1 } from './p-BVAxyx8A.js';
2
2
 
3
3
  const IvTabs = IvTabs$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,5 +1,5 @@
1
- import { p as proxyCustomElement, H, s as state, o as onStoreChange, h } from './p-DH3wWIxr.js';
2
- import { d as defineCustomElement$2 } from './p-Blz-LJSV.js';
1
+ import { p as proxyCustomElement, H, s as state, o as onStoreChange, h } from './p-XXtzVg2d.js';
2
+ import { d as defineCustomElement$2 } from './p-B4yIesaL.js';
3
3
 
4
4
  const ivToastContainerCss = ".iv-toast-container{position:fixed;top:1rem;left:1rem;display:flex;flex-direction:column;gap:1rem;z-index:10000;pointer-events:none}";
5
5
 
@@ -1,4 +1,4 @@
1
- import { I as IvToast$1, d as defineCustomElement$1 } from './p-Blz-LJSV.js';
1
+ import { I as IvToast$1, d as defineCustomElement$1 } from './p-B4yIesaL.js';
2
2
 
3
3
  const IvToast = IvToast$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -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
  import { e as classNames } from './p-CN-O5_EW.js';
3
3
 
4
4
  const ivTwoColMediaCss = ".iv-two-col-media{display:grid;grid-template-columns:1fr 1fr;gap:var(--iv-two-col-media-gap, 2rem);min-height:300px}@media (max-width: 900px){.iv-two-col-media{grid-template-columns:1fr}.iv-two-col-media.order-1{order:1}.iv-two-col-media.order-2{order:2}}@media (max-width: 600px){.iv-two-col-media.hide-for-mobile{display:none !important}}.iv-two-col-media.has-media{min-height:240px;background:#f5f5f5;position:relative;overflow:hidden}.iv-two-col-media .layout-stabilizer{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%;position:relative;z-index:2}.iv-two-col-media.has-media img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:1}.iv-two-col-media.has-media .layout-stabilizer>*:not(img){position:relative;z-index:2}.iv-two-col-media.has-media img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:1}.iv-two-col-media.has-media .media-overlay{position:relative;z-index:2;display:flex;flex-direction:column;height:100%;width:100%;justify-content:var(--iv-two-col-media-vertical, center);align-items:var(--iv-two-col-media-horizontal, center);padding:2rem}.iv-two-col-media.hide-column{display:none}";
@@ -1,4 +1,4 @@
1
- import { I as IvWishlistView$1, d as defineCustomElement$1 } from './p-3YQcGgfQ.js';
1
+ import { I as IvWishlistView$1, d as defineCustomElement$1 } from './p-DE0H3IbO.js';
2
2
 
3
3
  const IvWishlistView = IvWishlistView$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,5 +1,5 @@
1
- import { p as proxyCustomElement, H, s as state, k as showToast, h, t as toggleModal, l as togglePullout, m as removeFromWishlist } from './p-DH3wWIxr.js';
2
- import { d as defineCustomElement$2 } from './p-D2SCT3Sb.js';
1
+ import { p as proxyCustomElement, H, s as state, k as showToast, h, t as toggleModal, l as togglePullout, m as removeFromWishlist } from './p-XXtzVg2d.js';
2
+ import { d as defineCustomElement$2 } from './p-DVvBorxR.js';
3
3
 
4
4
  const ivWishlistCss = ":host{display:block}";
5
5
 
@@ -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 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)}";
4
4
 
@@ -42,6 +42,6 @@ function defineCustomElement() {
42
42
  defineCustomElement();
43
43
 
44
44
  export { IvProductPin as I, defineCustomElement as d };
45
- //# sourceMappingURL=p-CvO-bCed.js.map
45
+ //# sourceMappingURL=p-B-4VoGV_.js.map
46
46
 
47
- //# sourceMappingURL=p-CvO-bCed.js.map
47
+ //# sourceMappingURL=p-B-4VoGV_.js.map
@@ -1 +1 @@
1
- {"file":"p-CvO-bCed.js","mappings":";;AAAA,MAAM,eAAe,GAAG,qUAAqU;;ACE7V,MAAM,KAAK,GAAG,gBAAgB;MAQjB,YAAY,iBAAAA,kBAAA,CAAA,MAAA,YAAA,SAAAC,CAAA,CAAA;;;;;;;AAEf,IAAA,UAAU;AACV,IAAA,MAAM;AACN,IAAA,QAAQ;AACR,IAAA,YAAY;;IAGpB,MAAM,GAAA;QAEJ,QACE,CACE,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,eAAe,IAAI,CAAC,MAAM,CAAA,CAAE,EAChC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,EAAE,IAAI,EAAE,CAAG,EAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAG,CAAA,CAAA,EAAE,EACjE,EAAA,IAAI,CAAC,UAAU,CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/iv-product-pin/iv-product-pin.scss?tag=iv-product-pin","src/components/iv-product-pin/iv-product-pin.tsx"],"sourcesContent":[".iv-product-pin {\n position: absolute;\n width: 32px;\n height: 32px;\n background: #e74c3c;\n border-radius: 50%;\n border: 2px solid #fff;\n box-shadow: 0 2px 8px rgba(0,0,0,0.1);\n display: flex;\n align-items: center;\n justify-content: center;\n color: #fff;\n font-weight: bold;\n cursor: pointer;\n transition: transform 0.1s;\n}\n\n.iv-product-pin:hover {\n transform: scale(1.1);\n}","import { Component, h, Prop } from '@stencil/core';\n\nconst BLOCK = 'iv-product-pin';\n\n@Component({\n tag: 'iv-product-pin',\n styleUrl: 'iv-product-pin.scss',\n shadow: false\n})\n\nexport class IvProductPin {\n \n @Prop() pinProduct: string;\n @Prop() pinKey: number;\n @Prop() pinCords: { x: number, y: number };\n @Prop() pinBehaviour: 'modal' | 'link' | 'tooltip';\n\n // Emmit an event for the parnt component to handle different behaviours like modal, link or tooltip\n render() {\n\n return (\n <div \n id={`product-pin-${this.pinKey}`}\n class={BLOCK}\n style={{ left: `${this.pinCords.x}%`, top: `${this.pinCords.y}%` }}>\n {this.pinProduct}\n </div>\n );\n\n };\n\n};"],"version":3}
1
+ {"file":"p-B-4VoGV_.js","mappings":";;AAAA,MAAM,eAAe,GAAG,qUAAqU;;ACE7V,MAAM,KAAK,GAAG,gBAAgB;MAQjB,YAAY,iBAAAA,kBAAA,CAAA,MAAA,YAAA,SAAAC,CAAA,CAAA;;;;;;;AAEf,IAAA,UAAU;AACV,IAAA,MAAM;AACN,IAAA,QAAQ;AACR,IAAA,YAAY;;IAGpB,MAAM,GAAA;QAEJ,QACE,CACE,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,eAAe,IAAI,CAAC,MAAM,CAAA,CAAE,EAChC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,EAAE,IAAI,EAAE,CAAG,EAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAG,CAAA,CAAA,EAAE,EACjE,EAAA,IAAI,CAAC,UAAU,CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/iv-product-pin/iv-product-pin.scss?tag=iv-product-pin","src/components/iv-product-pin/iv-product-pin.tsx"],"sourcesContent":[".iv-product-pin {\n position: absolute;\n width: 32px;\n height: 32px;\n background: #e74c3c;\n border-radius: 50%;\n border: 2px solid #fff;\n box-shadow: 0 2px 8px rgba(0,0,0,0.1);\n display: flex;\n align-items: center;\n justify-content: center;\n color: #fff;\n font-weight: bold;\n cursor: pointer;\n transition: transform 0.1s;\n}\n\n.iv-product-pin:hover {\n transform: scale(1.1);\n}","import { Component, h, Prop } from '@stencil/core';\n\nconst BLOCK = 'iv-product-pin';\n\n@Component({\n tag: 'iv-product-pin',\n styleUrl: 'iv-product-pin.scss',\n shadow: false\n})\n\nexport class IvProductPin {\n \n @Prop() pinProduct: string;\n @Prop() pinKey: number;\n @Prop() pinCords: { x: number, y: number };\n @Prop() pinBehaviour: 'modal' | 'link' | 'tooltip';\n\n // Emmit an event for the parnt component to handle different behaviours like modal, link or tooltip\n render() {\n\n return (\n <div \n id={`product-pin-${this.pinKey}`}\n class={BLOCK}\n style={{ left: `${this.pinCords.x}%`, top: `${this.pinCords.y}%` }}>\n {this.pinProduct}\n </div>\n );\n\n };\n\n};"],"version":3}
@@ -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 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)}}";
4
4
 
@@ -41,6 +41,6 @@ function defineCustomElement() {
41
41
  defineCustomElement();
42
42
 
43
43
  export { IvToast as I, defineCustomElement as d };
44
- //# sourceMappingURL=p-Blz-LJSV.js.map
44
+ //# sourceMappingURL=p-B4yIesaL.js.map
45
45
 
46
- //# sourceMappingURL=p-Blz-LJSV.js.map
46
+ //# sourceMappingURL=p-B4yIesaL.js.map
@@ -1 +1 @@
1
- {"file":"p-Blz-LJSV.js","mappings":";;AAAA,MAAM,UAAU,GAAG,kqEAAkqE;;ACErrE,MAAM,KAAK,GAAG,UAAU;MAQX,OAAO,iBAAAA,kBAAA,CAAA,MAAA,OAAA,SAAAC,CAAA,CAAA;;;;;;;AAEV,IAAA,OAAO;AACP,IAAA,OAAO;IACP,QAAQ,GAAW,IAAI;IACvB,IAAI,GAA6C,MAAM;IAE/D,MAAM,GAAA;QAEJ,QAEE,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,GAAG,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,CAAA,CAAE,EAAE,IAAI,EAAC,OAAO,EAAW,WAAA,EAAA,WAAW,iBAAa,MAAM,EAAA,EACxF,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAE,CAAA,EAAG,KAAK,CAAA,QAAA,CAAU,EAAA,EAC5B,IAAI,CAAC,OAAO,CACR,CACH;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/iv-toast/iv-toast.scss?tag=iv-toast","src/components/iv-toast/iv-toast.tsx"],"sourcesContent":[".iv-toast {\r\n position: relative;\r\n display: flex;\r\n align-items: flex-start;\r\n gap: 0.75rem;\r\n line-height: 1.4;\r\n min-width: 26rem; // slightly wider for readability\r\n max-width: 36rem;\r\n padding: 1.1rem 1.5rem 1.1rem 1.75rem; // extra left space for accent bar\r\n border-radius: 0.5rem;\r\n font-size: var(--iv-toast-font-size, 1.05rem);\r\n font-weight: 500;\r\n opacity: 0;\r\n transform: translateY(2rem) scale(0.95);\r\n box-shadow: 0 8px 32px rgba(0,0,0,.18), 0 2px 6px rgba(0,0,0,.12);\r\n border: 1px solid var(--iv-toast-border, rgba(0,0,0,.12));\r\n background-clip: padding-box;\r\n backdrop-filter: var(--iv-toast-backdrop-filter, none);\r\n -webkit-font-smoothing: antialiased;\r\n animation: toast-in .5s cubic-bezier(.4, 1.4, .6, 1) forwards, toast-out .5s cubic-bezier(.4, 1.4, .6, 1) forwards;\r\n animation-delay: 0s, calc(var(--iv-toast-duration, 5s) - 0.5s);\r\n pointer-events: all;\r\n transition: box-shadow .25s ease, transform .25s ease;\r\n\r\n &::before {\r\n content: \"\";\r\n position: absolute;\r\n inset: 0 auto 0 0;\r\n width: 0.4rem;\r\n border-radius: 0.5rem 0 0 0.5rem;\r\n background: var(--iv-toast-accent, #6366f1);\r\n }\r\n\r\n &:hover {\r\n box-shadow: 0 10px 42px rgba(0,0,0,.22), 0 3px 10px rgba(0,0,0,.18);\r\n transform: translateY(-2px);\r\n }\r\n\r\n &.info {\r\n background-color: var(--iv-toast-info-background, black);\r\n color: var(--iv-toast-info-color, white);\r\n --iv-toast-accent: var(--iv-toast-info-accent, #6366f1);\r\n }\r\n\r\n &.success {\r\n background-color: var(--iv-toast-success-background, #d1fadf);\r\n color: var(--iv-toast-success-color, #065f46);\r\n --iv-toast-accent: var(--iv-toast-success-accent, #12b76a);\r\n }\r\n\r\n &.warning {\r\n background-color: var(--iv-toast-warning-background, #ffe8c7);\r\n color: var(--iv-toast-warning-color, #7c2d12);\r\n --iv-toast-accent: var(--iv-toast-warning-accent, #f59e0b);\r\n }\r\n\r\n &.error {\r\n background-color: var(--iv-toast-error-background, #ffe2e2);\r\n color: var(--iv-toast-error-color, #7f1d1d);\r\n --iv-toast-accent: var(--iv-toast-error-accent, #ef4444);\r\n }\r\n\r\n .iv-toast-message {\r\n margin: 0;\r\n line-height: 1.4;\r\n word-break: break-word;\r\n font-weight: 600;\r\n }\r\n}\r\n\r\n@keyframes toast-in {\r\n 0% { opacity: 0; transform: translateY(1.25rem) scale(.92); }\r\n 55% { opacity: 1; transform: translateY(-3px) scale(1.03); }\r\n 75% { transform: translateY(2px) scale(.997); }\r\n 100% { opacity: 1; transform: translateY(0) scale(1); }\r\n}\r\n\r\n@keyframes toast-out {\r\n 0% { opacity: 1; transform: translateY(0) scale(1); }\r\n 100% { opacity: 0; transform: translateY(1rem) scale(.94); }\r\n}","import { Component, h, Prop } from '@stencil/core';\r\n\r\nconst BLOCK = 'iv-toast';\r\n\r\n@Component({\r\n tag: 'iv-toast',\r\n styleUrl: 'iv-toast.scss',\r\n shadow: false\r\n})\r\n\r\nexport class IvToast {\r\n\r\n @Prop() message: string;\r\n @Prop() toastId: number;\r\n @Prop() duration: number = 3000;\r\n @Prop() type: 'info' | 'success' | 'error' | 'warning' = 'info';\r\n\r\n render() {\r\n\r\n return (\r\n\r\n <div class={`${BLOCK} ${this.type}`} role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\">\r\n <span class={`${BLOCK}-message`}>\r\n {this.message}\r\n </span>\r\n </div>\r\n \r\n );\r\n\r\n };\r\n\r\n};"],"version":3}
1
+ {"file":"p-B4yIesaL.js","mappings":";;AAAA,MAAM,UAAU,GAAG,kqEAAkqE;;ACErrE,MAAM,KAAK,GAAG,UAAU;MAQX,OAAO,iBAAAA,kBAAA,CAAA,MAAA,OAAA,SAAAC,CAAA,CAAA;;;;;;;AAEV,IAAA,OAAO;AACP,IAAA,OAAO;IACP,QAAQ,GAAW,IAAI;IACvB,IAAI,GAA6C,MAAM;IAE/D,MAAM,GAAA;QAEJ,QAEE,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,GAAG,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,CAAA,CAAE,EAAE,IAAI,EAAC,OAAO,EAAW,WAAA,EAAA,WAAW,iBAAa,MAAM,EAAA,EACxF,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAE,CAAA,EAAG,KAAK,CAAA,QAAA,CAAU,EAAA,EAC5B,IAAI,CAAC,OAAO,CACR,CACH;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/iv-toast/iv-toast.scss?tag=iv-toast","src/components/iv-toast/iv-toast.tsx"],"sourcesContent":[".iv-toast {\r\n position: relative;\r\n display: flex;\r\n align-items: flex-start;\r\n gap: 0.75rem;\r\n line-height: 1.4;\r\n min-width: 26rem; // slightly wider for readability\r\n max-width: 36rem;\r\n padding: 1.1rem 1.5rem 1.1rem 1.75rem; // extra left space for accent bar\r\n border-radius: 0.5rem;\r\n font-size: var(--iv-toast-font-size, 1.05rem);\r\n font-weight: 500;\r\n opacity: 0;\r\n transform: translateY(2rem) scale(0.95);\r\n box-shadow: 0 8px 32px rgba(0,0,0,.18), 0 2px 6px rgba(0,0,0,.12);\r\n border: 1px solid var(--iv-toast-border, rgba(0,0,0,.12));\r\n background-clip: padding-box;\r\n backdrop-filter: var(--iv-toast-backdrop-filter, none);\r\n -webkit-font-smoothing: antialiased;\r\n animation: toast-in .5s cubic-bezier(.4, 1.4, .6, 1) forwards, toast-out .5s cubic-bezier(.4, 1.4, .6, 1) forwards;\r\n animation-delay: 0s, calc(var(--iv-toast-duration, 5s) - 0.5s);\r\n pointer-events: all;\r\n transition: box-shadow .25s ease, transform .25s ease;\r\n\r\n &::before {\r\n content: \"\";\r\n position: absolute;\r\n inset: 0 auto 0 0;\r\n width: 0.4rem;\r\n border-radius: 0.5rem 0 0 0.5rem;\r\n background: var(--iv-toast-accent, #6366f1);\r\n }\r\n\r\n &:hover {\r\n box-shadow: 0 10px 42px rgba(0,0,0,.22), 0 3px 10px rgba(0,0,0,.18);\r\n transform: translateY(-2px);\r\n }\r\n\r\n &.info {\r\n background-color: var(--iv-toast-info-background, black);\r\n color: var(--iv-toast-info-color, white);\r\n --iv-toast-accent: var(--iv-toast-info-accent, #6366f1);\r\n }\r\n\r\n &.success {\r\n background-color: var(--iv-toast-success-background, #d1fadf);\r\n color: var(--iv-toast-success-color, #065f46);\r\n --iv-toast-accent: var(--iv-toast-success-accent, #12b76a);\r\n }\r\n\r\n &.warning {\r\n background-color: var(--iv-toast-warning-background, #ffe8c7);\r\n color: var(--iv-toast-warning-color, #7c2d12);\r\n --iv-toast-accent: var(--iv-toast-warning-accent, #f59e0b);\r\n }\r\n\r\n &.error {\r\n background-color: var(--iv-toast-error-background, #ffe2e2);\r\n color: var(--iv-toast-error-color, #7f1d1d);\r\n --iv-toast-accent: var(--iv-toast-error-accent, #ef4444);\r\n }\r\n\r\n .iv-toast-message {\r\n margin: 0;\r\n line-height: 1.4;\r\n word-break: break-word;\r\n font-weight: 600;\r\n }\r\n}\r\n\r\n@keyframes toast-in {\r\n 0% { opacity: 0; transform: translateY(1.25rem) scale(.92); }\r\n 55% { opacity: 1; transform: translateY(-3px) scale(1.03); }\r\n 75% { transform: translateY(2px) scale(.997); }\r\n 100% { opacity: 1; transform: translateY(0) scale(1); }\r\n}\r\n\r\n@keyframes toast-out {\r\n 0% { opacity: 1; transform: translateY(0) scale(1); }\r\n 100% { opacity: 0; transform: translateY(1rem) scale(.94); }\r\n}","import { Component, h, Prop } from '@stencil/core';\r\n\r\nconst BLOCK = 'iv-toast';\r\n\r\n@Component({\r\n tag: 'iv-toast',\r\n styleUrl: 'iv-toast.scss',\r\n shadow: false\r\n})\r\n\r\nexport class IvToast {\r\n\r\n @Prop() message: string;\r\n @Prop() toastId: number;\r\n @Prop() duration: number = 3000;\r\n @Prop() type: 'info' | 'success' | 'error' | 'warning' = 'info';\r\n\r\n render() {\r\n\r\n return (\r\n\r\n <div class={`${BLOCK} ${this.type}`} role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\">\r\n <span class={`${BLOCK}-message`}>\r\n {this.message}\r\n </span>\r\n </div>\r\n \r\n );\r\n\r\n };\r\n\r\n};"],"version":3}
@@ -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 ivSpinnerCss = ".iv-spinner{display:flex;align-items:center;justify-content:center;min-height:2.5rem}.iv-spinner-circle,.spinner{width:2rem;height:2rem;border:3px solid #e0e0e0;border-top:3px solid #0078d4;border-radius:50%;animation:iv-spinner-spin 0.8s linear infinite;display:inline-block}.iv-spinner-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}@keyframes iv-spinner-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}";
4
4
 
@@ -35,6 +35,6 @@ function defineCustomElement() {
35
35
  defineCustomElement();
36
36
 
37
37
  export { IvSpinner as I, defineCustomElement as d };
38
- //# sourceMappingURL=p-3lSW4-ii.js.map
38
+ //# sourceMappingURL=p-BMsgAmDZ.js.map
39
39
 
40
- //# sourceMappingURL=p-3lSW4-ii.js.map
40
+ //# sourceMappingURL=p-BMsgAmDZ.js.map
@@ -1 +1 @@
1
- {"file":"p-3lSW4-ii.js","mappings":";;AAAA,MAAM,YAAY,GAAG,qeAAqe;;ACE1f,MAAM,KAAK,GAAG,YAAY;MAQb,SAAS,iBAAAA,kBAAA,CAAA,MAAA,SAAA,SAAAC,CAAA,CAAA;;;;;;;IAEZ,IAAI,GAAY,KAAK;IAE7B,MAAM,GAAA;AAEJ,QAAA,OAAO,IAAI,CAAC,IAAI,IACd,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,KAAK,EAAE,IAAI,EAAC,QAAQ,EAAW,WAAA,EAAA,QAAQ,eAAW,MAAM,EAAA,EAClE,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,CAAA,EAAG,KAAK,CAAA,OAAA,CAAS,EAAA,aAAA,EAAc,MAAM,EAAQ,CAAA,EAC1D,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,CAAA,EAAG,KAAK,CAAA,GAAA,CAAK,EAAA,EAAA,YAAA,CAAmB,CACzC,IACJ,IAAI;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/iv-spinner/iv-spinner.scss?tag=iv-spinner","src/components/iv-spinner/iv-spinner.tsx"],"sourcesContent":[".iv-spinner {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n min-height: 2.5rem;\r\n}\r\n\r\n.iv-spinner-circle, .spinner {\r\n width: 2rem;\r\n height: 2rem;\r\n border: 3px solid #e0e0e0;\r\n border-top: 3px solid #0078d4;\r\n border-radius: 50%;\r\n animation: iv-spinner-spin 0.8s linear infinite;\r\n display: inline-block;\r\n}\r\n\r\n.iv-spinner-sr {\r\n position: absolute;\r\n width: 1px;\r\n height: 1px;\r\n padding: 0;\r\n margin: -1px;\r\n overflow: hidden;\r\n clip: rect(0, 0, 0, 0);\r\n border: 0;\r\n}\r\n\r\n@keyframes iv-spinner-spin {\r\n 0% { transform: rotate(0deg); }\r\n 100% { transform: rotate(360deg); }\r\n}","import { Component, h, Prop } from '@stencil/core';\r\n\r\nconst BLOCK = 'iv-spinner';\r\n\r\n@Component({\r\n tag: 'iv-spinner',\r\n styleUrl: 'iv-spinner.scss',\r\n shadow: false\r\n})\r\n\r\nexport class IvSpinner {\r\n\r\n @Prop() show: boolean = false;\r\n\r\n render() {\r\n\r\n return this.show ? (\r\n <div class={BLOCK} role=\"status\" aria-live=\"polite\" aria-busy=\"true\">\r\n <span class={`${BLOCK}-circle`} aria-hidden=\"true\"></span>\r\n <span class={`${BLOCK}-sr`}>Loading...</span>\r\n </div>\r\n ) : null;\r\n \r\n };\r\n\r\n};"],"version":3}
1
+ {"file":"p-BMsgAmDZ.js","mappings":";;AAAA,MAAM,YAAY,GAAG,qeAAqe;;ACE1f,MAAM,KAAK,GAAG,YAAY;MAQb,SAAS,iBAAAA,kBAAA,CAAA,MAAA,SAAA,SAAAC,CAAA,CAAA;;;;;;;IAEZ,IAAI,GAAY,KAAK;IAE7B,MAAM,GAAA;AAEJ,QAAA,OAAO,IAAI,CAAC,IAAI,IACd,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,KAAK,EAAE,IAAI,EAAC,QAAQ,EAAW,WAAA,EAAA,QAAQ,eAAW,MAAM,EAAA,EAClE,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,CAAA,EAAG,KAAK,CAAA,OAAA,CAAS,EAAA,aAAA,EAAc,MAAM,EAAQ,CAAA,EAC1D,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,CAAA,EAAG,KAAK,CAAA,GAAA,CAAK,EAAA,EAAA,YAAA,CAAmB,CACzC,IACJ,IAAI;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/iv-spinner/iv-spinner.scss?tag=iv-spinner","src/components/iv-spinner/iv-spinner.tsx"],"sourcesContent":[".iv-spinner {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n min-height: 2.5rem;\r\n}\r\n\r\n.iv-spinner-circle, .spinner {\r\n width: 2rem;\r\n height: 2rem;\r\n border: 3px solid #e0e0e0;\r\n border-top: 3px solid #0078d4;\r\n border-radius: 50%;\r\n animation: iv-spinner-spin 0.8s linear infinite;\r\n display: inline-block;\r\n}\r\n\r\n.iv-spinner-sr {\r\n position: absolute;\r\n width: 1px;\r\n height: 1px;\r\n padding: 0;\r\n margin: -1px;\r\n overflow: hidden;\r\n clip: rect(0, 0, 0, 0);\r\n border: 0;\r\n}\r\n\r\n@keyframes iv-spinner-spin {\r\n 0% { transform: rotate(0deg); }\r\n 100% { transform: rotate(360deg); }\r\n}","import { Component, h, Prop } from '@stencil/core';\r\n\r\nconst BLOCK = 'iv-spinner';\r\n\r\n@Component({\r\n tag: 'iv-spinner',\r\n styleUrl: 'iv-spinner.scss',\r\n shadow: false\r\n})\r\n\r\nexport class IvSpinner {\r\n\r\n @Prop() show: boolean = false;\r\n\r\n render() {\r\n\r\n return this.show ? (\r\n <div class={BLOCK} role=\"status\" aria-live=\"polite\" aria-busy=\"true\">\r\n <span class={`${BLOCK}-circle`} aria-hidden=\"true\"></span>\r\n <span class={`${BLOCK}-sr`}>Loading...</span>\r\n </div>\r\n ) : null;\r\n \r\n };\r\n\r\n};"],"version":3}
@@ -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 ivTabsCss = ":host{display:block}";
4
4
 
@@ -40,6 +40,6 @@ function defineCustomElement() {
40
40
  defineCustomElement();
41
41
 
42
42
  export { IvTabs as I, defineCustomElement as d };
43
- //# sourceMappingURL=p-kuABA_Tv.js.map
43
+ //# sourceMappingURL=p-BVAxyx8A.js.map
44
44
 
45
- //# sourceMappingURL=p-kuABA_Tv.js.map
45
+ //# sourceMappingURL=p-BVAxyx8A.js.map
@@ -1 +1 @@
1
- {"file":"p-kuABA_Tv.js","mappings":";;AAAA,MAAM,SAAS,GAAG,sBAAsB;;MCQ3B,MAAM,iBAAAA,kBAAA,CAAA,MAAA,MAAA,SAAAC,CAAA,CAAA;;;;;;;IAET,MAAM,GAAa,EAAE;AACrB,IAAA,aAAa;IACb,SAAS,GAA8B,YAAY;IAElD,SAAS,GAAW,CAAC;IAE9B,MAAM,GAAA;QAEJ,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,oBAAoB,IAAI,CAAC,aAAa,CAAA,UAAA,EAAa,IAAI,CAAC,SAAS,CAAE,CAAA,EAAA,EAC7E,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,iBAAiB,EAAC,IAAI,EAAC,SAAS,EACxC,EAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,MAC5B,CAAA,CAAA,QAAA,EAAA,EACE,EAAE,EAAE,cAAc,KAAK,CAAA,CAAE,EACzB,KAAK,EAAE,CAAA,OAAA,EAAU,IAAI,CAAC,SAAS,KAAK,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAA,CAAE,EAC3D,OAAO,EAAE,MAAM,IAAI,CAAC,SAAS,GAAG,KAAK,EAAA,eAAA,EACtB,IAAI,CAAC,SAAS,KAAK,KAAK,GAAG,MAAM,GAAG,OAAO,EAAA,eAAA,EAC3C,CAAa,UAAA,EAAA,KAAK,CAAE,CAAA,EACnC,IAAI,EAAC,KAAK,EACV,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,IAAI,CAAC,SAAS,KAAK,KAAK,GAAG,GAAG,GAAG,IAAI,IAC9C,KAAK,CACC,CACV,CAAC,CACE,EACN,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,kBAAkB,EAC1B,EAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,MACxB,CAAA,CAAA,KAAA,EAAA,EACE,EAAE,EAAE,aAAa,KAAK,CAAA,CAAE,EACxB,IAAI,EAAC,UAAU,EACE,iBAAA,EAAA,CAAc,WAAA,EAAA,KAAK,CAAE,CAAA,EACtC,MAAM,EAAE,IAAI,CAAC,SAAS,KAAK,KAAK,EAAA,EAC9B,CAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAE,CAAA,YAAA,EAAe,KAAK,CAAA,CAAE,EAAA,CAAS,CACzC,CACP,CAAC,CACE,CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/iv-tabs/iv-tabs.scss?tag=iv-tabs","src/components/iv-tabs/iv-tabs.tsx"],"sourcesContent":[":host {\r\n display: block;\r\n}\r\n","import { Component, Prop, State, h } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'iv-tabs',\r\n styleUrl: 'iv-tabs.scss',\r\n shadow: false,\r\n})\r\n\r\nexport class IvTabs {\r\n\r\n @Prop() labels: string[] = [];\r\n @Prop() classModifier?: string;\r\n @Prop() tabLayout: 'horizontal' | 'vertical' = 'horizontal';\r\n\r\n @State() activeTab: number = 0;\r\n\r\n render() {\r\n\r\n return (\r\n <div class={`iv-tabs iv-tabs--${this.classModifier} iv-tabs--${this.tabLayout}`}>\r\n <div class=\"iv-tabs__header\" role=\"tablist\">\r\n {this.labels.map((label, index) => (\r\n <button\r\n id={`tab-button-${index}`}\r\n class={`iv-tab ${this.activeTab === index ? 'active' : ''}`}\r\n onClick={() => this.activeTab = index}\r\n aria-selected={this.activeTab === index ? 'true' : 'false'}\r\n aria-controls={`tab-panel-${index}`}\r\n role=\"tab\"\r\n type=\"button\"\r\n tabindex={this.activeTab === index ? '0' : '-1'}>\r\n {label}\r\n </button>\r\n ))}\r\n </div>\r\n <div class=\"iv-tabs__content\">\r\n {this.labels.map((_, index) => (\r\n <div\r\n id={`tab-panel-${index}`}\r\n role='tabpanel'\r\n aria-labelledby={`tab-button-${index}`}\r\n hidden={this.activeTab !== index}>\r\n <slot name={`tab-content-${index}`}></slot>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n\r\n };\r\n\r\n};"],"version":3}
1
+ {"file":"p-BVAxyx8A.js","mappings":";;AAAA,MAAM,SAAS,GAAG,sBAAsB;;MCQ3B,MAAM,iBAAAA,kBAAA,CAAA,MAAA,MAAA,SAAAC,CAAA,CAAA;;;;;;;IAET,MAAM,GAAa,EAAE;AACrB,IAAA,aAAa;IACb,SAAS,GAA8B,YAAY;IAElD,SAAS,GAAW,CAAC;IAE9B,MAAM,GAAA;QAEJ,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,oBAAoB,IAAI,CAAC,aAAa,CAAA,UAAA,EAAa,IAAI,CAAC,SAAS,CAAE,CAAA,EAAA,EAC7E,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,iBAAiB,EAAC,IAAI,EAAC,SAAS,EACxC,EAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,MAC5B,CAAA,CAAA,QAAA,EAAA,EACE,EAAE,EAAE,cAAc,KAAK,CAAA,CAAE,EACzB,KAAK,EAAE,CAAA,OAAA,EAAU,IAAI,CAAC,SAAS,KAAK,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAA,CAAE,EAC3D,OAAO,EAAE,MAAM,IAAI,CAAC,SAAS,GAAG,KAAK,EAAA,eAAA,EACtB,IAAI,CAAC,SAAS,KAAK,KAAK,GAAG,MAAM,GAAG,OAAO,EAAA,eAAA,EAC3C,CAAa,UAAA,EAAA,KAAK,CAAE,CAAA,EACnC,IAAI,EAAC,KAAK,EACV,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,IAAI,CAAC,SAAS,KAAK,KAAK,GAAG,GAAG,GAAG,IAAI,IAC9C,KAAK,CACC,CACV,CAAC,CACE,EACN,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,kBAAkB,EAC1B,EAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,MACxB,CAAA,CAAA,KAAA,EAAA,EACE,EAAE,EAAE,aAAa,KAAK,CAAA,CAAE,EACxB,IAAI,EAAC,UAAU,EACE,iBAAA,EAAA,CAAc,WAAA,EAAA,KAAK,CAAE,CAAA,EACtC,MAAM,EAAE,IAAI,CAAC,SAAS,KAAK,KAAK,EAAA,EAC9B,CAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAE,CAAA,YAAA,EAAe,KAAK,CAAA,CAAE,EAAA,CAAS,CACzC,CACP,CAAC,CACE,CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/iv-tabs/iv-tabs.scss?tag=iv-tabs","src/components/iv-tabs/iv-tabs.tsx"],"sourcesContent":[":host {\r\n display: block;\r\n}\r\n","import { Component, Prop, State, h } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'iv-tabs',\r\n styleUrl: 'iv-tabs.scss',\r\n shadow: false,\r\n})\r\n\r\nexport class IvTabs {\r\n\r\n @Prop() labels: string[] = [];\r\n @Prop() classModifier?: string;\r\n @Prop() tabLayout: 'horizontal' | 'vertical' = 'horizontal';\r\n\r\n @State() activeTab: number = 0;\r\n\r\n render() {\r\n\r\n return (\r\n <div class={`iv-tabs iv-tabs--${this.classModifier} iv-tabs--${this.tabLayout}`}>\r\n <div class=\"iv-tabs__header\" role=\"tablist\">\r\n {this.labels.map((label, index) => (\r\n <button\r\n id={`tab-button-${index}`}\r\n class={`iv-tab ${this.activeTab === index ? 'active' : ''}`}\r\n onClick={() => this.activeTab = index}\r\n aria-selected={this.activeTab === index ? 'true' : 'false'}\r\n aria-controls={`tab-panel-${index}`}\r\n role=\"tab\"\r\n type=\"button\"\r\n tabindex={this.activeTab === index ? '0' : '-1'}>\r\n {label}\r\n </button>\r\n ))}\r\n </div>\r\n <div class=\"iv-tabs__content\">\r\n {this.labels.map((_, index) => (\r\n <div\r\n id={`tab-panel-${index}`}\r\n role='tabpanel'\r\n aria-labelledby={`tab-button-${index}`}\r\n hidden={this.activeTab !== index}>\r\n <slot name={`tab-content-${index}`}></slot>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n\r\n };\r\n\r\n};"],"version":3}
@@ -1,11 +1,14 @@
1
- import { k as showToast, s as state } from './p-DH3wWIxr.js';
1
+ import { k as showToast, s as state } from './p-XXtzVg2d.js';
2
2
 
3
3
  async function shopifyFetch(query, variables = {}) {
4
4
  try {
5
5
  if (!state.shopDomainApi || !state.storefrontToken)
6
6
  throw new Error('Missing Shopify configuration (shopDomain/storefrontToken)');
7
- const endpoint = `https://${state.shopDomainApi}/api/2025-07/graphql.json`;
7
+ // const endpoint = `https://${state.shopDomainApi}/api/2025-07/graphql.json`;
8
+ const endpoint = 'https://craftnberry-co-uk.myshopify.com/api/2025-07/graphql.json';
9
+ console.log('[IV] Shopify Fetch to', endpoint);
8
10
  const token = state.storefrontToken;
11
+ console.log('[IV] Using storefront token', token);
9
12
  const res = await fetch(endpoint, {
10
13
  method: 'POST',
11
14
  headers: {
@@ -209,6 +212,6 @@ async function addToCart(options) {
209
212
  }
210
213
 
211
214
  export { fetchProductByID as a, addToCart as b, fetchProducts as f, getIdFromHandle as g };
212
- //# sourceMappingURL=p-Cmnclx4w.js.map
215
+ //# sourceMappingURL=p-BVL7DqEj.js.map
213
216
 
214
- //# sourceMappingURL=p-Cmnclx4w.js.map
217
+ //# sourceMappingURL=p-BVL7DqEj.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-BVL7DqEj.js","mappings":"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","names":[],"sources":["src/utils/storefront_api/factory.ts"],"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};"],"version":3}
@@ -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 ivLayoutCss = ".iv-layout{box-sizing:border-box;width:var(--iv-layout-width, 100%);max-width:var(--iv-layout-max-width, 100%);margin:var(--iv-layout-margin, 0);padding:var(--iv-layout-padding, 0);gap:var(--iv-layout-gap, 1rem);align-items:var(--iv-layout-align, stretch);justify-content:var(--iv-layout-justify, flex-start);flex-wrap:var(--iv-layout-flex-wrap, wrap);grid-auto-rows:var(--iv-layout-grid-auto-rows, auto);grid-auto-columns:var(--iv-layout-grid-auto-columns, auto);grid-auto-flow:var(--iv-layout-grid-auto-flow, row);grid-template-columns:var(--iv-layout-grid-template-columns, none);grid-template-rows:var(--iv-layout-grid-template-rows, none);background:var(--iv-layout-bg, transparent);border:var(--iv-layout-border, none);border-radius:var(--iv-layout-radius, 0);box-shadow:var(--iv-layout-shadow, none)}.iv-layout>*{flex:var(--iv-layout-flex-child, 1 1 0);min-width:var(--iv-layout-child-min-width, 0);max-width:var(--iv-layout-child-max-width, 100%);box-sizing:border-box}.iv-layout--tight{--iv-layout-gap:var(--iv-layout-tight-gap, 0.5rem)}.iv-layout--relaxed{--iv-layout-gap:var(--iv-layout-relaxed-gap, 2rem)}.iv-layout--scroll-x{display:flex !important;overflow-x:auto;scrollbar-width:var(--iv-layout-scrollbar-width, thin);-webkit-overflow-scrolling:touch}.iv-layout--scroll-x>*{flex:0 0 var(--iv-layout-scroll-item-width, 80%)}.iv-layout--debug>*{outline:1px dashed var(--iv-layout-debug-color, magenta)}@media (min-width: 40rem){.iv-layout{--iv-layout-gap:var(--iv-layout-gap-md, var(--iv-layout-gap, 1rem))}}@media (min-width: 64rem){.iv-layout{--iv-layout-gap:var(--iv-layout-gap-lg, var(--iv-layout-gap, 1rem))}}@media (prefers-reduced-motion: reduce){.iv-layout{scroll-behavior:auto}}";
4
4
 
@@ -79,6 +79,6 @@ function defineCustomElement() {
79
79
  defineCustomElement();
80
80
 
81
81
  export { IvLayout as I, defineCustomElement as d };
82
- //# sourceMappingURL=p-CmetOj56.js.map
82
+ //# sourceMappingURL=p-BpdXCMak.js.map
83
83
 
84
- //# sourceMappingURL=p-CmetOj56.js.map
84
+ //# sourceMappingURL=p-BpdXCMak.js.map
@@ -1 +1 @@
1
- {"file":"p-CmetOj56.js","mappings":";;AAAA,MAAM,WAAW,GAAG,sqDAAsqD;;MCQ7qD,QAAQ,iBAAAA,kBAAA,CAAA,MAAA,QAAA,SAAAC,CAAA,CAAA;;;;;;;AAEX,IAAA,SAAS;AACT,IAAA,iBAAiB;IACjB,GAAG,GAAW,MAAM;IACpB,aAAa,GAAW,QAAQ;IAChC,eAAe,GAAW,QAAQ;IAClC,UAAU,GAAW,KAAK;AAC1B,IAAA,aAAa;IAEb,gBAAgB,GAAA;QACtB,MAAM,KAAK,GAAkB,EAAE;AAC/B,QAAA,IAAG,IAAI,CAAC,iBAAiB,EAAE;YACzB,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AACxF,YAAA,SAAS,CAAC,OAAO,CAAC,IAAI,IAAG;AACvB,gBAAA,IAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;AAAE,oBAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5C,aAAC,CAAC;;AAEJ,QAAA,OAAO,KAAK;;;IAGN,iBAAiB,GAAA;QACvB,IAAI,UAAU,GAA8B,EAAE;AAC9C,QAAA,IAAG,IAAI,CAAC,iBAAiB,EAAE;AACzB,YAAA,UAAU,GAAG;AACX,gBAAA,OAAO,EAAE,MAAM;gBACf,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,GAAG,EAAE,IAAI,CAAC;aACX;;aACI;AACL,YAAA,UAAU,GAAG;AACX,gBAAA,OAAO,EAAE,MAAM;gBACf,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,UAAU,EAAE,IAAI,CAAC,aAAa;gBAC9B,cAAc,EAAE,IAAI,CAAC;aACtB;;AAEH,QAAA,OAAO,UAAU;;;IAGnB,MAAM,GAAA;AAEJ,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAiB;QAElC,QACE,CAAA,CAAC,GAAG,EAAA,EAAA,GAAA,EAAA,0CAAA,EACF,EAAE,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,SAAS,EAC/C,KAAK,EAAE,CAAY,SAAA,EAAA,IAAI,CAAC,aAAa,GAAG,CAAA,YAAA,EAAe,IAAI,CAAC,aAAa,CAAA,CAAE,GAAG,EAAE,CAAA,CAAE,EAClF,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAA,EAC9B,IAAI,CAAC,iBAAiB,IACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,IAAI,KAC9B,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAA,EAC5B,CAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAE,IAAI,EAAI,CAAA,CAChB,CACP,CAAC,KAEF,CAAA,CAAA,MAAA,EAAA,IAAA,CAAQ,CACT,CACG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/iv-layout/iv-layout.scss?tag=iv-layout","src/components/iv-layout/iv-layout.tsx"],"sourcesContent":["// Base iv-layout styles.\r\n// Usage notes:\r\n// - Component sets display + gap inline (grid if gridTemplateAreas prop, else flex).\r\n// - Designers override --iv-layout-* vars for spacing / sizing without editing component code.\r\n// - In flex mode, children auto share space equally via flex:1 (override via --iv-layout-flex-child).\r\n\r\n.iv-layout {\r\n box-sizing: border-box;\r\n width: var(--iv-layout-width, 100%);\r\n max-width: var(--iv-layout-max-width, 100%);\r\n margin: var(--iv-layout-margin, 0);\r\n padding: var(--iv-layout-padding, 0);\r\n gap: var(--iv-layout-gap, 1rem); \r\n align-items: var(--iv-layout-align, stretch);\r\n justify-content: var(--iv-layout-justify, flex-start);\r\n flex-wrap: var(--iv-layout-flex-wrap, wrap);\r\n grid-auto-rows: var(--iv-layout-grid-auto-rows, auto);\r\n grid-auto-columns: var(--iv-layout-grid-auto-columns, auto);\r\n grid-auto-flow: var(--iv-layout-grid-auto-flow, row);\r\n grid-template-columns: var(--iv-layout-grid-template-columns, none);\r\n grid-template-rows: var(--iv-layout-grid-template-rows, none);\r\n background: var(--iv-layout-bg, transparent);\r\n border: var(--iv-layout-border, none);\r\n border-radius: var(--iv-layout-radius, 0);\r\n box-shadow: var(--iv-layout-shadow, none);\r\n}\r\n\r\n.iv-layout > * {\r\n flex: var(--iv-layout-flex-child, 1 1 0);\r\n min-width: var(--iv-layout-child-min-width, 0);\r\n max-width: var(--iv-layout-child-max-width, 100%);\r\n box-sizing: border-box;\r\n}\r\n\r\n.iv-layout--tight { --iv-layout-gap: var(--iv-layout-tight-gap, 0.5rem); }\r\n\r\n.iv-layout--relaxed { --iv-layout-gap: var(--iv-layout-relaxed-gap, 2rem); }\r\n\r\n.iv-layout--scroll-x {\r\n display: flex !important;\r\n overflow-x: auto;\r\n scrollbar-width: var(--iv-layout-scrollbar-width, thin);\r\n -webkit-overflow-scrolling: touch;\r\n}\r\n\r\n.iv-layout--scroll-x > * { flex: 0 0 var(--iv-layout-scroll-item-width, 80%); }\r\n\r\n.iv-layout--debug > * { outline: 1px dashed var(--iv-layout-debug-color, magenta); }\r\n\r\n@media (min-width: 40rem) {\r\n .iv-layout { --iv-layout-gap: var(--iv-layout-gap-md, var(--iv-layout-gap, 1rem)); }\r\n}\r\n\r\n@media (min-width: 64rem) {\r\n .iv-layout { --iv-layout-gap: var(--iv-layout-gap-lg, var(--iv-layout-gap, 1rem)); }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .iv-layout { scroll-behavior: auto; }\r\n}","import { Component, h, Prop } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'iv-layout',\r\n styleUrl: 'iv-layout.scss',\r\n shadow: false,\r\n})\r\n\r\nexport class IvLayout {\r\n\r\n @Prop() sectionId?: string;\r\n @Prop() gridTemplateAreas?: string;\r\n @Prop() gap: string = '2rem';\r\n @Prop() verticalAlign: string = 'center';\r\n @Prop() horizontalAlign: string = 'center';\r\n @Prop() wrapperTag: string = 'div';\r\n @Prop() classModifier?: string;\r\n\r\n private handleNamedSlots() {\r\n const slots: Array<string> = [];\r\n if(this.gridTemplateAreas) {\r\n const areaNames = this.gridTemplateAreas.replace(/\"/g, '') .split(/\\s+/).filter(Boolean);\r\n areaNames.forEach(slot => {\r\n if(!slots.includes(slot)) slots.push(slot);\r\n });\r\n };\r\n return slots;\r\n };\r\n\r\n private generateGridStyes() {\r\n let gridStyles: { [key: string]: string } = {};\r\n if(this.gridTemplateAreas) {\r\n gridStyles = {\r\n display: 'grid',\r\n gridTemplateAreas: this.gridTemplateAreas,\r\n gap: this.gap \r\n }\r\n } else {\r\n gridStyles = {\r\n display: 'flex',\r\n gap: this.gap,\r\n alignItems: this.verticalAlign,\r\n justifyContent: this.horizontalAlign\r\n };\r\n };\r\n return gridStyles;\r\n };\r\n\r\n render() {\r\n\r\n const Tag = this.wrapperTag as any;\r\n \r\n return (\r\n <Tag \r\n id={this.sectionId ? this.sectionId : undefined} \r\n class={`iv-layout${this.classModifier ? ` iv-layout--${this.classModifier}` : ''}`}\r\n style={this.generateGridStyes()}>\r\n {this.gridTemplateAreas ? (\r\n this.handleNamedSlots().map(slot => (\r\n <div style={{ gridArea: slot }}>\r\n <slot name={slot} />\r\n </div> \r\n ))\r\n ) : (\r\n <slot />\r\n )}\r\n </Tag>\r\n );\r\n\r\n };\r\n\r\n};"],"version":3}
1
+ {"file":"p-BpdXCMak.js","mappings":";;AAAA,MAAM,WAAW,GAAG,sqDAAsqD;;MCQ7qD,QAAQ,iBAAAA,kBAAA,CAAA,MAAA,QAAA,SAAAC,CAAA,CAAA;;;;;;;AAEX,IAAA,SAAS;AACT,IAAA,iBAAiB;IACjB,GAAG,GAAW,MAAM;IACpB,aAAa,GAAW,QAAQ;IAChC,eAAe,GAAW,QAAQ;IAClC,UAAU,GAAW,KAAK;AAC1B,IAAA,aAAa;IAEb,gBAAgB,GAAA;QACtB,MAAM,KAAK,GAAkB,EAAE;AAC/B,QAAA,IAAG,IAAI,CAAC,iBAAiB,EAAE;YACzB,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AACxF,YAAA,SAAS,CAAC,OAAO,CAAC,IAAI,IAAG;AACvB,gBAAA,IAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;AAAE,oBAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5C,aAAC,CAAC;;AAEJ,QAAA,OAAO,KAAK;;;IAGN,iBAAiB,GAAA;QACvB,IAAI,UAAU,GAA8B,EAAE;AAC9C,QAAA,IAAG,IAAI,CAAC,iBAAiB,EAAE;AACzB,YAAA,UAAU,GAAG;AACX,gBAAA,OAAO,EAAE,MAAM;gBACf,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,GAAG,EAAE,IAAI,CAAC;aACX;;aACI;AACL,YAAA,UAAU,GAAG;AACX,gBAAA,OAAO,EAAE,MAAM;gBACf,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,UAAU,EAAE,IAAI,CAAC,aAAa;gBAC9B,cAAc,EAAE,IAAI,CAAC;aACtB;;AAEH,QAAA,OAAO,UAAU;;;IAGnB,MAAM,GAAA;AAEJ,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAiB;QAElC,QACE,CAAA,CAAC,GAAG,EAAA,EAAA,GAAA,EAAA,0CAAA,EACF,EAAE,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,SAAS,EAC/C,KAAK,EAAE,CAAY,SAAA,EAAA,IAAI,CAAC,aAAa,GAAG,CAAA,YAAA,EAAe,IAAI,CAAC,aAAa,CAAA,CAAE,GAAG,EAAE,CAAA,CAAE,EAClF,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAA,EAC9B,IAAI,CAAC,iBAAiB,IACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,IAAI,KAC9B,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAA,EAC5B,CAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAE,IAAI,EAAI,CAAA,CAChB,CACP,CAAC,KAEF,CAAA,CAAA,MAAA,EAAA,IAAA,CAAQ,CACT,CACG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/iv-layout/iv-layout.scss?tag=iv-layout","src/components/iv-layout/iv-layout.tsx"],"sourcesContent":["// Base iv-layout styles.\r\n// Usage notes:\r\n// - Component sets display + gap inline (grid if gridTemplateAreas prop, else flex).\r\n// - Designers override --iv-layout-* vars for spacing / sizing without editing component code.\r\n// - In flex mode, children auto share space equally via flex:1 (override via --iv-layout-flex-child).\r\n\r\n.iv-layout {\r\n box-sizing: border-box;\r\n width: var(--iv-layout-width, 100%);\r\n max-width: var(--iv-layout-max-width, 100%);\r\n margin: var(--iv-layout-margin, 0);\r\n padding: var(--iv-layout-padding, 0);\r\n gap: var(--iv-layout-gap, 1rem); \r\n align-items: var(--iv-layout-align, stretch);\r\n justify-content: var(--iv-layout-justify, flex-start);\r\n flex-wrap: var(--iv-layout-flex-wrap, wrap);\r\n grid-auto-rows: var(--iv-layout-grid-auto-rows, auto);\r\n grid-auto-columns: var(--iv-layout-grid-auto-columns, auto);\r\n grid-auto-flow: var(--iv-layout-grid-auto-flow, row);\r\n grid-template-columns: var(--iv-layout-grid-template-columns, none);\r\n grid-template-rows: var(--iv-layout-grid-template-rows, none);\r\n background: var(--iv-layout-bg, transparent);\r\n border: var(--iv-layout-border, none);\r\n border-radius: var(--iv-layout-radius, 0);\r\n box-shadow: var(--iv-layout-shadow, none);\r\n}\r\n\r\n.iv-layout > * {\r\n flex: var(--iv-layout-flex-child, 1 1 0);\r\n min-width: var(--iv-layout-child-min-width, 0);\r\n max-width: var(--iv-layout-child-max-width, 100%);\r\n box-sizing: border-box;\r\n}\r\n\r\n.iv-layout--tight { --iv-layout-gap: var(--iv-layout-tight-gap, 0.5rem); }\r\n\r\n.iv-layout--relaxed { --iv-layout-gap: var(--iv-layout-relaxed-gap, 2rem); }\r\n\r\n.iv-layout--scroll-x {\r\n display: flex !important;\r\n overflow-x: auto;\r\n scrollbar-width: var(--iv-layout-scrollbar-width, thin);\r\n -webkit-overflow-scrolling: touch;\r\n}\r\n\r\n.iv-layout--scroll-x > * { flex: 0 0 var(--iv-layout-scroll-item-width, 80%); }\r\n\r\n.iv-layout--debug > * { outline: 1px dashed var(--iv-layout-debug-color, magenta); }\r\n\r\n@media (min-width: 40rem) {\r\n .iv-layout { --iv-layout-gap: var(--iv-layout-gap-md, var(--iv-layout-gap, 1rem)); }\r\n}\r\n\r\n@media (min-width: 64rem) {\r\n .iv-layout { --iv-layout-gap: var(--iv-layout-gap-lg, var(--iv-layout-gap, 1rem)); }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .iv-layout { scroll-behavior: auto; }\r\n}","import { Component, h, Prop } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'iv-layout',\r\n styleUrl: 'iv-layout.scss',\r\n shadow: false,\r\n})\r\n\r\nexport class IvLayout {\r\n\r\n @Prop() sectionId?: string;\r\n @Prop() gridTemplateAreas?: string;\r\n @Prop() gap: string = '2rem';\r\n @Prop() verticalAlign: string = 'center';\r\n @Prop() horizontalAlign: string = 'center';\r\n @Prop() wrapperTag: string = 'div';\r\n @Prop() classModifier?: string;\r\n\r\n private handleNamedSlots() {\r\n const slots: Array<string> = [];\r\n if(this.gridTemplateAreas) {\r\n const areaNames = this.gridTemplateAreas.replace(/\"/g, '') .split(/\\s+/).filter(Boolean);\r\n areaNames.forEach(slot => {\r\n if(!slots.includes(slot)) slots.push(slot);\r\n });\r\n };\r\n return slots;\r\n };\r\n\r\n private generateGridStyes() {\r\n let gridStyles: { [key: string]: string } = {};\r\n if(this.gridTemplateAreas) {\r\n gridStyles = {\r\n display: 'grid',\r\n gridTemplateAreas: this.gridTemplateAreas,\r\n gap: this.gap \r\n }\r\n } else {\r\n gridStyles = {\r\n display: 'flex',\r\n gap: this.gap,\r\n alignItems: this.verticalAlign,\r\n justifyContent: this.horizontalAlign\r\n };\r\n };\r\n return gridStyles;\r\n };\r\n\r\n render() {\r\n\r\n const Tag = this.wrapperTag as any;\r\n \r\n return (\r\n <Tag \r\n id={this.sectionId ? this.sectionId : undefined} \r\n class={`iv-layout${this.classModifier ? ` iv-layout--${this.classModifier}` : ''}`}\r\n style={this.generateGridStyes()}>\r\n {this.gridTemplateAreas ? (\r\n this.handleNamedSlots().map(slot => (\r\n <div style={{ gridArea: slot }}>\r\n <slot name={slot} />\r\n </div> \r\n ))\r\n ) : (\r\n <slot />\r\n )}\r\n </Tag>\r\n );\r\n\r\n };\r\n\r\n};"],"version":3}
@@ -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 ivBannerCss = ":host{display:block}";
4
4
 
@@ -46,6 +46,6 @@ function defineCustomElement() {
46
46
  defineCustomElement();
47
47
 
48
48
  export { IvBanner as I, defineCustomElement as d };
49
- //# sourceMappingURL=p-DV16vkcI.js.map
49
+ //# sourceMappingURL=p-CUI6hRMI.js.map
50
50
 
51
- //# sourceMappingURL=p-DV16vkcI.js.map
51
+ //# sourceMappingURL=p-CUI6hRMI.js.map
@@ -1 +1 @@
1
- {"file":"p-DV16vkcI.js","mappings":";;AAAA,MAAM,WAAW,GAAG,sBAAsB;;MCQ7B,QAAQ,iBAAAA,kBAAA,CAAA,MAAA,QAAA,SAAAC,CAAA,CAAA;;;;;;;AAEX,IAAA,aAAa;AACb,IAAA,SAAS;AACT,IAAA,gBAAgB;IAChB,UAAU,GAAkC,KAAK;IAEzD,MAAM,GAAA;AAEJ,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAiB;AAElC,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,aAAa,EAAG,CAAA;AAC3B,YAAA,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,aAAa,EAAG,CAAA;AAC3B,YAAA,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,cAAc,EAAG;SAC7B;AAED,QAAA,QACE,EAAC,GAAG,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,KAAK,EAAE,aAAa,IAAI,CAAC,aAAa,IAAI,EAAE,CAAA,CAAE,EAAA,EAChD,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,gBAAgB,IACvC,CAAG,CAAA,GAAA,EAAA,EAAA,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAC,gBAAgB,EAAY,YAAA,EAAA,aAAa,IACrE,OAAO,CACN,KAEJ,OAAO,CACR,CACG;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/iv-banner/iv-banner.scss?tag=iv-banner","src/components/iv-banner/iv-banner.tsx"],"sourcesContent":[":host {\r\n display: block;\r\n}\r\n","import { Component, Prop, h } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'iv-banner',\r\n styleUrl: 'iv-banner.scss',\r\n shadow: false\r\n})\r\n\r\nexport class IvBanner {\r\n\r\n @Prop() classmodifier?: string;\r\n @Prop() bannerurl?: string;\r\n @Prop() bannerbuttontext?: string;\r\n @Prop() bannertype: 'div' | 'section' | 'article' = 'div';\r\n\r\n render() {\r\n\r\n const Tag = this.bannertype as any;\r\n\r\n const content = [\r\n <slot name=\"bannerimage\" />,\r\n <slot name=\"bannertitle\" />,\r\n <slot name=\"bannerbutton\" />\r\n ];\r\n\r\n return (\r\n <Tag class={`iv-banner ${this.classmodifier || ''}`}>\r\n {this.bannerurl && !this.bannerbuttontext ? (\r\n <a href={this.bannerurl} class=\"iv-banner-link\" aria-label=\"Banner link\">\r\n {content}\r\n </a>\r\n ) : (\r\n content\r\n )}\r\n </Tag>\r\n );\r\n\r\n };\r\n\r\n};"],"version":3}
1
+ {"file":"p-CUI6hRMI.js","mappings":";;AAAA,MAAM,WAAW,GAAG,sBAAsB;;MCQ7B,QAAQ,iBAAAA,kBAAA,CAAA,MAAA,QAAA,SAAAC,CAAA,CAAA;;;;;;;AAEX,IAAA,aAAa;AACb,IAAA,SAAS;AACT,IAAA,gBAAgB;IAChB,UAAU,GAAkC,KAAK;IAEzD,MAAM,GAAA;AAEJ,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAiB;AAElC,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,aAAa,EAAG,CAAA;AAC3B,YAAA,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,aAAa,EAAG,CAAA;AAC3B,YAAA,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,cAAc,EAAG;SAC7B;AAED,QAAA,QACE,EAAC,GAAG,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,KAAK,EAAE,aAAa,IAAI,CAAC,aAAa,IAAI,EAAE,CAAA,CAAE,EAAA,EAChD,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,gBAAgB,IACvC,CAAG,CAAA,GAAA,EAAA,EAAA,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAC,gBAAgB,EAAY,YAAA,EAAA,aAAa,IACrE,OAAO,CACN,KAEJ,OAAO,CACR,CACG;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/iv-banner/iv-banner.scss?tag=iv-banner","src/components/iv-banner/iv-banner.tsx"],"sourcesContent":[":host {\r\n display: block;\r\n}\r\n","import { Component, Prop, h } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'iv-banner',\r\n styleUrl: 'iv-banner.scss',\r\n shadow: false\r\n})\r\n\r\nexport class IvBanner {\r\n\r\n @Prop() classmodifier?: string;\r\n @Prop() bannerurl?: string;\r\n @Prop() bannerbuttontext?: string;\r\n @Prop() bannertype: 'div' | 'section' | 'article' = 'div';\r\n\r\n render() {\r\n\r\n const Tag = this.bannertype as any;\r\n\r\n const content = [\r\n <slot name=\"bannerimage\" />,\r\n <slot name=\"bannertitle\" />,\r\n <slot name=\"bannerbutton\" />\r\n ];\r\n\r\n return (\r\n <Tag class={`iv-banner ${this.classmodifier || ''}`}>\r\n {this.bannerurl && !this.bannerbuttontext ? (\r\n <a href={this.bannerurl} class=\"iv-banner-link\" aria-label=\"Banner link\">\r\n {content}\r\n </a>\r\n ) : (\r\n content\r\n )}\r\n </Tag>\r\n );\r\n\r\n };\r\n\r\n};"],"version":3}
@@ -1,4 +1,4 @@
1
- import { g as getAssetPath, p as proxyCustomElement, H, h, d as Host } from './p-DH3wWIxr.js';
1
+ import { g as getAssetPath, p as proxyCustomElement, H, h, d as Host } from './p-XXtzVg2d.js';
2
2
 
3
3
  let CACHED_MAP;
4
4
  const getIconMap = () => {
@@ -455,6 +455,6 @@ function defineCustomElement() {
455
455
  defineCustomElement();
456
456
 
457
457
  export { Icon as I, defineCustomElement as d };
458
- //# sourceMappingURL=p-HxD8ZMcb.js.map
458
+ //# sourceMappingURL=p-D8GfK9z_.js.map
459
459
 
460
- //# sourceMappingURL=p-HxD8ZMcb.js.map
460
+ //# sourceMappingURL=p-D8GfK9z_.js.map