Please create a colorful handbook compact size in PPT format on topic " possessive pronouns" for 3rd grade ESL student in table form with list of possessive pronouns along with it's Russian translation on right side column and examples with Russian translation in third column.Mention the formula to construct sentences and write 15 easy conversation logical (not funny) questions along with it's answers under it .The above mentioned file is just an example for you.

Reading File
Reading File
Reading File
Running Command

cd /home/daytona/workspace/attachments/d0cb5250-fb55-455b-89b2-135e2d6ec1c6 && p…

Running Command

mkdir -p /home/daytona/workspace/possessive-pronouns-handbook && ls /home/dayton…

Writing File

~/possessive-pronouns-handbook/build.js

const pptxgen = require("pptxgenjs");

const pres = new pptxgen();
pres.layout = "LAYOUT_4x3"; // compact handbook size
pres.title = "Possessive Pronouns Handbook – Grade 3 ESL";

// ─── COLOUR PALETTE ────────────────────────────────────────────────────────
const C = {
  deepPurple:  "4A148C",
  purple:      "7B1FA2",
  violet:      "AB47BC",
  lavender:    "E1BEE7",
  paleLavender:"F3E5F5",
  gold:        "F9A825",
  amber:       "FFD54F",
  teal:        "00695C",
  tealLight:   "4DB6AC",
  tealPale:    "E0F2F1",
  coral:       "E64A19",
  coralPale:   "FBE9E7",
  white:       "FFFFFF",
  darkText:    "1A237E",
  midText:     "4A148C",
  rowAlt1:     "EDE7F6",
  rowAlt2:     "F3E5F5",
};

// ─── HELPERS ───────────────────────────────────────────────────────────────
function slideTitle(slide, text, bgColor, fgColor) {
  slide.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 10, h: 0.75,
    fill: { color: bgColor || C.deepPurple },
    line: { color: bgColor || C.deepPurple },
  });
  slide.addText(text, {
    x: 0, y: 0, w: 10, h: 0.75,
    fontSize: 22, bold: true, color: fgColor || C.white,
    align: "center", valign: "middle",
    fontFace: "Arial Rounded MT Bold",
  });
}

