@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
@@ -0,0 +1,79 @@
1
+ import { h } from "@stencil/core";
2
+ export class JumpSideCartExample {
3
+ constructor() {
4
+ this.handleUpdateQuantity = (event) => {
5
+ const { itemId, quantity } = event.detail;
6
+ this.cartItems = this.cartItems.map(item => item.id === itemId ? Object.assign(Object.assign({}, item), { quantity }) : item);
7
+ };
8
+ this.handleRemoveItem = (event) => {
9
+ const itemId = event.detail;
10
+ this.cartItems = this.cartItems.filter(item => item.id !== itemId);
11
+ };
12
+ this.handleCartClosed = () => {
13
+ this.isCartOpen = false;
14
+ };
15
+ this.handleCheckout = () => {
16
+ alert("Proceeding to checkout");
17
+ };
18
+ this.handleViewCart = () => {
19
+ alert("View cart clicked");
20
+ };
21
+ this.openCartFromRight = () => {
22
+ this.position = 'right';
23
+ this.isCartOpen = true;
24
+ };
25
+ this.openCartFromLeft = () => {
26
+ this.position = 'left';
27
+ this.isCartOpen = true;
28
+ };
29
+ this.isCartOpen = false;
30
+ this.position = 'right';
31
+ this.cartItems = [
32
+ {
33
+ id: "1",
34
+ name: "Prolife Grain Free Adult Sensitive Mini Manzo e Patate per Cani",
35
+ brand: "Prolife",
36
+ price: 15.00,
37
+ originalPrice: 30.00,
38
+ quantity: 1,
39
+ image: "/placeholder.svg?height=80&width=80",
40
+ description: "500 g"
41
+ },
42
+ {
43
+ id: "2",
44
+ name: "Prolife Grain Free Adult Sensitive Mini Manzo e Patate per Cani",
45
+ brand: "Prolife",
46
+ price: 15.00,
47
+ quantity: 1,
48
+ image: "/placeholder.svg?height=80&width=80",
49
+ description: "500 g"
50
+ }
51
+ ];
52
+ }
53
+ render() {
54
+ 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: {
55
+ amount: 170,
56
+ percentage: 3
57
+ }, progressPercentage: 30, checkoutLabel: "Vai al Checkout", viewCartLabel: "Vedi carrello", onCartClosed: this.handleCartClosed, onItemQuantityChanged: this.handleUpdateQuantity, onItemRemoved: this.handleRemoveItem, onCheckoutClicked: this.handleCheckout, onViewCartClicked: this.handleViewCart })));
58
+ }
59
+ static get is() { return "jump-side-cart-example"; }
60
+ static get encapsulation() { return "shadow"; }
61
+ static get originalStyleUrls() {
62
+ return {
63
+ "$": ["jump-side-cart.example.scss"]
64
+ };
65
+ }
66
+ static get styleUrls() {
67
+ return {
68
+ "$": ["jump-side-cart.example.css"]
69
+ };
70
+ }
71
+ static get states() {
72
+ return {
73
+ "isCartOpen": {},
74
+ "position": {},
75
+ "cartItems": {}
76
+ };
77
+ }
78
+ }
79
+ //# sourceMappingURL=jump-side-cart.example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jump-side-cart.example.js","sourceRoot":"","sources":["../../../src/components/jump-side-cart/jump-side-cart.example.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAQpD,MAAM,OAAO,mBAAmB;;QAyBtB,yBAAoB,GAAG,CAAC,KAA+D,EAAE,EAAE;YACjG,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;YAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACzC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,iCAAM,IAAI,KAAE,QAAQ,IAAG,CAAC,CAAC,IAAI,CAClD,CAAC;QACJ,CAAC,CAAA;QAEO,qBAAgB,GAAG,CAAC,KAAmC,EAAE,EAAE;YACjE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;QACrE,CAAC,CAAA;QAEO,qBAAgB,GAAG,GAAG,EAAE;YAC9B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAA;QAEO,mBAAc,GAAG,GAAG,EAAE;YAC5B,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAClC,CAAC,CAAA;QAEO,mBAAc,GAAG,GAAG,EAAE;YAC5B,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC7B,CAAC,CAAA;QAEO,sBAAiB,GAAG,GAAG,EAAE;YAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC,CAAA;QAEO,qBAAgB,GAAG,GAAG,EAAE;YAC9B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC,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,OAAO,CACL,4DAAK,KAAK,EAAC,mBAAmB;YAC5B,+DACE,KAAK,EAAC,gBAAgB,EACtB,OAAO,EAAE,IAAI,CAAC,iBAAiB,2BAGxB;YAET,+DACE,KAAK,EAAC,gBAAgB,EACtB,OAAO,EAAE,IAAI,CAAC,gBAAgB,0BAGvB;YAET,uEACE,MAAM,EAAE,IAAI,CAAC,UAAU,EACvB,KAAK,EAAE,IAAI,CAAC,SAAS,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,iBAAiB,EAAE;oBACjB,MAAM,EAAE,GAAG;oBACX,UAAU,EAAE,CAAC;iBACd,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,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;CACF","sourcesContent":["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"]}
@@ -0,0 +1,335 @@
1
+ import { h } from "@stencil/core";
2
+ export class JumpSideCart {
3
+ constructor() {
4
+ this.handleClose = () => {
5
+ this.cartClosed.emit();
6
+ };
7
+ this.handleQuantityChange = (itemId, newQuantity) => {
8
+ if (newQuantity < 1)
9
+ return;
10
+ this.cartItems = this.cartItems.map(item => item.id === itemId ? Object.assign(Object.assign({}, item), { quantity: newQuantity }) : item);
11
+ this.itemQuantityChanged.emit({ itemId, quantity: newQuantity });
12
+ };
13
+ this.handleRemoveItem = (itemId) => {
14
+ this.cartItems = this.cartItems.filter(item => item.id !== itemId);
15
+ this.itemRemoved.emit(itemId);
16
+ };
17
+ this.calculateSubtotal = () => {
18
+ return this.cartItems.reduce((total, item) => total + (item.price * item.quantity), 0);
19
+ };
20
+ this.calculateSavings = () => {
21
+ return this.cartItems.reduce((total, item) => {
22
+ if (item.originalPrice) {
23
+ return total + ((item.originalPrice - item.price) * item.quantity);
24
+ }
25
+ return total;
26
+ }, 0);
27
+ };
28
+ this.renderCartItem = (item) => {
29
+ 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"))));
30
+ };
31
+ this.renderProgressBar = () => {
32
+ var _a, _b;
33
+ if (!this.discountThreshold && !this.freeShippingThreshold)
34
+ return null;
35
+ const threshold = ((_a = this.discountThreshold) === null || _a === void 0 ? void 0 : _a.amount) || this.freeShippingThreshold || 0;
36
+ const current = this.calculateSubtotal();
37
+ const percentage = Math.min((current / threshold) * 100, 100);
38
+ 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 ?
39
+ `€${Math.max(0, this.freeShippingThreshold - current).toFixed(2)} away from free shipping` :
40
+ `€${Math.max(0, threshold - current).toFixed(2)} away from ${(_b = this.discountThreshold) === null || _b === void 0 ? void 0 : _b.percentage}% discount`))));
41
+ };
42
+ this.isOpen = false;
43
+ this.position = 'right';
44
+ this.items = [];
45
+ this.discountThreshold = undefined;
46
+ this.freeShippingThreshold = undefined;
47
+ this.progressPercentage = 0;
48
+ this.checkoutLabel = 'Checkout';
49
+ this.viewCartLabel = 'View Cart';
50
+ this.shippingInfo = undefined;
51
+ this.cartItems = [];
52
+ }
53
+ componentWillLoad() {
54
+ this.cartItems = [...this.items];
55
+ }
56
+ componentWillUpdate() {
57
+ if (this.items !== this.cartItems) {
58
+ this.cartItems = [...this.items];
59
+ }
60
+ }
61
+ render() {
62
+ if (!this.isOpen)
63
+ return null;
64
+ const subtotal = this.calculateSubtotal();
65
+ const savings = this.calculateSavings();
66
+ 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)))))));
67
+ }
68
+ static get is() { return "jump-side-cart"; }
69
+ static get encapsulation() { return "shadow"; }
70
+ static get originalStyleUrls() {
71
+ return {
72
+ "$": ["jump-side-cart.scss"]
73
+ };
74
+ }
75
+ static get styleUrls() {
76
+ return {
77
+ "$": ["jump-side-cart.css"]
78
+ };
79
+ }
80
+ static get properties() {
81
+ return {
82
+ "isOpen": {
83
+ "type": "boolean",
84
+ "mutable": false,
85
+ "complexType": {
86
+ "original": "boolean",
87
+ "resolved": "boolean",
88
+ "references": {}
89
+ },
90
+ "required": false,
91
+ "optional": false,
92
+ "docs": {
93
+ "tags": [],
94
+ "text": ""
95
+ },
96
+ "attribute": "is-open",
97
+ "reflect": false,
98
+ "defaultValue": "false"
99
+ },
100
+ "position": {
101
+ "type": "string",
102
+ "mutable": false,
103
+ "complexType": {
104
+ "original": "'left' | 'right'",
105
+ "resolved": "\"left\" | \"right\"",
106
+ "references": {}
107
+ },
108
+ "required": false,
109
+ "optional": false,
110
+ "docs": {
111
+ "tags": [],
112
+ "text": ""
113
+ },
114
+ "attribute": "position",
115
+ "reflect": false,
116
+ "defaultValue": "'right'"
117
+ },
118
+ "items": {
119
+ "type": "unknown",
120
+ "mutable": false,
121
+ "complexType": {
122
+ "original": "CartItem[]",
123
+ "resolved": "CartItem[]",
124
+ "references": {
125
+ "CartItem": {
126
+ "location": "local",
127
+ "path": "/home/runner/work/jump-design-system/jump-design-system/src/components/jump-side-cart/jump-side-cart.tsx",
128
+ "id": "src/components/jump-side-cart/jump-side-cart.tsx::CartItem"
129
+ }
130
+ }
131
+ },
132
+ "required": false,
133
+ "optional": false,
134
+ "docs": {
135
+ "tags": [],
136
+ "text": ""
137
+ },
138
+ "defaultValue": "[]"
139
+ },
140
+ "discountThreshold": {
141
+ "type": "unknown",
142
+ "mutable": false,
143
+ "complexType": {
144
+ "original": "DiscountThreshold",
145
+ "resolved": "DiscountThreshold",
146
+ "references": {
147
+ "DiscountThreshold": {
148
+ "location": "local",
149
+ "path": "/home/runner/work/jump-design-system/jump-design-system/src/components/jump-side-cart/jump-side-cart.tsx",
150
+ "id": "src/components/jump-side-cart/jump-side-cart.tsx::DiscountThreshold"
151
+ }
152
+ }
153
+ },
154
+ "required": false,
155
+ "optional": true,
156
+ "docs": {
157
+ "tags": [],
158
+ "text": ""
159
+ }
160
+ },
161
+ "freeShippingThreshold": {
162
+ "type": "number",
163
+ "mutable": false,
164
+ "complexType": {
165
+ "original": "number",
166
+ "resolved": "number",
167
+ "references": {}
168
+ },
169
+ "required": false,
170
+ "optional": true,
171
+ "docs": {
172
+ "tags": [],
173
+ "text": ""
174
+ },
175
+ "attribute": "free-shipping-threshold",
176
+ "reflect": false
177
+ },
178
+ "progressPercentage": {
179
+ "type": "number",
180
+ "mutable": false,
181
+ "complexType": {
182
+ "original": "number",
183
+ "resolved": "number",
184
+ "references": {}
185
+ },
186
+ "required": false,
187
+ "optional": false,
188
+ "docs": {
189
+ "tags": [],
190
+ "text": ""
191
+ },
192
+ "attribute": "progress-percentage",
193
+ "reflect": false,
194
+ "defaultValue": "0"
195
+ },
196
+ "checkoutLabel": {
197
+ "type": "string",
198
+ "mutable": false,
199
+ "complexType": {
200
+ "original": "string",
201
+ "resolved": "string",
202
+ "references": {}
203
+ },
204
+ "required": false,
205
+ "optional": false,
206
+ "docs": {
207
+ "tags": [],
208
+ "text": ""
209
+ },
210
+ "attribute": "checkout-label",
211
+ "reflect": false,
212
+ "defaultValue": "'Checkout'"
213
+ },
214
+ "viewCartLabel": {
215
+ "type": "string",
216
+ "mutable": false,
217
+ "complexType": {
218
+ "original": "string",
219
+ "resolved": "string",
220
+ "references": {}
221
+ },
222
+ "required": false,
223
+ "optional": false,
224
+ "docs": {
225
+ "tags": [],
226
+ "text": ""
227
+ },
228
+ "attribute": "view-cart-label",
229
+ "reflect": false,
230
+ "defaultValue": "'View Cart'"
231
+ },
232
+ "shippingInfo": {
233
+ "type": "string",
234
+ "mutable": false,
235
+ "complexType": {
236
+ "original": "string",
237
+ "resolved": "string",
238
+ "references": {}
239
+ },
240
+ "required": false,
241
+ "optional": true,
242
+ "docs": {
243
+ "tags": [],
244
+ "text": ""
245
+ },
246
+ "attribute": "shipping-info",
247
+ "reflect": false
248
+ }
249
+ };
250
+ }
251
+ static get states() {
252
+ return {
253
+ "cartItems": {}
254
+ };
255
+ }
256
+ static get events() {
257
+ return [{
258
+ "method": "cartClosed",
259
+ "name": "cartClosed",
260
+ "bubbles": true,
261
+ "cancelable": true,
262
+ "composed": true,
263
+ "docs": {
264
+ "tags": [],
265
+ "text": ""
266
+ },
267
+ "complexType": {
268
+ "original": "void",
269
+ "resolved": "void",
270
+ "references": {}
271
+ }
272
+ }, {
273
+ "method": "itemQuantityChanged",
274
+ "name": "itemQuantityChanged",
275
+ "bubbles": true,
276
+ "cancelable": true,
277
+ "composed": true,
278
+ "docs": {
279
+ "tags": [],
280
+ "text": ""
281
+ },
282
+ "complexType": {
283
+ "original": "{itemId: string | number, quantity: number}",
284
+ "resolved": "{ itemId: string | number; quantity: number; }",
285
+ "references": {}
286
+ }
287
+ }, {
288
+ "method": "itemRemoved",
289
+ "name": "itemRemoved",
290
+ "bubbles": true,
291
+ "cancelable": true,
292
+ "composed": true,
293
+ "docs": {
294
+ "tags": [],
295
+ "text": ""
296
+ },
297
+ "complexType": {
298
+ "original": "string | number",
299
+ "resolved": "number | string",
300
+ "references": {}
301
+ }
302
+ }, {
303
+ "method": "checkoutClicked",
304
+ "name": "checkoutClicked",
305
+ "bubbles": true,
306
+ "cancelable": true,
307
+ "composed": true,
308
+ "docs": {
309
+ "tags": [],
310
+ "text": ""
311
+ },
312
+ "complexType": {
313
+ "original": "void",
314
+ "resolved": "void",
315
+ "references": {}
316
+ }
317
+ }, {
318
+ "method": "viewCartClicked",
319
+ "name": "viewCartClicked",
320
+ "bubbles": true,
321
+ "cancelable": true,
322
+ "composed": true,
323
+ "docs": {
324
+ "tags": [],
325
+ "text": ""
326
+ },
327
+ "complexType": {
328
+ "original": "void",
329
+ "resolved": "void",
330
+ "references": {}
331
+ }
332
+ }];
333
+ }
334
+ }
335
+ //# sourceMappingURL=jump-side-cart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jump-side-cart.js","sourceRoot":"","sources":["../../../src/components/jump-side-cart/jump-side-cart.tsx"],"names":[],"mappings":"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","sourcesContent":["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"]}
@@ -0,0 +1,134 @@
1
+ const meta = {
2
+ title: "Components/JumpSideCart",
3
+ tags: ["autodocs"],
4
+ parameters: {
5
+ layout: "fullscreen",
6
+ },
7
+ };
8
+ export default meta;
9
+ // Template for the cart
10
+ const CartTemplate = (args) => {
11
+ const container = document.createElement('div');
12
+ container.innerHTML = `
13
+ <div class="storybook-container">
14
+ <button class="storybook-button" id="open-cart-btn">Open Cart</button>
15
+ <jump-side-cart id="side-cart"></jump-side-cart>
16
+ </div>
17
+ <style>
18
+ .storybook-container {
19
+ padding: 2rem;
20
+ min-height: 100vh;
21
+ background: #f5f5f5;
22
+ display: flex;
23
+ align-items: center;
24
+ justify-content: center;
25
+ }
26
+ .storybook-button {
27
+ padding: 0.75rem 1.5rem;
28
+ background-color: #80bb55;
29
+ color: white;
30
+ border: none;
31
+ border-radius: 6px;
32
+ cursor: pointer;
33
+ font-weight: 500;
34
+ transition: background-color 0.2s ease;
35
+ }
36
+ .storybook-button:hover {
37
+ background-color: #68a03b;
38
+ }
39
+ </style>
40
+ `;
41
+ // Mock cart items
42
+ const mockItems = [
43
+ {
44
+ id: "1",
45
+ name: "Prolife Grain Free Adult Sensitive Mini Manzo e Patate per Cani",
46
+ brand: "Prolife",
47
+ price: 15.00,
48
+ originalPrice: 30.00,
49
+ quantity: 1,
50
+ image: "/placeholder.svg?height=80&width=80",
51
+ description: "500 g"
52
+ },
53
+ {
54
+ id: "2",
55
+ name: "Prolife Grain Free Adult Sensitive Mini Manzo e Patate per Cani",
56
+ brand: "Prolife",
57
+ price: 15.00,
58
+ quantity: 1,
59
+ image: "/placeholder.svg?height=80&width=80",
60
+ description: "500 g"
61
+ }
62
+ ];
63
+ // Set up the cart component
64
+ const sideCart = container.querySelector('#side-cart');
65
+ const button = container.querySelector('#open-cart-btn');
66
+ if (sideCart && button) {
67
+ // Apply args to the component
68
+ Object.keys(args).forEach(key => {
69
+ if (key === 'items') {
70
+ sideCart[key] = mockItems;
71
+ }
72
+ else {
73
+ sideCart[key] = args[key];
74
+ }
75
+ });
76
+ // Handle button click
77
+ button.addEventListener('click', () => {
78
+ sideCart['isOpen'] = true;
79
+ });
80
+ // Handle cart events
81
+ sideCart.addEventListener('cartClosed', () => {
82
+ sideCart['isOpen'] = false;
83
+ });
84
+ sideCart.addEventListener('checkoutClicked', () => {
85
+ alert('Proceeding to checkout');
86
+ });
87
+ sideCart.addEventListener('viewCartClicked', () => {
88
+ alert('View cart clicked');
89
+ });
90
+ sideCart.addEventListener('itemQuantityChanged', (event) => {
91
+ console.log('Quantity changed:', event['detail']);
92
+ });
93
+ sideCart.addEventListener('itemRemoved', (event) => {
94
+ console.log('Item removed:', event['detail']);
95
+ });
96
+ }
97
+ return container;
98
+ };
99
+ export const RightSide = {
100
+ render: CartTemplate,
101
+ args: {
102
+ position: "right",
103
+ discountThreshold: {
104
+ amount: 170,
105
+ percentage: 3
106
+ },
107
+ progressPercentage: 30,
108
+ checkoutLabel: "Vai al Checkout",
109
+ viewCartLabel: "Vedi carrello"
110
+ }
111
+ };
112
+ export const LeftSide = {
113
+ render: CartTemplate,
114
+ args: {
115
+ position: "left",
116
+ discountThreshold: {
117
+ amount: 170,
118
+ percentage: 3
119
+ },
120
+ progressPercentage: 30,
121
+ checkoutLabel: "Vai al Checkout",
122
+ viewCartLabel: "Vedi carrello"
123
+ }
124
+ };
125
+ export const WithFreeShipping = {
126
+ render: CartTemplate,
127
+ args: {
128
+ position: "right",
129
+ freeShippingThreshold: 50,
130
+ progressPercentage: 100,
131
+ shippingInfo: "Spedizione gratuita!"
132
+ }
133
+ };
134
+ //# sourceMappingURL=jump-side-cart.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jump-side-cart.stories.js","sourceRoot":"","sources":["../../../src/components/jump-side-cart/jump-side-cart.stories.ts"],"names":[],"mappings":"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","sourcesContent":["const meta = {\n title: \"Components/JumpSideCart\",\n tags: [\"autodocs\"],\n parameters: {\n layout: \"fullscreen\",\n },\n};\n\nexport default meta;\n\n// Template for the cart\nconst CartTemplate = (args) => {\n const container = document.createElement('div');\n container.innerHTML = `\n <div class=\"storybook-container\">\n <button class=\"storybook-button\" id=\"open-cart-btn\">Open Cart</button>\n <jump-side-cart id=\"side-cart\"></jump-side-cart>\n </div>\n <style>\n .storybook-container {\n padding: 2rem;\n min-height: 100vh;\n background: #f5f5f5;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .storybook-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 .storybook-button:hover {\n background-color: #68a03b;\n }\n </style>\n `;\n\n // Mock cart items\n const mockItems = [\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 // Set up the cart component\n const sideCart = container.querySelector('#side-cart');\n const button = container.querySelector('#open-cart-btn');\n \n if (sideCart && button) {\n // Apply args to the component\n Object.keys(args).forEach(key => {\n if (key === 'items') {\n sideCart[key] = mockItems;\n } else {\n sideCart[key] = args[key];\n }\n });\n\n // Handle button click\n button.addEventListener('click', () => {\n sideCart['isOpen'] = true;\n });\n\n // Handle cart events\n sideCart.addEventListener('cartClosed', () => {\n sideCart['isOpen'] = false;\n });\n\n sideCart.addEventListener('checkoutClicked', () => {\n alert('Proceeding to checkout');\n });\n\n sideCart.addEventListener('viewCartClicked', () => {\n alert('View cart clicked');\n });\n\n sideCart.addEventListener('itemQuantityChanged', (event) => {\n console.log('Quantity changed:', event['detail']);\n });\n\n sideCart.addEventListener('itemRemoved', (event) => {\n console.log('Item removed:', event['detail']);\n });\n }\n\n return container;\n};\n\nexport const RightSide = {\n render: CartTemplate,\n args: {\n position: \"right\",\n discountThreshold: {\n amount: 170,\n percentage: 3\n },\n progressPercentage: 30,\n checkoutLabel: \"Vai al Checkout\",\n viewCartLabel: \"Vedi carrello\"\n }\n};\n\nexport const LeftSide = {\n render: CartTemplate,\n args: {\n position: \"left\",\n discountThreshold: {\n amount: 170,\n percentage: 3\n },\n progressPercentage: 30,\n checkoutLabel: \"Vai al Checkout\",\n viewCartLabel: \"Vedi carrello\"\n }\n};\n\nexport const WithFreeShipping = {\n render: CartTemplate,\n args: {\n position: \"right\",\n freeShippingThreshold: 50,\n progressPercentage: 100,\n shippingInfo: \"Spedizione gratuita!\"\n }\n};\n"]}
@@ -66,7 +66,7 @@ export class JumpTab {
66
66
  }
