@anker-in/headless-ui 0.0.27-alpha.37 → 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.
Files changed (103) hide show
  1. package/dist/cjs/cpn-components/CpnBanner/index.d.ts +3 -0
  2. package/dist/cjs/cpn-components/CpnBanner/index.js +2 -0
  3. package/dist/cjs/cpn-components/CpnBanner/index.js.map +7 -0
  4. package/dist/cjs/cpn-components/CpnBanner/types.d.ts +42 -0
  5. package/dist/cjs/cpn-components/CpnBanner/types.js +2 -0
  6. package/dist/cjs/cpn-components/CpnBanner/types.js.map +7 -0
  7. package/dist/cjs/cpn-components/CpnCountDown/index.d.ts +3 -0
  8. package/dist/cjs/cpn-components/CpnCountDown/index.js +2 -0
  9. package/dist/cjs/cpn-components/CpnCountDown/index.js.map +7 -0
  10. package/dist/cjs/cpn-components/CpnCountDown/types.d.ts +28 -0
  11. package/dist/cjs/cpn-components/CpnCountDown/types.js +2 -0
  12. package/dist/cjs/cpn-components/CpnCountDown/types.js.map +7 -0
  13. package/dist/cjs/cpn-components/CpnNavigation/index.d.ts +3 -0
  14. package/dist/cjs/cpn-components/CpnNavigation/index.js +2 -0
  15. package/dist/cjs/cpn-components/CpnNavigation/index.js.map +7 -0
  16. package/dist/cjs/cpn-components/CpnNavigation/types.d.ts +19 -0
  17. package/dist/cjs/cpn-components/CpnNavigation/types.js +2 -0
  18. package/dist/cjs/cpn-components/CpnNavigation/types.js.map +7 -0
  19. package/dist/cjs/cpn-components/CpnProductCard/index.d.ts +3 -0
  20. package/dist/cjs/cpn-components/CpnProductCard/index.js +2 -0
  21. package/dist/cjs/cpn-components/CpnProductCard/index.js.map +7 -0
  22. package/dist/cjs/cpn-components/CpnProductCard/types.d.ts +109 -0
  23. package/dist/cjs/cpn-components/CpnProductCard/types.js +2 -0
  24. package/dist/cjs/cpn-components/CpnProductCard/types.js.map +7 -0
  25. package/dist/cjs/cpn-components/CpnTitle/index.d.ts +3 -0
  26. package/dist/cjs/cpn-components/CpnTitle/index.js +2 -0
  27. package/dist/cjs/cpn-components/CpnTitle/index.js.map +7 -0
  28. package/dist/cjs/cpn-components/CpnTitle/types.d.ts +10 -0
  29. package/dist/cjs/cpn-components/CpnTitle/types.js +2 -0
  30. package/dist/cjs/cpn-components/CpnTitle/types.js.map +7 -0
  31. package/dist/cjs/cpn-components/index.d.ts +5 -0
  32. package/dist/cjs/cpn-components/index.js +2 -0
  33. package/dist/cjs/cpn-components/index.js.map +7 -0
  34. package/dist/cjs/hooks/useCountDown.d.ts +10 -0
  35. package/dist/cjs/hooks/useCountDown.js +2 -0
  36. package/dist/cjs/hooks/useCountDown.js.map +7 -0
  37. package/dist/cjs/stories/cpnBanner.stories.d.ts +14 -0
  38. package/dist/cjs/stories/cpnBanner.stories.js +2 -0
  39. package/dist/cjs/stories/cpnBanner.stories.js.map +7 -0
  40. package/dist/cjs/stories/cpnCountdown.stories.d.ts +12 -0
  41. package/dist/cjs/stories/cpnCountdown.stories.js +2 -0
  42. package/dist/cjs/stories/cpnCountdown.stories.js.map +7 -0
  43. package/dist/cjs/stories/cpnNavigation.stories.d.ts +14 -0
  44. package/dist/cjs/stories/cpnNavigation.stories.js +2 -0
  45. package/dist/cjs/stories/cpnNavigation.stories.js.map +7 -0
  46. package/dist/cjs/stories/cpnProductcard.stories.d.ts +14 -0
  47. package/dist/cjs/stories/cpnProductcard.stories.js +2 -0
  48. package/dist/cjs/stories/cpnProductcard.stories.js.map +7 -0
  49. package/dist/cjs/stories/cpnTitle.stories.d.ts +14 -0
  50. package/dist/cjs/stories/cpnTitle.stories.js +2 -0
  51. package/dist/cjs/stories/cpnTitle.stories.js.map +7 -0
  52. package/dist/esm/cpn-components/CpnBanner/index.d.ts +3 -0
  53. package/dist/esm/cpn-components/CpnBanner/index.js +2 -0
  54. package/dist/esm/cpn-components/CpnBanner/index.js.map +7 -0
  55. package/dist/esm/cpn-components/CpnBanner/types.d.ts +42 -0
  56. package/dist/esm/cpn-components/CpnBanner/types.js +1 -0
  57. package/dist/esm/cpn-components/CpnBanner/types.js.map +7 -0
  58. package/dist/esm/cpn-components/CpnCountDown/index.d.ts +3 -0
  59. package/dist/esm/cpn-components/CpnCountDown/index.js +2 -0
  60. package/dist/esm/cpn-components/CpnCountDown/index.js.map +7 -0
  61. package/dist/esm/cpn-components/CpnCountDown/types.d.ts +28 -0
  62. package/dist/esm/cpn-components/CpnCountDown/types.js +1 -0
  63. package/dist/esm/cpn-components/CpnCountDown/types.js.map +7 -0
  64. package/dist/esm/cpn-components/CpnNavigation/index.d.ts +3 -0
  65. package/dist/esm/cpn-components/CpnNavigation/index.js +2 -0
  66. package/dist/esm/cpn-components/CpnNavigation/index.js.map +7 -0
  67. package/dist/esm/cpn-components/CpnNavigation/types.d.ts +19 -0
  68. package/dist/esm/cpn-components/CpnNavigation/types.js +1 -0
  69. package/dist/esm/cpn-components/CpnNavigation/types.js.map +7 -0
  70. package/dist/esm/cpn-components/CpnProductCard/index.d.ts +3 -0
  71. package/dist/esm/cpn-components/CpnProductCard/index.js +2 -0
  72. package/dist/esm/cpn-components/CpnProductCard/index.js.map +7 -0
  73. package/dist/esm/cpn-components/CpnProductCard/types.d.ts +109 -0
  74. package/dist/esm/cpn-components/CpnProductCard/types.js +1 -0
  75. package/dist/esm/cpn-components/CpnProductCard/types.js.map +7 -0
  76. package/dist/esm/cpn-components/CpnTitle/index.d.ts +3 -0
  77. package/dist/esm/cpn-components/CpnTitle/index.js +2 -0
  78. package/dist/esm/cpn-components/CpnTitle/index.js.map +7 -0
  79. package/dist/esm/cpn-components/CpnTitle/types.d.ts +10 -0
  80. package/dist/esm/cpn-components/CpnTitle/types.js +1 -0
  81. package/dist/esm/cpn-components/CpnTitle/types.js.map +7 -0
  82. package/dist/esm/cpn-components/index.d.ts +5 -0
  83. package/dist/esm/cpn-components/index.js +2 -0
  84. package/dist/esm/cpn-components/index.js.map +7 -0
  85. package/dist/esm/hooks/useCountDown.d.ts +10 -0
  86. package/dist/esm/hooks/useCountDown.js +2 -0
  87. package/dist/esm/hooks/useCountDown.js.map +7 -0
  88. package/dist/esm/stories/cpnBanner.stories.d.ts +14 -0
  89. package/dist/esm/stories/cpnBanner.stories.js +2 -0
  90. package/dist/esm/stories/cpnBanner.stories.js.map +7 -0
  91. package/dist/esm/stories/cpnCountdown.stories.d.ts +12 -0
  92. package/dist/esm/stories/cpnCountdown.stories.js +2 -0
  93. package/dist/esm/stories/cpnCountdown.stories.js.map +7 -0
  94. package/dist/esm/stories/cpnNavigation.stories.d.ts +14 -0
  95. package/dist/esm/stories/cpnNavigation.stories.js +2 -0
  96. package/dist/esm/stories/cpnNavigation.stories.js.map +7 -0
  97. package/dist/esm/stories/cpnProductcard.stories.d.ts +14 -0
  98. package/dist/esm/stories/cpnProductcard.stories.js +2 -0
  99. package/dist/esm/stories/cpnProductcard.stories.js.map +7 -0
  100. package/dist/esm/stories/cpnTitle.stories.d.ts +14 -0
  101. package/dist/esm/stories/cpnTitle.stories.js +2 -0
  102. package/dist/esm/stories/cpnTitle.stories.js.map +7 -0
  103. package/package.json +11 -1
