@jumpgroup/jump-design-system 0.3.69 → 0.3.70

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 (159) hide show
  1. package/dist/cjs/{index-864e40de.js → index-230bcbae.js} +6 -2
  2. package/dist/cjs/index-230bcbae.js.map +1 -0
  3. package/dist/cjs/jump-accordion-group.cjs.entry.js +1 -1
  4. package/dist/cjs/jump-accordion.cjs.entry.js +1 -1
  5. package/dist/cjs/jump-badge.cjs.entry.js +1 -1
  6. package/dist/cjs/jump-button_2.cjs.entry.js +1 -1
  7. package/dist/cjs/jump-card-ecommerce-option.cjs.entry.js +1 -1
  8. package/dist/cjs/jump-card-ecommerce.cjs.entry.js +2 -2
  9. package/dist/cjs/jump-card-ecommerce.cjs.entry.js.map +1 -1
  10. package/dist/cjs/jump-card.cjs.entry.js +1 -1
  11. package/dist/cjs/jump-design-system.cjs.js +2 -2
  12. package/dist/cjs/jump-filter-checkbox.cjs.entry.js +1 -1
  13. package/dist/cjs/jump-filter-select.cjs.entry.js +1 -1
  14. package/dist/cjs/jump-filter-switch.cjs.entry.js +1 -1
  15. package/dist/cjs/jump-filter.cjs.entry.js +1 -1
  16. package/dist/cjs/jump-filtergroup.cjs.entry.js +1 -1
  17. package/dist/cjs/jump-navbar.cjs.entry.js +1 -1
  18. package/dist/cjs/jump-pagination-table.cjs.entry.js +1 -1
  19. package/dist/cjs/jump-pagination.cjs.entry.js +1 -1
  20. package/dist/cjs/jump-quantity.cjs.entry.js +1 -1
  21. package/dist/cjs/jump-search-bar-dropdown-item.cjs.entry.js +1 -1
  22. package/dist/cjs/jump-search-bar-mobile.cjs.entry.js +1 -1
  23. package/dist/cjs/jump-search-bar.cjs.entry.js +1 -1
  24. package/dist/cjs/jump-side-cart-example.cjs.entry.js +73 -0
  25. package/dist/cjs/jump-side-cart-example.cjs.entry.js.map +1 -0
  26. package/dist/cjs/jump-side-cart.cjs.entry.js +87 -0
  27. package/dist/cjs/jump-side-cart.cjs.entry.js.map +1 -0
  28. package/dist/cjs/jump-tab-item.cjs.entry.js +3 -3
  29. package/dist/cjs/jump-tab-panel.cjs.entry.js +2 -2
  30. package/dist/cjs/jump-tab.cjs.entry.js +2 -2
  31. package/dist/cjs/loader.cjs.js +2 -2
  32. package/dist/collection/collection-manifest.json +2 -0
  33. package/dist/collection/components/jump-card-ecommerce/jump-card-ecommerce.css +1 -0
  34. package/dist/collection/components/jump-card-ecommerce-option/jump-card-ecommerce-option.stories.js +1 -0
  35. package/dist/collection/components/jump-card-ecommerce-option/jump-card-ecommerce-option.stories.js.map +1 -1
  36. package/dist/collection/components/jump-side-cart/index.js +1 -0
  37. package/dist/collection/components/jump-side-cart/index.js.map +1 -0
  38. package/dist/collection/components/jump-side-cart/jump-side-cart.css +315 -0
  39. package/dist/collection/components/jump-side-cart/jump-side-cart.example.css +30 -0
  40. package/dist/collection/components/jump-side-cart/jump-side-cart.example.js +79 -0
  41. package/dist/collection/components/jump-side-cart/jump-side-cart.example.js.map +1 -0
  42. package/dist/collection/components/jump-side-cart/jump-side-cart.js +335 -0
  43. package/dist/collection/components/jump-side-cart/jump-side-cart.js.map +1 -0
  44. package/dist/collection/components/jump-side-cart/jump-side-cart.stories.js +134 -0
  45. package/dist/collection/components/jump-side-cart/jump-side-cart.stories.js.map +1 -0
  46. package/dist/collection/components/jump-tab/jump-tab.js +1 -1
  47. package/dist/collection/components/jump-tab-item/jump-tab-item.js +2 -2
  48. package/dist/collection/components/jump-tab-panel/jump-tab-panel.js +1 -1
  49. package/dist/components/jump-card-ecommerce.js +1 -1
  50. package/dist/components/jump-card-ecommerce.js.map +1 -1
  51. package/dist/components/jump-side-cart-example.d.ts +11 -0
  52. package/dist/components/jump-side-cart-example.js +97 -0
  53. package/dist/components/jump-side-cart-example.js.map +1 -0
  54. package/dist/components/jump-side-cart.d.ts +11 -0
  55. package/dist/components/jump-side-cart.js +8 -0
  56. package/dist/components/jump-side-cart.js.map +1 -0
  57. package/dist/components/jump-side-cart2.js +109 -0
  58. package/dist/components/jump-side-cart2.js.map +1 -0
  59. package/dist/components/jump-tab-item.js +2 -2
  60. package/dist/components/jump-tab-panel.js +1 -1
  61. package/dist/components/jump-tab.js +1 -1
  62. package/dist/esm/{index-7eb565cd.js → index-4363ffe4.js} +6 -2
  63. package/dist/esm/index-4363ffe4.js.map +1 -0
  64. package/dist/esm/jump-accordion-group.entry.js +1 -1
  65. package/dist/esm/jump-accordion.entry.js +1 -1
  66. package/dist/esm/jump-badge.entry.js +1 -1
  67. package/dist/esm/jump-button_2.entry.js +1 -1
  68. package/dist/esm/jump-card-ecommerce-option.entry.js +1 -1
  69. package/dist/esm/jump-card-ecommerce.entry.js +2 -2
  70. package/dist/esm/jump-card-ecommerce.entry.js.map +1 -1
  71. package/dist/esm/jump-card.entry.js +1 -1
  72. package/dist/esm/jump-design-system.js +3 -3
  73. package/dist/esm/jump-filter-checkbox.entry.js +1 -1
  74. package/dist/esm/jump-filter-select.entry.js +1 -1
  75. package/dist/esm/jump-filter-switch.entry.js +1 -1
  76. package/dist/esm/jump-filter.entry.js +1 -1
  77. package/dist/esm/jump-filtergroup.entry.js +1 -1
  78. package/dist/esm/jump-navbar.entry.js +1 -1
  79. package/dist/esm/jump-pagination-table.entry.js +1 -1
  80. package/dist/esm/jump-pagination.entry.js +1 -1
  81. package/dist/esm/jump-quantity.entry.js +1 -1
  82. package/dist/esm/jump-search-bar-dropdown-item.entry.js +1 -1
  83. package/dist/esm/jump-search-bar-mobile.entry.js +1 -1
  84. package/dist/esm/jump-search-bar.entry.js +1 -1
  85. package/dist/esm/jump-side-cart-example.entry.js +69 -0
  86. package/dist/esm/jump-side-cart-example.entry.js.map +1 -0
  87. package/dist/esm/jump-side-cart.entry.js +83 -0
  88. package/dist/esm/jump-side-cart.entry.js.map +1 -0
  89. package/dist/esm/jump-tab-item.entry.js +3 -3
  90. package/dist/esm/jump-tab-panel.entry.js +2 -2
  91. package/dist/esm/jump-tab.entry.js +2 -2
  92. package/dist/esm/loader.js +3 -3
  93. package/dist/jump-design-system/jump-design-system.esm.js +1 -1
  94. package/dist/jump-design-system/jump-design-system.esm.js.map +1 -1
  95. package/dist/jump-design-system/p-0432b242.entry.js +2 -0
  96. package/dist/jump-design-system/p-0432b242.entry.js.map +1 -0
  97. package/dist/jump-design-system/{p-3b4127b0.entry.js → p-089b9c5c.entry.js} +2 -2
  98. package/dist/jump-design-system/p-0cc799f3.entry.js +2 -0
  99. package/dist/jump-design-system/p-0cdca5df.entry.js +2 -0
  100. package/dist/jump-design-system/{p-947d7f9a.entry.js → p-2e274d20.entry.js} +2 -2
  101. package/dist/jump-design-system/{p-d8bfd21c.entry.js → p-35f2032b.entry.js} +2 -2
  102. package/dist/jump-design-system/p-40ca24a6.js +3 -0
  103. package/dist/{esm/index-7eb565cd.js.map → jump-design-system/p-40ca24a6.js.map} +1 -1
  104. package/dist/jump-design-system/{p-ff8d70ab.entry.js → p-4706eba4.entry.js} +2 -2
  105. package/dist/jump-design-system/{p-79c78037.entry.js → p-617c7cd7.entry.js} +2 -2
  106. package/dist/jump-design-system/{p-201c09dd.entry.js → p-629ef0c7.entry.js} +2 -2
  107. package/dist/jump-design-system/{p-8d1d2af9.entry.js → p-66c79fb9.entry.js} +4 -4
  108. package/dist/jump-design-system/{p-98ef4924.entry.js → p-79e5dac6.entry.js} +2 -2
  109. package/dist/jump-design-system/{p-3c1076e0.entry.js → p-7a2bc23d.entry.js} +2 -2
  110. package/dist/jump-design-system/{p-d3b62e9b.entry.js → p-800fd60b.entry.js} +2 -2
  111. package/dist/jump-design-system/{p-94790673.entry.js → p-83b3a560.entry.js} +2 -2
  112. package/dist/jump-design-system/p-8f02eb5e.entry.js +2 -0
  113. package/dist/jump-design-system/p-8f02eb5e.entry.js.map +1 -0
  114. package/dist/jump-design-system/{p-90c51b48.entry.js → p-9035201c.entry.js} +2 -2
  115. package/dist/jump-design-system/{p-7dd5052b.entry.js → p-9279b124.entry.js} +2 -2
  116. package/dist/jump-design-system/{p-d94fabc1.entry.js → p-a0237406.entry.js} +2 -2
  117. package/dist/jump-design-system/{p-3e31b638.entry.js → p-a7d5e687.entry.js} +2 -2
  118. package/dist/jump-design-system/{p-8e0419b1.entry.js → p-b8b28d8b.entry.js} +2 -2
  119. package/dist/jump-design-system/p-cb9ab473.entry.js +2 -0
  120. package/dist/jump-design-system/{p-a05d9480.entry.js → p-e7b3ebb1.entry.js} +2 -2
  121. package/dist/jump-design-system/p-e7d1e3d8.entry.js +2 -0
  122. package/dist/jump-design-system/p-e7d1e3d8.entry.js.map +1 -0
  123. package/dist/jump-design-system/{p-6148a37d.entry.js → p-fa2a10bf.entry.js} +2 -2
  124. package/dist/jump-design-system-elements.json +53 -0
  125. package/dist/types/components/jump-side-cart/index.d.ts +0 -0
  126. package/dist/types/components/jump-side-cart/jump-side-cart.d.ts +45 -0
  127. package/dist/types/components/jump-side-cart/jump-side-cart.example.d.ts +14 -0
  128. package/dist/types/components/jump-side-cart/jump-side-cart.stories.d.ts +43 -0
  129. package/dist/types/components.d.ts +70 -0
  130. package/package.json +1 -1
  131. package/dist/cjs/index-864e40de.js.map +0 -1
  132. package/dist/jump-design-system/p-0cbcc5b3.entry.js +0 -2
  133. package/dist/jump-design-system/p-39b82674.entry.js +0 -2
  134. package/dist/jump-design-system/p-926c7bf0.entry.js +0 -2
  135. package/dist/jump-design-system/p-ad550de6.entry.js +0 -2
  136. package/dist/jump-design-system/p-ad550de6.entry.js.map +0 -1
  137. package/dist/jump-design-system/p-e516e812.js +0 -3
  138. package/dist/jump-design-system/p-e516e812.js.map +0 -1
  139. /package/dist/jump-design-system/{p-3b4127b0.entry.js.map → p-089b9c5c.entry.js.map} +0 -0
  140. /package/dist/jump-design-system/{p-0cbcc5b3.entry.js.map → p-0cc799f3.entry.js.map} +0 -0
  141. /package/dist/jump-design-system/{p-926c7bf0.entry.js.map → p-0cdca5df.entry.js.map} +0 -0
  142. /package/dist/jump-design-system/{p-947d7f9a.entry.js.map → p-2e274d20.entry.js.map} +0 -0
  143. /package/dist/jump-design-system/{p-d8bfd21c.entry.js.map → p-35f2032b.entry.js.map} +0 -0
  144. /package/dist/jump-design-system/{p-ff8d70ab.entry.js.map → p-4706eba4.entry.js.map} +0 -0
  145. /package/dist/jump-design-system/{p-79c78037.entry.js.map → p-617c7cd7.entry.js.map} +0 -0
  146. /package/dist/jump-design-system/{p-201c09dd.entry.js.map → p-629ef0c7.entry.js.map} +0 -0
  147. /package/dist/jump-design-system/{p-8d1d2af9.entry.js.map → p-66c79fb9.entry.js.map} +0 -0
  148. /package/dist/jump-design-system/{p-98ef4924.entry.js.map → p-79e5dac6.entry.js.map} +0 -0
  149. /package/dist/jump-design-system/{p-3c1076e0.entry.js.map → p-7a2bc23d.entry.js.map} +0 -0
  150. /package/dist/jump-design-system/{p-d3b62e9b.entry.js.map → p-800fd60b.entry.js.map} +0 -0
  151. /package/dist/jump-design-system/{p-94790673.entry.js.map → p-83b3a560.entry.js.map} +0 -0
  152. /package/dist/jump-design-system/{p-90c51b48.entry.js.map → p-9035201c.entry.js.map} +0 -0
  153. /package/dist/jump-design-system/{p-7dd5052b.entry.js.map → p-9279b124.entry.js.map} +0 -0
  154. /package/dist/jump-design-system/{p-d94fabc1.entry.js.map → p-a0237406.entry.js.map} +0 -0
  155. /package/dist/jump-design-system/{p-3e31b638.entry.js.map → p-a7d5e687.entry.js.map} +0 -0
  156. /package/dist/jump-design-system/{p-8e0419b1.entry.js.map → p-b8b28d8b.entry.js.map} +0 -0
  157. /package/dist/jump-design-system/{p-39b82674.entry.js.map → p-cb9ab473.entry.js.map} +0 -0
  158. /package/dist/jump-design-system/{p-a05d9480.entry.js.map → p-e7b3ebb1.entry.js.map} +0 -0
  159. /package/dist/jump-design-system/{p-6148a37d.entry.js.map → p-fa2a10bf.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"jump-card-ecommerce.entry.js","mappings":"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","names":[],"sources":["src/components/jump-card-ecommerce/jump-card-ecommerce.scss?tag=jump-card-ecommerce&encapsulation=shadow","src/components/jump-card-ecommerce/jump-card-ecommerce.tsx"],"sourcesContent":[":host {\n --card-max-width: 450px;\n --jump-card-max-width-horizontal: 100%;\n --jump-card-color: var(--neutral-grey-primary);\n --jump-card-background: transparent;\n --jump-card-border-color: var(--neutral-grey-background);\n --jump-card-padding: 0.5rem;\n\n max-width: var(--card-max-width);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n position: relative;\n width: 100%;\n font-family: var(--ff-primary, 'Arial'), sans-serif;\n line-height: var(--lh-400, 1.3);\n background-color: var(--jump-card-background);\n color: var(--jump-card-color);\n\n .Footer,\n .Body {\n display: flex;\n width: 100%;\n }\n\n jump-badge {\n position: absolute;\n top: 1rem;\n left: 1rem;\n z-index: 2;\n\n &.hasBackground.iconOnly {\n top: calc(1rem + 8px);\n left: calc(1rem + 8px);\n }\n }\n\n .Favorite {\n position: absolute;\n top: 1rem;\n right: 1rem;\n z-index: 2;\n\n &.hasBackground.iconOnly {\n top: calc(1rem + 8px);\n right: calc(1rem + 8px);\n }\n }\n\n .Media {\n // aspect-ratio: 3/4;\n overflow: hidden;\n position: relative;\n border-radius: 3px;\n aspect-ratio: 1/1;\n\n .Images {\n height: 100%;\n margin: 0;\n position: relative;\n\n img {\n height: 100%;\n width: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n overflow: hidden;\n }\n\n &__Front {\n z-index: 1;\n transition: opacity 0.5s linear;\n cursor: pointer;\n }\n\n &.has-hover-image {\n &:hover .Images__Front {\n opacity: 0;\n }\n }\n }\n\n &.hasBackground {\n background-color: var(--neutral-white);\n\n &.iconOnly {\n border-top-left-radius: 6px;\n border-top-right-radius: 6px;\n padding: var(--jump-card-padding) var(--jump-card-padding) 0;\n\n img {\n border-radius: 6px;\n }\n }\n }\n\n &.iconOnly {\n border-bottom-right-radius: 0;\n }\n\n &.is-mini {\n max-width: 180px;\n }\n }\n\n .NotificationCart {\n display: none;\n position: absolute;\n bottom: 0px;\n width: 100%;\n padding: 2rem 1rem;\n background-color: hsl(0 0% 0% / 35%);\n box-sizing: border-box;\n z-index: 2;\n transform: translate3d(0, 0, 0);\n\n &.is-active {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n }\n\n .Content {\n &.hasBackground {\n background-color: var(--neutral-white);\n padding: calc(var(--jump-card-padding) * 2);\n }\n\n &.iconOnly {\n padding: calc(var(--jump-card-padding) * 2) var(--jump-card-padding);\n }\n\n &.is-mini {\n max-width: 180px;\n }\n }\n\n .Body {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n padding: var(--jump-card-padding) 0;\n\n & > * {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n\n & > * {\n flex: 0 1 auto;\n }\n }\n\n &.hasBackground {\n padding: 0 0 var(--jump-card-padding);\n }\n\n &.iconOnly {\n padding: 0;\n }\n\n &.is-mini {\n & > * {\n flex-direction: column;\n }\n\n padding: calc(var(--jump-card-padding) / 2) 0;\n }\n }\n\n .Product {\n font-size: var(--fs-400);\n color: var(--neutral-grey-primary);\n text-decoration: none;\n }\n\n .Subtitle {\n font-size: var(--fs-300);\n color: var(--neutral-grey-secondary);\n line-height: 1.2;\n }\n\n .Footer {\n line-height: var(--lh-400);\n justify-content: end;\n padding: var(--jump-card-padding) 0;\n align-items: flex-end;\n\n &.justify-between {\n justify-content: space-between;\n }\n\n &.hasBackground {\n padding-bottom: 0;\n }\n\n &.iconOnly {\n padding: 0;\n }\n\n &.is-mini {\n padding: calc(var(--jump-card-padding) / 2) 0;\n }\n\n &__AddToCart {\n --jump-button-color: var(--jump-card-ecommerce-add-to-cart-color);\n --jump-button-background: var(--jump-card-ecommerce-add-to-cart-background);\n --jump-button-color-hover: var(--jump-card-ecommerce-add-to-cart-color-hover);\n --jump-button-background-hover: var(--jump-card-ecommerce-add-to-cart-background-hover);\n }\n }\n\n .OutOfStock {\n justify-items: start;\n font-size: var(--fs-300);\n font-weight: var(--fw-900);\n color: var(--status-danger-standard);\n }\n\n .OnlyIconButton {\n position: absolute;\n bottom: 0;\n right: 0;\n background: var(--neutral-white);\n border-top-left-radius: 20px;\n padding: 8px 8px 0px 8px;\n z-index: 2;\n }\n\n .Price {\n position: relative;\n display: grid;\n grid-template-columns: auto auto;\n grid-template-rows: 1.5rem 1.5rem auto;\n justify-items: end;\n align-items: end;\n column-gap: 0.5rem;\n\n font-size: var(--fs-500);\n font-weight: var(--fw-900);\n line-height: var(--lh-400);\n\n & > * {\n display: inline-flex;\n }\n\n &__Regular {\n text-align: right;\n\n &.sale {\n text-decoration: line-through;\n color: var(--neutral-grey-secondary);\n font-weight: var(--fw-400);\n font-size: var(--fs-400);\n grid-column: 2;\n grid-row: 1;\n }\n }\n\n &__Sale {\n grid-column: 2;\n grid-row: 2;\n }\n\n &__Discount {\n color: var(--status-danger-standard);\n font-weight: var(--fw-400);\n font-size: var(--fs-300);\n grid-column: 1;\n grid-row: 1;\n }\n\n &.is-mini {\n display: flex;\n font-size: var(--fs-400);\n }\n }\n\n .SelectVariations {\n display: flex;\n align-items: flex-end;\n\n select {\n appearance: none;\n background-color: transparent;\n border: 1px solid var(--neutral-grey-secondary);\n border-radius: 3px;\n color: var(--neutral-grey-secondary);\n font-size: var(--fs-300);\n padding: 0.5rem 0.75rem;\n max-width: 100%;\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236B7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E\");\n background-position: right 0.5rem center;\n background-repeat: no-repeat;\n background-size: 1.5em 1.5em;\n padding-right: 2.5rem;\n -webkit-print-color-adjust: exact;\n }\n }\n}\n\n.slide-in-bottom {\n animation: slide-in-bottom 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;\n}\n\n.slide-out-bottom {\n animation: slide-out-bottom 0.5s cubic-bezier(0.55, 0.085, 0.68, 0.53) both;\n}\n\n.fade-in-out {\n animation-name: fade-in-out;\n animation-duration: 6s;\n animation-timing-function: ease-in-out;\n}\n\n@keyframes fade-in-out {\n from {\n opacity: 0;\n transform: translateY(100px);\n }\n\n 50% {\n opacity: 1;\n transform: translateY(0);\n }\n\n to {\n opacity: 0;\n transform: translateY(100px);\n }\n}\n","import { Component, Host, h, Prop, Event, EventEmitter, Element, State, Listen, Method } from '@stencil/core';\n\ninterface Variation {\n code: string;\n imgUrl: string;\n label: string;\n taxonomy: string;\n // Add more keys as needed\n}\n\n@Component({\n tag: 'jump-card-ecommerce',\n styleUrl: 'jump-card-ecommerce.scss',\n shadow: true,\n})\nexport class JumpCardEcommerce {\n\n @Element() JumpCardEcommerce: HTMLElement;\n jumpQuantityEl;\n\n /* ---------------------- @PROPERTIES ------------------------- */\n\n /** Indicate if card has only icon button*/\n @Prop() onlyIconButton: boolean = false;\n\n /** Indicate if card has background*/\n @Prop() hasBackground: boolean = false;\n\n /** Indicates the badge of the card*/\n @Prop() badge: string;\n\n /** Indicates if the product is favorite */\n @Prop({ mutable: true, reflect: true }) favorite: boolean = false;\n\n /** Indicate if the whislist is active in shop*/\n @Prop() hasFavorite: boolean = false;\n\n /** Indicate if the whislist will be slotted*/\n @Prop() hasSlotForFavorite: boolean = false;\n\n /** Indicate if the add to cart btn will be slotted*/\n @Prop() hasSlotAddToCart: boolean = false;\n\n /** Indicates the link of the card*/\n @Prop() link: string;\n\n /** Indicates the image's src of the card*/\n @Prop() img: string;\n\n /** Indicates the img's alt of the card*/\n @Prop() imgAlt: string;\n\n /** Indicates the over image's src of the card*/\n @Prop() hoverImg: string;\n\n /** Indicates the hover img's alt of the card*/\n @Prop() hoverImgAlt: string;\n\n /** Indicates the videoSrc of the card*/\n @Prop() videoSrc: string;\n\n /** Indicates the notificationUrl of the card*/\n @Prop() notificationUrl: string;\n\n /** Indicates the notificationText of the card*/\n @Prop() notificationText: string = 'Aggiunto al carrello';\n\n /** Indicates the title of the card*/\n @Prop() productName: string;\n\n /** Indicates the subtitle of the card*/\n @Prop() subtitle: string;\n\n /** Indicates the ID of the product, can be also a SKU*/\n @Prop() productId: string;\n\n /** Indicates the price of the card */\n @Prop() price: number;\n\n /** Indicates the sale price of the card */\n @Prop() salePrice: number;\n\n /** Indicates the currency of the card */\n @Prop() currency: string = '€';\n\n /** Indicates the variant of the button */\n @Prop() addToCartColor: 'primary' | 'secondary'|'white'|'neutral' = 'secondary';\n\n /** Indicates the variant of the button */\n @Prop() badgeColor: 'primary' | 'secondary' | 'neutral' | 'warning' | 'success' | 'danger' = 'secondary';\n\n /** Indicates if the product is outOfStock */\n @Prop({ mutable: true, reflect: true }) outOfStock: boolean = false;\n\n /** Indicates the outOfStockText of the product*/\n @Prop() outOfStockText: string;\n\n /** Indicates the button class of the add to cart / notification button */\n @Prop() addToCartText: string = 'Aggiungi al carrello';\n\n /** Indicates the button class of the add to cart / notification button */\n @Prop() waitingListText: string = 'Notifica disponibilità';\n\n /** Indicate if the user request to be notified when te product is avaible*/\n @Prop() addToWaitingList: boolean = false;\n\n /** Indicate if the card is Mini Card*/\n @Prop() isMini: boolean = false;\n\n /* ---------------------- @STATE ------------------------- */\n\n /** Indicate if the product is added to cart --> non deve esserci nelle storie! */\n @Prop() addedToCart: boolean = false;\n\n @Prop() endAddedToCart: boolean = false;\n\n @State() variations: Variation[] = [];\n\n @State() selectedVariation: Variation;\n\n @State() priceFormatted: string;\n\n @State() salePriceFormatted: string;\n\n // è una proprietà che viene cambiata solo da dentro\n quantity: number;\n\n variationSelectEl: HTMLSelectElement;\n\n /* ---------------------- @EVENTS ------------------------- */\n\n @Event({ eventName: 'jump-toggle-favorite' }) toggleFavorite: EventEmitter;\n\n @Event({ eventName: 'jump-add-to-cart' }) productAddToCart: EventEmitter;\n\n @Event({ eventName: 'jump-add-to-waiting-list' }) productWaitingList: EventEmitter;\n\n @Event({ eventName: 'jump-variation-selected' }) variationSelected: EventEmitter; // verificare se corretto: aggiungo un evento\n\n /**\n * Set the price of the product\n * @param price\n * @param salePrice\n */\n @Method()\n async setPrice(price: number, salePrice: number) {\n let shouldFormat = false;\n if (price && price > 0) {\n shouldFormat = true;\n this.price = price;\n }\n\n if (salePrice && salePrice > 0) {\n this.salePrice = salePrice;\n }\n\n if (shouldFormat) {\n this.formatPrices();\n }\n }\n\n @Listen('jump-card-ecommerce-option-connected')\n addOption(e) {\n let props = e.detail; // es {code: 'sku1', imageUrl: 'https://google.com/'}\n this.variations = [...this.variations, { ...props }];\n }\n\n onVariationSelected() {\n let currentValue = this.variationSelectEl.value;\n let variation = this.variations.find(\n (variation) => variation.code == currentValue,\n );\n this.selectedVariation = variation;\n this.variationSelected.emit(variation); // verificare se corretto: emetto l'evento\n }\n\n /* ---------------------- @LIFECYCLE ------------------------- */\n\n componentWillLoad() {\n }\n\n componentDidLoad() {\n this.jumpQuantityEl = this.JumpCardEcommerce.querySelector('jump-quantity');\n\n if (this.jumpQuantityEl) {\n this.jumpQuantityEl.addEventListener('jump-change', this.onQuantityChange.bind(this));\n this.quantity = this.jumpQuantityEl.getValue().then((quantity) => {\n this.quantity = quantity;\n });\n }\n\n this.formatPrices();\n }\n\n disconnectedCallback() {\n this.jumpQuantityEl = this.JumpCardEcommerce.querySelector('jump-quantity');\n if (this.jumpQuantityEl) {\n this.jumpQuantityEl.removeEventListener('jump-change', this.onQuantityChange);\n }\n }\n\n /* ---------------------- @METHODS ------------------------- */\n onQuantityChange(e) {\n this.quantity = e.detail.value ?? false;\n }\n\n onToggleFavorite() {\n this.favorite = !this.favorite;\n this.toggleFavorite.emit(\n {\n productId: this.productId,\n favorite: this.favorite,\n },\n );\n }\n\n addProductToCart() {\n this.addedToCart = true;\n let variations = this.selectedVariation;\n if (!variations && this.variations.length > 0) {\n variations = this.variations[0];\n }\n\n const payload = {\n productId: this.productId,\n addedToCart: this.addedToCart,\n quantity: this.quantity ?? null,\n variation: variations ?? null,\n };\n this.productAddToCart.emit(payload);\n\n setTimeout(() => {\n this.addedToCart = false;\n }, 6000);\n }\n\n waitingList() {\n this.addToWaitingList = true;\n this.productWaitingList.emit(\n {\n productId: this.productId,\n addToWaitingList: this.addToWaitingList,\n },\n );\n }\n\n formatPrices() {\n let locale = document.documentElement.lang ?? 'it-IT';\n if (locale.length == 2) {\n locale = `${locale}-${locale.toUpperCase()}`;\n }\n\n // Format price with 2 decimal digits and in locale\n this.priceFormatted = this.price.toLocaleString(locale, { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n this.salePriceFormatted = this.salePrice.toLocaleString(locale, {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n });\n }\n\n render() {\n const backgroundClass = this.hasBackground && !this.isMini ? 'hasBackground' : '';\n const iconOnlyClass = this.onlyIconButton && !this.isMini ? 'iconOnly' : '';\n const justifyClass = this.outOfStock ? 'justify-between' : '';\n const hasImageOnHover = this.hoverImg ? 'has-hover-image' : '';\n const miniCard = this.isMini ? 'is-mini' : '';\n\n function calculateDiscount(price: number, salePrice: number): string {\n const discount = ((price - salePrice) / price) * 100;\n return discount.toFixed(0);\n };\n\n return (\n <Host>\n {!this.isMini && this.badge ?\n <jump-badge class={`${backgroundClass} ${iconOnlyClass}`} variant={this.badgeColor} dimension=\"small\"\n label={this.badge}></jump-badge> : ''}\n\n {!this.isMini && this.hasFavorite ?\n <jump-button onClick={() => this.onToggleFavorite()} class={`Favorite ${backgroundClass} ${iconOnlyClass}`}\n variant={this.favorite ? 'primary' : 'neutral'} size=\"small\" text onlyIcon>\n <jump-icon slot=\"prefix\" name=\"heart\" category={this.favorite ? 'solid' : 'light'}\n size=\"medium\"></jump-icon>\n </jump-button>\n :\n this.hasSlotForFavorite ? <div class=\"Favorite\">\n <slot name=\"favorite\"></slot>\n </div> : null\n }\n\n <div class={`Media ${iconOnlyClass} ${backgroundClass} ${miniCard}`}>\n <a href={this.link}>\n <figure class={`Images ${hasImageOnHover} `}>\n {this.img && !this.videoSrc ? <img class=\"Images__Front\" src={this.img} alt={this.imgAlt}></img> : ''}\n {this.hoverImg && !this.videoSrc ?\n <img class=\"Images__OnHover\" src={this.hoverImg} alt={this.hoverImgAlt}></img> : ''}\n </figure>\n {this.videoSrc && !this.img ?\n <video autoplay>\n <source src={this.videoSrc} type=\"video/mp4\" />\n <source src={this.videoSrc} type=\"video/mov\" />\n <source src={this.videoSrc} type=\"video/webm\" />\n </video> : ''}\n </a>\n {!this.isMini ?\n <div class={`NotificationCart ${this.addedToCart == true ? 'is-active fade-in-out' : ''}`}>\n <jump-button href={this.notificationUrl} variant=\"white\" text>\n <jump-icon slot=\"prefix\" name=\"check\"></jump-icon>\n <span> {this.notificationText} </span>\n </jump-button>\n </div>\n : null\n }\n\n {!this.isMini && this.onlyIconButton && !this.hasSlotAddToCart ?\n <div class=\"OnlyIconButton\">\n <jump-button variant=\"secondary\" size=\"large\" pill onlyIcon onClick={() => this.addProductToCart()}>\n <jump-icon slot=\"prefix\" name=\"cart-shopping\" category=\"regular\"></jump-icon>\n </jump-button>\n </div>\n : ''\n }\n\n {!this.isMini && this.onlyIconButton && this.hasSlotAddToCart ?\n <div class=\"OnlyIconButton\">\n <slot name=\"add-to-cart\"></slot>\n </div>\n : ''\n }\n </div>\n\n <div class={`Content ${backgroundClass} ${iconOnlyClass} ${miniCard}`}>\n <div class={`Body ${backgroundClass} ${iconOnlyClass} ${miniCard}`}>\n <div>\n <div class=\"Info\">\n <a href={this.link} class=\"Product\">{this.productName}</a>\n {this.subtitle ? <div class=\"Subtitle\">{this.subtitle}</div> : null}\n </div>\n\n {this.price ?\n <div class={`Price ${miniCard}`}>\n {!this.isMini && this.salePrice && this.salePrice < this.price ?\n <div class=\"Price__Discount\"> {calculateDiscount(this.price, this.salePrice)}% </div>\n : null}\n\n {!this.isMini ?\n <div class={`Price__Regular ${this.salePrice && this.salePrice < this.price ? 'sale' : ''}`}>\n {this.currency}{this.priceFormatted}\n </div>\n :\n <div class={`Price__Regular`}>\n {this.currency}{this.salePrice && this.salePrice < this.price ? this.salePriceFormatted : this.priceFormatted}\n </div>\n }\n\n {!this.isMini && this.salePrice && this.salePrice < this.price ?\n <div class=\"Price__Sale\">{this.currency}{this.salePriceFormatted}</div>\n : null}\n </div>\n : null}\n </div>\n\n {!this.isMini || this.variations.length != 0 ?\n <div>\n {this.variations.length != 0 ?\n <div class=\"SelectVariations\">\n <select\n ref={(el) => (this.variationSelectEl = el)} //salvo questo elemento in this.variationSelectEl\n onChange={() => {\n this.onVariationSelected();\n }}\n >\n {this.variations\n .filter((variation) => !variation.imgUrl)\n .map((variation) => (\n <option value={variation.code}>{variation.label}</option>\n ))}\n </select>\n </div>\n : null}\n <slot name=\"quantity\"></slot>\n </div>\n : null}\n </div>\n\n <div class={`Footer ${justifyClass} ${backgroundClass} ${iconOnlyClass} ${miniCard}`}>\n\n {this.outOfStock && !this.isMini?\n <div class=\"OutOfStock\">{this.outOfStockText ? this.outOfStockText : 'Esaurito'}</div> : ''}\n\n {this.outOfStock ?\n <jump-button class=\"Footer__AddToCart\" variant={this.addToCartColor} size=\"small\" text onClick={() => this.waitingList()}>\n <jump-icon slot=\"prefix\" name=\"bell\" category=\"regular\" size=\"small\"></jump-icon>\n {this.waitingListText}\n </jump-button> : ''\n }\n\n {!this.outOfStock && !this.onlyIconButton && !this.hasSlotAddToCart ?\n <jump-button class=\"Footer__AddToCart\" variant={this.addToCartColor} size=\"small\" text onClick={() => this.addProductToCart()}>\n <jump-icon slot=\"prefix\" name=\"cart-shopping\" category=\"regular\" size=\"small\"></jump-icon>\n {this.addToCartText}\n </jump-button> : ''\n }\n\n {!this.outOfStock && !this.onlyIconButton && this.hasSlotAddToCart ?\n <slot name=\"add-to-cart\"></slot>\n : null\n }\n </div>\n </div>\n </Host>\n );\n }\n\n}\n"],"version":3}
