PageSourceSearch

https://riederalm.lovable.app/assets/ReceptionMenuCopy-X-Aj01Ci.js

js riederalm.lovable.app collected 2026-10-03 03:45:03 UTC 19,827 bytes, 2 lines download raw bytes

1import{r as m,j as e}from"./react-vendor-CShGlGts.js";import{ai as he,cg as Q,aS as me,aT as _e,a7 as ge,aV as xe,ap as G,aW as ve,t as E,ce as fe,w as S,s as v,B as C,b2 as T,W as be,an as je,aM as Ne,aN as ke,aH as we,aP as ye,al as Ce,ac as Ee,bw as X,C as L,a as P,ae as Y,af as ee,z as w}from"./index-BYC0bmF9.js";import{C as Se}from"./calendar-ChaNdtnx.js";import{u as Ae}from"./useMenuApprovalStatus-BQUIx04E.js";import{u as Me}from"./useMenuTypes-DCCwFLie.js";import{u as De}from"./useMenuChangeHistory-B4JlXD7n.js";import{s as Te}from"./subDays-DZPLfhSR.js";import"./query-BUBuIGkW.js";import"./shared-utils--gW9Kwo0.js";import"./supabase-C0joAID3.js";import"./index.esm-DLTvrltQ.js";import"./startOfMonth-B-rb6ulI.js";import"./addMonths-CxZqvFR-.js";import"./isSameMonth-CQvZjdv-.js";import"./setMonth-QYDt0UIt.js";import"./getDaysInMonth-DIbTKDm9.js";import"./isSameDay-C8GttKCU.js";const Ge=({date:f})=>{const{changes:j,groupedChanges:s,loading:V}=De(f),[c,H]=m.useState(!1);return V?e.jsx("div",{className:"mt-6 p-4 border border-border rounded-lg bg-card",children:e.jsx(he,{className:"h-6 w-48"})}):j.length===0?e.jsx("div",{className:"mt-6 p-4 border border-border rounded-lg bg-card",children:e.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground",children:[e.jsx(Q,{className:"h-4 w-4"}),e.jsx("span",{className:"font-medium",children:"Änderungsverlauf"}),e.jsx("span",{className:"text-sm",children:"– Noch keine Änderungen erfasst"})]})}):e.jsx("div",{className:"mt-6","data-testid":"menu-change-history",children:e.jsxs(me,{open:c,onOpenChange:H,children:[e.jsxs(_e,{className:"flex items-center gap-2 w-full p-4 border border-border rounded-lg bg-card hover:bg-accent/50 transition-colors",children:[e.jsx(Q,{className:"h-4 w-4 text-muted-foreground"}),e.jsx("span",{className:"font-medium",children:"Änderungsverlauf"}),e.jsx(ge,{variant:"secondary",className:"ml-1",children:j.length}),e.jsx(xe,{className:G("h-4 w-4 ml-auto transition-transform text-muted-foreground",c&&"rotate-180")})]}),e.jsx(ve,{className:"border border-t-0 border-border rounded-b-lg bg-card p-4",children:e.jsx("div",{className:"space-y-4 max-h-96 overflow-y-auto",children:Object.entries(s).map(([N,R])=>e.jsxs("div",{children:[e.jsxs("div",{className:"font-semibold text-sm text-muted-foreground mb-2 sticky top-0 bg-card py-1",children:["📅 ",N]}),e.jsx("div",{className:"space-y-2 border-l-2 border-border ml-2",children:R.map(u=>e.jsxs("div",{className:"pl-4 py-2 relative",children:[e.jsx("div",{className:"absolute -left-[5px] top-4 w-2 h-2 rounded-full bg-primary"}),e.jsx("div",{className:"flex items-start justify-between gap-2",children:e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"text-xs text-muted-foreground",children:E(new Date(u.changed_at),"HH:mm",{locale:S})}),e.jsx("span",{className:"font-medium text-sm",children:u.field_label||u.field_name}),e.jsxs("span",{className:"text-xs text-muted-foreground",children:["von ",u.display_name]})]}),e.jsx("div",{className:"mt-1 text-sm",children:!u.old_value&&u.new_value?e.jsxs("span",{className:"text-green-600 dark:text-green-400",children:["[NEU] ",u.new_value]}):u.old_value&&!u.new_value?e.jsxs("span",{className:"text-red-600 dark:text-red-400 line-through",children:["[ENTFERNT] ",u.old_value]}):e.jsxs("div",{className:"flex items-start gap-1 flex-wrap",children:[e.jsx("span",{className:"text-red-600 dark:text-red-400 line-through break-words",children:u.old_value}),e.jsx(fe,{className:"h-4 w-4 shrink-0 text-muted-foreground mt-0.5"}),e.jsx("span",{className:"text-green-600 dark:text-green-400 break-words",children:u.new_value})]})})]})})]},u.id))})]},N))})})]})})};function Qe(){const[f,j]=m.useState(new Date),[s,V]=m.useState(null),[c,H]=m.useState(null),[N,R]=m.useState([]),[u,se]=m.useState(null),[k,te]=m.useState(null),[re,K]=m.useState(!1),[q,U]=m.useState(!1),[F,I]=m.useState(!1),[A,ae]=m.useState([]),[M,O]=m.useState([]),_=E(f,"yyyy-MM-dd"),{mpApproved:z,amApproved:$}=Ae(_),{menuTypes:y}=Me(!0);m.useEffect(()=>{W(),ie()},[_]);const ie=async()=>{try{const{data:a,error:t}=await v.from("special_menu_courses").select("*").is("date",null).eq("is_visible",!0).order("menu_type_id").order("group_name").order("position");if(t)throw t;ae(a||[])}catch(a){console.error("Error fetching à la carte courses:",a)}},W=async()=>{K(!0);try{const{data:a,error:t}=await v.from("menu_day").select("*").eq("date",_).single();t&&t.code!=="PGRST116"&&console.error("Error fetching menu:",t),V(a||null);const{data:r,error:n}=await v.from("dahoam_menu").select("*").eq("date",_).single();n&&n.code!=="PGRST116"&&console.error("Error fetching dahoam:",n),H(r||null);const{data:i,error:o}=await v.from("beverage_recommendations_new").select("*").eq("date",_).order("section").order("position");o&&console.error("Error fetching beverages:",o),R(i||[]);const{data:d,error:h}=await v.from("menu_snapshots").select("*").eq("date",_).eq("snapshot_type","kitchen_approval").order("created_at",{ascending:!1}).limit(1).maybeSingle();h||se(d);const{data:p}=await v.from("menu_snapshots").select("*").eq("date",_).eq("snapshot_type","reception_copy").order("created_at",{ascending:!1}).limit(1).maybeSingle();te(p);const{data:g}=await v.from("menu_extra_courses").select("*").eq("date",_).order("position",{ascending:!0});O(g?g.filter(x=>x.is_visible!==!1&&x.text_de):[])}catch(a){console.error("Error:",a)}finally{K(!1)}},ne=a=>{if(!u||!s)return!1;
1const t=(u[a]||"").toString().trim(),r=(s[a]||"").toString().trim();return t!==""&&r!==""&&t!==r},oe=a=>{if(!k||!s)return!1;const t=(k[a]||"").toString().trim(),r=(s[a]||"").toString().trim();return t!==""&&r!==""&&t!==r},le=(a,t)=>s?.course_name_overrides&&s.course_name_overrides[a]?.name_de||t,l=(a,t,r,n,i)=>{if(r&&n!==!1){const o=i?le(i,t):t;let d=r;if(i&&s){const h=i.replace(/_de$/,"_name_de"),p=s[h];p&&p.trim()&&(d=`${p.trim()} – ${r}`)}a.push({label:o,value:d,changed:i?ne(i):!1,changedSinceReceptionCopy:i?oe(i):!1})}},de=a=>M.filter(t=>t.insert_after_dish===a).map(t=>({label:t.course_label,value:t.text_de})),b=(a,t,r,n)=>{r.length>0&&a.push({title:t,items:r}),de(n).forEach(o=>{a.push({title:o.label,items:[o]})})},Z=()=>{const a=[];if(s){const t=[],r=[];l(r,"Brot",s.brot_de,s.brot_visible,"brot_de"),l(r,"Vegi Brot",s.vegi_brot_de,s.vegi_brot_visible,"vegi_brot_de"),b(t,"Brot",r,"brot_de");const n=[];l(n,"Apéro",s.apero_de,s.apero_visible,"apero_de"),l(n,"Vegi Apéro",s.vegi_apero_de,s.vegi_apero_visible,"vegi_apero_de"),b(t,"Apéro",n,"apero_de");const i=[];l(i,"Vorspeise",s.vorspeise_de,s.vorspeise_visible,"vorspeise_de"),l(i,"Vegi Vorspeise",s.vegi_vorspeise_de,s.vegi_vorspeise_visible,"vegi_vorspeise_de"),b(t,"Vorspeise",i,"vorspeise_de");const o=[];l(o,"Suppe",s.suppe_de,s.suppe_visible,"suppe_de"),l(o,"Vegi Suppe",s.vegi_suppe_de,s.vegi_suppe_visible,"vegi_suppe_de"),b(t,"Suppe",o,"suppe_de");const d=[];l(d,"Warme Vorspeise",s.warme_vorspeise_de,s.warme_vorspeise_visible,"warme_vorspeise_de"),l(d,"Vegi Warme Vorspeise",s.vegi_warme_vorspeise_de,s.vegi_warme_vorspeise_visible,"vegi_warme_vorspeise_de"),b(t,"Warme Vorspeise",d,"warme_vorspeise_de");const h=[];l(h,"Hauptgang 1",s.haupt1_de,s.haupt1_visible,"haupt1_de"),l(h,"Hauptgang 2",s.haupt2_de,s.haupt2_visible,"haupt2_de"),l(h,"Vegi Hauptgang",s.haupt_vegi_de,s.haupt_vegi_visible,"haupt_vegi_de"),b(t,"Hauptgänge",h,"haupt_vegi_de");const p=[];l(p,"Dessert",s.dessert_de,s.dessert_visible,"dessert_de"),b(t,"Dessert",p,"dessert_de");const g=[];l(g,"Käse",s.kaese_de,s.kaese_visible,"kaese_de"),b(t,"Käse",g,"kaese_de"),t.length>0&&a.push({sectionTitle:"HAUPTMENÜ",groups:t})}if(M&&M.length>0){const t=M.filter(r=>!r.insert_after_dish);if(t.length>0){const r=[],n=t.map(i=>({label:i.course_label,value:i.text_de}));n.length>0&&r.push({title:"Gerichte",items:n}),r.length>0&&a.push({sectionTitle:"ZUSÄTZLICHE GÄNGE",groups:r})}}if(s){const t=[],r=[];l(r,"Küchengaudi 1",s.kuechengaudi1_de,s.kuechengaudi1_visible,"kuechengaudi1_de"),l(r,"Küchengaudi 2",s.kuechengaudi2_de,s.kuechengaudi2_visible,"kuechengaudi2_de"),l(r,"Küchengaudi 3",s.kuechengaudi3_de,s.kuechengaudi3_visible,"kuechengaudi3_de"),l(r,"Küchengaudi Vegi",s.kuechengaudi_vegi_de,s.kuechengaudi_vegi_visible,"kuechengaudi_vegi_de"),r.length>0&&t.push({title:"Gerichte",items:r}),t.length>0&&a.push({sectionTitle:"KÜCHENGAUDI",groups:t})}if(s){const t=[],r=[];l(r,"Suppe",s.k_suppe_de,s.k_suppe_visible,"k_suppe_de"),l(r,"Hauptgang 1",s.k_haupt1_de,s.k_haupt1_visible,"k_haupt1_de"),l(r,"Hauptgang 2",s.k_haupt2_de,s.k_haupt2_visible,"k_haupt2_de"),l(r,"Dessert",s.k_dessert_de,s.k_dessert_visible,"k_dessert_de"),r.length>0&&t.push({title:"Gerichte",items:r}),t.length>0&&a.push({sectionTitle:"KINDERKARTE",groups:t})}if(s){const t=[],r=[];l(r,"Salat",s.nachmittagsjause_salat_de,s.nachmittagsjause_salat_visible),l(r,"Suppe",s.nachmittagsjause_suppe_de,s.nachmittagsjause_suppe_visible),l(r,"Hauptgang 1",s.nachmittagsjause_haupt1_de,s.nachmittagsjause_haupt1_visible),l(r,"Hauptgang 2",s.nachmittagsjause_haupt2_de,s.nachmittagsjause_haupt2_visible),l(r,"Dessert",s.nachmittagsjause_dessert_de,s.nachmittagsjause_dessert_visible),r.length>0&&t.push({title:"Gerichte",items:r}),t.length>0&&a.push({sectionTitle:"NACHMITTAGSJAUSE",groups:t})}if(s){const t=[],r=[];l(r,"Alternative 1",s.alternativ_gericht1_de,s.alternativ_gericht1_visible),l(r,"Alternative 2",s.alternativ_gericht2_de,s.alternativ_gericht2_visible),l(r,"Alternative 3",s.alternativ_gericht3_de,s.alternativ_gericht3_visible),r.length>0&&t.push({title:"Gerichte",items:r}),t.length>0&&a.push({sectionTitle:"ALTERNATIVE GERICHTE",groups:t})}if(c){const t=[],r=[];l(r,"Vorspeise 1",c.vorspeise1_de,c.vorspeise1_visible),l(r,"Vorspeise 2",c.vorspeise2_de,c.vorspeise2_visible),l(r,"Vorspeise 3",c.vorspeise3_de,c.vorspeise3_visible),r.length>
10&&t.push({title:"Vorspeisen",items:r});const n=[];l(n,"Hauptgericht 1",c.hauptgericht1_de,c.hauptgericht1_visible),l(n,"Hauptgericht 2",c.hauptgericht2_de,c.hauptgericht2_visible),l(n,"Alternative 1",c.alternativ_gericht1_de,c.alternativ_gericht1_visible),l(n,"Alternative 2",c.alternativ_gericht2_de,c.alternativ_gericht2_visible),l(n,"Alternative 3",c.alternativ_gericht3_de,c.alternativ_gericht3_visible),n.length>0&&t.push({title:"Hauptgerichte",items:n});const i=[];if(l(i,"Dessert 1",c.dessert1_de,c.dessert1_visible),l(i,"Dessert 2",c.dessert2_de,c.dessert2_visible),i.length>0&&t.push({title:"Desserts",items:i}),t.length>0&&a.push({sectionTitle:"DAHOAM MENÜ",groups:t}),c?.custom_dishes){const o=c.custom_dishes.filter(d=>d.category==="reservation"&&d.visible!==!1);if(o.length>0){const d=[],h=o.reduce((p,g)=>{const x=g.reservation_source||"Reservierung";return p[x]||(p[x]=[]),p[x].push(g),p},{});Object.entries(h).forEach(([p,g])=>{const x=g.sort((D,ue)=>(D.position||0)-(ue.position||0)).map(D=>({label:D.course_type||"Gericht",value:D.name_de}));x.length>0&&d.push({title:p,items:x})}),d.length>0&&a.push({sectionTitle:"RESERVIERUNGSMENÜS",groups:d})}}}if(N&&N.length>0){const t=[],r={aperitif:"Aperitif",weisswein:"Weißwein",rotwein:"Rotwein",zum_dessert:"Zum Dessert",zum_abschluss:"Zum Abschluss",cocktail:"Cocktail",cider_des_tages:"Cider/Bier des Tages",genuss_zero:"Genuss Zero (Alkoholfrei)"};["aperitif","genuss_zero","weisswein","rotwein","zum_dessert","zum_abschluss","cocktail","cider_des_tages"].forEach(i=>{const o=N.filter(d=>d.section===i&&d.text_de).map(d=>({label:r[i]||i,value:d.text_de.trim()}));o.length>0&&t.push({title:r[i]||i,items:o})}),t.length>0&&a.push({sectionTitle:"GETRÄNKEEMPFEHLUNGEN",groups:t})}return A.length>0&&y&&y.forEach(t=>{const r=A.filter(o=>o.menu_type_id===t.id);if(r.length===0)return;const n=[],i=r.reduce((o,d)=>{const h=d.group_name||"Sonstige";return o[h]||(o[h]=[]),o[h].push(d),o},{});Object.entries(i).forEach(([o,d])=>{const h=d.map(p=>({label:p.course_name_de||"",value:(p.course_name_de||"")+(p.description_de?` - ${p.description_de}`:"")+(p.price?` (€${p.price.toFixed(2).replace(".",",")})`:"")}));h.length>0&&n.push({title:o,items:h})}),n.length>0&&a.push({sectionTitle:`À LA CARTE - ${t.name.toUpperCase()}`,groups:n})}),a},ce=async()=>{const a=Z();if(a.length===0){w.error("Kein Menü zum Kopieren");return}const t=[];t.push(`Menü ${E(f,"EEEE, d. MMMM yyyy",{locale:S})}
1`),t.push(""),t.push("═".repeat(50)),a.forEach((n,i)=>{i>0&&(t.push(""),t.push("─".repeat(50))),t.push(""),t.push(n.sectionTitle),t.push(""),n.groups.forEach(o=>{(n.groups.length>1||o.title!=="Gerichte")&&t.push(`  ${o.title}:`),o.items.forEach(d=>{t.push(`  • ${d.value}`)}),t.push("")})});const r=t.join(`
2`);try{await navigator.clipboard.writeText(r),U(!0),w.success("Menü in Zwischenablage kopiert"),setTimeout(()=>U(!1),2e3)}catch{w.error("Kopieren fehlgeschlagen")}},pe=async()=>{if(s){I(!0);try{const{data:{user:a}}=await v.auth.getUser();if(!a){w.error("Nicht angemeldet"),I(!1);return}const{error:t}=await v.from("menu_snapshots").insert({date:_,snapshot_type:"reception_copy",created_by:a.id,brot_de:s.brot_de,vegi_brot_de:s.vegi_brot_de,vorspeise_de:s.vorspeise_de,vegi_vorspeise_de:s.vegi_vorspeise_de,warme_vorspeise_de:s.warme_vorspeise_de,vegi_warme_vorspeise_de:s.vegi_warme_vorspeise_de,suppe_de:s.suppe_de,vegi_suppe_de:s.vegi_suppe_de,haupt1_de:s.haupt1_de,haupt2_de:s.haupt2_de,haupt_vegi_de:s.haupt_vegi_de,dessert_de:s.dessert_de,kaese_de:s.kaese_de,apero_de:s.apero_de,vegi_apero_de:s.vegi_apero_de,k_suppe_de:s.k_suppe_de,k_haupt1_de:s.k_haupt1_de,k_haupt2_de:s.k_haupt2_de,k_dessert_de:s.k_dessert_de});if(t)throw t;w.success("Als kopiert markiert - Änderungen werden nun gelb markiert"),W()}catch(a){console.error("Error marking as copied:",a),w.error("Fehler beim Speichern")}finally{I(!1)}}},J=Z(),B=J.length>0;return e.jsx("div",{className:"min-h-screen bg-background p-4 md:p-8",children:e.jsxs("div",{className:"max-w-7xl mx-auto",children:[e.jsxs("div",{className:"flex items-center justify-between mb-6",children:[e.jsx("h1",{className:"text-2xl font-semibold text-foreground",children:"Tagesmenü für Rezeption"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(C,{onClick:pe,disabled:!B||F,variant:"outline",className:"gap-2",children:[e.jsx(T,{className:"h-4 w-4"}),F?"Speichern...":k?"Bereits kopiert":"Rezeption kopiert"]}),e.jsxs(C,{onClick:ce,disabled:!B,className:"gap-2",children:[q?e.jsx(T,{className:"h-4 w-4"}):e.jsx(be,{className:"h-4 w-4"}),q?"Kopiert!":"Alles kopieren"]})]})]}),e.jsxs("div",{className:"flex items-center justify-center gap-4 mb-6",children:[e.jsx(C,{variant:"outline",size:"icon",onClick:()=>j(Te(f,1)),children:e.jsx(je,{className:"h-4 w-4"})}),e.jsxs(Ne,{children:[e.jsx(ke,{asChild:!0,children:e.jsxs(C,{variant:"outline",className:"min-w-[240px] justify-center gap-2",children:[e.jsx(we,{className:"h-4 w-4"}),E(f,"EEEE, d. MMMM yyyy",{locale:S})]})}),e.jsx(ye,{className:"w-auto p-0",align:"center",children:e.jsx(Se,{mode:"single",selected:f,onSelect:a=>a&&j(a),locale:S})})]}),e.jsx(C,{variant:"outline",size:"icon",onClick:()=>j(Ce(f,1)),children:e.jsx(Ee,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"flex items-center justify-center gap-3 mb-6",children:[e.jsxs("div",{className:G("flex items-center gap-2 px-3 py-1.5 rounded-full text-sm font-medium",z?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-orange-100 text-orange-700 dark:bg-orange-900/30 dark:text-orange-400"),children:[z?e.jsx(T,{className:"h-4 w-4"}):e.jsx(X,{className:"h-4 w-4"}),"MP ",z?"freigegeben":"ausstehend"]}),e.jsxs("div",{className:G("flex items-center gap-2 px-3 py-1.5 rounded-full text-sm font-medium",$?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-orange-100 text-orange-700 dark:bg-orange-900/30 dark:text-orange-400"),children:[$?e.jsx(T,{className:"h-4 w-4"}):e.jsx(X,{className:"h-4 w-4"}),"AM ",$?"freigegeben":"ausstehend"]})]}),e.jsxs("div",{className:"flex flex-col lg:flex-row gap-6",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[re?e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"Laden..."}):B?e.jsx("div",{className:"space-y-6",children:J.map((a,t)=>e.jsxs(L,{children:[e.jsx(Y,{className:"pb-2",children:e.jsx(ee,{className:"text-lg font-bold",children:a.sectionTitle})}),e.jsx(P,{children:e.jsx("div",{className:"space-y-4",style:{fontSize:"12pt"},children:a.groups.map((r,n)=>e.jsxs("div",{children:[(a.groups.length>1||r.title!=="Gerichte")&&e.jsx("h4",{className:"font-semibold text-muted-foreground mb-1",style:{fontSize:"12pt"},children:r.title}),e.jsx("ul",{className:"space-y-1",children:r.items.map((i,o)=>e.jsxs("li",{className:G("text-foreground",i.changed&&"text-red-600 font-semibold",i.changedSinceReceptionCopy&&!i.changed&&"text-yellow-600 bg-yellow-50 dark:bg-yellow-900/20 font-semibold px-1 rounded"),style:{fontSize:"12pt"},children:["• ",i.value,i.changed&&e.jsx("span",{className:"ml-2 text-xs text-red-500",children:"(seit MP)"}),i.changedSinceReceptionCopy&&!i.changed&&e.jsx("span",{className:"ml-2 text-xs text-yellow-600",children:"(seit Kopieren)"})]},o))})]},n))})})]},t))}):e.jsx(L,{children:e.jsx(P,{className:"py-8",children:e.jsx("div",{className:"text-center text-muted-foreground",children:"Kein Menü für diesen Tag vorhanden"})})}),(u||k)&&e.jsxs("div",{className:"flex items-center justify-center gap-4 text-sm text-muted-foreground mt-4 flex-wrap",children:[u&&e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-3 h-3 rounded-full bg-red-600"}),e.jsx("span",{children:"= Seit MP-Freigabe"})]}),k&&e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-3 h-3 rounded-full bg-yellow-500"}),e.jsxs("span",{children:["= Seit Kopieren (",E(new Date(k.created_at),"HH:mm",{locale:S}),")"]})]})]})]}),e.jsx("div",{className:"w-full lg:w-80 xl:w-96 flex-shrink-0",children:e.jsx("div",{className:"lg:sticky lg:top-4",children:e.jsx(Ge,{date:_})})})]}),e.jsx("p",{className:"text-sm text-muted-foreground mt-4 text-center",children:'Klicke auf "Alles kopieren" um das komplette Menü in die Zwischenablage zu kopieren, dann in Word einfügen (Strg+V)'}),y&&y.length>0&&A.length>0&&e.jsxs("div",{className:"mt-12 pt-8 border-t border-border",children:[e.jsx("h2",{className:"text-xl font-bold text-foreground mb-6 text-center",children:"À LA CARTE"}),e.jsx("div",{className:"space-y-6",children:y.map(a=>{const t=A.filter(n=>n.menu_type_id===a.id);if(t.length===0)return null;const r=t.reduce((n,i)=>{const o=i.group_name||"Sonstige";return n[o]||(n[o]=[]),n[o].push(i),n},{});return e.jsxs(L,{children:[e.jsx(Y,{className:"pb-2",style:{backgroundColor:a.color?`${a.color}20`:void 0,borderBottom:a.color?`2px solid ${a.color}`:void 0},children:e.jsxs(ee,{className:"text-lg font-bold flex items-center gap-2",children:[a.icon&&e.jsx("span",{children:a.icon}),a.name]})}),e.jsx(P,{className:"pt-4",children:e.jsx("div",{className:"space-y-4",style:{fontSize:"12pt"},children:Object.entries(r).map(([n,i])=>e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-muted-foreground mb-2",style:{fontSize:"12pt"},children:n}),e.jsx("ul",{className:"space-y-2",children:i.map(o=>e.jsx("li",{className:"text-foreground",style:{fontSize:"12pt"},children:e.jsxs("div",{className:"flex justify-between items-start",children:[e.jsxs("div",{className:"flex-1",children:[e.jsxs("span",{className:"font-medium",children:["• ",o.
2course_name_de]}),o.description_de&&e.jsx("p",{className:"text-muted-foreground text-sm ml-3 mt-0.5",children:o.description_de})]}),o.price&&e.jsxs("span",{className:"text-foreground font-medium ml-4 whitespace-nowrap",children:["€",o.price.toFixed(2).replace(".",",")]})]})},o.id))})]},n))})})]},a.id)})})]})]})})}export{Qe 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.