@anker-in/headless-ui 0.0.27-alpha.37 → 0.0.27-alpha.39

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 (127) hide show
  1. package/dist/cjs/biz-components/AccordionCards/index.js +1 -1
  2. package/dist/cjs/biz-components/AccordionCards/index.js.map +2 -2
  3. package/dist/cjs/biz-components/Category/index.d.ts +6 -4
  4. package/dist/cjs/biz-components/Category/index.js +1 -1
  5. package/dist/cjs/biz-components/Category/index.js.map +3 -3
  6. package/dist/cjs/biz-components/Evaluate/index.js +1 -1
  7. package/dist/cjs/biz-components/Evaluate/index.js.map +2 -2
  8. package/dist/cjs/biz-components/ShelfDisplay/index.d.ts +6 -9
  9. package/dist/cjs/biz-components/ShelfDisplay/index.js +6 -6
  10. package/dist/cjs/biz-components/ShelfDisplay/index.js.map +3 -3
  11. package/dist/cjs/cpn-components/CpnBanner/index.d.ts +3 -0
  12. package/dist/cjs/cpn-components/CpnBanner/index.js +2 -0
  13. package/dist/cjs/cpn-components/CpnBanner/index.js.map +7 -0
  14. package/dist/cjs/cpn-components/CpnBanner/types.d.ts +42 -0
  15. package/dist/cjs/cpn-components/CpnBanner/types.js +2 -0
  16. package/dist/cjs/cpn-components/CpnBanner/types.js.map +7 -0
  17. package/dist/cjs/cpn-components/CpnCountDown/index.d.ts +3 -0
  18. package/dist/cjs/cpn-components/CpnCountDown/index.js +2 -0
  19. package/dist/cjs/cpn-components/CpnCountDown/index.js.map +7 -0
  20. package/dist/cjs/cpn-components/CpnCountDown/types.d.ts +28 -0
  21. package/dist/cjs/cpn-components/CpnCountDown/types.js +2 -0
  22. package/dist/cjs/cpn-components/CpnCountDown/types.js.map +7 -0
  23. package/dist/cjs/cpn-components/CpnNavigation/index.d.ts +3 -0
  24. package/dist/cjs/cpn-components/CpnNavigation/index.js +2 -0
  25. package/dist/cjs/cpn-components/CpnNavigation/index.js.map +7 -0
  26. package/dist/cjs/cpn-components/CpnNavigation/types.d.ts +19 -0
  27. package/dist/cjs/cpn-components/CpnNavigation/types.js +2 -0
  28. package/dist/cjs/cpn-components/CpnNavigation/types.js.map +7 -0
  29. package/dist/cjs/cpn-components/CpnProductCard/index.d.ts +3 -0
  30. package/dist/cjs/cpn-components/CpnProductCard/index.js +2 -0
  31. package/dist/cjs/cpn-components/CpnProductCard/index.js.map +7 -0
  32. package/dist/cjs/cpn-components/CpnProductCard/types.d.ts +109 -0
  33. package/dist/cjs/cpn-components/CpnProductCard/types.js +2 -0
  34. package/dist/cjs/cpn-components/CpnProductCard/types.js.map +7 -0
  35. package/dist/cjs/cpn-components/CpnTitle/index.d.ts +3 -0
  36. package/dist/cjs/cpn-components/CpnTitle/index.js +2 -0
  37. package/dist/cjs/cpn-components/CpnTitle/index.js.map +7 -0
  38. package/dist/cjs/cpn-components/CpnTitle/types.d.ts +10 -0
  39. package/dist/cjs/cpn-components/CpnTitle/types.js +2 -0
  40. package/dist/cjs/cpn-components/CpnTitle/types.js.map +7 -0
  41. package/dist/cjs/cpn-components/index.d.ts +5 -0
  42. package/dist/cjs/cpn-components/index.js +2 -0
  43. package/dist/cjs/cpn-components/index.js.map +7 -0
  44. package/dist/cjs/hooks/useCountDown.d.ts +10 -0
  45. package/dist/cjs/hooks/useCountDown.js +2 -0
  46. package/dist/cjs/hooks/useCountDown.js.map +7 -0
  47. package/dist/cjs/stories/category.stories.js +1 -1
  48. package/dist/cjs/stories/category.stories.js.map +2 -2
  49. package/dist/cjs/stories/cpnBanner.stories.d.ts +14 -0
  50. package/dist/cjs/stories/cpnBanner.stories.js +2 -0
  51. package/dist/cjs/stories/cpnBanner.stories.js.map +7 -0
  52. package/dist/cjs/stories/cpnCountdown.stories.d.ts +12 -0
  53. package/dist/cjs/stories/cpnCountdown.stories.js +2 -0
  54. package/dist/cjs/stories/cpnCountdown.stories.js.map +7 -0
  55. package/dist/cjs/stories/cpnNavigation.stories.d.ts +14 -0
  56. package/dist/cjs/stories/cpnNavigation.stories.js +2 -0
  57. package/dist/cjs/stories/cpnNavigation.stories.js.map +7 -0
  58. package/dist/cjs/stories/cpnProductcard.stories.d.ts +14 -0
  59. package/dist/cjs/stories/cpnProductcard.stories.js +2 -0
  60. package/dist/cjs/stories/cpnProductcard.stories.js.map +7 -0
  61. package/dist/cjs/stories/cpnTitle.stories.d.ts +14 -0
  62. package/dist/cjs/stories/cpnTitle.stories.js +2 -0
  63. package/dist/cjs/stories/cpnTitle.stories.js.map +7 -0
  64. package/dist/esm/biz-components/AccordionCards/index.js +1 -1
  65. package/dist/esm/biz-components/AccordionCards/index.js.map +2 -2
  66. package/dist/esm/biz-components/Category/index.d.ts +6 -4
  67. package/dist/esm/biz-components/Category/index.js +1 -1
  68. package/dist/esm/biz-components/Category/index.js.map +3 -3
  69. package/dist/esm/biz-components/Evaluate/index.js +1 -1
  70. package/dist/esm/biz-components/Evaluate/index.js.map +2 -2
  71. package/dist/esm/biz-components/ShelfDisplay/index.d.ts +6 -9
  72. package/dist/esm/biz-components/ShelfDisplay/index.js +6 -6
  73. package/dist/esm/biz-components/ShelfDisplay/index.js.map +3 -3
  74. package/dist/esm/cpn-components/CpnBanner/index.d.ts +3 -0
  75. package/dist/esm/cpn-components/CpnBanner/index.js +2 -0
  76. package/dist/esm/cpn-components/CpnBanner/index.js.map +7 -0
  77. package/dist/esm/cpn-components/CpnBanner/types.d.ts +42 -0
  78. package/dist/esm/cpn-components/CpnBanner/types.js +1 -0
  79. package/dist/esm/cpn-components/CpnBanner/types.js.map +7 -0
  80. package/dist/esm/cpn-components/CpnCountDown/index.d.ts +3 -0
  81. package/dist/esm/cpn-components/CpnCountDown/index.js +2 -0
  82. package/dist/esm/cpn-components/CpnCountDown/index.js.map +7 -0
  83. package/dist/esm/cpn-components/CpnCountDown/types.d.ts +28 -0
  84. package/dist/esm/cpn-components/CpnCountDown/types.js +1 -0
  85. package/dist/esm/cpn-components/CpnCountDown/types.js.map +7 -0
  86. package/dist/esm/cpn-components/CpnNavigation/index.d.ts +3 -0
  87. package/dist/esm/cpn-components/CpnNavigation/index.js +2 -0
  88. package/dist/esm/cpn-components/CpnNavigation/index.js.map +7 -0
  89. package/dist/esm/cpn-components/CpnNavigation/types.d.ts +19 -0
  90. package/dist/esm/cpn-components/CpnNavigation/types.js +1 -0
  91. package/dist/esm/cpn-components/CpnNavigation/types.js.map +7 -0
  92. package/dist/esm/cpn-components/CpnProductCard/index.d.ts +3 -0
  93. package/dist/esm/cpn-components/CpnProductCard/index.js +2 -0
  94. package/dist/esm/cpn-components/CpnProductCard/index.js.map +7 -0
  95. package/dist/esm/cpn-components/CpnProductCard/types.d.ts +109 -0
  96. package/dist/esm/cpn-components/CpnProductCard/types.js +1 -0
  97. package/dist/esm/cpn-components/CpnProductCard/types.js.map +7 -0
  98. package/dist/esm/cpn-components/CpnTitle/index.d.ts +3 -0
  99. package/dist/esm/cpn-components/CpnTitle/index.js +2 -0
  100. package/dist/esm/cpn-components/CpnTitle/index.js.map +7 -0
  101. package/dist/esm/cpn-components/CpnTitle/types.d.ts +10 -0
  102. package/dist/esm/cpn-components/CpnTitle/types.js +1 -0
  103. package/dist/esm/cpn-components/CpnTitle/types.js.map +7 -0
  104. package/dist/esm/cpn-components/index.d.ts +5 -0
  105. package/dist/esm/cpn-components/index.js +2 -0
  106. package/dist/esm/cpn-components/index.js.map +7 -0
  107. package/dist/esm/hooks/useCountDown.d.ts +10 -0
  108. package/dist/esm/hooks/useCountDown.js +2 -0
  109. package/dist/esm/hooks/useCountDown.js.map +7 -0
  110. package/dist/esm/stories/category.stories.js +1 -1
  111. package/dist/esm/stories/category.stories.js.map +2 -2
  112. package/dist/esm/stories/cpnBanner.stories.d.ts +14 -0
  113. package/dist/esm/stories/cpnBanner.stories.js +2 -0
  114. package/dist/esm/stories/cpnBanner.stories.js.map +7 -0
  115. package/dist/esm/stories/cpnCountdown.stories.d.ts +12 -0
  116. package/dist/esm/stories/cpnCountdown.stories.js +2 -0
  117. package/dist/esm/stories/cpnCountdown.stories.js.map +7 -0
  118. package/dist/esm/stories/cpnNavigation.stories.d.ts +14 -0
  119. package/dist/esm/stories/cpnNavigation.stories.js +2 -0
  120. package/dist/esm/stories/cpnNavigation.stories.js.map +7 -0
  121. package/dist/esm/stories/cpnProductcard.stories.d.ts +14 -0
  122. package/dist/esm/stories/cpnProductcard.stories.js +2 -0
  123. package/dist/esm/stories/cpnProductcard.stories.js.map +7 -0
  124. package/dist/esm/stories/cpnTitle.stories.d.ts +14 -0
  125. package/dist/esm/stories/cpnTitle.stories.js +2 -0
  126. package/dist/esm/stories/cpnTitle.stories.js.map +7 -0
  127. package/package.json +11 -1
