Some checks failed
CI / build-and-test (pull_request) Failing after 1m19s
CI (.gitea/workflows/ci.yaml): lint → typecheck → vitest w/ coverage → OpenNext build → preview smoke → bundle-size budgets; Node 20; npm ci; artifacts; safe env; D1 dry-run scaffold. Budgets: add scripts/budgets.mjs; TOTAL_STATIC_MAX_BYTES and MAX_ASSET_BYTES thresholds; report top offenders; fail on breach; README CI section. Flags: add lib/flags.ts with typed booleans and safe defaults (ADMIN_ENABLED, ARTISTS_MODULE_ENABLED, UPLOADS_ADMIN_ENABLED, BOOKING_ENABLED, PUBLIC_APPOINTMENT_REQUESTS_ENABLED, REFERENCE_UPLOADS_PUBLIC_ENABLED, DEPOSITS_ENABLED, PUBLIC_DB_ARTISTS_ENABLED, ADVANCED_NAV_SCROLL_ANIMATIONS_ENABLED, STRICT_CI_GATES_ENABLED, ISR_CACHE_R2_ENABLED); robust parsing; client provider; unit tests. Wiring: gate Admin shell and admin write APIs (503 JSON on uploads and artists writes); disable booking submit and short-circuit booking mutations when off; render static Hero/Artists when advanced animations off; tests for UI and API guards. Ops: expand docs/prd/rollback-strategy.md with “Feature Flags Operations,” Cloudflare Dashboard and wrangler.toml steps, preview simulation, incident playbook, and post-toggle smoke checklist. Release: add docs/releases/2025-09-19-feature-flags-rollout.md with last-good commit, preview/production flag matrices, rollback notes, and smoke results; link from rollback doc. Chore: fix TS issues (gift-cards boolean handling, Lenis options, tailwind darkMode), remove next-on-pages peer conflict, update package.json scripts, configure Gitea act_runner label, open draft PR to trigger CI. Refs: CI-1, FF-1, FF-2, FF-3, OPS-1 Impact: defaults preserve current behavior; no runtime changes unless flags flipped
1 line
29 KiB
JavaScript
1 line
29 KiB
JavaScript
(()=>{var e={};e.id=2033,e.ids=[2033],e.modules={72934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},55315:e=>{"use strict";e.exports=require("path")},17360:e=>{"use strict";e.exports=require("url")},99705:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GlobalError:()=>l.a,__next_app__:()=>h,originalPathname:()=>x,pages:()=>d,routeModule:()=>m,tree:()=>c}),r(71978),r(40656),r(40509),r(70546);var i=r(30170),a=r(45002),s=r(83876),l=r.n(s),n=r(66299),o={};for(let e in n)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(o[e]=()=>n[e]);r.d(t,o);let c=["",{children:["artists",{children:["[id]",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(r.bind(r,71978)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/artists/[id]/page.tsx"]}]},{}]},{metadata:{icon:[async e=>(await Promise.resolve().then(r.bind(r,57481))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(r.bind(r,40656)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/layout.tsx"],error:[()=>Promise.resolve().then(r.bind(r,40509)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/error.tsx"],"not-found":[()=>Promise.resolve().then(r.bind(r,70546)),"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/not-found.tsx"],metadata:{icon:[async e=>(await Promise.resolve().then(r.bind(r,57481))).default(e)],apple:[],openGraph:[],twitter:[],manifest:void 0}}],d=["/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/artists/[id]/page.tsx"],x="/artists/[id]/page",h={require:r,loadChunk:()=>Promise.resolve()},m=new i.AppPageRouteModule({definition:{kind:a.x.APP_PAGE,page:"/artists/[id]/page",pathname:"/artists/[id]",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:c}})},10232:(e,t,r)=>{Promise.resolve().then(r.bind(r,71572))},403:(e,t,r)=>{Promise.resolve().then(r.bind(r,54528))},15784:(e,t,r)=>{Promise.resolve().then(r.bind(r,37614))},9891:(e,t,r)=>{Promise.resolve().then(r.bind(r,65515)),Promise.resolve().then(r.bind(r,66696)),Promise.resolve().then(r.bind(r,39261))},36033:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,63642,23)),Promise.resolve().then(r.t.bind(r,87586,23)),Promise.resolve().then(r.t.bind(r,47838,23)),Promise.resolve().then(r.t.bind(r,58057,23)),Promise.resolve().then(r.t.bind(r,77741,23)),Promise.resolve().then(r.t.bind(r,13118,23))},71572:(e,t,r)=>{"use strict";r.d(t,{default:()=>u});var i=r(97247),a=r(19898),s=r(58797),l=r(41755),n=r(36634),o=r(28964),c=r(58579);function d({children:e}){return i.jsx(i.Fragment,{children:e})}var x=r(57797),h=r(17818);let m=({...e})=>{let{theme:t="system"}=(0,x.F)();return i.jsx(h.x7,{theme:t,className:"toaster group",style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)"},...e})};function u({children:e,initialFlags:t}){let[r]=(0,o.useState)(()=>new s.S({defaultOptions:{queries:{staleTime:6e4,retry:(e,t)=>!(t?.status>=400&&t?.status<500)&&e<3}}}));return i.jsx(a.SessionProvider,{children:(0,i.jsxs)(l.aH,{client:r,children:[i.jsx(c.OH,{value:t,children:i.jsx(o.Suspense,{fallback:i.jsx("div",{children:"Loading..."}),children:(0,i.jsxs)(d,{children:[e,i.jsx(m,{})]})})}),i.jsx(n.t,{initialIsOpen:!1})]})})}r(4047)},54528:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>a});var i=r(97247);function a({error:e,reset:t}){return i.jsx("div",{className:"min-h-[50vh] flex items-center justify-center p-8",children:(0,i.jsxs)("div",{className:"text-center space-y-3",children:[i.jsx("h2",{className:"text-xl font-semibold",children:"Something went wrong"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:e?.message||"An unexpected error occurred."}),i.jsx("button",{onClick:()=>t(),className:"inline-flex items-center rounded-md border px-3 py-1.5 text-sm hover:bg-accent",children:"Try again"})]})})}r(28964)},37614:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>a});var i=r(97247);function a(){return i.jsx("div",{className:"min-h-[50vh] flex items-center justify-center p-8",children:(0,i.jsxs)("div",{className:"text-center space-y-3",children:[i.jsx("h2",{className:"text-xl font-semibold",children:"404 - Page Not Found"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"The page you are looking for does not exist or has been moved."}),i.jsx("a",{href:"/",className:"inline-flex items-center rounded-md border px-3 py-1.5 text-sm hover:bg-accent",children:"Go home"})]})})}},65515:(e,t,r)=>{"use strict";r.d(t,{ArtistPortfolio:()=>g});var i=r(97247),a=r(28964),s=r(58053),l=r(88964),n=r(79906),o=r(77940),c=r(74974),d=r(50820),x=r(9527),h=r(66498);let m=(0,r(26323).Z)("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]),u={1:{id:"1",name:"Christy Lumberg",specialty:"Expert Cover-Up & Illustrative Specialist",image:"/artists/christy-lumberg-portrait.jpg",bio:"With over 22 years of experience, Christy Lumberg is a powerhouse in the tattoo industry, known for her exceptional cover-ups, tattoo makeovers, and bold illustrative designs. Whether you're looking to transform old ink, refresh a faded piece, or bring a brand-new vision to life, Christy's precision and artistry deliver next-level results.",experience:"22+ years",rating:5,reviews:245,location:"United Tattoo - Fountain & Colorado Springs",availability:"Available",styles:["Cover-ups","Illustrative","Black & Grey","Color Work","Tattoo Makeovers"],instagram:"@inkmama719",portfolio:[{id:1,image:"/artists/christy-lumberg-work-1.jpg",title:"Cover-Up Transformation",category:"Cover-ups"},{id:2,image:"/artists/christy-lumberg-work-2.jpg",title:"Illustrative Design",category:"Illustrative"},{id:3,image:"/artists/christy-lumberg-work-3.jpg",title:"Black & Grey Masterpiece",category:"Black & Grey"},{id:4,image:"/artists/christy-lumberg-work-4.jpg",title:"Vibrant Color Work",category:"Color Work"},{id:5,image:"/black-and-grey-portrait-tattoo-masterpiece.jpg",title:"Portrait Mastery",category:"Black & Grey"},{id:6,image:"/realistic-portrait-tattoo-artwork.jpg",title:"Realistic Portrait",category:"Illustrative"},{id:7,image:"/botanical-nature-tattoo-artwork.jpg",title:"Botanical Design",category:"Color Work"},{id:8,image:"/geometric-abstract-tattoo-artwork.jpg",title:"Geometric Art",category:"Illustrative"},{id:9,image:"/watercolor-illustrative-tattoo-artwork.jpg",title:"Watercolor Style",category:"Color Work"},{id:10,image:"/fine-line-botanical-tattoo-elegant.jpg",title:"Fine Line Botanical",category:"Illustrative"},{id:11,image:"/realistic-animal-tattoo-detailed-shading.jpg",title:"Animal Portrait",category:"Black & Grey"},{id:12,image:"/traditional-neo-traditional-tattoo-artwork.jpg",title:"Neo-Traditional",category:"Color Work"},{id:13,image:"/photorealistic-portrait-tattoo-black-and-grey.jpg",title:"Photorealistic Portrait",category:"Black & Grey"},{id:14,image:"/hyperrealistic-eye-tattoo-design.jpg",title:"Hyperrealistic Eye",category:"Black & Grey"},{id:15,image:"/delicate-fine-line-flower-tattoo.jpg",title:"Delicate Florals",category:"Illustrative"},{id:16,image:"/professional-tattoo-artist-working-on-detailed-tat.jpg",title:"Detailed Work",category:"Cover-ups"},{id:17,image:"/fine-line-minimalist-tattoo-artwork.jpg",title:"Minimalist Design",category:"Illustrative"},{id:18,image:"/simple-line-work-tattoo-artistic.jpg",title:"Line Work Art",category:"Black & Grey"},{id:19,image:"/minimalist-geometric-tattoo-design.jpg",title:"Geometric Minimalism",category:"Illustrative"},{id:20,image:"/abstract-geometric-shapes.png",title:"Abstract Geometry",category:"Color Work"}],testimonials:[{name:"Maria S.",rating:5,text:"Christy transformed my old tattoo into something absolutely stunning! Her cover-up work is incredible and exceeded all my expectations."},{name:"David L.",rating:5,text:"22 years of experience really shows. Christy is a true artist and professional. The Ink Mama knows her craft!"},{name:"Sarah K.",rating:5,text:"As the CEO of United Tattoo, Christy has created an amazing environment. Her illustrative work is phenomenal!"}]}};function g({artistId:e}){let[t,r]=(0,a.useState)("All"),[g,p]=(0,a.useState)(null),[v,f]=(0,a.useState)(0),b=u[e];if(!b)return(0,i.jsxs)("div",{className:"container mx-auto px-4 py-20 text-center",children:[i.jsx("h1",{className:"text-2xl font-bold mb-4",children:"Artist not found"}),i.jsx(s.z,{asChild:!0,children:i.jsx(n.default,{href:"/artists",children:"Back to Artists"})})]});let y=["All",...Array.from(new Set(b.portfolio.map(e=>e.category)))],j="All"===t?b.portfolio:b.portfolio.filter(e=>e.category===t);return(0,i.jsxs)("div",{className:"min-h-screen bg-black text-white",children:[i.jsx("div",{className:"fixed top-6 right-8 z-40",children:i.jsx(s.z,{asChild:!0,variant:"ghost",className:"text-white hover:bg-white/20 border border-white/30 backdrop-blur-sm bg-black/40 hover:text-white",children:(0,i.jsxs)(n.default,{href:"/artists",children:[i.jsx(o.Z,{className:"w-4 h-4 mr-2"}),"Back to Artists"]})})}),(0,i.jsxs)("section",{className:"relative h-screen overflow-hidden -mt-20",children:[i.jsx("div",{className:"absolute left-0 top-0 w-1/2 h-full",style:{transform:`translateY(${.3*v}px)`},children:(0,i.jsxs)("div",{className:"relative w-full h-full",children:[i.jsx("img",{src:b.image||"/placeholder.svg",alt:b.name,className:"w-full h-full object-cover"}),i.jsx("div",{className:"absolute inset-0 bg-gradient-to-r from-transparent to-black/50"}),i.jsx("div",{className:"absolute top-28 left-8",children:i.jsx(l.C,{variant:"Available"===b.availability?"default":"secondary",className:"bg-white/20 backdrop-blur-sm text-white border-white/30",children:b.availability})})]})}),i.jsx("div",{className:"absolute right-0 top-0 w-1/2 h-full flex items-center",style:{transform:`translateY(${-.2*v}px)`},children:(0,i.jsxs)("div",{className:"px-16 py-20",children:[(0,i.jsxs)("div",{className:"mb-8",children:[i.jsx("h1",{className:"font-playfair text-6xl font-bold mb-4 text-balance leading-tight",children:b.name}),i.jsx("p",{className:"text-2xl text-gray-300 mb-6",children:b.specialty}),(0,i.jsxs)("div",{className:"flex items-center space-x-2 mb-6",children:[i.jsx(c.Z,{className:"w-6 h-6 fill-yellow-400 text-yellow-400"}),i.jsx("span",{className:"font-medium text-xl",children:b.rating}),(0,i.jsxs)("span",{className:"text-gray-400",children:["(",b.reviews," reviews)"]})]})]}),i.jsx("p",{className:"text-gray-300 mb-8 leading-relaxed text-lg max-w-lg",children:b.bio}),(0,i.jsxs)("div",{className:"grid grid-cols-1 gap-4 mb-8",children:[(0,i.jsxs)("div",{className:"flex items-center space-x-3",children:[i.jsx(d.Z,{className:"w-5 h-5 text-gray-400"}),(0,i.jsxs)("span",{className:"text-gray-300",children:[b.experience," experience"]})]}),(0,i.jsxs)("div",{className:"flex items-center space-x-3",children:[i.jsx(x.Z,{className:"w-5 h-5 text-gray-400"}),i.jsx("span",{className:"text-gray-300",children:b.location})]}),(0,i.jsxs)("div",{className:"flex items-center space-x-3",children:[i.jsx(h.Z,{className:"w-5 h-5 text-gray-400"}),i.jsx("span",{className:"text-gray-300",children:b.instagram})]})]}),(0,i.jsxs)("div",{className:"mb-8",children:[i.jsx("h3",{className:"font-semibold mb-4 text-lg",children:"Specializes in:"}),i.jsx("div",{className:"flex flex-wrap gap-2",children:b.styles.map(e=>i.jsx(l.C,{variant:"outline",className:"border-white/30 text-white",children:e},e))})]}),(0,i.jsxs)("div",{className:"flex space-x-4",children:[i.jsx(s.z,{asChild:!0,size:"lg",className:"bg-white text-black hover:bg-gray-100 !text-black hover:!text-black",children:i.jsx(n.default,{href:`/artists/${b.id}/book`,children:"Book Appointment"})}),i.jsx(s.z,{variant:"outline",size:"lg",className:"border-white/30 text-white hover:bg-white hover:text-black bg-transparent",children:"Get Consultation"})]})]})}),i.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-32 bg-black",children:i.jsx("svg",{className:"absolute top-0 left-0 w-full h-32",viewBox:"0 0 1200 120",preserveAspectRatio:"none",children:i.jsx("path",{d:"M0,0 C300,120 900,120 1200,0 L1200,120 L0,120 Z",fill:"black"})})})]}),i.jsx("section",{className:"relative bg-black",children:(0,i.jsxs)("div",{className:"flex min-h-screen",children:[i.jsx("div",{className:"w-2/3 p-8 overflow-y-auto",children:i.jsx("div",{className:"grid grid-cols-2 gap-6",children:j.map((e,t)=>i.jsx("div",{className:"group cursor-pointer",onClick:()=>p(e.id),children:(0,i.jsxs)("div",{className:"relative overflow-hidden bg-gray-900 aspect-[4/5] hover:scale-[1.02] transition-all duration-500",children:[i.jsx("img",{src:e.image||"/placeholder.svg",alt:e.title,className:"w-full h-full object-cover group-hover:scale-105 transition-transform duration-700"}),i.jsx("div",{className:"absolute inset-0 bg-black/60 opacity-0 group-hover:opacity-100 transition-all duration-500 flex items-center justify-center",children:(0,i.jsxs)("div",{className:"text-center",children:[i.jsx(m,{className:"w-8 h-8 text-white mb-2 mx-auto"}),i.jsx("p",{className:"text-white font-medium",children:e.title})]})})]})},e.id))})}),i.jsx("div",{className:"w-1/3 sticky top-0 h-screen flex flex-col justify-center p-12 bg-black border-l border-white/10",children:(0,i.jsxs)("div",{children:[(0,i.jsxs)("div",{className:"flex items-baseline justify-between mb-8",children:[i.jsx("h2",{className:"font-playfair text-5xl font-bold text-balance",children:"Featured Work"}),i.jsx("span",{className:"text-6xl font-light text-gray-500",children:j.length})]}),(0,i.jsxs)("div",{className:"mb-12",children:[i.jsx(s.z,{variant:"outline",className:"border-white/30 text-white hover:bg-white hover:text-black bg-transparent mb-8",children:"View All"}),(0,i.jsxs)("p",{className:"text-gray-300 leading-relaxed text-lg mb-8",children:["Explore ",b.name,"'s portfolio showcasing ",b.experience," of expertise in"," ",b.specialty.toLowerCase(),". Each piece represents a unique collaboration between artist and client."]})]}),(0,i.jsxs)("div",{className:"mb-8",children:[i.jsx("h3",{className:"font-semibold mb-4 text-lg",children:"Filter by Style"}),i.jsx("div",{className:"flex flex-col gap-2",children:y.map(e=>(0,i.jsxs)(s.z,{variant:"ghost",onClick:()=>r(e),className:`justify-start text-left hover:bg-white/10 ${t===e?"text-white bg-white/10":"text-gray-400 hover:text-white"}`,children:[e,i.jsx("span",{className:"ml-auto text-sm",children:"All"===e?b.portfolio.length:b.portfolio.filter(t=>t.category===e).length})]},e))})]}),i.jsx("div",{className:"border-t border-white/10 pt-8",children:(0,i.jsxs)("div",{className:"grid grid-cols-2 gap-4 text-center",children:[(0,i.jsxs)("div",{children:[i.jsx("div",{className:"text-2xl font-bold",children:b.portfolio.length}),i.jsx("div",{className:"text-sm text-gray-400",children:"Pieces"})]}),(0,i.jsxs)("div",{children:[i.jsx("div",{className:"text-2xl font-bold",children:b.rating}),i.jsx("div",{className:"text-sm text-gray-400",children:"Rating"})]})]})})]})})]})}),(0,i.jsxs)("section",{className:"relative py-32 bg-black border-t border-white/10 overflow-hidden",children:[i.jsx("div",{className:"container mx-auto px-8 mb-16",children:(0,i.jsxs)("div",{className:"text-center",children:[i.jsx("h2",{className:"font-playfair text-5xl font-bold mb-4 text-balance",children:"What Clients Say"}),i.jsx("div",{className:"w-16 h-0.5 bg-white mx-auto"})]})}),i.jsx("div",{className:"relative",children:i.jsx("div",{className:"flex animate-marquee-smooth space-x-16 hover:pause-smooth",children:[...b.testimonials,...b.testimonials,...b.testimonials,...b.testimonials].map((e,t)=>i.jsx("div",{className:"flex-shrink-0 min-w-[500px] px-8",children:(0,i.jsxs)("div",{className:"relative group",children:[i.jsx("div",{className:"absolute inset-0 bg-gradient-radial from-white/8 via-white/3 to-transparent rounded-2xl blur-lg scale-110"}),i.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-white/5 to-transparent rounded-2xl"}),(0,i.jsxs)("div",{className:"relative bg-black/40 backdrop-blur-sm border border-white/10 rounded-2xl p-8 hover:border-white/20 transition-all duration-500 hover:bg-black/60",children:[i.jsx("div",{className:"flex items-center space-x-1 mb-4",children:[...Array(e.rating)].map((e,t)=>i.jsx(c.Z,{className:"w-4 h-4 fill-white text-white"},t))}),(0,i.jsxs)("blockquote",{className:"text-white text-xl font-light leading-relaxed mb-4 italic",children:['"',e.text,'"']}),(0,i.jsxs)("cite",{className:"text-gray-400 text-sm font-medium not-italic",children:["— ",e.name]})]})]})},t))})})]}),i.jsx("section",{className:"relative py-32 bg-black",children:i.jsx("div",{className:"container mx-auto px-8 text-center",children:(0,i.jsxs)("div",{className:"max-w-3xl mx-auto",children:[i.jsx("h2",{className:"font-playfair text-5xl font-bold mb-6 text-balance",children:"Ready to Get Started?"}),(0,i.jsxs)("p",{className:"text-gray-300 text-xl leading-relaxed mb-12",children:["Book a consultation with ",b.name," to discuss your next tattoo. Whether you're looking for a traditional piece or something with a modern twist, let's bring your vision to life."]}),(0,i.jsxs)("div",{className:"flex flex-col sm:flex-row gap-6 justify-center items-center",children:[i.jsx(s.z,{asChild:!0,size:"lg",className:"bg-white text-black hover:bg-gray-100 !text-black hover:!text-black px-12 py-4 text-lg",children:i.jsx(n.default,{href:`/artists/${b.id}/book`,children:"Book Now"})}),i.jsx(s.z,{variant:"outline",size:"lg",className:"border-white/30 text-white hover:bg-white hover:text-black bg-transparent px-12 py-4 text-lg",children:"Get Consultation"})]}),i.jsx("div",{className:"mt-16 pt-16 border-t border-white/10",children:(0,i.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-8 text-center",children:[(0,i.jsxs)("div",{children:[i.jsx("div",{className:"text-3xl font-bold mb-2",children:b.experience}),i.jsx("div",{className:"text-gray-400",children:"Experience"})]}),(0,i.jsxs)("div",{children:[(0,i.jsxs)("div",{className:"text-3xl font-bold mb-2",children:[b.reviews,"+"]}),i.jsx("div",{className:"text-gray-400",children:"Happy Clients"})]}),(0,i.jsxs)("div",{children:[(0,i.jsxs)("div",{className:"text-3xl font-bold mb-2",children:[b.rating,"/5"]}),i.jsx("div",{className:"text-gray-400",children:"Average Rating"})]})]})})]})})}),g&&i.jsx("div",{className:"fixed inset-0 bg-black/95 z-50 flex items-center justify-center p-4",onClick:()=>p(null),children:(0,i.jsxs)("div",{className:"relative max-w-6xl max-h-full",children:[i.jsx("img",{src:j.find(e=>e.id===g)?.image||"/placeholder.svg",alt:"Portfolio piece",className:"max-w-full max-h-full object-contain"}),i.jsx(s.z,{variant:"ghost",size:"sm",className:"absolute top-4 right-4 text-white hover:bg-white/20 text-2xl",onClick:()=>p(null),children:"✕"})]})})]})}},58579:(e,t,r)=>{"use strict";r.d(t,{OH:()=>h,ye:()=>m});var i=r(97247),a=r(28964);let s=Object.freeze({ADMIN_ENABLED:!0,ARTISTS_MODULE_ENABLED:!0,UPLOADS_ADMIN_ENABLED:!0,BOOKING_ENABLED:!0,PUBLIC_APPOINTMENT_REQUESTS_ENABLED:!1,REFERENCE_UPLOADS_PUBLIC_ENABLED:!1,DEPOSITS_ENABLED:!1,PUBLIC_DB_ARTISTS_ENABLED:!1,ADVANCED_NAV_SCROLL_ANIMATIONS_ENABLED:!0,STRICT_CI_GATES_ENABLED:!0,ISR_CACHE_R2_ENABLED:!0}),l=Object.keys(s),n=new Set(l),o=new Set,c=null;function d(e={}){if(e.refresh&&(c=null),c)return c;let t=function(){let e={};for(let t of l){let r=function(e){let t=function(){if("undefined"!=typeof globalThis)return globalThis.__UNITED_TATTOO_RUNTIME_FLAGS__}();return t&&void 0!==t[e]?t[e]:"undefined"!=typeof process&&process.env&&void 0!==process.env[e]?process.env[e]:void 0}(t),i=function(e,t){if("boolean"==typeof e)return e;if("string"==typeof e){let t=e.trim().toLowerCase();if("true"===t||"1"===t)return!0;if("false"===t||"0"===t)return!1}return t}(r,s[t]);null!=r&&("string"!=typeof r||""!==r.trim())||o.has(t)||(o.add(t),"undefined"!=typeof console&&console.warn(`[flags] ${t} not provided; defaulting to ${i}. Set env var to override.`)),e[t]=i}return Object.freeze(e)}();return c=t,t}new Proxy({},{get:(e,t)=>{if(n.has(t))return d()[t]},ownKeys:()=>l,getOwnPropertyDescriptor:(e,t)=>{if(n.has(t))return{configurable:!0,enumerable:!0,value:d()[t]}}});let x=(0,a.createContext)(s);function h({value:e,children:t}){return i.jsx(x.Provider,{value:e,children:t})}function m(e){return(0,a.useContext)(x)[e]}},88964:(e,t,r)=>{"use strict";r.d(t,{C:()=>o});var i=r(97247);r(28964);var a=r(69008),s=r(87972),l=r(25008);let n=(0,s.j)("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});function o({className:e,variant:t,asChild:r=!1,...s}){let o=r?a.g7:"span";return i.jsx(o,{"data-slot":"badge",className:(0,l.cn)(n({variant:t}),e),...s})}},58053:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,z:()=>o});var i=r(97247);r(28964);var a=r(69008),s=r(87972),l=r(25008);let n=(0,s.j)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function o({className:e,variant:t,size:r,asChild:s=!1,...o}){let c=s?a.g7:"button";return i.jsx(c,{"data-slot":"button",className:(0,l.cn)(n({variant:t,size:r,className:e})),...o})}},25008:(e,t,r)=>{"use strict";r.d(t,{cn:()=>s});var i=r(61929),a=r(35770);function s(...e){return(0,a.m6)((0,i.W)(e))}},77940:(e,t,r)=>{"use strict";r.d(t,{Z:()=>i});let i=(0,r(26323).Z)("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},76442:(e,t,r)=>{"use strict";r.d(t,{Z:()=>i});let i=(0,r(26323).Z)("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]])},50820:(e,t,r)=>{"use strict";r.d(t,{Z:()=>i});let i=(0,r(26323).Z)("Calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]])},66498:(e,t,r)=>{"use strict";r.d(t,{Z:()=>i});let i=(0,r(26323).Z)("Instagram",[["rect",{width:"20",height:"20",x:"2",y:"2",rx:"5",ry:"5",key:"2e1cvw"}],["path",{d:"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z",key:"9exkf1"}],["line",{x1:"17.5",x2:"17.51",y1:"6.5",y2:"6.5",key:"r4j83e"}]])},9527:(e,t,r)=>{"use strict";r.d(t,{Z:()=>i});let i=(0,r(26323).Z)("MapPin",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]])},6683:(e,t,r)=>{"use strict";r.d(t,{Z:()=>i});let i=(0,r(26323).Z)("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]])},74974:(e,t,r)=>{"use strict";r.d(t,{Z:()=>i});let i=(0,r(26323).Z)("Star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]])},37013:(e,t,r)=>{"use strict";r.d(t,{Z:()=>i});let i=(0,r(26323).Z)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},71978:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});var i=r(72051),a=r(94604);let s=(0,r(45347).createProxy)(String.raw`/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/components/artist-portfolio.tsx#ArtistPortfolio`);var l=r(86006);function n({params:e}){return(0,i.jsxs)("main",{className:"min-h-screen",children:[i.jsx(a.W,{}),i.jsx("div",{className:"pt-16",children:i.jsx(s,{artistId:e.id})}),i.jsx(l.$,{})]})}},40509:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});let i=(0,r(45347).createProxy)(String.raw`/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/error.tsx#default`)},40656:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>m,dynamic:()=>h,metadata:()=>x});var i=r(72051),a=r(54233),s=r.n(a),l=r(73372),n=r.n(l),o=r(26269);let c=(0,r(45347).createProxy)(String.raw`/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/ClientLayout.tsx#default`);var d=r(93470);r(67272);let x={title:"United Tattoo - Professional Tattoo Studio",description:"Book appointments with our talented artists and explore stunning tattoo portfolios at United Tattoo.",generator:"v0.app"},h="force-dynamic";function m({children:e}){let t=(0,d.L6)({refresh:!0});return i.jsx("html",{lang:"en",className:`${s().variable} ${n().variable}`,children:i.jsx("body",{className:"font-sans antialiased",children:i.jsx(o.Suspense,{fallback:null,children:i.jsx(c,{initialFlags:t,children:e})})})})}},70546:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});let i=(0,r(45347).createProxy)(String.raw`/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/not-found.tsx#default`)},93470:(e,t,r)=>{"use strict";r.d(t,{L6:()=>o,vU:()=>c});let i=Object.freeze({ADMIN_ENABLED:!0,ARTISTS_MODULE_ENABLED:!0,UPLOADS_ADMIN_ENABLED:!0,BOOKING_ENABLED:!0,PUBLIC_APPOINTMENT_REQUESTS_ENABLED:!1,REFERENCE_UPLOADS_PUBLIC_ENABLED:!1,DEPOSITS_ENABLED:!1,PUBLIC_DB_ARTISTS_ENABLED:!1,ADVANCED_NAV_SCROLL_ANIMATIONS_ENABLED:!0,STRICT_CI_GATES_ENABLED:!0,ISR_CACHE_R2_ENABLED:!0}),a=Object.keys(i),s=new Set(a),l=new Set,n=null;function o(e={}){if(e.refresh&&(n=null),n)return n;let t=function(){let e={};for(let t of a){let r=function(e){let t=function(){if("undefined"!=typeof globalThis)return globalThis.__UNITED_TATTOO_RUNTIME_FLAGS__}();return t&&void 0!==t[e]?t[e]:"undefined"!=typeof process&&process.env&&void 0!==process.env[e]?process.env[e]:void 0}(t),a=function(e,t){if("boolean"==typeof e)return e;if("string"==typeof e){let t=e.trim().toLowerCase();if("true"===t||"1"===t)return!0;if("false"===t||"0"===t)return!1}return t}(r,i[t]);null!=r&&("string"!=typeof r||""!==r.trim())||l.has(t)||(l.add(t),"undefined"!=typeof console&&console.warn(`[flags] ${t} not provided; defaulting to ${a}. Set env var to override.`)),e[t]=a}return Object.freeze(e)}();return n=t,t}let c=new Proxy({},{get:(e,t)=>{if(s.has(t))return o()[t]},ownKeys:()=>a,getOwnPropertyDescriptor:(e,t)=>{if(s.has(t))return{configurable:!0,enumerable:!0,value:o()[t]}}})},54203:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ReflectAdapter",{enumerable:!0,get:function(){return r}});class r{static get(e,t,r){let i=Reflect.get(e,t,r);return"function"==typeof i?i.bind(e):i}static set(e,t,r,i){return Reflect.set(e,t,r,i)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},57481:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>a});var i=r(54564);let a=e=>[{type:"image/x-icon",sizes:"16x16",url:(0,i.fillMetadataSegment)(".",e.params,"favicon.ico")+""}]},67272:()=>{},4047:()=>{}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),i=t.X(0,[9379,5590,7598,9906,5896],()=>r(99705));module.exports=i})(); |