Please create a colorful handbook 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 .
ls /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or missing"
~/possessive-ppt/possessive_pronouns.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.3" x 7.5"
// ─── COLOR PALETTE ────────────────────────────────────────────────────────────
const C = {
deepPurple: "4A148C",
purple: "7B1FA2",
violet: "AB47BC",
lavender: "E1BEE7",
lightLav: "F3E5F5",
teal: "00695C",
tealLight: "4DB6AC",
tealPale: "E0F2F1",
amber: "F57F17",
amberLight: "FFE082",
amberPale: "FFF9C4",
coral: "E53935",
coralLight: "FFCDD2",
blue: "1565C0",
blueLight: "BBDEFB",
bluePale: "E3F2FD",
green: "2E7D32",
greenLight: "C8E6C9",
white: "FFFFFF",
nearBlack: "212121",
gray: "757575",
lightGray: "F5F5F5",
};
// ─── HELPER: gradient-like background via two rects ──────────────────────────
function bgGrad(slide, color1, color2) {
slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: color1 } });
slide.addShape(pres.ShapeType.rect, { x: 6.65, y: 0, w: 6.65, h: 7.5, fill: { color: color2, transparency: 40 } });
}
function headerBar(slide, text, bgColor, textColor) {
slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 1.1, fill: { color: bgColor }, line: { color: bgColor } });
slide.addText(text, {
x: 0, y: 0, w: 13.3, h: 1.1,
fontSize: 34, bold: true, color: textColor,
align: "center", valign: "middle", fontFace: "Arial Rounded MT Bold",
});
}
function footerBar(slide, text) {
slide.addShape(pres.ShapeType.rect, { x: 0, y: 7.05, w: 13.3, h: 0.45, fill: { color: C.deepPurple } });
slide.addText(text, { x: 0, y: 7.05, w: 13.3, h: 0.45, fontSize: 11, color: C.lavender, align: "center", valign: "middle" });
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 1 – TITLE SLIDE
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.deepPurple } });
// decorative circles
s.addShape(pres.ShapeType.ellipse, { x: -0.6, y: -0.6, w: 3.5, h: 3.5, fill: { color: C.violet, transparency: 50 }, line: { color: C.violet, transparency: 50 } });
s.addShape(pres.ShapeType.ellipse, { x: 10.8, y: 5.0, w: 3.2, h: 3.2, fill: { color: C.teal, transparency: 50 }, line: { color: C.teal, transparency: 50 } });
s.addShape(pres.ShapeType.ellipse, { x: 5.5, y: 5.8, w: 2.2, h: 2.2, fill: { color: C.amber, transparency: 55 }, line: { color: C.amber, transparency: 55 } });
// badge
s.addShape(pres.ShapeType.roundRect, { x: 3.15, y: 0.7, w: 7.0, h: 1.0, fill: { color: C.amber }, line: { color: C.amber }, rectRadius: 0.2 });
s.addText("3rd Grade ESL | English Handbook", { x: 3.15, y: 0.7, w: 7.0, h: 1.0, fontSize: 18, bold: true, color: C.nearBlack, align: "center", valign: "middle" });
s.addText("Possessive Pronouns", {
x: 0.5, y: 1.9, w: 12.3, h: 1.6,
fontSize: 58, bold: true, color: C.white, align: "center", valign: "middle", fontFace: "Arial Rounded MT Bold",
});
s.addText("Притяжательные местоимения", {
x: 0.5, y: 3.5, w: 12.3, h: 0.75,
fontSize: 26, italic: true, color: C.lavender, align: "center", valign: "middle",
});
s.addText("Who does it belong to? • Кому это принадлежит?", {
x: 1.5, y: 4.4, w: 10.3, h: 0.55,
fontSize: 18, color: C.amberLight, align: "center", valign: "middle",
});
// emoji-style stars
const stars = ["⭐", "🌟", "✨"];
const sx = [1.5, 6.4, 11.0];
stars.forEach((st, i) => {
s.addText(st, { x: sx[i], y: 5.15, w: 0.8, h: 0.8, fontSize: 30, align: "center" });
});
s.addText("mine • yours • his • hers • its • ours • theirs", {
x: 1.5, y: 5.95, w: 10.3, h: 0.55,
fontSize: 16, color: C.tealLight, align: "center", italic: true,
});
footerBar(s, "Possessive Pronouns Handbook • ESL Grade 3");
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 2 – WHAT ARE POSSESSIVE PRONOUNS?
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.lightLav } });
headerBar(s, "📘 What Are Possessive Pronouns? | Что такое притяжательные местоимения?", C.deepPurple, C.white);
// definition box
s.addShape(pres.ShapeType.roundRect, { x: 0.4, y: 1.25, w: 12.5, h: 1.35, fill: { color: C.purple }, line: { color: C.deepPurple }, rectRadius: 0.18 });
s.addText([
{ text: "Possessive Pronouns ", options: { bold: true, color: C.amberLight } },
{ text: "show that something ", options: { color: C.white } },
{ text: "belongs ", options: { bold: true, color: C.amberLight } },
{ text: "to someone.", options: { color: C.white } },
], { x: 0.4, y: 1.25, w: 12.5, h: 0.7, fontSize: 22, align: "center", valign: "middle" });
s.addText("Притяжательные местоимения показывают, что что-то принадлежит кому-то.", {
x: 0.4, y: 1.95, w: 12.5, h: 0.65, fontSize: 17, color: C.lavender, align: "center", valign: "middle", italic: true,
});
// two-column info boxes
const boxes = [
{ x: 0.4, color: C.teal, title: "They REPLACE nouns", rus: "Они заменяют существительные", ex: '"This book is mine." (not "my book")', exRus: '"Эта книга — моя." (не "моя книга")' },
{ x: 6.85, color: C.coral, title: "They stand ALONE", rus: "Они стоят самостоятельно", ex: '"Is this yours?" "Yes, it is mine."', exRus: '"Это твоё?" "Да, это моё."' },
];
boxes.forEach(b => {
s.addShape(pres.ShapeType.roundRect, { x: b.x, y: 2.75, w: 6.05, h: 2.0, fill: { color: b.color }, line: { color: b.color }, rectRadius: 0.15 });
s.addText("✅ " + b.title, { x: b.x + 0.15, y: 2.8, w: 5.75, h: 0.45, fontSize: 17, bold: true, color: C.white });
s.addText(b.rus, { x: b.x + 0.15, y: 3.2, w: 5.75, h: 0.4, fontSize: 14, color: C.amberLight, italic: true });
s.addShape(pres.ShapeType.rect, { x: b.x + 0.15, y: 3.6, w: 5.75, h: 0.06, fill: { color: C.white, transparency: 50 } });
s.addText(b.ex, { x: b.x + 0.15, y: 3.65, w: 5.75, h: 0.45, fontSize: 14, color: C.amberPale, bold: true });
s.addText(b.exRus, { x: b.x + 0.15, y: 4.08, w: 5.75, h: 0.4, fontSize: 12, color: C.white, italic: true });
});
// tip
s.addShape(pres.ShapeType.roundRect, { x: 0.4, y: 4.95, w: 12.5, h: 1.05, fill: { color: C.amberPale }, line: { color: C.amber }, rectRadius: 0.12 });
s.addText([
{ text: "💡 Remember: ", options: { bold: true, color: C.amber } },
{ text: "Possessive pronouns do NOT need a noun after them!", options: { color: C.nearBlack } },
], { x: 0.4, y: 4.95, w: 12.5, h: 0.52, fontSize: 17, valign: "middle", margin: 10 });
s.addText("Запомни: притяжательные местоимения НЕ нуждаются в существительном после них!", {
x: 0.4, y: 5.47, w: 12.5, h: 0.5, fontSize: 14, color: C.teal, italic: true, margin: 10, valign: "middle",
});
footerBar(s, "Possessive Pronouns Handbook • ESL Grade 3");
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 3 – MAIN TABLE: POSSESSIVE PRONOUNS + RUSSIAN + EXAMPLES
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.bluePale } });
headerBar(s, "📋 Possessive Pronouns Table | Таблица притяжательных местоимений", C.blue, C.white);
// Column headers
const cols = [
{ x: 0.15, w: 1.7, label: "Pronoun\nМестоимение", bg: C.deepPurple },
{ x: 1.85, w: 1.7, label: "Meaning\nЗначение", bg: C.teal },
{ x: 3.55, w: 2.3, label: "Russian\nРусский перевод", bg: C.coral },
{ x: 5.85, w: 7.3, label: "Example + Russian Translation | Пример + Перевод", bg: C.amber },
];
cols.forEach(c => {
s.addShape(pres.ShapeType.roundRect, { x: c.x, y: 1.15, w: c.w, h: 0.6, fill: { color: c.bg }, line: { color: c.bg }, rectRadius: 0.08 });
s.addText(c.label, { x: c.x, y: 1.15, w: c.w, h: 0.6, fontSize: 11, bold: true, color: C.white, align: "center", valign: "middle" });
});
const rows = [
{ pronoun: "mine", meaning: "my (thing)", russian: "мой / моя / моё / мои", ex: "This pencil is mine.", exRus: "Этот карандаш — мой.", bg: C.lightLav },
{ pronoun: "yours", meaning: "your (thing)", russian: "твой / твоя / твоё / твои", ex: "Is this backpack yours?", exRus: "Этот рюкзак — твой?", bg: C.tealPale },
{ pronoun: "his", meaning: "his (thing)", russian: "его", ex: "That red hat is his.", exRus: "Та красная шапка — его.", bg: C.lightLav },
{ pronoun: "hers", meaning: "her (thing)", russian: "её", ex: "The pink jacket is hers.", exRus: "Розовая куртка — её.", bg: C.tealPale },
{ pronoun: "its", meaning: "its (thing)", russian: "его (о предмете/животном)", ex: "The dog's bowl is its.", exRus: "Миска собаки — её.", bg: C.lightLav },
{ pronoun: "ours", meaning: "our (thing)", russian: "наш / наша / наше / наши", ex: "This classroom is ours.", exRus: "Этот класс — наш.", bg: C.tealPale },
{ pronoun: "yours (pl.)", meaning: "your (pl.)", russian: "ваш / ваша / ваше / ваши", ex: "Is this table yours?", exRus: "Этот стол — ваш?", bg: C.lightLav },
{ pronoun: "theirs", meaning: "their (thing)", russian: "их", ex: "That big house is theirs.", exRus: "Тот большой дом — их.", bg: C.tealPale },
];
const pronounColors = [C.deepPurple, C.teal, C.coral, C.blue, C.green, C.purple, C.amber, C.teal];
const rowH = 0.58;
const startY = 1.78;
rows.forEach((r, i) => {
const y = startY + i * rowH;
// row bg
s.addShape(pres.ShapeType.roundRect, { x: 0.15, y: y, w: 12.98, h: rowH - 0.04, fill: { color: r.bg }, line: { color: C.lavender }, rectRadius: 0.06 });
// pronoun badge
s.addShape(pres.ShapeType.roundRect, { x: 0.2, y: y + 0.06, w: 1.6, h: rowH - 0.16, fill: { color: pronounColors[i] }, line: { color: pronounColors[i] }, rectRadius: 0.08 });
s.addText(r.pronoun, { x: 0.2, y: y + 0.06, w: 1.6, h: rowH - 0.16, fontSize: 16, bold: true, color: C.white, align: "center", valign: "middle" });
// meaning
s.addText(r.meaning, { x: 1.85, y: y + 0.04, w: 1.7, h: rowH - 0.1, fontSize: 12, color: C.nearBlack, align: "center", valign: "middle" });
// russian
s.addText(r.russian, { x: 3.55, y: y + 0.04, w: 2.3, h: rowH - 0.1, fontSize: 12, bold: true, color: C.coral, align: "center", valign: "middle" });
// example
s.addText([
{ text: r.ex + " ", options: { bold: true, color: C.blue, fontSize: 13 } },
{ text: r.exRus, options: { italic: true, color: C.teal, fontSize: 12 } },
], { x: 5.9, y: y + 0.05, w: 7.2, h: rowH - 0.12, valign: "middle" });
});
footerBar(s, "Possessive Pronouns Handbook • ESL Grade 3");
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 4 – SENTENCE FORMULA
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.amberPale } });
headerBar(s, "🔧 Sentence Formula | Формула построения предложений", C.amber, C.nearBlack);
// Formula box 1
s.addShape(pres.ShapeType.roundRect, { x: 0.4, y: 1.25, w: 12.5, h: 1.25, fill: { color: C.deepPurple }, line: { color: C.deepPurple }, rectRadius: 0.15 });
s.addText("📐 Formula 1: Subject + is/are + Possessive Pronoun", {
x: 0.4, y: 1.25, w: 12.5, h: 0.65, fontSize: 22, bold: true, color: C.amberLight, align: "center", valign: "middle",
});
s.addText("Формула 1: Подлежащее + is/are + Притяжательное местоимение", {
x: 0.4, y: 1.9, w: 12.5, h: 0.55, fontSize: 15, color: C.lavender, align: "center", valign: "middle", italic: true,
});
// Formula boxes for each type
const formulas = [
{
label: "✅ Positive (+)",
labelRus: "Утвердительное",
formula: "This / That + is + mine / yours / his / hers / ours / theirs",
ex: '"This book is mine."',
exRus: '"Эта книга — моя."',
bg: C.greenLight, tc: C.green,
},
{
label: "❌ Negative (−)",
labelRus: "Отрицательное",
formula: "This / That + is not (isn't) + mine / yours / his / ...",
ex: '"This bag is not yours."',
exRus: '"Эта сумка не твоя."',
bg: C.coralLight, tc: C.coral,
},
{
label: "❓ Question (?)",
labelRus: "Вопросительное",
formula: "Is / Are + this / that + mine / yours / his / ... + ?",
ex: '"Is this pencil yours?"',
exRus: '"Этот карандаш твой?"',
bg: C.blueLight, tc: C.blue,
},
];
formulas.forEach((f, i) => {
const y = 2.65 + i * 1.45;
s.addShape(pres.ShapeType.roundRect, { x: 0.4, y, w: 12.5, h: 1.35, fill: { color: f.bg }, line: { color: f.tc }, rectRadius: 0.12 });
s.addText(f.label, { x: 0.55, y: y + 0.05, w: 2.2, h: 0.48, fontSize: 15, bold: true, color: f.tc });
s.addText(f.labelRus, { x: 0.55, y: y + 0.5, w: 2.2, h: 0.38, fontSize: 12, color: f.tc, italic: true });
s.addShape(pres.ShapeType.rect, { x: 2.85, y: y + 0.1, w: 0.04, h: 1.15, fill: { color: f.tc } });
s.addText(f.formula, { x: 3.0, y: y + 0.05, w: 9.75, h: 0.48, fontSize: 15, bold: true, color: C.nearBlack });
s.addText(f.ex + " " + f.exRus, { x: 3.0, y: y + 0.55, w: 9.75, h: 0.68, fontSize: 14, color: f.tc, italic: true });
});
footerBar(s, "Possessive Pronouns Handbook • ESL Grade 3");
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 5 – CONVERSATION Q&A (Part 1: Q1–Q8)
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.tealPale } });
headerBar(s, "💬 Conversation Questions & Answers (1–8) | Вопросы и ответы (1–8)", C.teal, C.white);
const qas = [
{
q: "1. Whose book is on the desk?",
a: "It is mine. I left it there this morning.",
qRus: "Чья книга лежит на парте?",
aRus: "Она моя. Я оставил(а) её там утром.",
},
{
q: "2. Is this blue pen yours?",
a: "Yes, it is mine. Thank you for finding it.",
qRus: "Эта синяя ручка твоя?",
aRus: "Да, она моя. Спасибо, что нашёл(нашла) её.",
},
{
q: "3. Whose jacket is hanging by the door?",
a: "It is hers. She forgot it after class.",
qRus: "Чья куртка висит у двери?",
aRus: "Она её. Она забыла её после урока.",
},
{
q: "4. Is that red backpack his?",
a: "Yes, it is his. He brought it from home today.",
qRus: "Этот красный рюкзак его?",
aRus: "Да, он его. Он принёс его из дома сегодня.",
},
{
q: "5. Whose lunch box is in the fridge?",
a: "It is ours. Our mother packed it for us.",
qRus: "Чей ланч-бокс в холодильнике?",
aRus: "Он наш. Наша мама упаковала его для нас.",
},
{
q: "6. Are these colored pencils theirs?",
a: "Yes, they are theirs. They brought them for the art lesson.",
qRus: "Эти цветные карандаши их?",
aRus: "Да, они их. Они принесли их для урока рисования.",
},
{
q: "7. Is the big umbrella yours?",
a: "No, it is not mine. Mine is the small green one.",
qRus: "Большой зонт твой?",
aRus: "Нет, он не мой. Мой — маленький зелёный.",
},
{
q: "8. Whose dog is sleeping on the mat?",
a: "It is theirs. They walk it every morning.",
qRus: "Чья собака спит на коврике?",
aRus: "Она их. Они выгуливают её каждое утро.",
},
];
const rowH = 0.69;
const startY = 1.2;
const bgColors = [C.lightLav, C.tealPale, C.lightLav, C.tealPale, C.lightLav, C.tealPale, C.lightLav, C.tealPale];
const qColors = [C.deepPurple, C.teal, C.coral, C.blue, C.green, C.purple, C.amber, C.teal];
qas.forEach((qa, i) => {
const y = startY + i * rowH;
s.addShape(pres.ShapeType.roundRect, { x: 0.15, y, w: 12.98, h: rowH - 0.05, fill: { color: bgColors[i] }, line: { color: qColors[i] }, rectRadius: 0.08 });
s.addText([
{ text: qa.q + " ", options: { bold: true, color: qColors[i], fontSize: 13 } },
{ text: qa.qRus, options: { italic: true, color: C.gray, fontSize: 11 } },
], { x: 0.25, y: y + 0.03, w: 12.75, h: 0.32, valign: "middle" });
s.addText([
{ text: "➜ " + qa.a + " ", options: { color: C.nearBlack, fontSize: 12 } },
{ text: qa.aRus, options: { italic: true, color: C.teal, fontSize: 11 } },
], { x: 0.35, y: y + 0.33, w: 12.6, h: 0.3, valign: "middle" });
});
footerBar(s, "Possessive Pronouns Handbook • ESL Grade 3");
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 6 – CONVERSATION Q&A (Part 2: Q9–Q15)
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.bluePale } });
headerBar(s, "💬 Conversation Questions & Answers (9–15) | Вопросы и ответы (9–15)", C.blue, C.white);
const qas = [
{
q: "9. Whose turn is it to clean the board?",
a: "It is mine today. I will do it right now.",
qRus: "Чья очередь вытирать доску?",
aRus: "Сегодня моя очередь. Я сделаю это прямо сейчас.",
},
{
q: "10. Is this yellow water bottle yours or hers?",
a: "It is hers. She has the same color as her pencil case.",
qRus: "Эта жёлтая бутылка твоя или её?",
aRus: "Она её. У неё такой же цвет, как её пенал.",
},
{
q: "11. Whose seat is this near the window?",
a: "It is his. He always sits there to see the board clearly.",
qRus: "Чьё это место у окна?",
aRus: "Оно его. Он всегда сидит там, чтобы лучше видеть доску.",
},
{
q: "12. Are these homework papers ours?",
a: "Yes, they are ours. The teacher gave them back today.",
qRus: "Эти листы с домашним заданием наши?",
aRus: "Да, они наши. Учитель вернул их сегодня.",
},
{
q: "13. Whose eraser is on the floor?",
a: "It is mine. It fell off my desk.",
qRus: "Чья ластик лежит на полу?",
aRus: "Он мой. Он упал с моей парты.",
},
{
q: "14. Is the football in the yard theirs?",
a: "Yes, it is theirs. They play with it every break.",
qRus: "Мяч во дворе их?",
aRus: "Да, он их. Они играют с ним на каждой переменке.",
},
{
q: "15. Whose science project is on the shelf?",
a: "It is ours. We worked on it together last week.",
qRus: "Чей проект по науке стоит на полке?",
aRus: "Он наш. Мы работали над ним вместе на прошлой неделе.",
},
];
const rowH = 0.79;
const startY = 1.2;
const bgColors = [C.lightLav, C.tealPale, C.lightLav, C.tealPale, C.lightLav, C.tealPale, C.lightLav];
const qColors = [C.deepPurple, C.teal, C.coral, C.blue, C.green, C.purple, C.amber];
qas.forEach((qa, i) => {
const y = startY + i * rowH;
s.addShape(pres.ShapeType.roundRect, { x: 0.15, y, w: 12.98, h: rowH - 0.05, fill: { color: bgColors[i] }, line: { color: qColors[i] }, rectRadius: 0.08 });
s.addText([
{ text: qa.q + " ", options: { bold: true, color: qColors[i], fontSize: 13 } },
{ text: qa.qRus, options: { italic: true, color: C.gray, fontSize: 11 } },
], { x: 0.25, y: y + 0.04, w: 12.75, h: 0.34, valign: "middle" });
s.addText([
{ text: "➜ " + qa.a + " ", options: { color: C.nearBlack, fontSize: 12 } },
{ text: qa.aRus, options: { italic: true, color: C.teal, fontSize: 11 } },
], { x: 0.35, y: y + 0.38, w: 12.6, h: 0.34, valign: "middle" });
});
footerBar(s, "Possessive Pronouns Handbook • ESL Grade 3");
}
// ─────────────────────────────────────────────────────────────────────────────
// SLIDE 7 – QUICK REVIEW + TIPS
// ─────────────────────────────────────────────────────────────────────────────
{
const s = pres.addSlide();
s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 13.3, h: 7.5, fill: { color: C.lightLav } });
headerBar(s, "⭐ Quick Review & Helpful Tips | Краткое повторение и советы", C.deepPurple, C.white);
// Mini comparison table: Possessive Adjective vs Possessive Pronoun
s.addShape(pres.ShapeType.roundRect, { x: 0.3, y: 1.2, w: 12.7, h: 0.5, fill: { color: C.purple }, line: { color: C.purple }, rectRadius: 0.1 });
s.addText("Possessive Adjective vs Possessive Pronoun | Притяжательное прилагательное vs Местоимение", {
x: 0.3, y: 1.2, w: 12.7, h: 0.5, fontSize: 16, bold: true, color: C.white, align: "center", valign: "middle",
});
const compRows = [
["my book", "mine", "моя книга", "моя"],
["your bag", "yours", "твоя сумка", "твоя"],
["his hat", "his", "его шапка", "его"],
["her pen", "hers", "её ручка", "её"],
["our class", "ours", "наш класс", "наш"],
["their dog", "theirs", "их собака", "их"],
];
const colW = [2.5, 2.5, 3.3, 2.3];
const colX = [0.35, 2.85, 5.35, 8.65];
const colHeads = ["Adj. + Noun (before noun)", "Pronoun (alone)", "Прил. + Сущ.", "Местоимение"];
const headBgs = [C.teal, C.coral, C.teal, C.coral];
colHeads.forEach((h, ci) => {
s.addShape(pres.ShapeType.rect, { x: colX[ci], y: 1.72, w: colW[ci], h: 0.38, fill: { color: headBgs[ci] }, line: { color: headBgs[ci] } });
s.addText(h, { x: colX[ci], y: 1.72, w: colW[ci], h: 0.38, fontSize: 12, bold: true, color: C.white, align: "center", valign: "middle" });
});
compRows.forEach((r, ri) => {
const y = 2.12 + ri * 0.38;
const bg = ri % 2 === 0 ? C.white : C.lightLav;
s.addShape(pres.ShapeType.rect, { x: 0.35, y, w: 10.65, h: 0.38, fill: { color: bg }, line: { color: C.lavender } });
colX.forEach((cx, ci) => {
const textColor = ci === 1 || ci === 3 ? C.coral : C.nearBlack;
const isBold = ci === 1 || ci === 3;
s.addText(r[ci], { x: cx, y, w: colW[ci], h: 0.38, fontSize: 13, bold: isBold, color: textColor, align: "center", valign: "middle" });
});
});
// Tips
const tips = [
{ icon: "✅", tip: "Possessive pronouns stand ALONE — no noun needed after them.", tipRus: "Притяжательные местоимения стоят самостоятельно — существительное после них не нужно.", bg: C.greenLight, bc: C.green },
{ icon: "⚠️", tip: '"Its" (possessive) has NO apostrophe. Don\'t confuse with "it\'s" = it is.', tipRus: '"Its" (притяжательное) пишется БЕЗ апострофа. Не путай с "it\'s" = it is.', bg: C.amberPale, bc: C.amber },
{ icon: "💡", tip: '"His" is the same for both adjective and pronoun forms.', tipRus: '"His" одинаково для обеих форм — прилагательного и местоимения.', bg: C.blueLight, bc: C.blue },
];
tips.forEach((t, i) => {
const y = 4.57 + i * 0.72;
s.addShape(pres.ShapeType.roundRect, { x: 0.3, y, w: 12.7, h: 0.67, fill: { color: t.bg }, line: { color: t.bc }, rectRadius: 0.1 });
s.addText([
{ text: t.icon + " ", options: { fontSize: 16 } },
{ text: t.tip + " ", options: { bold: true, color: t.bc, fontSize: 14 } },
{ text: t.tipRus, options: { italic: true, color: C.gray, fontSize: 12 } },
], { x: 0.45, y, w: 12.4, h: 0.67, valign: "middle" });
});
footerBar(s, "Possessive Pronouns Handbook • ESL Grade 3");
}
// ─────────────────────────────────────────────────────────────────────────────
// WRITE FILE
// ─────────────────────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/possessive-ppt/Possessive_Pronouns_Handbook.pptx" })
.then(() => console.log("✅ Done! File written."))
.catch(err => console.error("❌ Error:", err));
cd /home/daytona/workspace/possessive-ppt && node possessive_pronouns.js
ls -lh /home/daytona/workspace/possessive-ppt/Possessive_Pronouns_Handbook.pptx
Possessive Pronouns Handbook
Presentation · PPTX
| Column | Content |
|---|---|
| 1 | Possessive Pronoun (colored badge) |
| 2 | Meaning in English |
| 3 | Russian Translation (мой, твой, его...) |
| 4 | Example sentence + Russian translation |