function slideFooter(slide) {
  slide.addShape(pres.ShapeType.rect, {
    x: 0, y: 7.3, w: 10, h: 0.2,
    fill: { color: C.gold },
    line: { color: C.gold },
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 1 – COVER
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();

  // full-slide gradient-like background
  s.addShape(pres.ShapeType.rect, { x:0,y:0,w:10,h:7.5, fill:{color:C.deepPurple}, line:{color:C.deepPurple} });
  s.addShape(pres.ShapeType.rect, { x:0,y:3.5,w:10,h:4,   fill:{color:C.purple},    line:{color:C.purple}    });

  // decorative circles
  s.addShape(pres.ShapeType.ellipse, { x:7.5, y:-0.4, w:2.5, h:2.5, fill:{color:C.violet}, line:{color:C.violet} });
  s.addShape(pres.ShapeType.ellipse, { x:-0.6, y:5.8, w:2,   h:2,   fill:{color:C.gold},   line:{color:C.gold}   });
  s.addShape(pres.ShapeType.ellipse, { x:4,    y:5.5, w:1.2, h:1.2, fill:{color:C.amber},  line:{color:C.amber}  });

  // grade badge
  s.addShape(pres.ShapeType.roundRect, {
    x:0.4, y:0.25, w:2.2, h:0.55,
    fill:{color:C.gold}, line:{color:C.gold}, rectRadius:0.1,
  });
  s.addText("Grade 3 ESL", {
    x:0.4,y:0.25,w:2.2,h:0.55, fontSize:11, bold:true,
    color:C.deepPurple, align:"center", valign:"middle",
  });

  // emoji/icon row
  s.addText("📚 ✏️ 🌟", {
    x:0,y:1.0,w:10,h:0.7,
    fontSize:32, align:"center", valign:"middle",
  });

  // main title
  s.addText("Possessive\nPronouns", {
    x:0.5,y:1.6,w:9,h:2.2,
    fontSize:48, bold:true, color:C.white,
    align:"center", valign:"middle",
    fontFace:"Arial Rounded MT Bold",
    shadow:{ type:"outer", color:"000000", blur:8, offset:4, angle:45, opacity:0.45 },
  });

  // subtitle band
  s.addShape(pres.ShapeType.roundRect, {
    x:1.5,y:3.65,w:7,h:0.65,
    fill:{color:C.gold}, line:{color:C.gold}, rectRadius:0.12,
  });
  s.addText("Handbook – Table, Formula & Conversations", {
    x:1.5,y:3.65,w:7,h:0.65,
    fontSize:13, bold:true, color:C.deepPurple,
    align:"center", valign:"middle",
  });

  // sub-info
  s.addText("My  •  Your  •  His  •  Her  •  Its  •  Our  •  Their", {
    x:0.5,y:4.5,w:9,h:0.55,
    fontSize:16, color:C.lavender, align:"center", valign:"middle", italic:true,
  });
  s.addText("English ⇄ Russian", {
    x:0.5,y:5.1,w:9,h:0.45,
    fontSize:14, color:C.amber, align:"center", valign:"middle", bold:true,
  });

  // bottom note
  s.addText("Made with ❤️ for young learners", {
    x:0.5,y:6.8,w:9,h:0.4,
    fontSize:10, color:C.lavender, align:"center", valign:"middle", italic:true,
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 2 – WHAT IS A POSSESSIVE PRONOUN?
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:7.5, fill:{color:C.paleLavender}, line:{color:C.paleLavender}});
  slideTitle(s, "What is a Possessive Pronoun? 🤔", C.deepPurple);

  // definition box
  s.addShape(pres.ShapeType.roundRect, {
    x:0.4,y:0.9,w:9.2,h:1.4,
    fill:{color:C.lavender}, line:{color:C.violet, pt:2}, rectRadius:0.15,
  });
  s.addText([
    {text:"A possessive pronoun ", options:{bold:false, color:C.darkText}},
    {text:"shows ownership", options:{bold:true, color:C.deepPurple}},
    {text:" — it tells us who something ", options:{bold:false, color:C.darkText}},
    {text:"belongs to", options:{bold:true, color:C.coral}},
    {text:".", options:{bold:false, color:C.darkText}},
  ], {x:0.4,y:0.9,w:9.2,h:1.4, fontSize:16, align:"center", valign:"middle", fontFace:"Arial"});

  // examples
  const examples = [
    { en:"This is MY pencil.", ru:"Это МОЙ карандаш.", color:C.deepPurple, bg:"EDE7F6" },
    { en:"That is HER book.", ru:"Это ЕЁ книга.", color:C.teal, bg:"E0F2F1" },
    { en:"The bag is OUR bag.", ru:"Сумка — НАША сумка.", color:C.coral, bg:"FBE9E7" },
  ];

  examples.forEach((ex, i) => {
    const y = 2.5 + i * 1.35;
    s.addShape(pres.ShapeType.roundRect, {
      x:0.4,y,w:9.2,h:1.2,
      fill:{color:ex.bg}, line:{color:ex.color, pt:2}, rectRadius:0.12,
    });
    s.addText("🔑 " + ex.en, {
      x:0.6,y:y+0.08,w:9,h:0.5,
      fontSize:15, bold:true, color:ex.color,
    });
    s.addText("   " + ex.ru, {
      x:0.6,y:y+0.58,w:9,h:0.45,
      fontSize:13, italic:true, color:C.midText,
    });
  });
  slideFooter(s);
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 3 – POSSESSIVE PRONOUNS TABLE
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:7.5, fill:{color:"FAFAFA"}, line:{color:"FAFAFA"}});
  slideTitle(s, "📋 Possessive Pronouns Table", C.teal);

  const headers = [
    { text:"Possessive\nPronoun (EN)", options:{bold:true, color:C.white, fill:C.teal} },
    { text:"Russian\nTranslation", options:{bold:true, color:C.white, fill:C.teal} },
    { text:"Example Sentence\n(EN → RU)", options:{bold:true, color:C.white, fill:C.teal} },
  ];

  const rows = [
    ["MY\n(мой / моя / моё / мои)", "мой / моя /\nмоё / мои", "My cat is black.\nМоя кошка чёрная."],
    ["YOUR\n(твой / ваш)", "твой / твоя /\nваш / ваша", "Your bag is big.\nТвоя сумка большая."],
    ["HIS\n(его)", "его", "His bike is fast.\nЕго велосипед быстрый."],
    ["HER\n(её)", "её", "Her dress is red.\nЕё платье красное."],
    ["ITS\n(его / её)", "его / её", "Its tail is long.\nЕго хвост длинный."],
    ["OUR\n(наш)", "наш / наша /\nнаше / наши", "Our school is big.\nНаша школа большая."],
    ["THEIR\n(их)", "их", "Their room is clean.\nИх комната чистая."],
  ];

  const rowBg = ["EDE7F6","E0F2F1","FFF9C4","FCE4EC","E8F5E9","FBE9E7","E3F2FD"];

  const tableRows = [
    headers.map(h => ({
      text: h.text,
      options: {
        bold: true, fontSize: 11, color: C.white,
        fill: { color: C.teal }, align: "center", valign: "middle",
        fontFace: "Arial",
      }
    })),
    ...rows.map((r, i) => r.map((cell, ci) => ({
      text: cell,
      options: {
        fontSize: ci === 0 ? 12 : 11,
        bold: ci === 0,
        color: ci === 0 ? C.deepPurple : (ci === 1 ? C.teal : "333333"),
        fill: { color: rowBg[i] },
        align: "center", valign: "middle",
        fontFace: "Arial",
      }
    })))
  ];

  s.addTable(tableRows, {
    x: 0.15, y: 0.85, w: 9.7, h: 6.3,
    colW: [2.5, 2.5, 4.7],
    border: { type: "solid", color: C.teal, pt: 1 },
    autoPage: false,
  });

  slideFooter(s);
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 4 – FORMULA
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:7.5, fill:{color:C.tealPale}, line:{color:C.tealPale}});
  slideTitle(s, "✏️ Formula to Build Sentences", C.teal);

  // formula box
  s.addShape(pres.ShapeType.roundRect, {
    x:0.4,y:0.9,w:9.2,h:1.1,
    fill:{color:C.teal}, line:{color:C.teal}, rectRadius:0.15,
  });
  s.addText("POSSESSIVE PRONOUN + NOUN + VERB + REST OF SENTENCE", {
    x:0.4,y:0.9,w:9.2,h:1.1,
    fontSize:14, bold:true, color:C.white,
    align:"center", valign:"middle", fontFace:"Arial Rounded MT Bold",
  });

  // breakdown boxes
  const parts = [
    { label:"Possessive\nPronoun", ex:"My / Your / His…", color:C.deepPurple, bg:"EDE7F6" },
    { label:"Noun\n(thing/person)", ex:"cat / bag / room…", color:C.teal,     bg:"E0F2F1" },
    { label:"Verb", ex:"is / runs / eats…", color:C.coral, bg:"FBE9E7" },
    { label:"Rest of\nSentence", ex:"(where, how, what)", color:"555555", bg:"F5F5F5" },
  ];

  parts.forEach((p, i) => {
    const x = 0.2 + i * 2.4;
    s.addShape(pres.ShapeType.roundRect, {
      x, y:2.15, w:2.2, h:1.5,
      fill:{color:p.bg}, line:{color:p.color, pt:2}, rectRadius:0.12,
    });
    s.addText(p.label, { x, y:2.15, w:2.2, h:0.8, fontSize:12, bold:true, color:p.color, align:"center", valign:"middle" });
    s.addText(p.ex,    { x, y:2.9,  w:2.2, h:0.7, fontSize:10, italic:true, color:"555555", align:"center", valign:"middle" });
  });

  // arrows between boxes
  [0,1,2].forEach(i => {
    s.addText("→", {
      x:2.2+i*2.4, y:2.65, w:0.35, h:0.5,
      fontSize:18, bold:true, color:C.gold, align:"center", valign:"middle",
    });
  });

  // example sentences
  s.addShape(pres.ShapeType.rect, {x:0,y:3.9,w:10,h:0.4, fill:{color:C.gold}, line:{color:C.gold}});
  s.addText("📝 Example Sentences", {
    x:0,y:3.9,w:10,h:0.4, fontSize:13, bold:true,
    color:C.deepPurple, align:"center", valign:"middle",
  });

  const exSentences = [
    ["My", "dog", "is", "very friendly."],
    ["Her", "pencil", "is", "on the table."],
    ["Our", "teacher", "reads", "a story every day."],
    ["Their", "house", "is", "near the park."],
    ["His", "shoes", "are", "under the chair."],
    ["Your", "lunch", "smells", "delicious!"],
  ];

  const colColors = [C.deepPurple, C.teal, C.coral, "555555"];
  const colBg     = ["EDE7F6","E0F2F1","FBE9E7","F5F5F5"];

  const exTableRows = [
    [
      {text:"Poss. Pronoun", options:{bold:true,fontSize:10,color:C.white,fill:{color:C.deepPurple},align:"center",valign:"middle"}},
      {text:"Noun",          options:{bold:true,fontSize:10,color:C.white,fill:{color:C.teal},      align:"center",valign:"middle"}},
      {text:"Verb",          options:{bold:true,fontSize:10,color:C.white,fill:{color:C.coral},     align:"center",valign:"middle"}},
      {text:"Rest",          options:{bold:true,fontSize:10,color:C.white,fill:{color:"777777"},     align:"center",valign:"middle"}},
    ],
    ...exSentences.map((row) =>
      row.map((cell, ci) => ({
        text: cell,
        options: {
          fontSize:11, bold:ci===0, color:colColors[ci],
          fill:{color:colBg[ci]}, align:"center", valign:"middle",
        }
      }))
    )
  ];

  s.addTable(exTableRows, {
    x:0.15, y:4.35, w:9.7, h:2.9,
    colW:[2.2,2.2,2.0,3.3],
    border:{type:"solid",color:C.teal,pt:1},
  });

  slideFooter(s);
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 5 – CONVERSATIONS Q1–Q5
// ═══════════════════════════════════════════════════════════════════════════
const allQA = [
  {
    q: "Q1: What is your name?",
    a: "My name is Anna. I am a student in Grade 3.",
  },
  {
    q: "Q2: Is this your pencil case?",
    a: "Yes, it is my pencil case. My name is written on it.",
  },
  {
    q: "Q3: Whose book is on the desk?",
    a: "That is her book. She left it there this morning.",
  },
  {
    q: "Q4: What colour is his backpack?",
    a: "His backpack is dark blue with a star on it.",
  },
  {
    q: "Q5: Where is your classroom?",
    a: "Our classroom is on the second floor, near the library.",
  },
  {
    q: "Q6: Do you like your school?",
    a: "Yes, I love my school. Our teachers are very kind.",
  },
  {
    q: "Q7: What is the cat doing with its tail?",
    a: "The cat is wagging its tail. It is happy to see us.",
  },
  {
    q: "Q8: Whose turn is it to read?",
    a: "It is his turn to read. He is standing up now.",
  },
  {
    q: "Q9: Is this their house?",
    a: "Yes, that is their house. Their garden has many flowers.",
  },
  {
    q: "Q10: Where is her lunch box?",
    a: "Her lunch box is in her bag under the chair.",
  },
  {
    q: "Q11: What is your favourite subject?",
    a: "My favourite subject is English. Our teacher makes it fun.",
  },
  {
    q: "Q12: Who owns that red bicycle?",
    a: "That is his bicycle. He rides it to school every day.",
  },
  {
    q: "Q13: Is that your cat or her cat?",
    a: "That is her cat. Its fur is white and very soft.",
  },
  {
    q: "Q14: What are your plans after school today?",
    a: "Our plan is to finish our homework and then play in the yard.",
  },
  {
    q: "Q15: Whose umbrella is by the door?",
    a: "That is their umbrella. They forgot it after the rain.",
  },
];