1
+ {"file":"jump-card-ecommerce.entry.js","mappings":"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","names":[],"sources":["src/components/jump-card-ecommerce/jump-card-ecommerce.scss?tag=jump-card-ecommerce&encapsulation=shadow","src/components/jump-card-ecommerce/jump-card-ecommerce.tsx"],"sourcesContent":[":host {\n --card-max-width: 450px;\n --jump-card-max-width-horizontal: 100%;\n --jump-card-color: var(--neutral-grey-primary);\n --jump-card-background: transparent;\n --jump-card-border-color: var(--neutral-grey-background);\n --jump-card-padding: 0.5rem;\n\n max-width: var(--card-max-width);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n position: relative;\n width: 100%;\n font-family: var(--ff-primary, 'Arial'), sans-serif;\n line-height: var(--lh-400, 1.3);\n background-color: var(--jump-card-background);\n color: var(--jump-card-color);\n\n .Footer,\n .Body {\n display: flex;\n width: 100%;\n }\n\n jump-badge {\n position: absolute;\n top: 1rem;\n left: 1rem;\n z-index: 2;\n\n &.hasBackground.iconOnly {\n top: calc(1rem + 8px);\n left: calc(1rem + 8px);\n }\n }\n\n .Favorite {\n position: absolute;\n top: 1rem;\n right: 1rem;\n z-index: 2;\n\n &.hasBackground.iconOnly {\n top: calc(1rem + 8px);\n right: calc(1rem + 8px);\n }\n }\n\n .Media {\n // aspect-ratio: 3/4;\n overflow: hidden;\n position: relative;\n border-radius: 3px;\n aspect-ratio: 1/1;\n\n .Images {\n height: 100%;\n margin: 0;\n position: relative;\n\n img {\n height: 100%;\n width: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n overflow: hidden;\n }\n\n &__Front {\n z-index: 1;\n transition: opacity 0.5s linear;\n cursor: pointer;\n }\n\n &.has-hover-image {\n &:hover .Images__Front {\n opacity: 0;\n }\n }\n }\n\n &.hasBackground {\n background-color: var(--neutral-white);\n\n &.iconOnly {\n border-top-left-radius: 6px;\n border-top-right-radius: 6px;\n padding: var(--jump-card-padding) var(--jump-card-padding) 0;\n\n img {\n border-radius: 6px;\n }\n }\n }\n\n &.iconOnly {\n border-bottom-right-radius: 0;\n }\n\n &.is-mini {\n max-width: 180px;\n }\n }\n\n .NotificationCart {\n display: none;\n position: absolute;\n bottom: 0px;\n width: 100%;\n padding: 2rem 1rem;\n background-color: hsl(0 0% 0% / 35%);\n box-sizing: border-box;\n z-index: 2;\n transform: translate3d(0, 0, 0);\n\n &.is-active {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n }\n\n .Content {\n &.hasBackground {\n background-color: var(--neutral-white);\n padding: calc(var(--jump-card-padding) * 2);\n }\n\n &.iconOnly {\n padding: calc(var(--jump-card-padding) * 2) var(--jump-card-padding);\n }\n\n &.is-mini {\n max-width: 180px;\n }\n }\n\n .Body {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n padding: var(--jump-card-padding) 0;\n\n & > * {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n\n & > * {\n flex: 0 1 auto;\n }\n }\n\n &.hasBackground {\n padding: 0 0 var(--jump-card-padding);\n }\n\n &.iconOnly {\n padding: 0;\n }\n\n &.is-mini {\n & > * {\n flex-direction: column;\n }\n\n padding: calc(var(--jump-card-padding) / 2) 0;\n }\n }\n\n .Product {\n font-size: var(--fs-400);\n color: var(--neutral-grey-primary);\n text-decoration: none;\n }\n\n .Subtitle {\n font-size: var(--fs-300);\n color: var(--neutral-grey-secondary);\n line-height: 1.2;\n }\n\n .Footer {\n line-height: var(--lh-400);\n justify-content: end;\n padding: var(--jump-card-padding) 0;\n align-items: flex-end;\n\n &.justify-between {\n justify-content: space-between;\n }\n\n &.hasBackground {\n padding-bottom: 0;\n }\n\n &.iconOnly {\n padding: 0;\n }\n\n &.is-mini {\n padding: calc(var(--jump-card-padding) / 2) 0;\n }\n\n &__AddToCart {\n --jump-button-color: var(--jump-card-ecommerce-add-to-cart-color);\n --jump-button-background: var(--jump-card-ecommerce-add-to-cart-background);\n --jump-button-color-hover: var(--jump-card-ecommerce-add-to-cart-color-hover);\n --jump-button-background-hover: var(--jump-card-ecommerce-add-to-cart-background-hover);\n }\n }\n\n .OutOfStock {\n justify-items: start;\n font-size: var(--fs-300);\n font-weight: var(--fw-900);\n color: var(--status-danger-standard);\n }\n\n .OnlyIconButton {\n position: absolute;\n bottom: 0;\n right: 0;\n background: var(--neutral-white);\n border-top-left-radius: 20px;\n padding: 8px 8px 0px 8px;\n z-index: 2;\n }\n\n .Price {\n position: relative;\n display: grid;\n grid-template-columns: auto auto;\n grid-template-rows: 1.5rem 1.5rem auto;\n justify-items: end;\n align-items: end;\n column-gap: 0.5rem;\n\n font-size: var(--fs-500);\n font-weight: var(--fw-900);\n line-height: var(--lh-400);\n\n & > * {\n display: inline-flex;\n }\n\n &__Regular {\n text-align: right;\n\n &.sale {\n text-decoration: line-through;\n color: var(--neutral-grey-secondary);\n font-weight: var(--fw-400);\n font-size: var(--fs-400);\n grid-column: 2;\n grid-row: 1;\n }\n }\n\n &__Sale {\n grid-column: 2;\n grid-row: 2;\n }\n\n &__Discount {\n color: var(--status-danger-standard);\n font-weight: var(--fw-400);\n font-size: var(--fs-300);\n grid-column: 1;\n grid-row: 1;\n }\n\n &.is-mini {\n display: flex;\n font-size: var(--fs-400);\n }\n }\n\n .SelectVariations {\n display: flex;\n align-items: flex-end;\n max-width: calc(50% - 1rem);\n\n select {\n appearance: none;\n background-color: transparent;\n border: 1px solid var(--neutral-grey-secondary);\n border-radius: 3px;\n color: var(--neutral-grey-secondary);\n font-size: var(--fs-300);\n padding: 0.5rem 0.75rem;\n max-width: 100%;\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236B7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E\");\n background-position: right 0.5rem center;\n background-repeat: no-repeat;\n background-size: 1.5em 1.5em;\n padding-right: 2.5rem;\n -webkit-print-color-adjust: exact;\n }\n }\n}\n\n.slide-in-bottom {\n animation: slide-in-bottom 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;\n}\n\n.slide-out-bottom {\n animation: slide-out-bottom 0.5s cubic-bezier(0.55, 0.085, 0.68, 0.53) both;\n}\n\n.fade-in-out {\n animation-name: fade-in-out;\n animation-duration: 6s;\n animation-timing-function: ease-in-out;\n}\n\n@keyframes fade-in-out {\n from {\n opacity: 0;\n transform: translateY(100px);\n }\n\n 50% {\n opacity: 1;\n transform: translateY(0);\n }\n\n to {\n opacity: 0;\n transform: translateY(100px);\n }\n}\n","import { Component, Host, h, Prop, Event, EventEmitter, Element, State, Listen, Method } from '@stencil/core';\n\ninterface Variation {\n code: string;\n imgUrl: string;\n label: string;\n taxonomy: string;\n // Add more keys as needed\n}\n\n@Component({\n tag: 'jump-card-ecommerce',\n styleUrl: 'jump-card-ecommerce.scss',\n shadow: true,\n})\nexport class JumpCardEcommerce {\n\n @Element() JumpCardEcommerce: HTMLElement;\n jumpQuantityEl;\n\n /* ---------------------- @PROPERTIES ------------------------- */\n\n /** Indicate if card has only icon button*/\n @Prop() onlyIconButton: boolean = false;\n\n /** Indicate if card has background*/\n @Prop() hasBackground: boolean = false;\n\n /** Indicates the badge of the card*/\n @Prop() badge: string;\n\n /** Indicates if the product is favorite */\n @Prop({ mutable: true, reflect: true }) favorite: boolean = false;\n\n /** Indicate if the whislist is active in shop*/\n @Prop() hasFavorite: boolean = false;\n\n /** Indicate if the whislist will be slotted*/\n @Prop() hasSlotForFavorite: boolean = false;\n\n /** Indicate if the add to cart btn will be slotted*/\n @Prop() hasSlotAddToCart: boolean = false;\n\n /** Indicates the link of the card*/\n @Prop() link: string;\n\n /** Indicates the image's src of the card*/\n @Prop() img: string;\n\n /** Indicates the img's alt of the card*/\n @Prop() imgAlt: string;\n\n /** Indicates the over image's src of the card*/\n @Prop() hoverImg: string;\n\n /** Indicates the hover img's alt of the card*/\n @Prop() hoverImgAlt: string;\n\n /** Indicates the videoSrc of the card*/\n @Prop() videoSrc: string;\n\n /** Indicates the notificationUrl of the card*/\n @Prop() notificationUrl: string;\n\n /** Indicates the notificationText of the card*/\n @Prop() notificationText: string = 'Aggiunto al carrello';\n\n /** Indicates the title of the card*/\n @Prop() productName: string;\n\n /** Indicates the subtitle of the card*/\n @Prop() subtitle: string;\n\n /** Indicates the ID of the product, can be also a SKU*/\n @Prop() productId: string;\n\n /** Indicates the price of the card */\n @Prop() price: number;\n\n /** Indicates the sale price of the card */\n @Prop() salePrice: number;\n\n /** Indicates the currency of the card */\n @Prop() currency: string = '€';\n\n /** Indicates the variant of the button */\n @Prop() addToCartColor: 'primary' | 'secondary'|'white'|'neutral' = 'secondary';\n\n /** Indicates the variant of the button */\n @Prop() badgeColor: 'primary' | 'secondary' | 'neutral' | 'warning' | 'success' | 'danger' = 'secondary';\n\n /** Indicates if the product is outOfStock */\n @Prop({ mutable: true, reflect: true }) outOfStock: boolean = false;\n\n /** Indicates the outOfStockText of the product*/\n @Prop() outOfStockText: string;\n\n /** Indicates the button class of the add to cart / notification button */\n @Prop() addToCartText: string = 'Aggiungi al carrello';\n\n /** Indicates the button class of the add to cart / notification button */\n @Prop() waitingListText: string = 'Notifica disponibilità';\n\n /** Indicate if the user request to be notified when te product is avaible*/\n @Prop() addToWaitingList: boolean = false;\n\n /** Indicate if the card is Mini Card*/\n @Prop() isMini: boolean = false;\n\n /* ---------------------- @STATE ------------------------- */\n\n /** Indicate if the product is added to cart --> non deve esserci nelle storie! */\n @Prop() addedToCart: boolean = false;\n\n @Prop() endAddedToCart: boolean = false;\n\n @State() variations: Variation[] = [];\n\n @State() selectedVariation: Variation;\n\n @State() priceFormatted: string;\n\n @State() salePriceFormatted: string;\n\n // è una proprietà che viene cambiata solo da dentro\n quantity: number;\n\n variationSelectEl: HTMLSelectElement;\n\n /* ---------------------- @EVENTS ------------------------- */\n\n @Event({ eventName: 'jump-toggle-favorite' }) toggleFavorite: EventEmitter;\n\n @Event({ eventName: 'jump-add-to-cart' }) productAddToCart: EventEmitter;\n\n @Event({ eventName: 'jump-add-to-waiting-list' }) productWaitingList: EventEmitter;\n\n @Event({ eventName: 'jump-variation-selected' }) variationSelected: EventEmitter; // verificare se corretto: aggiungo un evento\n\n /**\n * Set the price of the product\n * @param price\n * @param salePrice\n */\n @Method()\n async setPrice(price: number, salePrice: number) {\n let shouldFormat = false;\n if (price && price > 0) {\n shouldFormat = true;\n this.price = price;\n }\n\n if (salePrice && salePrice > 0) {\n this.salePrice = salePrice;\n }\n\n if (shouldFormat) {\n this.formatPrices();\n }\n }\n\n @Listen('jump-card-ecommerce-option-connected')\n addOption(e) {\n let props = e.detail; // es {code: 'sku1', imageUrl: 'https://google.com/'}\n this.variations = [...this.variations, { ...props }];\n }\n\n onVariationSelected() {\n let currentValue = this.variationSelectEl.value;\n let variation = this.variations.find(\n (variation) => variation.code == currentValue,\n );\n this.selectedVariation = variation;\n this.variationSelected.emit(variation); // verificare se corretto: emetto l'evento\n }\n\n /* ---------------------- @LIFECYCLE ------------------------- */\n\n componentWillLoad() {\n }\n\n componentDidLoad() {\n this.jumpQuantityEl = this.JumpCardEcommerce.querySelector('jump-quantity');\n\n if (this.jumpQuantityEl) {\n this.jumpQuantityEl.addEventListener('jump-change', this.onQuantityChange.bind(this));\n this.quantity = this.jumpQuantityEl.getValue().then((quantity) => {\n this.quantity = quantity;\n });\n }\n\n this.formatPrices();\n }\n\n disconnectedCallback() {\n this.jumpQuantityEl = this.JumpCardEcommerce.querySelector('jump-quantity');\n if (this.jumpQuantityEl) {\n this.jumpQuantityEl.removeEventListener('jump-change', this.onQuantityChange);\n }\n }\n\n /* ---------------------- @METHODS ------------------------- */\n onQuantityChange(e) {\n this.quantity = e.detail.value ?? false;\n }\n\n onToggleFavorite() {\n this.favorite = !this.favorite;\n this.toggleFavorite.emit(\n {\n productId: this.productId,\n favorite: this.favorite,\n },\n );\n }\n\n addProductToCart() {\n this.addedToCart = true;\n let variations = this.selectedVariation;\n if (!variations && this.variations.length > 0) {\n variations = this.variations[0];\n }\n\n const payload = {\n productId: this.productId,\n addedToCart: this.addedToCart,\n quantity: this.quantity ?? null,\n variation: variations ?? null,\n };\n this.productAddToCart.emit(payload);\n\n setTimeout(() => {\n this.addedToCart = false;\n }, 6000);\n }\n\n waitingList() {\n this.addToWaitingList = true;\n this.productWaitingList.emit(\n {\n productId: this.productId,\n addToWaitingList: this.addToWaitingList,\n },\n );\n }\n\n formatPrices() {\n let locale = document.documentElement.lang ?? 'it-IT';\n if (locale.length == 2) {\n locale = `${locale}-${locale.toUpperCase()}`;\n }\n\n // Format price with 2 decimal digits and in locale\n this.priceFormatted = this.price.toLocaleString(locale, { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n this.salePriceFormatted = this.salePrice.toLocaleString(locale, {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n });\n }\n\n render() {\n const backgroundClass = this.hasBackground && !this.isMini ? 'hasBackground' : '';\n const iconOnlyClass = this.onlyIconButton && !this.isMini ? 'iconOnly' : '';\n const justifyClass = this.outOfStock ? 'justify-between' : '';\n const hasImageOnHover = this.hoverImg ? 'has-hover-image' : '';\n const miniCard = this.isMini ? 'is-mini' : '';\n\n function calculateDiscount(price: number, salePrice: number): string {\n const discount = ((price - salePrice) / price) * 100;\n return discount.toFixed(0);\n };\n\n return (\n <Host>\n {!this.isMini && this.badge ?\n <jump-badge class={`${backgroundClass} ${iconOnlyClass}`} variant={this.badgeColor} dimension=\"small\"\n label={this.badge}></jump-badge> : ''}\n\n {!this.isMini && this.hasFavorite ?\n <jump-button onClick={() => this.onToggleFavorite()} class={`Favorite ${backgroundClass} ${iconOnlyClass}`}\n variant={this.favorite ? 'primary' : 'neutral'} size=\"small\" text onlyIcon>\n <jump-icon slot=\"prefix\" name=\"heart\" category={this.favorite ? 'solid' : 'light'}\n size=\"medium\"></jump-icon>\n </jump-button>\n :\n this.hasSlotForFavorite ? <div class=\"Favorite\">\n <slot name=\"favorite\"></slot>\n </div> : null\n }\n\n <div class={`Media ${iconOnlyClass} ${backgroundClass} ${miniCard}`}>\n <a href={this.link}>\n <figure class={`Images ${hasImageOnHover} `}>\n {this.img && !this.videoSrc ? <img class=\"Images__Front\" src={this.img} alt={this.imgAlt}></img> : ''}\n {this.hoverImg && !this.videoSrc ?\n <img class=\"Images__OnHover\" src={this.hoverImg} alt={this.hoverImgAlt}></img> : ''}\n </figure>\n {this.videoSrc && !this.img ?\n <video autoplay>\n <source src={this.videoSrc} type=\"video/mp4\" />\n <source src={this.videoSrc} type=\"video/mov\" />\n <source src={this.videoSrc} type=\"video/webm\" />\n </video> : ''}\n </a>\n {!this.isMini ?\n <div class={`NotificationCart ${this.addedToCart == true ? 'is-active fade-in-out' : ''}`}>\n <jump-button href={this.notificationUrl} variant=\"white\" text>\n <jump-icon slot=\"prefix\" name=\"check\"></jump-icon>\n <span> {this.notificationText} </span>\n </jump-button>\n </div>\n : null\n }\n\n {!this.isMini && this.onlyIconButton && !this.hasSlotAddToCart ?\n <div class=\"OnlyIconButton\">\n <jump-button variant=\"secondary\" size=\"large\" pill onlyIcon onClick={() => this.addProductToCart()}>\n <jump-icon slot=\"prefix\" name=\"cart-shopping\" category=\"regular\"></jump-icon>\n </jump-button>\n </div>\n : ''\n }\n\n {!this.isMini && this.onlyIconButton && this.hasSlotAddToCart ?\n <div class=\"OnlyIconButton\">\n <slot name=\"add-to-cart\"></slot>\n </div>\n : ''\n }\n </div>\n\n <div class={`Content ${backgroundClass} ${iconOnlyClass} ${miniCard}`}>\n <div class={`Body ${backgroundClass} ${iconOnlyClass} ${miniCard}`}>\n <div>\n <div class=\"Info\">\n <a href={this.link} class=\"Product\">{this.productName}</a>\n {this.subtitle ? <div class=\"Subtitle\">{this.subtitle}</div> : null}\n </div>\n\n {this.price ?\n <div class={`Price ${miniCard}`}>\n {!this.isMini && this.salePrice && this.salePrice < this.price ?\n <div class=\"Price__Discount\"> {calculateDiscount(this.price, this.salePrice)}% </div>\n : null}\n\n {!this.isMini ?\n <div class={`Price__Regular ${this.salePrice && this.salePrice < this.price ? 'sale' : ''}`}>\n {this.currency}{this.priceFormatted}\n </div>\n :\n <div class={`Price__Regular`}>\n {this.currency}{this.salePrice && this.salePrice < this.price ? this.salePriceFormatted : this.priceFormatted}\n </div>\n }\n\n {!this.isMini && this.salePrice && this.salePrice < this.price ?\n <div class=\"Price__Sale\">{this.currency}{this.salePriceFormatted}</div>\n : null}\n </div>\n : null}\n </div>\n\n {!this.isMini || this.variations.length != 0 ?\n <div>\n {this.variations.length != 0 ?\n <div class=\"SelectVariations\">\n <select\n ref={(el) => (this.variationSelectEl = el)} //salvo questo elemento in this.variationSelectEl\n onChange={() => {\n this.onVariationSelected();\n }}\n >\n {this.variations\n .filter((variation) => !variation.imgUrl)\n .map((variation) => (\n <option value={variation.code}>{variation.label}</option>\n ))}\n </select>\n </div>\n : null}\n <slot name=\"quantity\"></slot>\n </div>\n : null}\n </div>\n\n <div class={`Footer ${justifyClass} ${backgroundClass} ${iconOnlyClass} ${miniCard}`}>\n\n {this.outOfStock && !this.isMini?\n <div class=\"OutOfStock\">{this.outOfStockText ? this.outOfStockText : 'Esaurito'}</div> : ''}\n\n {this.outOfStock ?\n <jump-button class=\"Footer__AddToCart\" variant={this.addToCartColor} size=\"small\" text onClick={() => this.waitingList()}>\n <jump-icon slot=\"prefix\" name=\"bell\" category=\"regular\" size=\"small\"></jump-icon>\n {this.waitingListText}\n </jump-button> : ''\n }\n\n {!this.outOfStock && !this.onlyIconButton && !this.hasSlotAddToCart ?\n <jump-button class=\"Footer__AddToCart\" variant={this.addToCartColor} size=\"small\" text onClick={() => this.addProductToCart()}>\n <jump-icon slot=\"prefix\" name=\"cart-shopping\" category=\"regular\" size=\"small\"></jump-icon>\n {this.addToCartText}\n </jump-button> : ''\n }\n\n {!this.outOfStock && !this.onlyIconButton && this.hasSlotAddToCart ?\n <slot name=\"add-to-cart\"></slot>\n : null\n }\n </div>\n </div>\n </Host>\n );\n }\n\n}\n"],"version":3}
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h, H as Host } from './index-7eb565cd.js';
1
+ import { r as registerInstance, h, H as Host } from './index-4363ffe4.js';
2
2
 
