Files
boc/landvex-site/assets/PhotoMarketplace-DHi_u6nN.js
T
Bernt 48ea61cdcc docs: add quixzoom-auth-core product to AAMOS
- Product documentation in docs/products/
- Updated MEMORY.md with product info
- quiXzoom Auth Core as AAMOS Identity product
2026-07-14 09:58:53 +00:00

13 lines
18 KiB
JavaScript

import{x as V,u as E,a as F,aQ as G,r as s,j as e,v as l,C as H,I as q,M as h,p as J,y as b,z as W,B as Q}from"./index-CZD3_4lD.js";import{B as N}from"./badge-D3Mn__J4.js";import{S as M,a as S,b as C,c as B,d as o}from"./select-Dcsz1esX.js";import{S as U,a as $}from"./scroll-area-DdYSSeiY.js";import{k as Y,i as O,e as X,m as Z,v as ee,p as ae,n as re,a as te,b as ie,l as se,c as le,d as oe,f as ne,r as ce,g as de,h as ue,j as pe,o as me,w as ge,q as he,s as _e,t as xe,u as ke,x as fe,y as ve,z as ye,A as we,W as L}from"./taj-mahal-BrmjbJxw.js";import{A as je}from"./arrow-left-DyClWdEf.js";import{S as be}from"./search-DezKAVqp.js";import{E as P}from"./eye-IKrhkOAd.js";import{D as z}from"./download-JAaLZNwh.js";import{H as Ne}from"./heart-Bn8C2h_q.js";import"./chevron-down-DA--jGG2.js";import"./check-CCL32zXH.js";/**
* @license lucide-react v0.462.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const Me=V("Grid3x3",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]]);/**
* @license lucide-react v0.462.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const Se=V("List",[["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 18h.01",key:"1tta3j"}],["path",{d:"M3 6h.01",key:"1rqtza"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 18h13",key:"1lx6n3"}],["path",{d:"M8 6h13",key:"ik3vkj"}]]),p=[{id:"1",photo_url:Y,title:"Marknad i Nairobi",description:"Färgglad lokal marknad med frukt och grönsaker",tags:["marknad","afrika","handel"],category:"Marknader",location:"Nairobi",country:"Kenya",price_small:29,price_medium:79,price_large:149,price_original:299,downloads_count:234,views_count:1892,is_featured:!0},{id:"2",photo_url:O,title:"By vid Ganges",description:"Traditionell by vid den heliga floden",tags:["by","flod","tradition"],category:"Landsbygd",location:"Varanasi",country:"Indien",price_small:25,price_medium:69,price_large:129,price_original:249,downloads_count:156,views_count:1245,is_featured:!0},{id:"3",photo_url:X,title:"Simien Mountains",description:"Dramatiska berglandskap i norra Etiopien",tags:["berg","natur","landskap"],category:"Natur",location:"Simien",country:"Etiopien",price_small:35,price_medium:89,price_large:169,price_original:349,downloads_count:312,views_count:2456,is_featured:!0},{id:"4",photo_url:Z,title:"Medina i Marrakech",description:"Historiska gränder och traditionellt hantverk",tags:["stad","kultur","arkitektur"],category:"Marknader",location:"Marrakech",country:"Marocko",price_small:29,price_medium:79,price_large:149,price_original:299,downloads_count:189,views_count:1567,is_featured:!1},{id:"5",photo_url:ee,title:"Risterrasser Sapa",description:"Gröna risterrasser i norra Vietnam",tags:["jordbruk","landskap","grön"],category:"Landsbygd",location:"Sapa",country:"Vietnam",price_small:29,price_medium:79,price_large:149,price_original:299,downloads_count:445,views_count:3234,is_featured:!0},{id:"6",photo_url:ae,title:"Andinska höglandet",description:"Traditionell by i Anderna",tags:["by","berg","tradition"],category:"Landsbygd",location:"Cusco",country:"Peru",price_small:25,price_medium:69,price_large:129,price_original:249,downloads_count:178,views_count:1123,is_featured:!1},{id:"7",photo_url:re,title:"Tropisk regnskog",description:"Lummig grönska och biologisk mångfald",tags:["skog","natur","grön"],category:"Natur",location:"Amazonas",country:"Brasilien",price_small:35,price_medium:89,price_large:169,price_original:349,downloads_count:567,views_count:4521,is_featured:!0},{id:"8",photo_url:te,title:"Soluppgång Himalaya",description:"Majestätiska bergstoppar i gryningen",tags:["berg","soluppgång","landskap"],category:"Natur",location:"Nepal",country:"Nepal",price_small:39,price_medium:99,price_large:189,price_original:399,downloads_count:723,views_count:5678,is_featured:!0},{id:"9",photo_url:ie,title:"Flod genom dalen",description:"Kristallklart vatten genom grönt landskap",tags:["flod","dal","natur"],category:"Natur",location:"Himalaya",country:"Nepal",price_small:29,price_medium:79,price_large:149,price_original:299,downloads_count:234,views_count:1876,is_featured:!1},{id:"10",photo_url:se,title:"Bergssjö i dimma",description:"Stilla vatten speglande snötäckta toppar",tags:["sjö","berg","dimma"],category:"Natur",location:"Patagonia",country:"Argentina",price_small:35,price_medium:89,price_large:169,price_original:349,downloads_count:456,views_count:3421,is_featured:!0},{id:"11",photo_url:le,title:"Savannen vid solnedgång",description:"Ikoniskt afrikanskt landskap",tags:["savann","solnedgång","afrika"],category:"Natur",location:"Serengeti",country:"Tanzania",price_small:39,price_medium:99,price_large:189,price_original:399,downloads_count:678,views_count:4892,is_featured:!0},{id:"12",photo_url:oe,title:"Flodbåt i deltat",description:"Traditionell transport på floderna",tags:["båt","flod","transport"],category:"Infrastruktur",location:"Dhaka",country:"Bangladesh",price_small:25,price_medium:69,price_large:129,price_original:249,downloads_count:145,views_count:987,is_featured:!1},{id:"13",photo_url:ne,title:"Byskola i Afrika",description:"Barn i klassrum med böcker och lärare",tags:["skola","utbildning","barn"],category:"Utbildning",location:"Kampala",country:"Uganda",price_small:29,price_medium:79,price_large:149,price_original:299,downloads_count:312,views_count:2134,is_featured:!0},{id:"14",photo_url:ce,title:"Landsbygdssjukhus",description:"Sjukvårdspersonal ger medicinsk vård",tags:["sjukhus","hälsa","sjukvård"],category:"Sjukvård",location:"Nairobi",country:"Kenya",price_small:29,price_medium:79,price_large:149,price_original:299,downloads_count:245,views_count:1876,is_featured:!0},{id:"15",photo_url:de,title:"Samhällssamling",description:"Lokal gemenskap i traditionell samling",tags:["samhälle","gemenskap","människor"],category:"Samhälle",location:"Accra",country:"Ghana",price_small:25,price_medium:69,price_large:129,price_original:249,downloads_count:178,views_count:1345,is_featured:!1},{id:"16",photo_url:ue,title:"Barn i byn",description:"Glada barn leker på landsbygden",tags:["barn","by","glädje"],category:"Samhälle",location:"Dar es Salaam",country:"Tanzania",price_small:25,price_medium:69,price_large:129,price_original:249,downloads_count:289,views_count:2012,is_featured:!0},{id:"17",photo_url:pe,title:"Klassrum med elever",description:"Studenter i undervisning",tags:["skola","klassrum","studenter"],category:"Utbildning",location:"Mumbai",country:"Indien",price_small:29,price_medium:79,price_large:149,price_original:299,downloads_count:356,views_count:2567,is_featured:!0},{id:"18",photo_url:me,title:"Medicinsk vård",description:"Läkare och sjuksköterskor i arbete",tags:["medicin","vård","hälsa"],category:"Sjukvård",location:"Lagos",country:"Nigeria",price_small:29,price_medium:79,price_large:149,price_original:299,downloads_count:198,views_count:1543,is_featured:!1},{id:"19",photo_url:ge,title:"Vattenbrunn",description:"Rent vatten till lokalt samhälle",tags:["vatten","brunn","infrastruktur"],category:"Infrastruktur",location:"Addis Ababa",country:"Etiopien",price_small:25,price_medium:69,price_large:129,price_original:249,downloads_count:423,views_count:3124,is_featured:!0},{id:"20",photo_url:he,title:"Jordbrukssamhälle",description:"Bönder arbetar på fälten tillsammans",tags:["jordbruk","bönder","samhälle"],category:"Landsbygd",location:"Phnom Penh",country:"Kambodja",price_small:25,price_medium:69,price_large:129,price_original:249,downloads_count:267,views_count:1897,is_featured:!1},{id:"21",photo_url:_e,title:"Kinesiska muren",description:"Världens längsta byggnadsverk sträcker sig över bergen",tags:["underverk","kina","historia","arkitektur"],category:"Världens underverk",location:"Beijing",country:"Kina",price_small:49,price_medium:129,price_large:249,price_original:499,downloads_count:1245,views_count:8923,is_featured:!0},{id:"22",photo_url:xe,title:"Petra",description:"Den rosa stadens fantastiska klippfasader",tags:["underverk","jordan","arkeologi","klippa"],category:"Världens underverk",location:"Petra",country:"Jordanien",price_small:49,price_medium:129,price_large:249,price_original:499,downloads_count:987,views_count:7654,is_featured:!0},{id:"23",photo_url:ke,title:"Kristusstatyn",description:"Ikonisk staty över Rio de Janeiro",tags:["underverk","brasilien","staty","rio"],category:"Världens underverk",location:"Rio de Janeiro",country:"Brasilien",price_small:49,price_medium:129,price_large:249,price_original:499,downloads_count:1567,views_count:12345,is_featured:!0},{id:"24",photo_url:fe,title:"Machu Picchu",description:"Inkafolkets förlorade stad i Anderna",tags:["underverk","peru","inka","berg"],category:"Världens underverk",location:"Cusco",country:"Peru",price_small:49,price_medium:129,price_large:249,price_original:499,downloads_count:2134,views_count:15678,is_featured:!0},{id:"25",photo_url:ve,title:"Chichén Itzá",description:"Mayafolkets pyramidtempel",tags:["underverk","mexico","maya","pyramid"],category:"Världens underverk",location:"Yucatán",country:"Mexico",price_small:49,price_medium:129,price_large:249,price_original:499,downloads_count:1432,views_count:9876,is_featured:!0},{id:"26",photo_url:ye,title:"Colosseum",description:"Romarrikets mäktiga amfiteater",tags:["underverk","italien","rom","antiken"],category:"Världens underverk",location:"Rom",country:"Italien",price_small:49,price_medium:129,price_large:249,price_original:499,downloads_count:1876,views_count:14532,is_featured:!0},{id:"27",photo_url:we,title:"Taj Mahal",description:"Indiens vackraste mausoleum i vit marmor",tags:["underverk","indien","mausoleum","marmor"],category:"Världens underverk",location:"Agra",country:"Indien",price_small:49,price_medium:129,price_large:249,price_original:499,downloads_count:2345,views_count:18765,is_featured:!0}],Ee=()=>{var v;const m=E(),{t}=F(),[I,_]=G(),n=I.get("country"),[c,x]=s.useState(""),[d,A]=s.useState("all"),[u,k]=s.useState("grid"),[g,R]=s.useState("featured"),K=s.useMemo(()=>{const a=new Set(p.map(r=>r.country));return Array.from(a).sort()},[]),T=s.useMemo(()=>{const a=new Set(p.map(r=>r.category).filter(Boolean));return Array.from(a)},[]),f=s.useMemo(()=>{let a=[...p];if(n&&(a=a.filter(r=>r.country===n)),d&&d!=="all"&&(a=a.filter(r=>r.category===d)),c){const r=c.toLowerCase();a=a.filter(i=>{var y,w,j;return i.title.toLowerCase().includes(r)||((y=i.description)==null?void 0:y.toLowerCase().includes(r))||((w=i.tags)==null?void 0:w.some(D=>D.toLowerCase().includes(r)))||((j=i.location)==null?void 0:j.toLowerCase().includes(r))||i.country.toLowerCase().includes(r)})}switch(g){case"featured":a.sort((r,i)=>(i.is_featured?1:0)-(r.is_featured?1:0)||i.views_count-r.views_count);break;case"popular":a.sort((r,i)=>i.downloads_count-r.downloads_count);break;case"price-low":a.sort((r,i)=>r.price_small-i.price_small);break;case"price-high":a.sort((r,i)=>i.price_original-r.price_original);break}return a},[n,d,c,g]);return e.jsxs("div",{className:"min-h-screen bg-background pb-32 safe-area-top safe-area-x",children:[e.jsx("div",{className:"bg-gradient-to-br from-primary/10 via-background to-emerald-500/5 border-b border-border/50",children:e.jsxs("header",{className:"px-4 py-4 safe-area-top",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[e.jsx(l,{variant:"ghost",size:"icon",onClick:()=>m(-1),children:e.jsx(je,{className:"w-5 h-5"})}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(H,{className:"w-5 h-5 text-primary"}),e.jsx("h1",{className:"text-lg font-bold",children:t("photoMarketplace.title")})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:t("photoMarketplace.subtitle")})]})]}),e.jsxs("div",{className:"relative",children:[e.jsx(be,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),e.jsx(q,{placeholder:t("photoMarketplace.searchPlaceholder"),value:c,onChange:a=>x(a.target.value),className:"pl-10 pr-4"})]}),e.jsxs("div",{className:"space-y-2 mt-3",children:[e.jsxs("div",{className:"flex gap-2 items-center",children:[e.jsxs(M,{value:g,onValueChange:R,children:[e.jsx(S,{className:"w-[110px] h-8 text-xs flex-shrink-0",children:e.jsx(C,{placeholder:t("photoMarketplace.sortBy")})}),e.jsxs(B,{children:[e.jsx(o,{value:"featured",children:t("photoMarketplace.featured")}),e.jsx(o,{value:"popular",children:t("photoMarketplace.popular")}),e.jsx(o,{value:"price-low",children:t("photoMarketplace.priceLow")}),e.jsx(o,{value:"price-high",children:t("photoMarketplace.priceHigh")})]})]}),e.jsxs(M,{value:d,onValueChange:A,children:[e.jsx(S,{className:"w-[110px] h-8 text-xs flex-shrink-0",children:e.jsx(C,{placeholder:t("marketplace.category")})}),e.jsxs(B,{children:[e.jsx(o,{value:"all",children:t("photoMarketplace.allCategories")}),T.map(a=>e.jsx(o,{value:a,children:a},a))]})]}),e.jsxs("div",{className:"flex gap-1 ml-auto flex-shrink-0",children:[e.jsx(l,{variant:u==="grid"?"default":"ghost",size:"icon",className:"h-8 w-8",onClick:()=>k("grid"),children:e.jsx(Me,{className:"w-4 h-4"})}),e.jsx(l,{variant:u==="list"?"default":"ghost",size:"icon",className:"h-8 w-8",onClick:()=>k("list"),children:e.jsx(Se,{className:"w-4 h-4"})})]})]}),e.jsxs(U,{className:"w-full -mx-4",children:[e.jsxs("div",{className:"flex gap-1.5 pb-2 px-4",children:[e.jsxs(l,{variant:n?"outline":"default",size:"sm",className:"h-7 text-xs whitespace-nowrap flex-shrink-0 gap-1",onClick:()=>_({}),children:[e.jsx(h,{className:"w-3 h-3"}),t("photoMarketplace.allCountries")]}),K.map(a=>e.jsx(l,{variant:n===a?"default":"outline",size:"sm",className:"h-7 text-xs whitespace-nowrap flex-shrink-0",onClick:()=>_({country:a}),children:a},a))]}),e.jsx($,{orientation:"horizontal",className:"h-1.5"})]})]})]})}),e.jsxs("main",{className:"px-3 sm:px-4 py-4",children:[f.length===0?e.jsxs("div",{className:"text-center py-16",children:[e.jsx("p",{className:"text-muted-foreground",children:t("photoMarketplace.noPhotosFound")}),c&&e.jsx(l,{variant:"link",onClick:()=>x(""),children:t("photoMarketplace.clearSearch")})]}):e.jsx("div",{className:u==="grid"?"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-2 sm:gap-3":"space-y-3",children:f.map((a,r)=>e.jsx(J.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:r*.05},children:u==="grid"?e.jsx(b,{className:"overflow-hidden cursor-pointer hover:shadow-lg transition-shadow group",onClick:()=>m(`/photo/${a.id}`),children:e.jsxs("div",{className:"relative aspect-[4/5] sm:aspect-square",children:[e.jsx(L,{src:a.photo_url,alt:a.title,className:"w-full h-full"}),a.is_featured&&e.jsx(N,{className:"absolute top-1.5 left-1.5 text-[9px] sm:text-[10px] px-1.5 py-0.5",children:t("photoMarketplace.featured")}),e.jsxs("div",{className:"absolute bottom-0 inset-x-0 bg-gradient-to-t from-black/80 via-black/50 to-transparent p-1.5 sm:p-2",children:[e.jsx("p",{className:"text-white text-[11px] sm:text-xs font-medium line-clamp-2 leading-tight",children:a.title}),e.jsxs("div",{className:"flex items-center justify-between mt-0.5 sm:mt-1",children:[e.jsxs("span",{className:"text-white/90 text-[10px] sm:text-[11px] font-medium",children:[a.price_small," krediter"]}),e.jsxs("div",{className:"flex items-center gap-1.5 text-white/70 text-[9px] sm:text-[10px]",children:[e.jsxs("span",{className:"flex items-center gap-0.5",children:[e.jsx(P,{className:"w-2.5 h-2.5 sm:w-3 sm:h-3"}),a.views_count>999?`${(a.views_count/1e3).toFixed(1)}k`:a.views_count]}),e.jsxs("span",{className:"flex items-center gap-0.5",children:[e.jsx(z,{className:"w-2.5 h-2.5 sm:w-3 sm:h-3"}),a.downloads_count]})]})]})]}),e.jsxs("div",{className:"absolute top-1.5 right-1.5 px-1.5 py-0.5 rounded-full text-[8px] bg-black/60 text-white font-medium flex items-center gap-0.5 backdrop-blur-sm",children:[e.jsx(h,{className:"w-2 h-2 sm:w-2.5 sm:h-2.5"}),e.jsx("span",{className:"max-w-[50px] truncate",children:a.country})]})]})}):e.jsx(b,{className:"overflow-hidden cursor-pointer hover:shadow-lg transition-shadow",onClick:()=>m(`/photo/${a.id}`),children:e.jsxs(W,{className:"p-0 flex gap-3",children:[e.jsx("div",{className:"relative w-24 h-24 flex-shrink-0",children:e.jsx(L,{src:a.photo_url,alt:a.title,className:"w-full h-full"})}),e.jsxs("div",{className:"flex-1 py-2 pr-3",children:[e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"font-medium text-sm",children:a.title}),e.jsxs("p",{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e.jsx(h,{className:"w-3 h-3"}),a.location,", ",a.country]})]}),a.is_featured&&e.jsx(N,{variant:"secondary",className:"text-[10px]",children:t("photoMarketplace.featured")})]}),e.jsxs("div",{className:"flex items-center justify-between mt-2",children:[e.jsx("span",{className:"text-sm font-semibold",children:t("photoMarketplace.fromPrice",{price:a.price_small})}),e.jsxs("div",{className:"flex items-center gap-3 text-muted-foreground text-xs",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(P,{className:"w-3 h-3"}),a.views_count]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(z,{className:"w-3 h-3"}),a.downloads_count]})]})]})]})]})})},a.id))}),e.jsxs("div",{className:"mt-6 relative overflow-hidden rounded-2xl",children:[e.jsxs("div",{className:"absolute inset-0",children:[e.jsx("img",{src:((v=p[2])==null?void 0:v.photo_url)||"",alt:"",className:"w-full h-full object-cover"}),e.jsx("div",{className:"absolute inset-0 bg-gradient-to-r from-black/80 via-black/70 to-black/60"}),e.jsx("div",{className:"absolute inset-0 bg-gradient-to-r from-emerald-600/30 to-teal-600/20 mix-blend-overlay"})]}),e.jsxs("div",{className:"relative z-10 p-5 flex items-start gap-4",children:[e.jsx("div",{className:"p-3 rounded-2xl bg-white/10 backdrop-blur-sm border border-white/20",children:e.jsx(Ne,{className:"w-6 h-6 text-white"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-base font-semibold text-white",children:t("photoMarketplace.charityBannerTitle")}),e.jsx("p",{className:"text-sm text-white/80 mt-1 leading-relaxed",children:t("photoMarketplace.charityBannerDescription")})]})]})]})]}),e.jsx(Q,{})]})};export{Ee as default};
//# sourceMappingURL=PhotoMarketplace-DHi_u6nN.js.map