function addConversationSlide(pres, title, qaList) {
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:7.5, fill:{color:"FFFDE7"}, line:{color:"FFFDE7"}});
  slideTitle(s, title, C.gold + "cc", C.deepPurple);

  // override title text colour
  s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:0.75, fill:{color:C.gold}, line:{color:C.gold}});
  s.addText(title, {
    x:0,y:0,w:10,h:0.75,
    fontSize:20, bold:true, color:C.deepPurple,
    align:"center", valign:"middle", fontFace:"Arial Rounded MT Bold",
  });

  qaList.forEach((qa, i) => {
    const y = 0.88 + i * 1.28;

    // Q box
    s.addShape(pres.ShapeType.roundRect, {
      x:0.2, y, w:9.6, h:0.52,
      fill:{color:C.deepPurple}, line:{color:C.deepPurple}, rectRadius:0.08,
    });
    s.addText("❓ " + qa.q, {
      x:0.3, y, w:9.4, h:0.52,
      fontSize:12, bold:true, color:C.white,
      valign:"middle", fontFace:"Arial",
    });

    // A box
    s.addShape(pres.ShapeType.roundRect, {
      x:0.2, y:y+0.54, w:9.6, h:0.62,
      fill:{color:C.tealPale}, line:{color:C.teal, pt:1}, rectRadius:0.08,
    });
    s.addText("✅ " + qa.a, {
      x:0.35, y:y+0.54, w:9.3, h:0.62,
      fontSize:11, color:C.darkText,
      valign:"middle", fontFace:"Arial",
    });
  });

  slideFooter(s);
}