@@ -1,2 +1,2 @@
1
- "use strict";"use client";var T=Object.create;var m=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var M=Object.getPrototypeOf,I=Object.prototype.hasOwnProperty;var A=(e,s)=>{for(var n in s)m(e,n,{get:s[n],enumerable:!0})},h=(e,s,n,c)=>{if(s&&typeof s=="object"||typeof s=="function")for(let d of C(s))!I.call(e,d)&&d!==n&&m(e,d,{get:()=>s[d],enumerable:!(c=E(s,d))||c.enumerable});return e};var u=(e,s,n)=>(n=e!=null?T(M(e)):{},h(s||!e||!e.__esModule?m(n,"default",{value:e,enumerable:!0}):n,e)),L=e=>h(m({},"__esModule",{value:!0}),e);var j={};A(j,{default:()=>V});module.exports=L(j);var t=require("react/jsx-runtime"),y=u(require("../Title/index.js")),i=require("../../helpers/utils.js"),p=u(require("../../components/picture.js")),f=u(require("../../components/button.js")),g=u(require("../SwiperBox/index.js")),l=require("react");const S=({data:e,className:s="",event:n})=>{const[c,d]=(0,l.useState)(0),[w,k]=(0,l.useState)({0:!0}),F=(0,l.useRef)([]),v=(0,l.useRef)({0:!0}),N=(o,r)=>{r&&(F.current[o]=r)},b=o=>{v.current?.[o]&&k({[o]:!0})};(0,l.useEffect)(()=>{const o=F.current;return o?.forEach((r,a)=>{a?r.style="flex: 1 1 0%; transition: all 0.15s":r.style="flex: 7 1 0%; transition: all 0.15s",r.addEventListener("transitionend",()=>b(a))}),()=>{o?.forEach((r,a)=>{r.removeEventListener("transitionend",()=>b(a))})}},[]);const B=({data:o,configuration:r})=>(0,t.jsxs)("div",{className:"relative shrink-0 grow-0 basis-[296px] border border-solid border-[#dddddd] bg-[#FFFFFF]",children:[(0,t.jsx)(p.default,{className:"size-full object-cover [&_img]:h-full [&_img]:object-cover",source:o?.img?.url}),(0,t.jsxs)("div",{className:(0,i.cn)("absolute inset-x-0 bottom-0 flex flex-col overflow-hidden px-6 pb-6"),children:[(0,t.jsxs)("div",{className:"mb-6 flex-1 overflow-hidden",children:[(0,t.jsx)("p",{className:"mb-1 text-2xl font-bold text-[#FFFFFF]",children:o?.title}),(0,t.jsx)("h3",{className:"text-sm font-medium text-[#FFFFFF]",children:o?.subTitle})]}),(0,t.jsx)(f.default,{size:"sm",hoverEffect:"slide",variant:"secondary",onClick:()=>n?.primaryButton?.onClick?.(o),className:(0,i.cn)("w-[116px] mb-1.5 overflow-hidden border-[#FFFFFF] bg-transparent text-sm font-bold text-[#FFFFFF]",r?.shape==="round"?"rounded-2xl":""),children:r?.primaryButton})]})]});return(0,t.jsxs)(t.Fragment,{children:[e?.title&&(0,t.jsx)(y.default,{data:{title:e?.title}}),(0,t.jsx)("div",{className:"hidden tablet:block",children:(0,t.jsx)("div",{className:(0,i.cn)("laptop:h-[448px] desktop:h-[560px] flex h-[336px] w-full gap-4 overflow-hidden",s),children:e?.products?.map((o,r)=>{const a=c===r;return(0,t.jsxs)("div",{style:{flex:a?7:1},ref:x=>{x&&N(r,x)},className:(0,i.cn)("relative cursor-pointer overflow-hidden",e?.itemShape==="round"?"rounded-2xl":""),onClick:()=>{c!==r&&(v.current={[r]:!0},d(r))},children:[(0,t.jsx)(p.default,{source:o?.img?.url,className:"size-full object-cover [&_img]:h-full [&_img]:object-cover"}),w?.[r]&&a?(0,t.jsxs)("div",{className:(0,i.cn)("absolute inset-x-0 bottom-0 flex items-end justify-between overflow-hidden px-6 pb-6"),children:[(0,t.jsxs)("div",{className:"mr-1 flex-1 overflow-hidden",children:[(0,t.jsx)("p",{className:"laptop:text-2xl desktop:text-[32px] mb-1 text-xl font-bold text-[#FFFFFF]",children:o?.title}),(0,t.jsx)("h3",{className:"desktop:text-lg text-sm font-medium text-[#FFFFFF]",children:o?.subTitle})]}),(0,t.jsx)(f.default,{size:"sm",hoverEffect:"slide",variant:"secondary",onClick:()=>n?.primaryButton?.onClick?.(o),className:(0,i.cn)("desktop:text-base mb-1.5 overflow-hidden border-[#FFFFFF] bg-transparent text-sm font-bold text-[#FFFFFF]",e?.shape==="round"?"rounded-2xl":""),children:e?.primaryButton})]}):null]},r)})})}),(0,t.jsx)("div",{className:"block tablet:hidden",children:(0,t.jsx)(g.default,{className:(0,i.cn)("!overflow-visible h-[400px]",s),id:"AccordionCards"+e?.key,data:{list:e?.products,configuration:{shape:e?.shape,primaryButton:e?.primaryButton}},Slide:B,breakpoints:{0:{spaceBetween:"12px",freeMode:!1,slidesPerView:1},374:{spaceBetween:"12px",freeMode:!1,slidesPerView:1.3},768:{spaceBetween:"16px",freeMode:!1,slidesPerView:4}}})})]})};var V=S;
1
+ "use strict";"use client";var T=Object.create;var m=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var M=Object.getPrototypeOf,I=Object.prototype.hasOwnProperty;var A=(e,s)=>{for(var n in s)m(e,n,{get:s[n],enumerable:!0})},h=(e,s,n,c)=>{if(s&&typeof s=="object"||typeof s=="function")for(let d of C(s))!I.call(e,d)&&d!==n&&m(e,d,{get:()=>s[d],enumerable:!(c=E(s,d))||c.enumerable});return e};var u=(e,s,n)=>(n=e!=null?T(M(e)):{},h(s||!e||!e.__esModule?m(n,"default",{value:e,enumerable:!0}):n,e)),L=e=>h(m({},"__esModule",{value:!0}),e);var j={};A(j,{default:()=>V});module.exports=L(j);var t=require("react/jsx-runtime"),y=u(require("../Title/index.js")),i=require("../../helpers/utils.js"),p=u(require("../../components/picture.js")),f=u(require("../../components/button.js")),g=u(require("../SwiperBox/index.js")),l=require("react");const S=({data:e,className:s="",event:n})=>{const[c,d]=(0,l.useState)(0),[w,k]=(0,l.useState)({0:!0}),F=(0,l.useRef)([]),v=(0,l.useRef)({0:!0}),N=(o,r)=>{r&&(F.current[o]=r)},b=o=>{v.current?.[o]&&k({[o]:!0})};(0,l.useEffect)(()=>{const o=F.current;return o?.forEach((r,a)=>{a?r.style="flex: 1 1 0%; transition: all 0.15s":r.style="flex: 7 1 0%; transition: all 0.15s",r.addEventListener("transitionend",()=>b(a))}),()=>{o?.forEach((r,a)=>{r.removeEventListener("transitionend",()=>b(a))})}},[]);const B=({data:o,configuration:r})=>(0,t.jsxs)("div",{className:"relative shrink-0 grow-0 basis-[296px] border border-solid border-[#dddddd] bg-[#FFFFFF]",children:[(0,t.jsx)(p.default,{className:"size-full object-cover [&_img]:h-full [&_img]:object-cover",source:o?.img?.url}),(0,t.jsxs)("div",{className:(0,i.cn)("absolute inset-x-0 bottom-0 flex flex-col overflow-hidden px-6 pb-6"),children:[(0,t.jsxs)("div",{className:"mb-6 flex-1 overflow-hidden",children:[(0,t.jsx)("p",{className:"mb-1 text-2xl font-bold text-[#FFFFFF]",children:o?.title}),(0,t.jsx)("h3",{className:"text-sm font-medium text-[#FFFFFF]",children:o?.subTitle})]}),(0,t.jsx)(f.default,{size:"sm",hoverEffect:"slide",variant:"secondary",onClick:()=>n?.primaryButton?.onClick?.(o),className:(0,i.cn)("mb-1.5 w-[116px] overflow-hidden border-[#FFFFFF] bg-transparent text-sm font-bold text-[#FFFFFF]",r?.shape==="round"?"rounded-2xl":""),children:r?.primaryButton})]})]});return(0,t.jsxs)(t.Fragment,{children:[e?.title&&(0,t.jsx)(y.default,{data:{title:e?.title}}),(0,t.jsx)("div",{className:"tablet:block hidden",children:(0,t.jsx)("div",{className:(0,i.cn)("laptop:h-[448px] desktop:h-[560px] flex h-[336px] w-full gap-4 overflow-hidden",s),children:e?.products?.map((o,r)=>{const a=c===r;return(0,t.jsxs)("div",{style:{flex:a?7:1},ref:x=>{x&&N(r,x)},className:(0,i.cn)("relative cursor-pointer overflow-hidden",e?.itemShape==="round"?"rounded-2xl":""),onClick:()=>{c!==r&&(v.current={[r]:!0},d(r))},children:[(0,t.jsx)(p.default,{source:o?.img?.url,className:"size-full object-cover [&_img]:h-full [&_img]:object-cover"}),w?.[r]&&a?(0,t.jsxs)("div",{className:(0,i.cn)("absolute inset-x-0 bottom-0 flex items-end justify-between overflow-hidden px-6 pb-6"),children:[(0,t.jsxs)("div",{className:"mr-1 flex-1 overflow-hidden",children:[(0,t.jsx)("p",{className:"laptop:text-2xl desktop:text-[32px] mb-1 text-xl font-bold text-[#FFFFFF]",children:o?.title}),(0,t.jsx)("h3",{className:"desktop:text-lg text-sm font-medium text-[#FFFFFF]",children:o?.subTitle})]}),(0,t.jsx)(f.default,{size:"sm",hoverEffect:"slide",variant:"secondary",onClick:()=>n?.primaryButton?.onClick?.(o),className:(0,i.cn)("desktop:text-base mb-1.5 overflow-hidden border-[#FFFFFF] bg-transparent text-sm font-bold text-[#FFFFFF]",e?.shape==="round"?"rounded-2xl":""),children:e?.primaryButton})]}):null]},r)})})}),(0,t.jsx)("div",{className:"tablet:hidden block",children:(0,t.jsx)(g.default,{className:(0,i.cn)("h-[400px] !overflow-visible",s),id:"AccordionCards"+e?.key,data:{list:e?.products,configuration:{shape:e?.shape,primaryButton:e?.primaryButton}},Slide:B,breakpoints:{0:{spaceBetween:"12px",freeMode:!1,slidesPerView:1},374:{spaceBetween:"12px",freeMode:!1,slidesPerView:1.3},768:{spaceBetween:"16px",freeMode:!1,slidesPerView:4}}})})]})};var V=S;
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/AccordionCards/index.tsx"],
4
- "sourcesContent": ["'use client'\nimport Title from '../Title/index.js'\nimport { cn } from '../../helpers/utils.js'\nimport Picture from '../../components/picture.js'\nimport Button from '../../components/button.js'\nimport SwiperBox from '../SwiperBox/index.js'\nimport { useState, useEffect, useRef } from 'react';\n\n/** Hook\uFF1A\u76D1\u542C\u7A97\u53E3\u5BBD\u5EA6 */\ntype ItemType = {\n /** \u6807\u9898\u6587\u672C */\n title: string\n /** \u56FE\u7247*/\n img: {\n url: string\n }\n /** \u5185\u5BB9\u8282\u70B9 */\n subTitle: string\n}\n\ntype AccordionCardsType = {\n className?: string\n data: {\n key?: string\n title?: string\n products: Array<ItemType>\n /** \u6309\u94AE\u5F62\u72B6 */\n shape?: 'round' | 'square'\n /** \u5361\u7247\u5F62\u72B6 */\n itemShape?: 'round' | 'square'\n /** \u4E3B\u6309\u94AE\u914D\u7F6E */\n primaryButton?: string\n }\n /** \u6309\u94AE\u4E8B\u4EF6*/\n event?: {\n primaryButton?: {\n onClick: (v: any) => void\n }\n }\n}\n\nconst AccordionCards = ({\n data,\n className = '',\n event\n}: AccordionCardsType) => {\n const [hoverIndex, setHoverIndex] = useState<number | null>(0)\n const [currentWidth, setCurrentWidth] = useState<{ [key: number]: boolean }>({ 0: true })\n\n const accordionRef = useRef<HTMLDivElement[]>([])\n const enterRef = useRef<{ [key: number]: boolean }>({ 0:true })\n\n const getRef = (index: number, el: HTMLDivElement) => {\n if (el) {\n accordionRef.current[index] = el\n }\n }\n\n const handleTransitionEnd = (index: number) => {\n if (enterRef.current?.[index]) {\n setCurrentWidth({ [index]: true })\n }\n }\n\n useEffect(() => {\n const element = accordionRef.current\n element?.forEach((item, index) => {\n if (!index) {\n item.style = 'flex: 7 1 0%; transition: all 0.15s'\n } else {\n item.style = 'flex: 1 1 0%; transition: all 0.15s'\n }\n item.addEventListener('transitionend', () => handleTransitionEnd(index))\n })\n return () => {\n element?.forEach((item, index) => {\n item.removeEventListener('transitionend', () => handleTransitionEnd(index))\n })\n }\n }, [])\n\n const MobileItem = ({ data, configuration }: { data: ItemType; configuration?: any }) => {\n return (\n <div className=\"relative shrink-0 grow-0 basis-[296px] border border-solid border-[#dddddd] bg-[#FFFFFF]\">\n <Picture className=\"size-full object-cover [&_img]:h-full [&_img]:object-cover\" source={data?.img?.url} />\n <div className={cn('absolute inset-x-0 bottom-0 flex flex-col overflow-hidden px-6 pb-6')}>\n <div className=\"mb-6 flex-1 overflow-hidden\">\n <p className=\"mb-1 text-2xl font-bold text-[#FFFFFF]\">{data?.title}</p>\n <h3 className=\"text-sm font-medium text-[#FFFFFF]\">{data?.subTitle}</h3>\n </div>\n <Button\n size=\"sm\"\n hoverEffect=\"slide\"\n variant=\"secondary\"\n onClick={() => event?.primaryButton?.onClick?.(data)}\n className={cn(\n 'w-[116px] mb-1.5 overflow-hidden border-[#FFFFFF] bg-transparent text-sm font-bold text-[#FFFFFF]',\n configuration?.shape === 'round' ? 'rounded-2xl' : ''\n )}\n >\n {configuration?.primaryButton}\n </Button>\n </div>\n </div>\n )\n }\n\n return (\n <>\n {data?.title && <Title data={{ title: data?.title }} />}\n <div className=\"hidden tablet:block\">\n <div\n className={cn('laptop:h-[448px] desktop:h-[560px] flex h-[336px] w-full gap-4 overflow-hidden', className)}\n >\n {data?.products?.map((item, idx) => {\n const isExpanded = hoverIndex === idx\n const flexValue = isExpanded ? 7 : 1\n return (\n <div\n key={idx}\n style={{\n flex: flexValue,\n }}\n ref={(el: HTMLDivElement | null) => {\n if (el) getRef(idx, el)\n }}\n className={cn(\n 'relative cursor-pointer overflow-hidden',\n data?.itemShape === 'round' ? 'rounded-2xl' : ''\n )}\n onClick={() => {\n if (hoverIndex === idx) return\n // \u66F4\u65B0 ref \u72B6\u6001\n enterRef.current = { [idx]: true }\n // \u66F4\u65B0\u5BBD\u5EA6\u76F8\u5173\u72B6\u6001\n setHoverIndex(idx)\n }}\n >\n <Picture source={item?.img?.url} className=\"size-full object-cover [&_img]:h-full [&_img]:object-cover\" />\n {currentWidth?.[idx] && isExpanded ? (\n <div\n className={cn(\n 'absolute inset-x-0 bottom-0 flex items-end justify-between overflow-hidden px-6 pb-6'\n )}\n >\n <div className=\"mr-1 flex-1 overflow-hidden\">\n <p className=\"laptop:text-2xl desktop:text-[32px] mb-1 text-xl font-bold text-[#FFFFFF]\">\n {item?.title}\n </p>\n <h3 className=\"desktop:text-lg text-sm font-medium text-[#FFFFFF]\">{item?.subTitle}</h3>\n </div>\n <Button\n size=\"sm\"\n hoverEffect=\"slide\"\n variant=\"secondary\"\n onClick={() => event?.primaryButton?.onClick?.(item)}\n className={cn(\n 'desktop:text-base mb-1.5 overflow-hidden border-[#FFFFFF] bg-transparent text-sm font-bold text-[#FFFFFF]',\n data?.shape === 'round' ? 'rounded-2xl' : ''\n )}\n >\n {data?.primaryButton}\n </Button>\n </div>\n ) : null}\n </div>\n )\n })}\n </div>\n </div>\n <div className=\"block tablet:hidden\">\n <SwiperBox\n className={cn('!overflow-visible h-[400px]', className)}\n id={'AccordionCards' + data?.key}\n data={{\n list: data?.products,\n configuration: {\n shape: data?.shape,\n primaryButton: data?.primaryButton,\n },\n }}\n Slide={MobileItem}\n breakpoints={{\n 0: {\n spaceBetween: '12px',\n freeMode: false,\n slidesPerView: 1,\n },\n 374: {\n spaceBetween: '12px',\n freeMode: false,\n slidesPerView: 1.3,\n },\n 768: {\n spaceBetween: '16px',\n freeMode: false,\n slidesPerView: 4,\n },\n }}\n />\n </div>\n </>\n )\n}\n\nexport default AccordionCards\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["'use client'\nimport Title from '../Title/index.js'\nimport { cn } from '../../helpers/utils.js'\nimport Picture from '../../components/picture.js'\nimport Button from '../../components/button.js'\nimport SwiperBox from '../SwiperBox/index.js'\nimport { useState, useEffect, useRef } from 'react'\n\n/** Hook\uFF1A\u76D1\u542C\u7A97\u53E3\u5BBD\u5EA6 */\ntype ItemType = {\n /** \u6807\u9898\u6587\u672C */\n title: string\n /** \u56FE\u7247*/\n img: {\n url: string\n }\n /** \u5185\u5BB9\u8282\u70B9 */\n subTitle: string\n}\n\ntype AccordionCardsType = {\n className?: string\n data: {\n key?: string\n title?: string\n products: Array<ItemType>\n /** \u6309\u94AE\u5F62\u72B6 */\n shape?: 'round' | 'square'\n /** \u5361\u7247\u5F62\u72B6 */\n itemShape?: 'round' | 'square'\n /** \u4E3B\u6309\u94AE\u914D\u7F6E */\n primaryButton?: string\n }\n /** \u6309\u94AE\u4E8B\u4EF6*/\n event?: {\n primaryButton?: {\n onClick: (v: any) => void\n }\n }\n}\n\nconst AccordionCards = ({ data, className = '', event }: AccordionCardsType) => {\n const [hoverIndex, setHoverIndex] = useState<number | null>(0)\n const [currentWidth, setCurrentWidth] = useState<{ [key: number]: boolean }>({ 0: true })\n\n const accordionRef = useRef<HTMLDivElement[]>([])\n const enterRef = useRef<{ [key: number]: boolean }>({ 0: true })\n\n const getRef = (index: number, el: HTMLDivElement) => {\n if (el) {\n accordionRef.current[index] = el\n }\n }\n\n const handleTransitionEnd = (index: number) => {\n if (enterRef.current?.[index]) {\n setCurrentWidth({ [index]: true })\n }\n }\n\n useEffect(() => {\n const element = accordionRef.current\n element?.forEach((item, index) => {\n if (!index) {\n item.style = 'flex: 7 1 0%; transition: all 0.15s'\n } else {\n item.style = 'flex: 1 1 0%; transition: all 0.15s'\n }\n item.addEventListener('transitionend', () => handleTransitionEnd(index))\n })\n return () => {\n element?.forEach((item, index) => {\n item.removeEventListener('transitionend', () => handleTransitionEnd(index))\n })\n }\n }, [])\n\n const MobileItem = ({ data, configuration }: { data: ItemType; configuration?: any }) => {\n return (\n <div className=\"relative shrink-0 grow-0 basis-[296px] border border-solid border-[#dddddd] bg-[#FFFFFF]\">\n <Picture className=\"size-full object-cover [&_img]:h-full [&_img]:object-cover\" source={data?.img?.url} />\n <div className={cn('absolute inset-x-0 bottom-0 flex flex-col overflow-hidden px-6 pb-6')}>\n <div className=\"mb-6 flex-1 overflow-hidden\">\n <p className=\"mb-1 text-2xl font-bold text-[#FFFFFF]\">{data?.title}</p>\n <h3 className=\"text-sm font-medium text-[#FFFFFF]\">{data?.subTitle}</h3>\n </div>\n <Button\n size=\"sm\"\n hoverEffect=\"slide\"\n variant=\"secondary\"\n onClick={() => event?.primaryButton?.onClick?.(data)}\n className={cn(\n 'mb-1.5 w-[116px] overflow-hidden border-[#FFFFFF] bg-transparent text-sm font-bold text-[#FFFFFF]',\n configuration?.shape === 'round' ? 'rounded-2xl' : ''\n )}\n >\n {configuration?.primaryButton}\n </Button>\n </div>\n </div>\n )\n }\n\n return (\n <>\n {data?.title && <Title data={{ title: data?.title }} />}\n <div className=\"tablet:block hidden\">\n <div\n className={cn('laptop:h-[448px] desktop:h-[560px] flex h-[336px] w-full gap-4 overflow-hidden', className)}\n >\n {data?.products?.map((item, idx) => {\n const isExpanded = hoverIndex === idx\n const flexValue = isExpanded ? 7 : 1\n return (\n <div\n key={idx}\n style={{\n flex: flexValue,\n }}\n ref={(el: HTMLDivElement | null) => {\n if (el) getRef(idx, el)\n }}\n className={cn(\n 'relative cursor-pointer overflow-hidden',\n data?.itemShape === 'round' ? 'rounded-2xl' : ''\n )}\n onClick={() => {\n if (hoverIndex === idx) return\n // \u66F4\u65B0 ref \u72B6\u6001\n enterRef.current = { [idx]: true }\n // \u66F4\u65B0\u5BBD\u5EA6\u76F8\u5173\u72B6\u6001\n setHoverIndex(idx)\n }}\n >\n <Picture\n source={item?.img?.url}\n className=\"size-full object-cover [&_img]:h-full [&_img]:object-cover\"\n />\n {currentWidth?.[idx] && isExpanded ? (\n <div\n className={cn(\n 'absolute inset-x-0 bottom-0 flex items-end justify-between overflow-hidden px-6 pb-6'\n )}\n >\n <div className=\"mr-1 flex-1 overflow-hidden\">\n <p className=\"laptop:text-2xl desktop:text-[32px] mb-1 text-xl font-bold text-[#FFFFFF]\">\n {item?.title}\n </p>\n <h3 className=\"desktop:text-lg text-sm font-medium text-[#FFFFFF]\">{item?.subTitle}</h3>\n </div>\n <Button\n size=\"sm\"\n hoverEffect=\"slide\"\n variant=\"secondary\"\n onClick={() => event?.primaryButton?.onClick?.(item)}\n className={cn(\n 'desktop:text-base mb-1.5 overflow-hidden border-[#FFFFFF] bg-transparent text-sm font-bold text-[#FFFFFF]',\n data?.shape === 'round' ? 'rounded-2xl' : ''\n )}\n >\n {data?.primaryButton}\n </Button>\n </div>\n ) : null}\n </div>\n )\n })}\n </div>\n </div>\n <div className=\"tablet:hidden block\">\n <SwiperBox\n className={cn('h-[400px] !overflow-visible', className)}\n id={'AccordionCards' + data?.key}\n data={{\n list: data?.products,\n configuration: {\n shape: data?.shape,\n primaryButton: data?.primaryButton,\n },\n }}\n Slide={MobileItem}\n breakpoints={{\n 0: {\n spaceBetween: '12px',\n freeMode: false,\n slidesPerView: 1,\n },\n 374: {\n spaceBetween: '12px',\n freeMode: false,\n slidesPerView: 1.3,\n },\n 768: {\n spaceBetween: '16px',\n freeMode: false,\n slidesPerView: 4,\n },\n }}\n />\n </div>\n </>\n )\n}\n\nexport default AccordionCards\n"],
5
+ "mappings": "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",
6
6
  "names": ["AccordionCards_exports", "__export", "AccordionCards_default", "__toCommonJS", "import_jsx_runtime", "import_Title", "import_utils", "import_picture", "import_button", "import_SwiperBox", "import_react", "AccordionCards", "data", "className", "event", "hoverIndex", "setHoverIndex", "currentWidth", "setCurrentWidth", "accordionRef", "enterRef", "getRef", "index", "el", "handleTransitionEnd", "element", "item", "MobileItem", "configuration", "Picture", "Button", "Title", "idx", "isExpanded", "SwiperBox"]
7
7
  }
@@ -1,9 +1,7 @@
1
1
  export interface CategoryItem {
2
2
  /** 产品图片*/
3
- img: {
4
- url: string;
5
- };
6
- title: string;
3
+ image: string;
4
+ name: string;
7
5
  }
8
6
  export interface CategoryProps {
9
7
  className?: string;
@@ -15,6 +13,10 @@ export interface CategoryProps {
15
13
  shape?: 'round' | 'square';
16
14
  title?: string;
17
15
  };
16
+ buildData?: {
17
+ categories: any[];
18
+ products: any[];
19
+ };
18
20
  key?: string;
19
21
  }
20
22
  declare const _default: {
@@ -1,2 +1,2 @@
1
- "use strict";"use client";var g=Object.create;var i=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var h=(e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})},n=(e,t,r,p)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of x(t))!y.call(e,s)&&s!==r&&i(e,s,{get:()=>t[s],enumerable:!(p=u(t,s))||p.enumerable});return e};var l=(e,t,r)=>(r=e!=null?g(w(e)):{},n(t||!e||!e.__esModule?i(r,"default",{value:e,enumerable:!0}):r,e)),C=e=>n(i({},"__esModule",{value:!0}),e);var N={};h(N,{default:()=>F});module.exports=C(N);var o=require("react/jsx-runtime"),k=require("react"),a=require("../../helpers/utils.js"),c=l(require("../../components/picture.js")),d=require("../../shared/Styles.js"),f=l(require("../Title/index.js")),m=l(require("../SwiperBox/index.js"));const v=({data:e,configuration:t})=>(0,o.jsxs)("div",{className:(0,a.cn)("box-border flex w-full flex-col overflow-hidden bg-[#EAEAEC]","laptop:p-6 desktop:p-8 p-4 hover:bg-[#FFFFFF] cursor-pointer",t?.shape==="round"?"rounded-[16px]":"rounded-none"),children:[(0,o.jsx)(c.default,{className:"flex h-full items-center object-cover",source:e?.img?.url}),(0,o.jsx)("p",{className:"desktop:text-lg flex-1 text-center text-sm font-semibold",children:e?.title})]}),b=({data:e,className:t="",key:r})=>(0,o.jsxs)("div",{className:(0,a.cn)("w-full",t),children:[e?.title&&(0,o.jsx)(f.default,{data:{title:e?.title}}),(0,o.jsx)(m.default,{className:"!overflow-visible",id:"Category"+r,data:{list:e?.products,configuration:{shape:e?.shape}},Slide:v,breakpoints:{0:{spaceBetween:"12px",freeMode:!1,slidesPerView:1},374:{spaceBetween:"12px",freeMode:!1,slidesPerView:2.3},768:{spaceBetween:"16px",freeMode:!1,slidesPerView:5}}})]});var F=(0,d.withStyles)(b);
1
+ "use strict";"use client";var g=Object.create;var i=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var b=(e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})},n=(e,t,r,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of x(t))!y.call(e,s)&&s!==r&&i(e,s,{get:()=>t[s],enumerable:!(a=u(t,s))||a.enumerable});return e};var l=(e,t,r)=>(r=e!=null?g(w(e)):{},n(t||!e||!e.__esModule?i(r,"default",{value:e,enumerable:!0}):r,e)),h=e=>n(i({},"__esModule",{value:!0}),e);var N={};b(N,{default:()=>F});module.exports=h(N);var o=require("react/jsx-runtime"),k=require("react"),p=require("../../helpers/utils.js"),c=l(require("../../components/picture.js")),m=require("../../shared/Styles.js"),d=l(require("../Title/index.js")),f=l(require("../SwiperBox/index.js"));const C=({data:e,configuration:t})=>(0,o.jsxs)("div",{className:(0,p.cn)("box-border flex w-full flex-col overflow-hidden bg-[#EAEAEC]","laptop:p-6 desktop:p-8 cursor-pointer p-4 hover:bg-[#FFFFFF]",t?.shape==="round"?"rounded-[16px]":"rounded-none"),children:[(0,o.jsx)(c.default,{className:"tablet:h-[146px] mb-2 flex h-[74px] w-full items-center object-cover",source:e?.image}),(0,o.jsx)("p",{className:"tablet:text-lg flex-1 text-center text-sm font-semibold",children:e?.name})]}),v=({data:e,buildData:t,className:r="",key:a})=>(console.log(e,t,"54444"),(0,o.jsxs)("div",{className:(0,p.cn)("w-full",r),children:[e?.title&&(0,o.jsx)(d.default,{data:{title:e?.title}}),(0,o.jsx)(f.default,{className:"!overflow-visible",id:"Category"+a,data:{list:e?.products,configuration:{shape:e?.shape}},Slide:C,breakpoints:{0:{spaceBetween:"12px",freeMode:!1,slidesPerView:1},374:{spaceBetween:"12px",freeMode:!1,slidesPerView:2.3},768:{spaceBetween:"16px",freeMode:!1,slidesPerView:5}}})]}));var F=(0,m.withStyles)(v);
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/Category/index.tsx"],
4
- "sourcesContent": ["'use client'\nimport React from 'react'\nimport { cn } from '../../helpers/utils.js'\nimport Picture from '../../components/picture.js'\nimport { withStyles } from '../../shared/Styles.js'\nimport Title from '../Title/index.js'\nimport SwiperBox from '../SwiperBox/index.js'\n\nexport interface CategoryItem {\n /** \u4EA7\u54C1\u56FE\u7247*/\n img: {\n url: string\n }\n title: string\n}\n\nexport interface CategoryProps {\n className?: string\n /** \u4E3B\u9898\u8272*/\n theme?: 'light' | 'dark'\n data: {\n products: CategoryItem[]\n /** \u5361\u7247\u5F62\u72B6 */\n shape?: 'round' | 'square'\n title?: string\n }\n key?: string\n}\n\nconst CategoryItem = ({ data, configuration }: { data: CategoryItem; configuration?: any }) => {\n return (\n <div\n className={cn(\n 'box-border flex w-full flex-col overflow-hidden bg-[#EAEAEC]',\n 'laptop:p-6 desktop:p-8 p-4 hover:bg-[#FFFFFF] cursor-pointer',\n configuration?.shape === 'round' ? 'rounded-[16px]' : 'rounded-none'\n )}\n >\n <Picture className=\"flex h-full items-center object-cover\" source={data?.img?.url} />\n <p className=\"desktop:text-lg flex-1 text-center text-sm font-semibold\">{data?.title}</p>\n </div>\n )\n}\n\nconst Category: React.FC<CategoryProps> = ({ data, className = '', key }) => {\n return (\n <div className={cn('w-full', className)}>\n {data?.title && <Title data={{ title: data?.title }} />}\n <SwiperBox\n className=\"!overflow-visible\"\n id={'Category' + key}\n data={{ list: data?.products, configuration: { shape: data?.shape } }}\n Slide={CategoryItem}\n breakpoints={{\n 0: {\n spaceBetween: '12px',\n freeMode: false,\n slidesPerView: 1,\n },\n 374: {\n spaceBetween: '12px',\n freeMode: false,\n slidesPerView: 2.3,\n },\n 768: {\n spaceBetween: '16px',\n freeMode: false,\n slidesPerView: 5,\n },\n }}\n />\n </div>\n )\n}\n\nexport default withStyles(Category)\n"],
5
- "mappings": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GA+BI,IAAAI,EAAA,6BA9BJC,EAAkB,iBAClBC,EAAmB,kCACnBC,EAAoB,0CACpBC,EAA2B,kCAC3BC,EAAkB,gCAClBC,EAAsB,oCAuBtB,MAAMC,EAAe,CAAC,CAAE,KAAAC,EAAM,cAAAC,CAAc,OAExC,QAAC,OACC,aAAW,MACT,+DACA,+DACAA,GAAe,QAAU,QAAU,iBAAmB,cACxD,EAEA,oBAAC,EAAAC,QAAA,CAAQ,UAAU,wCAAwC,OAAQF,GAAM,KAAK,IAAK,KACnF,OAAC,KAAE,UAAU,2DAA4D,SAAAA,GAAM,MAAM,GACvF,EAIEG,EAAoC,CAAC,CAAE,KAAAH,EAAM,UAAAI,EAAY,GAAI,IAAAC,CAAI,OAEnE,QAAC,OAAI,aAAW,MAAG,SAAUD,CAAS,EACnC,UAAAJ,GAAM,UAAS,OAAC,EAAAM,QAAA,CAAM,KAAM,CAAE,MAAON,GAAM,KAAM,EAAG,KACrD,OAAC,EAAAO,QAAA,CACC,UAAU,oBACV,GAAI,WAAaF,EACjB,KAAM,CAAE,KAAML,GAAM,SAAU,cAAe,CAAE,MAAOA,GAAM,KAAM,CAAE,EACpE,MAAOD,EACP,YAAa,CACX,EAAG,CACD,aAAc,OACd,SAAU,GACV,cAAe,CACjB,EACA,IAAK,CACH,aAAc,OACd,SAAU,GACV,cAAe,GACjB,EACA,IAAK,CACH,aAAc,OACd,SAAU,GACV,cAAe,CACjB,CACF,EACF,GACF,EAIJ,IAAOT,KAAQ,cAAWa,CAAQ",
6
- "names": ["Category_exports", "__export", "Category_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_utils", "import_picture", "import_Styles", "import_Title", "import_SwiperBox", "CategoryItem", "data", "configuration", "Picture", "Category", "className", "key", "Title", "SwiperBox"]
4
+ "sourcesContent": ["'use client'\nimport React from 'react'\nimport { cn } from '../../helpers/utils.js'\nimport Picture from '../../components/picture.js'\nimport { withStyles } from '../../shared/Styles.js'\nimport Title from '../Title/index.js'\nimport SwiperBox from '../SwiperBox/index.js'\n\nexport interface CategoryItem {\n /** \u4EA7\u54C1\u56FE\u7247*/\n image: string\n name: string\n}\n\nexport interface CategoryProps {\n className?: string\n /** \u4E3B\u9898\u8272*/\n theme?: 'light' | 'dark'\n data: {\n products: CategoryItem[]\n /** \u5361\u7247\u5F62\u72B6 */\n shape?: 'round' | 'square'\n title?: string\n }\n buildData?: {\n categories: any[]\n products: any[]\n }\n key?: string\n}\n\nconst CategoryItem = ({ data, configuration }: { data: CategoryItem; configuration?: any }) => {\n return (\n <div\n className={cn(\n 'box-border flex w-full flex-col overflow-hidden bg-[#EAEAEC]',\n 'laptop:p-6 desktop:p-8 cursor-pointer p-4 hover:bg-[#FFFFFF]',\n configuration?.shape === 'round' ? 'rounded-[16px]' : 'rounded-none'\n )}\n >\n <Picture className=\"tablet:h-[146px] mb-2 flex h-[74px] w-full items-center object-cover\" source={data?.image} />\n <p className=\"tablet:text-lg flex-1 text-center text-sm font-semibold\">{data?.name}</p>\n </div>\n )\n}\n\nconst Category: React.FC<CategoryProps> = ({ data, buildData, className = '', key }) => {\n console.log(data, buildData, '54444')\n return (\n <div className={cn('w-full', className)}>\n {data?.title && <Title data={{ title: data?.title }} />}\n <SwiperBox\n className=\"!overflow-visible\"\n id={'Category' + key}\n data={{ list: data?.products, configuration: { shape: data?.shape } }}\n Slide={CategoryItem}\n breakpoints={{\n 0: {\n spaceBetween: '12px',\n freeMode: false,\n slidesPerView: 1,\n },\n 374: {\n spaceBetween: '12px',\n freeMode: false,\n slidesPerView: 2.3,\n },\n 768: {\n spaceBetween: '16px',\n freeMode: false,\n slidesPerView: 5,\n },\n }}\n />\n </div>\n )\n}\n\nexport default withStyles(Category)\n"],
5
+ "mappings": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAiCI,IAAAI,EAAA,6BAhCJC,EAAkB,iBAClBC,EAAmB,kCACnBC,EAAoB,0CACpBC,EAA2B,kCAC3BC,EAAkB,gCAClBC,EAAsB,oCAyBtB,MAAMC,EAAe,CAAC,CAAE,KAAAC,EAAM,cAAAC,CAAc,OAExC,QAAC,OACC,aAAW,MACT,+DACA,+DACAA,GAAe,QAAU,QAAU,iBAAmB,cACxD,EAEA,oBAAC,EAAAC,QAAA,CAAQ,UAAU,uEAAuE,OAAQF,GAAM,MAAO,KAC/G,OAAC,KAAE,UAAU,0DAA2D,SAAAA,GAAM,KAAK,GACrF,EAIEG,EAAoC,CAAC,CAAE,KAAAH,EAAM,UAAAI,EAAW,UAAAC,EAAY,GAAI,IAAAC,CAAI,KAChF,QAAQ,IAAIN,EAAMI,EAAW,OAAO,KAElC,QAAC,OAAI,aAAW,MAAG,SAAUC,CAAS,EACnC,UAAAL,GAAM,UAAS,OAAC,EAAAO,QAAA,CAAM,KAAM,CAAE,MAAOP,GAAM,KAAM,EAAG,KACrD,OAAC,EAAAQ,QAAA,CACC,UAAU,oBACV,GAAI,WAAaF,EACjB,KAAM,CAAE,KAAMN,GAAM,SAAU,cAAe,CAAE,MAAOA,GAAM,KAAM,CAAE,EACpE,MAAOD,EACP,YAAa,CACX,EAAG,CACD,aAAc,OACd,SAAU,GACV,cAAe,CACjB,EACA,IAAK,CACH,aAAc,OACd,SAAU,GACV,cAAe,GACjB,EACA,IAAK,CACH,aAAc,OACd,SAAU,GACV,cAAe,CACjB,CACF,EACF,GACF,GAIJ,IAAOT,KAAQ,cAAWa,CAAQ",
6
+ "names": ["Category_exports", "__export", "Category_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_utils", "import_picture", "import_Styles", "import_Title", "import_SwiperBox", "CategoryItem", "data", "configuration", "Picture", "Category", "buildData", "className", "key", "Title", "SwiperBox"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";"use client";var x=Object.create;var n=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var N=(t,r)=>{for(var l in r)n(t,l,{get:r[l],enumerable:!0})},m=(t,r,l,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of w(r))!h.call(t,s)&&s!==l&&n(t,s,{get:()=>r[s],enumerable:!(a=g(r,s))||a.enumerable});return t};var d=(t,r,l)=>(l=t!=null?x(b(t)):{},m(r||!t||!t.__esModule?n(l,"default",{value:t,enumerable:!0}):l,t)),F=t=>m(n({},"__esModule",{value:!0}),t);var L={};N(L,{default:()=>E});module.exports=F(L);var e=require("react/jsx-runtime"),y=require("react"),p=d(require("../Title/index.js")),o=require("../../helpers/utils.js"),c=d(require("../../components/picture.js")),v=d(require("../SwiperBox/index.js")),f=require("../../shared/Styles.js"),i=require("../../components/avatar.js");const C=({data:t,configuration:r})=>{const l=a=>a?Array.from(new Array(Number(a)))||[]:[];return(0,e.jsxs)("div",{className:(0,o.cn)("box-border flex w-full flex-col overflow-hidden bg-[#EAEAEC] p-4","hover:bg-[#FFFFFF] cursor-pointer",r?.shape==="round"?"rounded-2xl":"rounded-none"),children:[(0,e.jsxs)("div",{className:(0,o.cn)("laptop:mb-11 desktop:mb-16 mb-8 flex w-full justify-between"),children:[(0,e.jsxs)("div",{className:"flex-1",children:[(0,e.jsx)("h4",{className:"laptop:text-lg text-sm font-semibold",children:t?.title}),(0,e.jsx)("div",{className:"mt-1 flex items-center",children:l(t?.rating)?.map?.((a,s)=>(0,e.jsx)("div",{className:"mr-1",children:(0,e.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:(0,e.jsx)("path",{d:"M7.32745 1.36274C7.60256 0.805304 8.39744 0.805305 8.67255 1.36274L10.1766 4.41035C10.2859 4.63171 10.4971 4.78514 10.7413 4.82063L14.1046 5.30934C14.7197 5.39873 14.9654 6.15471 14.5202 6.58861L12.0866 8.96084C11.9098 9.13315 11.8292 9.3814 11.8709 9.62469L12.4454 12.9743C12.5505 13.587 11.9074 14.0542 11.3572 13.765L8.349 12.1835C8.13051 12.0686 7.86949 12.0686 7.65099 12.1835L4.64282 13.765C4.0926 14.0542 3.44953 13.587 3.55461 12.9743L4.12912 9.62469C4.17085 9.3814 4.09019 9.13315 3.91342 8.96084L1.47976 6.58861C1.03462 6.15471 1.28025 5.39873 1.89542 5.30934L5.25866 4.82063C5.50294 4.78514 5.71412 4.63171 5.82336 4.41035L7.32745 1.36274Z",fill:"#F77234"})})},s))})]}),(0,e.jsx)("div",{className:"desktop:size-12 size-10 overflow-hidden",children:(0,e.jsxs)(i.Avatar,{className:"size-full",children:[(0,e.jsx)(i.AvatarImage,{src:t?.avatar?.url}),(0,e.jsx)(i.AvatarFallback,{children:t?.title})]})})]}),(0,e.jsx)("p",{className:"desktop:text-2xl line-clamp-6 flex-1 text-xl font-bold text-[#1D1D1F]",children:t?.description||""}),(0,e.jsxs)("div",{className:(0,o.cn)("mt-11 flex items-center overflow-hidden bg-[#F7F8F9] p-3",r?.shape==="round"?"rounded-[8px]":"rounded-none"),children:[(0,e.jsx)("div",{className:"laptop:size-16 desktop:size-20 mr-3 flex size-12 items-center",children:(0,e.jsx)(c.default,{className:"w-full object-cover",source:t?.img?.url})}),(0,e.jsx)("p",{className:"desktop:text-lg line-clamp-2 flex-1 text-sm font-semibold",children:t?.subTitle||""})]})]})},k=({className:t="",data:r,key:l})=>{const{products:a,title:s,...u}=r;return(0,e.jsx)(e.Fragment,{children:(0,e.jsxs)("div",{className:(0,o.cn)("w-full",t),children:[s&&(0,e.jsx)(p.default,{data:{title:s}}),(0,e.jsx)(v.default,{className:"!overflow-visible",id:"Evaluate"+l,data:{list:a,configuration:{...u}},Slide:C,breakpoints:{0:{spaceBetween:"12px",freeMode:!1,slidesPerView:1},374:{spaceBetween:"12px",freeMode:!1,slidesPerView:1.3},768:{spaceBetween:"16px",freeMode:!1,slidesPerView:4}}})]})})};var E=(0,f.withStyles)(k);
1
+ "use strict";"use client";var x=Object.create;var n=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var N=(t,r)=>{for(var l in r)n(t,l,{get:r[l],enumerable:!0})},m=(t,r,l,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of w(r))!h.call(t,s)&&s!==l&&n(t,s,{get:()=>r[s],enumerable:!(a=g(r,s))||a.enumerable});return t};var d=(t,r,l)=>(l=t!=null?x(b(t)):{},m(r||!t||!t.__esModule?n(l,"default",{value:t,enumerable:!0}):l,t)),F=t=>m(n({},"__esModule",{value:!0}),t);var L={};N(L,{default:()=>E});module.exports=F(L);var e=require("react/jsx-runtime"),y=require("react"),p=d(require("../Title/index.js")),o=require("../../helpers/utils.js"),c=d(require("../../components/picture.js")),v=d(require("../SwiperBox/index.js")),f=require("../../shared/Styles.js"),i=require("../../components/avatar.js");const C=({data:t,configuration:r})=>{const l=a=>a?Array.from(new Array(Number(a)))||[]:[];return(0,e.jsxs)("div",{className:(0,o.cn)("box-border flex w-full cursor-pointer flex-col overflow-hidden bg-[#EAEAEC] p-4 hover:bg-[#FFFFFF]",r?.shape==="round"?"rounded-2xl":"rounded-none"),children:[(0,e.jsxs)("div",{className:(0,o.cn)("laptop:mb-11 desktop:mb-16 mb-8 flex w-full justify-between"),children:[(0,e.jsxs)("div",{className:"flex-1",children:[(0,e.jsx)("h4",{className:"laptop:text-lg text-sm font-semibold",children:t?.title}),(0,e.jsx)("div",{className:"mt-1 flex items-center",children:l(t?.rating)?.map?.((a,s)=>(0,e.jsx)("div",{className:"mr-1",children:(0,e.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:(0,e.jsx)("path",{d:"M7.32745 1.36274C7.60256 0.805304 8.39744 0.805305 8.67255 1.36274L10.1766 4.41035C10.2859 4.63171 10.4971 4.78514 10.7413 4.82063L14.1046 5.30934C14.7197 5.39873 14.9654 6.15471 14.5202 6.58861L12.0866 8.96084C11.9098 9.13315 11.8292 9.3814 11.8709 9.62469L12.4454 12.9743C12.5505 13.587 11.9074 14.0542 11.3572 13.765L8.349 12.1835C8.13051 12.0686 7.86949 12.0686 7.65099 12.1835L4.64282 13.765C4.0926 14.0542 3.44953 13.587 3.55461 12.9743L4.12912 9.62469C4.17085 9.3814 4.09019 9.13315 3.91342 8.96084L1.47976 6.58861C1.03462 6.15471 1.28025 5.39873 1.89542 5.30934L5.25866 4.82063C5.50294 4.78514 5.71412 4.63171 5.82336 4.41035L7.32745 1.36274Z",fill:"#F77234"})})},s))})]}),(0,e.jsx)("div",{className:"desktop:size-12 size-10 overflow-hidden",children:(0,e.jsxs)(i.Avatar,{className:"size-full",children:[(0,e.jsx)(i.AvatarImage,{src:t?.avatar?.url}),(0,e.jsx)(i.AvatarFallback,{children:t?.title})]})})]}),(0,e.jsx)("p",{className:"desktop:text-2xl line-clamp-6 flex-1 text-xl font-bold text-[#1D1D1F]",children:t?.description||""}),(0,e.jsxs)("div",{className:(0,o.cn)("mt-11 flex items-center overflow-hidden bg-[#F7F8F9] p-3",r?.shape==="round"?"rounded-[8px]":"rounded-none"),children:[(0,e.jsx)("div",{className:"laptop:size-16 desktop:size-20 mr-3 flex size-12 items-center",children:(0,e.jsx)(c.default,{className:"w-full object-cover",source:t?.img?.url})}),(0,e.jsx)("p",{className:"desktop:text-lg line-clamp-2 flex-1 text-sm font-semibold",children:t?.subTitle||""})]})]})},k=({className:t="",data:r,key:l})=>{const{products:a,title:s,...u}=r;return(0,e.jsx)(e.Fragment,{children:(0,e.jsxs)("div",{className:(0,o.cn)("w-full",t),children:[s&&(0,e.jsx)(p.default,{data:{title:s}}),(0,e.jsx)(v.default,{className:"!overflow-visible",id:"Evaluate"+l,data:{list:a,configuration:{...u}},Slide:C,breakpoints:{0:{spaceBetween:"12px",freeMode:!1,slidesPerView:1},374:{spaceBetween:"12px",freeMode:!1,slidesPerView:1.3},768:{spaceBetween:"16px",freeMode:!1,slidesPerView:4}}})]})})};var E=(0,f.withStyles)(k);
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/Evaluate/index.tsx"],
4
- "sourcesContent": ["'use client'\nimport React from 'react'\nimport Title from '../Title/index.js'\nimport { cn } from '../../helpers/utils.js'\nimport Picture from '../../components/picture.js'\nimport SwiperBox from '../SwiperBox/index.js'\nimport { withStyles } from '../../shared/Styles.js'\nimport { Avatar, AvatarImage, AvatarFallback } from '../../components/avatar.js'\n\nexport interface EvaluateItem {\n /** \u4EA7\u54C1\u56FE\u7247*/\n img: {\n url: string\n }\n title: string\n subTitle: string\n description: string\n avatar?: {\n url: string\n }\n rating: number\n}\n\nexport interface EvaluateProps {\n className?: string\n /** \u4E3B\u9898\u8272*/\n theme?: 'light' | 'dark'\n data: {\n title?: string\n products: EvaluateItem[]\n /** \u5F62\u72B6 */\n shape?: 'round' | 'square'\n }\n key?: string\n}\n\nconst EvaluateItem = ({ data, configuration }: { data: EvaluateItem; configuration?: any }) => {\n const handleRating = (num: number) => {\n if (num) {\n return Array.from(new Array(Number(num))) || []\n }\n return []\n }\n\n return (\n <div\n className={cn(\n 'box-border flex w-full flex-col overflow-hidden bg-[#EAEAEC] p-4',\n 'hover:bg-[#FFFFFF] cursor-pointer',\n configuration?.shape === 'round' ? 'rounded-2xl' : 'rounded-none'\n )}\n >\n <div className={cn('laptop:mb-11 desktop:mb-16 mb-8 flex w-full justify-between')}>\n <div className=\"flex-1\">\n <h4 className=\"laptop:text-lg text-sm font-semibold\">{data?.title}</h4>\n <div className=\"mt-1 flex items-center\">\n {handleRating(data?.rating)?.map?.((_, index) => {\n return (\n <div key={index} className=\"mr-1\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n d=\"M7.32745 1.36274C7.60256 0.805304 8.39744 0.805305 8.67255 1.36274L10.1766 4.41035C10.2859 4.63171 10.4971 4.78514 10.7413 4.82063L14.1046 5.30934C14.7197 5.39873 14.9654 6.15471 14.5202 6.58861L12.0866 8.96084C11.9098 9.13315 11.8292 9.3814 11.8709 9.62469L12.4454 12.9743C12.5505 13.587 11.9074 14.0542 11.3572 13.765L8.349 12.1835C8.13051 12.0686 7.86949 12.0686 7.65099 12.1835L4.64282 13.765C4.0926 14.0542 3.44953 13.587 3.55461 12.9743L4.12912 9.62469C4.17085 9.3814 4.09019 9.13315 3.91342 8.96084L1.47976 6.58861C1.03462 6.15471 1.28025 5.39873 1.89542 5.30934L5.25866 4.82063C5.50294 4.78514 5.71412 4.63171 5.82336 4.41035L7.32745 1.36274Z\"\n fill=\"#F77234\"\n />\n </svg>\n </div>\n )\n })}\n </div>\n </div>\n <div className=\"desktop:size-12 size-10 overflow-hidden\">\n <Avatar className=\"size-full\">\n <AvatarImage src={data?.avatar?.url} />\n <AvatarFallback>{data?.title}</AvatarFallback>\n </Avatar>\n </div>\n </div>\n <p className=\"desktop:text-2xl line-clamp-6 flex-1 text-xl font-bold text-[#1D1D1F]\">{data?.description || ''}</p>\n <div\n className={cn(\n 'mt-11 flex items-center overflow-hidden bg-[#F7F8F9] p-3',\n configuration?.shape === 'round' ? 'rounded-[8px]' : 'rounded-none'\n )}\n >\n <div className=\"laptop:size-16 desktop:size-20 mr-3 flex size-12 items-center\">\n <Picture className=\"w-full object-cover\" source={data?.img?.url} />\n </div>\n <p className=\"desktop:text-lg line-clamp-2 flex-1 text-sm font-semibold\">{data?.subTitle || ''}</p>\n </div>\n </div>\n )\n}\n\nconst Evaluate: React.FC<EvaluateProps> = ({ className = '', data, key }) => {\n const { products, title, ...ohter } = data\n return (\n <>\n <div className={cn('w-full', className)}>\n {title && <Title data={{ title: title }} />}\n <SwiperBox\n className=\"!overflow-visible\"\n id={'Evaluate' + key}\n data={{ list: products, configuration: { ...ohter } }}\n Slide={EvaluateItem}\n breakpoints={{\n 0: {\n spaceBetween: '12px',\n freeMode: false,\n slidesPerView: 1,\n },\n 374: {\n spaceBetween: '12px',\n freeMode: false,\n slidesPerView: 1.3,\n },\n 768: {\n spaceBetween: '16px',\n freeMode: false,\n slidesPerView: 4,\n },\n }}\n />\n </div>\n </>\n )\n}\n\nexport default withStyles(Evaluate)\n"],
5
- "mappings": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAqDQ,IAAAI,EAAA,6BApDRC,EAAkB,iBAClBC,EAAkB,gCAClBC,EAAmB,kCACnBC,EAAoB,0CACpBC,EAAsB,oCACtBC,EAA2B,kCAC3BC,EAAoD,sCA6BpD,MAAMC,EAAe,CAAC,CAAE,KAAAC,EAAM,cAAAC,CAAc,IAAmD,CAC7F,MAAMC,EAAgBC,GAChBA,EACK,MAAM,KAAK,IAAI,MAAM,OAAOA,CAAG,CAAC,CAAC,GAAK,CAAC,EAEzC,CAAC,EAGV,SACE,QAAC,OACC,aAAW,MACT,mEACA,oCACAF,GAAe,QAAU,QAAU,cAAgB,cACrD,EAEA,qBAAC,OAAI,aAAW,MAAG,6DAA6D,EAC9E,qBAAC,OAAI,UAAU,SACb,oBAAC,MAAG,UAAU,uCAAwC,SAAAD,GAAM,MAAM,KAClE,OAAC,OAAI,UAAU,yBACZ,SAAAE,EAAaF,GAAM,MAAM,GAAG,MAAM,CAACI,EAAGC,OAEnC,OAAC,OAAgB,UAAU,OACzB,mBAAC,OAAI,MAAM,6BAA6B,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OACtF,mBAAC,QACC,EAAE,6oBACF,KAAK,UACP,EACF,GANQA,CAOV,CAEH,EACH,GACF,KACA,OAAC,OAAI,UAAU,0CACb,oBAAC,UAAO,UAAU,YAChB,oBAAC,eAAY,IAAKL,GAAM,QAAQ,IAAK,KACrC,OAAC,kBAAgB,SAAAA,GAAM,MAAM,GAC/B,EACF,GACF,KACA,OAAC,KAAE,UAAU,wEAAyE,SAAAA,GAAM,aAAe,GAAG,KAC9G,QAAC,OACC,aAAW,MACT,2DACAC,GAAe,QAAU,QAAU,gBAAkB,cACvD,EAEA,oBAAC,OAAI,UAAU,gEACb,mBAAC,EAAAK,QAAA,CAAQ,UAAU,sBAAsB,OAAQN,GAAM,KAAK,IAAK,EACnE,KACA,OAAC,KAAE,UAAU,4DAA6D,SAAAA,GAAM,UAAY,GAAG,GACjG,GACF,CAEJ,EAEMO,EAAoC,CAAC,CAAE,UAAAC,EAAY,GAAI,KAAAR,EAAM,IAAAS,CAAI,IAAM,CAC3E,KAAM,CAAE,SAAAC,EAAU,MAAAC,EAAO,GAAGC,CAAM,EAAIZ,EACtC,SACE,mBACE,oBAAC,OAAI,aAAW,MAAG,SAAUQ,CAAS,EACnC,UAAAG,MAAS,OAAC,EAAAE,QAAA,CAAM,KAAM,CAAE,MAAOF,CAAM,EAAG,KACzC,OAAC,EAAAG,QAAA,CACC,UAAU,oBACV,GAAI,WAAaL,EACjB,KAAM,CAAE,KAAMC,EAAU,cAAe,CAAE,GAAGE,CAAM,CAAE,EACpD,MAAOb,EACP,YAAa,CACX,EAAG,CACD,aAAc,OACd,SAAU,GACV,cAAe,CACjB,EACA,IAAK,CACH,aAAc,OACd,SAAU,GACV,cAAe,GACjB,EACA,IAAK,CACH,aAAc,OACd,SAAU,GACV,cAAe,CACjB,CACF,EACF,GACF,EACF,CAEJ,EAEA,IAAOV,KAAQ,cAAWkB,CAAQ",
4
+ "sourcesContent": ["'use client'\nimport React from 'react'\nimport Title from '../Title/index.js'\nimport { cn } from '../../helpers/utils.js'\nimport Picture from '../../components/picture.js'\nimport SwiperBox from '../SwiperBox/index.js'\nimport { withStyles } from '../../shared/Styles.js'\nimport { Avatar, AvatarImage, AvatarFallback } from '../../components/avatar.js'\n\nexport interface EvaluateItem {\n /** \u4EA7\u54C1\u56FE\u7247*/\n img: {\n url: string\n }\n title: string\n subTitle: string\n description: string\n avatar?: {\n url: string\n }\n rating: number\n}\n\nexport interface EvaluateProps {\n className?: string\n /** \u4E3B\u9898\u8272*/\n theme?: 'light' | 'dark'\n data: {\n title?: string\n products: EvaluateItem[]\n /** \u5F62\u72B6 */\n shape?: 'round' | 'square'\n }\n key?: string\n}\n\nconst EvaluateItem = ({ data, configuration }: { data: EvaluateItem; configuration?: any }) => {\n const handleRating = (num: number) => {\n if (num) {\n return Array.from(new Array(Number(num))) || []\n }\n return []\n }\n\n return (\n <div\n className={cn(\n 'box-border flex w-full cursor-pointer flex-col overflow-hidden bg-[#EAEAEC] p-4 hover:bg-[#FFFFFF]',\n configuration?.shape === 'round' ? 'rounded-2xl' : 'rounded-none'\n )}\n >\n <div className={cn('laptop:mb-11 desktop:mb-16 mb-8 flex w-full justify-between')}>\n <div className=\"flex-1\">\n <h4 className=\"laptop:text-lg text-sm font-semibold\">{data?.title}</h4>\n <div className=\"mt-1 flex items-center\">\n {handleRating(data?.rating)?.map?.((_, index) => {\n return (\n <div key={index} className=\"mr-1\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n d=\"M7.32745 1.36274C7.60256 0.805304 8.39744 0.805305 8.67255 1.36274L10.1766 4.41035C10.2859 4.63171 10.4971 4.78514 10.7413 4.82063L14.1046 5.30934C14.7197 5.39873 14.9654 6.15471 14.5202 6.58861L12.0866 8.96084C11.9098 9.13315 11.8292 9.3814 11.8709 9.62469L12.4454 12.9743C12.5505 13.587 11.9074 14.0542 11.3572 13.765L8.349 12.1835C8.13051 12.0686 7.86949 12.0686 7.65099 12.1835L4.64282 13.765C4.0926 14.0542 3.44953 13.587 3.55461 12.9743L4.12912 9.62469C4.17085 9.3814 4.09019 9.13315 3.91342 8.96084L1.47976 6.58861C1.03462 6.15471 1.28025 5.39873 1.89542 5.30934L5.25866 4.82063C5.50294 4.78514 5.71412 4.63171 5.82336 4.41035L7.32745 1.36274Z\"\n fill=\"#F77234\"\n />\n </svg>\n </div>\n )\n })}\n </div>\n </div>\n <div className=\"desktop:size-12 size-10 overflow-hidden\">\n <Avatar className=\"size-full\">\n <AvatarImage src={data?.avatar?.url} />\n <AvatarFallback>{data?.title}</AvatarFallback>\n </Avatar>\n </div>\n </div>\n <p className=\"desktop:text-2xl line-clamp-6 flex-1 text-xl font-bold text-[#1D1D1F]\">{data?.description || ''}</p>\n <div\n className={cn(\n 'mt-11 flex items-center overflow-hidden bg-[#F7F8F9] p-3',\n configuration?.shape === 'round' ? 'rounded-[8px]' : 'rounded-none'\n )}\n >\n <div className=\"laptop:size-16 desktop:size-20 mr-3 flex size-12 items-center\">\n <Picture className=\"w-full object-cover\" source={data?.img?.url} />\n </div>\n <p className=\"desktop:text-lg line-clamp-2 flex-1 text-sm font-semibold\">{data?.subTitle || ''}</p>\n </div>\n </div>\n )\n}\n\nconst Evaluate: React.FC<EvaluateProps> = ({ className = '', data, key }) => {\n const { products, title, ...ohter } = data\n return (\n <>\n <div className={cn('w-full', className)}>\n {title && <Title data={{ title: title }} />}\n <SwiperBox\n className=\"!overflow-visible\"\n id={'Evaluate' + key}\n data={{ list: products, configuration: { ...ohter } }}\n Slide={EvaluateItem}\n breakpoints={{\n 0: {\n spaceBetween: '12px',\n freeMode: false,\n slidesPerView: 1,\n },\n 374: {\n spaceBetween: '12px',\n freeMode: false,\n slidesPerView: 1.3,\n },\n 768: {\n spaceBetween: '16px',\n freeMode: false,\n slidesPerView: 4,\n },\n }}\n />\n </div>\n </>\n )\n}\n\nexport default withStyles(Evaluate)\n"],
5
+ "mappings": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAoDQ,IAAAI,EAAA,6BAnDRC,EAAkB,iBAClBC,EAAkB,gCAClBC,EAAmB,kCACnBC,EAAoB,0CACpBC,EAAsB,oCACtBC,EAA2B,kCAC3BC,EAAoD,sCA6BpD,MAAMC,EAAe,CAAC,CAAE,KAAAC,EAAM,cAAAC,CAAc,IAAmD,CAC7F,MAAMC,EAAgBC,GAChBA,EACK,MAAM,KAAK,IAAI,MAAM,OAAOA,CAAG,CAAC,CAAC,GAAK,CAAC,EAEzC,CAAC,EAGV,SACE,QAAC,OACC,aAAW,MACT,qGACAF,GAAe,QAAU,QAAU,cAAgB,cACrD,EAEA,qBAAC,OAAI,aAAW,MAAG,6DAA6D,EAC9E,qBAAC,OAAI,UAAU,SACb,oBAAC,MAAG,UAAU,uCAAwC,SAAAD,GAAM,MAAM,KAClE,OAAC,OAAI,UAAU,yBACZ,SAAAE,EAAaF,GAAM,MAAM,GAAG,MAAM,CAACI,EAAGC,OAEnC,OAAC,OAAgB,UAAU,OACzB,mBAAC,OAAI,MAAM,6BAA6B,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OACtF,mBAAC,QACC,EAAE,6oBACF,KAAK,UACP,EACF,GANQA,CAOV,CAEH,EACH,GACF,KACA,OAAC,OAAI,UAAU,0CACb,oBAAC,UAAO,UAAU,YAChB,oBAAC,eAAY,IAAKL,GAAM,QAAQ,IAAK,KACrC,OAAC,kBAAgB,SAAAA,GAAM,MAAM,GAC/B,EACF,GACF,KACA,OAAC,KAAE,UAAU,wEAAyE,SAAAA,GAAM,aAAe,GAAG,KAC9G,QAAC,OACC,aAAW,MACT,2DACAC,GAAe,QAAU,QAAU,gBAAkB,cACvD,EAEA,oBAAC,OAAI,UAAU,gEACb,mBAAC,EAAAK,QAAA,CAAQ,UAAU,sBAAsB,OAAQN,GAAM,KAAK,IAAK,EACnE,KACA,OAAC,KAAE,UAAU,4DAA6D,SAAAA,GAAM,UAAY,GAAG,GACjG,GACF,CAEJ,EAEMO,EAAoC,CAAC,CAAE,UAAAC,EAAY,GAAI,KAAAR,EAAM,IAAAS,CAAI,IAAM,CAC3E,KAAM,CAAE,SAAAC,EAAU,MAAAC,EAAO,GAAGC,CAAM,EAAIZ,EACtC,SACE,mBACE,oBAAC,OAAI,aAAW,MAAG,SAAUQ,CAAS,EACnC,UAAAG,MAAS,OAAC,EAAAE,QAAA,CAAM,KAAM,CAAE,MAAOF,CAAM,EAAG,KACzC,OAAC,EAAAG,QAAA,CACC,UAAU,oBACV,GAAI,WAAaL,EACjB,KAAM,CAAE,KAAMC,EAAU,cAAe,CAAE,GAAGE,CAAM,CAAE,EACpD,MAAOb,EACP,YAAa,CACX,EAAG,CACD,aAAc,OACd,SAAU,GACV,cAAe,CACjB,EACA,IAAK,CACH,aAAc,OACd,SAAU,GACV,cAAe,GACjB,EACA,IAAK,CACH,aAAc,OACd,SAAU,GACV,cAAe,CACjB,CACF,EACF,GACF,EACF,CAEJ,EAEA,IAAOV,KAAQ,cAAWkB,CAAQ",
6
6
  "names": ["Evaluate_exports", "__export", "Evaluate_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_Title", "import_utils", "import_picture", "import_SwiperBox", "import_Styles", "import_avatar", "EvaluateItem", "data", "configuration", "handleRating", "num", "_", "index", "Picture", "Evaluate", "className", "key", "products", "title", "ohter", "Title", "SwiperBox"]