@@ -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
+ }
@@ -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
+ 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
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
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
+ import{Fragment as x,jsx as e,jsxs as i}from"react/jsx-runtime";import{cn as n}from"../../helpers/utils.js";import{Picture as u}from"../../components/index.js";import d from"../../hooks/useCountDown.js";const c=({time:s,copy:p,image:o,cns:t})=>e(x,{children:s?i("div",{className:n("cpn-countdown-item laptop:size-[54px] tablet:size-[3.2vw] relative size-[34px] rounded bg-black",t?.item),children:[o&&e(u,{className:n("cpn-countdown-picture absolute left-0 top-0 size-full",t?.picture),imgClassName:n("cpn-countdown-image h-full object-cover",t?.image),source:`${o}`}),e("div",{className: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",t?.time),children:s}),p&&e("div",{className: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",t?.copy),children:p})]}):e("div",{className:n("cpn-countdown-colonBox relative flex flex-col gap-1",t?.colonBox),children:Array.from({length:2}).map((l,a)=>e("span",{className:n("cpn-countdown-colon size-1 rounded-full bg-black",t?.colon)},a))})}),f=s=>{const{endTime:p,copy:o,cns:t}=s,{days:l,hours:a,minutes:m,seconds:r}=d({endTime:p});return i("div",{className:n("cpn-countdown-container laptop:gap-4 relative flex items-center justify-center gap-2",{"mb-5":o?.days},t?.container),children:[e(c,{time:l,copy:o?.days,cns:t}),e(c,{}),e(c,{time:a,copy:o?.hours,cns:t}),e(c,{}),e(c,{time:m,copy:o?.minutes,cns:t}),e(c,{}),e(c,{time:r,copy:o?.seconds,cns:t})]})};var y=f;export{y as default};
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": "AAME,mBAAAA,EASQ,OAAAC,EAPJ,QAAAC,MAFJ,oBALF,OAAS,MAAAC,MAAU,yBACnB,OAAS,WAAAC,MAAe,4BACxB,OAAOC,MAAkB,8BAEzB,MAAMC,EAAO,CAAC,CAAE,KAAAC,EAAM,KAAAC,EAAM,MAAAC,EAAO,IAAAC,CAAI,IACrCT,EAAAD,EAAA,CACG,SAAAO,EACCL,EAAC,OACC,UAAWC,EACT,kGACAO,GAAK,IACP,EAEC,UAAAD,GACCR,EAACG,EAAA,CACC,UAAWD,EAAG,wDAAyDO,GAAK,OAAO,EACnF,aAAcP,EAAG,0CAA2CO,GAAK,KAAK,EACtE,OAAQ,GAAGD,CAAK,GAClB,EAEFR,EAAC,OACC,UAAWE,EACT,gKACAO,GAAK,IACP,EAEC,SAAAH,EACH,EACCC,GACCP,EAAC,OACC,UAAWE,EACT,gJACAO,GAAK,IACP,EAEC,SAAAF,EACH,GAEJ,EAEAP,EAAC,OAAI,UAAWE,EAAG,sDAAuDO,GAAK,QAAQ,EACpF,eAAM,KAAK,CAAE,OAAQ,CAAE,CAAC,EAAE,IAAI,CAACC,EAAGC,IACjCX,EAAC,QAAiB,UAAWE,EAAG,mDAAoDO,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,EAAId,EAAa,CAAE,QAAAU,CAAQ,CAAC,EAElE,OACEb,EAAC,OACC,UAAWC,EACT,uFACA,CACE,OAAQK,GAAM,IAChB,EACAE,GAAK,SACP,EAEA,UAAAT,EAACK,EAAA,CAAK,KAAMU,EAAM,KAAMR,GAAM,KAAM,IAAKE,EAAK,EAC9CT,EAACK,EAAA,EAAK,EACNL,EAACK,EAAA,CAAK,KAAMW,EAAO,KAAMT,GAAM,MAAO,IAAKE,EAAK,EAChDT,EAACK,EAAA,EAAK,EACNL,EAACK,EAAA,CAAK,KAAMY,EAAS,KAAMV,GAAM,QAAS,IAAKE,EAAK,EACpDT,EAACK,EAAA,EAAK,EACNL,EAACK,EAAA,CAAK,KAAMa,EAAS,KAAMX,GAAM,QAAS,IAAKE,EAAK,GACtD,CAEJ,EAEA,IAAOU,EAAQP",
6
+ "names": ["Fragment", "jsx", "jsxs", "cn", "Picture", "useCountDown", "Item", "time", "copy", "image", "cns", "_", "index", "CpnCountDown", "props", "endTime", "days", "hours", "minutes", "seconds", "CpnCountDown_default"]
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 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
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
+ import{jsx as s}from"react/jsx-runtime";import{useEffect as g,useRef as x,useState as C}from"react";import{cn as l}from"../../helpers/utils.js";import w from"lodash.debounce";const y=d=>{const{lists:n,styles:a,cns:r,offset:v=0}=d,[u,f]=C(0),p=x(null),b=e=>{e.scrollIntoView({behavior:"smooth",inline:"center"})},h=(e,o,t)=>{f(o);const i=t.target;b(i),e.anchor&&document.querySelector(`#${e.anchor}`)?.scrollIntoView({behavior:"smooth"}),t.preventDefault()};return g(()=>{const e=w(()=>{const t=[];n?.forEach(c=>{const m=document.querySelector(`#${c.anchor}`);m&&t.push(m.getBoundingClientRect().top)});const i=t.findIndex(c=>c>o+v)-1;f(i)},100),o=p.current?.getBoundingClientRect().height||0;return window.addEventListener("scroll",e),()=>{window.removeEventListener("scroll",e)}},[n,v]),s("div",{id:"nav",className:l("cpn-nav-container sticky top-0 z-10 w-full bg-[var(--bgColor)]",r?.container),style:{"--bgColor":a?.bgColor||"#C6F1FF","--color":a?.color||"#333","--activeColor":a?.activeColor||"#000"},children:s("div",{className:l("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",r?.box),ref:p,children:n?.map((e,o)=>s("a",{href:`#${e.anchor}`,className:l("cpn-nav-item relative cursor-pointer whitespace-nowrap py-[14px] text-[16px] font-medium leading-[1.2] text-[var(--color)] transition-all duration-200",r?.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-[""] ${r?.activeItem}`]:u===o}),onClick:t=>h(e,o,t),children:e.label},e.label))})})};var S=y;export{S as default};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/cpn-components/CpnNavigation/index.tsx"],
4
+ "sourcesContent": ["import React, { useEffect, useRef, useState } from 'react'\nimport { cn } from '../../helpers/utils.js'\nimport type { Nav, NavigationProps } from './types.js'\nimport debounce from 'lodash.debounce'\n\nconst CpnNavigation = (props: NavigationProps) => {\n const { lists, styles, cns, offset = 0 } = props\n const [activeIndex, setActiveIndex] = useState(0)\n const navBox = useRef<HTMLDivElement>(null)\n\n const scrollIntoView = (ele: HTMLElement) => {\n ele.scrollIntoView({ behavior: 'smooth', inline: 'center' })\n }\n\n const handleNavItemClick = (nav: Nav, index: number, e: React.SyntheticEvent<EventTarget>) => {\n setActiveIndex(index)\n const ele = e.target as HTMLAnchorElement\n scrollIntoView(ele)\n if (nav.anchor) {\n document.querySelector(`#${nav.anchor}`)?.scrollIntoView({ behavior: 'smooth' })\n }\n e.preventDefault()\n }\n\n useEffect(() => {\n const scrollHandler = debounce(() => {\n const sectionTops: number[] = []\n lists?.forEach(nav => {\n const section = document.querySelector(`#${nav.anchor}`)\n if (section) {\n sectionTops.push(section.getBoundingClientRect().top)\n }\n })\n const index = sectionTops.findIndex(sectionTop => sectionTop > navHeight + offset) - 1\n setActiveIndex(index)\n }, 100)\n const navHeight = navBox.current?.getBoundingClientRect().height || 0\n window.addEventListener('scroll', scrollHandler)\n return () => {\n window.removeEventListener('scroll', scrollHandler)\n }\n }, [lists, offset])\n\n return (\n <div\n id=\"nav\"\n className={cn('cpn-nav-container sticky top-0 z-10 w-full bg-[var(--bgColor)]', cns?.container)}\n style={\n {\n '--bgColor': styles?.bgColor || '#C6F1FF',\n '--color': styles?.color || '#333',\n '--activeColor': styles?.activeColor || '#000',\n } as React.CSSProperties\n }\n >\n <div\n className={cn(\n 'cpn-nav-box relative flex items-center justify-start gap-[18px] overflow-scroll px-6 text-center [&::-webkit-scrollbar]:hidden',\n 'tablet:gap-[80px] tablet:justify-center',\n cns?.box\n )}\n ref={navBox}\n >\n {lists?.map((nav, index) => {\n return (\n <a\n key={nav.label}\n href={`#${nav.anchor}`}\n className={cn(\n 'cpn-nav-item relative cursor-pointer whitespace-nowrap py-[14px] text-[16px] font-medium leading-[1.2] text-[var(--color)] transition-all duration-200',\n cns?.item,\n {\n [`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-[\"\"] ${cns?.activeItem}`]:\n activeIndex === index,\n }\n )}\n onClick={e => handleNavItemClick(nav, index, e)}\n >\n {nav.label}\n </a>\n )\n })}\n </div>\n </div>\n )\n}\n\nexport default CpnNavigation\n"],
5
+ "mappings": "AAiEY,cAAAA,MAAA,oBAjEZ,OAAgB,aAAAC,EAAW,UAAAC,EAAQ,YAAAC,MAAgB,QACnD,OAAS,MAAAC,MAAU,yBAEnB,OAAOC,MAAc,kBAErB,MAAMC,EAAiBC,GAA2B,CAChD,KAAM,CAAE,MAAAC,EAAO,OAAAC,EAAQ,IAAAC,EAAK,OAAAC,EAAS,CAAE,EAAIJ,EACrC,CAACK,EAAaC,CAAc,EAAIV,EAAS,CAAC,EAC1CW,EAASZ,EAAuB,IAAI,EAEpCa,EAAkBC,GAAqB,CAC3CA,EAAI,eAAe,CAAE,SAAU,SAAU,OAAQ,QAAS,CAAC,CAC7D,EAEMC,EAAqB,CAACC,EAAUC,EAAeC,IAAyC,CAC5FP,EAAeM,CAAK,EACpB,MAAMH,EAAMI,EAAE,OACdL,EAAeC,CAAG,EACdE,EAAI,QACN,SAAS,cAAc,IAAIA,EAAI,MAAM,EAAE,GAAG,eAAe,CAAE,SAAU,QAAS,CAAC,EAEjFE,EAAE,eAAe,CACnB,EAEA,OAAAnB,EAAU,IAAM,CACd,MAAMoB,EAAgBhB,EAAS,IAAM,CACnC,MAAMiB,EAAwB,CAAC,EAC/Bd,GAAO,QAAQU,GAAO,CACpB,MAAMK,EAAU,SAAS,cAAc,IAAIL,EAAI,MAAM,EAAE,EACnDK,GACFD,EAAY,KAAKC,EAAQ,sBAAsB,EAAE,GAAG,CAExD,CAAC,EACD,MAAMJ,EAAQG,EAAY,UAAUE,GAAcA,EAAaC,EAAYd,CAAM,EAAI,EACrFE,EAAeM,CAAK,CACtB,EAAG,GAAG,EACAM,EAAYX,EAAO,SAAS,sBAAsB,EAAE,QAAU,EACpE,cAAO,iBAAiB,SAAUO,CAAa,EACxC,IAAM,CACX,OAAO,oBAAoB,SAAUA,CAAa,CACpD,CACF,EAAG,CAACb,EAAOG,CAAM,CAAC,EAGhBX,EAAC,OACC,GAAG,MACH,UAAWI,EAAG,iEAAkEM,GAAK,SAAS,EAC9F,MACE,CACE,YAAaD,GAAQ,SAAW,UAChC,UAAWA,GAAQ,OAAS,OAC5B,gBAAiBA,GAAQ,aAAe,MAC1C,EAGF,SAAAT,EAAC,OACC,UAAWI,EACT,iIACA,0CACAM,GAAK,GACP,EACA,IAAKI,EAEJ,SAAAN,GAAO,IAAI,CAACU,EAAKC,IAEdnB,EAAC,KAEC,KAAM,IAAIkB,EAAI,MAAM,GACpB,UAAWd,EACT,yJACAM,GAAK,KACL,CACE,CAAC,wNAAwNA,GAAK,UAAU,EAAE,EACxOE,IAAgBO,CACpB,CACF,EACA,QAASC,GAAKH,EAAmBC,EAAKC,EAAOC,CAAC,EAE7C,SAAAF,EAAI,OAZAA,EAAI,KAaX,CAEH,EACH,EACF,CAEJ,EAEA,IAAOQ,EAAQpB",
6
+ "names": ["jsx", "useEffect", "useRef", "useState", "cn", "debounce", "CpnNavigation", "props", "lists", "styles", "cns", "offset", "activeIndex", "setActiveIndex", "navBox", "scrollIntoView", "ele", "handleNavItemClick", "nav", "index", "e", "scrollHandler", "sectionTops", "section", "sectionTop", "navHeight", "CpnNavigation_default"]
7
+ }
@@ -0,0 +1,19 @@
1
+ type Cns = {
2
+ container?: string;
3
+ box?: string;
4
+ item?: string;
5
+ activeItem?: string;
6
+ };
7
+ export interface Nav {
8
+ label: string;
9
+ anchor: string;
10
+ }
11
+ export type NavigationProps = {
12
+ lists: Nav[];
13
+ styles?: {
14
+ [key: string]: string;
15
+ };
16
+ cns?: Cns;
17
+ offset?: number;
18
+ };
19
+ export {};
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,3 @@
1
+ import type { ProductCardProps } from './types.js';
2
+ declare const CpnProductCard: (props: ProductCardProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default CpnProductCard;
@@ -0,0 +1,2 @@
1
+ import{jsx as e}from"react/jsx-runtime";import{cn as a}from"../../helpers/utils.js";import{Button as m,Picture as i,Text as c}from"../../components/index.js";const d=o=>{const{content:l,cns:n}=o;return e("div",{className:a("cpn-card-container relative box-border w-[177px] px-2 pb-3 pt-4 text-center",n?.container),children:l?.map((t,r)=>{switch(t.type){case"tag":return e(c,{as:"div",html:t.text},r);case"image":return e(i,{source:`${t.image}, ${t.imageMob||t.image} 768`,className:a("mx-auto h-[100px]"),imgClassName:a("h-full object-cover")},r);case"title":return e(c,{as:"div",html:t.text,className:a("text-[14px] font-semibold text-[#333]")},r);case"price":return e("div",{className:"mt-3",children:e(c,{html:`${t.text}`,className:a("text-[14px] font-semibold text-[#333]")})});case"buttons":return e("div",{className:"mt-2 flex flex-col gap-2",children:t.buttons?.map((s,p)=>e(m,{variant:s.variant,className:"w-full",onClick:s.onClick,children:s.text},p))})}})})};var v=d;export{v as default};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/cpn-components/CpnProductCard/index.tsx"],
4
+ "sourcesContent": ["import { cn } from '../../helpers/utils.js'\nimport type { ProductCardProps } from './types.js'\nimport { Button, Picture, Text } from '../../components/index.js'\n\nconst CpnProductCard = (props: ProductCardProps) => {\n const { content, cns } = props\n\n return (\n <div className={cn('cpn-card-container relative box-border w-[177px] px-2 pb-3 pt-4 text-center', cns?.container)}>\n {content?.map((item, index) => {\n switch (item.type) {\n case 'tag':\n return <Text key={index} as=\"div\" html={item.text} />\n case 'image':\n return (\n <Picture\n key={index}\n source={`${item.image}, ${item.imageMob || item.image} 768`}\n className={cn('mx-auto h-[100px]')}\n imgClassName={cn('h-full object-cover')}\n />\n )\n case 'title':\n return (\n <Text key={index} as=\"div\" html={item.text} className={cn('text-[14px] font-semibold text-[#333]')} />\n )\n case 'price':\n return (\n <div className=\"mt-3\">\n <Text html={`${item.text}`} className={cn('text-[14px] font-semibold text-[#333]')} />\n </div>\n )\n case 'buttons':\n return (\n <div className=\"mt-2 flex flex-col gap-2\">\n {item.buttons?.map((button, index) => (\n <Button key={index} variant={button.variant} className=\"w-full\" onClick={button.onClick}>\n {button.text}\n </Button>\n ))}\n </div>\n )\n }\n })}\n </div>\n )\n}\n\nexport default CpnProductCard\n"],
5
+ "mappings": "AAYmB,cAAAA,MAAA,oBAZnB,OAAS,MAAAC,MAAU,yBAEnB,OAAS,UAAAC,EAAQ,WAAAC,EAAS,QAAAC,MAAY,4BAEtC,MAAMC,EAAkBC,GAA4B,CAClD,KAAM,CAAE,QAAAC,EAAS,IAAAC,CAAI,EAAIF,EAEzB,OACEN,EAAC,OAAI,UAAWC,EAAG,8EAA+EO,GAAK,SAAS,EAC7G,SAAAD,GAAS,IAAI,CAACE,EAAMC,IAAU,CAC7B,OAAQD,EAAK,KAAM,CACjB,IAAK,MACH,OAAOT,EAACI,EAAA,CAAiB,GAAG,MAAM,KAAMK,EAAK,MAA3BC,CAAiC,EACrD,IAAK,QACH,OACEV,EAACG,EAAA,CAEC,OAAQ,GAAGM,EAAK,KAAK,KAAKA,EAAK,UAAYA,EAAK,KAAK,OACrD,UAAWR,EAAG,mBAAmB,EACjC,aAAcA,EAAG,qBAAqB,GAHjCS,CAIP,EAEJ,IAAK,QACH,OACEV,EAACI,EAAA,CAAiB,GAAG,MAAM,KAAMK,EAAK,KAAM,UAAWR,EAAG,uCAAuC,GAAtFS,CAAyF,EAExG,IAAK,QACH,OACEV,EAAC,OAAI,UAAU,OACb,SAAAA,EAACI,EAAA,CAAK,KAAM,GAAGK,EAAK,IAAI,GAAI,UAAWR,EAAG,uCAAuC,EAAG,EACtF,EAEJ,IAAK,UACH,OACED,EAAC,OAAI,UAAU,2BACZ,SAAAS,EAAK,SAAS,IAAI,CAACE,EAAQD,IAC1BV,EAACE,EAAA,CAAmB,QAASS,EAAO,QAAS,UAAU,SAAS,QAASA,EAAO,QAC7E,SAAAA,EAAO,MADGD,CAEb,CACD,EACH,CAEN,CACF,CAAC,EACH,CAEJ,EAEA,IAAOE,EAAQP",
6
+ "names": ["jsx", "cn", "Button", "Picture", "Text", "CpnProductCard", "props", "content", "cns", "item", "index", "button", "CpnProductCard_default"]
7
+ }
@@ -0,0 +1,109 @@
1
+ export type ProductImage = {
2
+ url: string;
3
+ altText?: string;
4
+ width?: number;
5
+ height?: number;
6
+ };
7
+ export type ProductPrice = {
8
+ value: number;
9
+ currencyCode?: 'USD' | 'EUR' | 'ARS' | string;
10
+ retailPrice?: number;
11
+ salePrice?: number;
12
+ listPrice?: number;
13
+ extendedSalePrice?: number;
14
+ extendedListPrice?: number;
15
+ };
16
+ export type ProductOption = {
17
+ __typename?: 'MultipleChoiceOption';
18
+ id: string;
19
+ displayName: string;
20
+ name?: string;
21
+ values: ProductOptionValues[];
22
+ };
23
+ export type ProductOptionValues = {
24
+ label: string;
25
+ hexColors?: string[];
26
+ };
27
+ export type SellingPlans = {
28
+ id: string;
29
+ name: string;
30
+ options: {
31
+ name: string;
32
+ value: string;
33
+ }[];
34
+ };
35
+ export type SellingPlanGroups = {
36
+ name: string;
37
+ sellingPlans: SellingPlans[];
38
+ };
39
+ export type SellingPlanAllocations = {
40
+ priceAdjustments: [];
41
+ sellingPlan: SellingPlans;
42
+ }[];
43
+ export type ProductVariant = {
44
+ barcode?: string;
45
+ id: string | number;
46
+ options: ProductOption[];
47
+ availableForSale?: boolean;
48
+ quantityAvailable: number;
49
+ metafields?: Record<string, any>;
50
+ sellingPlanAllocations?: SellingPlanAllocations;
51
+ price: number;
52
+ weight?: number;
53
+ name?: string;
54
+ image?: ProductImage;
55
+ requiresShipping?: boolean;
56
+ [key: string]: any;
57
+ };
58
+ export type Product = {
59
+ availableForSale?: boolean;
60
+ id: string;
61
+ name: string;
62
+ description: string;
63
+ descriptionHtml?: string;
64
+ productType?: string;
65
+ onlineStoreUrl?: string | null;
66
+ publishedAt?: string;
67
+ title?: string;
68
+ slug?: string;
69
+ handle?: string;
70
+ path?: string;
71
+ images: ProductImage[];
72
+ variants: ProductVariant[];
73
+ price: ProductPrice;
74
+ listPrice?: number;
75
+ options: ProductOption[];
76
+ seo?: any;
77
+ tags?: string[];
78
+ metafields?: {
79
+ [key: string]: any;
80
+ };
81
+ vendor: string;
82
+ totalInventory: number;
83
+ requiresSellingPlan: boolean;
84
+ sellingPlanGroups: SellingPlanGroups[];
85
+ };
86
+ type Cns = {
87
+ container?: string;
88
+ box?: string;
89
+ item?: string;
90
+ activeItem?: string;
91
+ };
92
+ type ContentType = 'tag' | 'image' | 'title' | 'subtitle' | 'price' | 'buttons' | 'code';
93
+ interface Content {
94
+ type: ContentType;
95
+ text?: string;
96
+ image?: string;
97
+ imageMob?: string;
98
+ url?: string;
99
+ buttons?: {
100
+ text: string;
101
+ variant?: "primary" | "secondary";
102
+ onClick?: () => void;
103
+ }[];
104
+ }
105
+ export type ProductCardProps = {
106
+ content?: Content[];
107
+ cns?: Cns;
108
+ };
109
+ export {};
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,3 @@
1
+ import type { TitleProps } from './types.js';
2
+ declare const CpnTitle: (props: TitleProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default CpnTitle;
@@ -0,0 +1,2 @@
1
+ import{jsx as c,jsxs as a}from"react/jsx-runtime";import{cn as e}from"../../helpers/utils.js";import{Picture as n,Text as s}from"../../components/index.js";const p=l=>{const{html:r,icon_l:o,icon_r:i,cns:t}=l;return a("div",{className:e("cpn-title-container flex items-start justify-center gap-5 text-center",t?.container),children:[o&&c(n,{source:o,className:e("cpn-title-icon-l",t?.icon_l)}),c(s,{html:r,className:"cpn-title-text laptop:text-[40px] text-[24px] font-bold"}),i&&c(n,{source:i,className:e("cpn-title-icon-r",t?.icon_r)})]})};var f=p;export{f as default};
2
+ //# sourceMappingURL=index.js.map
@@ -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": "AAQI,OACa,OAAAA,EADb,QAAAC,MAAA,oBAPJ,OAAS,MAAAC,MAAU,yBACnB,OAAS,WAAAC,EAAS,QAAAC,MAAY,4BAE9B,MAAMC,EAAYC,GAAsB,CACtC,KAAM,CAAE,KAAAC,EAAM,OAAAC,EAAQ,OAAAC,EAAQ,IAAAC,CAAI,EAAIJ,EAEtC,OACEL,EAAC,OAAI,UAAWC,EAAG,wEAAyEQ,GAAK,SAAS,EACvG,UAAAF,GAAUR,EAACG,EAAA,CAAQ,OAAQK,EAAQ,UAAWN,EAAG,mBAAoBQ,GAAK,MAAM,EAAG,EACpFV,EAACI,EAAA,CAAK,KAAMG,EAAM,UAAU,0DAA0D,EACrFE,GAAUT,EAACG,EAAA,CAAQ,OAAQM,EAAQ,UAAWP,EAAG,mBAAoBQ,GAAK,MAAM,EAAG,GACtF,CAEJ,EAEA,IAAOC,EAAQN",
6
+ "names": ["jsx", "jsxs", "cn", "Picture", "Text", "CpnTitle", "props", "html", "icon_l", "icon_r", "cns", "CpnTitle_default"]
7
+ }
@@ -0,0 +1,10 @@
1
+ export type TitleProps = {
2
+ html: string;
3
+ icon_l?: string;
4
+ icon_r?: string;
5
+ cns?: {
6
+ container?: string;
7
+ icon_l?: string;
8
+ icon_r?: string;
9
+ };
10
+ };
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
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
+ import{default as t}from"./CpnBanner/index.js";import{default as e}from"./CpnCountDown/index.js";import{default as n}from"./CpnNavigation/index.js";import{default as d}from"./CpnProductCard/index.js";import{default as C}from"./CpnTitle/index.js";export{t as CpnBanner,e as CpnCountDown,n as CpnNavigation,d as CpnProductCard,C as CpnTitle};
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": "AAAA,OAAoB,WAAXA,MAA4B,uBACrC,OAAoB,WAAXA,MAA+B,0BACxC,OAAoB,WAAXA,MAAgC,2BACzC,OAAoB,WAAXA,MAAiC,4BAC1C,OAAoB,WAAXA,MAA2B",
6
+ "names": ["default"]
7
+ }
@@ -0,0 +1,10 @@
1
+ interface Time {
2
+ days: string;
3
+ hours: string;
4
+ minutes: string;
5
+ seconds: string;
6
+ }
7
+ declare const useCountDown: ({ endTime }: {
8
+ endTime?: string;
9
+ }) => Time;
10
+ export default useCountDown;
@@ -0,0 +1,2 @@
1
+ import{useEffect as g,useState as f}from"react";const l=({endTime:s=""})=>{const[o,r]=f({days:"00",hours:"00",minutes:"00",seconds:"00"});return g(()=>{const n=e=>(e<0?0:Math.floor(e)).toString().padStart(2,"0"),c=new Date(s).getTime(),i=setInterval(()=>{const e=new Date().getTime(),t=c-e,u=n(t/(1e3*60*60*24)),a=n(t%(1e3*60*60*24)/(1e3*60*60)),m=n(t%(1e3*60*60)/(1e3*60)),d=n(t%(1e3*60)/1e3);r({days:u,hours:a,minutes:m,seconds:d})},1e3);return()=>clearInterval(i)},[s]),o};var D=l;export{D as default};
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": "AAAA,OAAS,aAAAA,EAAW,YAAAC,MAAgB,QASpC,MAAMC,EAAe,CAAC,CAAE,QAAAC,EAAU,EAAG,IAA4B,CAC/D,KAAM,CAACC,EAAMC,CAAO,EAAIJ,EAAe,CACrC,KAAM,KACN,MAAO,KACP,QAAS,KACT,QAAS,IACX,CAAC,EAED,OAAAD,EAAU,IAAM,CACd,MAAMM,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,IAAOY,EAAQd",
6
+ "names": ["useEffect", "useState", "useCountDown", "endTime", "time", "setTime", "format", "date", "countDownDate", "timer", "now", "distance", "days", "hours", "minutes", "seconds", "useCountDown_default"]
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
+ import{CpnBanner as t}from"../cpn-components/index.js";const e={title:"Cpn-Components/CpnBanner",component:t,parameters:{viewport:{defaultViewport:"tablet"}},tags:["autodocs"]};var n=e;const s={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"}}}};export{s as Default,n as default};
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": "AAEA,OAAS,aAAAA,MAAiB,6BAE1B,MAAMC,EAAO,CACX,MAAO,2BACP,UAAWD,EACX,WAAY,CAEV,SAAU,CAAE,gBAAiB,QAAS,CACxC,EACA,KAAM,CAAC,UAAU,CACnB,EAEA,IAAOE,EAAQD,EAIR,MAAME,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", "meta", "cpnBanner_stories_default", "Default"]
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
+ import{CpnCountDown as t}from"../cpn-components/index.js";const o={title:"Cpn-Components/CpnCountDown",component:t,parameters:{layout:"centered"},tags:["autodocs"]};var n=o;const r={args:{endTime:"2025-06-30T00:00:00"}};export{r as Default,n as default};
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": "AAEA,OAAS,gBAAAA,MAAoB,6BAE7B,MAAMC,EAAO,CACX,MAAO,8BACP,UAAWD,EACX,WAAY,CACV,OAAQ,UACV,EACA,KAAM,CAAC,UAAU,CACnB,EAEA,IAAOE,EAAQD,EAIR,MAAME,EAAiB,CAC5B,KAAM,CACJ,QAAS,qBACX,CACF",
6
+ "names": ["CpnCountDown", "meta", "cpnCountdown_stories_default", "Default"]
7
+ }