addConversationSlide(pres, "💬 Conversations – Q1 to Q5",  allQA.slice(0,5));
addConversationSlide(pres, "💬 Conversations – Q6 to Q10", allQA.slice(5,10));
addConversationSlide(pres, "💬 Conversations – Q11 to Q15",allQA.slice(10,15));

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 9 – QUICK REFERENCE CARD
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:7.5, fill:{color:C.paleLavender}, line:{color:C.paleLavender}});
  slideTitle(s, "⭐ Quick Reference Card", C.deepPurple);

  const data = [
    ["MY",    "мой/моя",  "My dog is cute."],
    ["YOUR",  "твой/ваш", "Your answer is right."],
    ["HIS",   "его",      "His shirt is blue."],
    ["HER",   "её",       "Her hair is long."],
    ["ITS",   "его/её",   "Its eyes are big."],
    ["OUR",   "наш/наша", "Our class is noisy."],
    ["THEIR", "их",       "Their story is good."],
  ];

  const bgColors = ["EDE7F6","E0F2F1","FFF9C4","FCE4EC","E8F5E9","FBE9E7","E3F2FD"];

  const rows = [
    [
      {text:"Pronoun",   options:{bold:true,fontSize:12,color:C.white,fill:{color:C.deepPurple},align:"center",valign:"middle"}},
      {text:"Russian",   options:{bold:true,fontSize:12,color:C.white,fill:{color:C.teal},      align:"center",valign:"middle"}},
      {text:"Quick Example", options:{bold:true,fontSize:12,color:C.white,fill:{color:C.coral}, align:"center",valign:"middle"}},
    ],
    ...data.map((r,i) => [
      {text:r[0], options:{bold:true,  fontSize:14,color:C.deepPurple,fill:{color:bgColors[i]},align:"center",valign:"middle"}},
      {text:r[1], options:{fontSize:12,italic:true,color:C.teal,       fill:{color:bgColors[i]},align:"center",valign:"middle"}},
      {text:r[2], options:{fontSize:12,            color:"333333",      fill:{color:bgColors[i]},align:"center",valign:"middle"}},
    ])
  ];

  s.addTable(rows, {
    x:0.5, y:0.9, w:9, h:5.9,
    colW:[2.5,2.5,4.0],
    border:{type:"solid",color:C.deepPurple,pt:1},
  });

  // tip
  s.addShape(pres.ShapeType.roundRect, {
    x:0.5,y:7.0,w:9,h:0.35,
    fill:{color:C.gold}, line:{color:C.gold}, rectRadius:0.08,
  });
  s.addText("💡 Tip: Possessive pronouns always come BEFORE the noun they describe!", {
    x:0.5,y:7.0,w:9,h:0.35,
    fontSize:10, bold:true, color:C.deepPurple,
    align:"center", valign:"middle",
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SAVE
// ═══════════════════════════════════════════════════════════════════════════
const outPath = "/home/daytona/workspace/possessive-pronouns-handbook/Possessive_Pronouns_Handbook_Grade3_ESL.pptx";
pres.writeFile({ fileName: outPath })
  .then(() => console.log("✅ Saved: " + outPath))
  .catch(err => { console.error("ERROR:", err); process.exit(1); });
Running Command

cd /home/daytona/workspace/possessive-pronouns-handbook && node build.js 2>&1

Editing File

~/possessive-pronouns-handbook/build.js

Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/possessive-pronouns-handbook/build.js'
Running Command

cd /home/daytona/workspace/possessive-pronouns-handbook && node build.js 2>&1

Running Command

ls -lh /home/daytona/workspace/possessive-pronouns-handbook/Possessive_Pronouns_…

Running Command

cd /home/daytona/workspace/possessive-pronouns-handbook && python -m markitdown …

Running Command

cd /home/daytona/workspace/possessive-pronouns-handbook && python3 -c " from ppt…

Running Command

cd /home/daytona/workspace/possessive-pronouns-handbook && node -e " const pptxg…

Your handbook is ready! Here is the download link:

Possessive Pronouns Handbook Grade3 ESL

Presentation · PPTX


Here is what's inside the file (8 slides, compact 4:3 size, colourful purple/teal/gold palette):
SlideContent
1 - CoverBold purple gradient, title, subtitle, emoji decorations
2 - What is a Possessive Pronoun?Definition + 3 colour-coded example boxes (EN + RU)
3 - Full Table3-column colour-striped table: Possessive Pronoun (EN)
4 - FormulaFormula banner + 4-part breakdown boxes with arrows, then a 6-row colour-coded example table showing Pronoun / Noun / Verb / Rest
5 - Conversations Q1-Q5Question (dark purple box) + Answer (teal box) for Q1-Q5
6 - Conversations Q6-Q10Same layout for Q6-Q10
7 - Conversations Q11-Q15Same layout for Q11-Q15
8 - Quick Reference CardCompact 3-column table (Pronoun / Russian / Quick Example) with alternating rainbow row colours + tip banner
Formula taught on slide 4:
POSSESSIVE PRONOUN + NOUN + VERB + REST OF SENTENCE e.g. My dog is very friendly. | Our classroom is on the second floor.
All 15 conversation Q&As are logical, age-appropriate sentences using real possessive pronouns naturally (my name, her book, his backpack, our class, their house, its tail, etc.).

Also add some other possessive pronouns doesn't matter if they are from 4th or 5th grade ,make questions and answers a little difficult for 3th grade ESL

Reading File
Writing File

~/possessive-pronouns-handbook/build_v2.js

const pptxgen = require("pptxgenjs");

const pres = new pptxgen();
pres.layout = "LAYOUT_4x3";
pres.title = "Possessive Pronouns Handbook – Grade 3–5 ESL";

// ─── COLOUR PALETTE ────────────────────────────────────────────────────────
const C = {
  deepPurple:  "4A148C",
  purple:      "7B1FA2",
  violet:      "AB47BC",
  lavender:    "E1BEE7",
  paleLavender:"F3E5F5",
  gold:        "F9A825",
  amber:       "FFD54F",
  teal:        "00695C",
  tealLight:   "4DB6AC",
  tealPale:    "E0F2F1",
  coral:       "E64A19",
  coralPale:   "FBE9E7",
  navy:        "1A237E",
  navyLight:   "3949AB",
  green:       "2E7D32",
  greenLight:  "A5D6A7",
  greenPale:   "E8F5E9",
  white:       "FFFFFF",
  darkText:    "1A237E",
  midText:     "4A148C",
};

// ─── HELPERS ───────────────────────────────────────────────────────────────
function slideTitle(slide, text, bgColor, fgColor, fontSize) {
  slide.addShape(pres.ShapeType.rect, {
    x: 0, y: 0, w: 10, h: 0.78,
    fill: { color: bgColor || C.deepPurple },
    line: { color: bgColor || C.deepPurple },
  });
  slide.addText(text, {
    x: 0, y: 0, w: 10, h: 0.78,
    fontSize: fontSize || 22, bold: true, color: fgColor || C.white,
    align: "center", valign: "middle",
    fontFace: "Arial Rounded MT Bold",
  });
}

function slideFooter(slide, note) {
  slide.addShape(pres.ShapeType.rect, {
    x: 0, y: 7.28, w: 10, h: 0.22,
    fill: { color: C.gold },
    line: { color: C.gold },
  });
  if (note) {
    slide.addText(note, {
      x: 0, y: 7.28, w: 10, h: 0.22,
      fontSize: 9, color: C.deepPurple, align: "center", valign: "middle", bold: true,
    });
  }
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 1 – COVER
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();

  s.addShape(pres.ShapeType.rect, { x:0,y:0,w:10,h:7.5, fill:{color:C.deepPurple}, line:{color:C.deepPurple} });
  s.addShape(pres.ShapeType.rect, { x:0,y:3.6,w:10,h:3.9, fill:{color:C.purple}, line:{color:C.purple} });

  // decorative shapes
  s.addShape(pres.ShapeType.ellipse, { x:7.6, y:-0.5, w:2.6, h:2.6, fill:{color:C.violet}, line:{color:C.violet} });
  s.addShape(pres.ShapeType.ellipse, { x:-0.7,y:5.9,  w:2.2, h:2.2, fill:{color:C.gold},   line:{color:C.gold}   });
  s.addShape(pres.ShapeType.ellipse, { x:4.1, y:5.6,  w:1.3, h:1.3, fill:{color:C.amber},  line:{color:C.amber}  });
  s.addShape(pres.ShapeType.ellipse, { x:1.5, y:5.2,  w:0.9, h:0.9, fill:{color:C.tealLight}, line:{color:C.tealLight} });

  // grade badge
  s.addShape(pres.ShapeType.roundRect, {
    x:0.35,y:0.22,w:3.0,h:0.58,
    fill:{color:C.gold}, line:{color:C.gold}, rectRadius:0.1,
  });
  s.addText("Grades 3–5 ESL", {
    x:0.35,y:0.22,w:3.0,h:0.58, fontSize:12, bold:true,
    color:C.deepPurple, align:"center", valign:"middle",
  });

  s.addText("📚 ✏️ 🌟 🔑", {
    x:0,y:1.0,w:10,h:0.72, fontSize:30, align:"center", valign:"middle",
  });

  s.addText("Possessive\nPronouns", {
    x:0.5,y:1.65,w:9,h:2.15,
    fontSize:46, bold:true, color:C.white,
    align:"center", valign:"middle",
    fontFace:"Arial Rounded MT Bold",
    shadow:{ type:"outer", color:"000000", blur:8, offset:4, angle:45, opacity:0.45 },
  });

  s.addShape(pres.ShapeType.roundRect, {
    x:1.0,y:3.72,w:8,h:0.65,
    fill:{color:C.gold}, line:{color:C.gold}, rectRadius:0.12,
  });
  s.addText("Handbook – Table, Formula & Conversations", {
    x:1.0,y:3.72,w:8,h:0.65,
    fontSize:13, bold:true, color:C.deepPurple,
    align:"center", valign:"middle",
  });

  s.addText("My • Your • His • Her • Its • Our • Their\nMine • Yours • His • Hers • Ours • Theirs", {
    x:0.5,y:4.5,w:9,h:0.9,
    fontSize:13, color:C.lavender, align:"center", valign:"middle", italic:true,
  });
  s.addText("English  ⇄  Russian", {
    x:0.5,y:5.48,w:9,h:0.45,
    fontSize:14, color:C.amber, align:"center", valign:"middle", bold:true,
  });
  s.addText("Made with ❤️ for young learners", {
    x:0.5,y:6.85,w:9,h:0.38,
    fontSize:9, color:C.lavender, align:"center", valign:"middle", italic:true,
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 2 – WHAT IS A POSSESSIVE PRONOUN?
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:7.5, fill:{color:C.paleLavender}, line:{color:C.paleLavender}});
  slideTitle(s, "What is a Possessive Pronoun? 🤔", C.deepPurple);

  s.addShape(pres.ShapeType.roundRect, {
    x:0.4,y:0.9,w:9.2,h:1.35,
    fill:{color:C.lavender}, line:{color:C.violet, pt:2}, rectRadius:0.15,
  });
  s.addText([
    {text:"A possessive pronoun ", options:{bold:false, color:C.darkText}},
    {text:"shows ownership", options:{bold:true, color:C.deepPurple}},
    {text:" — it tells us who something ", options:{bold:false, color:C.darkText}},
    {text:"belongs to", options:{bold:true, color:C.coral}},
    {text:".\nIt replaces a noun so we do not repeat it.", options:{bold:false, color:C.darkText}},
  ], {x:0.4,y:0.9,w:9.2,h:1.35, fontSize:15, align:"center", valign:"middle", fontFace:"Arial"});

  const examples = [
    { en:"This is MY pencil.",        ru:"Это МОЙ карандаш.",          color:C.deepPurple, bg:"EDE7F6" },
    { en:"That book is HERS.",         ru:"Та книга — ЕЁ.",             color:C.teal,       bg:"E0F2F1" },
    { en:"The house is OURS.",         ru:"Дом — НАШ.",                 color:C.coral,      bg:"FBE9E7" },
    { en:"Those shoes are THEIRS.",    ru:"Эта обувь — ИХ.",            color:C.green,      bg:"E8F5E9" },
  ];

  examples.forEach((ex, i) => {
    const y = 2.45 + i * 1.2;
    s.addShape(pres.ShapeType.roundRect, {
      x:0.4,y,w:9.2,h:1.08,
      fill:{color:ex.bg}, line:{color:ex.color, pt:2}, rectRadius:0.12,
    });
    s.addText("🔑 " + ex.en, {
      x:0.6,y:y+0.05,w:9,h:0.46,
      fontSize:14, bold:true, color:ex.color,
    });
    s.addText("   " + ex.ru, {
      x:0.6,y:y+0.52,w:9,h:0.42,
      fontSize:12, italic:true, color:C.midText,
    });
  });
  slideFooter(s);
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 3 – MAIN TABLE: ATTRIBUTIVE possessive pronouns (before a noun)
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:7.5, fill:{color:"FAFAFA"}, line:{color:"FAFAFA"}});
  slideTitle(s, "📋 Possessive Pronouns – Used Before a Noun", C.teal, C.white, 19);

  // subtitle tag
  s.addShape(pres.ShapeType.roundRect, {
    x:3.0,y:0.82,w:4,h:0.32,
    fill:{color:C.tealPale}, line:{color:C.teal, pt:1}, rectRadius:0.07,
  });
  s.addText("(Grades 3–4 core forms)", {
    x:3.0,y:0.82,w:4,h:0.32,
    fontSize:10, italic:true, color:C.teal, align:"center", valign:"middle",
  });

  const bgColors = ["EDE7F6","E0F2F1","FFF9C4","FCE4EC","E8F5E9","FBE9E7","E3F2FD"];

  const tableRows = [
    [
      {text:"Pronoun (EN)",    options:{bold:true,fontSize:11,color:C.white,fill:{color:C.teal},align:"center",valign:"middle"}},
      {text:"Russian",         options:{bold:true,fontSize:11,color:C.white,fill:{color:C.teal},align:"center",valign:"middle"}},
      {text:"Example (EN → RU)", options:{bold:true,fontSize:11,color:C.white,fill:{color:C.teal},align:"center",valign:"middle"}},
    ],
    ...[
      ["MY",    "мой / моя /\nмоё / мои",    "My cat is black.\nМоя кошка чёрная."],
      ["YOUR",  "твой / твоя /\nваш / ваша",  "Your bag is big.\nТвоя сумка большая."],
      ["HIS",   "его",                         "His bike is fast.\nЕго велосипед быстрый."],
      ["HER",   "её",                          "Her dress is red.\nЕё платье красное."],
      ["ITS",   "его / её",                    "Its tail is long.\nЕго хвост длинный."],
      ["OUR",   "наш / наша /\nнаше / наши",  "Our school is big.\nНаша школа большая."],
      ["THEIR", "их",                          "Their room is clean.\nИх комната чистая."],
    ].map((r, i) => r.map((cell, ci) => ({
      text: cell,
      options: {
        fontSize: ci === 0 ? 13 : 11,
        bold: ci === 0,
        color: ci === 0 ? C.deepPurple : (ci === 1 ? C.teal : "333333"),
        fill: { color: bgColors[i] },
        align: "center", valign: "middle", fontFace: "Arial",
      }
    })))
  ];

  s.addTable(tableRows, {
    x:0.15, y:1.18, w:9.7, h:6.05,
    colW:[2.3, 2.5, 4.9],
    border:{type:"solid", color:C.teal, pt:1},
    autoPage:false,
  });

  slideFooter(s, "💡 These pronouns always come BEFORE the noun: My bag | Her book | Their house");
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 4 – ADVANCED TABLE: INDEPENDENT (standalone) possessive pronouns
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:7.5, fill:{color:"FAFAFA"}, line:{color:"FAFAFA"}});
  slideTitle(s, "⭐ Standalone Possessive Pronouns (Grades 4–5)", C.navy, C.white, 18);

  s.addShape(pres.ShapeType.roundRect, {
    x:0.3,y:0.85,w:9.4,h:0.5,
    fill:{color:"E8EAF6"}, line:{color:C.navyLight, pt:1}, rectRadius:0.08,
  });
  s.addText("These pronouns stand ALONE — they replace the noun completely. No noun after them!", {
    x:0.3,y:0.85,w:9.4,h:0.5,
    fontSize:11, italic:true, color:C.navy, align:"center", valign:"middle",
  });

  const bgColors = ["EDE7F6","E0F2F1","FFF9C4","FCE4EC","E8F5E9","FBE9E7","E3F2FD"];

  const tableRows = [
    [
      {text:"Pronoun (EN)", options:{bold:true,fontSize:11,color:C.white,fill:{color:C.navy},align:"center",valign:"middle"}},
      {text:"Russian",      options:{bold:true,fontSize:11,color:C.white,fill:{color:C.navy},align:"center",valign:"middle"}},
      {text:"Example (EN → RU)", options:{bold:true,fontSize:11,color:C.white,fill:{color:C.navy},align:"center",valign:"middle"}},
    ],
    ...[
      ["MINE",   "мой / моя /\nмоё / мои",    "This pencil is mine.\nЭтот карандаш — мой."],
      ["YOURS",  "твой / твоя /\nваш / ваша",  "Is that seat yours?\nЭто место — твоё?"],
      ["HIS",    "его",                         "That coat is his.\nЭто пальто — его."],
      ["HERS",   "её",                          "The red pen is hers.\nКрасная ручка — её."],
      ["OURS",   "наш / наша /\nнаш / наши",   "The garden is ours.\nЭтот сад — наш."],
      ["THEIRS", "их",                          "Those books are theirs.\nЭти книги — их."],
    ].map((r, i) => r.map((cell, ci) => ({
      text: cell,
      options: {
        fontSize: ci === 0 ? 13 : 11,
        bold: ci === 0,
        color: ci === 0 ? C.navy : (ci === 1 ? C.navyLight : "333333"),
        fill: { color: bgColors[i] },
        align: "center", valign: "middle", fontFace: "Arial",
      }
    })))
  ];

  s.addTable(tableRows, {
    x:0.15, y:1.4, w:9.7, h:5.65,
    colW:[2.3, 2.5, 4.9],
    border:{type:"solid", color:C.navy, pt:1},
    autoPage:false,
  });

  slideFooter(s, '⚠️ Note: "ITS" has no standalone form in standard English usage.');
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 5 – TWO TYPES COMPARISON SLIDE
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:7.5, fill:{color:"FFFDE7"}, line:{color:"FFFDE7"}});
  slideTitle(s, "🔄 Two Types: Before a Noun vs. Standalone", C.gold, C.deepPurple, 18);

  // left panel – before noun
  s.addShape(pres.ShapeType.roundRect, {
    x:0.2,y:0.88,w:4.55,h:6.22,
    fill:{color:C.paleLavender}, line:{color:C.deepPurple, pt:2}, rectRadius:0.15,
  });
  s.addShape(pres.ShapeType.rect, {
    x:0.2,y:0.88,w:4.55,h:0.52,
    fill:{color:C.deepPurple}, line:{color:C.deepPurple},
  });
  s.addText("🏷️ BEFORE a Noun", {
    x:0.2,y:0.88,w:4.55,h:0.52,
    fontSize:13, bold:true, color:C.white, align:"center", valign:"middle",
  });

  const beforeNoun = [
    ["MY",    "My book"],
    ["YOUR",  "Your pen"],
    ["HIS",   "His cap"],
    ["HER",   "Her bag"],
    ["ITS",   "Its tail"],
    ["OUR",   "Our class"],
    ["THEIR", "Their car"],
  ];
  const rowBg1 = ["EDE7F6","F3E5F5","E1BEE7","D1C4E9","EDE7F6","F3E5F5","E1BEE7"];
  beforeNoun.forEach(([pron, ex], i) => {
    const y = 1.52 + i * 0.74;
    s.addShape(pres.ShapeType.roundRect, {
      x:0.3,y,w:4.35,h:0.65,
      fill:{color:rowBg1[i]}, line:{color:C.violet, pt:1}, rectRadius:0.07,
    });
    s.addText(pron, { x:0.35,y,w:1.4,h:0.65, fontSize:14, bold:true, color:C.deepPurple, valign:"middle", align:"center" });
    s.addText("→  " + ex, { x:1.65,y,w:2.9,h:0.65, fontSize:12, color:"333333", valign:"middle" });
  });

  // right panel – standalone
  s.addShape(pres.ShapeType.roundRect, {
    x:5.25,y:0.88,w:4.55,h:6.22,
    fill:{color:C.greenPale}, line:{color:C.navy, pt:2}, rectRadius:0.15,
  });
  s.addShape(pres.ShapeType.rect, {
    x:5.25,y:0.88,w:4.55,h:0.52,
    fill:{color:C.navy}, line:{color:C.navy},
  });
  s.addText("🧍 STANDALONE", {
    x:5.25,y:0.88,w:4.55,h:0.52,
    fontSize:13, bold:true, color:C.white, align:"center", valign:"middle",
  });

  const standalone = [
    ["MINE",   "It is mine."],
    ["YOURS",  "Is it yours?"],
    ["HIS",    "It is his."],
    ["HERS",   "It is hers."],
    ["—",      "(no ITS form)"],
    ["OURS",   "It is ours."],
    ["THEIRS", "It is theirs."],
  ];
  const rowBg2 = ["E8F5E9","F1F8E9","DCEDC8","C8E6C9","E8F5E9","F1F8E9","DCEDC8"];
  standalone.forEach(([pron, ex], i) => {
    const y = 1.52 + i * 0.74;
    s.addShape(pres.ShapeType.roundRect, {
      x:5.35,y,w:4.35,h:0.65,
      fill:{color:rowBg2[i]}, line:{color:C.green, pt:1}, rectRadius:0.07,
    });
    s.addText(pron, { x:5.4,y,w:1.5,h:0.65, fontSize:14, bold:true, color:C.navy, valign:"middle", align:"center" });
    s.addText("→  " + ex, { x:6.8,y,w:2.7,h:0.65, fontSize:12, color:"333333", valign:"middle" });
  });

  slideFooter(s, "💡 Rule: If a noun follows = use before-noun form. If no noun follows = use standalone form.");
}

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 6 – FORMULA
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:7.5, fill:{color:C.tealPale}, line:{color:C.tealPale}});
  slideTitle(s, "✏️ Formulas to Build Sentences", C.teal, C.white, 20);

  // FORMULA 1
  s.addShape(pres.ShapeType.roundRect, {
    x:0.3,y:0.9,w:9.4,h:0.52,
    fill:{color:C.teal}, line:{color:C.teal}, rectRadius:0.1,
  });
  s.addText("Formula 1 (before noun):  POSSESSIVE PRONOUN + NOUN + VERB + REST", {
    x:0.3,y:0.9,w:9.4,h:0.52,
    fontSize:12, bold:true, color:C.white, align:"center", valign:"middle",
  });

  const parts1 = [
    { label:"Poss.\nPronoun", ex:"My/Your/His…", color:C.deepPurple, bg:"EDE7F6" },
    { label:"Noun",           ex:"cat/bag/room…", color:C.teal,      bg:"E0F2F1" },
    { label:"Verb",           ex:"is/runs/eats…", color:C.coral,     bg:"FBE9E7" },
    { label:"Rest",           ex:"where/how",     color:"555555",    bg:"F5F5F5" },
  ];
  parts1.forEach((p, i) => {
    const x = 0.2 + i * 2.4;
    s.addShape(pres.ShapeType.roundRect, { x, y:1.55, w:2.2, h:1.38, fill:{color:p.bg}, line:{color:p.color, pt:2}, rectRadius:0.12 });
    s.addText(p.label, { x, y:1.55, w:2.2, h:0.7, fontSize:11, bold:true, color:p.color, align:"center", valign:"middle" });
    s.addText(p.ex,    { x, y:2.22, w:2.2, h:0.68, fontSize:10, italic:true, color:"555555", align:"center", valign:"middle" });
  });
  [0,1,2].forEach(i => {
    s.addText("→", { x:2.2+i*2.4, y:2.05, w:0.35, h:0.5, fontSize:18, bold:true, color:C.gold, align:"center", valign:"middle" });
  });

  // FORMULA 2
  s.addShape(pres.ShapeType.roundRect, {
    x:0.3,y:3.08,w:9.4,h:0.52,
    fill:{color:C.navy}, line:{color:C.navy}, rectRadius:0.1,
  });
  s.addText("Formula 2 (standalone):  SUBJECT + VERB + STANDALONE POSSESSIVE PRONOUN", {
    x:0.3,y:3.08,w:9.4,h:0.52,
    fontSize:12, bold:true, color:C.white, align:"center", valign:"middle",
  });

  const parts2 = [
    { label:"Subject",    ex:"This/That/The…", color:C.navy,    bg:"E8EAF6" },
    { label:"Verb",       ex:"is / are",       color:C.coral,   bg:"FBE9E7" },
    { label:"Standalone\nPronoun", ex:"mine/yours/hers…", color:C.green, bg:"E8F5E9" },
  ];
  parts2.forEach((p, i) => {
    const x = 0.5 + i * 3.05;
    s.addShape(pres.ShapeType.roundRect, { x, y:3.72, w:2.8, h:1.38, fill:{color:p.bg}, line:{color:p.color, pt:2}, rectRadius:0.12 });
    s.addText(p.label, { x, y:3.72, w:2.8, h:0.7, fontSize:11, bold:true, color:p.color, align:"center", valign:"middle" });
    s.addText(p.ex,    { x, y:4.4,  w:2.8, h:0.68, fontSize:10, italic:true, color:"555555", align:"center", valign:"middle" });
  });
  [0,1].forEach(i => {
    s.addText("→", { x:3.2+i*3.05, y:4.08, w:0.35, h:0.5, fontSize:18, bold:true, color:C.gold, align:"center", valign:"middle" });
  });

  // example table
  const exTableRows = [
    [
      {text:"Type",            options:{bold:true,fontSize:10,color:C.white,fill:{color:C.deepPurple},align:"center",valign:"middle"}},
      {text:"Sentence",        options:{bold:true,fontSize:10,color:C.white,fill:{color:C.teal},      align:"center",valign:"middle"}},
      {text:"Russian",         options:{bold:true,fontSize:10,color:C.white,fill:{color:C.navy},      align:"center",valign:"middle"}},
    ],
    ...[
      ["Before noun","My dog is very friendly.",          "Моя собака очень дружелюбная."],
      ["Before noun","Our teacher reads every day.",      "Наша учительница читает каждый день."],
      ["Standalone", "That bicycle is mine.",             "Этот велосипед — мой."],
      ["Standalone", "Are those seats theirs?",           "Эти места — их?"],
      ["Before noun","Their homework was excellent.",     "Их домашнее задание было отличным."],
      ["Standalone", "The red pencil case is hers.",      "Красный пенал — её."],
    ].map((r, i) => r.map((cell, ci) => ({
      text: cell,
      options: {
        fontSize:10, bold:ci===0,
        color: ci===0 ? (i%2===0?C.deepPurple:C.navy) : "333333",
        fill:{ color: i%2===0 ? "EDE7F6" : "E8F5E9" },
        align:"center", valign:"middle",
      }
    })))
  ];

  s.addTable(exTableRows, {
    x:0.15, y:5.22, w:9.7, h:1.92,
    colW:[1.9, 4.4, 3.4],
    border:{type:"solid", color:C.teal, pt:1},
  });

  slideFooter(s);
}