3
3
  const jumpCardCss = "jump-card{display:flex;flex-direction:column;position:relative;--jump-card-max-width-horizontal:100%;--jump-card-color:var(--neutral-grey-primary);--jump-card-background:var(--neutral-white);--jump-card-color-dark:var(--neutral-white);--jump-card-border-color:var(--neutral-grey-background);--jump-card-border-radius:6px;--jump-card-border-top-radius:1rem;--jump-card-top-border-body-radius:1.5rem 1rem;--jump-card-padding:1rem 1.25rem;font-family:var(--ff-primary, \"Arial\"), sans-serif;line-height:var(--lh-400, 1.3);background-color:var(--jump-card-background);color:var(--jump-card-color);overflow:hidden}jump-card img,jump-card video{aspect-ratio:4/3;overflow:hidden;position:relative;object-fit:cover}jump-card .Content{padding:1.5rem 1rem;display:flex;flex-direction:column;gap:0.75rem;flex:1;background-color:var(--jump-card-background)}jump-card[dark]{background-color:var(--neutral-grey-primary);color:var(--jump-card-color-dark)}jump-card[dark] .Content{background-color:var(--neutral-grey-primary);color:var(--jump-card-color-dark)}jump-card[border]{border:1px solid var(--jump-card-border-color)}jump-card[border-radius]{border-radius:var(--jump-card-border-radius)}jump-card[top-border-content-radius]{border-radius:var(--jump-card-border-top-radius)}jump-card[top-border-content-radius] .Content{border-top-left-radius:var(--jump-card-border-top-radius);border-top-right-radius:var(--jump-card-border-top-radius);margin-top:-1rem;z-index:2}jump-card[boxed]{border-radius:var(--jump-card-border-radius)}jump-card[boxed] img,jump-card[boxed] video{border-radius:var(--jump-card-border-radius);background-color:var(--jump-card-background);margin:0.5rem 0.5rem 0}jump-card[horizontal]{flex-direction:row;gap:0.5rem;align-items:center;max-width:var(--jump-card-max-width-horizontal)}jump-card[rounded-media]{align-items:center;justify-content:center;text-align:center;background-color:transparent}jump-card[rounded-media] img,jump-card[rounded-media] video{background-color:transparent;border-radius:50%;aspect-ratio:1;width:100%;flex:0 1 40%}jump-card[rounded-media] .Content{background-color:transparent;align-items:center}jump-card[rounded-media][horizontal]{text-align:left}jump-card[rounded-media][horizontal] .Content{align-items:flex-start}jump-card[shadow]{box-shadow:0px 2px 25px 0px hsla(0, 0%, 0%, 0.1)}";
