PageSourceSearch

https://alomations.com/_next/static/chunks/50763.b0d410542b871dbb.js

js alomations.com collected 2026-10-02 01:26:07 UTC 31,006 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[50763],{10512:(e,t,r)=>{r.d(t,{A:()=>a});let a=(0,r(71847).A)("shopping-cart",[["circle",{cx:"8",cy:"21",r:"1",key:"jimo8o"}],["circle",{cx:"19",cy:"21",r:"1",key:"13723u"}],["path",{d:"M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12",key:"9zh506"}]])},22198:(e,t,r)=>{r.d(t,{A:()=>a});let a=(0,r(71847).A)("folder-plus",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]])},50763:(e,t,r)=>{r.r(t),r.d(t,{DefaultMockupsPanel:()=>Z,default:()=>Z});var a=r(95155),s=r(12115),l=r(66630),i=r(65229),n=r(61194),o=r(20063),c=r(18955),d=r(82084),u=r(46640),m=r(63405),x=r(81552),p=r(55280),h=r(59847),b=r(35299),f=r(6191);let v=["#6366f1","#8b5cf6","#ec4899","#ef4444","#f97316","#eab308","#22c55e","#06b6d4","#3b82f6","#64748b"];function y(e){let{newFolderName:t,setNewFolderName:r,newFolderColor:s,setNewFolderColor:l}=e,i=(0,c.c)("mockup");return(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-1",children:i("library.folderModal.nameLabel")}),(0,a.jsx)(d.pd,{value:t,onChange:e=>r(e.target.value),placeholder:i("library.folderModal.namePlaceholder"),fullWidth:!0,autoFocus:!0})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-2",children:i("library.folderModal.colorLabel")}),(0,a.jsx)("div",{className:"flex gap-2 flex-wrap",children:v.map(e=>(0,a.jsx)("button",{type:"button",onClick:()=>l(e),className:`w-6 h-6 rounded-full transition-all ${s===e?"ring-2 ring-offset-2 ring-[var(--foreground)]":"hover:scale-110"}`,style:{backgroundColor:e}},e))})]})]})}function g(e){let{open:t,folders:r,onClose:l,onSelect:i,isLoading:n,title:o}
1=e,u=(0,c.c)("mockup"),[x,p]=(0,s.useState)(!1),[h,b]=(0,s.useState)(""),[f,v]=(0,s.useState)("#6366f1"),y=(0,m.Si)(),g=r.length>0;s.useEffect(()=>{t||(p(!1),b(""),v("#6366f1"))},[t]);let N=async()=>{if(h.trim())try{let e=await y.mutateAsync({name:h.trim(),color:f});i(e.id),b(""),v("#6366f1"),p(!1)}catch(e){console.error("Failed to create folder:",e)}},k=y.isPending;return(0,a.jsxs)(d.aF,{open:t,onClose:l,title:o??u("library.folderModal.defaultTitle"),size:"sm",children:[!g&&(0,a.jsx)(j,{newFolderName:h,setNewFolderName:b,newFolderColor:f,setNewFolderColor:v,onCreateAndSave:N,isCreating:k,isLoading:n}),g&&(0,a.jsx)(w,{folders:r,isCreatingFolder:x,setIsCreatingFolder:p,newFolderName:h,setNewFolderName:b,newFolderColor:f,setNewFolderColor:v,onCreateAndSave:N,onSelect:i,onClose:l,isCreating:k,isLoading:n})]})}function j(e){let{newFolderName:t,setNewFolderName:r,newFolderColor:s,setNewFolderColor:l,onCreateAndSave:i,isCreating:n,isLoading:o}=e,u=(0,c.c)("mockup");return(0,a.jsxs)("div",{className:"text-center py-6",children:[(0,a.jsx)("div",{className:"w-12 h-12 mx-auto mb-3 rounded-full bg-[var(--surface-secondary)] flex items-center justify-center",children:(0,a.jsx)(h.A,{className:"w-6 h-6 text-[var(--text-muted)]"})}),(0,a.jsx)("h3",{className:"font-medium text-[var(--text-primary)] mb-1",children:u("library.folderModal.emptyTitle")}),(0,a.jsx)("p",{className:"text-sm text-[var(--text-muted)] mb-4",children:u("library.folderModal.emptyHint")}),(0,a.jsxs)("div",{className:"bg-[var(--surface-secondary)] rounded-lg p-4 text-left",children:[(0,a.jsx)(y,{newFolderName:t,setNewFolderName:r,newFolderColor:s,setNewFolderColor:l}),(0,a.jsx)(d.$n,{onClick:i,disabled:!t.trim()||n||o,className:"w-full mt-3",children:n||o?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(b.A,{size:16,className:"animate-spin mr-2"}),u("library.folderModal.creating")]}):u("library.folderModal.createAndSave")}
1)]})]})}function w(e){let{folders:t,isCreatingFolder:r,setIsCreatingFolder:s,newFolderName:l,setNewFolderName:i,newFolderColor:n,setNewFolderColor:o,onCreateAndSave:u,onSelect:m,onClose:x,isCreating:p,isLoading:h}=e,v=(0,c.c)("mockup"),g=(0,c.c)("common");return(0,a.jsxs)(a.Fragment,{children:[r?(0,a.jsxs)("div",{className:"bg-[var(--surface-secondary)] rounded-lg p-4 mb-3",children:[(0,a.jsx)(y,{newFolderName:l,setNewFolderName:i,newFolderColor:n,setNewFolderColor:o}),(0,a.jsxs)("div",{className:"flex gap-2 mt-3",children:[(0,a.jsx)(d.$n,{variant:"outline",onClick:()=>{s(!1),i(""),o("#6366f1")},disabled:p,className:"flex-1",children:g("actions.cancel")}),(0,a.jsx)(d.$n,{onClick:u,disabled:!l.trim()||p||h,className:"flex-1",children:p||h?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(b.A,{size:16,className:"animate-spin mr-2"}),v("library.folderModal.creating")]}):v("library.folderModal.create")})]})]}):(0,a.jsxs)("button",{onClick:()=>s(!0),className:"w-full flex items-center gap-3 p-3 rounded-lg border border-dashed border-[var(--border-subtle)] hover:bg-[var(--surface-secondary)] transition-colors text-left mb-3",children:[(0,a.jsx)("div",{className:"w-8 h-8 rounded-full bg-[var(--foreground)] flex items-center justify-center",children:(0,a.jsx)(f.A,{size:16,className:"text-white"})}),(0,a.jsx)("span",{className:"font-medium text-[var(--text-primary)]",children:v("library.folderModal.createNew")})]}),(0,a.jsxs)("div",{className:"flex items-center gap-3 my-3",children:[(0,a.jsx)("div",{className:"flex-1 h-px bg-[var(--border-subtle)]"}),(0,a.jsx)("span",{className:"text-xs text-[var(--text-muted)]",children:v("library.folderModal.orSelect")}),(0,a.jsx)("div",{className:"flex-1 h-px bg-[var(--border-subtle)]"})]}),(0,a.jsx)("div",{className:"space-y-2 max-h-48 overflow-y-auto",children:t.map(e=>(0,a.jsxs)("button",{onClick:()=>m(e.id),disabled:h||p,className:"w-full flex items-center gap-3 p-3 rounded-lg hover:bg-[var(--surface-secondary)] transition-colors text-left disabled:opacity-50",children:[(0,a.jsx)("span",{className:"w-3 h-3 rounded-full",style:{backgroundColor:e.color||"#6366f1"}}),(0,a.jsx)("span",{className:"flex-1 font-medium text-[var(--text-primary)]",children:e.name}),(0,a.jsx)("span",{className:"text-xs text-[var(--text-muted)]",children:v("library.folderModal.folderMockupCount",{count:e.mockup_count??0})})]},e.id))}),(0,a.jsx)("div",{className:"mt-4 flex justify-end",children:(0,a.jsx)(d.$n,{variant:"outline",onClick:x,disabled:h||p,children:g("actions.cancel")})})]})}var N=r(15239),k=r(42196),C=r(5917),S=r(22198),M=r(10512);let A="grid grid-cols-2 gap-3 sm:grid-cols-3 xl:grid-cols-4 min-[1700px]:grid-cols-6";function F(e){let{isLoading:t,filtered:r,search:s,typeFilter:l,purchasedIds:i,selectionMode:n,selectedMockups:o,toggleSelection:u,duplicateMutation:m,purchaseMutation:x,onShowFolderSelect:p,onPurchase:h}=e,b=(0,c.c)("mockup");return t?(0,a.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,a.jsx)("div",{className:A,children:Array.from({length:12}).map((e,t)=>(0,a.jsx)("div",{className:"aspect-square bg-[var(--surface-secondary)] rounded-lg animate-pulse"},t))})}):0===r.length?(0,a.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,a.jsx)(d.pp,{icon:k.A,title:b("library.empty.gridTitle"),description:b(s||"all"!==l?"library.empty.gridFiltered":"library.empty.gridNone"),variant:"bordered"})}):(0,a.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,a.jsx)("div",{className:A,children:r.map(e=>(0,a.jsx)(z,{mockup:e,isPurchased:i.has(e.id),selectionMode:n,isSelected:o.has(e.id),onToggleSelection:u,onShowFolderSelect:p,onPurchase:h,isSaving:m.isPending,isPurchasing:x.isPending},e.id))})})}function z(e){let{mockup:t,isPurchased:r,selectionMode:l,isSelected:i,onToggleSelection:n,onShowFolderSelect:o,onPurchase:d,isSaving:u,isPurchasing:m}=e,x=(0,c.c)("mockup"),p=!t.is_premium||r,[h,f]=(0,s.useState)(!1),v=t.thumbnail_url||t.display_url||t.image_url;return(0,a.jsxs)("div",{className:`group relative bg-white rounded-lg border overflow-hidden hover:shadow-lg transition-all ${i?"border-[var(--primary)] ring-2 ring-[var(--foreground)]":"border-[var(--border-subtle)]"}`,onClick:l?()=>n(t.id):void 0,children:[(0,a.jsxs)("div",{className:"relative aspect-square bg-[var(--surface-secondary)]",children:[v&&!h?(0,a.jsx)(N.default,{src:v,alt:t.name,fill:!0,className:"object-cover",sizes:"(max-width: 640px) 50vw, (max-width: 1280px) 33vw, (max-width: 1700px) 25vw, 16vw",onError:()=>f(!0)}):(0,a.jsx)("div",{className:"absolute inset-0 flex items-center justify-center",children:(0,a.jsx)(k.A,{className:"w-8 h-8 text-[var(--text-muted)]"})}),t.is_premium&&!r&&(0,a.jsx)("div",{className:"absolute inset-0 flex items-center justify-center pointer-events-none overflow-hidden",children:(0,a.jsx)("div",{className:"rotate-[-30deg] text-white/40 text-xl font-bold select-none whitespace-nowrap tracking-wider drop-shadow-lg",children:"ALOMATIONS"})}),l&&(0,a.jsx)("div",{className:"absolute top-2 right-2 z-10",children:(0,a.jsx)("div",{className:`w-6 h-6 rounded-md flex items-center justify-center transition-colors ${i?"bg-[var(--primary)] text-white":"bg-white/90 border border-gray-300"}`,children:i&&(0,a.jsx)(C.A,{size:14})})}),(0,a.jsx)("div",{className:"absolute top-2 left-2 flex flex-col gap-1",children:t.is_premium?r?(0,a.jsx)("span",{className:"px-2 py-0.5 bg-green-500 text-white text-xs font-medium rounded-full",children:x("library.purchased")}):(0,a.jsxs)("span",{className:"px-2 py-0.5 bg-[var(--primary)] text-white text-xs font-medium rounded-full",children:["$",(t.price||0).toFixed(2)]}):(0,a.jsx)("span",{className:"px-2 py-0.5 bg-blue-500 text-white text-xs font-medium rounded-full",children:x("library.free")})}),!l&&(0,a.jsx)("div",{className:"absolute inset-0 bg-black/50 opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-center gap-2 p-2",children:p?(0,a.jsxs)("button",{onClick:()=>o(t),disabled:u,className:"flex items-center gap-1.5 px-3 py-1.5 bg-white text-gray-900 rounded-full text-xs font-medium hover:bg-gray-100 transition-colors disabled:opacity-50",title:x("library.card.saveToFolder"),children:[u?(0,a.jsx)(b.A,{size:14,className:"animate-spin"}):(0,a.jsx)(S.A,{size:14}),x(u?"library.card.saving":"library.card.saveToFolder")]}):(0,a.jsxs)("button",{onClick:()=>d(t),disabled:m,className:"flex items-center gap-1.5 px-3 py-1.5 bg-[var(--primary)] text-white rounded-full text-xs font-medium hover:brightness-110 shadow-lg transition-all disabled:opacity-50",title:x("library.card.purchase"),children:[m?(0,a.jsx)(b.A,{size:14,className:"animate-spin"}):(0,a.jsx)(M.A,{size:14}),x("library.card.buy",{price:(t.price||0).toFixed(2)})]})})]}),(0,a.jsx)("div",{className:"px-2 py-1.5",children:(0,a.jsx)("h3",{className:"text-xs font-medium text-[var(--text-primary)] truncate",title:t.name,children:t.name})})]})}var _=r(86651),T=r(65183),$=r(6697);function P(e){let{mockups:t,value:r,onChange:l}=e,i=(0,c.c)("mockup"),n=(0,s.useMemo)(()=>{let e={all:t.length};for(let r of t){let t=r.product_type;t&&(e[t]=(e[t]??0)+1)}return e},[t]),o=[{key:"all",label:i("library.all"),count:n.all??0},...T.o.filter(e=>(n[e]??0)>0).map(e=>({key:e,label:(0,$.S)(i,`productTypes.${e}`,T.X[e]),count:n[e]}))];return o.length<=1?null:(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)("div",{className:"text-xs uppercase tracking-wider text-[var(--text-muted)]",children:i("library.productTypeLabel")}),(0,a.jsx)("div",{className:"flex flex-wrap gap-1.5",children:o.map(e=>{let t=e.key===r;return(0,a.jsx)("button",{type:"button",onClick:()=>l(e.key),className:`rounded-full px-3 py-1 text-xs font-medium transition-colors ${t?"bg-[var(--primary)] text-white":"bg-[var(--surface-muted)] text-[var(--text-primary)] hover:bg-[var(--secondary)]"}`,children:i("library.chip",{label:e.label,count:e.count})},e.key)})})]})}
1function L(e){let{collections:t,value:r,onChange:s}=e,l=(0,c.c)("mockup");if(0===t.length)return null;let i=t.reduce((e,t)=>e+t.mockup_count,0);return(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)("div",{className:"text-xs uppercase tracking-wider text-[var(--text-muted)]",children:l("library.collectionLabel")}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,a.jsx)("button",{type:"button",onClick:()=>s("all"),className:`rounded-full px-3 py-1 text-xs font-medium transition-colors ${"all"===r?"bg-[var(--primary)] text-white":"bg-[var(--surface-muted)] text-[var(--text-primary)] hover:bg-[var(--secondary)]"}`,children:l("library.chip",{label:l("library.all"),count:i})}),t.map(e=>{let t=r===e.id;return(0,a.jsx)("button",{type:"button",onClick:()=>s(e.id),className:`rounded-full px-3 py-1 text-xs font-medium transition-colors ${t?"bg-[var(--primary)] text-white":"bg-[var(--surface-muted)] text-[var(--text-primary)] hover:bg-[var(--secondary)]"}`,children:l("library.chip",{label:e.name,count:e.mockup_count})},e.id)})]})]})}function I(e){let{mockups:t,value:r,onChange:l,maxVisible:i=12}=e,n=(0,c.c)("mockup"),o=(0,s.useMemo)(()=>{let e=new Map;for(let r of t)for(let t of r.tags??[])e.set(t,(e.get(t)??0)+1);return[...e.entries()].sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0])).slice(0,i)},[t,i]);return 0===o.length?null:(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsxs)("div",{className:"text-xs uppercase tracking-wider text-[var(--text-muted)]",children:[n("library.tagsLabel")," ",(0,a.jsx)("span",{className:"lowercase text-[var(--text-muted)]/70",children:n("library.tagsHint")})]}),(0,a.jsx)("div",{className:"flex flex-wrap gap-1.5",children:o.map(e=>{let[t,s]=e,i=r.includes(t);return(0,a.jsxs)("button",{type:"button",onClick:()=>{r.includes(t)?l(r.filter(e=>e!==t)):l([...r,t])},className:`rounded-full border px-2.5 py-0.5 text-xs transition-colors ${i?"border-[var(--border-strong)] bg-[var(--surface-2)] font-semibold text-[var(--text-primary)]":"border-[var(--border-subtle)] text-[var(--text-primary)] hover:border-[var(--border-strong)]"}`,children:["#",t," ",(0,a.jsx)("span",{className:"text-[var(--text-muted)]",children:s})]},t)})})]})}var E=r(93341);let H=["newest","oldest","name","price-asc","price-desc"];function U(e){let{value:t,onChange:r}=e,s=(0,c.c)("mockup");return(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)("div",{className:"text-xs uppercase tracking-wider text-[var(--text-muted)]",children:s("library.sortLabel")}),(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)(E.A,{size:14,className:"absolute left-2.5 top-1/2 -translate-y-1/2 text-[var(--text-muted)] pointer-events-none"}),(0,a.jsx)("select",{value:t,onChange:e=>r(e.target.value),className:"w-full rounded-lg border border-[var(--border-subtle)] bg-white pl-7 pr-2 py-1.5 text-xs focus:border-[var(--primary)] focus:outline-none cursor-pointer",children:H.map(e=>(0,a.jsx)("option",{value:e,children:s(`library.sort.${e}`)},e))})]})]})}function D(e){let{value:t,onChange:r,count:s}=e,l=(0,c.c)("mockup");return(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)("div",{className:"text-xs uppercase tracking-wider text-[var(--text-muted)]",children:l("library.statusLabel")}),(0,a.jsxs)("button",{type:"button",onClick:()=>r(!t),"aria-pressed":t,className:`inline-flex items-center gap-1.5 rounded-full px-3 py-1 text-xs font-medium transition-colors ${t?"bg-[var(--primary)] text-white":"bg-[var(--surface-muted)] text-[var(--text-primary)] hover:bg-[var(--secondary)]"}`,children:[(0,a.jsx)("span",{className:`w-4 h-4 rounded flex items-center justify-center transition-colors ${t?"bg-white/20":"border border-[var(--border-subtle)] bg-white"}`,children:t&&(0,a.jsx)(C.A,{size:11,className:"text-white"})}),l("library.readyToUse"),"number"==typeof s&&(0,a.jsx)("span",{className:t?"text-white/80":"text-[var(--text-muted)]",children:l("library.count",{count:s})})]})]})}function q(e){let t=e.metadata?.regions;return Array.isArray(t)&&t.length>0}function V(e){let t=(0,c.c)("mockup");return(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)("div",{className:"text-xs uppercase tracking-wider text-[var(--text-muted)]",children:t("library.searchLabel")}),(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)(_.A,{size:14,className:"absolute left-2.5 top-1/2 -translate-y-1/2 text-[var(--text-muted)] pointer-events-none"}),(0,a.jsx)(d.pd,{value:e.search,onChange:t=>e.onSearchChange(t.target.value),placeholder:t("library.searchPlaceholder"),className:"pl-7",fullWidth:!0})]})]}),(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)("div",{className:"text-xs uppercase tracking-wider text-[var(--text-muted)]",children:t("library.typeLabel")}),(0,a.jsx)("div",{className:"flex rounded-lg border border-[var(--border-subtle)] overflow-hidden w-fit",children:["all","free","premium"].map(r=>(0,a.jsx)("button",{type:"button",onClick:()=>e.onTypeFilterChange(r),className:`px-3 py-1.5 text-xs font-medium transition-colors ${e.typeFilter===r?"bg-[var(--primary)] text-white":"bg-[var(--surface)] text-[var(--text-secondary)] hover:bg-[var(--surface-secondary)]"}`,children:t(`library.${r}`)},r))})]}),(0,a.jsx)(L,{collections:e.collections,value:e.collectionFilter,onChange:e.onCollectionFilterChange}),(0,a.jsx)(P,{mockups:e.defaultMockups,value:e.productTypeFilter,onChange:e.onProductTypeFilterChange}),(0,a.jsx)(I,{mockups:e.scopedMockupsForTags,value:e.selectedTags,onChange:e.onSelectedTagsChange}),(0,a.jsx)(U,{value:e.sort,onChange:e.onSortChange}),(0,a.jsx)(D,{value:e.readyToUse,onChange:e.onReadyToUseChange,count:e.readyToUseCount})]})}function B(e){let{open:t,onClose:r,...n}=e,o=(0,c.c)("mockup");return((0,s.useEffect)(()=>
1{if(!t)return;let e=e=>{"Escape"===e.key&&r()};return document.addEventListener("keydown",e),document.body.style.overflow="hidden",()=>{document.removeEventListener("keydown",e),document.body.style.overflow=""}},[t,r]),t)?(0,a.jsxs)("div",{className:"lg:hidden fixed inset-0 z-50 flex items-end",role:"dialog",children:[(0,a.jsx)("button",{type:"button","aria-label":o("library.sheet.closeFilters"),className:"absolute inset-0 bg-black/40",onClick:r}),(0,a.jsxs)("div",{className:"relative w-full max-h-[85vh] bg-white rounded-t-2xl shadow-xl flex flex-col",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between p-4 border-b border-[var(--border-subtle)]",children:[(0,a.jsxs)("h3",{className:"text-base font-semibold flex items-center gap-2",children:[(0,a.jsx)(l.A,{size:16}),o("library.filters")]}),(0,a.jsx)("button",{type:"button",onClick:r,className:"p-1.5 hover:bg-[var(--surface-secondary)] rounded","aria-label":o("library.close"),children:(0,a.jsx)(i.A,{size:18})})]}),(0,a.jsx)("div",{className:"flex-1 overflow-y-auto p-4",children:(0,a.jsx)(V,{...n})}),(0,a.jsx)("div",{className:"p-4 border-t border-[var(--border-subtle)]",children:(0,a.jsx)(d.$n,{variant:"primary",onClick:r,fullWidth:!0,children:o("library.sheet.done")})})]})]}):null}var R=r(58734);function W(e){let{collection:t,savableCount:r,onSaveAll:s,isSaving:l}=e,i=(0,c.c)("mockup");return(0,a.jsxs)("div",{className:"mb-4 rounded-xl border border-[var(--border-subtle)] bg-gradient-to-r from-[var(--secondary)] via-white to-[var(--secondary)] p-4 flex items-start gap-4",children:[(0,a.jsx)("div",{className:"flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-lg bg-[var(--foreground)] text-white",children:(0,a.jsx)(R.A,{size:20})}),(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsx)("h3",{className:"text-base font-semibold text-[var(--text-primary)] truncate",children:t.name}),(0,a.jsx)("p",{className:"text-xs text-[var(--text-muted)] mt-0.5",children:t.description?i("library.collection.withDescription",{count:t.mockup_count,description:t.description}):i("library.collection.mockupCount",{count:t.mockup_count})})]}),r>0&&(0,a.jsxs)(d.$n,{variant:"secondary",size:"sm",onClick:s,disabled:l,children:[l?(0,a.jsx)(b.A,{size:14,className:"animate-spin"}):(0,a.jsx)(S.A,{size:14}),l?i("library.collection.saving"):i("library.collection.saveAll",{count:r})]})]})}function X(e){let{selectedCount:t,savableCount:r,purchasableCount:s,totalPurchasePrice:l,onBulkSave:n,onBulkPurchase:o,onExit:u,isSaving:m,isPurchasing:x,visibleIds:p,hasActiveFilter:h,onSelectAllVisible:f}=e,v=(0,c.c)("mockup");return(0,a.jsx)("div",{className:"fixed bottom-6 left-1/2 -translate-x-1/2 z-50",children:(0,a.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3 bg-[var(--surface)] rounded-full shadow-xl border border-[var(--border-subtle)]",children:[(0,a.jsx)("span",{className:"text-sm font-medium text-[var(--text-primary)] whitespace-nowrap",children:v("library.selection.selected",{count:t})}),(0,a.jsx)("div",{className:"w-px h-6 bg-[var(--border-subtle)]"}),h&&(0,a.jsx)("button",{type:"button",onClick:f,className:"text-xs font-medium text-[var(--text-primary)] underline-offset-2 hover:underline whitespace-nowrap",children:v("library.selection.selectAllVisible",{count:p.length})}),h&&(r>0||s>0)&&(0,a.jsx)("div",{className:"w-px h-6 bg-[var(--border-subtle)]"}),r>0&&(0,a.jsxs)(d.$n,{variant:"outline",size:"sm",onClick:n,disabled:m,children:[(0,a.jsx)(S.A,{size:16,className:"mr-1"}),v("library.selection.save",{count:r})]}),s>0&&(0,a.jsxs)(d.$n,{variant:"primary",size:"sm",onClick:o,disabled:x,children:[x?(0,a.jsx)(b.A,{size:16,className:"animate-spin mr-1"}):(0,a.jsx)(M.A,{size:16,className:"mr-1"}),v("library.selection.buy",{count:s,price:l.toFixed(2)})]}),(0,a.jsx)("button",{onClick:u,"aria-label":v("library.selection.exit"),className:"p-1.5 rounded-full hover:bg-[var(--surface-secondary)] text-[var(--text-muted)]",children:(0,a.jsx)(i.A,{size:16})})]})})}let O="alomations_purchase_folder";function Z(e){let{onClose:t}=e,r=(0,c.c)("mockup"),h=(0,c.c)("mockup.library"),b=(0,c.c)("errors"),f=(0,c.c)("common"),v=(0,o.useSearchParams)(),y=(0,x.useToast)(),[j,w]=(0,s.use
1State)(""),[N,k]=(0,s.useState)("all"),[C,S]=(0,s.useState)("all"),[M,A]=(0,s.useState)("all"),[z,_]=(0,s.useState)([]),[P,L]=(0,s.useState)("newest"),[I,E]=(0,s.useState)(!1),[H,U]=(0,s.useState)(!1),[D,R]=(0,s.useState)(!1),[Z,J]=(0,s.useState)(new Set),[G,K]=(0,s.useState)(!1),[Q,Y]=(0,s.useState)(null),[ee,et]=(0,s.useState)(!1),{data:er=[],isLoading:ea}=(0,u.zu)(),{data:es=[]}=(0,u.Z1)(),{data:el=[],isLoading:ei}=(0,u.Jj)(),{data:en=[]}=(0,m.nv)(),eo=(0,u.qF)(h,b),ec=(0,u.S8)(h,b),ed=(0,s.useMemo)(()=>new Set(el.map(e=>e.mockup_id)),[el]),eu=(0,s.useMemo)(()=>{let e=[...er.filter(e=>{let t=!j||e.name?.toLowerCase().includes(j.toLowerCase()),r="all"===N||"free"===N&&!e.is_premium||"premium"===N&&e.is_premium,a="all"===C||e.product_type===C,s="all"===M||e.collection_id===M,l=e.tags??[],i=0===z.length||z.every(e=>l.includes(e)),n=!I||q(e);return t&&r&&a&&s&&i&&n})];switch(P){case"newest":e.sort((e,t)=>new Date(t.created_at??0).getTime()-new Date(e.created_at??0).getTime());break;case"oldest":e.sort((e,t)=>new Date(e.created_at??0).getTime()-new Date(t.created_at??0).getTime());break;case"name":e.sort((e,t)=>(e.name??"").localeCompare(t.name??""));break;case"price-asc":e.sort((e,t)=>(e.price??0)-(t.price??0));break;case"price-desc":e.sort((e,t)=>(t.price??0)-(e.price??0))}return e},[er,j,N,C,M,z,I,P]),em=(0,s.useMemo)(()=>er.filter(q).length,[er]),ex=(0,s.useMemo)(()=>"all"===C?er:er.filter(e=>e.product_type===C),[er,C]),ep=(0,s.useMemo)(()=>{let e=0;return j.trim()&&e++,"all"!==N&&e++,"all"!==M&&e++,"all"!==C&&e++,z.length>0&&e++,I&&e++,e},[j,N,M,C,z,I]),eh={search:j,onSearchChange:w,typeFilter:N,onTypeFilterChange:k,collections:es,collectionFilter:M,onCollectionFilterChange:A,defaultMockups:er,productTypeFilter:C,onProductTypeFilterChange:S,scopedMockupsForTags:ex,selectedTags:z,onSelectedTagsChange:_,sort:P,onSortChange:L,readyToUse:I,onReadyToUseChange:E,readyToUseCount:em};(0,s.useEffect)(()=>{if("all"===C)return;let e=new Set(er.filter(e=>e.product_type===C).flatMap(e=>e.tags??[]));_(t=>t.filter(t=>e.has(t)))},[C,er]),(0,s.useEffect)(()=>{let e=v.get("purchase"),t=v.get("mockup");if("success"===e&&t){let e=er.find(e=>e.id===t);(0,p.Du)({transaction_id:"undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`mockup_${t}`,value:(e?.price??0)/100,currency:"USD",items:[{item_id:t,item_category:"mockup"}]});let a=localStorage.getItem(O);if(localStorage.removeItem(O),a)eo.mutate({mockupId:t,folderId:a},{onSuccess:()=>{y.success(r("library.toasts.purchasedAndSaved"))}});else{let e=er.find(e=>e.id===t);e&&(Y(e),et(!0))}let s=new URL(window.location.href);s.searchParams.delete("purchase"),s.searchParams.delete("mockup"),s.searchParams.delete("bulk"),window.history.replaceState({},"",s.toString())}},[v,er]);let eb=(0,s.useCallback)(e=>{Y(e),et(!0)},[]),ef=(0,s.useCallback)(e=>{if(Q)if(!Q.is_premium||ed.has(Q.id))eo.mutate({mockupId:Q.id,folderId:e},{onSuccess:()=>{et(!1),Y(null)}});else{e&&localStorage.setItem(O,e),et(!1);let t=`${window.location.origin}/media?view=default-mockups&purchase=success&mockup=${Q.id}`,r=`${window.location.origin}/media?view=default-mockups&purchase=cancelled`;ec.mutate({mockupId:Q.id,successUrl:t,cancelUrl:r}),Y(null)}},[Q,ed,eo,ec]),ev=()=>{R(!1),J(new Set)},ey=(0,s.useMemo)(()=>[...Z].map(e=>eu.find(t=>t.id===e)).filter(e=>!!e),[Z,eu]),eg=(0,s.useMemo)(()=>ey.filter(e=>!e.is_premium||ed.has(e.id)),[ey,ed]),ej=(0,s.useMemo)(()=>ey.filter(e=>e.is_premium&&!ed.has(e.id)),[ey,ed]),ew=(0,s.useMemo)(()=>ej.reduce((e,t)=>e+(t.price||0),0),[ej]),[eN,ek]=(0,s.useState)({open:!1}),eC=(0,s.useMemo)(()=>"all"===M?[]:er.filter(e=>e.collection_id===M&&(!e.is_premium||ed.has(e.id))),[er,M,ed]),eS=(0,s.useCallback)(e=>{eC.forEach(t=>{eo.mutate({mockupId:t.id,folderId:e})}),ek({open:!1})},[eC,eo]),eM=(0,s.useMemo)(()=>"all"===M?null:es.find(e=>e.id===M)??null,[M,es]),eA=async()=>{if(0===ej.length)return;let e=ej[0],t=`${window.location.origin}/media?view=default-mockups&purchase=success&mockup=${e.id}&bulk=true`,r=`${window.location.origin}/media?view=default-mockups&purchase=cancelled`;ec.mutate({mockupId:e.id,successUrl:t,cancelUrl:r})},eF=ea||ei,ez=(0,s.useMemo)(()=>eu.map(e=>e.id),[eu]),e_="all"!==C||"all"!==M||z.length>0||"all"!==N||!!j.trim(),eT=Q?Q.is_premium&&!ed.has(Q.id)?r("library.folderModal.chooseForPurchase"):r("library.folderModal.saveMockup"):r("library.folderModal.defaultTitle");return(0,a.jsxs)("div",{className:"h-full flex flex-col",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between pb-4 border-b border-[var(--border-subtle)]",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:"text-lg font-semibold text-[var(--text-primary)]",children:r("library.title")}),(0,a.jsx)("p",{className:"text-sm text-[var(--text-muted)]",children:r("library.subtitle")})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)(d.$n,{variant:"outline",size:"sm",onClick:()=>U(!0),className:"lg:hidden",children:[(0,a.jsx)(l.A,{size:16,className:"mr-1"}),r("library.filters"),ep>0&&(0,a.jsx)("span",{className:"ml-1 inline-flex items-center justify-center min-w-[18px] h-[18px] px-1 rounded-full bg-[var(--foreground)] text-white text-[10px] font-semibold",children:ep})]}),(0,a.jsx)(d.$n,{variant:D?"secondary":"outline",size:"sm",onClick:()=>D?ev():R(!0),children:D?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.A,{size:16,className:"mr-1"}),f("actions.cancel")]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.A,{size:16,className:"mr-1"}),r("library.select")]})}),t&&(0,a.jsx)(d.$n,{variant:"outline",size:"sm",onClick:t,"aria-label":r("library.close"),children:(0,a.jsx)(i.A,{size:16})})]})]}),(0,a.jsxs)("div",{className:"flex flex-1 min-h-0 gap-6 pt-4",children:[(0,a.jsx)("aside",{className:"hidden lg:block w-60 flex-shrink-0 overflow-y-auto px-1 pr-2",children:(0,a.jsx)(V,{...eh}
1)}),(0,a.jsxs)("div",{className:"flex-1 min-w-0 flex flex-col",children:[eM&&(0,a.jsx)(W,{collection:eM,savableCount:eC.length,onSaveAll:()=>ek({open:!0}),isSaving:eo.isPending}),eF||0!==eu.length?(0,a.jsx)(F,{isLoading:eF,filtered:eu,search:j,typeFilter:N,purchasedIds:ed,selectionMode:D,selectedMockups:Z,toggleSelection:e=>{J(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},duplicateMutation:eo,purchaseMutation:ec,onShowFolderSelect:eb,onPurchase:eb}):(0,a.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,a.jsxs)("div",{className:"text-center py-12 text-[var(--text-muted)]",children:[(0,a.jsx)("p",{className:"text-sm",children:"all"!==C&&0===er.filter(e=>e.product_type===C).length?r("library.empty.noneForType",{type:(0,$.S)(r,`productTypes.${C}`,T.X[C])}):r("library.empty.noMatches")}),(j||"all"!==C||"all"!==M||z.length>0||I||"all"!==N)&&(0,a.jsx)("button",{type:"button",onClick:()=>{w(""),S("all"),A("all"),_([]),E(!1)},className:"mt-2 text-sm font-semibold text-[var(--text-primary)] underline-offset-2 hover:underline",children:r("library.empty.clearFilters")})]})})]})]}),(0,a.jsx)(B,{open:H,onClose:()=>U(!1),...eh}),D&&Z.size>0&&(0,a.jsx)(X,{selectedCount:Z.size,savableCount:eg.length,purchasableCount:ej.length,totalPurchasePrice:ew,onBulkSave:()=>K(!0),onBulkPurchase:eA,onExit:ev,isSaving:eo.isPending,isPurchasing:ec.isPending,visibleIds:ez,hasActiveFilter:e_,onSelectAllVisible:()=>{J(new Set(ez))}}),(0,a.jsx)(g,{open:ee,mockupId:Q?.id??null,folders:en,onClose:()=>{et(!1),Y(null)},onSelect:ef,isLoading:eo.isPending||ec.isPending,title:eT}),(0,a.jsx)(g,{open:G,mockupId:null,folders:en,onClose:()=>K(!1),onSelect:e=>{eg.forEach(t=>{eo.mutate({mockupId:t.id,folderId:e})}),K(!1),ev()},isLoading:eo.isPending,title:r("library.folderModal.bulkTitle",{count:eg.length})}),(0,a.jsx)(g,{open:eN.open,mockupId:null,folders:en,onClose:()=>ek({open:!1}),onSelect:eS,isLoading:eo.isPending,title:eM?r("library.folderModal.collectionTitle",{count:eC.length,name:eM.name}):r("library.folderModal.collectionFallback")})]})}},58734:(e,t,r)=>{r.d(t,{A:()=>a});let a=(0,r(71847).A)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]])},65183:(e,t,r)=>{r.d(t,{X:()=>s,o:()=>a});let a=["t-shirts","mugs","posters","tote-bags","stickers","frames","hoodies","pillows","hats","blankets","tumblers","towels"],s={"t-shirts":"T-shirts",mugs:"Mugs",posters:"Posters","tote-bags":"Tote bags",stickers:"Stickers",frames:"Frames",hoodies:"Hoodies",pillows:"Pillows",hats:"Hats",blankets:"Blankets",tumblers:"Tumblers",towels:"Towels"}},66630:(e,t,r)=>{r.d(t,{A:()=>a});let a=(0,r(71847).A)("sliders-horizontal",[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]])},93341:(e,t,r)=>{r.d(t,{A:()=>a});let a=(0,r(71847).A)("arrow-up-down",[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]])}}]);

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.