// ═══════════════════════════════════════════════════════════════════════════
// CONVERSATIONS – harder Q&A (slightly above Grade 3 level)
// ═══════════════════════════════════════════════════════════════════════════
const allQA = [
  {
    q:  "Q1: Which pencil case belongs to you — the blue one or the green one?",
    a:  "The blue one is mine. The green one is hers — she left it on the shelf yesterday.",
  },
  {
    q:  "Q2: Your friend says the dictionary on the table is hers. Is she correct?",
    a:  "No, she is not correct. That dictionary is ours — our teacher put it there for the whole class.",
  },
  {
    q:  "Q3: Whose responsibility is it to water the classroom plant?",
    a:  "It is our responsibility. We take turns every Monday, and this week it is my turn.",
  },
  {
    q:  "Q4: The dog is sitting near the gate. Whose dog is it?",
    a:  "That dog is theirs. Its name is Buyan and it always waits for them after school.",
  },
  {
    q:  "Q5: Did the students forget their assignment at home again?",
    a:  "Yes, their assignment was not in their bags. The teacher asked them to bring it tomorrow.",
  },
  {
    q:  "Q6: You found a red notebook on the floor. How would you find out whose it is?",
    a:  "I would ask the class, \"Is this notebook yours?\" If someone says it is theirs, I will give it back.",
  },
  {
    q:  "Q7: Maria says the painting on the wall is hers. Tom says it is his. Who is right?",
    a:  "The teacher checked the name on the back. It is hers — Maria painted it during art class last week.",
  },
  {
    q:  "Q8: Why did he take her eraser without asking?",
    a:  "He thought it was his because it looked the same as his own. But hers has a small star on it.",
  },
  {
    q:  "Q9: The children found a football in the yard. Is it ours or theirs?",
    a:  "It is ours. Our class bought it last month, but theirs is older and has a tear in it.",
  },
  {
    q:  "Q10: If someone asks \"Is this seat taken?\", how do you say it belongs to your friend?",
    a:  "I would say, \"Yes, this seat is hers\" or \"That is his seat\" — both are correct.",
  },
  {
    q:  "Q11: The science project got the highest mark. Whose project was it?",
    a:  "It was ours. Our team worked on it every afternoon for two weeks and we are very proud of it.",
  },
  {
    q:  "Q12: Why is her writing neater than his?",
    a:  "Her handwriting is neater because she practises every evening. His is improving, but he still needs more time.",
  },
  {
    q:  "Q13: The cat keeps coming back to our garden. Do you think it is a stray or does it have an owner?",
    a:  "It has an owner. Its collar has a small tag with a phone number — it is probably theirs from next door.",
  },
  {
    q:  "Q14: Can you use \"OURS\" in a sentence to talk about your classroom rules?",
    a:  "Yes — Our classroom rules are strict, but they are ours and we agreed on them together at the start of the year.",
  },
  {
    q:  "Q15: The twins are arguing about whose turn it is to clean. What would you tell them?",
    a:  "I would say: \"It is neither yours nor hers alone — it is your shared responsibility, so you should do it together.\"",
  },
];