7
7
  }
@@ -17,6 +17,10 @@ export interface ShelfDisplayItem {
17
17
  tab?: string;
18
18
  data?: ShelfDisplayItem[];
19
19
  }
20
+ type EventType = {
21
+ primaryButton?: (v: any) => void;
22
+ secondaryButton?: (v: any) => void;
23
+ };
20
24
  export interface ShelfDisplayProps {
21
25
  data: {
22
26
  title?: string;
@@ -39,18 +43,11 @@ export interface ShelfDisplayProps {
39
43
  categories: any[];
40
44
  products: any[];
41
45
  };
46
+ /** 按钮事件*/
47
+ event?: EventType;
42
48
  /** 主题色*/
43
49
  theme?: 'light' | 'dark';
44
50
  className?: string;
45
- /** 按钮事件*/
46
- event?: {
47
- primaryButton?: {
48
- onClick: (v: any) => void;
49
- };
50
- secondaryButton?: {
51
- onClick: (v: any) => void;
52
- };
53
- };
54
51
  key?: string;
55
52
  }
56
53
  declare const _default: {
@@ -1,10 +1,10 @@
1
- "use strict";"use client";var V=Object.create;var b=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var L=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var U=(e,r)=>{for(var s in r)b(e,s,{get:r[s],enumerable:!0})},w=(e,r,s,l)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of M(r))!R.call(e,a)&&a!==s&&b(e,a,{get:()=>r[a],enumerable:!(l=q(r,a))||l.enumerable});return e};var f=(e,r,s)=>(s=e!=null?V(L(e)):{},w(r||!e||!e.__esModule?b(s,"default",{value:e,enumerable:!0}):s,e)),$=e=>w(b({},"__esModule",{value:!0}),e);var G={};U(G,{default:()=>_});module.exports=$(G);var t=require("react/jsx-runtime"),m=require("react"),y=require("../../helpers/utils.js"),B=f(require("../../components/picture.js")),d=require("../../components/tabs.js"),g=f(require("../../components/button.js")),N=f(require("../Title/index.js")),T=f(require("../SwiperBox/index.js")),C=require("../../shared/Styles.js"),I=require("./shelfDisplay.js");const j=({data:e,configuration:r})=>{const s=n=>{},l=n=>{},{price:a,basePrice:u}=(0,I.formatVariantPrice)({amount:e?.price.amount||0,baseAmount:e?.compareAtPrice?.amount||e?.price.amount||0,currencyCode:e?.price.currencyCode||"USD",locale:"us"}),k=()=>{const n=e?.sku,o=e?.variants;return o?.find(x=>x?.sku===n)?.image?.url||o?.[0]?.image?.url||""};return(0,t.jsxs)("div",{className:(0,y.cn)("desktop:pt-4 desktop:px-6 desktop:pb-6 flex size-full cursor-pointer flex-col overflow-hidden bg-[#EAEAEC] p-4",r?.itemShape==="round"?"rounded-2xl":"rounded-none"),children:[(0,t.jsx)("div",{className:(0,y.cn)("relative mb-2 inline-block h-[137px] overflow-hidden","desktop:mb-3 desktop:h-[195px]"),children:(0,t.jsx)(B.default,{source:k(),className:"flex h-full justify-center object-cover [&_img]:w-auto"})}),(0,t.jsx)("div",{className:"desktop:mb-2 mb-1 flex h-8 flex-wrap gap-1",children:e?.tags?.slice(0,1)?.map?.((n,o)=>(0,t.jsx)("div",{className:"desktop:text-base rounded-3xl border-2 border-[#00BEFA] px-2 py-1 text-sm font-bold text-[#00BEFA]",children:n},o))}),(0,t.jsx)("p",{title:e?.title||"",className:"desktop:text-2xl line-clamp-2 max-h-[48px] flex-1 text-xl font-bold leading-[1.2] tracking-[-0.04em] text-[#1D1D1F]",children:e?.title||""}),(0,t.jsx)("h3",{title:e?.description||"",className:"desktop:mt-2 desktop:mb-6 desktop:text-lg mb-5 mt-1 truncate text-sm font-semibold leading-[1.2] tracking-[-0.02em] text-[#1D1D1F]",children:e?.description||""}),(0,t.jsxs)("div",{className:"mb-2 flex items-center",children:[(0,t.jsx)("div",{className:"desktop:text-2xl text-xl font-bold text-[#1D1D1F]",children:a||""}),(0,t.jsx)("div",{className:"desktop:text-2xl ml-1 text-xl font-bold text-[#86868C]",children:u||""})]}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(g.default,{variant:"primary",onClick:()=>s(e),className:`
1
+ "use strict";"use client";var q=Object.create;var x=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var L=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,U=Object.prototype.hasOwnProperty;var $=(e,t)=>{for(var a in t)x(e,a,{get:t[a],enumerable:!0})},T=(e,t,a,l)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of L(t))!U.call(e,s)&&s!==a&&x(e,s,{get:()=>t[s],enumerable:!(l=M(t,s))||l.enumerable});return e};var f=(e,t,a)=>(a=e!=null?q(R(e)):{},T(t||!e||!e.__esModule?x(a,"default",{value:e,enumerable:!0}):a,e)),j=e=>T(x({},"__esModule",{value:!0}),e);var H={};$(H,{default:()=>G});module.exports=j(H);var r=require("react/jsx-runtime"),u=require("react"),y=require("../../helpers/utils.js"),B=f(require("../../components/picture.js")),d=require("../../components/tabs.js"),D=f(require("../../components/button.js")),N=f(require("../Title/index.js")),C=f(require("../SwiperBox/index.js")),I=require("../../shared/Styles.js"),P=require("./shelfDisplay.js");const z=({data:e,configuration:t})=>{const a=o=>t?.event?.primaryButton?.(o),l=o=>t?.event?.secondaryButton?.(o),{price:s,basePrice:h}=(0,P.formatVariantPrice)({locale:"us",amount:e?.price.amount||0,baseAmount:e?.compareAtPrice?.amount||e?.price.amount||0,currencyCode:e?.price.currencyCode||"USD"}),b=()=>{const o=e?.sku,i=e?.variants;return i?.find(v=>v?.sku===o)?.image?.url||i?.[0]?.image?.url||""};return(0,r.jsxs)("div",{className:(0,y.cn)("laptop:pt-4 laptop:px-6 laptop:pb-6 flex size-full cursor-pointer flex-col overflow-hidden bg-[#EAEAEC] p-4",t?.itemShape==="round"?"rounded-2xl":"rounded-none"),children:[(0,r.jsx)("div",{className:(0,y.cn)("relative mb-2 inline-block h-[137px] overflow-hidden","tablet:mb-3 tablet:h-[195px]"),children:(0,r.jsx)(B.default,{source:b(),className:"flex h-full justify-center object-cover [&_img]:w-auto"})}),(0,r.jsx)("div",{className:"tablet:mb-2 mb-1 flex h-8 flex-wrap gap-1 overflow-hidden",children:e?.tags?.slice(0,1)?.map?.((o,i)=>(0,r.jsx)("div",{className:"tablet:text-base rounded-2xl border-2 border-[#86868C] px-2 pt-1 text-sm font-bold text-[#1D1D1F]",children:o},i))}),(0,r.jsx)("p",{title:e?.title||"",className:"desktop:text-2xl desktop:leading-7 line-clamp-2 max-h-[48px] flex-1 text-xl font-bold text-[#1D1D1F]",children:e?.title||""}),(0,r.jsx)("h3",{title:e?.description||"",className:"tablet:mt-2 tablet:mb-3 desktop:text-lg mb-2 mt-1 h-6 truncate text-sm font-semibold text-[#1D1D1F]",children:e?.description||""}),(0,r.jsxs)("div",{className:"mb-2 flex items-center",children:[(0,r.jsx)("div",{className:"tablet:text-2xl text-xl font-bold text-[#1D1D1F]",children:s||""}),(0,r.jsx)("div",{className:"tablet:text-2xl ml-1 text-xl font-bold text-[#86868C]",children:h||""})]}),(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)(D.default,{variant:"primary",onClick:()=>a(e),className:`
2
2
  laptop:text-sm desktop:text-base laptop:px-6 desktop:px-7 laptop:py-2.5 desktop:py-3 box-border flex-1 border
3
- border-[#1D1D1F] bg-transparent px-4 py-2 text-xs tracking-[-0.04em] text-[#1D1D1F] hover:bg-transparent hover:text-black
4
- ${r?.shape==="round"?"desktop:rounded-3xl rounded-[20px]":""}
5
- `,children:r?.primaryButton||""}),(0,t.jsx)(g.default,{variant:"secondary",onClick:()=>l(e),className:`
3
+ border-[#1D1D1F] bg-transparent px-4 py-2 text-xs text-[#1D1D1F] hover:bg-transparent hover:text-black
4
+ ${t?.shape==="round"?"desktop:rounded-3xl rounded-[20px]":""}
5
+ `,children:t?.primaryButton||""}),(0,r.jsx)(D.default,{variant:"secondary",onClick:()=>l(e),className:`
6
6
  laptop:text-sm desktop:text-base laptop:px-6 desktop:px-7 laptop:py-2.5 desktop:py-3 box-border flex-1 border
7
7
  border-[#1D1D1F] bg-[#1D1D1F] px-4 py-2 text-xs tracking-[-0.04em] text-white
8
- ${r?.shape==="round"?"desktop:rounded-3xl rounded-[20px]":""}
9
- `,children:r?.secondaryButton||""})]})]},e?.id||e?.handle)},z=({data:e,buildData:r,className:s="",key:l})=>{const[a,u]=(0,m.useState)(""),[k,n]=(0,m.useState)([]),{productsTab:o=[],productsCard:v=[],title:x,align:P="left",isShowTab:D=!0,tabShape:F="square",...A}=e,h=i=>{const c=i?.map(p=>{const S=r?.products?.find(E=>E?.handle===p?.handle);if(S)return{sku:p.sku,...S}})?.filter(p=>p);n(c)};return(0,m.useEffect)(()=>{if(D){u(o?.[0]?.tab||""),h(o?.[0]?.data||[]);return}h(v)},[]),(0,t.jsxs)("div",{className:(0,y.cn)("w-full",s),children:[x&&(0,t.jsx)(N.default,{data:{title:x}}),D&&(0,t.jsx)(d.Tabs,{shape:F,align:P,value:a,onValueChange:i=>{u(i);const c=o?.find(p=>p?.tab===i);h(c?.data||[])},className:"mb-8",children:(0,t.jsx)(d.TabsList,{children:o?.map((i,c)=>(0,t.jsx)(d.TabsTrigger,{value:i?.tab||"",children:i?.tab},c))})}),(0,t.jsx)(T.default,{className:"!overflow-visible",id:"ShelfDisplay"+l,data:{list:k,configuration:{...A}},Slide:j,breakpoints:{0:{spaceBetween:"12px",freeMode:!1,slidesPerView:1},374:{spaceBetween:"12px",freeMode:!1,slidesPerView:1.3},768:{spaceBetween:"16px",freeMode:!1,slidesPerView:4}}})]})};var _=(0,C.withStyles)(z);
8
+ ${t?.shape==="round"?"desktop:rounded-3xl rounded-[20px]":""}
9
+ `,children:t?.secondaryButton||""})]})]},e?.id||e?.handle)},_=({data:e,buildData:t,className:a="",key:l,event:s})=>{const[h,b]=(0,u.useState)(""),[o,i]=(0,u.useState)([]),{productsTab:m=[],productsCard:v=[],title:k,align:F="left",isShowTab:S=!0,tabShape:E="square",...A}=e,g=n=>{const c=n?.map(p=>{const w=t?.products?.find(V=>V?.handle===p?.handle);if(w)return{sku:p.sku,...w}})?.filter(p=>p);i(c)};return(0,u.useEffect)(()=>{if(S){b(m?.[0]?.tab||""),g(m?.[0]?.data||[]);return}g(v)},[]),(0,r.jsxs)("div",{className:(0,y.cn)("w-full",a),children:[k&&(0,r.jsx)(N.default,{data:{title:k}}),S&&(0,r.jsx)(d.Tabs,{shape:E,align:F,value:h,onValueChange:n=>{b(n);const c=m?.find(p=>p?.tab===n);g(c?.data||[])},className:"mb-8",children:(0,r.jsx)(d.TabsList,{children:m?.map((n,c)=>(0,r.jsx)(d.TabsTrigger,{value:n?.tab||"",children:n?.tab},c))})}),(0,r.jsx)(C.default,{className:"!overflow-visible",id:"ShelfDisplay"+l,data:{list:o,configuration:{...A,event:s}},Slide:z,breakpoints:{0:{spaceBetween:"12px",freeMode:!1,slidesPerView:1},374:{spaceBetween:"12px",freeMode:!1,slidesPerView:1.3},768:{spaceBetween:"16px",freeMode:!1,slidesPerView:4}}})]})};var G=(0,I.withStyles)(_);
10
10
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/biz-components/ShelfDisplay/index.tsx"],
4
- "sourcesContent": ["'use client'\nimport React, { useState, useEffect } from 'react'\nimport { cn } from '../../helpers/utils.js'\nimport Picture from '../../components/picture.js'\nimport { Tabs, TabsList, TabsTrigger } from '../../components/tabs.js'\nimport Button from '../../components/button.js'\nimport Title from '../Title/index.js'\nimport SwiperBox from '../SwiperBox/index.js'\nimport { withStyles } from '../../shared/Styles.js'\nimport { formatVariantPrice } from './shelfDisplay.js'\nexport interface ShelfDisplayItem {\n id?: string\n /** \u4EA7\u54C1\u56FE\u7247*/\n img?: {\n url: string\n }\n handle?: string\n sku?: string\n /** \u6298\u6263\u540E\u4EF7\u683C*/\n price?: string\n title?: string\n /** \u6298\u6263\u524D\u4EF7\u683C*/\n basePrice?: string\n subTitle?: string\n /** \u6807\u7B7E*/\n tagItems?: string[]\n tab?: string\n data?: ShelfDisplayItem[]\n}\n\nexport interface ShelfDisplayProps {\n data: {\n title?: string\n isShowTab?: boolean\n align?: 'left' | 'center' | 'right'\n productsTab?: any\n productsCard?: any\n /** \u5361\u7247\u5F62\u72B6 */\n itemShape?: 'round' | 'square'\n /** \u6309\u94AE\u5F62\u72B6 */\n shape?: 'round' | 'square'\n /** \u6807\u7B7E\u9875\u5F62\u72B6*/\n tabShape?: 'rounded' | 'square'\n /** \u4E3B\u6309\u94AE\u914D\u7F6E */\n primaryButton?: string\n /** \u526F\u6309\u94AE\u914D\u7F6E */\n secondaryButton?: string\n }\n buildData?: {\n categories: any[]\n products: any[]\n }\n /** \u4E3B\u9898\u8272*/\n theme?: 'light' | 'dark'\n className?: string\n /** \u6309\u94AE\u4E8B\u4EF6*/\n event?: {\n primaryButton?: {\n onClick: (v: any) => void\n }\n secondaryButton?: {\n onClick: (v: any) => void\n }\n }\n key?: string\n}\n\nconst ShelfDisplayItem = ({ data, configuration }: { data: any; configuration?: any }) => {\n const onPrimaryButton = (params: ShelfDisplayItem) => {\n // event?.primaryButton?.onClick?.(params)\n }\n\n const onSecondaryButton = (params: ShelfDisplayItem) => {\n // event?.secondaryButton?.onClick(params)\n }\n\n const { price, basePrice } = formatVariantPrice({\n amount: data?.price.amount || 0,\n baseAmount: data?.compareAtPrice?.amount || data?.price.amount || 0,\n currencyCode: data?.price.currencyCode || 'USD',\n locale: 'us',\n })\n\n const handleUrl = () => {\n const sku = data?.sku\n const skuArray = data?.variants\n const findSku = skuArray?.find((item: any) => item?.sku === sku)\n return findSku?.image?.url || skuArray?.[0]?.image?.url || ''\n }\n\n return (\n <div\n key={data?.id || data?.handle}\n className={cn(\n 'desktop:pt-4 desktop:px-6 desktop:pb-6 flex size-full cursor-pointer flex-col overflow-hidden bg-[#EAEAEC] p-4',\n configuration?.itemShape === 'round' ? 'rounded-2xl' : 'rounded-none'\n )}\n >\n <div className={cn('relative mb-2 inline-block h-[137px] overflow-hidden', 'desktop:mb-3 desktop:h-[195px]')}>\n <Picture source={handleUrl()} className=\"flex h-full justify-center object-cover [&_img]:w-auto\" />\n </div>\n <div className=\"desktop:mb-2 mb-1 flex h-8 flex-wrap gap-1\">\n {data?.tags?.slice(0, 1)?.map?.((item: any, index: number) => {\n return (\n <div\n key={index}\n className=\"desktop:text-base rounded-3xl border-2 border-[#00BEFA] px-2 py-1 text-sm font-bold text-[#00BEFA]\"\n >\n {item}\n </div>\n )\n })}\n </div>\n <p\n title={data?.title || ''}\n className=\"desktop:text-2xl line-clamp-2 max-h-[48px] flex-1 text-xl font-bold leading-[1.2] tracking-[-0.04em] text-[#1D1D1F]\"\n >\n {data?.title || ''}\n </p>\n <h3\n title={data?.description || ''}\n className=\"desktop:mt-2 desktop:mb-6 desktop:text-lg mb-5 mt-1 truncate text-sm font-semibold leading-[1.2] tracking-[-0.02em] text-[#1D1D1F]\"\n >\n {data?.description || ''}\n </h3>\n <div className=\"mb-2 flex items-center\">\n <div className=\"desktop:text-2xl text-xl font-bold text-[#1D1D1F]\">{price || ''}</div>\n <div className=\"desktop:text-2xl ml-1 text-xl font-bold text-[#86868C]\">{basePrice || ''}</div>\n </div>\n {/* \u6309\u94AE\u7EC4 */}\n <div className=\"flex items-center gap-3\">\n <Button\n variant=\"primary\"\n onClick={() => onPrimaryButton(data)}\n className={`\n laptop:text-sm desktop:text-base laptop:px-6 desktop:px-7 laptop:py-2.5 desktop:py-3 box-border flex-1 border\n border-[#1D1D1F] bg-transparent px-4 py-2 text-xs tracking-[-0.04em] text-[#1D1D1F] hover:bg-transparent hover:text-black\n ${configuration?.shape === 'round' ? 'desktop:rounded-3xl rounded-[20px]' : ''}\n `}\n >\n {configuration?.primaryButton || ''}\n </Button>\n <Button\n variant=\"secondary\"\n onClick={() => onSecondaryButton(data)}\n className={`\n laptop:text-sm desktop:text-base laptop:px-6 desktop:px-7 laptop:py-2.5 desktop:py-3 box-border flex-1 border\n border-[#1D1D1F] bg-[#1D1D1F] px-4 py-2 text-xs tracking-[-0.04em] text-white\n ${configuration?.shape === 'round' ? 'desktop:rounded-3xl rounded-[20px]' : ''}\n `}\n >\n {configuration?.secondaryButton || ''}\n </Button>\n </div>\n </div>\n )\n}\n\nconst ShelfDisplay: React.FC<ShelfDisplayProps> = ({ data, buildData, className = '', key }) => {\n const [tabId, setTabId] = useState<string>('')\n const [currentItems, setCurrentItems] = useState<ShelfDisplayItem[]>([])\n\n const {\n productsTab = [],\n productsCard = [],\n title,\n align = 'left',\n isShowTab = true,\n tabShape = 'square',\n ...other\n } = data\n\n const handleCurrentTab = (currentData: ShelfDisplayItem[]) => {\n const newCurrentData = currentData\n ?.map(item => {\n const findData = buildData?.products?.find(params => params?.handle === item?.handle)\n if (findData) {\n return {\n sku: item.sku,\n ...findData,\n }\n }\n })\n ?.filter(item => item)\n setCurrentItems(newCurrentData)\n }\n\n useEffect(() => {\n if (isShowTab) {\n setTabId(productsTab?.[0]?.tab || '')\n handleCurrentTab(productsTab?.[0]?.data || [])\n return\n }\n handleCurrentTab(productsCard)\n }, [])\n\n return (\n <div className={cn('w-full', className)}>\n {title && <Title data={{ title: title }} />}\n {isShowTab && (\n <Tabs\n shape={tabShape}\n align={align}\n value={tabId}\n onValueChange={v => {\n setTabId(v)\n const findData = productsTab?.find((item: any) => item?.tab === v)\n handleCurrentTab(findData?.data || [])\n }}\n className=\"mb-8\"\n >\n <TabsList>\n {productsTab?.map((item: any, index: number) => {\n return (\n <TabsTrigger key={index} value={item?.tab || ''}>\n {item?.tab}\n </TabsTrigger>\n )\n })}\n </TabsList>\n </Tabs>\n )}\n <SwiperBox\n className=\"!overflow-visible\"\n id={'ShelfDisplay' + key}\n data={{ list: currentItems, configuration: { ...other } }}\n Slide={ShelfDisplayItem}\n breakpoints={{\n 0: {\n spaceBetween: '12px',\n freeMode: false,\n slidesPerView: 1,\n },\n 374: {\n spaceBetween: '12px',\n freeMode: false,\n slidesPerView: 1.3,\n },\n 768: {\n spaceBetween: '16px',\n freeMode: false,\n slidesPerView: 4,\n },\n }}\n />\n </div>\n )\n}\n\nexport default withStyles(ShelfDisplay)\n"],
5
- "mappings": "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",
6
- "names": ["ShelfDisplay_exports", "__export", "ShelfDisplay_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_utils", "import_picture", "import_tabs", "import_button", "import_Title", "import_SwiperBox", "import_Styles", "import_shelfDisplay", "ShelfDisplayItem", "data", "configuration", "onPrimaryButton", "params", "onSecondaryButton", "price", "basePrice", "handleUrl", "sku", "skuArray", "item", "Picture", "index", "Button", "ShelfDisplay", "buildData", "className", "key", "tabId", "setTabId", "currentItems", "setCurrentItems", "productsTab", "productsCard", "title", "align", "isShowTab", "tabShape", "other", "handleCurrentTab", "currentData", "newCurrentData", "findData", "Title", "v", "SwiperBox"]
4
+ "sourcesContent": ["'use client'\nimport React, { useState, useEffect } from 'react'\nimport { cn } from '../../helpers/utils.js'\nimport Picture from '../../components/picture.js'\nimport { Tabs, TabsList, TabsTrigger } from '../../components/tabs.js'\nimport Button from '../../components/button.js'\nimport Title from '../Title/index.js'\nimport SwiperBox from '../SwiperBox/index.js'\nimport { withStyles } from '../../shared/Styles.js'\nimport { formatVariantPrice } from './shelfDisplay.js'\nexport interface ShelfDisplayItem {\n id?: string\n /** \u4EA7\u54C1\u56FE\u7247*/\n img?: {\n url: string\n }\n handle?: string\n sku?: string\n /** \u6298\u6263\u540E\u4EF7\u683C*/\n price?: string\n title?: string\n /** \u6298\u6263\u524D\u4EF7\u683C*/\n basePrice?: string\n subTitle?: string\n /** \u6807\u7B7E*/\n tagItems?: string[]\n tab?: string\n data?: ShelfDisplayItem[]\n}\n\ntype EventType = {\n primaryButton?: (v: any) => void\n secondaryButton?: (v: any) => void\n}\n\nexport interface ShelfDisplayProps {\n data: {\n title?: string\n isShowTab?: boolean\n align?: 'left' | 'center' | 'right'\n productsTab?: any\n productsCard?: any\n /** \u5361\u7247\u5F62\u72B6 */\n itemShape?: 'round' | 'square'\n /** \u6309\u94AE\u5F62\u72B6 */\n shape?: 'round' | 'square'\n /** \u6807\u7B7E\u9875\u5F62\u72B6*/\n tabShape?: 'rounded' | 'square'\n /** \u4E3B\u6309\u94AE\u914D\u7F6E */\n primaryButton?: string\n /** \u526F\u6309\u94AE\u914D\u7F6E */\n secondaryButton?: string\n }\n buildData?: {\n categories: any[]\n products: any[]\n }\n /** \u6309\u94AE\u4E8B\u4EF6*/\n event?: EventType\n /** \u4E3B\u9898\u8272*/\n theme?: 'light' | 'dark'\n className?: string\n key?: string\n}\n\nconst ShelfDisplayItem = ({ data, configuration }: { data: any; configuration?: any }) => {\n const onPrimaryButton = (params: ShelfDisplayItem) => configuration?.event?.primaryButton?.(params)\n\n const onSecondaryButton = (params: ShelfDisplayItem) => configuration?.event?.secondaryButton?.(params)\n\n const { price, basePrice } = formatVariantPrice({\n locale: 'us',\n amount: data?.price.amount || 0,\n baseAmount: data?.compareAtPrice?.amount || data?.price.amount || 0,\n currencyCode: data?.price.currencyCode || 'USD',\n })\n\n const handleUrl = () => {\n const sku = data?.sku\n const skuArray = data?.variants\n const findSku = skuArray?.find((item: any) => item?.sku === sku)\n return findSku?.image?.url || skuArray?.[0]?.image?.url || ''\n }\n\n return (\n <div\n key={data?.id || data?.handle}\n className={cn(\n 'laptop:pt-4 laptop:px-6 laptop:pb-6 flex size-full cursor-pointer flex-col overflow-hidden bg-[#EAEAEC] p-4',\n configuration?.itemShape === 'round' ? 'rounded-2xl' : 'rounded-none'\n )}\n >\n <div className={cn('relative mb-2 inline-block h-[137px] overflow-hidden', 'tablet:mb-3 tablet:h-[195px]')}>\n <Picture source={handleUrl()} className=\"flex h-full justify-center object-cover [&_img]:w-auto\" />\n </div>\n <div className=\"tablet:mb-2 mb-1 flex h-8 flex-wrap gap-1 overflow-hidden\">\n {data?.tags?.slice(0, 1)?.map?.((item: any, index: number) => {\n return (\n <div\n key={index}\n className=\"tablet:text-base rounded-2xl border-2 border-[#86868C] px-2 pt-1 text-sm font-bold text-[#1D1D1F]\"\n >\n {item}\n </div>\n )\n })}\n </div>\n <p\n title={data?.title || ''}\n className=\"desktop:text-2xl desktop:leading-7 line-clamp-2 max-h-[48px] flex-1 text-xl font-bold text-[#1D1D1F]\"\n >\n {data?.title || ''}\n </p>\n <h3\n title={data?.description || ''}\n className=\"tablet:mt-2 tablet:mb-3 desktop:text-lg mb-2 mt-1 h-6 truncate text-sm font-semibold text-[#1D1D1F]\"\n >\n {data?.description || ''}\n </h3>\n <div className=\"mb-2 flex items-center\">\n <div className=\"tablet:text-2xl text-xl font-bold text-[#1D1D1F]\">{price || ''}</div>\n <div className=\"tablet:text-2xl ml-1 text-xl font-bold text-[#86868C]\">{basePrice || ''}</div>\n </div>\n {/* \u6309\u94AE\u7EC4 */}\n <div className=\"flex items-center gap-3\">\n <Button\n variant=\"primary\"\n onClick={() => onPrimaryButton(data)}\n className={`\n laptop:text-sm desktop:text-base laptop:px-6 desktop:px-7 laptop:py-2.5 desktop:py-3 box-border flex-1 border\n border-[#1D1D1F] bg-transparent px-4 py-2 text-xs text-[#1D1D1F] hover:bg-transparent hover:text-black\n ${configuration?.shape === 'round' ? 'desktop:rounded-3xl rounded-[20px]' : ''}\n `}\n >\n {configuration?.primaryButton || ''}\n </Button>\n <Button\n variant=\"secondary\"\n onClick={() => onSecondaryButton(data)}\n className={`\n laptop:text-sm desktop:text-base laptop:px-6 desktop:px-7 laptop:py-2.5 desktop:py-3 box-border flex-1 border\n border-[#1D1D1F] bg-[#1D1D1F] px-4 py-2 text-xs tracking-[-0.04em] text-white\n ${configuration?.shape === 'round' ? 'desktop:rounded-3xl rounded-[20px]' : ''}\n `}\n >\n {configuration?.secondaryButton || ''}\n </Button>\n </div>\n </div>\n )\n}\n\nconst ShelfDisplay: React.FC<ShelfDisplayProps> = ({ data, buildData, className = '', key, event }) => {\n const [tabId, setTabId] = useState<string>('')\n const [currentItems, setCurrentItems] = useState<ShelfDisplayItem[]>([])\n\n const {\n productsTab = [],\n productsCard = [],\n title,\n align = 'left',\n isShowTab = true,\n tabShape = 'square',\n ...other\n } = data\n\n const handleCurrentTab = (currentData: ShelfDisplayItem[]) => {\n const newCurrentData = currentData\n ?.map(item => {\n const findData = buildData?.products?.find(params => params?.handle === item?.handle)\n if (findData) {\n return {\n sku: item.sku,\n ...findData,\n }\n }\n })\n ?.filter(item => item)\n setCurrentItems(newCurrentData)\n }\n\n useEffect(() => {\n if (isShowTab) {\n setTabId(productsTab?.[0]?.tab || '')\n handleCurrentTab(productsTab?.[0]?.data || [])\n return\n }\n handleCurrentTab(productsCard)\n }, [])\n\n return (\n <div className={cn('w-full', className)}>\n {title && <Title data={{ title: title }} />}\n {isShowTab && (\n <Tabs\n shape={tabShape}\n align={align}\n value={tabId}\n onValueChange={v => {\n setTabId(v)\n const findData = productsTab?.find((item: any) => item?.tab === v)\n handleCurrentTab(findData?.data || [])\n }}\n className=\"mb-8\"\n >\n <TabsList>\n {productsTab?.map((item: any, index: number) => {\n return (\n <TabsTrigger key={index} value={item?.tab || ''}>\n {item?.tab}\n </TabsTrigger>\n )\n })}\n </TabsList>\n </Tabs>\n )}\n <SwiperBox\n className=\"!overflow-visible\"\n id={'ShelfDisplay' + key}\n data={{ list: currentItems, configuration: { ...other, event: event } }}\n Slide={ShelfDisplayItem}\n breakpoints={{\n 0: {\n spaceBetween: '12px',\n freeMode: false,\n slidesPerView: 1,\n },\n 374: {\n spaceBetween: '12px',\n freeMode: false,\n slidesPerView: 1.3,\n },\n 768: {\n spaceBetween: '16px',\n freeMode: false,\n slidesPerView: 4,\n },\n }}\n />\n </div>\n )\n}\n\nexport default withStyles(ShelfDisplay)\n"],
5
+ "mappings": "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",
6
+ "names": ["ShelfDisplay_exports", "__export", "ShelfDisplay_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_utils", "import_picture", "import_tabs", "import_button", "import_Title", "import_SwiperBox", "import_Styles", "import_shelfDisplay", "ShelfDisplayItem", "data", "configuration", "onPrimaryButton", "params", "onSecondaryButton", "price", "basePrice", "handleUrl", "sku", "skuArray", "item", "Picture", "index", "Button", "ShelfDisplay", "buildData", "className", "key", "event", "tabId", "setTabId", "currentItems", "setCurrentItems", "productsTab", "productsCard", "title", "align", "isShowTab", "tabShape", "other", "handleCurrentTab", "currentData", "newCurrentData", "findData", "Title", "v", "SwiperBox"]
7
7
  }