4
4
  const JumpCardStyle0 = jumpCardCss;
@@ -1,5 +1,5 @@
1
- import { p as promiseResolve, b as bootstrapLazy } from './index-7eb565cd.js';
2
- export { s as setNonce } from './index-7eb565cd.js';
1
+ import { p as promiseResolve, b as bootstrapLazy } from './index-4363ffe4.js';
2
+ export { s as setNonce } from './index-4363ffe4.js';
3
3
  import { g as globalScripts } from './app-globals-0f993ce5.js';
4
4
 
5
5
  /*
@@ -16,7 +16,7 @@ var patchBrowser = () => {
16
16
 
17
17
  patchBrowser().then(async (options) => {
18
18
  await globalScripts();
19
- return bootstrapLazy([["jump-button_2",[[1,"jump-button",{"disabled":[4],"variant":[1],"outline":[4],"size":[1],"full":[4],"pill":[4],"text":[4],"onlyIcon":[4,"only-icon"],"href":[1],"target":[1],"type":[1],"name":[1],"value":[1],"ariaLabel":[1,"aria-label"],"class":[1],"buttonId":[1,"button-id"]}],[1,"jump-icon",{"class":[1],"library":[1],"name":[1],"category":[1],"size":[1],"label":[1],"src":[1]}]]],["jump-card-ecommerce",[[1,"jump-card-ecommerce",{"onlyIconButton":[4,"only-icon-button"],"hasBackground":[4,"has-background"],"badge":[1],"favorite":[1540],"hasFavorite":[4,"has-favorite"],"hasSlotForFavorite":[4,"has-slot-for-favorite"],"hasSlotAddToCart":[4,"has-slot-add-to-cart"],"link":[1],"img":[1],"imgAlt":[1,"img-alt"],"hoverImg":[1,"hover-img"],"hoverImgAlt":[1,"hover-img-alt"],"videoSrc":[1,"video-src"],"notificationUrl":[1,"notification-url"],"notificationText":[1,"notification-text"],"productName":[1,"product-name"],"subtitle":[1],"productId":[1,"product-id"],"price":[2],"salePrice":[2,"sale-price"],"currency":[1],"addToCartColor":[1,"add-to-cart-color"],"badgeColor":[1,"badge-color"],"outOfStock":[1540,"out-of-stock"],"outOfStockText":[1,"out-of-stock-text"],"addToCartText":[1,"add-to-cart-text"],"waitingListText":[1,"waiting-list-text"],"addToWaitingList":[4,"add-to-waiting-list"],"isMini":[4,"is-mini"],"addedToCart":[4,"added-to-cart"],"endAddedToCart":[4,"end-added-to-cart"],"variations":[32],"selectedVariation":[32],"priceFormatted":[32],"salePriceFormatted":[32],"setPrice":[64]},[[0,"jump-card-ecommerce-option-connected","addOption"]]]]],["jump-filter",[[1,"jump-filter",{"direction":[1],"filterHeading":[1,"filter-heading"],"filterButtonLabel":[1,"filter-button-label"],"filterButtonIcon":[1,"filter-button-icon"],"mobileThreshold":[2,"mobile-threshold"],"filters":[8],"showCount":[4,"show-count"],"offCanvasOverlay":[4,"off-canvas-overlay"],"activeFilters":[32],"showMobileFilters":[32],"isMobile":[32],"offCanvasClasses":[32],"getFilters":[64]},[[0,"jump-filterchange","filterChangeHandler"],[9,"resize","handleResize"]],{"showMobileFilters":["watchHandler"]}]]],["jump-filtergroup",[[1,"jump-filtergroup",{"name":[1],"heading":[1],"otherLabel":[1,"other-label"],"lessLabel":[1,"less-label"],"maxElements":[2,"max-elements"],"variant":[1],"label":[32],"values":[32],"value":[32],"slotItems":[32],"inputs":[32],"showMore":[32],"getValues":[64],"getActiveAmount":[64],"getInputs":[64],"getName":[64]},null,{"showMore":["watchShowMore"]}]]],["jump-navbar",[[1,"jump-navbar",{"logo":[16],"navItems":[16],"secondaryNavItems":[16],"mobileThreshold":[2,"mobile-threshold"],"type":[1],"navPosition":[1,"nav-position"],"megaMenuAlignment":[1,"mega-menu-alignment"],"sticky":[4],"stickyThreshold":[2,"sticky-threshold"],"mobileLogo":[16],"user":[16],"isMobile":[32]},[[9,"resize","handleResize"]]]]],["jump-pagination",[[1,"jump-pagination",{"pagLabel":[1,"pag-label"],"last":[2],"showFirstAndLast":[4,"show-first-and-last"],"current":[32]},null,{"current":["watchcurrent"]}]]],["jump-pagination-table",[[0,"jump-pagination-table",{"elementsRanges":[1,"elements-ranges"],"elPerPage":[2,"el-per-page"],"pagLabel":[513,"pag-label"],"labelElementsPerPage":[513,"label-elements-per-page"],"total":[514],"first":[514],"last":[514],"showFirstAndLast":[516,"show-first-and-last"],"elementsRangesArray":[32]},null,{"elementsRanges":["elementsRangesChanged"],"elPerPage":["elPerPageChanged"]}]]],["jump-quantity",[[65,"jump-quantity",{"min":[2],"max":[2],"step":[2],"label":[1],"type":[1],"variant":[1],"showButtons":[4,"show-buttons"],"value":[2],"internalValue":[32],"getValue":[64],"setMax":[64],"reset":[64]},null,{"value":["onValueChange"]}]]],["jump-search-bar",[[1,"jump-search-bar",{"placeholder":[1],"noResultText":[1,"no-result-text"],"loadingText":[1,"loading-text"],"resultsText":[1,"results-text"],"showAllResText":[1,"show-all-res-text"],"identifier":[1],"debounceTime":[2,"debounce-time"],"variant":[1],"withBtn":[4,"with-btn"],"recentsTitle":[1,"recents-title"],"recents":[16],"results":[16],"dropdown":[4],"linearIconOnly":[4,"linear-icon-only"],"dropdownPosition":[1,"dropdown-position"],"dropdownVisible":[32],"searchValue":[32],"resType":[32],"innerResults":[32],"totalResults":[32],"isExpanded":[32],"setResults":[64]},[[0,"jump-search-bar-dropdown-item-connected","addOption"]],{"searchValue":["searchValueChanged"]}]]],["jump-search-bar-mobile",[[1,"jump-search-bar-mobile",{"identifier":[1],"placeholder":[1],"recents":[16],"recentsTitle":[1,"recents-title"],"debounceTime":[2,"debounce-time"],"loadingText":[1,"loading-text"],"noResultText":[1,"no-result-text"],"results":[16],"resultsText":[1,"results-text"],"showAllResText":[1,"show-all-res-text"],"isOpen":[32],"innerResults":[32],"totalResults":[32],"resType":[32],"searchValue":[32],"setResults":[64]},[[0,"jump-search-bar-dropdown-item-connected","addOption"]],{"searchValue":["searchValueChanged"]}]]],["jump-accordion",[[1,"jump-accordion",{"variant":[1],"summary":[1],"disabled":[4],"open":[516],"icon":[1],"identifier":[1]},[[0,"sl-show","handleShow"]]]]],["jump-tab-item",[[1,"jump-tab-item",{"identifier":[1],"iconName":[1,"icon-name"],"iconPosition":[1,"icon-position"],"label":[1],"active":[4],"disabled":[4],"variant":[32]}]]],["jump-accordion-group",[[1,"jump-accordion-group",{"variant":[1],"groupIdentifier":[1,"group-identifier"]}]]],["jump-card",[[4,"jump-card",{"horizontal":[4],"dark":[4],"shadow":[4],"border":[4],"borderRadius":[4,"border-radius"],"topBorderContentRadius":[4,"top-border-content-radius"],"boxed":[4],"roundedMedia":[4,"rounded-media"],"imgSrc":[1,"img-src"],"imgAlt":[1,"img-alt"],"videoSrc":[1,"video-src"]}]]],["jump-card-ecommerce-option",[[1,"jump-card-ecommerce-option",{"code":[1],"imgUrl":[1,"img-url"],"label":[1],"sku":[1],"taxonomy":[1]}]]],["jump-filter-checkbox",[[1,"jump-filter-checkbox",{"value":[1],"label":[1],"checked":[516],"count":[8],"isChecked":[64]}]]],["jump-filter-select",[[1,"jump-filter-select",{"value":[1537],"placeholder":[1],"label":[1],"name":[1],"options":[1],"disabled":[516],"multiple":[4],"required":[4],"loading":[4],"open":[32],"hasSlottedOptions":[32],"values":[32],"getSelectedValue":[64],"getSelectedOption":[64],"getValues":[64],"getName":[64],"setValue":[64]}]]],["jump-filter-switch",[[1,"jump-filter-switch",{"value":[1],"label":[1],"name":[1],"checked":[1540],"disabled":[516],"values":[32],"setValue":[64],"isChecked":[64],"getValues":[64],"getName":[64]},null,{"checked":["checkedChanged"]}]]],["jump-search-bar-dropdown-item",[[1,"jump-search-bar-dropdown-item",{"value":[1],"img":[1],"href":[1],"details":[32]}]]],["jump-tab",[[1,"jump-tab",{"disabled":[4],"alignment":[1],"fullBorder":[4,"full-border"],"tabGroupName":[1,"tab-group-name"],"variant":[1]},[[0,"jump-change-active-tab","changeActiveTabHandler"]]]]],["jump-tab-panel",[[1,"jump-tab-panel",{"identifier":[1],"active":[4]}]]],["jump-badge",[[1,"jump-badge",{"label":[1],"variant":[513],"dimension":[513],"soft":[516],"outline":[516]}]]]], options);
19
+ return bootstrapLazy([["jump-card-ecommerce",[[1,"jump-card-ecommerce",{"onlyIconButton":[4,"only-icon-button"],"hasBackground":[4,"has-background"],"badge":[1],"favorite":[1540],"hasFavorite":[4,"has-favorite"],"hasSlotForFavorite":[4,"has-slot-for-favorite"],"hasSlotAddToCart":[4,"has-slot-add-to-cart"],"link":[1],"img":[1],"imgAlt":[1,"img-alt"],"hoverImg":[1,"hover-img"],"hoverImgAlt":[1,"hover-img-alt"],"videoSrc":[1,"video-src"],"notificationUrl":[1,"notification-url"],"notificationText":[1,"notification-text"],"productName":[1,"product-name"],"subtitle":[1],"productId":[1,"product-id"],"price":[2],"salePrice":[2,"sale-price"],"currency":[1],"addToCartColor":[1,"add-to-cart-color"],"badgeColor":[1,"badge-color"],"outOfStock":[1540,"out-of-stock"],"outOfStockText":[1,"out-of-stock-text"],"addToCartText":[1,"add-to-cart-text"],"waitingListText":[1,"waiting-list-text"],"addToWaitingList":[4,"add-to-waiting-list"],"isMini":[4,"is-mini"],"addedToCart":[4,"added-to-cart"],"endAddedToCart":[4,"end-added-to-cart"],"variations":[32],"selectedVariation":[32],"priceFormatted":[32],"salePriceFormatted":[32],"setPrice":[64]},[[0,"jump-card-ecommerce-option-connected","addOption"]]]]],["jump-filter",[[1,"jump-filter",{"direction":[1],"filterHeading":[1,"filter-heading"],"filterButtonLabel":[1,"filter-button-label"],"filterButtonIcon":[1,"filter-button-icon"],"mobileThreshold":[2,"mobile-threshold"],"filters":[8],"showCount":[4,"show-count"],"offCanvasOverlay":[4,"off-canvas-overlay"],"activeFilters":[32],"showMobileFilters":[32],"isMobile":[32],"offCanvasClasses":[32],"getFilters":[64]},[[0,"jump-filterchange","filterChangeHandler"],[9,"resize","handleResize"]],{"showMobileFilters":["watchHandler"]}]]],["jump-filtergroup",[[1,"jump-filtergroup",{"name":[1],"heading":[1],"otherLabel":[1,"other-label"],"lessLabel":[1,"less-label"],"maxElements":[2,"max-elements"],"variant":[1],"label":[32],"values":[32],"value":[32],"slotItems":[32],"inputs":[32],"showMore":[32],"getValues":[64],"getActiveAmount":[64],"getInputs":[64],"getName":[64]},null,{"showMore":["watchShowMore"]}]]],["jump-navbar",[[1,"jump-navbar",{"logo":[16],"navItems":[16],"secondaryNavItems":[16],"mobileThreshold":[2,"mobile-threshold"],"type":[1],"navPosition":[1,"nav-position"],"megaMenuAlignment":[1,"mega-menu-alignment"],"sticky":[4],"stickyThreshold":[2,"sticky-threshold"],"mobileLogo":[16],"user":[16],"isMobile":[32]},[[9,"resize","handleResize"]]]]],["jump-pagination",[[1,"jump-pagination",{"pagLabel":[1,"pag-label"],"last":[2],"showFirstAndLast":[4,"show-first-and-last"],"current":[32]},null,{"current":["watchcurrent"]}]]],["jump-pagination-table",[[0,"jump-pagination-table",{"elementsRanges":[1,"elements-ranges"],"elPerPage":[2,"el-per-page"],"pagLabel":[513,"pag-label"],"labelElementsPerPage":[513,"label-elements-per-page"],"total":[514],"first":[514],"last":[514],"showFirstAndLast":[516,"show-first-and-last"],"elementsRangesArray":[32]},null,{"elementsRanges":["elementsRangesChanged"],"elPerPage":["elPerPageChanged"]}]]],["jump-quantity",[[65,"jump-quantity",{"min":[2],"max":[2],"step":[2],"label":[1],"type":[1],"variant":[1],"showButtons":[4,"show-buttons"],"value":[2],"internalValue":[32],"getValue":[64],"setMax":[64],"reset":[64]},null,{"value":["onValueChange"]}]]],["jump-search-bar",[[1,"jump-search-bar",{"placeholder":[1],"noResultText":[1,"no-result-text"],"loadingText":[1,"loading-text"],"resultsText":[1,"results-text"],"showAllResText":[1,"show-all-res-text"],"identifier":[1],"debounceTime":[2,"debounce-time"],"variant":[1],"withBtn":[4,"with-btn"],"recentsTitle":[1,"recents-title"],"recents":[16],"results":[16],"dropdown":[4],"linearIconOnly":[4,"linear-icon-only"],"dropdownPosition":[1,"dropdown-position"],"dropdownVisible":[32],"searchValue":[32],"resType":[32],"innerResults":[32],"totalResults":[32],"isExpanded":[32],"setResults":[64]},[[0,"jump-search-bar-dropdown-item-connected","addOption"]],{"searchValue":["searchValueChanged"]}]]],["jump-search-bar-mobile",[[1,"jump-search-bar-mobile",{"identifier":[1],"placeholder":[1],"recents":[16],"recentsTitle":[1,"recents-title"],"debounceTime":[2,"debounce-time"],"loadingText":[1,"loading-text"],"noResultText":[1,"no-result-text"],"results":[16],"resultsText":[1,"results-text"],"showAllResText":[1,"show-all-res-text"],"isOpen":[32],"innerResults":[32],"totalResults":[32],"resType":[32],"searchValue":[32],"setResults":[64]},[[0,"jump-search-bar-dropdown-item-connected","addOption"]],{"searchValue":["searchValueChanged"]}]]],["jump-accordion",[[1,"jump-accordion",{"variant":[1],"summary":[1],"disabled":[4],"open":[516],"icon":[1],"identifier":[1]},[[0,"sl-show","handleShow"]]]]],["jump-side-cart",[[1,"jump-side-cart",{"isOpen":[4,"is-open"],"position":[1],"items":[16],"discountThreshold":[16],"freeShippingThreshold":[2,"free-shipping-threshold"],"progressPercentage":[2,"progress-percentage"],"checkoutLabel":[1,"checkout-label"],"viewCartLabel":[1,"view-cart-label"],"shippingInfo":[1,"shipping-info"],"cartItems":[32]}]]],["jump-side-cart-example",[[1,"jump-side-cart-example",{"isCartOpen":[32],"position":[32],"cartItems":[32]}]]],["jump-tab-item",[[1,"jump-tab-item",{"identifier":[1],"iconName":[1,"icon-name"],"iconPosition":[1,"icon-position"],"label":[1],"active":[4],"disabled":[4],"variant":[32]}]]],["jump-accordion-group",[[1,"jump-accordion-group",{"variant":[1],"groupIdentifier":[1,"group-identifier"]}]]],["jump-card",[[4,"jump-card",{"horizontal":[4],"dark":[4],"shadow":[4],"border":[4],"borderRadius":[4,"border-radius"],"topBorderContentRadius":[4,"top-border-content-radius"],"boxed":[4],"roundedMedia":[4,"rounded-media"],"imgSrc":[1,"img-src"],"imgAlt":[1,"img-alt"],"videoSrc":[1,"video-src"]}]]],["jump-card-ecommerce-option",[[1,"jump-card-ecommerce-option",{"code":[1],"imgUrl":[1,"img-url"],"label":[1],"sku":[1],"taxonomy":[1]}]]],["jump-filter-checkbox",[[1,"jump-filter-checkbox",{"value":[1],"label":[1],"checked":[516],"count":[8],"isChecked":[64]}]]],["jump-filter-select",[[1,"jump-filter-select",{"value":[1537],"placeholder":[1],"label":[1],"name":[1],"options":[1],"disabled":[516],"multiple":[4],"required":[4],"loading":[4],"open":[32],"hasSlottedOptions":[32],"values":[32],"getSelectedValue":[64],"getSelectedOption":[64],"getValues":[64],"getName":[64],"setValue":[64]}]]],["jump-filter-switch",[[1,"jump-filter-switch",{"value":[1],"label":[1],"name":[1],"checked":[1540],"disabled":[516],"values":[32],"setValue":[64],"isChecked":[64],"getValues":[64],"getName":[64]},null,{"checked":["checkedChanged"]}]]],["jump-search-bar-dropdown-item",[[1,"jump-search-bar-dropdown-item",{"value":[1],"img":[1],"href":[1],"details":[32]}]]],["jump-tab",[[1,"jump-tab",{"disabled":[4],"alignment":[1],"fullBorder":[4,"full-border"],"tabGroupName":[1,"tab-group-name"],"variant":[1]},[[0,"jump-change-active-tab","changeActiveTabHandler"]]]]],["jump-tab-panel",[[1,"jump-tab-panel",{"identifier":[1],"active":[4]}]]],["jump-badge",[[1,"jump-badge",{"label":[1],"variant":[513],"dimension":[513],"soft":[516],"outline":[516]}]]],["jump-button_2",[[1,"jump-button",{"disabled":[4],"variant":[1],"outline":[4],"size":[1],"full":[4],"pill":[4],"text":[4],"onlyIcon":[4,"only-icon"],"href":[1],"target":[1],"type":[1],"name":[1],"value":[1],"ariaLabel":[1,"aria-label"],"class":[1],"buttonId":[1,"button-id"]}],[1,"jump-icon",{"class":[1],"library":[1],"name":[1],"category":[1],"size":[1],"label":[1],"src":[1]}]]]], options);
20
20
  });
21
21
 
22
22
  //# sourceMappingURL=jump-design-system.js.map
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host } from './index-7eb565cd.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host } from './index-4363ffe4.js';
2
2
  import { i, c as component_styles_default, _ as __decorateClass, w as watch, S as ShoelaceElement, x, r, n } from './directive-helpers-d80c2187.js';
3
3
  import { f as form_control_styles_default, F as FormControlController, H as HasSlotController, o, d as defaultValue } from './if-defined-85ab7b97.js';
4
4
  import { S as SlIcon } from './chunk.H33C3MRM-7dcbd943.js';
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-7eb565cd.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-4363ffe4.js';
2
2
  import { i, x, c as component_styles_default, _ as __decorateClass, S as ShoelaceElement, r, n as n$1, a as __spreadProps, b as __spreadValues, T, d as w, w as watch } from './directive-helpers-d80c2187.js';
3
3
  import { S as SlIcon } from './chunk.H33C3MRM-7dcbd943.js';
4
4
  import { e as e$2, a as e$3, i as i$1, t, b as e$4 } from './class-map-a2676e27.js';
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host } from './index-7eb565cd.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host } from './index-4363ffe4.js';
2
2
  import { i, c as component_styles_default, _ as __decorateClass, w as watch, S as ShoelaceElement, x, r, n } from './directive-helpers-d80c2187.js';
3
3
  import { f as form_control_styles_default, F as FormControlController, H as HasSlotController, o, d as defaultValue } from './if-defined-85ab7b97.js';
4
4
  import { e, a as e$1 } from './class-map-a2676e27.js';
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h, H as Host } from './index-7eb565cd.js';
1
+ import { r as registerInstance, h, H as Host } from './index-4363ffe4.js';
2
2
 
3
3
  const jumpFilterCss = ":host{--primary-standard:var(--secondary-hard, #435171);--jump-button-background-hover:red;--bg-drawer:var(--bg-drawer, #fff);--header-height:var(--header-height, 80px);--drawer-width:var(--drawer-width, 240px);--overlay-bg-color:var(--overlay-bg-color, rgba(0, 0, 0, 0.35))}:host h3{margin:0}.filtersDrawer__overlay{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);background-color:var(--overlay-bg-color, rgba(0, 0, 0, 0.35));z-index:1;width:100vw;height:100vh;display:none;opacity:0;transition:opacity 0.3s ease-in-out}.filtersDrawer__overlay.filtersDrawer__overlay--active{display:block}.filtersDrawer__overlay.filtersDrawer__overlay--active{opacity:1}.filtersDrawer{position:fixed;display:flex;flex-direction:column;gap:2.5rem;left:-100vw;top:0;height:-webkit-fill-available;max-height:calc(100vh - var(--header-height));transition:0.3s all ease-in-out;background-color:var(--bg-drawer, #fff);padding:1rem;width:100%;max-width:var(--drawer-width);box-shadow:8px 0 15px 0 rgba(0, 0, 0, 0.1490196078);z-index:2;overflow:auto}.filtersDrawer[aria-hidden=false]{left:0;right:0;width:auto;transition:0.3s all ease-in-out}.filtersDrawer[aria-hidden=false] .filtersDrawer__close{position:fixed;top:calc(var(--header-height) + 1rem);left:calc(var(--drawer-width) - 2rem)}@media (min-width: 768px){.filtersDrawer{position:relative;left:0;height:auto;max-width:initial;max-height:initial;box-shadow:none}}@media (max-width: 767px){.filtersDrawer{top:var(--header-height)}}.filtersDrawer .filtersDrawer__header{display:flex;justify-content:flex-start;align-items:center;gap:0.5rem}";
4
4
  const JumpFilterStyle0 = jumpFilterCss;
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host } from './index-7eb565cd.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host } from './index-4363ffe4.js';
2
2
 
3
3
  const jumpFiltergroupCss = ":host{--hidden-display:none;--font-family:var(--ff-primary, \"Inter\"), serif;--font-size:var(--fs-400, 16px);--line-height:var(--lh-300, 1.2);--font-weight:var(--fw-900, 700);--color:var(--neutral-grey-primary, #282828);--distance-items:.25rem;display:block}:host h5{font-family:var(--font-family);font-size:var(--font-size);line-height:var(--line-height);font-weight:var(--font-weight);color:var(--color);margin:0 0 var(--distance-items, 0.25rem)}:host slot{display:flex;flex-direction:column;margin-bottom:1rem}:host ::slotted(.item){max-height:500px;transition:all 0.3s ease-in-out;margin-top:var(--distance-items, 0.25rem);display:flex;align-items:center;justify-content:flex-start;gap:0.25rem}:host ::slotted(.hidden){max-height:0;overflow:hidden}";
4
4
  const JumpFiltergroupStyle0 = jumpFiltergroupCss;
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h, H as Host } from './index-7eb565cd.js';
1
+ import { r as registerInstance, h, H as Host } from './index-4363ffe4.js';
2
2
 
3
3
  const jumpNavbarCss = ":host{--jump-navbar-height:var(--header-height, 100px);--jump-navbar-background:var(--bg-drawer, #fff);--jump-navbar-width:var(--drawer-width, 240px);--jump-navbar-shadow:8px 0 15px 0 #00000026;--jump-navbar-zindex:2;--jump-navbar-transition:0.3s all ease-in-out;--jump-navbar-gap:2.5rem;--jump-navbar-padding:1rem;--jump-navbar-close-top:calc(var(--header-height) + 1rem);--jump-navbar-close-left:calc(var(--drawer-width) - 2rem);--jump-navbar-close-gap:0.5rem}";
4
4
  const JumpNavbarStyle0 = jumpNavbarCss;
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host } from './index-7eb565cd.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host } from './index-4363ffe4.js';
2
2
 
3
3
  const jumpPaginationTableCss = ":host{display:block}.JumpPaginationTable{--jump-pagination-table-label:var(--neutral-grey-secondary);--jump-pagination-table-arrows:var(--neutral-grey-secondary);--jump-pagination-table-arrows-disabled:var(--neutral-grey-disabled);font-family:var(--ff-primary)}.JumpPaginationTable__Wrapper{display:flex;justify-content:space-between}.JumpPaginationTable__Wrapper .elementsPerPage{display:flex;gap:1rem;align-items:center}.JumpPaginationTable__Wrapper .elementsPerPage label{color:var(--jump-pagination-table-label);font-size:var(--fs-300);font-weight:normal}.JumpPaginationTable__Wrapper .indicators{font-size:var(--fs-400);font-weight:normal;display:flex;justify-content:space-between;gap:20px;color:var(--jump-pagination-table-label)}.JumpPaginationTable__Wrapper .indicators .arrow{color:var(--jump-pagination-table-arrows);display:flex;align-items:center;gap:10px}.JumpPaginationTable__Wrapper .indicators .arrow button{background-color:transparent;border:none;cursor:pointer;padding:0px;display:flex;align-items:center}.JumpPaginationTable__Wrapper .indicators .arrow button:disabled{cursor:not-allowed;color:var(--jump-pagination-table-arrows-disabled)}.JumpPaginationTable__Wrapper .indicators .elements{color:var(--jump-pagination-table-label);display:flex;align-items:center;gap:5px}";
4
4
  const JumpPaginationTableStyle0 = jumpPaginationTableCss;
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host } from './index-7eb565cd.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host } from './index-4363ffe4.js';
2
2
 
3
3
  const jumpPaginationCss = ":host{display:block;--jump-button-color:yellow}.JumpPagination{--jump-pagination-label:var(--neutral-grey-secondary);--jump-pagination-arrows-color:var(--neutral-grey-secondary);--jump-pagination-arrows-disabled:var(--neutral-grey-disabled);font-family:var(--ff-primary)}.JumpPagination__Wrapper{display:flex;justify-content:space-between}.JumpPagination__Wrapper .indicators{font-size:var(--fs-400);font-weight:normal;display:flex;justify-content:space-between;gap:20px;color:var(--jump-pagination-label)}.JumpPagination__Wrapper .indicators .arrow{color:var(--jump-pagination-arrows-color);display:flex;align-items:center;gap:10px}.JumpPagination__Wrapper .indicators .arrow button{background-color:transparent;border:none;cursor:pointer;padding:0px;display:flex;align-items:center}.JumpPagination__Wrapper .indicators .arrow button:disabled{cursor:not-allowed;color:var(--jump-pagination-arrows-disabled)}.JumpPagination__Wrapper .indicators .elements{color:var(--jump-pagination-label);display:flex;align-items:center;gap:5px}";
4
4
  const JumpPaginationStyle0 = jumpPaginationCss;
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-7eb565cd.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-4363ffe4.js';
2
2
 
3
3
  const jumpQuantityCss = ":host{display:inline-flex;align-items:flex-start;justify-content:center;flex-direction:column;gap:0.5rem}:host jump-button,:host button{--jump-button-padding:0.5rem}:host [data-variant=horizontal]{flex-direction:row}:host label{color:var(--neutral-grey-secondary);font-size:0.875rem}:host input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;margin:0;outline:none;border:1px solid transparent;border-radius:3px;padding:0.5rem;height:14px;width:36px;font-size:0.875rem;text-align:center}:host input::-webkit-inner-spin-button,:host input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}:host input:focus{border-color:var(--secondary-standard)}:host input:not([aria-hasbuttons]){border-color:var(--neutral-grey-secondary)}:host input[type=button]{cursor:pointer}:host ::slotted(jump-button){--jump-button-padding:0}:host .jump-quantity__InnerWrapper{display:flex;flex-direction:row;align-items:flex-start;justify-content:center;gap:0}";
4
4
  const JumpQuantityStyle0 = jumpQuantityCss;
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host } from './index-7eb565cd.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host } from './index-4363ffe4.js';
2
2
 
3
3
  const jumpSearchBarDropdownItemCss = ":host{display:block}";
4
4
  const JumpSearchBarDropdownItemStyle0 = jumpSearchBarDropdownItemCss;
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host } from './index-7eb565cd.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host } from './index-4363ffe4.js';
2
2
 
3
3
  const jumpSearchBarMobileCss = ":host{display:block;position:relative;--jump-search-bar-mobile-focus-color:var(--secondary-standard, #5E79BA);--jump-search-bar-mobile-background-color:var(--gray-ultralight, #FFFFFF);--jump-search-bar-mobile-border-color:var(--neutral-grey-secondary, #707070);font-family:var(--ff-primary)}:host .DropdownWrapper{background-color:var(--jump-search-bar-mobile-background-color);padding:16px;position:fixed;top:0;left:0;height:100vh;z-index:1000;}:host .DropdownWrapper .closeButton{cursor:pointer}:host .DropdownWrapper.open{display:block}:host .DropdownWrapper:not(.open){display:none}:host .DropdownWrapper .InputWrapper{background-color:white;width:100%;display:flex;gap:12px;border-bottom:1px solid var(--jump-search-bar-mobile-border-color);padding-bottom:4px}:host .DropdownWrapper .InputWrapper.focused{border-color:var(--jump-search-bar-mobile-focus-color) !important}:host .DropdownWrapper .InputWrapper.focused jump-icon{color:var(--jump-search-bar-mobile-focus-color) !important}:host .DropdownWrapper .InputWrapper.focused input{outline:none !important}:host .DropdownWrapper input{width:100%;border:none}:host .DropdownWrapper .Results{margin-top:12px}:host .DropdownWrapper .Results__Recents .title{color:#707070;font-size:14px;line-height:20px;padding:8px 0;font-weight:700;display:flex}:host .DropdownWrapper .Results__Results .totalRes{display:flex;justify-content:space-between}:host .DropdownWrapper .Results .ResWrapper{display:flex;flex-direction:column}:host .DropdownWrapper .Results .ResWrapper div{padding:8px 0;color:#707070;font-size:14px;display:flex;gap:12px;align-items:center}:host .DropdownWrapper .Results .ResWrapper div img{width:40px;height:48px;object-fit:cover;border-radius:3px}:host .DropdownWrapper .Results .ResWrapper div:hover{cursor:pointer}:host .DropdownWrapper .Results .ResWrapper .helperText{color:#CBCBCB}:host .DropdownWrapper .Results .ResWrapper .helperText svg{width:25px;height:25px}";
4
4
  const JumpSearchBarMobileStyle0 = jumpSearchBarMobileCss;
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host } from './index-7eb565cd.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host } from './index-4363ffe4.js';
2
2
 
3
3
  const jumpSearchBarCss = ":host{display:block;--jump-search-bar-focus-color:var(--secondary-standard, #5E79BA);--jump-search-bar-border-color:var(--neutral-grey-secondary, #707070);--jump-search-bar-bg-color:var(--gray-ultralight, #F8F8F8);--jump-search-bar-dropdown-border-color:var(--neutral-grey-disabled, #CBCBCB);font-family:var(--ff-primary);}:host jump-button{--jump-button-border-radius:0px 3px 3px 0px}:host .SearchBar{position:relative}:host .SearchBar.focused .InputWrapper{border-color:var(--jump-search-bar-focus-color) !important}:host .SearchBar.focused .InputWrapper jump-icon{color:var(--jump-search-bar-focus-color) !important}:host .SearchBar.focused .InputWrapper input{outline:none !important}:host .SearchBar:not(.iconOnly){display:flex;width:100%;}:host .SearchBar:not(.iconOnly) .InputWrapper{width:100%;display:flex}:host .SearchBar:not(.iconOnly) input{width:100%;border:none}:host .SearchBar:not(.iconOnly).outline .InputWrapper{border:1px solid var(--jump-search-bar-border-color);border-radius:3px;padding:12px;gap:8px}:host .SearchBar:not(.iconOnly).outline .InputWrapper jump-icon{color:var(--jump-search-bar-border-color)}:host .SearchBar:not(.iconOnly).outline.withBtn .InputWrapper{border-radius:3px 0px 0px 3px}:host .SearchBar:not(.iconOnly).filled .InputWrapper{border:1px solid var(--jump-search-bar-bg-color);background-color:var(--jump-search-bar-bg-color);border-radius:3px;padding:12px;gap:8px}:host .SearchBar:not(.iconOnly).filled .InputWrapper input{background-color:var(--jump-search-bar-bg-color)}:host .SearchBar:not(.iconOnly).filled .InputWrapper jump-icon{color:var(--jump-search-bar-border-color)}:host .SearchBar:not(.iconOnly).filled.focused.withBtn .InputWrapper{border-radius:3px 0px 0px 3px !important}:host .SearchBar:not(.iconOnly).linear .InputWrapper{border-bottom:1px solid var(--jump-search-bar-border-color);padding-bottom:4px}:host .SearchBar:not(.iconOnly).linear .InputWrapper jump-icon{padding-right:6px}:host .Dropdown{margin-top:10px;border-radius:3px;border:1px solid var(--jump-search-bar-dropdown-border-color);padding:4px 16px;background-color:white}:host .Dropdown.dropAbsolute{position:absolute;box-sizing:border-box;position:absolute;left:0;width:100%}:host .Dropdown.dropRelative{position:relative}:host .Dropdown__Recents .title{color:#707070;font-size:14px;line-height:20px;padding:8px 0;font-weight:700;display:flex}:host .Dropdown__Results .totalRes{display:flex;justify-content:space-between}:host .Dropdown .ResWrapper{display:flex;flex-direction:column}:host .Dropdown .ResWrapper div{padding:8px 0;color:#707070;font-size:14px;display:flex;gap:12px;align-items:center}:host .Dropdown .ResWrapper div img{width:40px;height:48px;object-fit:cover;border-radius:3px}:host .Dropdown .ResWrapper div:hover{cursor:pointer}:host .Dropdown .ResWrapper .helperText{color:#CBCBCB}:host .Dropdown .ResWrapper .helperText svg{width:25px;height:25px}:host .SearchBar.iconOnly.linear{display:flex;width:100%}:host .SearchBar.iconOnly.linear .InputWrapper{width:100%;display:flex;align-items:center;transition:border-bottom 0.3s ease;border-bottom:1px solid transparent;padding-bottom:4px;overflow:hidden;}:host .SearchBar.iconOnly.linear .InputWrapper jump-icon{padding-right:6px;}:host .SearchBar.iconOnly.linear .InputWrapper input{width:0;border:none;transform:translateX(-100%);transition:width 0.3s ease, transform 0.3s ease;animation:none;}:host .SearchBar.iconOnly.linear.expanded .InputWrapper{border-bottom:1px solid var(--jump-search-bar-border-color);transition:border-bottom 0.3s ease;}:host .SearchBar.iconOnly.linear.expanded .InputWrapper input{width:100%;transform:translateX(0);animation:slide-right 0.3s ease forwards;}@keyframes slide-right{from{transform:translateX(-100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes border-slide-right{from{border-bottom-width:0}to{border-bottom-width:1px}}";
4
4
  const JumpSearchBarStyle0 = jumpSearchBarCss;
@@ -0,0 +1,69 @@
1
+ import { r as registerInstance, h } from './index-4363ffe4.js';
2
+
3
+ const jumpSideCartExampleCss = ":host{display:block}.example-container{display:flex;min-height:100vh;align-items:center;justify-content:center;gap:1rem;padding:2rem;background-color:#f5f5f5}.example-button{padding:0.75rem 1.5rem;background-color:#80bb55;color:white;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:background-color 0.2s ease}.example-button:hover{background-color:#68a03b}.example-button:active{transform:translateY(1px)}";
4
+ const JumpSideCartExampleStyle0 = jumpSideCartExampleCss;
5
+
6
+ const JumpSideCartExample = class {
7
+ constructor(hostRef) {
8
+ registerInstance(this, hostRef);
9
+ this.handleUpdateQuantity = (event) => {
10
+ const { itemId, quantity } = event.detail;
11
+ this.cartItems = this.cartItems.map(item => item.id === itemId ? Object.assign(Object.assign({}, item), { quantity }) : item);
12
+ };
13
+ this.handleRemoveItem = (event) => {
14
+ const itemId = event.detail;
15
+ this.cartItems = this.cartItems.filter(item => item.id !== itemId);
16
+ };
17
+ this.handleCartClosed = () => {
18
+ this.isCartOpen = false;
19
+ };
20
+ this.handleCheckout = () => {
21
+ alert("Proceeding to checkout");
22
+ };
23
+ this.handleViewCart = () => {
24
+ alert("View cart clicked");
25
+ };
26
+ this.openCartFromRight = () => {
27
+ this.position = 'right';
28
+ this.isCartOpen = true;
29
+ };
30
+ this.openCartFromLeft = () => {
31
+ this.position = 'left';
32
+ this.isCartOpen = true;
33
+ };
34
+ this.isCartOpen = false;
35
+ this.position = 'right';
36
+ this.cartItems = [
37
+ {
38
+ id: "1",
39
+ name: "Prolife Grain Free Adult Sensitive Mini Manzo e Patate per Cani",
40
+ brand: "Prolife",
41
+ price: 15.00,
42
+ originalPrice: 30.00,
43
+ quantity: 1,
44
+ image: "/placeholder.svg?height=80&width=80",
45
+ description: "500 g"
46
+ },
47
+ {
48
+ id: "2",
49
+ name: "Prolife Grain Free Adult Sensitive Mini Manzo e Patate per Cani",
50
+ brand: "Prolife",
51
+ price: 15.00,
52
+ quantity: 1,
53
+ image: "/placeholder.svg?height=80&width=80",
54
+ description: "500 g"
55
+ }
56
+ ];
57
+ }
58
+ render() {
59
+ return (h("div", { key: '263ff4bc44226fca8d8e57c92097af18ddfe41db', class: "example-container" }, h("button", { key: '98787bd2f48f5ece860ac9b783a3ba06f479fd52', class: "example-button", onClick: this.openCartFromRight }, "Open Cart from Right"), h("button", { key: '355979d01f454baebd41f551ef9179c6ec2c8785', class: "example-button", onClick: this.openCartFromLeft }, "Open Cart from Left"), h("jump-side-cart", { key: '59a0cb733540119f856a6aad356862bfbb9e6f39', isOpen: this.isCartOpen, items: this.cartItems, position: this.position, discountThreshold: {
60
+ amount: 170,
61
+ percentage: 3
62
+ }, progressPercentage: 30, checkoutLabel: "Vai al Checkout", viewCartLabel: "Vedi carrello", onCartClosed: this.handleCartClosed, onItemQuantityChanged: this.handleUpdateQuantity, onItemRemoved: this.handleRemoveItem, onCheckoutClicked: this.handleCheckout, onViewCartClicked: this.handleViewCart })));
63
+ }
64
+ };
65
+ JumpSideCartExample.style = JumpSideCartExampleStyle0;
66
+
67
+ export { JumpSideCartExample as jump_side_cart_example };
68
+
69
+ //# sourceMappingURL=jump-side-cart-example.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"jump-side-cart-example.entry.js","mappings":";;AAAA,MAAM,sBAAsB,GAAG,+aAA+a,CAAC;AAC/c,kCAAe,sBAAsB;;MCOxB,mBAAmB;;;QAyBtB,yBAAoB,GAAG,CAAC,KAA+D;YAC7F,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;YAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,IACtC,IAAI,CAAC,EAAE,KAAK,MAAM,mCAAQ,IAAI,KAAE,QAAQ,MAAK,IAAI,CAClD,CAAC;SACH,CAAA;QAEO,qBAAgB,GAAG,CAAC,KAAmC;YAC7D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;SACpE,CAAA;QAEO,qBAAgB,GAAG;YACzB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACzB,CAAA;QAEO,mBAAc,GAAG;YACvB,KAAK,CAAC,wBAAwB,CAAC,CAAC;SACjC,CAAA;QAEO,mBAAc,GAAG;YACvB,KAAK,CAAC,mBAAmB,CAAC,CAAC;SAC5B,CAAA;QAEO,sBAAiB,GAAG;YAC1B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SACxB,CAAA;QAEO,qBAAgB,GAAG;YACzB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SACxB,CAAA;0BAxD8B,KAAK;wBACE,OAAO;yBACZ;YAC/B;gBACE,EAAE,EAAE,GAAG;gBACP,IAAI,EAAE,iEAAiE;gBACvE,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,KAAK;gBACZ,aAAa,EAAE,KAAK;gBACpB,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE,qCAAqC;gBAC5C,WAAW,EAAE,OAAO;aACrB;YACD;gBACE,EAAE,EAAE,GAAG;gBACP,IAAI,EAAE,iEAAiE;gBACvE,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE,qCAAqC;gBAC5C,WAAW,EAAE,OAAO;aACrB;SACF;;IAoCD,MAAM;QACJ,QACE,4DAAK,KAAK,EAAC,mBAAmB,IAC5B,+DACE,KAAK,EAAC,gBAAgB,EACtB,OAAO,EAAE,IAAI,CAAC,iBAAiB,2BAGxB,EAET,+DACE,KAAK,EAAC,gBAAgB,EACtB,OAAO,EAAE,IAAI,CAAC,gBAAgB,0BAGvB,EAET,uEACE,MAAM,EAAE,IAAI,CAAC,UAAU,EACvB,KAAK,EAAE,IAAI,CAAC,SAAS,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,iBAAiB,EAAE;gBACjB,MAAM,EAAE,GAAG;gBACX,UAAU,EAAE,CAAC;aACd,EACD,kBAAkB,EAAE,EAAE,EACtB,aAAa,EAAC,iBAAiB,EAC/B,aAAa,EAAC,eAAe,EAC7B,YAAY,EAAE,IAAI,CAAC,gBAAgB,EACnC,qBAAqB,EAAE,IAAI,CAAC,oBAAoB,EAChD,aAAa,EAAE,IAAI,CAAC,gBAAgB,EACpC,iBAAiB,EAAE,IAAI,CAAC,cAAc,EACtC,iBAAiB,EAAE,IAAI,CAAC,cAAc,GACtB,CACd,EACN;KACH;;;;;;","names":[],"sources":["src/components/jump-side-cart/jump-side-cart.example.scss?tag=jump-side-cart-example&encapsulation=shadow","src/components/jump-side-cart/jump-side-cart.example.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.example-container {\n display: flex;\n min-height: 100vh;\n align-items: center;\n justify-content: center;\n gap: 1rem;\n padding: 2rem;\n background-color: #f5f5f5;\n}\n\n.example-button {\n padding: 0.75rem 1.5rem;\n background-color: #80bb55;\n color: white;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n font-weight: 500;\n transition: background-color 0.2s ease;\n\n &:hover {\n background-color: #68a03b;\n }\n\n &:active {\n transform: translateY(1px);\n }\n}\n","import { Component, State, h } from '@stencil/core';\nimport type { CartItem } from './jump-side-cart';\n\n@Component({\n tag: 'jump-side-cart-example',\n styleUrl: 'jump-side-cart.example.scss',\n shadow: true,\n})\nexport class JumpSideCartExample {\n @State() isCartOpen: boolean = false;\n @State() position: 'left' | 'right' = 'right';\n @State() cartItems: CartItem[] = [\n {\n id: \"1\",\n name: \"Prolife Grain Free Adult Sensitive Mini Manzo e Patate per Cani\",\n brand: \"Prolife\",\n price: 15.00,\n originalPrice: 30.00,\n quantity: 1,\n image: \"/placeholder.svg?height=80&width=80\",\n description: \"500 g\"\n },\n {\n id: \"2\",\n name: \"Prolife Grain Free Adult Sensitive Mini Manzo e Patate per Cani\",\n brand: \"Prolife\",\n price: 15.00,\n quantity: 1,\n image: \"/placeholder.svg?height=80&width=80\",\n description: \"500 g\"\n }\n ];\n\n private handleUpdateQuantity = (event: CustomEvent<{itemId: string | number, quantity: number}>) => {\n const { itemId, quantity } = event.detail;\n this.cartItems = this.cartItems.map(item => \n item.id === itemId ? { ...item, quantity } : item\n );\n }\n\n private handleRemoveItem = (event: CustomEvent<string | number>) => {\n const itemId = event.detail;\n this.cartItems = this.cartItems.filter(item => item.id !== itemId);\n }\n\n private handleCartClosed = () => {\n this.isCartOpen = false;\n }\n\n private handleCheckout = () => {\n alert(\"Proceeding to checkout\");\n }\n\n private handleViewCart = () => {\n alert(\"View cart clicked\");\n }\n\n private openCartFromRight = () => {\n this.position = 'right';\n this.isCartOpen = true;\n }\n\n private openCartFromLeft = () => {\n this.position = 'left';\n this.isCartOpen = true;\n }\n\n render() {\n return (\n <div class=\"example-container\">\n <button \n class=\"example-button\"\n onClick={this.openCartFromRight}\n >\n Open Cart from Right\n </button>\n \n <button \n class=\"example-button\"\n onClick={this.openCartFromLeft}\n >\n Open Cart from Left\n </button>\n\n <jump-side-cart\n isOpen={this.isCartOpen}\n items={this.cartItems}\n position={this.position}\n discountThreshold={{\n amount: 170,\n percentage: 3\n }}\n progressPercentage={30}\n checkoutLabel=\"Vai al Checkout\"\n viewCartLabel=\"Vedi carrello\"\n onCartClosed={this.handleCartClosed}\n onItemQuantityChanged={this.handleUpdateQuantity}\n onItemRemoved={this.handleRemoveItem}\n onCheckoutClicked={this.handleCheckout}\n onViewCartClicked={this.handleViewCart}\n ></jump-side-cart>\n </div>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,83 @@
1
+ import { r as registerInstance, c as createEvent, h } from './index-4363ffe4.js';
2
+
3
+ const jumpSideCartCss = ":host{--cart-width:400px;--cart-bg:#ffffff;--overlay-bg:rgba(0, 0, 0, 0.5);--border-color:#e5e5e5;--text-primary:#333333;--text-secondary:#666666;--primary-color:#80bb55;--secondary-color:#f5f5f5;--error-color:#dc3545;--success-color:#28a745}.side-cart{position:fixed;top:0;bottom:0;width:100%;z-index:1000;pointer-events:none}.side-cart--open{pointer-events:all}.side-cart--right{right:0}.side-cart--right .side-cart__content{right:0;transform:translateX(100%)}.side-cart--right.side-cart--open .side-cart__content{transform:translateX(0)}.side-cart--left{left:0}.side-cart--left .side-cart__content{left:0;transform:translateX(-100%)}.side-cart--left.side-cart--open .side-cart__content{transform:translateX(0)}.side-cart__overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--overlay-bg);opacity:0;transition:opacity 0.3s ease}.side-cart--open .side-cart__overlay{opacity:1}.side-cart__content{position:absolute;top:0;bottom:0;width:var(--cart-width);max-width:90vw;background:var(--cart-bg);box-shadow:-2px 0 10px rgba(0, 0, 0, 0.1);transition:transform 0.3s ease;display:flex;flex-direction:column}.side-cart--left .side-cart__content{box-shadow:2px 0 10px rgba(0, 0, 0, 0.1)}.side-cart__header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--border-color)}.side-cart__header h2{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.side-cart__header .close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-secondary);padding:0.25rem;line-height:1}.side-cart__header .close-btn:hover{color:var(--text-primary)}.side-cart__body{flex:1;overflow-y:auto;padding:1rem}.empty-cart{text-align:center;padding:2rem 0;color:var(--text-secondary)}.cart-items{display:flex;flex-direction:column;gap:1rem}.cart-item{display:flex;gap:0.75rem;padding:1rem;border:1px solid var(--border-color);border-radius:8px}.cart-item__image{flex-shrink:0;width:80px;height:80px}.cart-item__image img{width:100%;height:100%;object-fit:cover;border-radius:4px}.cart-item__details{flex:1;min-width:0}.cart-item__brand{font-size:0.75rem;color:var(--text-secondary);margin-bottom:0.25rem;text-transform:uppercase;font-weight:500}.cart-item__name{font-size:0.875rem;font-weight:500;color:var(--text-primary);margin-bottom:0.25rem;line-height:1.3}.cart-item__description{font-size:0.75rem;color:var(--text-secondary);margin-bottom:0.5rem}.cart-item__price{font-weight:600;color:var(--text-primary)}.cart-item__original-price{margin-left:0.5rem;text-decoration:line-through;color:var(--text-secondary);font-weight:normal}.cart-item__controls{flex-shrink:0;display:flex;flex-direction:column;gap:0.5rem;align-items:center}.quantity-controls{display:flex;align-items:center;border:1px solid var(--border-color);border-radius:4px}.quantity-controls .quantity-btn{background:none;border:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-primary)}.quantity-controls .quantity-btn:hover:not(:disabled){background:var(--secondary-color)}.quantity-controls .quantity-btn:disabled{opacity:0.5;cursor:not-allowed}.quantity-controls .quantity{min-width:40px;text-align:center;padding:0 0.5rem;border-left:1px solid var(--border-color);border-right:1px solid var(--border-color);font-weight:500}.remove-btn{background:none;border:none;color:var(--error-color);font-size:0.75rem;cursor:pointer;padding:0.25rem 0.5rem;border-radius:4px}.remove-btn:hover{background:rgba(220, 53, 69, 0.1)}.progress-section{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.progress-bar{width:100%;height:8px;background:var(--secondary-color);border-radius:4px;overflow:hidden;margin-bottom:0.5rem}.progress-bar .progress-fill{height:100%;background:var(--primary-color);transition:width 0.3s ease}.progress-text{font-size:0.875rem;color:var(--text-secondary);text-align:center}.side-cart__footer{border-top:1px solid var(--border-color);padding:1rem}.totals{margin-bottom:1rem}.totals .subtotal,.totals .savings{display:flex;justify-content:space-between;margin-bottom:0.5rem}.totals .subtotal{font-weight:600;font-size:1.125rem}.totals .savings{color:var(--success-color);font-size:0.875rem}.actions{display:flex;gap:0.75rem}.actions .btn{flex:1;padding:0.75rem;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all 0.2s ease}.actions .btn--primary{background:var(--primary-color);color:white}.actions .btn--primary:hover{background:#68a03b;filter:brightness(0.9)}.actions .btn--secondary{background:var(--secondary-color);color:var(--text-primary);border:1px solid var(--border-color)}.actions .btn--secondary:hover{background:#e8e8e8;filter:brightness(0.95)}@media (max-width: 768px){.side-cart__content{width:100vw;max-width:none}.cart-item__details{font-size:0.8rem}.cart-item__name{font-size:0.8rem}}";
4
+ const JumpSideCartStyle0 = jumpSideCartCss;
5
+
6
+ const JumpSideCart = class {
7
+ constructor(hostRef) {
8
+ registerInstance(this, hostRef);
9
+ this.cartClosed = createEvent(this, "cartClosed", 7);
10
+ this.itemQuantityChanged = createEvent(this, "itemQuantityChanged", 7);
11
+ this.itemRemoved = createEvent(this, "itemRemoved", 7);
12
+ this.checkoutClicked = createEvent(this, "checkoutClicked", 7);
13
+ this.viewCartClicked = createEvent(this, "viewCartClicked", 7);
14
+ this.handleClose = () => {
15
+ this.cartClosed.emit();
16
+ };
17
+ this.handleQuantityChange = (itemId, newQuantity) => {
18
+ if (newQuantity < 1)
19
+ return;
20
+ this.cartItems = this.cartItems.map(item => item.id === itemId ? Object.assign(Object.assign({}, item), { quantity: newQuantity }) : item);
21
+ this.itemQuantityChanged.emit({ itemId, quantity: newQuantity });
22
+ };
23
+ this.handleRemoveItem = (itemId) => {
24
+ this.cartItems = this.cartItems.filter(item => item.id !== itemId);
25
+ this.itemRemoved.emit(itemId);
26
+ };
27
+ this.calculateSubtotal = () => {
28
+ return this.cartItems.reduce((total, item) => total + (item.price * item.quantity), 0);
29
+ };
30
+ this.calculateSavings = () => {
31
+ return this.cartItems.reduce((total, item) => {
32
+ if (item.originalPrice) {
33
+ return total + ((item.originalPrice - item.price) * item.quantity);
34
+ }
35
+ return total;
36
+ }, 0);
37
+ };
38
+ this.renderCartItem = (item) => {
39
+ return (h("div", { class: "cart-item", key: item.id }, h("div", { class: "cart-item__image" }, h("img", { src: item.image, alt: item.name })), h("div", { class: "cart-item__details" }, h("div", { class: "cart-item__brand" }, item.brand), h("div", { class: "cart-item__name" }, item.name), h("div", { class: "cart-item__description" }, item.description), h("div", { class: "cart-item__price" }, "\u20AC", item.price.toFixed(2), item.originalPrice && (h("span", { class: "cart-item__original-price" }, "\u20AC", item.originalPrice.toFixed(2))))), h("div", { class: "cart-item__controls" }, h("div", { class: "quantity-controls" }, h("button", { class: "quantity-btn", onClick: () => this.handleQuantityChange(item.id, item.quantity - 1), disabled: item.quantity <= 1 }, "-"), h("span", { class: "quantity" }, item.quantity), h("button", { class: "quantity-btn", onClick: () => this.handleQuantityChange(item.id, item.quantity + 1) }, "+")), h("button", { class: "remove-btn", onClick: () => this.handleRemoveItem(item.id) }, "Remove"))));
40
+ };
41
+ this.renderProgressBar = () => {
42
+ var _a, _b;
43
+ if (!this.discountThreshold && !this.freeShippingThreshold)
44
+ return null;
45
+ const threshold = ((_a = this.discountThreshold) === null || _a === void 0 ? void 0 : _a.amount) || this.freeShippingThreshold || 0;
46
+ const current = this.calculateSubtotal();
47
+ const percentage = Math.min((current / threshold) * 100, 100);
48
+ return (h("div", { class: "progress-section" }, h("div", { class: "progress-bar" }, h("div", { class: "progress-fill", style: { width: `${percentage}%` } })), h("div", { class: "progress-text" }, this.shippingInfo || (this.freeShippingThreshold ?
49
+ `€${Math.max(0, this.freeShippingThreshold - current).toFixed(2)} away from free shipping` :
50
+ `€${Math.max(0, threshold - current).toFixed(2)} away from ${(_b = this.discountThreshold) === null || _b === void 0 ? void 0 : _b.percentage}% discount`))));
51
+ };
52
+ this.isOpen = false;
53
+ this.position = 'right';
54
+ this.items = [];
55
+ this.discountThreshold = undefined;
56
+ this.freeShippingThreshold = undefined;
57
+ this.progressPercentage = 0;
58
+ this.checkoutLabel = 'Checkout';
59
+ this.viewCartLabel = 'View Cart';
60
+ this.shippingInfo = undefined;
61
+ this.cartItems = [];
62
+ }
63
+ componentWillLoad() {
64
+ this.cartItems = [...this.items];
65
+ }
66
+ componentWillUpdate() {
67
+ if (this.items !== this.cartItems) {
68
+ this.cartItems = [...this.items];
69
+ }
70
+ }
71
+ render() {
72
+ if (!this.isOpen)
73
+ return null;
74
+ const subtotal = this.calculateSubtotal();
75
+ const savings = this.calculateSavings();
76
+ return (h("div", { class: `side-cart side-cart--${this.position} ${this.isOpen ? 'side-cart--open' : ''}` }, h("div", { class: "side-cart__overlay", onClick: this.handleClose }), h("div", { class: "side-cart__content" }, h("div", { class: "side-cart__header" }, h("h2", null, "Shopping Cart (", this.cartItems.length, ")"), h("button", { class: "close-btn", onClick: this.handleClose }, "\u00D7")), h("div", { class: "side-cart__body" }, this.cartItems.length === 0 ? (h("div", { class: "empty-cart" }, h("p", null, "Your cart is empty"))) : (h("div", { class: "cart-items" }, this.cartItems.map(item => this.renderCartItem(item)))), this.renderProgressBar()), this.cartItems.length > 0 && (h("div", { class: "side-cart__footer" }, h("div", { class: "totals" }, h("div", { class: "subtotal" }, h("span", null, "Subtotal:"), h("span", null, "\u20AC", subtotal.toFixed(2))), savings > 0 && (h("div", { class: "savings" }, h("span", null, "You save:"), h("span", null, "\u20AC", savings.toFixed(2))))), h("div", { class: "actions" }, h("button", { class: "btn btn--secondary", onClick: () => this.viewCartClicked.emit() }, this.viewCartLabel), h("button", { class: "btn btn--primary", onClick: () => this.checkoutClicked.emit() }, this.checkoutLabel)))))));
77
+ }
78
+ };
79
+ JumpSideCart.style = JumpSideCartStyle0;
80
+
81
+ export { JumpSideCart as jump_side_cart };
82
+
83
+ //# sourceMappingURL=jump-side-cart.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"jump-side-cart.entry.js","mappings":"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","names":[],"sources":["src/components/jump-side-cart/jump-side-cart.scss?tag=jump-side-cart&encapsulation=shadow","src/components/jump-side-cart/jump-side-cart.tsx"],"sourcesContent":[":host {\n --cart-width: 400px;\n --cart-bg: #ffffff;\n --overlay-bg: rgba(0, 0, 0, 0.5);\n --border-color: #e5e5e5;\n --text-primary: #333333;\n --text-secondary: #666666;\n --primary-color: #80bb55;\n --secondary-color: #f5f5f5;\n --error-color: #dc3545;\n --success-color: #28a745;\n}\n\n.side-cart {\n position: fixed;\n top: 0;\n bottom: 0;\n width: 100%;\n z-index: 1000;\n pointer-events: none;\n\n &--open {\n pointer-events: all;\n }\n\n &--right {\n right: 0;\n\n .side-cart__content {\n right: 0;\n transform: translateX(100%);\n }\n\n &.side-cart--open .side-cart__content {\n transform: translateX(0);\n }\n }\n\n &--left {\n left: 0;\n\n .side-cart__content {\n left: 0;\n transform: translateX(-100%);\n }\n\n &.side-cart--open .side-cart__content {\n transform: translateX(0);\n }\n }\n}\n\n.side-cart__overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--overlay-bg);\n opacity: 0;\n transition: opacity 0.3s ease;\n\n .side-cart--open & {\n opacity: 1;\n }\n}\n\n.side-cart__content {\n position: absolute;\n top: 0;\n bottom: 0;\n width: var(--cart-width);\n max-width: 90vw;\n background: var(--cart-bg);\n box-shadow: -2px 0 10px rgba(0, 0, 0, 0.1);\n transition: transform 0.3s ease;\n display: flex;\n flex-direction: column;\n\n .side-cart--left & {\n box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1);\n }\n}\n\n.side-cart__header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n border-bottom: 1px solid var(--border-color);\n\n h2 {\n margin: 0;\n font-size: 1.25rem;\n font-weight: 600;\n color: var(--text-primary);\n }\n\n .close-btn {\n background: none;\n border: none;\n font-size: 1.5rem;\n cursor: pointer;\n color: var(--text-secondary);\n padding: 0.25rem;\n line-height: 1;\n\n &:hover {\n color: var(--text-primary);\n }\n }\n}\n\n.side-cart__body {\n flex: 1;\n overflow-y: auto;\n padding: 1rem;\n}\n\n.empty-cart {\n text-align: center;\n padding: 2rem 0;\n color: var(--text-secondary);\n}\n\n.cart-items {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n}\n\n.cart-item {\n display: flex;\n gap: 0.75rem;\n padding: 1rem;\n border: 1px solid var(--border-color);\n border-radius: 8px;\n\n &__image {\n flex-shrink: 0;\n width: 80px;\n height: 80px;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 4px;\n }\n }\n\n &__details {\n flex: 1;\n min-width: 0;\n }\n\n &__brand {\n font-size: 0.75rem;\n color: var(--text-secondary);\n margin-bottom: 0.25rem;\n text-transform: uppercase;\n font-weight: 500;\n }\n\n &__name {\n font-size: 0.875rem;\n font-weight: 500;\n color: var(--text-primary);\n margin-bottom: 0.25rem;\n line-height: 1.3;\n }\n\n &__description {\n font-size: 0.75rem;\n color: var(--text-secondary);\n margin-bottom: 0.5rem;\n }\n\n &__price {\n font-weight: 600;\n color: var(--text-primary);\n }\n\n &__original-price {\n margin-left: 0.5rem;\n text-decoration: line-through;\n color: var(--text-secondary);\n font-weight: normal;\n }\n\n &__controls {\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n align-items: center;\n }\n}\n\n.quantity-controls {\n display: flex;\n align-items: center;\n border: 1px solid var(--border-color);\n border-radius: 4px;\n\n .quantity-btn {\n background: none;\n border: none;\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--text-primary);\n\n &:hover:not(:disabled) {\n background: var(--secondary-color);\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n }\n\n .quantity {\n min-width: 40px;\n text-align: center;\n padding: 0 0.5rem;\n border-left: 1px solid var(--border-color);\n border-right: 1px solid var(--border-color);\n font-weight: 500;\n }\n}\n\n.remove-btn {\n background: none;\n border: none;\n color: var(--error-color);\n font-size: 0.75rem;\n cursor: pointer;\n padding: 0.25rem 0.5rem;\n border-radius: 4px;\n\n &:hover {\n background: rgba(220, 53, 69, 0.1);\n }\n}\n\n.progress-section {\n margin-top: 1.5rem;\n padding-top: 1rem;\n border-top: 1px solid var(--border-color);\n}\n\n.progress-bar {\n width: 100%;\n height: 8px;\n background: var(--secondary-color);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 0.5rem;\n\n .progress-fill {\n height: 100%;\n background: var(--primary-color);\n transition: width 0.3s ease;\n }\n}\n\n.progress-text {\n font-size: 0.875rem;\n color: var(--text-secondary);\n text-align: center;\n}\n\n.side-cart__footer {\n border-top: 1px solid var(--border-color);\n padding: 1rem;\n}\n\n.totals {\n margin-bottom: 1rem;\n\n .subtotal, .savings {\n display: flex;\n justify-content: space-between;\n margin-bottom: 0.5rem;\n }\n\n .subtotal {\n font-weight: 600;\n font-size: 1.125rem;\n }\n\n .savings {\n color: var(--success-color);\n font-size: 0.875rem;\n }\n}\n\n.actions {\n display: flex;\n gap: 0.75rem;\n\n .btn {\n flex: 1;\n padding: 0.75rem;\n border: none;\n border-radius: 6px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n\n &--primary {\n background: var(--primary-color);\n color: white;\n\n &:hover {\n background: #68a03b; /* Darker shade of --primary-color */\n filter: brightness(0.9);\n }\n }\n\n &--secondary {\n background: var(--secondary-color);\n color: var(--text-primary);\n border: 1px solid var(--border-color);\n\n &:hover {\n background: #e8e8e8; /* Darker shade of --secondary-color */\n filter: brightness(0.95);\n }\n }\n }\n}\n\n// Responsive adjustments\n@media (max-width: 768px) {\n .side-cart__content {\n width: 100vw;\n max-width: none;\n }\n\n .cart-item {\n &__details {\n font-size: 0.8rem;\n }\n\n &__name {\n font-size: 0.8rem;\n }\n }\n}\n","import { Component, Prop, State, h, Event, EventEmitter } from '@stencil/core';\n\nexport interface CartItem {\n id: string | number;\n name: string;\n brand: string;\n price: number;\n originalPrice?: number;\n quantity: number;\n image: string;\n description: string;\n}\n\nexport interface DiscountThreshold {\n amount: number;\n percentage: number;\n}\n\n@Component({\n tag: 'jump-side-cart',\n styleUrl: 'jump-side-cart.scss',\n shadow: true,\n})\nexport class JumpSideCart {\n @Prop() isOpen: boolean = false;\n @Prop() position: 'left' | 'right' = 'right';\n @Prop() items: CartItem[] = [];\n @Prop() discountThreshold?: DiscountThreshold;\n @Prop() freeShippingThreshold?: number;\n @Prop() progressPercentage: number = 0;\n @Prop() checkoutLabel: string = 'Checkout';\n @Prop() viewCartLabel: string = 'View Cart';\n @Prop() shippingInfo?: string;\n\n @State() cartItems: CartItem[] = [];\n\n @Event() cartClosed: EventEmitter<void>;\n @Event() itemQuantityChanged: EventEmitter<{itemId: string | number, quantity: number}>;\n @Event() itemRemoved: EventEmitter<string | number>;\n @Event() checkoutClicked: EventEmitter<void>;\n @Event() viewCartClicked: EventEmitter<void>;\n\n componentWillLoad() {\n this.cartItems = [...this.items];\n }\n\n componentWillUpdate() {\n if (this.items !== this.cartItems) {\n this.cartItems = [...this.items];\n }\n }\n\n private handleClose = () => {\n this.cartClosed.emit();\n }\n\n private handleQuantityChange = (itemId: string | number, newQuantity: number) => {\n if (newQuantity < 1) return;\n \n this.cartItems = this.cartItems.map(item => \n item.id === itemId ? { ...item, quantity: newQuantity } : item\n );\n \n this.itemQuantityChanged.emit({ itemId, quantity: newQuantity });\n }\n\n private handleRemoveItem = (itemId: string | number) => {\n this.cartItems = this.cartItems.filter(item => item.id !== itemId);\n this.itemRemoved.emit(itemId);\n }\n\n private calculateSubtotal = (): number => {\n return this.cartItems.reduce((total, item) => total + (item.price * item.quantity), 0);\n }\n\n private calculateSavings = (): number => {\n return this.cartItems.reduce((total, item) => {\n if (item.originalPrice) {\n return total + ((item.originalPrice - item.price) * item.quantity);\n }\n return total;\n }, 0);\n }\n\n private renderCartItem = (item: CartItem) => {\n return (\n <div class=\"cart-item\" key={item.id}>\n <div class=\"cart-item__image\">\n <img src={item.image} alt={item.name} />\n </div>\n <div class=\"cart-item__details\">\n <div class=\"cart-item__brand\">{item.brand}</div>\n <div class=\"cart-item__name\">{item.name}</div>\n <div class=\"cart-item__description\">{item.description}</div>\n <div class=\"cart-item__price\">\n €{item.price.toFixed(2)}\n {item.originalPrice && (\n <span class=\"cart-item__original-price\">€{item.originalPrice.toFixed(2)}</span>\n )}\n </div>\n </div>\n <div class=\"cart-item__controls\">\n <div class=\"quantity-controls\">\n <button \n class=\"quantity-btn\"\n onClick={() => this.handleQuantityChange(item.id, item.quantity - 1)}\n disabled={item.quantity <= 1}\n >\n -\n </button>\n <span class=\"quantity\">{item.quantity}</span>\n <button \n class=\"quantity-btn\"\n onClick={() => this.handleQuantityChange(item.id, item.quantity + 1)}\n >\n +\n </button>\n </div>\n <button \n class=\"remove-btn\"\n onClick={() => this.handleRemoveItem(item.id)}\n >\n Remove\n </button>\n </div>\n </div>\n );\n }\n\n private renderProgressBar = () => {\n if (!this.discountThreshold && !this.freeShippingThreshold) return null;\n\n const threshold = this.discountThreshold?.amount || this.freeShippingThreshold || 0;\n const current = this.calculateSubtotal();\n const percentage = Math.min((current / threshold) * 100, 100);\n\n return (\n <div class=\"progress-section\">\n <div class=\"progress-bar\">\n <div class=\"progress-fill\" style={{ width: `${percentage}%` }}></div>\n </div>\n <div class=\"progress-text\">\n {this.shippingInfo || (\n this.freeShippingThreshold ? \n `€${Math.max(0, this.freeShippingThreshold - current).toFixed(2)} away from free shipping` :\n `€${Math.max(0, threshold - current).toFixed(2)} away from ${this.discountThreshold?.percentage}% discount`\n )}\n </div>\n </div>\n );\n }\n\n render() {\n if (!this.isOpen) return null;\n\n const subtotal = this.calculateSubtotal();\n const savings = this.calculateSavings();\n\n return (\n <div class={`side-cart side-cart--${this.position} ${this.isOpen ? 'side-cart--open' : ''}`}>\n <div class=\"side-cart__overlay\" onClick={this.handleClose}></div>\n \n <div class=\"side-cart__content\">\n <div class=\"side-cart__header\">\n <h2>Shopping Cart ({this.cartItems.length})</h2>\n <button class=\"close-btn\" onClick={this.handleClose}>×</button>\n </div>\n\n <div class=\"side-cart__body\">\n {this.cartItems.length === 0 ? (\n <div class=\"empty-cart\">\n <p>Your cart is empty</p>\n </div>\n ) : (\n <div class=\"cart-items\">\n {this.cartItems.map(item => this.renderCartItem(item))}\n </div>\n )}\n\n {this.renderProgressBar()}\n </div>\n\n {this.cartItems.length > 0 && (\n <div class=\"side-cart__footer\">\n <div class=\"totals\">\n <div class=\"subtotal\">\n <span>Subtotal:</span>\n <span>€{subtotal.toFixed(2)}</span>\n </div>\n {savings > 0 && (\n <div class=\"savings\">\n <span>You save:</span>\n <span>€{savings.toFixed(2)}</span>\n </div>\n )}\n </div>\n \n <div class=\"actions\">\n <button \n class=\"btn btn--secondary\"\n onClick={() => this.viewCartClicked.emit()}\n >\n {this.viewCartLabel}\n </button>\n <button \n class=\"btn btn--primary\"\n onClick={() => this.checkoutClicked.emit()}\n >\n {this.checkoutLabel}\n </button>\n </div>\n </div>\n )}\n </div>\n </div>\n );\n }\n}\n"],"version":3}