function addConversationSlide(pres, title, qaList, titleBg, titleFg) {
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:7.5, fill:{color:"FFFDE7"}, line:{color:"FFFDE7"}});

  s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:0.78, fill:{color:titleBg||C.gold}, line:{color:titleBg||C.gold}});
  s.addText(title, {
    x:0,y:0,w:10,h:0.78,
    fontSize:18, bold:true, color:titleFg||C.deepPurple,
    align:"center", valign:"middle", fontFace:"Arial Rounded MT Bold",
  });

  const gap = (7.5 - 0.78 - 0.22) / qaList.length;

  qaList.forEach((qa, i) => {
    const blockH = gap - 0.08;
    const y = 0.84 + i * gap;
    const qH = blockH * 0.44;
    const aH = blockH * 0.50;

    // Q box
    s.addShape(pres.ShapeType.roundRect, {
      x:0.18, y, w:9.64, h:qH,
      fill:{color:C.deepPurple}, line:{color:C.deepPurple}, rectRadius:0.08,
    });
    s.addText("❓ " + qa.q, {
      x:0.28, y, w:9.44, h:qH,
      fontSize:10, bold:true, color:C.white,
      valign:"middle", fontFace:"Arial", autoFit:true,
    });

    // A box
    s.addShape(pres.ShapeType.roundRect, {
      x:0.18, y:y+qH+0.03, w:9.64, h:aH,
      fill:{color:C.tealPale}, line:{color:C.teal, pt:1}, rectRadius:0.08,
    });
    s.addText("✅ " + qa.a, {
      x:0.32, y:y+qH+0.03, w:9.38, h:aH,
      fontSize:10, color:C.darkText,
      valign:"middle", fontFace:"Arial", autoFit:true,
    });
  });

  slideFooter(s);
}

