@anker-in/headless-ui 0.0.27-alpha.36 → 0.0.27-alpha.38
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.
- package/dist/cjs/biz-components/ShelfDisplay/index.d.ts +6 -2
- package/dist/cjs/biz-components/ShelfDisplay/index.js +5 -5
- package/dist/cjs/biz-components/ShelfDisplay/index.js.map +3 -3
- package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.d.ts +23 -0
- package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.js +2 -0
- package/dist/cjs/biz-components/ShelfDisplay/shelfDisplay.js.map +7 -0
- package/dist/cjs/cpn-components/CpnBanner/index.d.ts +3 -0
- package/dist/cjs/cpn-components/CpnBanner/index.js +2 -0
- package/dist/cjs/cpn-components/CpnBanner/index.js.map +7 -0
- package/dist/cjs/cpn-components/CpnBanner/types.d.ts +42 -0
- package/dist/cjs/cpn-components/CpnBanner/types.js +2 -0
- package/dist/cjs/cpn-components/CpnBanner/types.js.map +7 -0
- package/dist/cjs/cpn-components/CpnCountDown/index.d.ts +3 -0
- package/dist/cjs/cpn-components/CpnCountDown/index.js +2 -0
- package/dist/cjs/cpn-components/CpnCountDown/index.js.map +7 -0
- package/dist/cjs/cpn-components/CpnCountDown/types.d.ts +28 -0
- package/dist/cjs/cpn-components/CpnCountDown/types.js +2 -0
- package/dist/cjs/cpn-components/CpnCountDown/types.js.map +7 -0
- package/dist/cjs/cpn-components/CpnNavigation/index.d.ts +3 -0
- package/dist/cjs/cpn-components/CpnNavigation/index.js +2 -0
- package/dist/cjs/cpn-components/CpnNavigation/index.js.map +7 -0
- package/dist/cjs/cpn-components/CpnNavigation/types.d.ts +19 -0
- package/dist/cjs/cpn-components/CpnNavigation/types.js +2 -0
- package/dist/cjs/cpn-components/CpnNavigation/types.js.map +7 -0
- package/dist/cjs/cpn-components/CpnProductCard/index.d.ts +3 -0
- package/dist/cjs/cpn-components/CpnProductCard/index.js +2 -0
- package/dist/cjs/cpn-components/CpnProductCard/index.js.map +7 -0
- package/dist/cjs/cpn-components/CpnProductCard/types.d.ts +109 -0
- package/dist/cjs/cpn-components/CpnProductCard/types.js +2 -0
- package/dist/cjs/cpn-components/CpnProductCard/types.js.map +7 -0
- package/dist/cjs/cpn-components/CpnTitle/index.d.ts +3 -0
- package/dist/cjs/cpn-components/CpnTitle/index.js +2 -0
- package/dist/cjs/cpn-components/CpnTitle/index.js.map +7 -0
- package/dist/cjs/cpn-components/CpnTitle/types.d.ts +10 -0
- package/dist/cjs/cpn-components/CpnTitle/types.js +2 -0
- package/dist/cjs/cpn-components/CpnTitle/types.js.map +7 -0
- package/dist/cjs/cpn-components/index.d.ts +5 -0
- package/dist/cjs/cpn-components/index.js +2 -0
- package/dist/cjs/cpn-components/index.js.map +7 -0
- package/dist/cjs/hooks/useCountDown.d.ts +10 -0
- package/dist/cjs/hooks/useCountDown.js +2 -0
- package/dist/cjs/hooks/useCountDown.js.map +7 -0
- package/dist/cjs/stories/cpnBanner.stories.d.ts +14 -0
- package/dist/cjs/stories/cpnBanner.stories.js +2 -0
- package/dist/cjs/stories/cpnBanner.stories.js.map +7 -0
- package/dist/cjs/stories/cpnCountdown.stories.d.ts +12 -0
- package/dist/cjs/stories/cpnCountdown.stories.js +2 -0
- package/dist/cjs/stories/cpnCountdown.stories.js.map +7 -0
- package/dist/cjs/stories/cpnNavigation.stories.d.ts +14 -0
- package/dist/cjs/stories/cpnNavigation.stories.js +2 -0
- package/dist/cjs/stories/cpnNavigation.stories.js.map +7 -0
- package/dist/cjs/stories/cpnProductcard.stories.d.ts +14 -0
- package/dist/cjs/stories/cpnProductcard.stories.js +2 -0
- package/dist/cjs/stories/cpnProductcard.stories.js.map +7 -0
- package/dist/cjs/stories/cpnTitle.stories.d.ts +14 -0
- package/dist/cjs/stories/cpnTitle.stories.js +2 -0
- package/dist/cjs/stories/cpnTitle.stories.js.map +7 -0
- package/dist/cjs/stories/shelfDisplay.stories.js +1 -1
- package/dist/cjs/stories/shelfDisplay.stories.js.map +2 -2
- package/dist/esm/biz-components/ShelfDisplay/index.d.ts +6 -2
- package/dist/esm/biz-components/ShelfDisplay/index.js +3 -3
- package/dist/esm/biz-components/ShelfDisplay/index.js.map +3 -3
- package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.d.ts +23 -0
- package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.js +2 -0
- package/dist/esm/biz-components/ShelfDisplay/shelfDisplay.js.map +7 -0
- package/dist/esm/cpn-components/CpnBanner/index.d.ts +3 -0
- package/dist/esm/cpn-components/CpnBanner/index.js +2 -0
- package/dist/esm/cpn-components/CpnBanner/index.js.map +7 -0
- package/dist/esm/cpn-components/CpnBanner/types.d.ts +42 -0
- package/dist/esm/cpn-components/CpnBanner/types.js +1 -0
- package/dist/esm/cpn-components/CpnBanner/types.js.map +7 -0
- package/dist/esm/cpn-components/CpnCountDown/index.d.ts +3 -0
- package/dist/esm/cpn-components/CpnCountDown/index.js +2 -0
- package/dist/esm/cpn-components/CpnCountDown/index.js.map +7 -0
- package/dist/esm/cpn-components/CpnCountDown/types.d.ts +28 -0
- package/dist/esm/cpn-components/CpnCountDown/types.js +1 -0
- package/dist/esm/cpn-components/CpnCountDown/types.js.map +7 -0
- package/dist/esm/cpn-components/CpnNavigation/index.d.ts +3 -0
- package/dist/esm/cpn-components/CpnNavigation/index.js +2 -0
- package/dist/esm/cpn-components/CpnNavigation/index.js.map +7 -0
- package/dist/esm/cpn-components/CpnNavigation/types.d.ts +19 -0
- package/dist/esm/cpn-components/CpnNavigation/types.js +1 -0
- package/dist/esm/cpn-components/CpnNavigation/types.js.map +7 -0
- package/dist/esm/cpn-components/CpnProductCard/index.d.ts +3 -0
- package/dist/esm/cpn-components/CpnProductCard/index.js +2 -0
- package/dist/esm/cpn-components/CpnProductCard/index.js.map +7 -0
- package/dist/esm/cpn-components/CpnProductCard/types.d.ts +109 -0
- package/dist/esm/cpn-components/CpnProductCard/types.js +1 -0
- package/dist/esm/cpn-components/CpnProductCard/types.js.map +7 -0
- package/dist/esm/cpn-components/CpnTitle/index.d.ts +3 -0
- package/dist/esm/cpn-components/CpnTitle/index.js +2 -0
- package/dist/esm/cpn-components/CpnTitle/index.js.map +7 -0
- package/dist/esm/cpn-components/CpnTitle/types.d.ts +10 -0
- package/dist/esm/cpn-components/CpnTitle/types.js +1 -0
- package/dist/esm/cpn-components/CpnTitle/types.js.map +7 -0
- package/dist/esm/cpn-components/index.d.ts +5 -0
- package/dist/esm/cpn-components/index.js +2 -0
- package/dist/esm/cpn-components/index.js.map +7 -0
- package/dist/esm/hooks/useCountDown.d.ts +10 -0
- package/dist/esm/hooks/useCountDown.js +2 -0
- package/dist/esm/hooks/useCountDown.js.map +7 -0
- package/dist/esm/stories/cpnBanner.stories.d.ts +14 -0
- package/dist/esm/stories/cpnBanner.stories.js +2 -0
- package/dist/esm/stories/cpnBanner.stories.js.map +7 -0
- package/dist/esm/stories/cpnCountdown.stories.d.ts +12 -0
- package/dist/esm/stories/cpnCountdown.stories.js +2 -0
- package/dist/esm/stories/cpnCountdown.stories.js.map +7 -0
- package/dist/esm/stories/cpnNavigation.stories.d.ts +14 -0
- package/dist/esm/stories/cpnNavigation.stories.js +2 -0
- package/dist/esm/stories/cpnNavigation.stories.js.map +7 -0
- package/dist/esm/stories/cpnProductcard.stories.d.ts +14 -0
- package/dist/esm/stories/cpnProductcard.stories.js +2 -0
- package/dist/esm/stories/cpnProductcard.stories.js.map +7 -0
- package/dist/esm/stories/cpnTitle.stories.d.ts +14 -0
- package/dist/esm/stories/cpnTitle.stories.js +2 -0
- package/dist/esm/stories/cpnTitle.stories.js.map +7 -0
- package/dist/esm/stories/shelfDisplay.stories.js +1 -1
- package/dist/esm/stories/shelfDisplay.stories.js.map +2 -2
- package/package.json +11 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/cpn-components/CpnTitle/index.tsx"],
|
|
4
|
+
"sourcesContent": ["import type { TitleProps } from './types.js'\nimport { cn } from '../../helpers/utils.js'\nimport { Picture, Text } from '../../components/index.js'\n\nconst CpnTitle = (props: TitleProps) => {\n const { html, icon_l, icon_r, cns } = props\n\n return (\n <div className={cn('cpn-title-container flex items-start justify-center gap-5 text-center', cns?.container)}>\n {icon_l && <Picture source={icon_l} className={cn('cpn-title-icon-l', cns?.icon_l)} />}\n <Text html={html} className=\"cpn-title-text laptop:text-[40px] text-[24px] font-bold\" />\n {icon_r && <Picture source={icon_r} className={cn('cpn-title-icon-r', cns?.icon_r)} />}\n </div>\n )\n}\n\nexport default CpnTitle\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAQI,IAAAI,EAAA,6BAPJC,EAAmB,kCACnBC,EAA8B,qCAE9B,MAAMC,EAAYC,GAAsB,CACtC,KAAM,CAAE,KAAAC,EAAM,OAAAC,EAAQ,OAAAC,EAAQ,IAAAC,CAAI,EAAIJ,EAEtC,SACE,QAAC,OAAI,aAAW,MAAG,wEAAyEI,GAAK,SAAS,EACvG,UAAAF,MAAU,OAAC,WAAQ,OAAQA,EAAQ,aAAW,MAAG,mBAAoBE,GAAK,MAAM,EAAG,KACpF,OAAC,QAAK,KAAMH,EAAM,UAAU,0DAA0D,EACrFE,MAAU,OAAC,WAAQ,OAAQA,EAAQ,aAAW,MAAG,mBAAoBC,GAAK,MAAM,EAAG,GACtF,CAEJ,EAEA,IAAOV,EAAQK",
|
|
6
|
+
"names": ["CpnTitle_exports", "__export", "CpnTitle_default", "__toCommonJS", "import_jsx_runtime", "import_utils", "import_components", "CpnTitle", "props", "html", "icon_l", "icon_r", "cns"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var s=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var e=Object.prototype.hasOwnProperty;var l=(i,n,o,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of g(n))!e.call(i,r)&&r!==o&&s(i,r,{get:()=>n[r],enumerable:!(t=c(n,r))||t.enumerable});return i};var _=i=>l(s({},"__esModule",{value:!0}),i);var p={};module.exports=_(p);
|
|
2
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/cpn-components/CpnTitle/types.ts"],
|
|
4
|
+
"sourcesContent": ["export type TitleProps = {\n html: string\n icon_l?: string\n icon_r?: string\n cns?: {\n container?: string\n icon_l?: string\n icon_r?: string\n }\n}\n"],
|
|
5
|
+
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
|
+
"names": ["types_exports", "__toCommonJS"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { default as CpnBanner } from './CpnBanner/index.js';
|
|
2
|
+
export { default as CpnCountDown } from './CpnCountDown/index.js';
|
|
3
|
+
export { default as CpnNavigation } from './CpnNavigation/index.js';
|
|
4
|
+
export { default as CpnProductCard } from './CpnProductCard/index.js';
|
|
5
|
+
export { default as CpnTitle } from './CpnTitle/index.js';
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var s=Object.create;var f=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var c=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var v=(a,o)=>{for(var t in o)f(a,t,{get:o[t],enumerable:!0})},p=(a,o,t,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of i(o))!g.call(a,r)&&r!==t&&f(a,r,{get:()=>o[r],enumerable:!(n=x(o,r))||n.enumerable});return a};var e=(a,o,t)=>(t=a!=null?s(c(a)):{},p(o||!a||!a.__esModule?f(t,"default",{value:a,enumerable:!0}):t,a)),w=a=>p(f({},"__esModule",{value:!0}),a);var B={};v(B,{CpnBanner:()=>d.default,CpnCountDown:()=>u.default,CpnNavigation:()=>C.default,CpnProductCard:()=>l.default,CpnTitle:()=>m.default});module.exports=w(B);var d=e(require("./CpnBanner/index.js")),u=e(require("./CpnCountDown/index.js")),C=e(require("./CpnNavigation/index.js")),l=e(require("./CpnProductCard/index.js")),m=e(require("./CpnTitle/index.js"));
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/cpn-components/index.ts"],
|
|
4
|
+
"sourcesContent": ["export { default as CpnBanner } from './CpnBanner/index.js'\nexport { default as CpnCountDown } from './CpnCountDown/index.js'\nexport { default as CpnNavigation } from './CpnNavigation/index.js'\nexport { default as CpnProductCard } from './CpnProductCard/index.js'\nexport { default as CpnTitle } from './CpnTitle/index.js'\n"],
|
|
5
|
+
"mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qJAAAE,EAAAF,GAAA,IAAAG,EAAqC,mCACrCC,EAAwC,sCACxCC,EAAyC,uCACzCC,EAA0C,wCAC1CC,EAAoC",
|
|
6
|
+
"names": ["cpn_components_exports", "__export", "__toCommonJS", "import_CpnBanner", "import_CpnCountDown", "import_CpnNavigation", "import_CpnProductCard", "import_CpnTitle"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var u=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var D=Object.prototype.hasOwnProperty;var T=(n,t)=>{for(var o in t)u(n,o,{get:t[o],enumerable:!0})},h=(n,t,o,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of w(t))!D.call(n,s)&&s!==o&&u(n,s,{get:()=>t[s],enumerable:!(e=l(t,s))||e.enumerable});return n};var b=n=>h(u({},"__esModule",{value:!0}),n);var S={};T(S,{default:()=>y});module.exports=b(S);var i=require("react");const p=({endTime:n=""})=>{const[t,o]=(0,i.useState)({days:"00",hours:"00",minutes:"00",seconds:"00"});return(0,i.useEffect)(()=>{const e=c=>(c<0?0:Math.floor(c)).toString().padStart(2,"0"),s=new Date(n).getTime(),a=setInterval(()=>{const c=new Date().getTime(),r=s-c,m=e(r/(1e3*60*60*24)),d=e(r%(1e3*60*60*24)/(1e3*60*60)),g=e(r%(1e3*60*60)/(1e3*60)),f=e(r%(1e3*60)/1e3);o({days:m,hours:d,minutes:g,seconds:f})},1e3);return()=>clearInterval(a)},[n]),t};var y=p;
|
|
2
|
+
//# sourceMappingURL=useCountDown.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/useCountDown.ts"],
|
|
4
|
+
"sourcesContent": ["import { useEffect, useState } from 'react'\n\ninterface Time {\n days: string\n hours: string\n minutes: string\n seconds: string\n}\n\nconst useCountDown = ({ endTime = '' }: { endTime?: string }) => {\n const [time, setTime] = useState<Time>({\n days: '00',\n hours: '00',\n minutes: '00',\n seconds: '00',\n })\n\n useEffect(() => {\n const format = (date: number) => {\n const number = date < 0 ? 0 : Math.floor(date)\n return number.toString().padStart(2, '0')\n }\n\n const countDownDate = new Date(endTime).getTime()\n\n const timer = setInterval(() => {\n const now = new Date().getTime()\n const distance = countDownDate - now\n\n const days = format(distance / (1000 * 60 * 60 * 24))\n const hours = format((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60))\n const minutes = format((distance % (1000 * 60 * 60)) / (1000 * 60))\n const seconds = format((distance % (1000 * 60)) / 1000)\n\n setTime({\n days,\n hours,\n minutes,\n seconds,\n })\n }, 1000)\n\n return () => clearInterval(timer)\n }, [endTime])\n\n return time\n}\n\nexport default useCountDown\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAoC,iBASpC,MAAMC,EAAe,CAAC,CAAE,QAAAC,EAAU,EAAG,IAA4B,CAC/D,KAAM,CAACC,EAAMC,CAAO,KAAI,YAAe,CACrC,KAAM,KACN,MAAO,KACP,QAAS,KACT,QAAS,IACX,CAAC,EAED,sBAAU,IAAM,CACd,MAAMC,EAAUC,IACCA,EAAO,EAAI,EAAI,KAAK,MAAMA,CAAI,GAC/B,SAAS,EAAE,SAAS,EAAG,GAAG,EAGpCC,EAAgB,IAAI,KAAKL,CAAO,EAAE,QAAQ,EAE1CM,EAAQ,YAAY,IAAM,CAC9B,MAAMC,EAAM,IAAI,KAAK,EAAE,QAAQ,EACzBC,EAAWH,EAAgBE,EAE3BE,EAAON,EAAOK,GAAY,IAAO,GAAK,GAAK,GAAG,EAC9CE,EAAQP,EAAQK,GAAY,IAAO,GAAK,GAAK,KAAQ,IAAO,GAAK,GAAG,EACpEG,EAAUR,EAAQK,GAAY,IAAO,GAAK,KAAQ,IAAO,GAAG,EAC5DI,EAAUT,EAAQK,GAAY,IAAO,IAAO,GAAI,EAEtDN,EAAQ,CACN,KAAAO,EACA,MAAAC,EACA,QAAAC,EACA,QAAAC,CACF,CAAC,CACH,EAAG,GAAI,EAEP,MAAO,IAAM,cAAcN,CAAK,CAClC,EAAG,CAACN,CAAO,CAAC,EAELC,CACT,EAEA,IAAOL,EAAQG",
|
|
6
|
+
"names": ["useCountDown_exports", "__export", "useCountDown_default", "__toCommonJS", "import_react", "useCountDown", "endTime", "time", "setTime", "format", "date", "countDownDate", "timer", "now", "distance", "days", "hours", "minutes", "seconds"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: (props: import("../cpn-components/CpnBanner/types.js").BannerProps) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
parameters: {
|
|
6
|
+
viewport: {
|
|
7
|
+
defaultViewport: string;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
tags: string[];
|
|
11
|
+
};
|
|
12
|
+
export default meta;
|
|
13
|
+
type Story = StoryObj<typeof meta>;
|
|
14
|
+
export declare const Default: Story;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var s=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var r=Object.prototype.hasOwnProperty;var c=(e,t)=>{for(var n in t)s(e,n,{get:t[n],enumerable:!0})},y=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of m(t))!r.call(e,o)&&o!==n&&s(e,o,{get:()=>t[o],enumerable:!(i=p(t,o))||i.enumerable});return e};var f=e=>y(s({},"__esModule",{value:!0}),e);var d={};c(d,{Default:()=>b,default:()=>u});module.exports=f(d);var a=require("../cpn-components/index.js");const l={title:"Cpn-Components/CpnBanner",component:a.CpnBanner,parameters:{viewport:{defaultViewport:"tablet"}},tags:["autodocs"]};var u=l;const b={args:{image:"https://cdn.shopify.com/s/files/1/0521/9411/5753/files/landing_banner.jpg?v=1742379112",imageMob:"https://cdn.shopify.com/s/files/1/0521/9411/5753/files/landing_banner_mob.png?v=1742458121",content:[{type:"subheading",text:"Kick Off Summer with Exclusive Savings"},{type:"title",text:"Kick Off Summer with Exclusive Savings"},{type:"subtitle",text:"Get Early Access to Amazing Offers"},{type:"countdown",endTime:"2025-06-30T00:00:00",copy:{days:"Days",hours:"HRS",minutes:"MINS",seconds:"SEC"}},{type:"button",text:"Check Out Now"}],cns:{box:"",content:"min-md:max-w-[28vw] min-xl:max-w-[25vw] mx-auto",title:"",subtitle:"",button:"",countdown:{item:"bg-[#042637]",copy:"opacity-75"}}}};
|
|
2
|
+
//# sourceMappingURL=cpnBanner.stories.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/stories/cpnBanner.stories.tsx"],
|
|
4
|
+
"sourcesContent": ["import type { Meta, StoryObj } from '@storybook/react'\n\nimport { CpnBanner } from '../cpn-components/index.js'\n\nconst meta = {\n title: 'Cpn-Components/CpnBanner',\n component: CpnBanner,\n parameters: {\n // layout: 'fullscreen',\n viewport: { defaultViewport: 'tablet' },\n },\n tags: ['autodocs'],\n} satisfies Meta<typeof CpnBanner>\n\nexport default meta\n\ntype Story = StoryObj<typeof meta>\n\nexport const Default: Story = {\n args: {\n image: 'https://cdn.shopify.com/s/files/1/0521/9411/5753/files/landing_banner.jpg?v=1742379112',\n imageMob: 'https://cdn.shopify.com/s/files/1/0521/9411/5753/files/landing_banner_mob.png?v=1742458121',\n content: [\n {\n type: 'subheading',\n text: 'Kick Off Summer with Exclusive Savings',\n },\n {\n type: 'title',\n text: 'Kick Off Summer with Exclusive Savings',\n },\n {\n type: 'subtitle',\n text: 'Get Early Access to Amazing Offers',\n },\n {\n type: 'countdown',\n endTime: '2025-06-30T00:00:00',\n copy: {\n days: 'Days',\n hours: 'HRS',\n minutes: 'MINS',\n seconds: 'SEC',\n },\n },\n {\n type: 'button',\n text: 'Check Out Now',\n },\n ],\n cns: {\n box: '',\n content: 'min-md:max-w-[28vw] min-xl:max-w-[25vw] mx-auto',\n title: '',\n subtitle: '',\n button: '',\n countdown: {\n item: 'bg-[#042637]',\n copy: 'opacity-75',\n },\n },\n },\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAEA,IAAAK,EAA0B,sCAE1B,MAAMC,EAAO,CACX,MAAO,2BACP,UAAW,YACX,WAAY,CAEV,SAAU,CAAE,gBAAiB,QAAS,CACxC,EACA,KAAM,CAAC,UAAU,CACnB,EAEA,IAAOH,EAAQG,EAIR,MAAMJ,EAAiB,CAC5B,KAAM,CACJ,MAAO,yFACP,SAAU,6FACV,QAAS,CACP,CACE,KAAM,aACN,KAAM,wCACR,EACA,CACE,KAAM,QACN,KAAM,wCACR,EACA,CACE,KAAM,WACN,KAAM,oCACR,EACA,CACE,KAAM,YACN,QAAS,sBACT,KAAM,CACJ,KAAM,OACN,MAAO,MACP,QAAS,OACT,QAAS,KACX,CACF,EACA,CACE,KAAM,SACN,KAAM,eACR,CACF,EACA,IAAK,CACH,IAAK,GACL,QAAS,kDACT,MAAO,GACP,SAAU,GACV,OAAQ,GACR,UAAW,CACT,KAAM,eACN,KAAM,YACR,CACF,CACF,CACF",
|
|
6
|
+
"names": ["cpnBanner_stories_exports", "__export", "Default", "cpnBanner_stories_default", "__toCommonJS", "import_cpn_components", "meta"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: (props: import("../cpn-components/CpnCountDown/types.js").CountDownProps) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
parameters: {
|
|
6
|
+
layout: string;
|
|
7
|
+
};
|
|
8
|
+
tags: string[];
|
|
9
|
+
};
|
|
10
|
+
export default meta;
|
|
11
|
+
type Story = StoryObj<typeof meta>;
|
|
12
|
+
export declare const Default: Story;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var r=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var C=(o,t)=>{for(var n in t)r(o,n,{get:t[n],enumerable:!0})},f=(o,t,n,p)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of m(t))!y.call(o,e)&&e!==n&&r(o,e,{get:()=>t[e],enumerable:!(p=s(t,e))||p.enumerable});return o};var u=o=>f(r({},"__esModule",{value:!0}),o);var l={};C(l,{Default:()=>d,default:()=>i});module.exports=u(l);var a=require("../cpn-components/index.js");const c={title:"Cpn-Components/CpnCountDown",component:a.CpnCountDown,parameters:{layout:"centered"},tags:["autodocs"]};var i=c;const d={args:{endTime:"2025-06-30T00:00:00"}};
|
|
2
|
+
//# sourceMappingURL=cpnCountdown.stories.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/stories/cpnCountdown.stories.tsx"],
|
|
4
|
+
"sourcesContent": ["import type { Meta, StoryObj } from '@storybook/react'\n\nimport { CpnCountDown } from '../cpn-components/index.js'\n\nconst meta = {\n title: 'Cpn-Components/CpnCountDown',\n component: CpnCountDown,\n parameters: {\n layout: 'centered',\n },\n tags: ['autodocs'],\n} satisfies Meta<typeof CpnCountDown>\n\nexport default meta\n\ntype Story = StoryObj<typeof meta>\n\nexport const Default: Story = {\n args: {\n endTime: '2025-06-30T00:00:00',\n },\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAEA,IAAAK,EAA6B,sCAE7B,MAAMC,EAAO,CACX,MAAO,8BACP,UAAW,eACX,WAAY,CACV,OAAQ,UACV,EACA,KAAM,CAAC,UAAU,CACnB,EAEA,IAAOH,EAAQG,EAIR,MAAMJ,EAAiB,CAC5B,KAAM,CACJ,QAAS,qBACX,CACF",
|
|
6
|
+
"names": ["cpnCountdown_stories_exports", "__export", "Default", "cpnCountdown_stories_default", "__toCommonJS", "import_cpn_components", "meta"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: (props: import("../cpn-components/CpnNavigation/types.js").NavigationProps) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
parameters: {
|
|
6
|
+
viewport: {
|
|
7
|
+
defaultViewport: string;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
tags: string[];
|
|
11
|
+
};
|
|
12
|
+
export default meta;
|
|
13
|
+
type Story = StoryObj<typeof meta>;
|
|
14
|
+
export declare const Default: Story;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var r=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var f=(e,t)=>{for(var a in t)r(e,a,{get:t[a],enumerable:!0})},c=(e,t,a,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of s(t))!l.call(e,o)&&o!==a&&r(e,o,{get:()=>t[o],enumerable:!(n=i(t,o))||n.enumerable});return e};var u=e=>c(r({},"__esModule",{value:!0}),e);var g={};f(g,{Default:()=>m,default:()=>b});module.exports=u(g);var p=require("../cpn-components/index.js");const y={title:"Cpn-Components/CpnNavigation",component:p.CpnNavigation,parameters:{viewport:{defaultViewport:"tablet"}},tags:["autodocs"]};var b=y;const m={args:{lists:[{label:"Benefits",anchor:"benefits"},{label:"Super Sale",anchor:"featureProducts"},{label:"Free Gifts",anchor:"giftWithPurchase"},{label:"Group Buy",anchor:"groupBuying"},{label:"Super Gifts",anchor:"superGifts"}],cns:{container:"top-[46px]"}}};
|
|
2
|
+
//# sourceMappingURL=cpnNavigation.stories.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/stories/cpnNavigation.stories.tsx"],
|
|
4
|
+
"sourcesContent": ["import type { Meta, StoryObj } from '@storybook/react'\n\nimport { CpnNavigation } from '../cpn-components/index.js'\n\nconst meta = {\n title: 'Cpn-Components/CpnNavigation',\n component: CpnNavigation,\n parameters: {\n // layout: 'fullscreen',\n viewport: { defaultViewport: 'tablet' },\n },\n tags: ['autodocs'],\n} satisfies Meta<typeof CpnNavigation>\n\nexport default meta\n\ntype Story = StoryObj<typeof meta>\n\nexport const Default: Story = {\n args: {\n lists: [\n { label: 'Benefits', anchor: 'benefits' },\n { label: 'Super Sale', anchor: 'featureProducts' },\n { label: 'Free Gifts', anchor: 'giftWithPurchase' },\n { label: 'Group Buy', anchor: 'groupBuying' },\n { label: 'Super Gifts', anchor: 'superGifts' },\n ],\n cns: {\n container: 'top-[46px]',\n },\n },\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAEA,IAAAK,EAA8B,sCAE9B,MAAMC,EAAO,CACX,MAAO,+BACP,UAAW,gBACX,WAAY,CAEV,SAAU,CAAE,gBAAiB,QAAS,CACxC,EACA,KAAM,CAAC,UAAU,CACnB,EAEA,IAAOH,EAAQG,EAIR,MAAMJ,EAAiB,CAC5B,KAAM,CACJ,MAAO,CACL,CAAE,MAAO,WAAY,OAAQ,UAAW,EACxC,CAAE,MAAO,aAAc,OAAQ,iBAAkB,EACjD,CAAE,MAAO,aAAc,OAAQ,kBAAmB,EAClD,CAAE,MAAO,YAAa,OAAQ,aAAc,EAC5C,CAAE,MAAO,cAAe,OAAQ,YAAa,CAC/C,EACA,IAAK,CACH,UAAW,YACb,CACF,CACF",
|
|
6
|
+
"names": ["cpnNavigation_stories_exports", "__export", "Default", "cpnNavigation_stories_default", "__toCommonJS", "import_cpn_components", "meta"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: (props: import("../cpn-components/CpnProductCard/types.js").ProductCardProps) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
parameters: {
|
|
6
|
+
viewport: {
|
|
7
|
+
defaultViewport: string;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
tags: string[];
|
|
11
|
+
};
|
|
12
|
+
export default meta;
|
|
13
|
+
type Story = StoryObj<typeof meta>;
|
|
14
|
+
export declare const Default: Story;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var a=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var i=(e,t)=>{for(var r in t)a(e,r,{get:t[r],enumerable:!0})},d=(e,t,r,p)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of y(t))!c.call(e,o)&&o!==r&&a(e,o,{get:()=>t[o],enumerable:!(p=n(t,o))||p.enumerable});return e};var m=e=>d(a({},"__esModule",{value:!0}),e);var l={};i(l,{Default:()=>C,default:()=>u});module.exports=m(l);var s=require("../cpn-components/index.js");const f={title:"Cpn-Components/CpnProductCard",component:s.CpnProductCard,parameters:{viewport:{defaultViewport:"tablet"}},tags:["autodocs"]};var u=f;const C={args:{content:[{type:"image",image:"https://cdn.shopify.com/s/files/1/0521/9411/5753/files/s1pro_fce43284-98a8-4454-9133-51924e9659d9.png?v=1745309083"},{type:"title",text:"eufy Robot Vacuum Omni S1 Pro"},{type:"price",text:"1,999.99"},{type:"buttons",buttons:[{text:"Add to Cart",variant:"secondary"},{text:"Buy Now"}]}],cns:{}}};
|
|
2
|
+
//# sourceMappingURL=cpnProductcard.stories.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/stories/cpnProductcard.stories.tsx"],
|
|
4
|
+
"sourcesContent": ["import type { Meta, StoryObj } from '@storybook/react'\n\nimport { CpnProductCard } from '../cpn-components/index.js'\n\nconst meta = {\n title: 'Cpn-Components/CpnProductCard',\n component: CpnProductCard,\n parameters: {\n // layout: 'fullscreen',\n viewport: { defaultViewport: 'tablet' },\n },\n tags: ['autodocs'],\n} satisfies Meta<typeof CpnProductCard>\n\nexport default meta\n\ntype Story = StoryObj<typeof meta>\n\nexport const Default: Story = {\n args: {\n content: [\n {\n type: 'image',\n image:\n 'https://cdn.shopify.com/s/files/1/0521/9411/5753/files/s1pro_fce43284-98a8-4454-9133-51924e9659d9.png?v=1745309083',\n },\n { type: 'title', text: 'eufy Robot Vacuum Omni S1 Pro' },\n { type: 'price', text: '1,999.99' },\n {\n type: 'buttons',\n buttons: [\n {\n text: 'Add to Cart',\n variant: 'secondary',\n },\n {\n text: 'Buy Now',\n },\n ],\n },\n ],\n cns: {},\n },\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAEA,IAAAK,EAA+B,sCAE/B,MAAMC,EAAO,CACX,MAAO,gCACP,UAAW,iBACX,WAAY,CAEV,SAAU,CAAE,gBAAiB,QAAS,CACxC,EACA,KAAM,CAAC,UAAU,CACnB,EAEA,IAAOH,EAAQG,EAIR,MAAMJ,EAAiB,CAC5B,KAAM,CACJ,QAAS,CACP,CACE,KAAM,QACN,MACE,oHACJ,EACA,CAAE,KAAM,QAAS,KAAM,+BAAgC,EACvD,CAAE,KAAM,QAAS,KAAM,UAAW,EAClC,CACE,KAAM,UACN,QAAS,CACP,CACE,KAAM,cACN,QAAS,WACX,EACA,CACE,KAAM,SACR,CACF,CACF,CACF,EACA,IAAK,CAAC,CACR,CACF",
|
|
6
|
+
"names": ["cpnProductcard_stories_exports", "__export", "Default", "cpnProductcard_stories_default", "__toCommonJS", "import_cpn_components", "meta"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: (props: import("../cpn-components/CpnTitle/types.js").TitleProps) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
parameters: {
|
|
6
|
+
viewport: {
|
|
7
|
+
defaultViewport: string;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
tags: string[];
|
|
11
|
+
};
|
|
12
|
+
export default meta;
|
|
13
|
+
type Story = StoryObj<typeof meta>;
|
|
14
|
+
export declare const Default: Story;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var p=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var r=Object.prototype.hasOwnProperty;var l=(e,t)=>{for(var s in t)p(e,s,{get:t[s],enumerable:!0})},c=(e,t,s,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of n(t))!r.call(e,o)&&o!==s&&p(e,o,{get:()=>t[o],enumerable:!(i=a(t,o))||i.enumerable});return e};var m=e=>c(p({},"__esModule",{value:!0}),e);var h={};l(h,{Default:()=>b,default:()=>d});module.exports=m(h);var f=require("../cpn-components/index.js");const y={title:"Cpn-Components/CpnTitle",component:f.CpnTitle,parameters:{viewport:{defaultViewport:"tablet"}},tags:["autodocs"]};var d=y;const b={args:{html:"Exclusive Holiday Benefits",icon_l:"https://cdn.shopify.com/s/files/1/0887/1798/4111/files/E.png?v=1745373442",icon_r:"https://cdn.shopify.com/s/files/1/0887/1798/4111/files/1_55d7df96-f1ed-440a-ae3f-f02544b1d508.png?v=1745373442",cns:{}}};
|
|
2
|
+
//# sourceMappingURL=cpnTitle.stories.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/stories/cpnTitle.stories.tsx"],
|
|
4
|
+
"sourcesContent": ["import type { Meta, StoryObj } from '@storybook/react'\n\nimport { CpnTitle } from '../cpn-components/index.js'\n\nconst meta = {\n title: 'Cpn-Components/CpnTitle',\n component: CpnTitle,\n parameters: {\n // layout: 'fullscreen',\n viewport: { defaultViewport: 'tablet' },\n },\n tags: ['autodocs'],\n} satisfies Meta<typeof CpnTitle>\n\nexport default meta\n\ntype Story = StoryObj<typeof meta>\n\nexport const Default: Story = {\n args: {\n html: 'Exclusive Holiday Benefits',\n icon_l: 'https://cdn.shopify.com/s/files/1/0887/1798/4111/files/E.png?v=1745373442',\n icon_r:\n 'https://cdn.shopify.com/s/files/1/0887/1798/4111/files/1_55d7df96-f1ed-440a-ae3f-f02544b1d508.png?v=1745373442',\n cns: {},\n },\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAEA,IAAAK,EAAyB,sCAEzB,MAAMC,EAAO,CACX,MAAO,0BACP,UAAW,WACX,WAAY,CAEV,SAAU,CAAE,gBAAiB,QAAS,CACxC,EACA,KAAM,CAAC,UAAU,CACnB,EAEA,IAAOH,EAAQG,EAIR,MAAMJ,EAAiB,CAC5B,KAAM,CACJ,KAAM,6BACN,OAAQ,4EACR,OACE,iHACF,IAAK,CAAC,CACR,CACF",
|
|
6
|
+
"names": ["cpnTitle_stories_exports", "__export", "Default", "cpnTitle_stories_default", "__toCommonJS", "import_cpn_components", "meta"]
|
|
7
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var n=Object.create;var a=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty;var y=(e,t)=>{for(var o in t)a(e,o,{get:t[o],enumerable:!0})},i=(e,t,o,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of l(t))!u.call(e,r)&&r!==o&&a(e,r,{get:()=>t[r],enumerable:!(s=m(t,r))||s.enumerable});return e};var d=(e,t,o)=>(o=e!=null?n(f(e)):{},i(t||!e||!e.__esModule?a(o,"default",{value:e,enumerable:!0}):o,e)),b=e=>i(a({},"__esModule",{value:!0}),e);var B={};y(B,{Default:()=>S,Round:()=>P,default:()=>h});module.exports=b(B);var c=d(require("../biz-components/ShelfDisplay/index.js"));const g={title:"Biz-Components/ShelfDisplay",component:c.default,parameters:{layout:"fullscreen"},tags:["autodocs"]};var h=g;const p=[{price:"$1,999.00",basePrice:"$2,999.00",subTitle:"Fast Charging for 3 Devices",title:"Anker Prime 27,650mAh Power Bank (250W)",tagItems:["New","20% OFF"],img:{url:"https://cdn.shopify.com/s/files/1/0517/6767/3016/files/e7be0a68-29b9-431c-8c0f-21bf968b1545_Product_Image_2.png?v=1744274554"}},{price:"$1,999.00",basePrice:"$2,999.00",subTitle:"Fast Charging for 3 Devices",title:"Anker Prime 27,650mAh Power Bank (250W)",tagItems:["New","20% OFF"],img:{url:"https://cdn.shopify.com/s/files/1/0517/6767/3016/files/e7be0a68-29b9-431c-8c0f-21bf968b1545_Product_Image_2.png?v=1744274554"}}],S={args:{data:{productsCard:p,primaryButton:"Learn More",secondaryButton:"Shop Now"},className:"p-4"}},P={args:{data:{productsCard:p,shape:"round",itemShape:"round",primaryButton:"Learn More",secondaryButton:"Shop Now"},className:"p-4"}};
|
|
2
2
|
//# sourceMappingURL=shelfDisplay.stories.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/stories/shelfDisplay.stories.tsx"],
|
|
4
|
-
"sourcesContent": ["import type { Meta, StoryObj } from '@storybook/react'\nimport ShelfDisplay from '../biz-components/ShelfDisplay/index.js'\n\nconst meta = {\n title: 'Biz-Components/ShelfDisplay',\n component: ShelfDisplay,\n parameters: {\n layout: 'fullscreen',\n },\n tags: ['autodocs'],\n} satisfies Meta<typeof ShelfDisplay>\n\nexport default meta\ntype Story = StoryObj<typeof meta>\n\nconst mockItems = [\n {\n price: '$1,999.00',\n basePrice: '$2,999.00',\n subTitle: 'Fast Charging for 3 Devices',\n title: 'Anker Prime 27,650mAh Power Bank (250W)',\n tagItems: ['New', '20% OFF'],\n img: {\n url: 'https://cdn.shopify.com/s/files/1/0517/6767/3016/files/e7be0a68-29b9-431c-8c0f-21bf968b1545_Product_Image_2.png?v=1744274554',\n },\n },\n {\n price: '$1,999.00',\n basePrice: '$2,999.00',\n subTitle: 'Fast Charging for 3 Devices',\n title: 'Anker Prime 27,650mAh Power Bank (250W)',\n tagItems: ['New', '20% OFF'],\n img: {\n url: 'https://cdn.shopify.com/s/files/1/0517/6767/3016/files/e7be0a68-29b9-431c-8c0f-21bf968b1545_Product_Image_2.png?v=1744274554',\n },\n },\n
|
|
5
|
-
"mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,UAAAC,EAAA,YAAAC,IAAA,eAAAC,EAAAL,GACA,IAAAM,EAAyB,sDAEzB,MAAMC,EAAO,CACX,MAAO,8BACP,UAAW,EAAAC,QACX,WAAY,CACV,OAAQ,YACV,EACA,KAAM,CAAC,UAAU,CACnB,EAEA,IAAOJ,EAAQG,EAGf,MAAME,EAAY,CAChB,CACE,MAAO,YACP,UAAW,YACX,SAAU,8BACV,MAAO,0CACP,SAAU,CAAC,MAAO,SAAS,EAC3B,IAAK,CACH,IAAK,8HACP,CACF,EACA,CACE,MAAO,YACP,UAAW,YACX,SAAU,8BACV,MAAO,0CACP,SAAU,CAAC,MAAO,SAAS,EAC3B,IAAK,CACH,IAAK,8HACP,CACF,
|
|
4
|
+
"sourcesContent": ["import type { Meta, StoryObj } from '@storybook/react'\nimport ShelfDisplay from '../biz-components/ShelfDisplay/index.js'\n\nconst meta = {\n title: 'Biz-Components/ShelfDisplay',\n component: ShelfDisplay,\n parameters: {\n layout: 'fullscreen',\n },\n tags: ['autodocs'],\n} satisfies Meta<typeof ShelfDisplay>\n\nexport default meta\ntype Story = StoryObj<typeof meta>\n\nconst mockItems = [\n {\n price: '$1,999.00',\n basePrice: '$2,999.00',\n subTitle: 'Fast Charging for 3 Devices',\n title: 'Anker Prime 27,650mAh Power Bank (250W)',\n tagItems: ['New', '20% OFF'],\n img: {\n url: 'https://cdn.shopify.com/s/files/1/0517/6767/3016/files/e7be0a68-29b9-431c-8c0f-21bf968b1545_Product_Image_2.png?v=1744274554',\n },\n },\n {\n price: '$1,999.00',\n basePrice: '$2,999.00',\n subTitle: 'Fast Charging for 3 Devices',\n title: 'Anker Prime 27,650mAh Power Bank (250W)',\n tagItems: ['New', '20% OFF'],\n img: {\n url: 'https://cdn.shopify.com/s/files/1/0517/6767/3016/files/e7be0a68-29b9-431c-8c0f-21bf968b1545_Product_Image_2.png?v=1744274554',\n },\n },\n]\n\nexport const Default: Story = {\n args: {\n data: {\n productsCard: mockItems,\n primaryButton: 'Learn More',\n secondaryButton: 'Shop Now',\n },\n className: 'p-4',\n },\n}\n\nexport const Round: Story = {\n args: {\n data: {\n productsCard: mockItems,\n shape: 'round',\n itemShape: 'round',\n primaryButton: 'Learn More',\n secondaryButton: 'Shop Now',\n },\n className: 'p-4',\n },\n}\n"],
|
|
5
|
+
"mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,UAAAC,EAAA,YAAAC,IAAA,eAAAC,EAAAL,GACA,IAAAM,EAAyB,sDAEzB,MAAMC,EAAO,CACX,MAAO,8BACP,UAAW,EAAAC,QACX,WAAY,CACV,OAAQ,YACV,EACA,KAAM,CAAC,UAAU,CACnB,EAEA,IAAOJ,EAAQG,EAGf,MAAME,EAAY,CAChB,CACE,MAAO,YACP,UAAW,YACX,SAAU,8BACV,MAAO,0CACP,SAAU,CAAC,MAAO,SAAS,EAC3B,IAAK,CACH,IAAK,8HACP,CACF,EACA,CACE,MAAO,YACP,UAAW,YACX,SAAU,8BACV,MAAO,0CACP,SAAU,CAAC,MAAO,SAAS,EAC3B,IAAK,CACH,IAAK,8HACP,CACF,CACF,EAEaP,EAAiB,CAC5B,KAAM,CACJ,KAAM,CACJ,aAAcO,EACd,cAAe,aACf,gBAAiB,UACnB,EACA,UAAW,KACb,CACF,EAEaN,EAAe,CAC1B,KAAM,CACJ,KAAM,CACJ,aAAcM,EACd,MAAO,QACP,UAAW,QACX,cAAe,aACf,gBAAiB,UACnB,EACA,UAAW,KACb,CACF",
|
|
6
6
|
"names": ["shelfDisplay_stories_exports", "__export", "Default", "Round", "shelfDisplay_stories_default", "__toCommonJS", "import_ShelfDisplay", "meta", "ShelfDisplay", "mockItems"]
|
|
7
7
|
}
|
|
@@ -22,8 +22,8 @@ export interface ShelfDisplayProps {
|
|
|
22
22
|
title?: string;
|
|
23
23
|
isShowTab?: boolean;
|
|
24
24
|
align?: 'left' | 'center' | 'right';
|
|
25
|
-
productsTab?:
|
|
26
|
-
productsCard?:
|
|
25
|
+
productsTab?: any;
|
|
26
|
+
productsCard?: any;
|
|
27
27
|
/** 卡片形状 */
|
|
28
28
|
itemShape?: 'round' | 'square';
|
|
29
29
|
/** 按钮形状 */
|
|
@@ -35,6 +35,10 @@ export interface ShelfDisplayProps {
|
|
|
35
35
|
/** 副按钮配置 */
|
|
36
36
|
secondaryButton?: string;
|
|
37
37
|
};
|
|
38
|
+
buildData?: {
|
|
39
|
+
categories: any[];
|
|
40
|
+
products: any[];
|
|
41
|
+
};
|
|
38
42
|
/** 主题色*/
|
|
39
43
|
theme?: 'light' | 'dark';
|
|
40
44
|
className?: string;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as t,jsxs as d}from"react/jsx-runtime";import{useState as g,useEffect as N}from"react";import{cn as f}from"../../helpers/utils.js";import T from"../../components/picture.js";import{Tabs as C,TabsList as I,TabsTrigger as P}from"../../components/tabs.js";import v from"../../components/button.js";import F from"../Title/index.js";import A from"../SwiperBox/index.js";import{withStyles as E}from"../../shared/Styles.js";import{formatVariantPrice as V}from"./shelfDisplay.js";const q=({data:e,configuration:s})=>{const c=a=>{},m=a=>{},{price:u,basePrice:l}=V({amount:e?.price.amount||0,baseAmount:e?.compareAtPrice?.amount||e?.price.amount||0,currencyCode:e?.price.currencyCode||"USD",locale:"us"}),x=()=>{const a=e?.sku,r=e?.variants;return r?.find(p=>p?.sku===a)?.image?.url||r?.[0]?.image?.url||""};return d("div",{className:f("desktop:pt-4 desktop:px-6 desktop:pb-6 flex size-full cursor-pointer flex-col overflow-hidden bg-[#EAEAEC] p-4",s?.itemShape==="round"?"rounded-2xl":"rounded-none"),children:[t("div",{className:f("relative mb-2 inline-block h-[137px] overflow-hidden","desktop:mb-3 desktop:h-[195px]"),children:t(T,{source:x(),className:"flex h-full justify-center object-cover [&_img]:w-auto"})}),t("div",{className:"desktop:mb-2 mb-1 flex h-8 flex-wrap gap-1",children:e?.tags?.slice(0,1)?.map?.((a,r)=>t("div",{className:"desktop:text-base rounded-3xl border-2 border-[#00BEFA] px-2 py-1 text-sm font-bold text-[#00BEFA]",children:a},r))}),t("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||""}),t("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||""}),d("div",{className:"mb-2 flex items-center",children:[t("div",{className:"desktop:text-2xl text-xl font-bold text-[#1D1D1F]",children:u||""}),t("div",{className:"desktop:text-2xl ml-1 text-xl font-bold text-[#86868C]",children:l||""})]}),d("div",{className:"flex items-center gap-3",children:[t(v,{variant:"primary",onClick:()=>c(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
3
|
border-[#1D1D1F] bg-transparent px-4 py-2 text-xs tracking-[-0.04em] text-[#1D1D1F] hover:bg-transparent hover:text-black
|
|
4
4
|
${s?.shape==="round"?"desktop:rounded-3xl rounded-[20px]":""}
|
|
5
|
-
`,children:s?.primaryButton||""}),
|
|
5
|
+
`,children:s?.primaryButton||""}),t(v,{variant:"secondary",onClick:()=>m(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
8
|
${s?.shape==="round"?"desktop:rounded-3xl rounded-[20px]":""}
|
|
9
|
-
`,children:s?.secondaryButton||""})]})]},
|
|
9
|
+
`,children:s?.secondaryButton||""})]})]},e?.id||e?.handle)},M=({data:e,buildData:s,className:c="",key:m})=>{const[u,l]=g(""),[x,a]=g([]),{productsTab:r=[],productsCard:y=[],title:p,align:D="left",isShowTab:k=!0,tabShape:S="square",...w}=e,b=o=>{const i=o?.map(n=>{const h=s?.products?.find(B=>B?.handle===n?.handle);if(h)return{sku:n.sku,...h}})?.filter(n=>n);a(i)};return N(()=>{if(k){l(r?.[0]?.tab||""),b(r?.[0]?.data||[]);return}b(y)},[]),d("div",{className:f("w-full",c),children:[p&&t(F,{data:{title:p}}),k&&t(C,{shape:S,align:D,value:u,onValueChange:o=>{l(o);const i=r?.find(n=>n?.tab===o);b(i?.data||[])},className:"mb-8",children:t(I,{children:r?.map((o,i)=>t(P,{value:o?.tab||"",children:o?.tab},i))})}),t(A,{className:"!overflow-visible",id:"ShelfDisplay"+m,data:{list:x,configuration:{...w}},Slide:q,breakpoints:{0:{spaceBetween:"12px",freeMode:!1,slidesPerView:1},374:{spaceBetween:"12px",freeMode:!1,slidesPerView:1.3},768:{spaceBetween:"16px",freeMode:!1,slidesPerView:4}}})]})};var K=E(M);export{K as default};
|
|
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 {
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["jsx", "jsxs", "useState", "useEffect", "cn", "Picture", "Tabs", "TabsList", "TabsTrigger", "Button", "Title", "SwiperBox", "withStyles", "ShelfDisplayItem", "data", "configuration", "onPrimaryButton", "params", "onSecondaryButton", "item", "index", "ShelfDisplay", "className", "key", "tabId", "setTabId", "currentItems", "setCurrentItems", "productsTab", "productsCard", "title", "align", "isShowTab", "tabShape", "
|
|
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": "aAmGQ,cAAAA,EA0BF,QAAAC,MA1BE,oBAlGR,OAAgB,YAAAC,EAAU,aAAAC,MAAiB,QAC3C,OAAS,MAAAC,MAAU,yBACnB,OAAOC,MAAa,8BACpB,OAAS,QAAAC,EAAM,YAAAC,EAAU,eAAAC,MAAmB,2BAC5C,OAAOC,MAAY,6BACnB,OAAOC,MAAW,oBAClB,OAAOC,MAAe,wBACtB,OAAS,cAAAC,MAAkB,yBAC3B,OAAS,sBAAAC,MAA0B,oBA0DnC,MAAMC,EAAmB,CAAC,CAAE,KAAAC,EAAM,cAAAC,CAAc,IAA0C,CACxF,MAAMC,EAAmBC,GAA6B,CAEtD,EAEMC,EAAqBD,GAA6B,CAExD,EAEM,CAAE,MAAAE,EAAO,UAAAC,CAAU,EAAIR,EAAmB,CAC9C,OAAQE,GAAM,MAAM,QAAU,EAC9B,WAAYA,GAAM,gBAAgB,QAAUA,GAAM,MAAM,QAAU,EAClE,aAAcA,GAAM,MAAM,cAAgB,MAC1C,OAAQ,IACV,CAAC,EAEKO,EAAY,IAAM,CACtB,MAAMC,EAAMR,GAAM,IACZS,EAAWT,GAAM,SAEvB,OADgBS,GAAU,KAAMC,GAAcA,GAAM,MAAQF,CAAG,GAC/C,OAAO,KAAOC,IAAW,CAAC,GAAG,OAAO,KAAO,EAC7D,EAEA,OACEvB,EAAC,OAEC,UAAWG,EACT,iHACAY,GAAe,YAAc,QAAU,cAAgB,cACzD,EAEA,UAAAhB,EAAC,OAAI,UAAWI,EAAG,uDAAwD,gCAAgC,EACzG,SAAAJ,EAACK,EAAA,CAAQ,OAAQiB,EAAU,EAAG,UAAU,yDAAyD,EACnG,EACAtB,EAAC,OAAI,UAAU,6CACZ,SAAAe,GAAM,MAAM,MAAM,EAAG,CAAC,GAAG,MAAM,CAACU,EAAWC,IAExC1B,EAAC,OAEC,UAAU,qGAET,SAAAyB,GAHIC,CAIP,CAEH,EACH,EACA1B,EAAC,KACC,MAAOe,GAAM,OAAS,GACtB,UAAU,sHAET,SAAAA,GAAM,OAAS,GAClB,EACAf,EAAC,MACC,MAAOe,GAAM,aAAe,GAC5B,UAAU,qIAET,SAAAA,GAAM,aAAe,GACxB,EACAd,EAAC,OAAI,UAAU,yBACb,UAAAD,EAAC,OAAI,UAAU,oDAAqD,SAAAoB,GAAS,GAAG,EAChFpB,EAAC,OAAI,UAAU,yDAA0D,SAAAqB,GAAa,GAAG,GAC3F,EAEApB,EAAC,OAAI,UAAU,0BACb,UAAAD,EAACS,EAAA,CACC,QAAQ,UACR,QAAS,IAAMQ,EAAgBF,CAAI,EACnC,UAAW;AAAA;AAAA;AAAA,cAGPC,GAAe,QAAU,QAAU,qCAAuC,EAAE;AAAA,YAG/E,SAAAA,GAAe,eAAiB,GACnC,EACAhB,EAACS,EAAA,CACC,QAAQ,YACR,QAAS,IAAMU,EAAkBJ,CAAI,EACrC,UAAW;AAAA;AAAA;AAAA,cAGPC,GAAe,QAAU,QAAU,qCAAuC,EAAE;AAAA,YAG/E,SAAAA,GAAe,iBAAmB,GACrC,GACF,IA7DKD,GAAM,IAAMA,GAAM,MA8DzB,CAEJ,EAEMY,EAA4C,CAAC,CAAE,KAAAZ,EAAM,UAAAa,EAAW,UAAAC,EAAY,GAAI,IAAAC,CAAI,IAAM,CAC9F,KAAM,CAACC,EAAOC,CAAQ,EAAI9B,EAAiB,EAAE,EACvC,CAAC+B,EAAcC,CAAe,EAAIhC,EAA6B,CAAC,CAAC,EAEjE,CACJ,YAAAiC,EAAc,CAAC,EACf,aAAAC,EAAe,CAAC,EAChB,MAAAC,EACA,MAAAC,EAAQ,OACR,UAAAC,EAAY,GACZ,SAAAC,EAAW,SACX,GAAGC,CACL,EAAI1B,EAEE2B,EAAoBC,GAAoC,CAC5D,MAAMC,EAAiBD,GACnB,IAAIlB,GAAQ,CACZ,MAAMoB,EAAWjB,GAAW,UAAU,KAAKV,GAAUA,GAAQ,SAAWO,GAAM,MAAM,EACpF,GAAIoB,EACF,MAAO,CACL,IAAKpB,EAAK,IACV,GAAGoB,CACL,CAEJ,CAAC,GACC,OAAOpB,GAAQA,CAAI,EACvBS,EAAgBU,CAAc,CAChC,EAEA,OAAAzC,EAAU,IAAM,CACd,GAAIoC,EAAW,CACbP,EAASG,IAAc,CAAC,GAAG,KAAO,EAAE,EACpCO,EAAiBP,IAAc,CAAC,GAAG,MAAQ,CAAC,CAAC,EAC7C,MACF,CACAO,EAAiBN,CAAY,CAC/B,EAAG,CAAC,CAAC,EAGHnC,EAAC,OAAI,UAAWG,EAAG,SAAUyB,CAAS,EACnC,UAAAQ,GAASrC,EAACU,EAAA,CAAM,KAAM,CAAE,MAAO2B,CAAM,EAAG,EACxCE,GACCvC,EAACM,EAAA,CACC,MAAOkC,EACP,MAAOF,EACP,MAAOP,EACP,cAAee,GAAK,CAClBd,EAASc,CAAC,EACV,MAAMD,EAAWV,GAAa,KAAMV,GAAcA,GAAM,MAAQqB,CAAC,EACjEJ,EAAiBG,GAAU,MAAQ,CAAC,CAAC,CACvC,EACA,UAAU,OAEV,SAAA7C,EAACO,EAAA,CACE,SAAA4B,GAAa,IAAI,CAACV,EAAWC,IAE1B1B,EAACQ,EAAA,CAAwB,MAAOiB,GAAM,KAAO,GAC1C,SAAAA,GAAM,KADSC,CAElB,CAEH,EACH,EACF,EAEF1B,EAACW,EAAA,CACC,UAAU,oBACV,GAAI,eAAiBmB,EACrB,KAAM,CAAE,KAAMG,EAAc,cAAe,CAAE,GAAGQ,CAAM,CAAE,EACxD,MAAO3B,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,CAEJ,EAEA,IAAOiC,EAAQnC,EAAWe,CAAY",
|
|
6
|
+
"names": ["jsx", "jsxs", "useState", "useEffect", "cn", "Picture", "Tabs", "TabsList", "TabsTrigger", "Button", "Title", "SwiperBox", "withStyles", "formatVariantPrice", "ShelfDisplayItem", "data", "configuration", "onPrimaryButton", "params", "onSecondaryButton", "price", "basePrice", "handleUrl", "sku", "skuArray", "item", "index", "ShelfDisplay", "buildData", "className", "key", "tabId", "setTabId", "currentItems", "setCurrentItems", "productsTab", "productsCard", "title", "align", "isShowTab", "tabShape", "other", "handleCurrentTab", "currentData", "newCurrentData", "findData", "v", "ShelfDisplay_default"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare const PRICE_SYMBOL: any;
|
|
2
|
+
export declare const languageTerritory: (locale: string) => string;
|
|
3
|
+
export declare function formatPrice({ amount, currencyCode, locale, maximumFractionDigits, minimumFractionDigits, removeTrailingZeros, }: {
|
|
4
|
+
amount: number;
|
|
5
|
+
currencyCode: string;
|
|
6
|
+
locale: string;
|
|
7
|
+
maximumFractionDigits?: number;
|
|
8
|
+
minimumFractionDigits?: number;
|
|
9
|
+
removeTrailingZeros?: boolean;
|
|
10
|
+
}): string;
|
|
11
|
+
export declare function formatVariantPrice({ amount, baseAmount, currencyCode, locale, maximumFractionDigits, minimumFractionDigits, removeTrailingZeros, }: {
|
|
12
|
+
baseAmount: number;
|
|
13
|
+
amount: number;
|
|
14
|
+
currencyCode: string;
|
|
15
|
+
locale: string;
|
|
16
|
+
maximumFractionDigits?: number;
|
|
17
|
+
minimumFractionDigits?: number;
|
|
18
|
+
removeTrailingZeros?: boolean;
|
|
19
|
+
}): {
|
|
20
|
+
price: string;
|
|
21
|
+
basePrice: string | undefined;
|
|
22
|
+
discount: string | null;
|
|
23
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const a={us:"$",uk:"\xA3",ca:"$",eu:"\u20AC",fr:"\u20AC",de:"\u20AC",vn:"\u20AB",cl:"$",sg:"$",ae:"AED"},o=e=>({us:"en-us",uk:"en-gb",ca:"en-ca",au:"en-au",eu:"en",fr:"fr-fr",de:"de-de",vn:"vi-vn",sg:"en-sg","ae-en":"ae-en",plus:"en-us",cl:"es-cl"})[e]||"";function m({amount:e,currencyCode:n,locale:i,maximumFractionDigits:r,minimumFractionDigits:u,removeTrailingZeros:c=!1}){let t=new Intl.NumberFormat(o(i),{style:"currency",currency:n||"USD",minimumFractionDigits:r===0?0:u,maximumFractionDigits:r}).format(e);return["eu-de","eu-en","de","eu"].includes(i)&&(t=t?.toString()?.replace(/[\s]/g,"")),c&&(t=t.replace(/(\.\d*?[1-9])0+\b/,"$1").replace(/\.0+\b/,"").replace(/(\,\d*?[1-9])0+\b/,"$1").replace(/\,0+\b/,"")),t}function b({amount:e,baseAmount:n,currencyCode:i,locale:r,maximumFractionDigits:u,minimumFractionDigits:c,removeTrailingZeros:s}){if(typeof Intl>"u")return{price:`${a[r]}${e}`,basePrice:`${a[r]}${n}`,discount:`${a[r]}${n-e||0}`};const t=n>e,f=new Intl.NumberFormat(o(r),{style:"percent"}),g=t?f.format((n-e)/n):null,d=m({amount:e,currencyCode:i,locale:r,removeTrailingZeros:s}),l=t?m({amount:n,currencyCode:i,locale:r,maximumFractionDigits:u,minimumFractionDigits:c,removeTrailingZeros:s}):void 0;return{price:d,basePrice:l,discount:g}}export{a as PRICE_SYMBOL,m as formatPrice,b as formatVariantPrice,o as languageTerritory};
|
|
2
|
+
//# sourceMappingURL=shelfDisplay.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/biz-components/ShelfDisplay/shelfDisplay.ts"],
|
|
4
|
+
"sourcesContent": ["/* eslint-disable no-useless-escape */\nexport const PRICE_SYMBOL = {\n us: '$',\n uk: '\u00A3',\n ca: '$',\n eu: '\u20AC',\n fr: '\u20AC',\n de: '\u20AC',\n vn: '\u20AB',\n cl: '$',\n sg: '$',\n ae: 'AED',\n} as any\n\nexport const languageTerritory = (locale: string) =>\n // https://unicode-org.github.io/cldr-staging/charts/37/supplemental/language_territory_information.html\n ({\n us: 'en-us',\n uk: 'en-gb',\n ca: 'en-ca',\n au: 'en-au',\n eu: 'en',\n fr: 'fr-fr',\n de: 'de-de',\n vn: 'vi-vn',\n sg: 'en-sg',\n 'ae-en': 'ae-en',\n plus: 'en-us',\n cl: 'es-cl',\n })[locale] || ''\n\nexport function formatPrice({\n amount,\n currencyCode,\n locale,\n maximumFractionDigits,\n minimumFractionDigits,\n removeTrailingZeros = false,\n}: {\n amount: number\n currencyCode: string\n locale: string\n maximumFractionDigits?: number\n minimumFractionDigits?: number\n removeTrailingZeros?: boolean\n}) {\n const formatCurrency = new Intl.NumberFormat(languageTerritory(locale), {\n style: 'currency',\n currency: currencyCode || 'USD',\n minimumFractionDigits: maximumFractionDigits === 0 ? 0 : minimumFractionDigits,\n maximumFractionDigits,\n })\n\n let formattedValue = formatCurrency.format(amount)\n\n if (['eu-de', 'eu-en', 'de', 'eu'].includes(locale)) {\n formattedValue = formattedValue?.toString()?.replace(/[\\s]/g, '')\n }\n\n if (removeTrailingZeros) {\n // Adjust the regex to match comma as decimal separator\n formattedValue = formattedValue\n .replace(/(\\.\\d*?[1-9])0+\\b/, '$1')\n .replace(/\\.0+\\b/, '')\n .replace(/(\\,\\d*?[1-9])0+\\b/, '$1')\n .replace(/\\,0+\\b/, '')\n }\n\n return formattedValue\n}\n\nexport function formatVariantPrice({\n amount,\n baseAmount,\n currencyCode,\n locale,\n maximumFractionDigits,\n minimumFractionDigits,\n removeTrailingZeros,\n}: {\n baseAmount: number\n amount: number\n currencyCode: string\n locale: string\n maximumFractionDigits?: number\n minimumFractionDigits?: number\n removeTrailingZeros?: boolean\n}) {\n if (typeof Intl === 'undefined') {\n return {\n price: `${PRICE_SYMBOL[locale]}${amount}`,\n basePrice: `${PRICE_SYMBOL[locale]}${baseAmount}`,\n discount: `${PRICE_SYMBOL[locale]}${baseAmount - amount || 0}`,\n }\n }\n\n const hasDiscount = baseAmount > amount\n const formatDiscount = new Intl.NumberFormat(languageTerritory(locale), {\n style: 'percent',\n })\n const discount = hasDiscount ? formatDiscount.format((baseAmount - amount) / baseAmount) : null\n\n const price = formatPrice({ amount, currencyCode, locale, removeTrailingZeros })\n const basePrice = hasDiscount\n ? formatPrice({\n amount: baseAmount,\n currencyCode,\n locale,\n maximumFractionDigits,\n minimumFractionDigits,\n removeTrailingZeros,\n })\n : undefined\n\n return { price, basePrice, discount }\n}\n"],
|
|
5
|
+
"mappings": "AACO,MAAMA,EAAe,CAC1B,GAAI,IACJ,GAAI,OACJ,GAAI,IACJ,GAAI,SACJ,GAAI,SACJ,GAAI,SACJ,GAAI,SACJ,GAAI,IACJ,GAAI,IACJ,GAAI,KACN,EAEaC,EAAqBC,IAE/B,CACC,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,KACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,QAAS,QACT,KAAM,QACN,GAAI,OACN,GAAGA,CAAM,GAAK,GAET,SAASC,EAAY,CAC1B,OAAAC,EACA,aAAAC,EACA,OAAAH,EACA,sBAAAI,EACA,sBAAAC,EACA,oBAAAC,EAAsB,EACxB,EAOG,CAQD,IAAIC,EAPmB,IAAI,KAAK,aAAaR,EAAkBC,CAAM,EAAG,CACtE,MAAO,WACP,SAAUG,GAAgB,MAC1B,sBAAuBC,IAA0B,EAAI,EAAIC,EACzD,sBAAAD,CACF,CAAC,EAEmC,OAAOF,CAAM,EAEjD,MAAI,CAAC,QAAS,QAAS,KAAM,IAAI,EAAE,SAASF,CAAM,IAChDO,EAAiBA,GAAgB,SAAS,GAAG,QAAQ,QAAS,EAAE,GAG9DD,IAEFC,EAAiBA,EACd,QAAQ,oBAAqB,IAAI,EACjC,QAAQ,SAAU,EAAE,EACpB,QAAQ,oBAAqB,IAAI,EACjC,QAAQ,SAAU,EAAE,GAGlBA,CACT,CAEO,SAASC,EAAmB,CACjC,OAAAN,EACA,WAAAO,EACA,aAAAN,EACA,OAAAH,EACA,sBAAAI,EACA,sBAAAC,EACA,oBAAAC,CACF,EAQG,CACD,GAAI,OAAO,KAAS,IAClB,MAAO,CACL,MAAO,GAAGR,EAAaE,CAAM,CAAC,GAAGE,CAAM,GACvC,UAAW,GAAGJ,EAAaE,CAAM,CAAC,GAAGS,CAAU,GAC/C,SAAU,GAAGX,EAAaE,CAAM,CAAC,GAAGS,EAAaP,GAAU,CAAC,EAC9D,EAGF,MAAMQ,EAAcD,EAAaP,EAC3BS,EAAiB,IAAI,KAAK,aAAaZ,EAAkBC,CAAM,EAAG,CACtE,MAAO,SACT,CAAC,EACKY,EAAWF,EAAcC,EAAe,QAAQF,EAAaP,GAAUO,CAAU,EAAI,KAErFI,EAAQZ,EAAY,CAAE,OAAAC,EAAQ,aAAAC,EAAc,OAAAH,EAAQ,oBAAAM,CAAoB,CAAC,EACzEQ,EAAYJ,EACdT,EAAY,CACV,OAAQQ,EACR,aAAAN,EACA,OAAAH,EACA,sBAAAI,EACA,sBAAAC,EACA,oBAAAC,CACF,CAAC,EACD,OAEJ,MAAO,CAAE,MAAAO,EAAO,UAAAC,EAAW,SAAAF,CAAS,CACtC",
|
|
6
|
+
"names": ["PRICE_SYMBOL", "languageTerritory", "locale", "formatPrice", "amount", "currencyCode", "maximumFractionDigits", "minimumFractionDigits", "removeTrailingZeros", "formattedValue", "formatVariantPrice", "baseAmount", "hasDiscount", "formatDiscount", "discount", "price", "basePrice"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as e,jsxs as k}from"react/jsx-runtime";import{cn as a}from"../../helpers/utils.js";import{Picture as f,Text as o,Button as p}from"../../components/index.js";import v from"../CpnCountDown/index.js";const w=b=>{const{id:m,image:c,imageMob:u,imageLink:i,content:x=[],cns:n}=b,r=t=>{if(t?.startsWith("http")&&(location.href=t),t?.startsWith("#")){const l=document.querySelector(t);l&&l.scrollIntoView({behavior:"smooth"})}};return k("div",{id:m,className:a("cpn-banner-container relative w-full",n?.container),children:[e(f,{loading:"eager",source:`${c}, ${u||c} 768`,className:a("cpn-banner-picture",n?.picture),imgClassName:a("cpn-banner-image h-full object-cover",n?.image),alt:""}),i&&e("a",{href:i,className:"absolute left-0 top-0 z-[1] size-full"}),e("div",{className:a("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?.box),children:e("div",{className:"tablet:px-10 desktop:px-20 px-6",children:e("div",{className:a("cpn-banner-content tablet:mx-0 tablet:max-w-[40vw] mx-auto max-w-[70vw]",n?.content),children:x?.map((t,l)=>{switch(t.type){case"subheading":return e(o,{as:"div",html:t.text,className:a("cpn-banner-subheading tablet:text-[1.25vw] lg-desktop:text-[24px] mt-4 font-medium",n?.subheading)},l);case"title":return e(o,{as:"div",html:t.text,className:a("cpn-banner-title tablet:mt-5 tablet:text-[2.7vw] lg-desktop:text-[56px] mt-4 text-[32px] font-bold leading-[1.12]",n?.title)},l);case"subtitle":return e(o,{as:"div",html:t.text,className:a("cpn-banner-subtitle tablet:mt-5 tablet:text-[1.25vw] lg-desktop:text-[24px] mt-4 font-medium",n?.subtitle)},l);case"button":return e("div",{className:a("cpn-banner-buttonBox tablet:mt-6 tablet:justify-start mt-4 flex justify-center",n?.buttonBox),children:e(p,{className:a("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?.button,t.cns),onClick:t.onClick?t.onClick:()=>r(t.target||""),children:t.text},l)});case"buttons":return e("div",{className:a("cpn-banner-buttonBox tablet:mt-6 tablet:justify-start mt-4 flex justify-center",n?.buttonBox),children:t.buttons.map((s,d)=>e(p,{className:a("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?.button,s.cns),onClick:s.onClick?s.onClick:()=>r(s.target||""),children:s.text},d))});case"countdown":return e("div",{className:"cpn-banner-countdown tablet:mt-6 tablet:justify-start mt-4 flex justify-center",children:e(v,{endTime:t.endTime,copy:t.copy,cns:n?.countdown})},l)}})})})})]})};var N=w;export{N as default};
|
|
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": "AAqBI,OACE,OAAAA,EADF,QAAAC,MAAA,oBApBJ,OAAS,MAAAC,MAAU,yBACnB,OAAS,WAAAC,EAAS,QAAAC,EAAM,UAAAC,MAAc,4BACtC,OAAOC,MAAe,2BAEtB,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,OACEhB,EAAC,OAAI,GAAIQ,EAAI,UAAWP,EAAG,uCAAwCY,GAAK,SAAS,EAC/E,UAAAd,EAACG,EAAA,CACC,QAAQ,QACR,OAAQ,GAAGO,CAAK,KAAKC,GAAYD,CAAK,OACtC,UAAWR,EAAG,qBAAsBY,GAAK,OAAO,EAChD,aAAcZ,EAAG,uCAAwCY,GAAK,KAAK,EACnE,IAAI,GACN,EACCF,GAAaZ,EAAC,KAAE,KAAMY,EAAW,UAAU,wCAAwC,EACpFZ,EAAC,OACC,UAAWE,EACT,kJACAY,GAAK,GACP,EAEA,SAAAd,EAAC,OAAI,UAAU,kCACb,SAAAA,EAAC,OAAI,UAAWE,EAAG,0EAA2EY,GAAK,OAAO,EACvG,SAAAD,GAAS,IAAI,CAACK,EAAMC,IAAU,CAC7B,OAAQD,EAAK,KAAM,CACjB,IAAK,aACH,OACElB,EAACI,EAAA,CAEC,GAAG,MACH,KAAMc,EAAK,KACX,UAAWhB,EACT,qFACAY,GAAK,UACP,GANKK,CAOP,EAEJ,IAAK,QACH,OACEnB,EAACI,EAAA,CAEC,GAAG,MACH,KAAMc,EAAK,KACX,UAAWhB,EACT,oHACAY,GAAK,KACP,GANKK,CAOP,EAEJ,IAAK,WACH,OACEnB,EAACI,EAAA,CAEC,GAAG,MACH,KAAMc,EAAK,KACX,UAAWhB,EACT,+FACAY,GAAK,QACP,GANKK,CAOP,EAEJ,IAAK,SACH,OACEnB,EAAC,OACC,UAAWE,EACT,iFACAY,GAAK,SACP,EAEA,SAAAd,EAACK,EAAA,CAEC,UAAWH,EACT,qIACAY,GAAK,OACLI,EAAK,GACP,EACA,QAASA,EAAK,QAAUA,EAAK,QAAU,IAAMH,EAASG,EAAK,QAAU,EAAE,EAEtE,SAAAA,EAAK,MARDC,CASP,EACF,EAEJ,IAAK,UACH,OACEnB,EAAC,OACC,UAAWE,EACT,iFACAY,GAAK,SACP,EAEC,SAAAI,EAAK,QAAQ,IAAI,CAACE,EAAQD,IACzBnB,EAACK,EAAA,CAEC,UAAWH,EACT,qIACAY,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,OACEnB,EAAC,OAEC,UAAU,iFAEV,SAAAA,EAACM,EAAA,CAAU,QAASY,EAAK,QAAS,KAAMA,EAAK,KAAM,IAAKJ,GAAK,UAAW,GAHnEK,CAIP,CAEN,CACF,CAAC,EACH,EACF,EACF,GACF,CAEJ,EAEA,IAAOE,EAAQd",
|
|
6
|
+
"names": ["jsx", "jsxs", "cn", "Picture", "Text", "Button", "CountDown", "CpnBanner", "props", "id", "image", "imageMob", "imageLink", "content", "cns", "btnClick", "target", "element", "item", "index", "button", "CpnBanner_default"]
|
|
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 @@
|
|
|
1
|
+
//# sourceMappingURL=types.js.map
|