@@ -0,0 +1,3 @@
1
+ import type { BannerProps } from './types.js';
2
+ declare const CpnBanner: (props: BannerProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default CpnBanner;
@@ -0,0 +1,2 @@
1
+ "use strict";var w=Object.create;var m=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var N=(n,a)=>{for(var o in a)m(n,o,{get:a[o],enumerable:!0})},x=(n,a,o,b)=>{if(a&&typeof a=="object"||typeof a=="function")for(let i of g(a))!h.call(n,i)&&i!==o&&m(n,i,{get:()=>a[i],enumerable:!(b=k(a,i))||b.enumerable});return n};var B=(n,a,o)=>(o=n!=null?w(y(n)):{},x(a||!n||!n.__esModule?m(o,"default",{value:n,enumerable:!0}):o,n)),C=n=>x(m({},"__esModule",{value:!0}),n);var P={};N(P,{default:()=>z});module.exports=C(P);var e=require("react/jsx-runtime"),s=require("../../helpers/utils.js"),c=require("../../components/index.js"),d=B(require("../CpnCountDown/index.js"));const j=n=>{const{id:a,image:o,imageMob:b,imageLink:i,content:f=[],cns:l}=n,u=t=>{if(t?.startsWith("http")&&(location.href=t),t?.startsWith("#")){const r=document.querySelector(t);r&&r.scrollIntoView({behavior:"smooth"})}};return(0,e.jsxs)("div",{id:a,className:(0,s.cn)("cpn-banner-container relative w-full",l?.container),children:[(0,e.jsx)(c.Picture,{loading:"eager",source:`${o}, ${b||o} 768`,className:(0,s.cn)("cpn-banner-picture",l?.picture),imgClassName:(0,s.cn)("cpn-banner-image h-full object-cover",l?.image),alt:""}),i&&(0,e.jsx)("a",{href:i,className:"absolute left-0 top-0 z-[1] size-full"}),(0,e.jsx)("div",{className:(0,s.cn)("cpn-banner-box tablet:flex tablet:flex-col tablet:justify-center tablet:pt-0 tablet:text-left absolute left-0 top-0 size-full pt-10 text-center",l?.box),children:(0,e.jsx)("div",{className:"tablet:px-10 desktop:px-20 px-6",children:(0,e.jsx)("div",{className:(0,s.cn)("cpn-banner-content tablet:mx-0 tablet:max-w-[40vw] mx-auto max-w-[70vw]",l?.content),children:f?.map((t,r)=>{switch(t.type){case"subheading":return(0,e.jsx)(c.Text,{as:"div",html:t.text,className:(0,s.cn)("cpn-banner-subheading tablet:text-[1.25vw] lg-desktop:text-[24px] mt-4 font-medium",l?.subheading)},r);case"title":return(0,e.jsx)(c.Text,{as:"div",html:t.text,className:(0,s.cn)("cpn-banner-title tablet:mt-5 tablet:text-[2.7vw] lg-desktop:text-[56px] mt-4 text-[32px] font-bold leading-[1.12]",l?.title)},r);case"subtitle":return(0,e.jsx)(c.Text,{as:"div",html:t.text,className:(0,s.cn)("cpn-banner-subtitle tablet:mt-5 tablet:text-[1.25vw] lg-desktop:text-[24px] mt-4 font-medium",l?.subtitle)},r);case"button":return(0,e.jsx)("div",{className:(0,s.cn)("cpn-banner-buttonBox tablet:mt-6 tablet:justify-start mt-4 flex justify-center",l?.buttonBox),children:(0,e.jsx)(c.Button,{className:(0,s.cn)("cpn-banner-button tablet:min-w-[138px] tablet:px-7 lg-desktop:min-w-[156px] lg-desktop:px-8 !w-auto min-w-[120px] !max-w-full px-5",l?.button,t.cns),onClick:t.onClick?t.onClick:()=>u(t.target||""),children:t.text},r)});case"buttons":return(0,e.jsx)("div",{className:(0,s.cn)("cpn-banner-buttonBox tablet:mt-6 tablet:justify-start mt-4 flex justify-center",l?.buttonBox),children:t.buttons.map((p,v)=>(0,e.jsx)(c.Button,{className:(0,s.cn)("cpn-banner-button tablet:min-w-[138px] tablet:px-7 lg-desktop:min-w-[156px] lg-desktop:px-8 !w-auto min-w-[120px] !max-w-full px-5",l?.button,p.cns),onClick:p.onClick?p.onClick:()=>u(p.target||""),children:p.text},v))});case"countdown":return(0,e.jsx)("div",{className:"cpn-banner-countdown tablet:mt-6 tablet:justify-start mt-4 flex justify-center",children:(0,e.jsx)(d.default,{endTime:t.endTime,copy:t.copy,cns:l?.countdown})},r)}})})})})]})};var z=j;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/cpn-components/CpnBanner/index.tsx"],
4
+ "sourcesContent": ["import type { BannerProps } from './types.js'\nimport { cn } from '../../helpers/utils.js'\nimport { Picture, Text, Button } from '../../components/index.js'\nimport CountDown from '../CpnCountDown/index.js'\n\nconst CpnBanner = (props: BannerProps) => {\n const { id, image, imageMob, imageLink, content = [], cns } = props\n\n const btnClick = (target: string) => {\n if (target?.startsWith('http')) {\n location.href = target\n }\n if (target?.startsWith('#')) {\n const element = document.querySelector(target)\n if (element) {\n element.scrollIntoView({ behavior: 'smooth' })\n }\n }\n }\n\n return (\n <div id={id} className={cn('cpn-banner-container relative w-full', cns?.container)}>\n <Picture\n loading=\"eager\"\n source={`${image}, ${imageMob || image} 768`}\n className={cn('cpn-banner-picture', cns?.picture)}\n imgClassName={cn('cpn-banner-image h-full object-cover', cns?.image)}\n alt=\"\"\n />\n {imageLink && <a href={imageLink} className=\"absolute left-0 top-0 z-[1] size-full\"></a>}\n <div\n className={cn(\n 'cpn-banner-box tablet:flex tablet:flex-col tablet:justify-center tablet:pt-0 tablet:text-left absolute left-0 top-0 size-full pt-10 text-center',\n cns?.box\n )}\n >\n <div className=\"tablet:px-10 desktop:px-20 px-6\">\n <div className={cn('cpn-banner-content tablet:mx-0 tablet:max-w-[40vw] mx-auto max-w-[70vw]', cns?.content)}>\n {content?.map((item, index) => {\n switch (item.type) {\n case 'subheading':\n return (\n <Text\n key={index}\n as=\"div\"\n html={item.text}\n className={cn(\n 'cpn-banner-subheading tablet:text-[1.25vw] lg-desktop:text-[24px] mt-4 font-medium',\n cns?.subheading\n )}\n />\n )\n case 'title':\n return (\n <Text\n key={index}\n as=\"div\"\n html={item.text}\n className={cn(\n 'cpn-banner-title tablet:mt-5 tablet:text-[2.7vw] lg-desktop:text-[56px] mt-4 text-[32px] font-bold leading-[1.12]',\n cns?.title\n )}\n />\n )\n case 'subtitle':\n return (\n <Text\n key={index}\n as=\"div\"\n html={item.text}\n className={cn(\n 'cpn-banner-subtitle tablet:mt-5 tablet:text-[1.25vw] lg-desktop:text-[24px] mt-4 font-medium',\n cns?.subtitle\n )}\n />\n )\n case 'button':\n return (\n <div\n className={cn(\n 'cpn-banner-buttonBox tablet:mt-6 tablet:justify-start mt-4 flex justify-center',\n cns?.buttonBox\n )}\n >\n <Button\n key={index}\n className={cn(\n 'cpn-banner-button tablet:min-w-[138px] tablet:px-7 lg-desktop:min-w-[156px] lg-desktop:px-8 !w-auto min-w-[120px] !max-w-full px-5',\n cns?.button,\n item.cns\n )}\n onClick={item.onClick ? item.onClick : () => btnClick(item.target || '')}\n >\n {item.text}\n </Button>\n </div>\n )\n case 'buttons':\n return (\n <div\n className={cn(\n 'cpn-banner-buttonBox tablet:mt-6 tablet:justify-start mt-4 flex justify-center',\n cns?.buttonBox\n )}\n >\n {item.buttons.map((button, index) => (\n <Button\n key={index}\n className={cn(\n 'cpn-banner-button tablet:min-w-[138px] tablet:px-7 lg-desktop:min-w-[156px] lg-desktop:px-8 !w-auto min-w-[120px] !max-w-full px-5',\n cns?.button,\n button.cns\n )}\n onClick={button.onClick ? button.onClick : () => btnClick(button.target || '')}\n >\n {button.text}\n </Button>\n ))}\n </div>\n )\n case 'countdown':\n return (\n <div\n key={index}\n className=\"cpn-banner-countdown tablet:mt-6 tablet:justify-start mt-4 flex justify-center\"\n >\n <CountDown endTime={item.endTime} copy={item.copy} cns={cns?.countdown} />\n </div>\n )\n }\n })}\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport default CpnBanner\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAqBI,IAAAI,EAAA,6BApBJC,EAAmB,kCACnBC,EAAsC,qCACtCC,EAAsB,uCAEtB,MAAMC,EAAaC,GAAuB,CACxC,KAAM,CAAE,GAAAC,EAAI,MAAAC,EAAO,SAAAC,EAAU,UAAAC,EAAW,QAAAC,EAAU,CAAC,EAAG,IAAAC,CAAI,EAAIN,EAExDO,EAAYC,GAAmB,CAInC,GAHIA,GAAQ,WAAW,MAAM,IAC3B,SAAS,KAAOA,GAEdA,GAAQ,WAAW,GAAG,EAAG,CAC3B,MAAMC,EAAU,SAAS,cAAcD,CAAM,EACzCC,GACFA,EAAQ,eAAe,CAAE,SAAU,QAAS,CAAC,CAEjD,CACF,EAEA,SACE,QAAC,OAAI,GAAIR,EAAI,aAAW,MAAG,uCAAwCK,GAAK,SAAS,EAC/E,oBAAC,WACC,QAAQ,QACR,OAAQ,GAAGJ,CAAK,KAAKC,GAAYD,CAAK,OACtC,aAAW,MAAG,qBAAsBI,GAAK,OAAO,EAChD,gBAAc,MAAG,uCAAwCA,GAAK,KAAK,EACnE,IAAI,GACN,EACCF,MAAa,OAAC,KAAE,KAAMA,EAAW,UAAU,wCAAwC,KACpF,OAAC,OACC,aAAW,MACT,kJACAE,GAAK,GACP,EAEA,mBAAC,OAAI,UAAU,kCACb,mBAAC,OAAI,aAAW,MAAG,0EAA2EA,GAAK,OAAO,EACvG,SAAAD,GAAS,IAAI,CAACK,EAAMC,IAAU,CAC7B,OAAQD,EAAK,KAAM,CACjB,IAAK,aACH,SACE,OAAC,QAEC,GAAG,MACH,KAAMA,EAAK,KACX,aAAW,MACT,qFACAJ,GAAK,UACP,GANKK,CAOP,EAEJ,IAAK,QACH,SACE,OAAC,QAEC,GAAG,MACH,KAAMD,EAAK,KACX,aAAW,MACT,oHACAJ,GAAK,KACP,GANKK,CAOP,EAEJ,IAAK,WACH,SACE,OAAC,QAEC,GAAG,MACH,KAAMD,EAAK,KACX,aAAW,MACT,+FACAJ,GAAK,QACP,GANKK,CAOP,EAEJ,IAAK,SACH,SACE,OAAC,OACC,aAAW,MACT,iFACAL,GAAK,SACP,EAEA,mBAAC,UAEC,aAAW,MACT,qIACAA,GAAK,OACLI,EAAK,GACP,EACA,QAASA,EAAK,QAAUA,EAAK,QAAU,IAAMH,EAASG,EAAK,QAAU,EAAE,EAEtE,SAAAA,EAAK,MARDC,CASP,EACF,EAEJ,IAAK,UACH,SACE,OAAC,OACC,aAAW,MACT,iFACAL,GAAK,SACP,EAEC,SAAAI,EAAK,QAAQ,IAAI,CAACE,EAAQD,OACzB,OAAC,UAEC,aAAW,MACT,qIACAL,GAAK,OACLM,EAAO,GACT,EACA,QAASA,EAAO,QAAUA,EAAO,QAAU,IAAML,EAASK,EAAO,QAAU,EAAE,EAE5E,SAAAA,EAAO,MARHD,CASP,CACD,EACH,EAEJ,IAAK,YACH,SACE,OAAC,OAEC,UAAU,iFAEV,mBAAC,EAAAE,QAAA,CAAU,QAASH,EAAK,QAAS,KAAMA,EAAK,KAAM,IAAKJ,GAAK,UAAW,GAHnEK,CAIP,CAEN,CACF,CAAC,EACH,EACF,EACF,GACF,CAEJ,EAEA,IAAOlB,EAAQM",
6
+ "names": ["CpnBanner_exports", "__export", "CpnBanner_default", "__toCommonJS", "import_jsx_runtime", "import_utils", "import_components", "import_CpnCountDown", "CpnBanner", "props", "id", "image", "imageMob", "imageLink", "content", "cns", "btnClick", "target", "element", "item", "index", "button", "CountDown"]
7
+ }
@@ -0,0 +1,42 @@
1
+ import type { CountDownProps } from '../CpnCountDown/types';
2
+ type TextType = 'title' | 'subtitle' | 'subheading';
3
+ type TextContent = {
4
+ type: TextType;
5
+ text: string;
6
+ };
7
+ type ButtonContent = {
8
+ type: 'button';
9
+ text: string;
10
+ target?: string;
11
+ cns?: string;
12
+ onClick?: () => void;
13
+ };
14
+ type ButtonsContent = {
15
+ type: 'buttons';
16
+ buttons: Omit<ButtonContent, 'type'>[];
17
+ };
18
+ type CountDownContent = {
19
+ type: 'countdown';
20
+ } & CountDownProps;
21
+ type BannerContent = TextContent | ButtonContent | ButtonsContent | CountDownContent;
22
+ export type BannerProps = {
23
+ id?: string;
24
+ image: string;
25
+ imageMob?: string;
26
+ imageLink?: string;
27
+ content?: BannerContent[];
28
+ cns?: {
29
+ container?: string;
30
+ picture?: string;
31
+ image?: string;
32
+ box?: string;
33
+ content?: string;
34
+ subheading?: string;
35
+ title?: string;
36
+ subtitle?: string;
37
+ buttonBox?: string;
38
+ button?: string;
39
+ countdown?: CountDownProps['cns'];
40
+ };
41
+ };
42
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";var i=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var u=(n,t,s,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of g(t))!p.call(n,e)&&e!==s&&i(n,e,{get:()=>t[e],enumerable:!(o=r(t,e))||o.enumerable});return n};var C=n=>u(i({},"__esModule",{value:!0}),n);var y={};module.exports=C(y);
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/cpn-components/CpnBanner/types.ts"],
4
+ "sourcesContent": ["import type { CountDownProps } from '../CpnCountDown/types'\n\ntype TextType = 'title' | 'subtitle' | 'subheading'\n\ntype TextContent = {\n type: TextType\n text: string\n}\n\ninterface BaseType {\n text?: string\n target?: string\n end?: string\n copy?: CountDownProps['copy']\n}\n\ntype ButtonContent = {\n type: 'button'\n text: string\n target?: string\n cns?: string\n onClick?: () => void\n}\n\ntype ButtonsContent = {\n type: 'buttons'\n buttons: Omit<ButtonContent, 'type'>[]\n}\n\ntype CountDownContent = {\n type: 'countdown'\n} & CountDownProps\n\ntype BannerContent = TextContent | ButtonContent | ButtonsContent | CountDownContent\n\nexport type BannerProps = {\n id?: string\n image: string\n imageMob?: string\n imageLink?: string\n content?: BannerContent[]\n cns?: {\n container?: string\n picture?: string\n image?: string\n box?: string\n content?: string\n subheading?: string\n title?: string\n subtitle?: string\n buttonBox?: string\n button?: string\n countdown?: CountDownProps['cns']\n }\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["types_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,3 @@
1
+ import type { CountDownProps } from './types.js';
2
+ declare const CpnCountDown: (props: CountDownProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default CpnCountDown;
@@ -0,0 +1,2 @@
1
+ "use strict";var x=Object.create;var l=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var g=(t,n)=>{for(var o in n)l(t,o,{get:n[o],enumerable:!0})},m=(t,n,o,c)=>{if(n&&typeof n=="object"||typeof n=="function")for(let p of b(n))!y.call(t,p)&&p!==o&&l(t,p,{get:()=>n[p],enumerable:!(c=v(n,p))||c.enumerable});return t};var N=(t,n,o)=>(o=t!=null?x(w(t)):{},m(n||!t||!t.__esModule?l(o,"default",{value:t,enumerable:!0}):o,t)),z=t=>m(l({},"__esModule",{value:!0}),t);var P={};g(P,{default:()=>h});module.exports=z(P);var e=require("react/jsx-runtime"),s=require("../../helpers/utils.js"),r=require("../../components/index.js"),u=N(require("../../hooks/useCountDown.js"));const a=({time:t,copy:n,image:o,cns:c})=>(0,e.jsx)(e.Fragment,{children:t?(0,e.jsxs)("div",{className:(0,s.cn)("cpn-countdown-item laptop:size-[54px] tablet:size-[3.2vw] relative size-[34px] rounded bg-black",c?.item),children:[o&&(0,e.jsx)(r.Picture,{className:(0,s.cn)("cpn-countdown-picture absolute left-0 top-0 size-full",c?.picture),imgClassName:(0,s.cn)("cpn-countdown-image h-full object-cover",c?.image),source:`${o}`}),(0,e.jsx)("div",{className:(0,s.cn)("cpn-countdown-time tablet:text-[1.25vw] laptop:text-[24px] absolute left-0 top-0 flex size-full items-center justify-center text-[16px] font-[600] text-white",c?.time),children:t}),n&&(0,e.jsx)("div",{className:(0,s.cn)("cpn-countdown-copy tablet:text-[12px] laptop:text-[14px] tablet:-bottom-6 absolute -bottom-4 left-1/2 -translate-x-1/2 text-[9px] font-medium",c?.copy),children:n})]}):(0,e.jsx)("div",{className:(0,s.cn)("cpn-countdown-colonBox relative flex flex-col gap-1",c?.colonBox),children:Array.from({length:2}).map((p,i)=>(0,e.jsx)("span",{className:(0,s.cn)("cpn-countdown-colon size-1 rounded-full bg-black",c?.colon)},i))})}),C=t=>{const{endTime:n,copy:o,cns:c}=t,{days:p,hours:i,minutes:d,seconds:f}=(0,u.default)({endTime:n});return(0,e.jsxs)("div",{className:(0,s.cn)("cpn-countdown-container laptop:gap-4 relative flex items-center justify-center gap-2",{"mb-5":o?.days},c?.container),children:[(0,e.jsx)(a,{time:p,copy:o?.days,cns:c}),(0,e.jsx)(a,{}),(0,e.jsx)(a,{time:i,copy:o?.hours,cns:c}),(0,e.jsx)(a,{}),(0,e.jsx)(a,{time:d,copy:o?.minutes,cns:c}),(0,e.jsx)(a,{}),(0,e.jsx)(a,{time:f,copy:o?.seconds,cns:c})]})};var h=C;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/cpn-components/CpnCountDown/index.tsx"],
4
+ "sourcesContent": ["import type { CountDownProps, ItemProps } from './types.js'\nimport { cn } from '../../helpers/utils.js'\nimport { Picture } from '../../components/index.js'\nimport useCountDown from '../../hooks/useCountDown.js'\n\nconst Item = ({ time, copy, image, cns }: ItemProps) => (\n <>\n {time ? (\n <div\n className={cn(\n 'cpn-countdown-item laptop:size-[54px] tablet:size-[3.2vw] relative size-[34px] rounded bg-black',\n cns?.item\n )}\n >\n {image && (\n <Picture\n className={cn('cpn-countdown-picture absolute left-0 top-0 size-full', cns?.picture)}\n imgClassName={cn('cpn-countdown-image h-full object-cover', cns?.image)}\n source={`${image}`}\n />\n )}\n <div\n className={cn(\n 'cpn-countdown-time tablet:text-[1.25vw] laptop:text-[24px] absolute left-0 top-0 flex size-full items-center justify-center text-[16px] font-[600] text-white',\n cns?.time\n )}\n >\n {time}\n </div>\n {copy && (\n <div\n className={cn(\n 'cpn-countdown-copy tablet:text-[12px] laptop:text-[14px] tablet:-bottom-6 absolute -bottom-4 left-1/2 -translate-x-1/2 text-[9px] font-medium',\n cns?.copy\n )}\n >\n {copy}\n </div>\n )}\n </div>\n ) : (\n <div className={cn('cpn-countdown-colonBox relative flex flex-col gap-1', cns?.colonBox)}>\n {Array.from({ length: 2 }).map((_, index) => (\n <span key={index} className={cn('cpn-countdown-colon size-1 rounded-full bg-black', cns?.colon)}></span>\n ))}\n </div>\n )}\n </>\n)\n\nconst CpnCountDown = (props: CountDownProps) => {\n const { endTime, copy, cns } = props\n\n const { days, hours, minutes, seconds } = useCountDown({ endTime })\n\n return (\n <div\n className={cn(\n 'cpn-countdown-container laptop:gap-4 relative flex items-center justify-center gap-2',\n {\n 'mb-5': copy?.days,\n },\n cns?.container\n )}\n >\n <Item time={days} copy={copy?.days} cns={cns} />\n <Item />\n <Item time={hours} copy={copy?.hours} cns={cns} />\n <Item />\n <Item time={minutes} copy={copy?.minutes} cns={cns} />\n <Item />\n <Item time={seconds} copy={copy?.seconds} cns={cns} />\n </div>\n )\n}\n\nexport default CpnCountDown\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAME,IAAAI,EAAA,6BALFC,EAAmB,kCACnBC,EAAwB,qCACxBC,EAAyB,0CAEzB,MAAMC,EAAO,CAAC,CAAE,KAAAC,EAAM,KAAAC,EAAM,MAAAC,EAAO,IAAAC,CAAI,OACrC,mBACG,SAAAH,KACC,QAAC,OACC,aAAW,MACT,kGACAG,GAAK,IACP,EAEC,UAAAD,MACC,OAAC,WACC,aAAW,MAAG,wDAAyDC,GAAK,OAAO,EACnF,gBAAc,MAAG,0CAA2CA,GAAK,KAAK,EACtE,OAAQ,GAAGD,CAAK,GAClB,KAEF,OAAC,OACC,aAAW,MACT,gKACAC,GAAK,IACP,EAEC,SAAAH,EACH,EACCC,MACC,OAAC,OACC,aAAW,MACT,gJACAE,GAAK,IACP,EAEC,SAAAF,EACH,GAEJ,KAEA,OAAC,OAAI,aAAW,MAAG,sDAAuDE,GAAK,QAAQ,EACpF,eAAM,KAAK,CAAE,OAAQ,CAAE,CAAC,EAAE,IAAI,CAACC,EAAGC,OACjC,OAAC,QAAiB,aAAW,MAAG,mDAAoDF,GAAK,KAAK,GAAnFE,CAAsF,CAClG,EACH,EAEJ,EAGIC,EAAgBC,GAA0B,CAC9C,KAAM,CAAE,QAAAC,EAAS,KAAAP,EAAM,IAAAE,CAAI,EAAII,EAEzB,CAAE,KAAAE,EAAM,MAAAC,EAAO,QAAAC,EAAS,QAAAC,CAAQ,KAAI,EAAAC,SAAa,CAAE,QAAAL,CAAQ,CAAC,EAElE,SACE,QAAC,OACC,aAAW,MACT,uFACA,CACE,OAAQP,GAAM,IAChB,EACAE,GAAK,SACP,EAEA,oBAACJ,EAAA,CAAK,KAAMU,EAAM,KAAMR,GAAM,KAAM,IAAKE,EAAK,KAC9C,OAACJ,EAAA,EAAK,KACN,OAACA,EAAA,CAAK,KAAMW,EAAO,KAAMT,GAAM,MAAO,IAAKE,EAAK,KAChD,OAACJ,EAAA,EAAK,KACN,OAACA,EAAA,CAAK,KAAMY,EAAS,KAAMV,GAAM,QAAS,IAAKE,EAAK,KACpD,OAACJ,EAAA,EAAK,KACN,OAACA,EAAA,CAAK,KAAMa,EAAS,KAAMX,GAAM,QAAS,IAAKE,EAAK,GACtD,CAEJ,EAEA,IAAOV,EAAQa",
6
+ "names": ["CpnCountDown_exports", "__export", "CpnCountDown_default", "__toCommonJS", "import_jsx_runtime", "import_utils", "import_components", "import_useCountDown", "Item", "time", "copy", "image", "cns", "_", "index", "CpnCountDown", "props", "endTime", "days", "hours", "minutes", "seconds", "useCountDown"]
7
+ }
@@ -0,0 +1,28 @@
1
+ type Cns = {
2
+ container?: string;
3
+ item?: string;
4
+ picture?: string;
5
+ image?: string;
6
+ time?: string;
7
+ copy?: string;
8
+ colonBox?: string;
9
+ colon?: string;
10
+ };
11
+ type Copy = {
12
+ days?: string;
13
+ hours?: string;
14
+ minutes?: string;
15
+ seconds?: string;
16
+ };
17
+ export type CountDownProps = {
18
+ endTime?: string;
19
+ copy?: Copy;
20
+ cns?: Cns;
21
+ };
22
+ export type ItemProps = {
23
+ time?: string;
24
+ copy?: string;
25
+ image?: string;
26
+ cns?: Cns;
27
+ };
28
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";var r=Object.defineProperty;var e=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var c=(t,n,o,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let s of g(n))!p.call(t,s)&&s!==o&&r(t,s,{get:()=>n[s],enumerable:!(i=e(n,s))||i.enumerable});return t};var y=t=>c(r({},"__esModule",{value:!0}),t);var m={};module.exports=y(m);
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/cpn-components/CpnCountDown/types.ts"],
4
+ "sourcesContent": ["type Cns = {\n container?: string\n item?: string\n picture?: string\n image?: string\n time?: string\n copy?: string\n colonBox?: string\n colon?: string\n}\n\ntype Copy = {\n days?: string\n hours?: string\n minutes?: string\n seconds?: string\n}\n\nexport type CountDownProps = {\n endTime?: string\n copy?: Copy\n cns?: Cns\n}\n\nexport type ItemProps = {\n time?: string\n copy?: string\n image?: string\n cns?: Cns\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["types_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,3 @@
1
+ import type { NavigationProps } from './types.js';
2
+ declare const CpnNavigation: (props: NavigationProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default CpnNavigation;
@@ -0,0 +1,2 @@
1
+ "use strict";var y=Object.create;var s=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var I=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var S=(e,t)=>{for(var o in t)s(e,o,{get:t[o],enumerable:!0})},h=(e,t,o,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of N(t))!R.call(e,n)&&n!==o&&s(e,n,{get:()=>t[n],enumerable:!(a=E(t,n))||a.enumerable});return e};var k=(e,t,o)=>(o=e!=null?y(I(e)):{},h(t||!e||!e.__esModule?s(o,"default",{value:e,enumerable:!0}):o,e)),H=e=>h(s({},"__esModule",{value:!0}),e);var $={};S($,{default:()=>T});module.exports=H($);var f=require("react/jsx-runtime"),l=require("react"),v=require("../../helpers/utils.js"),g=k(require("lodash.debounce"));const L=e=>{const{lists:t,styles:o,cns:a,offset:n=0}=e,[x,d]=(0,l.useState)(0),u=(0,l.useRef)(null),C=r=>{r.scrollIntoView({behavior:"smooth",inline:"center"})},w=(r,c,i)=>{d(c);const p=i.target;C(p),r.anchor&&document.querySelector(`#${r.anchor}`)?.scrollIntoView({behavior:"smooth"}),i.preventDefault()};return(0,l.useEffect)(()=>{const r=(0,g.default)(()=>{const i=[];t?.forEach(m=>{const b=document.querySelector(`#${m.anchor}`);b&&i.push(b.getBoundingClientRect().top)});const p=i.findIndex(m=>m>c+n)-1;d(p)},100),c=u.current?.getBoundingClientRect().height||0;return window.addEventListener("scroll",r),()=>{window.removeEventListener("scroll",r)}},[t,n]),(0,f.jsx)("div",{id:"nav",className:(0,v.cn)("cpn-nav-container sticky top-0 z-10 w-full bg-[var(--bgColor)]",a?.container),style:{"--bgColor":o?.bgColor||"#C6F1FF","--color":o?.color||"#333","--activeColor":o?.activeColor||"#000"},children:(0,f.jsx)("div",{className:(0,v.cn)("cpn-nav-box relative flex items-center justify-start gap-[18px] overflow-scroll px-6 text-center [&::-webkit-scrollbar]:hidden","tablet:gap-[80px] tablet:justify-center",a?.box),ref:u,children:t?.map((r,c)=>(0,f.jsx)("a",{href:`#${r.anchor}`,className:(0,v.cn)("cpn-nav-item relative cursor-pointer whitespace-nowrap py-[14px] text-[16px] font-medium leading-[1.2] text-[var(--color)] transition-all duration-200",a?.item,{[`border-[var(--activeColor)] text-[var(--activeColor)] after:absolute after:bottom-0 after:left-0 after:h-[2px] after:w-full after:bg-[var(--activeColor)] after:transition-all after:duration-200 after:content-[""] ${a?.activeItem}`]:x===c}),onClick:i=>w(r,c,i),children:r.label},r.label))})})};var T=L;
2
+ //# sourceMappingURL=index.js.map