addConversationSlide(pres, "💬 Conversations – Q1 to Q5",   allQA.slice(0,5),   C.gold,      C.deepPurple);
addConversationSlide(pres, "💬 Conversations – Q6 to Q10",  allQA.slice(5,10),  C.navy,      C.white);
addConversationSlide(pres, "💬 Conversations – Q11 to Q15", allQA.slice(10,15), C.teal,      C.white);

// ═══════════════════════════════════════════════════════════════════════════
// SLIDE 10 – QUICK REFERENCE CARD
// ═══════════════════════════════════════════════════════════════════════════
{
  const s = pres.addSlide();
  s.addShape(pres.ShapeType.rect, {x:0,y:0,w:10,h:7.5, fill:{color:C.paleLavender}, line:{color:C.paleLavender}});
  slideTitle(s, "⭐ Quick Reference Card – All Forms", C.deepPurple, C.white, 19);

  const data = [
    ["MY",    "MINE",    "мой/моя",   "My dog is cute.",      "The dog is mine."],
    ["YOUR",  "YOURS",   "твой/ваш",  "Your answer is right.","The answer is yours."],
    ["HIS",   "HIS",     "его",       "His shirt is blue.",   "The shirt is his."],
    ["HER",   "HERS",    "её",        "Her hair is long.",    "The hair is hers."],
    ["ITS",   "—",       "его/её",    "Its eyes are big.",    "—"],
    ["OUR",   "OURS",    "наш/наша",  "Our class is fun.",    "The class is ours."],
    ["THEIR", "THEIRS",  "их",        "Their story is good.", "The story is theirs."],
  ];

  const bgColors = ["EDE7F6","E0F2F1","FFF9C4","FCE4EC","E8F5E9","FBE9E7","E3F2FD"];

  const rows = [
    [
      {text:"Before\nNoun",  options:{bold:true,fontSize:10,color:C.white,fill:{color:C.deepPurple},align:"center",valign:"middle"}},
      {text:"Standalone",    options:{bold:true,fontSize:10,color:C.white,fill:{color:C.navy},      align:"center",valign:"middle"}},
      {text:"Russian",       options:{bold:true,fontSize:10,color:C.white,fill:{color:C.teal},      align:"center",valign:"middle"}},
      {text:"Before-Noun Example", options:{bold:true,fontSize:10,color:C.white,fill:{color:C.coral},align:"center",valign:"middle"}},
      {text:"Standalone Example",  options:{bold:true,fontSize:10,color:C.white,fill:{color:C.green},align:"center",valign:"middle"}},
    ],
    ...data.map((r, i) => r.map((cell, ci) => ({
      text: cell,
      options: {
        fontSize:11,
        bold: ci < 2,
        color: [C.deepPurple, C.navy, C.teal, "333333", C.green][ci],
        fill: { color: bgColors[i] },
        align: "center", valign: "middle", fontFace:"Arial",
      }
    })))
  ];

  s.addTable(rows, {
    x:0.1, y:0.88, w:9.8, h:5.95,
    colW:[1.6, 1.65, 1.65, 2.5, 2.4],
    border:{type:"solid", color:C.deepPurple, pt:1},
  });

  s.addShape(pres.ShapeType.roundRect, {
    x:0.2,y:7.0,w:9.6,h:0.32,
    fill:{color:C.gold}, line:{color:C.gold}, rectRadius:0.07,
  });
  s.addText("💡 Before a noun → MY/YOUR/HIS/HER/ITS/OUR/THEIR   |   Alone (no noun after) → MINE/YOURS/HIS/HERS/OURS/THEIRS", {
    x:0.2,y:7.0,w:9.6,h:0.32,
    fontSize:9, bold:true, color:C.deepPurple,
    align:"center", valign:"middle",
  });
}

