@jumpgroup/jump-design-system 0.3.68 → 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 (167) 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 +70 -8
  14. package/dist/cjs/jump-filter-select.cjs.entry.js.map +1 -1
  15. package/dist/cjs/jump-filter-switch.cjs.entry.js +1 -1
  16. package/dist/cjs/jump-filter.cjs.entry.js +1 -1
  17. package/dist/cjs/jump-filtergroup.cjs.entry.js +1 -1
  18. package/dist/cjs/jump-navbar.cjs.entry.js +1 -1
  19. package/dist/cjs/jump-pagination-table.cjs.entry.js +1 -1
  20. package/dist/cjs/jump-pagination.cjs.entry.js +1 -1
  21. package/dist/cjs/jump-quantity.cjs.entry.js +1 -1
  22. package/dist/cjs/jump-search-bar-dropdown-item.cjs.entry.js +1 -1
  23. package/dist/cjs/jump-search-bar-mobile.cjs.entry.js +1 -1
  24. package/dist/cjs/jump-search-bar.cjs.entry.js +1 -1
  25. package/dist/cjs/jump-side-cart-example.cjs.entry.js +73 -0
  26. package/dist/cjs/jump-side-cart-example.cjs.entry.js.map +1 -0
  27. package/dist/cjs/jump-side-cart.cjs.entry.js +87 -0
  28. package/dist/cjs/jump-side-cart.cjs.entry.js.map +1 -0
  29. package/dist/cjs/jump-tab-item.cjs.entry.js +3 -3
  30. package/dist/cjs/jump-tab-panel.cjs.entry.js +2 -2
  31. package/dist/cjs/jump-tab.cjs.entry.js +2 -2
  32. package/dist/cjs/loader.cjs.js +2 -2
  33. package/dist/collection/collection-manifest.json +2 -0
  34. package/dist/collection/components/jump-card-ecommerce/jump-card-ecommerce.css +1 -0
  35. package/dist/collection/components/jump-card-ecommerce-option/jump-card-ecommerce-option.stories.js +1 -0
  36. package/dist/collection/components/jump-card-ecommerce-option/jump-card-ecommerce-option.stories.js.map +1 -1
  37. package/dist/collection/components/jump-filter-select/jump-filter-select.js +143 -8
  38. package/dist/collection/components/jump-filter-select/jump-filter-select.js.map +1 -1
  39. package/dist/collection/components/jump-side-cart/index.js +1 -0
  40. package/dist/collection/components/jump-side-cart/index.js.map +1 -0
  41. package/dist/collection/components/jump-side-cart/jump-side-cart.css +315 -0
  42. package/dist/collection/components/jump-side-cart/jump-side-cart.example.css +30 -0
  43. package/dist/collection/components/jump-side-cart/jump-side-cart.example.js +79 -0
  44. package/dist/collection/components/jump-side-cart/jump-side-cart.example.js.map +1 -0
  45. package/dist/collection/components/jump-side-cart/jump-side-cart.js +335 -0
  46. package/dist/collection/components/jump-side-cart/jump-side-cart.js.map +1 -0
  47. package/dist/collection/components/jump-side-cart/jump-side-cart.stories.js +134 -0
  48. package/dist/collection/components/jump-side-cart/jump-side-cart.stories.js.map +1 -0
  49. package/dist/collection/components/jump-tab/jump-tab.js +1 -1
  50. package/dist/collection/components/jump-tab-item/jump-tab-item.js +2 -2
  51. package/dist/collection/components/jump-tab-panel/jump-tab-panel.js +1 -1
  52. package/dist/components/jump-card-ecommerce.js +1 -1
  53. package/dist/components/jump-card-ecommerce.js.map +1 -1
  54. package/dist/components/jump-filter-select.js +73 -7
  55. package/dist/components/jump-filter-select.js.map +1 -1
  56. package/dist/components/jump-side-cart-example.d.ts +11 -0
  57. package/dist/components/jump-side-cart-example.js +97 -0
  58. package/dist/components/jump-side-cart-example.js.map +1 -0
  59. package/dist/components/jump-side-cart.d.ts +11 -0
  60. package/dist/components/jump-side-cart.js +8 -0
  61. package/dist/components/jump-side-cart.js.map +1 -0
  62. package/dist/components/jump-side-cart2.js +109 -0
  63. package/dist/components/jump-side-cart2.js.map +1 -0
  64. package/dist/components/jump-tab-item.js +2 -2
  65. package/dist/components/jump-tab-panel.js +1 -1
  66. package/dist/components/jump-tab.js +1 -1
  67. package/dist/esm/{index-7eb565cd.js → index-4363ffe4.js} +6 -2
  68. package/dist/esm/index-4363ffe4.js.map +1 -0
  69. package/dist/esm/jump-accordion-group.entry.js +1 -1
  70. package/dist/esm/jump-accordion.entry.js +1 -1
  71. package/dist/esm/jump-badge.entry.js +1 -1
  72. package/dist/esm/jump-button_2.entry.js +1 -1
  73. package/dist/esm/jump-card-ecommerce-option.entry.js +1 -1
  74. package/dist/esm/jump-card-ecommerce.entry.js +2 -2
  75. package/dist/esm/jump-card-ecommerce.entry.js.map +1 -1
  76. package/dist/esm/jump-card.entry.js +1 -1
  77. package/dist/esm/jump-design-system.js +3 -3
  78. package/dist/esm/jump-filter-checkbox.entry.js +1 -1
  79. package/dist/esm/jump-filter-select.entry.js +70 -8
  80. package/dist/esm/jump-filter-select.entry.js.map +1 -1
  81. package/dist/esm/jump-filter-switch.entry.js +1 -1
  82. package/dist/esm/jump-filter.entry.js +1 -1
  83. package/dist/esm/jump-filtergroup.entry.js +1 -1
  84. package/dist/esm/jump-navbar.entry.js +1 -1
  85. package/dist/esm/jump-pagination-table.entry.js +1 -1
  86. package/dist/esm/jump-pagination.entry.js +1 -1
  87. package/dist/esm/jump-quantity.entry.js +1 -1
  88. package/dist/esm/jump-search-bar-dropdown-item.entry.js +1 -1
  89. package/dist/esm/jump-search-bar-mobile.entry.js +1 -1
  90. package/dist/esm/jump-search-bar.entry.js +1 -1
  91. package/dist/esm/jump-side-cart-example.entry.js +69 -0
  92. package/dist/esm/jump-side-cart-example.entry.js.map +1 -0
  93. package/dist/esm/jump-side-cart.entry.js +83 -0
  94. package/dist/esm/jump-side-cart.entry.js.map +1 -0
  95. package/dist/esm/jump-tab-item.entry.js +3 -3
  96. package/dist/esm/jump-tab-panel.entry.js +2 -2
  97. package/dist/esm/jump-tab.entry.js +2 -2
  98. package/dist/esm/loader.js +3 -3
  99. package/dist/jump-design-system/jump-design-system.esm.js +1 -1
  100. package/dist/jump-design-system/jump-design-system.esm.js.map +1 -1
  101. package/dist/jump-design-system/p-0432b242.entry.js +2 -0
  102. package/dist/jump-design-system/p-0432b242.entry.js.map +1 -0
  103. package/dist/jump-design-system/{p-3b4127b0.entry.js → p-089b9c5c.entry.js} +2 -2
  104. package/dist/jump-design-system/p-0cc799f3.entry.js +2 -0
  105. package/dist/jump-design-system/p-0cdca5df.entry.js +2 -0
  106. package/dist/jump-design-system/{p-947d7f9a.entry.js → p-2e274d20.entry.js} +2 -2
  107. package/dist/jump-design-system/{p-d8bfd21c.entry.js → p-35f2032b.entry.js} +2 -2
  108. package/dist/jump-design-system/p-40ca24a6.js +3 -0
  109. package/dist/{esm/index-7eb565cd.js.map → jump-design-system/p-40ca24a6.js.map} +1 -1
  110. package/dist/jump-design-system/{p-ff8d70ab.entry.js → p-4706eba4.entry.js} +2 -2
  111. package/dist/jump-design-system/{p-79c78037.entry.js → p-617c7cd7.entry.js} +2 -2
  112. package/dist/jump-design-system/{p-201c09dd.entry.js → p-629ef0c7.entry.js} +2 -2
  113. package/dist/jump-design-system/{p-8d1d2af9.entry.js → p-66c79fb9.entry.js} +4 -4
  114. package/dist/jump-design-system/{p-98ef4924.entry.js → p-79e5dac6.entry.js} +2 -2
  115. package/dist/jump-design-system/{p-3c1076e0.entry.js → p-7a2bc23d.entry.js} +2 -2
  116. package/dist/jump-design-system/{p-d3b62e9b.entry.js → p-800fd60b.entry.js} +2 -2
  117. package/dist/jump-design-system/{p-94790673.entry.js → p-83b3a560.entry.js} +2 -2
  118. package/dist/jump-design-system/p-8f02eb5e.entry.js +2 -0
  119. package/dist/jump-design-system/p-8f02eb5e.entry.js.map +1 -0
  120. package/dist/jump-design-system/{p-90c51b48.entry.js → p-9035201c.entry.js} +2 -2
  121. package/dist/jump-design-system/{p-7dd5052b.entry.js → p-9279b124.entry.js} +2 -2
  122. package/dist/jump-design-system/{p-d94fabc1.entry.js → p-a0237406.entry.js} +2 -2
  123. package/dist/jump-design-system/{p-3e31b638.entry.js → p-a7d5e687.entry.js} +2 -2
  124. package/dist/jump-design-system/{p-8e0419b1.entry.js → p-b8b28d8b.entry.js} +2 -2
  125. package/dist/jump-design-system/p-cb9ab473.entry.js +2 -0
  126. package/dist/jump-design-system/{p-a05d9480.entry.js → p-e7b3ebb1.entry.js} +2 -2
  127. package/dist/jump-design-system/p-e7d1e3d8.entry.js +2 -0
  128. package/dist/jump-design-system/p-e7d1e3d8.entry.js.map +1 -0
  129. package/dist/jump-design-system/{p-469ccf77.entry.js → p-fa2a10bf.entry.js} +5 -5
  130. package/dist/jump-design-system/p-fa2a10bf.entry.js.map +1 -0
  131. package/dist/jump-design-system-elements.json +57 -0
  132. package/dist/types/components/jump-filter-select/jump-filter-select.d.ts +22 -0
  133. package/dist/types/components/jump-side-cart/index.d.ts +0 -0
  134. package/dist/types/components/jump-side-cart/jump-side-cart.d.ts +45 -0
  135. package/dist/types/components/jump-side-cart/jump-side-cart.example.d.ts +14 -0
  136. package/dist/types/components/jump-side-cart/jump-side-cart.stories.d.ts +43 -0
  137. package/dist/types/components.d.ts +93 -0
  138. package/package.json +1 -1
  139. package/dist/cjs/index-864e40de.js.map +0 -1
  140. package/dist/jump-design-system/p-0cbcc5b3.entry.js +0 -2
  141. package/dist/jump-design-system/p-39b82674.entry.js +0 -2
  142. package/dist/jump-design-system/p-469ccf77.entry.js.map +0 -1
  143. package/dist/jump-design-system/p-926c7bf0.entry.js +0 -2
  144. package/dist/jump-design-system/p-ad550de6.entry.js +0 -2
  145. package/dist/jump-design-system/p-ad550de6.entry.js.map +0 -1
  146. package/dist/jump-design-system/p-e516e812.js +0 -3
  147. package/dist/jump-design-system/p-e516e812.js.map +0 -1
  148. /package/dist/jump-design-system/{p-3b4127b0.entry.js.map → p-089b9c5c.entry.js.map} +0 -0
  149. /package/dist/jump-design-system/{p-0cbcc5b3.entry.js.map → p-0cc799f3.entry.js.map} +0 -0
  150. /package/dist/jump-design-system/{p-926c7bf0.entry.js.map → p-0cdca5df.entry.js.map} +0 -0
  151. /package/dist/jump-design-system/{p-947d7f9a.entry.js.map → p-2e274d20.entry.js.map} +0 -0
  152. /package/dist/jump-design-system/{p-d8bfd21c.entry.js.map → p-35f2032b.entry.js.map} +0 -0
  153. /package/dist/jump-design-system/{p-ff8d70ab.entry.js.map → p-4706eba4.entry.js.map} +0 -0
  154. /package/dist/jump-design-system/{p-79c78037.entry.js.map → p-617c7cd7.entry.js.map} +0 -0
  155. /package/dist/jump-design-system/{p-201c09dd.entry.js.map → p-629ef0c7.entry.js.map} +0 -0
  156. /package/dist/jump-design-system/{p-8d1d2af9.entry.js.map → p-66c79fb9.entry.js.map} +0 -0
  157. /package/dist/jump-design-system/{p-98ef4924.entry.js.map → p-79e5dac6.entry.js.map} +0 -0
  158. /package/dist/jump-design-system/{p-3c1076e0.entry.js.map → p-7a2bc23d.entry.js.map} +0 -0
  159. /package/dist/jump-design-system/{p-d3b62e9b.entry.js.map → p-800fd60b.entry.js.map} +0 -0
  160. /package/dist/jump-design-system/{p-94790673.entry.js.map → p-83b3a560.entry.js.map} +0 -0
  161. /package/dist/jump-design-system/{p-90c51b48.entry.js.map → p-9035201c.entry.js.map} +0 -0
  162. /package/dist/jump-design-system/{p-7dd5052b.entry.js.map → p-9279b124.entry.js.map} +0 -0
  163. /package/dist/jump-design-system/{p-d94fabc1.entry.js.map → p-a0237406.entry.js.map} +0 -0
  164. /package/dist/jump-design-system/{p-3e31b638.entry.js.map → p-a7d5e687.entry.js.map} +0 -0
  165. /package/dist/jump-design-system/{p-8e0419b1.entry.js.map → p-b8b28d8b.entry.js.map} +0 -0
  166. /package/dist/jump-design-system/{p-39b82674.entry.js.map → p-cb9ab473.entry.js.map} +0 -0
  167. /package/dist/jump-design-system/{p-a05d9480.entry.js.map → p-e7b3ebb1.entry.js.map} +0 -0
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface JumpSideCartExample extends Components.JumpSideCartExample, HTMLElement {}
4
+ export const JumpSideCartExample: {
5
+ prototype: JumpSideCartExample;
6
+ new (): JumpSideCartExample;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,97 @@
1
+ import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
2
+ import { d as defineCustomElement$2 } from './jump-side-cart2.js';
3
+
4
+ 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)}";
5
+ const JumpSideCartExampleStyle0 = jumpSideCartExampleCss;
6
+
7
+ const JumpSideCartExample$1 = /*@__PURE__*/ proxyCustomElement(class JumpSideCartExample extends HTMLElement {
8
+ constructor() {
9
+ super();
10
+ this.__registerHost();
11
+ this.__attachShadow();
12
+ this.handleUpdateQuantity = (event) => {
13
+ const { itemId, quantity } = event.detail;
14
+ this.cartItems = this.cartItems.map(item => item.id === itemId ? Object.assign(Object.assign({}, item), { quantity }) : item);
15
+ };
16
+ this.handleRemoveItem = (event) => {
17
+ const itemId = event.detail;
18
+ this.cartItems = this.cartItems.filter(item => item.id !== itemId);
19
+ };
20
+ this.handleCartClosed = () => {
21
+ this.isCartOpen = false;
22
+ };
23
+ this.handleCheckout = () => {
24
+ alert("Proceeding to checkout");
25
+ };
26
+ this.handleViewCart = () => {
27
+ alert("View cart clicked");
28
+ };
29
+ this.openCartFromRight = () => {
30
+ this.position = 'right';
31
+ this.isCartOpen = true;
32
+ };
33
+ this.openCartFromLeft = () => {
34
+ this.position = 'left';
35
+ this.isCartOpen = true;
36
+ };
37
+ this.isCartOpen = false;
38
+ this.position = 'right';
39
+ this.cartItems = [
40
+ {
41
+ id: "1",
42
+ name: "Prolife Grain Free Adult Sensitive Mini Manzo e Patate per Cani",
43
+ brand: "Prolife",
44
+ price: 15.00,
45
+ originalPrice: 30.00,
46
+ quantity: 1,
47
+ image: "/placeholder.svg?height=80&width=80",
48
+ description: "500 g"
49
+ },
50
+ {
51
+ id: "2",
52
+ name: "Prolife Grain Free Adult Sensitive Mini Manzo e Patate per Cani",
53
+ brand: "Prolife",
54
+ price: 15.00,
55
+ quantity: 1,
56
+ image: "/placeholder.svg?height=80&width=80",
57
+ description: "500 g"
58
+ }
59
+ ];
60
+ }
61
+ render() {
62
+ 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: {
63
+ amount: 170,
64
+ percentage: 3
65
+ }, progressPercentage: 30, checkoutLabel: "Vai al Checkout", viewCartLabel: "Vedi carrello", onCartClosed: this.handleCartClosed, onItemQuantityChanged: this.handleUpdateQuantity, onItemRemoved: this.handleRemoveItem, onCheckoutClicked: this.handleCheckout, onViewCartClicked: this.handleViewCart })));
66
+ }
67
+ static get style() { return JumpSideCartExampleStyle0; }
68
+ }, [1, "jump-side-cart-example", {
69
+ "isCartOpen": [32],
70
+ "position": [32],
71
+ "cartItems": [32]
72
+ }]);
73
+ function defineCustomElement$1() {
74
+ if (typeof customElements === "undefined") {
75
+ return;
76
+ }
77
+ const components = ["jump-side-cart-example", "jump-side-cart"];
78
+ components.forEach(tagName => { switch (tagName) {
79
+ case "jump-side-cart-example":
80
+ if (!customElements.get(tagName)) {
81
+ customElements.define(tagName, JumpSideCartExample$1);
82
+ }
83
+ break;
84
+ case "jump-side-cart":
85
+ if (!customElements.get(tagName)) {
86
+ defineCustomElement$2();
87
+ }
88
+ break;
89
+ } });
90
+ }
91
+
92
+ const JumpSideCartExample = JumpSideCartExample$1;
93
+ const defineCustomElement = defineCustomElement$1;
94
+
95
+ export { JumpSideCartExample, defineCustomElement };
96
+
97
+ //# sourceMappingURL=jump-side-cart-example.js.map
@@ -0,0 +1 @@
1
+ {"file":"jump-side-cart-example.js","mappings":";;;AAAA,MAAM,sBAAsB,GAAG,+aAA+a,CAAC;AAC/c,kCAAe,sBAAsB;;MCOxBA,qBAAmB;;;;;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":["JumpSideCartExample"],"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,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface JumpSideCart extends Components.JumpSideCart, HTMLElement {}
4
+ export const JumpSideCart: {
5
+ prototype: JumpSideCart;
6
+ new (): JumpSideCart;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,8 @@
1
+ import { J as JumpSideCart$1, d as defineCustomElement$1 } from './jump-side-cart2.js';
2
+
3
+ const JumpSideCart = JumpSideCart$1;
4
+ const defineCustomElement = defineCustomElement$1;
5
+
6
+ export { JumpSideCart, defineCustomElement };
7
+
8
+ //# sourceMappingURL=jump-side-cart.js.map
@@ -0,0 +1 @@
1
+ {"file":"jump-side-cart.js","mappings":";;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
@@ -0,0 +1,109 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
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 = /*@__PURE__*/ proxyCustomElement(class JumpSideCart extends HTMLElement {
7
+ constructor() {
8
+ super();
9
+ this.__registerHost();
10
+ this.__attachShadow();
11
+ this.cartClosed = createEvent(this, "cartClosed", 7);
12
+ this.itemQuantityChanged = createEvent(this, "itemQuantityChanged", 7);
13
+ this.itemRemoved = createEvent(this, "itemRemoved", 7);
14
+ this.checkoutClicked = createEvent(this, "checkoutClicked", 7);
15
+ this.viewCartClicked = createEvent(this, "viewCartClicked", 7);
16
+ this.handleClose = () => {
17
+ this.cartClosed.emit();
18
+ };
19
+ this.handleQuantityChange = (itemId, newQuantity) => {
20
+ if (newQuantity < 1)
21
+ return;
22
+ this.cartItems = this.cartItems.map(item => item.id === itemId ? Object.assign(Object.assign({}, item), { quantity: newQuantity }) : item);
23
+ this.itemQuantityChanged.emit({ itemId, quantity: newQuantity });
24
+ };
25
+ this.handleRemoveItem = (itemId) => {
26
+ this.cartItems = this.cartItems.filter(item => item.id !== itemId);
27
+ this.itemRemoved.emit(itemId);
28
+ };
29
+ this.calculateSubtotal = () => {
30
+ return this.cartItems.reduce((total, item) => total + (item.price * item.quantity), 0);
31
+ };
32
+ this.calculateSavings = () => {
33
+ return this.cartItems.reduce((total, item) => {
34
+ if (item.originalPrice) {
35
+ return total + ((item.originalPrice - item.price) * item.quantity);
36
+ }
37
+ return total;
38
+ }, 0);
39
+ };
40
+ this.renderCartItem = (item) => {
41
+ 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"))));
42
+ };
43
+ this.renderProgressBar = () => {
44
+ var _a, _b;
45
+ if (!this.discountThreshold && !this.freeShippingThreshold)
46
+ return null;
47
+ const threshold = ((_a = this.discountThreshold) === null || _a === void 0 ? void 0 : _a.amount) || this.freeShippingThreshold || 0;
48
+ const current = this.calculateSubtotal();
49
+ const percentage = Math.min((current / threshold) * 100, 100);
50
+ 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 ?
51
+ `€${Math.max(0, this.freeShippingThreshold - current).toFixed(2)} away from free shipping` :
52
+ `€${Math.max(0, threshold - current).toFixed(2)} away from ${(_b = this.discountThreshold) === null || _b === void 0 ? void 0 : _b.percentage}% discount`))));
53
+ };
54
+ this.isOpen = false;
55
+ this.position = 'right';
56
+ this.items = [];
57
+ this.discountThreshold = undefined;
58
+ this.freeShippingThreshold = undefined;
59
+ this.progressPercentage = 0;
60
+ this.checkoutLabel = 'Checkout';
61
+ this.viewCartLabel = 'View Cart';
62
+ this.shippingInfo = undefined;
63
+ this.cartItems = [];
64
+ }
65
+ componentWillLoad() {
66
+ this.cartItems = [...this.items];
67
+ }
68
+ componentWillUpdate() {
69
+ if (this.items !== this.cartItems) {
70
+ this.cartItems = [...this.items];
71
+ }
72
+ }
73
+ render() {
74
+ if (!this.isOpen)
75
+ return null;
76
+ const subtotal = this.calculateSubtotal();
77
+ const savings = this.calculateSavings();
78
+ 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)))))));
79
+ }
80
+ static get style() { return JumpSideCartStyle0; }
81
+ }, [1, "jump-side-cart", {
82
+ "isOpen": [4, "is-open"],
83
+ "position": [1],
84
+ "items": [16],
85
+ "discountThreshold": [16],
86
+ "freeShippingThreshold": [2, "free-shipping-threshold"],
87
+ "progressPercentage": [2, "progress-percentage"],
88
+ "checkoutLabel": [1, "checkout-label"],
89
+ "viewCartLabel": [1, "view-cart-label"],
90
+ "shippingInfo": [1, "shipping-info"],
91
+ "cartItems": [32]
92
+ }]);
93
+ function defineCustomElement() {
94
+ if (typeof customElements === "undefined") {
95
+ return;
96
+ }
97
+ const components = ["jump-side-cart"];
98
+ components.forEach(tagName => { switch (tagName) {
99
+ case "jump-side-cart":
100
+ if (!customElements.get(tagName)) {
101
+ customElements.define(tagName, JumpSideCart);
102
+ }
103
+ break;
104
+ } });
105
+ }
106
+
107
+ export { JumpSideCart as J, defineCustomElement as d };
108
+
109
+ //# sourceMappingURL=jump-side-cart2.js.map
@@ -0,0 +1 @@
1
+ {"file":"jump-side-cart2.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}
@@ -27,8 +27,8 @@ const JumpTabItem$1 = /*@__PURE__*/ proxyCustomElement(class JumpTabItem extends
27
27
  this.variant = parentVariant;
28
28
  }
29
29
  render() {
30
- return (h(Host, { key: '20bcab66648d2c1a2dab7fa45aeaf160cba65be0', ref: (el) => { this.tabEl = el; }, class: "JumpTabItem " + (this.active ? 'active' : '') + " " + (this.variant) + " " + (this.disabled ? 'disabled' : '') }, h("div", { key: '31fbceda6a68188b055c0e1d15ca2911a584c87a', class: "Content " + (this.iconName ? this.iconPosition : '') + " " + (this.variant) + " " + (this.active ? 'active' : '') + " " + (this.disabled ? 'disabled' : ''), onClick: () => this.changeTab(this.identifier), id: this.identifier }, (this.iconName && (this.variant == 'inline' || this.variant == 'boxed')) &&
31
- h("jump-icon", { key: 'e3760a45cfc90383b284268d5185b04cfdc30a8e', library: "fa", category: "regular", name: this.iconName, size: "small" }), h("span", { key: 'ee2b41643c241569429b359c121d1c0827de7cbf', class: "label" }, this.label))));
30
+ return (h(Host, { key: 'a4c96d6aa528be6ef7585117065610a4ab259477', ref: (el) => { this.tabEl = el; }, class: "JumpTabItem " + (this.active ? 'active' : '') + " " + (this.variant) + " " + (this.disabled ? 'disabled' : '') }, h("div", { key: '938011134a1e7b8b779529c98c82287e6074d544', class: "Content " + (this.iconName ? this.iconPosition : '') + " " + (this.variant) + " " + (this.active ? 'active' : '') + " " + (this.disabled ? 'disabled' : ''), onClick: () => this.changeTab(this.identifier), id: this.identifier }, (this.iconName && (this.variant == 'inline' || this.variant == 'boxed')) &&
31
+ h("jump-icon", { key: 'fc52b89c2dfe2e00928bf7df8231a1efed0934f5', library: "fa", category: "regular", name: this.iconName, size: "small" }), h("span", { key: '505a8245b25b7ea1f9c63221f344aba04ab438e1', class: "label" }, this.label))));
32
32
  }
33
33
  static get style() { return JumpTabItemStyle0; }
34
34
  }, [1, "jump-tab-item", {
@@ -12,7 +12,7 @@ const JumpTabPanel$1 = /*@__PURE__*/ proxyCustomElement(class JumpTabPanel exten
12
12
  this.active = false;
13
13
  }
14
14
  render() {
15
- return (h(Host, { key: 'cf92120024b87b2226981c093ff8addeb9f6047e', class: "JumpTabPanel", id: this.identifier }, h("div", { key: 'b3705621ee187894cdf1f0eda5fef73573046646', class: "JumpTabPanel__Content " + (this.active ? 'active' : '') }, h("slot", { key: '8f42f264b401f8f9c5336bdb6216bdb13fb2ba0d' }))));
15
+ return (h(Host, { key: 'd9f90af98ebb99d55241c3fef49e5d8e08f8540f', class: "JumpTabPanel", id: this.identifier }, h("div", { key: '6fc79b82988a87e0c3e13b08dcd08305e173eaab', class: "JumpTabPanel__Content " + (this.active ? 'active' : '') }, h("slot", { key: 'ac3bfea8a132096ae27e9fbd146e090626c72ff5' }))));
16
16
  }
17
17
  static get style() { return JumpTabPanelStyle0; }
18
18
  }, [1, "jump-tab-panel", {
@@ -74,7 +74,7 @@ const JumpTab$1 = /*@__PURE__*/ proxyCustomElement(class JumpTab extends HTMLEle
74
74
  }
75
75
  }
76
76
  render() {
77
- return (h(Host, { key: '8a0199ca73b829bf916eb0065ea2349e3893b6d0', class: "JumpTab " + this.variant, id: this.tabGroupName, ref: (el) => { this.JumpTabEl = el; } }, h("div", { key: 'dbdef0b65d8149dd17f71022b802b53e6917dd4f', class: "Wrapper " + (this.fullBorder ? 'fullBorder' : '') }, h("div", { key: 'e8115b34e124bc2d85a273867dac7ab82a09db65', class: "ContentWrapper ContentWrapper--Items", style: { '--alignment': this.getAlignment(this.alignment) } }, h("div", { key: '973243bfa74224b6184d62ce36536f4720561f9c', class: "Content " + this.variant + " " + (this.disabled ? 'disabled' : '') + " " + (this.fullBorder ? 'fullBorder' : ''), style: { '--alignment': this.getAlignment(this.alignment) } }, h("slot", { key: 'c6ee4fb22decdb4f1e3d89e679987cd211e722ec', name: "tab-item" }))), h("div", { key: 'fa9565bba6ab3bc3eff4f9f232bfbd80829f6d4c', class: "ContentWrapper ContentWrapper--Panel" }, h("slot", { key: '0754dcab98e5e8ca3bd27babd3b90f9083c0c489', name: "tab-content" })))));
77
+ return (h(Host, { key: 'eb67c13009a3d5bb2ea7275c02a0cf4936496244', class: "JumpTab " + this.variant, id: this.tabGroupName, ref: (el) => { this.JumpTabEl = el; } }, h("div", { key: '2be879c8dc231a42c69457353855d52ef438339d', class: "Wrapper " + (this.fullBorder ? 'fullBorder' : '') }, h("div", { key: '7dcbffc75c62e3dd64ecf47f50f0b308c4882a04', class: "ContentWrapper ContentWrapper--Items", style: { '--alignment': this.getAlignment(this.alignment) } }, h("div", { key: '17c437c456684b5fcac81e5df964ac316c8b7371', class: "Content " + this.variant + " " + (this.disabled ? 'disabled' : '') + " " + (this.fullBorder ? 'fullBorder' : ''), style: { '--alignment': this.getAlignment(this.alignment) } }, h("slot", { key: '14b413cc2687aa73e848bb0bdccb2b9121d46fc3', name: "tab-item" }))), h("div", { key: 'fd9ed0cddc9fec9779b5a76e5a378bdd7f153c08', class: "ContentWrapper ContentWrapper--Panel" }, h("slot", { key: '0bd78d8369b8402f5e8d1182b82d0110209c57c2', name: "tab-content" })))));
78
78
  }
79
79
  getAlignment(alignment) {
80
80
  switch (alignment) {
@@ -1,5 +1,5 @@
1
1
  const NAMESPACE = 'jump-design-system';
2
- const BUILD = /* jump-design-system */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: true, cmpWillUpdate: false, connectedCallback: false, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: true, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: true, hasRenderFn: true, hostListener: true, hostListenerTarget: true, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: true, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: "hydrated", initializeNextTick: false, invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: true, mode: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: true, propNumber: true, propString: true, reflect: true, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: true, slotChildNodesFix: false, slotRelocation: true, state: true, style: true, svg: true, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: false, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: false, watchCallback: true };
2
+ const BUILD = /* jump-design-system */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: true, cmpWillUpdate: true, connectedCallback: false, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: true, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: true, hasRenderFn: true, hostListener: true, hostListenerTarget: true, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: true, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: "hydrated", initializeNextTick: false, invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: true, mode: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: true, propNumber: true, propString: true, reflect: true, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: true, slotChildNodesFix: false, slotRelocation: true, state: true, style: true, svg: true, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: false, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: false, watchCallback: true };
3
3
 
4
4
  /*
5
5
  Stencil Client Platform v4.18.2 | MIT Licensed | https://stenciljs.com
@@ -919,6 +919,10 @@ var dispatchHooks = (hostRef, isInitialLoad) => {
919
919
  {
920
920
  maybePromise = safeCall(instance, "componentWillLoad");
921
921
  }
922
+ } else {
923
+ {
924
+ maybePromise = safeCall(instance, "componentWillUpdate");
925
+ }
922
926
  }
923
927
  {
924
928
  maybePromise = enqueue(maybePromise, () => safeCall(instance, "componentWillRender"));
@@ -1589,4 +1593,4 @@ var writeTask = /* @__PURE__ */ queueTask(queueDomWrites, true);
1589
1593
 
1590
1594
  export { Host as H, bootstrapLazy as b, createEvent as c, getElement as g, h, promiseResolve as p, registerInstance as r, setNonce as s };
1591
1595
 
1592
- //# sourceMappingURL=index-7eb565cd.js.map
1596
+ //# sourceMappingURL=index-4363ffe4.js.map