PageSourceSearch

https://poke-pull-point-packs.base44.app/assets/ShopPage-DcG_b2II.js

js poke-pull-point-packs.base44.app collected 2026-10-03 05:33:24 UTC 13,968 bytes, 1 lines download raw bytes

1import{r as o,R as _,b as v,j as e,m as h,A as G,d as H,E as T,B as N,C as R}from"./index-CGiBh--O.js";import{S as L}from"./shopping-bag-I7zXkT1Y.js";import{C as E}from"./circle-check-CXUXIfXW.js";import{S as M}from"./shield-DrXHD--7.js";import{T as U}from"./truck-bjqe_mWc.js";import{M as J}from"./map-pin-CI5R9VAu.js";const B=10,A=[{id:"premium",name:"Premium Pack",price:24.99,emoji:"🔥",color:"from-orange-500/20 to-red-600/10",borderColor:"border-orange-500/40",glowColor:"hsla(25,90%,55%,0.35)",badge:null,packImage:null,includes:["10 Cards","2 Hits or better guaranteed","Booster pack in every pack","High chance at Ultra Rares","Great value for collectors","Chase-worthy pulls"]},{id:"chase",name:"Chase Pack",price:49.99,emoji:"⚡",color:"from-primary/25 to-yellow-600/10",borderColor:"border-primary/60",glowColor:"hsla(43,96%,52%,0.45)",badge:"⭐ Most Popular",packImage:null,includes:["10 Cards","3 Hits or better guaranteed","Booster pack in every pack","Best chance at top-tier hits","Graded slabs included!","Big pulls. Big thrills."]},{id:"elite",name:"Elite Pack",price:100,emoji:"💎",color:"from-purple-600/20 to-primary/10",borderColor:"border-purple-400/50",glowColor:"hsla(270,70%,60%,0.35)",badge:null,packImage:null,includes:["10 Cards","4 Hits or better guaranteed","Booster pack in every pack","Highest chance at premium slabs (PSA/CGC/Beckett)","Ultra & Secret Rare heavy","Designed for serious collectors","Only bangers. No filler."]}],I=["Pack","Shipping","Payment"];function Q(){const[i,u]=o.useState(0),[c,y]=o.useState(null),[m,b]=o.useState({}),[j,w]=o.useState(!0),[r,$]=o.useState({full_name:"",email:"",phone:"",address_line1:"",address_line2:"",city:"",state:"",zip:""}),[k,g]=o.useState(!1),[x,S]=o.useState({}),[C,f]=o.useState(null);_.useEffect(()=>{v.analytics.track("shop_page_viewed"),(async()=>{w(!0);const t=await v.entities.Order.filter({status:["pending_payment","paid","shipped","delivered"]}),s={};for(const l of A)s[l.id]=t.filter(p=>p.pack_name===l.name).length;b(s),w(!1)})()},[]);const F=a=>Math.max(0,B-(m[a.id]??0)),n=a=>{$(t=>({...t,[a.target.name]:a.target.value})),S(t=>({...t,[a.target.name]:""}))},O=()=>{const a=["full_name","email","address_line1","city","state","zip"],t={};return a.forEach(s=>{r[s].trim()||(t[s]="Required")}),r.email&&!/\S+@\S+\.\S+/.test(r.email)&&(t.email="Invalid email"),S(t),Object.keys(t).length===0},z=async()=>{if(O()){if(f(null),g(!0),window.self!==window.top){f("Checkout works only from the published app. Please open the app in a new tab to complete your purchase."),g(!1);return}try{const a=await v.functions.invoke("createPackCheckout",{packId:c.id,...r});a.data.url?window.location.href=a.data.url:(f(a.data.error||"Failed to start checkout"),g(!1))}catch(a){f(a.message||"Something went wrong"),g(!1)}}},P=a=>{y(a),u(1)};return e.jsxs("div",{className:"max-w-5xl mx-auto px-4 sm:px-6 py-10 space-y-8",children:[e.jsxs(h.div,{initial:{opacity:0,y:-12},animate:{opacity:1,y:0},className:"text-center space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-center gap-3 mb-2",children:[e.jsx("div",{className:"w-12 h-12 rounded-xl bg-primary flex items-center justify-center shadow-lg",style:{boxShadow:"0 0 20px hsla(43,96%,52%,0.5)"},children:e.jsx("span",{className:"text-2xl font-heading font-bold text-black",children:"P"})}),e.jsxs("div",{className:"text-left",children:[e.jsx("h1",{className:"text-4xl font-heading leading-none",style:{letterSpacing:"0.05em"},children:e.jsx("span",{className:"gradient-text",children:"Pull Point"})}),e.jsx("p",{className:"text-xl font-heading text-foreground/80 leading-none",children:"Packs"})]})]}),e.jsx("p",{className:"text-primary font-heading text-lg tracking-widest uppercase",children:"Rip. Collect. Pull Point. Repeat."}),e.jsx("p",{className:"text-xs text-destructive font-semibold",children:"🚫 US orders only — no international shipping."}),e.jsxs("a",{href:"https://www.mercari.com/u/pullpoint/?sv=0",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 mt-1 px-4 py-2 rounded-full bg-secondary/40 border border-border hover:border-primary/40 hover:bg-primary/10 text-sm text-muted-foreground hover:text-primary transition-all",children:[e.jsx(L,{className:"w-4 h-4"})," Also shop on Mercari"]})]}),e.jsx(h.div,{initial:{opacity:0,y:10}
1,animate:{opacity:1,y:0},transition:{delay:.1},className:"rounded-2xl overflow-hidden border border-primary/30 shadow-xl",style:{boxShadow:"0 0 40px hsla(43,96%,52%,0.15)"},children:e.jsx("img",{src:"https://media.base44.com/images/public/69e8de213fc485d5d1ae10cc/304c9e97a_generated_image.png",alt:"Pull Point Packs - Rip. Collect. Pull Point. Repeat.",className:"w-full object-cover"})}),e.jsx("div",{className:"flex items-center justify-center gap-2",children:I.map((a,t)=>e.jsxs(_.Fragment,{children:[e.jsxs("div",{className:`flex items-center gap-1.5 text-xs font-semibold px-3 py-1.5 rounded-full transition-all border ${t===i?"bg-primary text-black border-primary":t<i?"bg-primary/20 text-primary border-primary/30":"bg-muted text-muted-foreground border-transparent"}`,children:[t<i&&e.jsx(E,{className:"w-3 h-3"}),a]}),t<I.length-1&&e.jsx("div",{className:`h-px w-6 rounded ${t<i?"bg-primary":"bg-border"}`})]},a))}),e.jsxs(G,{mode:"wait",children:[i===0&&e.jsxs(h.div,{initial:{opacity:0,x:30},animate:{opacity:1,x:0},exit:{opacity:0,x:-30},className:"space-y-8",children:[e.jsx("div",{className:"flex flex-wrap justify-center gap-3",children:[{icon:M,text:"Guaranteed Hit in Every Pack"},{icon:H,text:"Fair & Transparent Odds"},{icon:T,text:"Real Cards. Real Value."},{icon:U,text:"Fast & Secure Shipping"}].map(({icon:a,text:t})=>e.jsxs("div",{className:"flex items-center gap-2 bg-secondary/50 border border-border px-3 py-1.5 rounded-full text-xs text-muted-foreground",children:[e.jsx(a,{className:"w-3.5 h-3.5 text-primary flex-shrink-0"}),t]},t))}),e.jsxs("div",{className:"bg-gradient-to-r from-primary/20 via-primary/10 to-primary/20 border border-primary/40 rounded-2xl p-4 text-center",style:{boxShadow:"0 0 30px hsla(43,96%,52%,0.15)"},children:[e.jsx("p",{className:"font-heading text-xl text-primary tracking-wide",children:"🏆 GRADED SLABS ARE INCLUDED!"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"Pull PSA, CGC & Beckett graded cards in select packs!"})]}),e.jsxs("div",{className:"bg-gradient-to-r from-primary/20 via-primary/30 to-primary/20 border-2 border-primary/70 rounded-2xl p-6 text-center space-y-2",style:{boxShadow:"0 0 40px hsla(43,96%,52%,0.3)"},children:[e.jsx("p",{className:"text-5xl",children:"🎉"}),e.jsx("h2",{className:"text-3xl font-heading gradient-text tracking-wide",children:"Packs Are Live — Buy Now!"}),e.jsx("p",{className:"text-muted-foreground text-sm max-w-md mx-auto",children:"Grab your mystery packs now — orders ship in the order they're received. Limited inventory per pack!"}),e.jsx("p",{className:"text-xs text-primary font-semibold uppercase tracking-widest mt-1",children:"Buy yours below"})]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:A.map((a,t)=>{const s=F(a),l=s===0;return e.jsxs(h.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:t*.1},className:`relative bg-card border rounded-2xl overflow-hidden gold-border transition-all duration-300 ${l?"opacity-60 cursor-not-allowed":"cursor-pointer hover:scale-105"} ${a.borderColor}`,style:{boxShadow:`0 4px 30px ${a.glowColor}`},onClick:()=>!l&&P(a),children:[l&&e.jsx("div",{className:"absolute inset-0 bg-black/50 z-20 flex items-center justify-center rounded-2xl",children:e.jsx("div",{className:"bg-destructive text-white font-heading text-xl px-6 py-2 rounded-full rotate-[-10deg] shadow-lg",children:"SOLD OUT"})}),a.badge&&!l&&e.jsx("div",{className:"absolute top-3 right-3 bg-primary text-black text-[10px] font-heading font-bold px-2 py-0.5 rounded-full z-10",children:a.badge}),!l&&s<=3&&e.jsxs("div",{className:"absolute top-3 left-3 bg-destructive text-white text-[10px] font-heading font-bold px-2 py-0.5 rounded-full z-10",children:["Only ",s," left!"]}),e.jsxs("div",{className:`bg-gradient-to-br ${a.color} p-5 text-center relative overflow-hidden`,children:[e.jsx("div",{className:"relative mx-auto mb-3",style:{width:110,height:150},children:e.jsxs("div",{className:`w-full h-full rounded-xl bg-gradient-to-b ${a.color} border ${a.borderColor} flex flex-col items-center justify-between p-2 shadow-xl`,style:{boxShadow:`0 0 24px ${a.glowColor}`}
1,children:[e.jsx("div",{className:"w-full flex items-center justify-between",children:e.jsxs("div",{className:"bg-black/60 rounded-full px-1.5 py-0.5 flex items-center gap-1",children:[e.jsx("div",{className:"w-3 h-3 rounded-full bg-primary flex items-center justify-center",children:e.jsx("span",{className:"text-[6px] font-heading font-bold text-black",children:"P"})}),e.jsxs("span",{className:"text-[7px] font-heading text-primary leading-none",children:["Pull",e.jsx("br",{}),"Points"]})]})}),e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsx("span",{className:"text-4xl drop-shadow-lg",children:a.emoji})}),e.jsx("div",{className:"w-full bg-black/70 rounded-lg py-1 text-center",children:e.jsx("p",{className:"font-heading text-[9px] text-primary tracking-widest uppercase leading-none",children:a.name})})]})}),e.jsx("h2",{className:"text-2xl font-heading tracking-wide",children:a.name}),e.jsxs("p",{className:"text-4xl font-heading font-bold text-primary mt-1",children:["$",a.price.toFixed(2)]})]}),e.jsxs("div",{className:"p-5 space-y-3",children:[e.jsx("ul",{className:"space-y-2",children:a.includes.map((p,D)=>e.jsxs("li",{className:"flex items-start gap-2 text-xs",children:[e.jsx(E,{className:"w-3.5 h-3.5 text-primary flex-shrink-0 mt-0.5"}),e.jsx("span",{className:"text-muted-foreground",children:p})]},D))}),e.jsx(N,{className:"w-full mt-2 gap-2 font-heading tracking-wide",style:{boxShadow:`0 0 14px ${a.glowColor}`},disabled:l,onClick:p=>{p.stopPropagation(),l||P(a)},children:l?"Sold Out":e.jsxs(e.Fragment,{children:[" Order Now ",e.jsx(R,{className:"w-4 h-4"})]})}),!l&&!j&&e.jsxs("p",{className:"text-center text-xs text-muted-foreground mt-1",children:[s," of ",B," remaining"]})]})]},a.id)})}),e.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3",children:[{icon:"✅",title:"Our Guarantee",desc:"We back every pack we sell."},{icon:"🚫",title:"No Filler.",desc:"Just real cards."},{icon:"📦",title:"Tracked & Secure Shipping",desc:"Packed with care. Delivered safely."},{icon:"🃏",title:"Real Cards. Real Hits.",desc:"Every pack. Every time."}].map(({icon:a,title:t,desc:s})=>e.jsxs("div",{className:"bg-secondary/30 border border-border rounded-xl p-3 text-center space-y-1",children:[e.jsx("p",{className:"text-xl",children:a}),e.jsx("p",{className:"text-xs font-heading text-primary tracking-wide",children:t}),e.jsx("p",{className:"text-[11px] text-muted-foreground",children:s})]},t))}),e.jsxs("div",{className:"bg-secondary/20 border border-primary/20 rounded-xl p-4 text-center",children:[e.jsx("p",{className:"font-heading text-base text-primary",children:"📦 Every Pack Contains a Booster Pack"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"No filler. Just real cards & real hits."})]})]},"pack"),i===1&&e.jsxs(h.div,{initial:{opacity:0,x:30},animate:{opacity:1,x:0},exit:{opacity:0,x:-30},className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[e.jsx(J,{className:"w-4 h-4 text-primary"}),e.jsx("h2",{className:"font-heading text-xl",children:"Shipping Information"}),c&&e.jsxs("span",{className:"ml-auto text-sm text-primary font-heading",children:[c.name," — $",c.price.toFixed(2)]})]}),e.jsxs("div",{className:"bg-card border border-border rounded-2xl p-6 space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[e.jsx(d,{label:"Full Name *",name:"full_name",value:r.full_name,onChange:n,error:x.full_name,placeholder:"Jane Doe"}),e.jsx(d,{label:"Email *",name:"email",type:"email",value:r.email,onChange:n,error:x.email,placeholder:"[email protected]"})]}),e.jsx(d,{label:"Phone",name:"phone",type:"tel",value:r.phone,onChange:n,placeholder:"(555) 000-0000"}),e.jsx(d,{label:"Street Address *",name:"address_line1",value:r.address_line1,onChange:n,error:x.address_line1,placeholder:"123 Main St"}),e.jsx(d,{label:"Apt, Suite, etc.",name:"address_line2",value:r.address_line2,onChange:n,placeholder:"Apt 2B (optional)"}),e.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-4",children:[e.jsx("div",{className:"col-span-2 sm:col-span-1",children:e.jsx(d,{label:"City *",name:"city",value:r.city,onChange:n,error:x.city,placeholder:"New York"})}),e.jsx(d,{label:"State *",name:"state",value:r.state,onChange:n,error:x.state,placeholder:"NY"}),e.jsx(d,{label:"ZIP *",name:"zip",value:r.zip,onChange:n,error:x.zip,placeholder:"10001"})]})]}),e.jsxs("div",{className:"flex gap-3",children:[e.jsx(N,{variant:"outline",className:"flex-1",onClick:()=>u(0),children:"Back"}),e.jsx(N,{className:"flex-1 gap-2 font-heading",onClick:z,disabled:k,children:k?"Redirecting to checkout...":e.jsxs(e.Fragment,{children:["Continue to Payment ",e.jsx(R,{className:"w-4 h-4"})]})})]}),C&&e.jsx("p",{className:"text-sm text-destructive text-center",children:C})]},"shipping")]})]})}function d({label:i,name:u,value:c,onChange:y,error:m,placeholder:b,type:j="text"}){return e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-xs font-semibold text-muted-foreground",children:i}),e.jsx("input",{type:j,name:u,value:c,onChange:y,placeholder:b,className:`w-full bg-input border rounded-lg px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring transition-all ${m?"border-destructive":"border-border"}`}),m&&e.jsx("p",{className:"text-xs text-destructive",children:m})]})}
1export{Q as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.