67
67
  }
68
68
  render() {
69
- 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" })))));
69
+ 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" })))));
70
70
  }
71
71
  getAlignment(alignment) {
72
72
  switch (alignment) {
@@ -18,8 +18,8 @@ export class JumpTabItem {
18
18
  this.variant = parentVariant;
19
19
  }
20
20
  render() {
21
- 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')) &&
22
- h("jump-icon", { key: 'e3760a45cfc90383b284268d5185b04cfdc30a8e', library: "fa", category: "regular", name: this.iconName, size: "small" }), h("span", { key: 'ee2b41643c241569429b359c121d1c0827de7cbf', class: "label" }, this.label))));
21
+ 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')) &&
22
+ h("jump-icon", { key: 'fc52b89c2dfe2e00928bf7df8231a1efed0934f5', library: "fa", category: "regular", name: this.iconName, size: "small" }), h("span", { key: '505a8245b25b7ea1f9c63221f344aba04ab438e1', class: "label" }, this.label))));
23
23
  }
24
24
  static get is() { return "jump-tab-item"; }
25
25
  static get encapsulation() { return "shadow"; }
@@ -5,7 +5,7 @@ export class JumpTabPanel {
5
5
  this.active = false;
6
6
  }
7
7
  render() {
8
- return (h(Host, { key: 'cf92120024b87b2226981c093ff8addeb9f6047e', class: "JumpTabPanel", id: this.identifier }, h("div", { key: 'b3705621ee187894cdf1f0eda5fef73573046646', class: "JumpTabPanel__Content " + (this.active ? 'active' : '') }, h("slot", { key: '8f42f264b401f8f9c5336bdb6216bdb13fb2ba0d' }))));
8
+ return (h(Host, { key: 'd9f90af98ebb99d55241c3fef49e5d8e08f8540f', class: "JumpTabPanel", id: this.identifier }, h("div", { key: '6fc79b82988a87e0c3e13b08dcd08305e173eaab', class: "JumpTabPanel__Content " + (this.active ? 'active' : '') }, h("slot", { key: 'ac3bfea8a132096ae27e9fbd146e090626c72ff5' }))));
9
9
  }
10
10
  static get is() { return "jump-tab-panel"; }
11
11
  static get encapsulation() { return "shadow"; }