feat(sasong): 13 fler grillsasong- & kraftskiva-recept

Grillsasong (+8): grillad entrecote m. potatisgratang, grillkorv m.
potatissallad, hemgjorda hamburgare, grillad kyckling m. klyftpotatis,
grillspett, majskolv, halloumi, grillad lax. Kraftskiva (+5): toast
skagen, vasterbottenpaj m. kantareller, agghalvor m. rakor, knackebrod
m. vasterbottenost, kraftsallad. Ratt ASCII-slug (grillsasong/kraftskiva).
Verifierat: grillsasong 5->13, kraftskiva 4->9, seed gron (406 recept).
This commit is contained in:
Claude
2026-08-20 01:00:55 +00:00
parent fd4670d6b7
commit 0c614e0920
2 changed files with 488 additions and 0 deletions
@@ -0,0 +1,486 @@
import type { SeedRecipe } from "./recipes.js";
/**
* Fler säsongs-/högtidsrecept: grillsäsong (grillsasong) och kräftskiva
* (kraftskiva). Slugs för holidayTags MÅSTE vara ASCII (grillsasong,
* kraftskiva) matchar seasonEvents.ts, aldrig "grillsäsong"/"kräftskiva".
* Egna formuleringar. Alla ids finns i katalogen; enheter beräkningsbara.
*/
export const EVENT_RECIPES_EXTRA: SeedRecipe[] = [
// ===================== Grillsäsong =====================
{
slug: "grillad-entrecote-potatisgratang",
titleSv: "Grillad entrecôte med potatisgratäng",
descriptionSv:
"Saftig grillad entrecôte med krispig yta serverad till en krämig, gyllene potatisgratäng grillsäsongens lyxmiddag.",
cuisine: "swedish",
mealTypes: ["dinner"],
tags: ["high_protein", "luxury"],
methods: ["grill", "oven"],
equipment: ["grill", "oven"],
difficulty: "medium",
prepMin: 20,
cookMin: 50,
portions: 4,
spiceLevel: 0,
mealPrepFriendly: false,
freezerFriendly: false,
peakSeasons: ["summer"],
holidayTags: ["grillsasong"],
verificationStatus: "editorial",
dnaProtein: "entrecote",
dnaCarb: "potato",
dnaVegetables: [],
dnaFlavor: ["savory", "creamy", "grilled"],
ingredients: [
{ ing: "entrecote", nameSv: "Entrecôte", qty: 700, unit: "GRAM", optional: false },
{ ing: "potato", nameSv: "Potatis", qty: 800, unit: "GRAM", optional: false },
{ ing: "cream", nameSv: "Grädde", qty: 3, unit: "DECILITER", optional: false },
{ ing: "cheese_hard", nameSv: "Hårdost", qty: 100, unit: "GRAM", optional: false },
{ ing: "garlic", nameSv: "Vitlöksklyfta", qty: 1, unit: "COUNT", optional: false },
{ ing: "butter", nameSv: "Smör", qty: 20, unit: "GRAM", optional: false },
],
steps: [
{ text: "Skiva potatisen tunt, varva i en smord form med pressad vitlök, salt och grädde. Toppa med riven ost." },
{ text: "Grädda gratängen i 200°C i cirka 45 minuter tills gyllene och mjuk." },
{ text: "Salta köttet och grilla entrecôten till önskad stekgrad, låt vila några minuter. Servera med gratängen och en klick smör." },
],
},
{
slug: "grillkorv-potatissallad",
titleSv: "Grillkorv med hemgjord potatissallad",
descriptionSv:
"Rykande grillad korv med en krämig, syrlig potatissallad med rödlök och dill klassisk grillmat i trädgården.",
cuisine: "swedish",
mealTypes: ["dinner", "lunch"],
tags: ["budget", "kid_friendly"],
methods: ["grill", "stovetop"],
equipment: ["grill", "stove"],
difficulty: "easy",
prepMin: 20,
cookMin: 20,
portions: 4,
spiceLevel: 0,
mealPrepFriendly: true,
freezerFriendly: false,
peakSeasons: ["summer"],
holidayTags: ["grillsasong"],
verificationStatus: "editorial",
dnaProtein: "grill_sausage",
dnaCarb: "potato",
dnaVegetables: ["red_onion"],
dnaFlavor: ["savory", "tangy", "grilled"],
ingredients: [
{ ing: "grill_sausage", nameSv: "Grillkorv", qty: 500, unit: "GRAM", optional: false },
{ ing: "potato", nameSv: "Potatis", qty: 700, unit: "GRAM", optional: false },
{ ing: "mayonnaise", nameSv: "Majonnäs", qty: 1, unit: "DECILITER", optional: false },
{ ing: "creme_fraiche", nameSv: "Crème fraiche", qty: 1, unit: "DECILITER", optional: false },
{ ing: "red_onion", nameSv: "Rödlök", qty: 1, unit: "COUNT", optional: false },
{ ing: "mustard", nameSv: "Senap", qty: 1, unit: "TABLESPOON", optional: false },
{ ing: "dill", nameSv: "Dill", qty: 15, unit: "GRAM", optional: false },
],
steps: [
{ text: "Koka potatisen mjuk, låt svalna och skär i skivor." },
{ text: "Rör majonnäs, crème fraiche, senap, hackad rödlök och dill till en dressing, vänd ner potatisen. Salta." },
{ text: "Grilla korven gyllene och servera med potatissalladen." },
],
},
{
slug: "hemgjorda-hamburgare",
titleSv: "Hemgjorda hamburgare",
descriptionSv:
"Saftiga grillade biffar av nötfärs i mjukt bröd med ost, tomat och rödlök grillsäsongens självklara favorit.",
cuisine: "american",
mealTypes: ["dinner", "lunch"],
tags: ["high_protein", "kid_friendly"],
methods: ["grill"],
equipment: ["grill"],
difficulty: "easy",
prepMin: 15,
cookMin: 12,
portions: 4,
spiceLevel: 0,
mealPrepFriendly: false,
freezerFriendly: false,
peakSeasons: ["summer"],
holidayTags: ["grillsasong"],
verificationStatus: "editorial",
dnaProtein: "minced_beef",
dnaCarb: "hamburger_bun",
dnaVegetables: ["tomato", "red_onion"],
dnaFlavor: ["savory", "juicy", "grilled"],
ingredients: [
{ ing: "minced_beef", nameSv: "Nötfärs", qty: 600, unit: "GRAM", optional: false },
{ ing: "hamburger_bun", nameSv: "Hamburgerbröd", qty: 4, unit: "COUNT", optional: false },
{ ing: "cheddar", nameSv: "Cheddarost", qty: 80, unit: "GRAM", optional: false },
{ ing: "tomato", nameSv: "Tomat", qty: 1, unit: "COUNT", optional: false },
{ ing: "red_onion", nameSv: "Rödlök", qty: 1, unit: "COUNT", optional: false },
{ ing: "lettuce", nameSv: "Sallad", qty: 60, unit: "GRAM", optional: false },
{ ing: "ketchup", nameSv: "Ketchup", qty: 0.5, unit: "DECILITER", optional: true },
],
steps: [
{ text: "Forma färsen till fyra biffar, salta och peppra rejält på ytan." },
{ text: "Grilla biffarna cirka 4 minuter per sida, lägg på ost sista minuten så den smälter." },
{ text: "Rosta brödet lätt på grillen och bygg burgare med sallad, tomat, rödlök och ketchup." },
],
},
{
slug: "grillad-kyckling-klyftpotatis",
titleSv: "Grillad kycklingfilé med klyftpotatis",
descriptionSv:
"Marinerad, grillad kycklingfilé med krispiga ugnsklyftor och paprika mättande och enkel grillmiddag.",
cuisine: "international",
mealTypes: ["dinner"],
tags: ["high_protein"],
methods: ["grill", "oven"],
equipment: ["grill", "oven"],
difficulty: "easy",
prepMin: 15,
cookMin: 30,
portions: 4,
spiceLevel: 1,
mealPrepFriendly: true,
freezerFriendly: false,
peakSeasons: ["summer"],
holidayTags: ["grillsasong"],
verificationStatus: "editorial",
dnaProtein: "chicken_breast",
dnaCarb: "potato",
dnaVegetables: [],
dnaFlavor: ["smoky", "savory", "grilled"],
ingredients: [
{ ing: "chicken_breast", nameSv: "Kycklingfilé", qty: 600, unit: "GRAM", optional: false },
{ ing: "potato", nameSv: "Potatis", qty: 800, unit: "GRAM", optional: false },
{ ing: "olive_oil", nameSv: "Olivolja", qty: 3, unit: "TABLESPOON", optional: false },
{ ing: "paprika_powder", nameSv: "Paprikapulver", qty: 2, unit: "TEASPOON", optional: false },
{ ing: "garlic", nameSv: "Vitlöksklyfta", qty: 2, unit: "COUNT", optional: false },
],
steps: [
{ text: "Klyfta potatisen, vänd i olja, salt och lite paprika och rosta i 225°C i 30 minuter." },
{ text: "Marinera kycklingen i olja, paprika och pressad vitlök." },
{ text: "Grilla kycklingen genomstekt, cirka 6 minuter per sida. Servera med klyftpotatisen." },
],
},
{
slug: "grillspett-flaskfile-paprika",
titleSv: "Grillspett med fläskfilé och paprika",
descriptionSv:
"Färgglada spett med mör fläskfilé, paprika och rödlök enkelt att förbereda och grilla på fest.",
cuisine: "international",
mealTypes: ["dinner"],
tags: ["high_protein", "low_carb"],
methods: ["grill"],
equipment: ["grill"],
difficulty: "easy",
prepMin: 20,
cookMin: 15,
portions: 4,
spiceLevel: 0,
mealPrepFriendly: true,
freezerFriendly: false,
peakSeasons: ["summer"],
holidayTags: ["grillsasong"],
verificationStatus: "editorial",
dnaProtein: "pork_tenderloin",
dnaVegetables: ["bell_pepper", "red_onion"],
dnaFlavor: ["savory", "smoky", "fresh"],
ingredients: [
{ ing: "pork_tenderloin", nameSv: "Fläskfilé", qty: 600, unit: "GRAM", optional: false },
{ ing: "bell_pepper", nameSv: "Paprika", qty: 2, unit: "COUNT", optional: false },
{ ing: "red_onion", nameSv: "Rödlök", qty: 2, unit: "COUNT", optional: false },
{ ing: "olive_oil", nameSv: "Olivolja", qty: 2, unit: "TABLESPOON", optional: false },
{ ing: "paprika_powder", nameSv: "Paprikapulver", qty: 1, unit: "TEASPOON", optional: false },
],
steps: [
{ text: "Skär fläskfilé, paprika och rödlök i jämna bitar och trä på spett." },
{ text: "Pensla med olja, salta och strö paprikapulver." },
{ text: "Grilla spetten runt om tills köttet är genomstekt och grönsakerna fått färg, cirka 12 minuter." },
],
},
{
slug: "grillad-majskolv-ortsmor",
titleSv: "Grillad majskolv med örtsmör",
descriptionSv:
"Söta majskolvar grillade gyllene och penslade med smält örtsmör ett självklart grilltillbehör.",
cuisine: "american",
mealTypes: ["starter", "lunch"],
tags: ["vegetarian", "budget"],
methods: ["grill"],
equipment: ["grill"],
difficulty: "easy",
prepMin: 5,
cookMin: 15,
portions: 4,
spiceLevel: 0,
mealPrepFriendly: false,
freezerFriendly: false,
peakSeasons: ["summer"],
holidayTags: ["grillsasong"],
verificationStatus: "editorial",
dnaVegetables: ["corn_cob"],
dnaFlavor: ["sweet", "buttery", "grilled"],
ingredients: [
{ ing: "corn_cob", nameSv: "Majskolv", qty: 4, unit: "COUNT", optional: false },
{ ing: "butter", nameSv: "Smör", qty: 60, unit: "GRAM", optional: false },
{ ing: "garlic", nameSv: "Vitlöksklyfta", qty: 1, unit: "COUNT", optional: false },
{ ing: "parsley", nameSv: "Persilja", qty: 15, unit: "GRAM", optional: false },
],
steps: [
{ text: "Förkoka majskolvarna 5 minuter så de blir mjukare." },
{ text: "Smält smör med pressad vitlök och hackad persilja." },
{ text: "Grilla kolvarna tills de fått fina ränder, pensla med örtsmöret och salta." },
],
},
{
slug: "grillad-halloumi-gronsaker",
titleSv: "Grillad halloumi med grillade grönsaker",
descriptionSv:
"Gyllene grillad halloumi med rökiga grillade grönsaker och olivolja grillsäsongens vegetariska favorit.",
cuisine: "greek",
mealTypes: ["dinner", "lunch"],
tags: ["vegetarian", "low_carb"],
methods: ["grill"],
equipment: ["grill"],
difficulty: "easy",
prepMin: 15,
cookMin: 15,
portions: 4,
spiceLevel: 0,
mealPrepFriendly: false,
freezerFriendly: false,
peakSeasons: ["summer"],
holidayTags: ["grillsasong"],
verificationStatus: "editorial",
dnaProtein: "halloumi",
dnaVegetables: ["zucchini", "bell_pepper", "aubergine"],
dnaFlavor: ["savory", "smoky", "fresh"],
ingredients: [
{ ing: "halloumi", nameSv: "Halloumi", qty: 400, unit: "GRAM", optional: false },
{ ing: "zucchini", nameSv: "Zucchini", qty: 1, unit: "COUNT", optional: false },
{ ing: "bell_pepper", nameSv: "Paprika", qty: 1, unit: "COUNT", optional: false },
{ ing: "aubergine", nameSv: "Aubergine", qty: 1, unit: "COUNT", optional: false },
{ ing: "olive_oil", nameSv: "Olivolja", qty: 3, unit: "TABLESPOON", optional: false },
],
steps: [
{ text: "Skiva grönsakerna, pensla med olja och salt och grilla mjuka och rökiga." },
{ text: "Skiva halloumin och grilla tills den fått gyllene ränder." },
{ text: "Lägg upp allt, ringla över mer olivolja och peppra." },
],
},
{
slug: "grillad-lax-citron",
titleSv: "Grillad lax med citron och dill",
descriptionSv:
"Saftig laxfilé grillad med citron och dill lätt och fräsch grillmat med havssmak.",
cuisine: "nordic",
mealTypes: ["dinner"],
tags: ["high_protein", "low_carb", "quick"],
methods: ["grill"],
equipment: ["grill"],
difficulty: "easy",
prepMin: 10,
cookMin: 12,
portions: 4,
spiceLevel: 0,
mealPrepFriendly: false,
freezerFriendly: false,
peakSeasons: ["summer"],
holidayTags: ["grillsasong"],
verificationStatus: "editorial",
dnaProtein: "salmon",
dnaVegetables: [],
dnaFlavor: ["fresh", "citrus", "grilled"],
ingredients: [
{ ing: "salmon", nameSv: "Laxfilé", qty: 600, unit: "GRAM", optional: false },
{ ing: "lemon", nameSv: "Citron", qty: 1, unit: "COUNT", optional: false },
{ ing: "olive_oil", nameSv: "Olivolja", qty: 2, unit: "TABLESPOON", optional: false },
{ ing: "dill", nameSv: "Dill", qty: 15, unit: "GRAM", optional: false },
],
steps: [
{ text: "Pensla laxen med olja, salta och lägg citronskivor ovanpå." },
{ text: "Grilla laxen med skinnsidan ned tills den precis släpper, cirka 10 minuter." },
{ text: "Toppa med dill och pressa över citron före servering." },
],
},
// ===================== Kräftskiva =====================
{
slug: "toast-skagen",
titleSv: "Toast Skagen",
descriptionSv:
"Krämig röra av räkor, majonnäs och dill på rostat bröd en elegant klassiker som lyfter kräftskivan.",
cuisine: "swedish",
mealTypes: ["starter"],
tags: ["high_protein", "luxury"],
methods: ["stovetop"],
equipment: ["stove"],
difficulty: "easy",
prepMin: 15,
cookMin: 5,
portions: 4,
spiceLevel: 0,
mealPrepFriendly: false,
freezerFriendly: false,
peakSeasons: ["summer", "autumn"],
holidayTags: ["kraftskiva"],
verificationStatus: "editorial",
dnaProtein: "shrimp",
dnaVegetables: [],
dnaFlavor: ["creamy", "briny", "fresh"],
ingredients: [
{ ing: "shrimp", nameSv: "Räkor", qty: 300, unit: "GRAM", optional: false },
{ ing: "mayonnaise", nameSv: "Majonnäs", qty: 1, unit: "DECILITER", optional: false },
{ ing: "creme_fraiche", nameSv: "Crème fraiche", qty: 0.5, unit: "DECILITER", optional: false },
{ ing: "dill", nameSv: "Dill", qty: 15, unit: "GRAM", optional: false },
{ ing: "lemon", nameSv: "Citron", qty: 0.5, unit: "COUNT", optional: false },
{ ing: "bread_sourdough", nameSv: "Bröd", qty: 4, unit: "COUNT", optional: false },
{ ing: "butter", nameSv: "Smör", qty: 30, unit: "GRAM", optional: false },
],
steps: [
{ text: "Blanda räkor med majonnäs, crème fraiche, hackad dill och en skvätt citron. Salta." },
{ text: "Stek brödskivorna gyllene i smör." },
{ text: "Lägg upp röran på det varma brödet och toppa med dill." },
],
},
{
slug: "vasterbottenpaj-kantareller",
titleSv: "Västerbottenpaj med kantareller",
descriptionSv:
"Krämig ostpaj med Västerbottensost och gyllene kantareller den självklara pajen till kräftskivan.",
cuisine: "swedish",
mealTypes: ["dinner", "lunch"],
tags: ["vegetarian"],
methods: ["oven"],
equipment: ["oven"],
difficulty: "medium",
prepMin: 25,
cookMin: 40,
portions: 6,
spiceLevel: 0,
mealPrepFriendly: true,
freezerFriendly: true,
peakSeasons: ["summer", "autumn"],
holidayTags: ["kraftskiva"],
verificationStatus: "editorial",
dnaCarb: "flour_wheat",
dnaVegetables: ["chanterelle"],
dnaFlavor: ["savory", "rich", "earthy"],
ingredients: [
{ ing: "flour_wheat", nameSv: "Vetemjöl", qty: 3, unit: "DECILITER", optional: false },
{ ing: "butter", nameSv: "Smör", qty: 125, unit: "GRAM", optional: false },
{ ing: "egg", nameSv: "Ägg", qty: 3, unit: "COUNT", optional: false },
{ ing: "cream", nameSv: "Grädde", qty: 3, unit: "DECILITER", optional: false },
{ ing: "vasterbotten_cheese", nameSv: "Västerbottensost", qty: 200, unit: "GRAM", optional: false },
{ ing: "chanterelle", nameSv: "Kantareller", qty: 200, unit: "GRAM", optional: false },
],
steps: [
{ text: "Nyp ihop mjöl och smör, tillsätt lite vatten till en deg och tryck ut i en pajform. Förgrädda i 200°C i 10 minuter." },
{ text: "Stek kantarellerna gyllene och fördela i pajskalet med riven ost." },
{ text: "Vispa ihop ägg och grädde, salta och häll över. Grädda i 200°C i cirka 30 minuter tills stadig och gyllene." },
],
},
{
slug: "agghalvor-rakor",
titleSv: "Ägghalvor med räkor och majonnäs",
descriptionSv:
"Kokta ägghalvor toppade med räkor, en klick majonnäs och dill snabbt, snyggt och perfekt på kräftskivan.",
cuisine: "swedish",
mealTypes: ["starter"],
tags: ["high_protein", "low_carb", "quick"],
methods: ["stovetop"],
equipment: ["stove"],
difficulty: "easy",
prepMin: 10,
cookMin: 10,
portions: 4,
spiceLevel: 0,
mealPrepFriendly: false,
freezerFriendly: false,
peakSeasons: ["summer", "autumn"],
holidayTags: ["kraftskiva"],
verificationStatus: "editorial",
dnaProtein: "egg",
dnaVegetables: [],
dnaFlavor: ["savory", "creamy", "fresh"],
ingredients: [
{ ing: "egg", nameSv: "Ägg", qty: 6, unit: "COUNT", optional: false },
{ ing: "shrimp", nameSv: "Räkor", qty: 150, unit: "GRAM", optional: false },
{ ing: "mayonnaise", nameSv: "Majonnäs", qty: 0.5, unit: "DECILITER", optional: false },
{ ing: "dill", nameSv: "Dill", qty: 10, unit: "GRAM", optional: false },
],
steps: [
{ text: "Hårdkoka äggen, skala och halvera dem." },
{ text: "Klicka lite majonnäs på varje halva och toppa med räkor." },
{ text: "Strö över dill och lite salt. Servera kylda." },
],
},
{
slug: "knackebrod-vasterbottenost",
titleSv: "Knäckebröd med västerbottenost",
descriptionSv:
"Krispigt knäckebröd med smör och skivad Västerbottensost enkelt tilltugg som hör kräftskivan till.",
cuisine: "swedish",
mealTypes: ["snack", "starter"],
tags: ["vegetarian", "quick", "budget"],
methods: ["no_cook"],
equipment: [],
difficulty: "beginner",
prepMin: 5,
cookMin: 0,
portions: 4,
spiceLevel: 0,
mealPrepFriendly: false,
freezerFriendly: false,
peakSeasons: ["summer", "autumn"],
holidayTags: ["kraftskiva"],
verificationStatus: "editorial",
dnaVegetables: [],
dnaFlavor: ["savory", "crisp", "rich"],
ingredients: [
{ ing: "knackebrod", nameSv: "Knäckebröd", qty: 120, unit: "GRAM", optional: false },
{ ing: "butter", nameSv: "Smör", qty: 40, unit: "GRAM", optional: false },
{ ing: "vasterbotten_cheese", nameSv: "Västerbottensost", qty: 150, unit: "GRAM", optional: false },
],
steps: [
{ text: "Bre ett tunt lager smör på knäckebrödet." },
{ text: "Skiva Västerbottensosten och lägg på." },
{ text: "Toppa gärna med lite dill eller peppar." },
],
},
{
slug: "kraftsallad-dill",
titleSv: "Kräftsallad med dill",
descriptionSv:
"Krämig kräftsallad med dill och citron att toppa bröd eller ägg med en fräsch röra till kräftskivan.",
cuisine: "swedish",
mealTypes: ["starter"],
tags: ["high_protein", "low_carb"],
methods: ["no_cook"],
equipment: [],
difficulty: "easy",
prepMin: 15,
cookMin: 0,
portions: 4,
spiceLevel: 0,
mealPrepFriendly: true,
freezerFriendly: false,
peakSeasons: ["summer", "autumn"],
holidayTags: ["kraftskiva"],
verificationStatus: "editorial",
dnaProtein: "crayfish",
dnaVegetables: [],
dnaFlavor: ["creamy", "briny", "fresh"],
ingredients: [
{ ing: "crayfish", nameSv: "Kräftor (skalade)", qty: 250, unit: "GRAM", optional: false },
{ ing: "mayonnaise", nameSv: "Majonnäs", qty: 1, unit: "DECILITER", optional: false },
{ ing: "creme_fraiche", nameSv: "Crème fraiche", qty: 0.5, unit: "DECILITER", optional: false },
{ ing: "dill", nameSv: "Dill", qty: 15, unit: "GRAM", optional: false },
{ ing: "lemon", nameSv: "Citron", qty: 0.5, unit: "COUNT", optional: false },
],
steps: [
{ text: "Hacka kräftstjärtarna grovt." },
{ text: "Blanda med majonnäs, crème fraiche, hackad dill och pressad citron. Salta." },
{ text: "Låt stå kallt en stund så smakerna sätter sig. Gott på knäckebröd eller ägghalvor." },
],
},
];
@@ -75,6 +75,7 @@ import { EXTRA_RECIPES } from "./extra-recipes.js";
import { CHEF_RECIPES } from "./chef-recipes.js";
import { CHEF_RECIPES_EXTRA } from "./chef-recipes-extra.js";
import { CHEF_RECIPES_EXTRA2 } from "./chef-recipes-extra2.js";
import { EVENT_RECIPES_EXTRA } from "./event-recipes-extra.js";
/** Hela seed-katalogen: committade verifierade recept + nya redaktionella extrarecept. */
export const SEED_RECIPES: SeedRecipe[] = [
@@ -83,4 +84,5 @@ export const SEED_RECIPES: SeedRecipe[] = [
...CHEF_RECIPES,
...CHEF_RECIPES_EXTRA,
...CHEF_RECIPES_EXTRA2,
...EVENT_RECIPES_EXTRA,
];