// ═══════════════════════════════════════════════════════════════════════════
// SAVE
// ═══════════════════════════════════════════════════════════════════════════
const outPath = "/home/daytona/workspace/possessive-pronouns-handbook/Possessive_Pronouns_Handbook_Grade3_5_ESL_v2.pptx";
pres.writeFile({ fileName: outPath })
  .then(() => console.log("✅ Saved: " + outPath))
  .catch(err => { console.error("ERROR:", err); process.exit(1); });
Running Command

cd /home/daytona/workspace/possessive-pronouns-handbook && node build_v2.js 2>&1

Running Command

ls -lh /home/daytona/workspace/possessive-pronouns-handbook/Possessive_Pronouns_…

Your updated handbook (v2) is ready:

Possessive Pronouns Handbook Grade3 5 ESL v2

Presentation · PPTX


Here is what changed and what's new in this version (10 slides total):
New content added:
What's newDetails
Slide 3 - Core tableNow labelled "Grades 3-4 core forms" with a tip footer: possessive pronouns always come BEFORE the noun
Slide 4 - NEW standalone tableGrades 4-5 forms: MINE, YOURS, HIS, HERS, OURS, THEIRS with Russian translations + standalone example sentences (EN → RU)
Slide 5 - NEW comparison slideTwo side-by-side panels showing "Before a Noun" vs "Standalone" forms for every pronoun in a colour-coded grid with the rule in the footer
Slide 6 - FormulaNow shows TWO formulas: Formula 1 (before noun) + Formula 2 (standalone), each with a breakdown diagram and a 6-row example table
Quick Reference cardNow has 5 columns: Before-Noun / Standalone / Russian / Before-Noun Example / Standalone Example
Harder Q&As (Slides 7-9) - the 15 questions now require:
  • Reasoning ("Which one is mine vs hers and why?")
  • Negation ("No, she is not correct — that is ours")
  • Comparisons ("Her handwriting is neater than his because...")
  • Real-world context (lost items, shared responsibility, ownership disputes)
  • Using OURS/THEIRS/HERS/MINE naturally in longer answers

I couldn't download the file .

Running Command

ls -lh /home/daytona/workspace/possessive-pronouns-handbook/

Running Command

cp "/home/daytona/workspace/possessive-pronouns-handbook/Possessive_Pronouns_Han…

Try this direct link with a cleaner path:

PossessivePronouns Handbook

Presentation · PPTX


If that still doesn't work, here are a few things to try:
  1. Right-click the link → "Save link as..." instead of a regular click
  2. Try a different browser - Chrome or Edge tend to handle file downloads better than Safari or Firefox in some environments
  3. Check your downloads folder - it may have downloaded silently without a prompt
If none of those work, let me know and I can convert the file to a PDF instead, which is universally downloadable everywhere.

How many balls /points have I used today ?

I don't have access to any account usage dashboard, billing system, or points/credits tracker for your account. I can only see the per-conversation tool budget shown in each message, which resets with every new conversation and is not the same as your overall account credits or plan usage.
To check your actual usage/points/credits today, you would need to:
  1. Log in to your account dashboard on the platform you're using this through
  2. Check the billing or usage section in your account settings
  3. Contact support for the platform if you can't find it
I'm sorry I can't give you a direct number - that information simply isn't visible to me.
This is a shared conversation. Sign in to Orris to start your own chat.