@polyglot-bundles/ka-syllabi 1.3.0 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +73 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/lesson-01-BBJKg1DY.js +6 -0
- package/dist/lesson-01-BBJKg1DY.js.map +1 -0
- package/dist/lesson-01-BSKhKTDW.js +6 -0
- package/dist/lesson-01-BSKhKTDW.js.map +1 -0
- package/dist/lesson-01-CTAv0yfD.js +6 -0
- package/dist/lesson-01-CTAv0yfD.js.map +1 -0
- package/dist/lesson-01-DSHysOJC.js +6 -0
- package/dist/lesson-01-DSHysOJC.js.map +1 -0
- package/dist/lesson-01-LSRt08jD.js +6 -0
- package/dist/lesson-01-LSRt08jD.js.map +1 -0
- package/dist/lesson-01-kLcICyFz.js +6 -0
- package/dist/lesson-01-kLcICyFz.js.map +1 -0
- package/dist/lesson-02-BNDCOZZz.js +6 -0
- package/dist/lesson-02-BNDCOZZz.js.map +1 -0
- package/dist/lesson-02-C9DZJyWt.js +6 -0
- package/dist/lesson-02-C9DZJyWt.js.map +1 -0
- package/dist/lesson-02-CsY7a8UP.js +6 -0
- package/dist/lesson-02-CsY7a8UP.js.map +1 -0
- package/dist/lesson-02-DPN3s6QY.js +6 -0
- package/dist/lesson-02-DPN3s6QY.js.map +1 -0
- package/dist/lesson-02-DWujij4_.js +6 -0
- package/dist/lesson-02-DWujij4_.js.map +1 -0
- package/dist/lesson-02-lSVoPv5L.js +6 -0
- package/dist/lesson-02-lSVoPv5L.js.map +1 -0
- package/dist/lesson-03-8O32c441.js +6 -0
- package/dist/lesson-03-8O32c441.js.map +1 -0
- package/dist/lesson-03-BOk3ZPw_.js +6 -0
- package/dist/lesson-03-BOk3ZPw_.js.map +1 -0
- package/dist/lesson-03-CSF1gzTa.js +6 -0
- package/dist/lesson-03-CSF1gzTa.js.map +1 -0
- package/dist/lesson-03-CuS_xeex.js +6 -0
- package/dist/lesson-03-CuS_xeex.js.map +1 -0
- package/dist/lesson-03-HM06LnOV.js +6 -0
- package/dist/lesson-03-HM06LnOV.js.map +1 -0
- package/dist/lesson-03-mZDq7lkM.js +6 -0
- package/dist/lesson-03-mZDq7lkM.js.map +1 -0
- package/dist/lesson-04-BonyJnLB.js +6 -0
- package/dist/lesson-04-BonyJnLB.js.map +1 -0
- package/dist/lesson-04-CRC7ZnPs.js +6 -0
- package/dist/lesson-04-CRC7ZnPs.js.map +1 -0
- package/dist/lesson-04-CmID-Isk.js +6 -0
- package/dist/lesson-04-CmID-Isk.js.map +1 -0
- package/dist/lesson-04-Du3L5xTx.js +6 -0
- package/dist/lesson-04-Du3L5xTx.js.map +1 -0
- package/dist/lesson-04-R0urHFPi.js +6 -0
- package/dist/lesson-04-R0urHFPi.js.map +1 -0
- package/dist/lesson-05-C5xA_tPR.js +6 -0
- package/dist/lesson-05-C5xA_tPR.js.map +1 -0
- package/dist/lesson-05-CSUzaNYS.js +6 -0
- package/dist/lesson-05-CSUzaNYS.js.map +1 -0
- package/dist/lesson-05-CT_60I7a.js +6 -0
- package/dist/lesson-05-CT_60I7a.js.map +1 -0
- package/dist/lesson-05-DAqBqOv1.js +6 -0
- package/dist/lesson-05-DAqBqOv1.js.map +1 -0
- package/dist/lesson-05-eNuIBRgT.js +6 -0
- package/dist/lesson-05-eNuIBRgT.js.map +1 -0
- package/dist/lesson-06-B4YxoTO1.js +6 -0
- package/dist/lesson-06-B4YxoTO1.js.map +1 -0
- package/dist/lesson-06-B5-j4iqf.js +6 -0
- package/dist/lesson-06-B5-j4iqf.js.map +1 -0
- package/dist/lesson-06-BiBaAfeD.js +6 -0
- package/dist/lesson-06-BiBaAfeD.js.map +1 -0
- package/dist/lesson-06-CaJFtC5V.js +6 -0
- package/dist/lesson-06-CaJFtC5V.js.map +1 -0
- package/dist/lesson-06-DOq3NnQS.js +6 -0
- package/dist/lesson-06-DOq3NnQS.js.map +1 -0
- package/dist/lesson-07-BQQqDq1V.js +6 -0
- package/dist/lesson-07-BQQqDq1V.js.map +1 -0
- package/dist/lesson-07-Bz7RpCPe.js +6 -0
- package/dist/lesson-07-Bz7RpCPe.js.map +1 -0
- package/dist/lesson-07-DsPjGL5E.js +6 -0
- package/dist/lesson-07-DsPjGL5E.js.map +1 -0
- package/dist/lesson-07-njalJYjv.js +6 -0
- package/dist/lesson-07-njalJYjv.js.map +1 -0
- package/dist/lesson-08-CBEhy7Ii.js +6 -0
- package/dist/lesson-08-CBEhy7Ii.js.map +1 -0
- package/dist/lesson-08-CKzWXQTu.js +6 -0
- package/dist/lesson-08-CKzWXQTu.js.map +1 -0
- package/dist/lesson-08-Cil-VviG.js +6 -0
- package/dist/lesson-08-Cil-VviG.js.map +1 -0
- package/dist/lesson-08-Ut6NpCj9.js +6 -0
- package/dist/lesson-08-Ut6NpCj9.js.map +1 -0
- package/dist/lesson-09-DO01blQM.js +6 -0
- package/dist/lesson-09-DO01blQM.js.map +1 -0
- package/dist/lesson-10-DcnEGGIo.js +6 -0
- package/dist/lesson-10-DcnEGGIo.js.map +1 -0
- package/dist/shared-Cpn5kpPR.js +35 -0
- package/dist/shared-Cpn5kpPR.js.map +1 -0
- package/dist/syllabi/alphabet/index.d.ts +7 -0
- package/dist/syllabi/alphabet/index.js +40 -0
- package/dist/syllabi/alphabet/index.js.map +1 -0
- package/dist/syllabi/dialogue/index.d.ts +7 -0
- package/dist/syllabi/dialogue/index.js +38 -0
- package/dist/syllabi/dialogue/index.js.map +1 -0
- package/dist/syllabi/essentials/index.d.ts +7 -0
- package/dist/syllabi/essentials/index.js +36 -0
- package/dist/syllabi/essentials/index.js.map +1 -0
- package/dist/syllabi/grammar/index.d.ts +7 -0
- package/dist/syllabi/grammar/index.js +38 -0
- package/dist/syllabi/grammar/index.js.map +1 -0
- package/dist/syllabi/numbers/index.d.ts +7 -0
- package/dist/syllabi/numbers/index.js +33 -0
- package/dist/syllabi/numbers/index.js.map +1 -0
- package/dist/syllabi/reading/index.d.ts +7 -0
- package/dist/syllabi/reading/index.js +38 -0
- package/dist/syllabi/reading/index.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
//#region src/syllabi/grammar/lessons/lesson-08.mdx?raw
|
|
2
|
+
var e = "---\ntype: lesson\nid: georgian-grammar-lesson-08\ntitle: \"გაკვეთილი 8 — ზედსართავები (Adjectives and Agreement)\"\ndescription: \"Georgian adjectives precede nouns and have no grammatical gender\"\norder: 8\nparentId: georgian-grammar\ndifficulty: intermediate\ncefrLevel: A2\ncategories:\n - grammar\n - adjectives\nmetadata:\n estimatedTime: 30\n prerequisites:\n - georgian-grammar-lesson-07\n learningObjectives:\n - id: obj-08-adjectives-order\n description: \"Place adjectives in the correct position before the noun\"\n skill: word-order\n - id: obj-08-adjectives-apply\n description: \"Use common adjectives in descriptive sentences\"\n skill: pattern-application\n - id: obj-08-adjectives-produce\n description: \"Produce noun phrases and sentences with adjectives\"\n skill: word-production\n---\n\n# გაკვეთილი 8 (Lesson 8) — Adjectives\n\n## Introduction\n\nGeorgian adjectives are in many ways simpler than those in European languages like French, Spanish, or German. There are two key facts to learn:\n\n1. **Adjectives come before the noun** — just like in English.\n2. **Georgian has no grammatical gender** — adjectives never change to agree with masculine or feminine nouns, because those categories do not exist in Georgian.\n\nThis makes Georgian adjectives refreshingly straightforward once you know the vocabulary.\n\n## Adjective Position\n\nAdjectives in Georgian always precede the noun they modify:\n\n| Georgian | Transliteration | Meaning |\n|----------|-----------------|---------|\n| დიდი სახლი | didi sakhli | big house |\n| პატარა ბავშვი | patara bavshvi | small child |\n| კარგი ადამიანი | kargi adamiani | good person |\n| ცუდი ამინდი | tsudi amindi | bad weather |\n| ახალი წიგნი | akhali tsigni | new book |\n| ლამაზი ქალაქი | lamazi kalaki | beautiful city |\n\n## Core Adjectives\n\n:::vocabulary-set{id=\"ka-gram-08-adjectives\" title=\"Common Georgian Adjectives\"}\n\n::vocab-item{id=\"didi\" word=\"დიდი\" pronunciation=\"di-di\" meaning=\"big, large, great\"}\n\n::vocab-item{id=\"patara\" word=\"პატარა\" pronunciation=\"pa-ta-ra\" meaning=\"small, little\"}\n\n::vocab-item{id=\"kargi\" word=\"კარგი\" pronunciation=\"kar-gi\" meaning=\"good\"}\n\n::vocab-item{id=\"tsudi\" word=\"ცუდი\" pronunciation=\"tsu-di\" meaning=\"bad\"}\n\n::vocab-item{id=\"akhali\" word=\"ახალი\" pronunciation=\"a-kha-li\" meaning=\"new\"}\n\n::vocab-item{id=\"dzvelі\" word=\"ძველი\" pronunciation=\"dzve-li\" meaning=\"old (of things)\"}\n\n::vocab-item{id=\"lamazi\" word=\"ლამაზი\" pronunciation=\"la-ma-zi\" meaning=\"beautiful, pretty\"}\n\n::vocab-item{id=\"dzmali\" word=\"ძლიერი\" pronunciation=\"dzli-e-ri\" meaning=\"strong, powerful\"}\n\n:::\n\n## No Gender Agreement — A Genuine Advantage\n\nIn French, you say *un grand homme* (a great man) but *une grande femme* (a great woman) — the adjective changes. In Georgian, **there is no such distinction**:\n\n- დიდი კაცი (didi katsi) — a big man\n- დიდი ქალი (didi kali) — a big woman\n- დიდი სახლი (didi sakhli) — a big house\n\nThe adjective **დიდი** never changes. This holds for all Georgian adjectives.\n\n## Adjectives in Case — They Follow the Noun\n\nWhile the adjective itself does not change for gender, adjectives **do follow the case of the noun they modify** when the noun takes a case ending:\n\n| Noun alone | Noun + adj | Meaning |\n|------------|------------|---------|\n| სახლი (nominative) | დიდი სახლი | big house (subject of intransitive) |\n| სახლს (dative) | დიდ სახლს | big house (object in present) |\n| სახლში (in + noun) | დიდ სახლში | in the big house |\n\nWhen the noun loses its -ი ending (as it does before postpositions), the adjective also drops its -ი:\n- დიდი → დიდ- (before postpositions or case-marked noun)\n\nThis is a learner-level observation — mastery comes with exposure.\n\n## Comparative and Superlative\n\nGeorgian forms comparatives and superlatives analytically (with separate words, not suffixes):\n\n| Degree | Structure | Example | Meaning |\n|--------|-----------|---------|---------|\n| Positive | adjective alone | კარგი | good |\n| Comparative | უ- + adj + -ეს | უკეთესი | better |\n| Superlative | ყველაზე + adj | ყველაზე კარგი | the best |\n\nThe **ყველაზე** (qvelaze) superlative is formed with the postposition **-ზე** (on/at) attached to **ყველა** (qvela, all) — literally \"at all\" or \"above all.\"\n\n## Practice Exercises\n\n:::exercise{id=\"ka-gram-08-adjectives-order\" type=\"fill-in-blank\" title=\"Place the Adjective\" skill=\"word-order\" objectiveId=\"obj-08-adjectives-order\"}\n\n**Question:** Arrange each pair into a correct Georgian noun phrase (adjective before noun)\n\n1. სახლი / დიდი (house / big)\n2. ბავშვი / პატარა (child / small)\n3. ქალაქი / ლამაზი (city / beautiful)\n4. წიგნი / ახალი (book / new)\n\n**Answer:**\n\n1. **დიდი სახლი** (big house)\n2. **პატარა ბავშვი** (small child)\n3. **ლამაზი ქალაქი** (beautiful city)\n4. **ახალი წიგნი** (new book)\n\n**Explanation:** In Georgian, adjectives always come before the noun — just like English. Unlike French or Spanish, there is no gender agreement to worry about. The adjective form stays the same regardless of the noun.\n\n:::\n\n:::exercise{id=\"ka-gram-08-adjectives-apply\" type=\"matching\" title=\"Match Adjective to Meaning\" skill=\"pattern-application\" objectiveId=\"obj-08-adjectives-apply\"}\n\n**Question:** Match each Georgian adjective to its English meaning\n\n- დიდი\n- პატარა\n- კარგი\n- ცუდი\n- ახალი\n- ძველი\n\n**Answer:**\n\n- დიდი → big / great\n- პატარა → small / little\n- კარგი → good\n- ცუდი → bad\n- ახალი → new\n- ძველი → old (things)\n\n**Explanation:** These six adjectives are among the most commonly used in everyday Georgian. კარგი and ცუდი also appear in common phrases: კარგად (well/good-bye) and ცუდი ამინდი (bad weather).\n\n:::\n\n:::exercise{id=\"ka-gram-08-adjectives-produce\" type=\"fill-in-blank\" title=\"Describe in Georgian\" skill=\"word-production\" objectiveId=\"obj-08-adjectives-produce\"}\n\n**Question:** Translate each description into Georgian\n\n1. a new book\n2. a beautiful city\n3. a big house\n4. a good person\n\n**Answer:**\n\n1. **ახალი წიგნი**\n2. **ლამაზი ქალაქი**\n3. **დიდი სახლი**\n4. **კარგი ადამიანი**\n\n**Explanation:** Place the adjective before the noun. No gender agreement required — the adjective form is identical regardless of what noun follows. This is one area where Georgian is simpler than many European languages.\n\n:::\n\n## Congratulations\n\nYou have completed the Georgian Grammar syllabus. You now understand the core structural features of Georgian:\n\n1. **SOV word order** — verb goes last\n2. **Personal pronouns and to-be** — six pronouns, no gender\n3. **Nominative and ergative cases** — case follows verb type\n4. **Postpositions** — spatial markers that follow the noun\n5. **Present tense verbs** — ვ- prefix for first person, -ს for third\n6. **Aorist past tense** — ergative shift for transitive subjects\n7. **Questions and negation** — question words + intonation, არ / ვერ\n8. **Adjectives** — before the noun, no gender agreement\n\nContinue building fluency by combining these patterns in real conversation and reading practice.\n";
|
|
3
|
+
//#endregion
|
|
4
|
+
export { e as default };
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=lesson-08-Ut6NpCj9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lesson-08-Ut6NpCj9.js","names":[],"sources":["../src/syllabi/grammar/lessons/lesson-08.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: georgian-grammar-lesson-08\\ntitle: \\\"გაკვეთილი 8 — ზედსართავები (Adjectives and Agreement)\\\"\\ndescription: \\\"Georgian adjectives precede nouns and have no grammatical gender\\\"\\norder: 8\\nparentId: georgian-grammar\\ndifficulty: intermediate\\ncefrLevel: A2\\ncategories:\\n - grammar\\n - adjectives\\nmetadata:\\n estimatedTime: 30\\n prerequisites:\\n - georgian-grammar-lesson-07\\n learningObjectives:\\n - id: obj-08-adjectives-order\\n description: \\\"Place adjectives in the correct position before the noun\\\"\\n skill: word-order\\n - id: obj-08-adjectives-apply\\n description: \\\"Use common adjectives in descriptive sentences\\\"\\n skill: pattern-application\\n - id: obj-08-adjectives-produce\\n description: \\\"Produce noun phrases and sentences with adjectives\\\"\\n skill: word-production\\n---\\n\\n# გაკვეთილი 8 (Lesson 8) — Adjectives\\n\\n## Introduction\\n\\nGeorgian adjectives are in many ways simpler than those in European languages like French, Spanish, or German. There are two key facts to learn:\\n\\n1. **Adjectives come before the noun** — just like in English.\\n2. **Georgian has no grammatical gender** — adjectives never change to agree with masculine or feminine nouns, because those categories do not exist in Georgian.\\n\\nThis makes Georgian adjectives refreshingly straightforward once you know the vocabulary.\\n\\n## Adjective Position\\n\\nAdjectives in Georgian always precede the noun they modify:\\n\\n| Georgian | Transliteration | Meaning |\\n|----------|-----------------|---------|\\n| დიდი სახლი | didi sakhli | big house |\\n| პატარა ბავშვი | patara bavshvi | small child |\\n| კარგი ადამიანი | kargi adamiani | good person |\\n| ცუდი ამინდი | tsudi amindi | bad weather |\\n| ახალი წიგნი | akhali tsigni | new book |\\n| ლამაზი ქალაქი | lamazi kalaki | beautiful city |\\n\\n## Core Adjectives\\n\\n:::vocabulary-set{id=\\\"ka-gram-08-adjectives\\\" title=\\\"Common Georgian Adjectives\\\"}\\n\\n::vocab-item{id=\\\"didi\\\" word=\\\"დიდი\\\" pronunciation=\\\"di-di\\\" meaning=\\\"big, large, great\\\"}\\n\\n::vocab-item{id=\\\"patara\\\" word=\\\"პატარა\\\" pronunciation=\\\"pa-ta-ra\\\" meaning=\\\"small, little\\\"}\\n\\n::vocab-item{id=\\\"kargi\\\" word=\\\"კარგი\\\" pronunciation=\\\"kar-gi\\\" meaning=\\\"good\\\"}\\n\\n::vocab-item{id=\\\"tsudi\\\" word=\\\"ცუდი\\\" pronunciation=\\\"tsu-di\\\" meaning=\\\"bad\\\"}\\n\\n::vocab-item{id=\\\"akhali\\\" word=\\\"ახალი\\\" pronunciation=\\\"a-kha-li\\\" meaning=\\\"new\\\"}\\n\\n::vocab-item{id=\\\"dzvelі\\\" word=\\\"ძველი\\\" pronunciation=\\\"dzve-li\\\" meaning=\\\"old (of things)\\\"}\\n\\n::vocab-item{id=\\\"lamazi\\\" word=\\\"ლამაზი\\\" pronunciation=\\\"la-ma-zi\\\" meaning=\\\"beautiful, pretty\\\"}\\n\\n::vocab-item{id=\\\"dzmali\\\" word=\\\"ძლიერი\\\" pronunciation=\\\"dzli-e-ri\\\" meaning=\\\"strong, powerful\\\"}\\n\\n:::\\n\\n## No Gender Agreement — A Genuine Advantage\\n\\nIn French, you say *un grand homme* (a great man) but *une grande femme* (a great woman) — the adjective changes. In Georgian, **there is no such distinction**:\\n\\n- დიდი კაცი (didi katsi) — a big man\\n- დიდი ქალი (didi kali) — a big woman\\n- დიდი სახლი (didi sakhli) — a big house\\n\\nThe adjective **დიდი** never changes. This holds for all Georgian adjectives.\\n\\n## Adjectives in Case — They Follow the Noun\\n\\nWhile the adjective itself does not change for gender, adjectives **do follow the case of the noun they modify** when the noun takes a case ending:\\n\\n| Noun alone | Noun + adj | Meaning |\\n|------------|------------|---------|\\n| სახლი (nominative) | დიდი სახლი | big house (subject of intransitive) |\\n| სახლს (dative) | დიდ სახლს | big house (object in present) |\\n| სახლში (in + noun) | დიდ სახლში | in the big house |\\n\\nWhen the noun loses its -ი ending (as it does before postpositions), the adjective also drops its -ი:\\n- დიდი → დიდ- (before postpositions or case-marked noun)\\n\\nThis is a learner-level observation — mastery comes with exposure.\\n\\n## Comparative and Superlative\\n\\nGeorgian forms comparatives and superlatives analytically (with separate words, not suffixes):\\n\\n| Degree | Structure | Example | Meaning |\\n|--------|-----------|---------|---------|\\n| Positive | adjective alone | კარგი | good |\\n| Comparative | უ- + adj + -ეს | უკეთესი | better |\\n| Superlative | ყველაზე + adj | ყველაზე კარგი | the best |\\n\\nThe **ყველაზე** (qvelaze) superlative is formed with the postposition **-ზე** (on/at) attached to **ყველა** (qvela, all) — literally \\\"at all\\\" or \\\"above all.\\\"\\n\\n## Practice Exercises\\n\\n:::exercise{id=\\\"ka-gram-08-adjectives-order\\\" type=\\\"fill-in-blank\\\" title=\\\"Place the Adjective\\\" skill=\\\"word-order\\\" objectiveId=\\\"obj-08-adjectives-order\\\"}\\n\\n**Question:** Arrange each pair into a correct Georgian noun phrase (adjective before noun)\\n\\n1. სახლი / დიდი (house / big)\\n2. ბავშვი / პატარა (child / small)\\n3. ქალაქი / ლამაზი (city / beautiful)\\n4. წიგნი / ახალი (book / new)\\n\\n**Answer:**\\n\\n1. **დიდი სახლი** (big house)\\n2. **პატარა ბავშვი** (small child)\\n3. **ლამაზი ქალაქი** (beautiful city)\\n4. **ახალი წიგნი** (new book)\\n\\n**Explanation:** In Georgian, adjectives always come before the noun — just like English. Unlike French or Spanish, there is no gender agreement to worry about. The adjective form stays the same regardless of the noun.\\n\\n:::\\n\\n:::exercise{id=\\\"ka-gram-08-adjectives-apply\\\" type=\\\"matching\\\" title=\\\"Match Adjective to Meaning\\\" skill=\\\"pattern-application\\\" objectiveId=\\\"obj-08-adjectives-apply\\\"}\\n\\n**Question:** Match each Georgian adjective to its English meaning\\n\\n- დიდი\\n- პატარა\\n- კარგი\\n- ცუდი\\n- ახალი\\n- ძველი\\n\\n**Answer:**\\n\\n- დიდი → big / great\\n- პატარა → small / little\\n- კარგი → good\\n- ცუდი → bad\\n- ახალი → new\\n- ძველი → old (things)\\n\\n**Explanation:** These six adjectives are among the most commonly used in everyday Georgian. კარგი and ცუდი also appear in common phrases: კარგად (well/good-bye) and ცუდი ამინდი (bad weather).\\n\\n:::\\n\\n:::exercise{id=\\\"ka-gram-08-adjectives-produce\\\" type=\\\"fill-in-blank\\\" title=\\\"Describe in Georgian\\\" skill=\\\"word-production\\\" objectiveId=\\\"obj-08-adjectives-produce\\\"}\\n\\n**Question:** Translate each description into Georgian\\n\\n1. a new book\\n2. a beautiful city\\n3. a big house\\n4. a good person\\n\\n**Answer:**\\n\\n1. **ახალი წიგნი**\\n2. **ლამაზი ქალაქი**\\n3. **დიდი სახლი**\\n4. **კარგი ადამიანი**\\n\\n**Explanation:** Place the adjective before the noun. No gender agreement required — the adjective form is identical regardless of what noun follows. This is one area where Georgian is simpler than many European languages.\\n\\n:::\\n\\n## Congratulations\\n\\nYou have completed the Georgian Grammar syllabus. You now understand the core structural features of Georgian:\\n\\n1. **SOV word order** — verb goes last\\n2. **Personal pronouns and to-be** — six pronouns, no gender\\n3. **Nominative and ergative cases** — case follows verb type\\n4. **Postpositions** — spatial markers that follow the noun\\n5. **Present tense verbs** — ვ- prefix for first person, -ს for third\\n6. **Aorist past tense** — ergative shift for transitive subjects\\n7. **Questions and negation** — question words + intonation, არ / ვერ\\n8. **Adjectives** — before the noun, no gender agreement\\n\\nContinue building fluency by combining these patterns in real conversation and reading practice.\\n\""],"mappings":";AAAA,IAAA,IAAe"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
//#region src/syllabi/alphabet/lessons/lesson-09.mdx?raw
|
|
2
|
+
var e = "---\ntype: lesson\nid: georgian-alphabet-lesson-09\ntitle: \"გაკვეთილი 9 — იშვიათი თანხმოვნები\"\ndescription: \"Less Common Consonants: ღ ძ ჰ — The voiced velar fricative gh, voiced affricate dz, and the rare h\"\norder: 9\nparentId: georgian-alphabet\ndifficulty: intermediate\ncefrLevel: A1\ncategories:\n - consonants\n - fricatives\n - affricates\n - less-common\nmetadata:\n estimatedTime: 30\n prerequisites:\n - georgian-alphabet-lesson-08\n learningObjectives:\n - id: obj-less-common-recognition\n description: \"Recognize the less common consonants ღ ძ ჰ\"\n skill: character-recognition\n references: [ghani, dzili, hae]\n - id: obj-gh-sound\n description: \"Produce and identify the voiced velar fricative gh\"\n skill: character-sound-mapping\n references: [ghani]\n - id: obj-less-common-word-reading\n description: \"Read words containing less common consonants\"\n skill: word-recognition\n references: [ghani, dzili, hae]\n---\n\n# გაკვეთილი 9 (Lesson 9) — Less Common Consonants\n\n## Introduction\n\nThis lesson covers three consonants that are less frequent in everyday writing but appear in important and iconic Georgian words. The star of this lesson is **ღ** (gh), a sound characteristic of Georgian and other Caucasian languages that has no equivalent in English.\n\n## Characters\n\n:::character-set{id=\"georgian-less-common-consonants\" title=\"Less Common Consonants\"}\n\n::character{id=\"ghani\" canonicalRef=\"ghani\" char=\"ღ\" name=\"ღ ღანი (Ghani)\" charType=\"consonant\" data:phoneticCategory=\"fricative\" data:voicing=\"voiced\" data:transliteration=\"gh\" data:ipa=\"ɣ\"}\n\n::character{id=\"dzili\" canonicalRef=\"dzili\" char=\"ძ\" name=\"ძ ძილი (Dzili)\" charType=\"consonant\" data:phoneticCategory=\"affricate\" data:voicing=\"voiced\" data:transliteration=\"dz\" data:ipa=\"d͡z\"}\n\n::character{id=\"hae\" canonicalRef=\"hae\" char=\"ჰ\" name=\"ჰ ჰაე (Hae)\" charType=\"consonant\" data:phoneticCategory=\"fricative\" data:voicing=\"voiceless\" data:transliteration=\"h\" data:ipa=\"h\"}\n\n:::\n\n## Pronunciation Guide\n\n### ღ (Ghani) - /ɣ/\n\nThis is a **voiced velar fricative**, one of the most distinctive sounds in Georgian. It is the voiced counterpart to ხ (/x/). To produce it:\n\n1. Position your tongue as if saying \"g\"\n2. Instead of making a full stop, let air flow through continuously\n3. Add voicing (vocal cord vibration)\n\nThe result is a deep, throaty sound. It is similar to:\n- The \"r\" in French \"rouge\" (though French r is typically uvular)\n- The \"g\" in Spanish \"amigo\" (when pronounced between vowels)\n\nThis sound is characteristic of Caucasian languages and appears in one of Georgia's most famous words: **ღვინო** (ghvino, wine).\n\n### ძ (Dzili) - /dz/\n\nPronounced like the \"ds\" at the end of English \"kids\" but at the beginning of a syllable. This is the **voiced alveolar affricate**, completing the three-way system:\n\n| Type | Letter | Sound |\n|------|--------|-------|\n| **Voiced** | **ძ** | /dz/ |\n| Aspirated | ც | /tsʰ/ |\n| Ejective | წ | /tsʼ/ |\n\nThe letter name itself, ძილი (dzili), means \"sleep.\"\n\n### ჰ (Hae) - /h/\n\nPronounced like English \"h\" in \"hello.\" This is a simple **voiceless glottal fricative**. Despite being easy to pronounce, ჰ is one of the **rarest** consonants in Georgian. It appears in only a handful of native words and some loanwords.\n\nWhy is it rare? Georgian historically had no /h/ sound. The letter was added primarily for borrowed words and a few specific native terms. Many Georgian speakers may even drop it in casual speech.\n\n## The Velar Fricative Pair: ხ and ღ\n\nThese two consonants form a voiceless-voiced pair at the velum:\n\n| Voicing | Letter | IPA | Example |\n|---------|--------|-----|---------|\n| Voiceless | ხ | /x/ | ხილი (khili, fruit) |\n| **Voiced** | **ღ** | /ɣ/ | ღვინო (ghvino, wine) |\n\nPractice alternating between them:\n- Start with ხ (voiceless): feel no throat vibration\n- Switch to ღ (voiced): feel your throat vibrate\n- The tongue position stays the same; only voicing changes\n\n## Practice Words\n\n| Word | Transliteration | Meaning | Notes |\n|------|----------------|---------|-------|\n| ღვინო | ghvino | wine | Georgia's most iconic word |\n| ძილი | dzili | sleep | Also the letter name |\n| ჰავა | hava | climate | One of the few native words with ჰ |\n\n## Georgia and Wine\n\nThe word **ღვინო** (ghvino) deserves special attention. Georgia is widely considered the birthplace of winemaking, with archaeological evidence of viticulture dating back 8,000 years. The English word \"wine\" may ultimately derive from the Georgian ღვინო through various intermediary languages. Learning to pronounce ღ correctly through this word connects you to one of Georgia's deepest cultural traditions.\n\n## The Complete Affricate System\n\nWith ძ, you now know all six Georgian affricates:\n\n| Position | Voiced | Aspirated | Ejective |\n|----------|--------|-----------|----------|\n| Alveolar (ts-type) | **ძ** /dz/ | ც /tsʰ/ | წ /tsʼ/ (Lesson 10) |\n| Postalveolar (ch-type) | ჯ /dʒ/ | ჩ /tʃʰ/ | ჭ /tʃʼ/ (Lesson 10) |\n\n## Key Points\n\n1. **ღ is uniquely Caucasian**: The voiced velar fricative has no English equivalent\n2. **ძ completes the alveolar affricates**: Voiced counterpart to ც and წ\n3. **ჰ is rare**: Georgian historically lacked this sound; it appears in few words\n4. **ღვინო (wine)**: Georgia's most culturally significant word and perfect ღ practice\n5. **Voicing pairs**: ხ/ღ mirror each other, differing only in vocal cord vibration\n\n## Practice Exercises\n\n:::exercise{id=\"less-common-recognition-09\" type=\"matching\" title=\"Less Common Consonant Recognition\" skill=\"character-recognition\" tests=\"ghani,dzili,hae\" objectiveId=\"obj-less-common-recognition\"}\n\n**Question:** Match each Georgian letter to its transliteration and sound\n\n- ღ\n- ძ\n- ჰ\n\n**Answer:**\n\n- gh /ɣ/ (Ghani) - voiced velar fricative\n- dz /dz/ (Dzili) - voiced alveolar affricate\n- h /h/ (Hae) - voiceless glottal fricative\n\n**Explanation:** These three consonants represent different positions in the mouth: ღ is produced at the velum (back), ძ at the alveolar ridge (front), and ჰ at the glottis (throat). Despite being less common in writing, they appear in important vocabulary.\n\n:::\n\n:::exercise{id=\"gh-sound-production-09\" type=\"multiple-choice\" title=\"Producing the Voiced Velar Fricative\" skill=\"character-sound-mapping\" tests=\"ghani\" objectiveId=\"obj-gh-sound\"}\n\n**Question:** How do you produce the Georgian sound ღ (/ɣ/)?\n\n**Options:**\n- Like English \"g\" but with continuous airflow and vocal cord vibration\n- Like English \"h\" but at the back of the mouth\n- Like English \"r\" with the tongue curled back\n- Like English \"ng\" at the end of \"sing\"\n\n**Answer:** 1\n\n**Explanation:** ღ (/ɣ/) is a voiced velar fricative. Position your tongue as for \"g\" (velar position), but instead of making a complete stop, allow air to flow continuously through a narrow gap. Add vocal cord vibration (voicing). The result is a deep, throaty sound unlike any English consonant.\n\n:::\n\n:::exercise{id=\"less-common-word-reading-09\" type=\"fill-in-blank\" title=\"Word Reading with Less Common Consonants\" skill=\"word-recognition\" tests=\"ghani,dzili,hae\" objectiveId=\"obj-less-common-word-reading\"}\n\n**Question:** Read each word and identify its initial consonant\n\n- ღვინო (wine)\n- ძილი (sleep)\n- ჰავა (climate)\n\n**Answer:**\n\n- ღ (gh, /ɣ/) - voiced velar fricative, Georgia's iconic wine word\n- ძ (dz, /dz/) - voiced alveolar affricate, the letter name means \"sleep\"\n- ჰ (h, /h/) - voiceless glottal fricative, rare in native Georgian words\n\n**Explanation:** These words showcase each consonant in a meaningful context. ღვინო (wine) is perhaps the most culturally important Georgian word and provides essential practice for the unique ღ sound.\n\n:::\n\n## What's Next\n\nIn Lesson 10, you'll learn the final three consonants: the ejective affricates წ and ჭ, and the uvular ejective ყ. You will also review all 33 letters of the Georgian alphabet.\n";
|
|
3
|
+
//#endregion
|
|
4
|
+
export { e as default };
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=lesson-09-DO01blQM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lesson-09-DO01blQM.js","names":[],"sources":["../src/syllabi/alphabet/lessons/lesson-09.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: georgian-alphabet-lesson-09\\ntitle: \\\"გაკვეთილი 9 — იშვიათი თანხმოვნები\\\"\\ndescription: \\\"Less Common Consonants: ღ ძ ჰ — The voiced velar fricative gh, voiced affricate dz, and the rare h\\\"\\norder: 9\\nparentId: georgian-alphabet\\ndifficulty: intermediate\\ncefrLevel: A1\\ncategories:\\n - consonants\\n - fricatives\\n - affricates\\n - less-common\\nmetadata:\\n estimatedTime: 30\\n prerequisites:\\n - georgian-alphabet-lesson-08\\n learningObjectives:\\n - id: obj-less-common-recognition\\n description: \\\"Recognize the less common consonants ღ ძ ჰ\\\"\\n skill: character-recognition\\n references: [ghani, dzili, hae]\\n - id: obj-gh-sound\\n description: \\\"Produce and identify the voiced velar fricative gh\\\"\\n skill: character-sound-mapping\\n references: [ghani]\\n - id: obj-less-common-word-reading\\n description: \\\"Read words containing less common consonants\\\"\\n skill: word-recognition\\n references: [ghani, dzili, hae]\\n---\\n\\n# გაკვეთილი 9 (Lesson 9) — Less Common Consonants\\n\\n## Introduction\\n\\nThis lesson covers three consonants that are less frequent in everyday writing but appear in important and iconic Georgian words. The star of this lesson is **ღ** (gh), a sound characteristic of Georgian and other Caucasian languages that has no equivalent in English.\\n\\n## Characters\\n\\n:::character-set{id=\\\"georgian-less-common-consonants\\\" title=\\\"Less Common Consonants\\\"}\\n\\n::character{id=\\\"ghani\\\" canonicalRef=\\\"ghani\\\" char=\\\"ღ\\\" name=\\\"ღ ღანი (Ghani)\\\" charType=\\\"consonant\\\" data:phoneticCategory=\\\"fricative\\\" data:voicing=\\\"voiced\\\" data:transliteration=\\\"gh\\\" data:ipa=\\\"ɣ\\\"}\\n\\n::character{id=\\\"dzili\\\" canonicalRef=\\\"dzili\\\" char=\\\"ძ\\\" name=\\\"ძ ძილი (Dzili)\\\" charType=\\\"consonant\\\" data:phoneticCategory=\\\"affricate\\\" data:voicing=\\\"voiced\\\" data:transliteration=\\\"dz\\\" data:ipa=\\\"d͡z\\\"}\\n\\n::character{id=\\\"hae\\\" canonicalRef=\\\"hae\\\" char=\\\"ჰ\\\" name=\\\"ჰ ჰაე (Hae)\\\" charType=\\\"consonant\\\" data:phoneticCategory=\\\"fricative\\\" data:voicing=\\\"voiceless\\\" data:transliteration=\\\"h\\\" data:ipa=\\\"h\\\"}\\n\\n:::\\n\\n## Pronunciation Guide\\n\\n### ღ (Ghani) - /ɣ/\\n\\nThis is a **voiced velar fricative**, one of the most distinctive sounds in Georgian. It is the voiced counterpart to ხ (/x/). To produce it:\\n\\n1. Position your tongue as if saying \\\"g\\\"\\n2. Instead of making a full stop, let air flow through continuously\\n3. Add voicing (vocal cord vibration)\\n\\nThe result is a deep, throaty sound. It is similar to:\\n- The \\\"r\\\" in French \\\"rouge\\\" (though French r is typically uvular)\\n- The \\\"g\\\" in Spanish \\\"amigo\\\" (when pronounced between vowels)\\n\\nThis sound is characteristic of Caucasian languages and appears in one of Georgia's most famous words: **ღვინო** (ghvino, wine).\\n\\n### ძ (Dzili) - /dz/\\n\\nPronounced like the \\\"ds\\\" at the end of English \\\"kids\\\" but at the beginning of a syllable. This is the **voiced alveolar affricate**, completing the three-way system:\\n\\n| Type | Letter | Sound |\\n|------|--------|-------|\\n| **Voiced** | **ძ** | /dz/ |\\n| Aspirated | ც | /tsʰ/ |\\n| Ejective | წ | /tsʼ/ |\\n\\nThe letter name itself, ძილი (dzili), means \\\"sleep.\\\"\\n\\n### ჰ (Hae) - /h/\\n\\nPronounced like English \\\"h\\\" in \\\"hello.\\\" This is a simple **voiceless glottal fricative**. Despite being easy to pronounce, ჰ is one of the **rarest** consonants in Georgian. It appears in only a handful of native words and some loanwords.\\n\\nWhy is it rare? Georgian historically had no /h/ sound. The letter was added primarily for borrowed words and a few specific native terms. Many Georgian speakers may even drop it in casual speech.\\n\\n## The Velar Fricative Pair: ხ and ღ\\n\\nThese two consonants form a voiceless-voiced pair at the velum:\\n\\n| Voicing | Letter | IPA | Example |\\n|---------|--------|-----|---------|\\n| Voiceless | ხ | /x/ | ხილი (khili, fruit) |\\n| **Voiced** | **ღ** | /ɣ/ | ღვინო (ghvino, wine) |\\n\\nPractice alternating between them:\\n- Start with ხ (voiceless): feel no throat vibration\\n- Switch to ღ (voiced): feel your throat vibrate\\n- The tongue position stays the same; only voicing changes\\n\\n## Practice Words\\n\\n| Word | Transliteration | Meaning | Notes |\\n|------|----------------|---------|-------|\\n| ღვინო | ghvino | wine | Georgia's most iconic word |\\n| ძილი | dzili | sleep | Also the letter name |\\n| ჰავა | hava | climate | One of the few native words with ჰ |\\n\\n## Georgia and Wine\\n\\nThe word **ღვინო** (ghvino) deserves special attention. Georgia is widely considered the birthplace of winemaking, with archaeological evidence of viticulture dating back 8,000 years. The English word \\\"wine\\\" may ultimately derive from the Georgian ღვინო through various intermediary languages. Learning to pronounce ღ correctly through this word connects you to one of Georgia's deepest cultural traditions.\\n\\n## The Complete Affricate System\\n\\nWith ძ, you now know all six Georgian affricates:\\n\\n| Position | Voiced | Aspirated | Ejective |\\n|----------|--------|-----------|----------|\\n| Alveolar (ts-type) | **ძ** /dz/ | ც /tsʰ/ | წ /tsʼ/ (Lesson 10) |\\n| Postalveolar (ch-type) | ჯ /dʒ/ | ჩ /tʃʰ/ | ჭ /tʃʼ/ (Lesson 10) |\\n\\n## Key Points\\n\\n1. **ღ is uniquely Caucasian**: The voiced velar fricative has no English equivalent\\n2. **ძ completes the alveolar affricates**: Voiced counterpart to ც and წ\\n3. **ჰ is rare**: Georgian historically lacked this sound; it appears in few words\\n4. **ღვინო (wine)**: Georgia's most culturally significant word and perfect ღ practice\\n5. **Voicing pairs**: ხ/ღ mirror each other, differing only in vocal cord vibration\\n\\n## Practice Exercises\\n\\n:::exercise{id=\\\"less-common-recognition-09\\\" type=\\\"matching\\\" title=\\\"Less Common Consonant Recognition\\\" skill=\\\"character-recognition\\\" tests=\\\"ghani,dzili,hae\\\" objectiveId=\\\"obj-less-common-recognition\\\"}\\n\\n**Question:** Match each Georgian letter to its transliteration and sound\\n\\n- ღ\\n- ძ\\n- ჰ\\n\\n**Answer:**\\n\\n- gh /ɣ/ (Ghani) - voiced velar fricative\\n- dz /dz/ (Dzili) - voiced alveolar affricate\\n- h /h/ (Hae) - voiceless glottal fricative\\n\\n**Explanation:** These three consonants represent different positions in the mouth: ღ is produced at the velum (back), ძ at the alveolar ridge (front), and ჰ at the glottis (throat). Despite being less common in writing, they appear in important vocabulary.\\n\\n:::\\n\\n:::exercise{id=\\\"gh-sound-production-09\\\" type=\\\"multiple-choice\\\" title=\\\"Producing the Voiced Velar Fricative\\\" skill=\\\"character-sound-mapping\\\" tests=\\\"ghani\\\" objectiveId=\\\"obj-gh-sound\\\"}\\n\\n**Question:** How do you produce the Georgian sound ღ (/ɣ/)?\\n\\n**Options:**\\n- Like English \\\"g\\\" but with continuous airflow and vocal cord vibration\\n- Like English \\\"h\\\" but at the back of the mouth\\n- Like English \\\"r\\\" with the tongue curled back\\n- Like English \\\"ng\\\" at the end of \\\"sing\\\"\\n\\n**Answer:** 1\\n\\n**Explanation:** ღ (/ɣ/) is a voiced velar fricative. Position your tongue as for \\\"g\\\" (velar position), but instead of making a complete stop, allow air to flow continuously through a narrow gap. Add vocal cord vibration (voicing). The result is a deep, throaty sound unlike any English consonant.\\n\\n:::\\n\\n:::exercise{id=\\\"less-common-word-reading-09\\\" type=\\\"fill-in-blank\\\" title=\\\"Word Reading with Less Common Consonants\\\" skill=\\\"word-recognition\\\" tests=\\\"ghani,dzili,hae\\\" objectiveId=\\\"obj-less-common-word-reading\\\"}\\n\\n**Question:** Read each word and identify its initial consonant\\n\\n- ღვინო (wine)\\n- ძილი (sleep)\\n- ჰავა (climate)\\n\\n**Answer:**\\n\\n- ღ (gh, /ɣ/) - voiced velar fricative, Georgia's iconic wine word\\n- ძ (dz, /dz/) - voiced alveolar affricate, the letter name means \\\"sleep\\\"\\n- ჰ (h, /h/) - voiceless glottal fricative, rare in native Georgian words\\n\\n**Explanation:** These words showcase each consonant in a meaningful context. ღვინო (wine) is perhaps the most culturally important Georgian word and provides essential practice for the unique ღ sound.\\n\\n:::\\n\\n## What's Next\\n\\nIn Lesson 10, you'll learn the final three consonants: the ejective affricates წ and ჭ, and the uvular ejective ყ. You will also review all 33 letters of the Georgian alphabet.\\n\""],"mappings":";AAAA,IAAA,IAAe"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
//#region src/syllabi/alphabet/lessons/lesson-10.mdx?raw
|
|
2
|
+
var e = "---\ntype: lesson\nid: georgian-alphabet-lesson-10\ntitle: \"გაკვეთილი 10 — ეჟექტიური აფრიკატები და სრული მიმოხილვა\"\ndescription: \"Ejective Affricates & Full Review: წ ჭ ყ — Complete the alphabet with ejective affricates and the uvular ejective, then review all 33 characters\"\norder: 10\nparentId: georgian-alphabet\ndifficulty: intermediate\ncefrLevel: A1\ncategories:\n - consonants\n - ejectives\n - affricates\n - review\n - advanced-characters\nmetadata:\n estimatedTime: 35\n prerequisites:\n - georgian-alphabet-lesson-09\n learningObjectives:\n - id: obj-ejective-affricate-recognition\n description: \"Recognize the ejective affricates წ ჭ and the uvular ejective ყ\"\n skill: character-recognition\n references: [tsili, chari, qari]\n - id: obj-ejective-contrast\n description: \"Distinguish ejective consonants from their voiced and aspirated counterparts\"\n skill: character-sound-mapping\n references: [tsili, chari, qari]\n - id: obj-full-alphabet-review\n description: \"Identify all 33 characters of the modern Georgian Mkhedruli alphabet\"\n skill: character-recognition\n - id: obj-complete-word-reading\n description: \"Read words using the complete Georgian alphabet\"\n skill: word-recognition\n references: [tsili, chari, qari]\n---\n\n# გაკვეთილი 10 (Lesson 10) — Ejective Affricates & Full Review\n\n## Introduction\n\nCongratulations! This lesson completes your journey through all **33 letters** of the modern Georgian Mkhedruli alphabet. You will learn three final consonants: the ejective affricates **წ** and **ჭ**, plus the uvular ejective stop **ყ**. These sounds are among the most distinctive features of Georgian phonology.\n\n## What Are Ejectives?\n\nEjective consonants are produced with a unique mechanism:\n\n1. The glottis (vocal cords) closes completely\n2. The tongue or lips form a closure at another point in the mouth\n3. The larynx rises, compressing the air between the two closures\n4. Both closures release simultaneously, creating a sharp, popping sound\n\nEjectives have **no voicing** and **no aspiration**. They sound crisp, abrupt, and intense. There is no equivalent in English or most European languages, but they are common in Caucasian, African, and indigenous American languages.\n\n## Characters\n\n:::character-set{id=\"georgian-ejective-affricates\" title=\"Ejective Affricates & Uvular Ejective\"}\n\n::character{id=\"tsili\" canonicalRef=\"tsili\" char=\"წ\" name=\"წ წილი (Tsili)\" charType=\"consonant\" data:phoneticCategory=\"affricate\" data:voicing=\"ejective\" data:transliteration=\"ts'\" data:ipa=\"t͡sʼ\"}\n\n::character{id=\"chari\" canonicalRef=\"chari\" char=\"ჭ\" name=\"ჭ ჭარი (Chari)\" charType=\"consonant\" data:phoneticCategory=\"affricate\" data:voicing=\"ejective\" data:transliteration=\"ch'\" data:ipa=\"t͡ʃʼ\"}\n\n::character{id=\"qari\" canonicalRef=\"qari\" char=\"ყ\" name=\"ყ ყარი (Qari)\" charType=\"consonant\" data:phoneticCategory=\"stop\" data:voicing=\"ejective\" data:transliteration=\"q'\" data:ipa=\"qʼ\"}\n\n:::\n\n## Pronunciation Guide\n\n### წ (Tsili) - /tsʼ/\n\nThis is an **ejective alveolar affricate**. It sounds like \"ts\" in \"cats\" but with glottalic airflow instead of pulmonary air. To practice:\n\n1. Say \"ts\" (as in \"cats\")\n2. Now try to produce it without any air from your lungs\n3. Close your glottis, build pressure, and release both closures at once\n4. The result should sound sharp and clipped, with no aspiration\n\nCompare the three alveolar affricates:\n- ძ /dz/ — voiced, with throat vibration\n- ც /tsʰ/ — aspirated, with a puff of air\n- **წ /tsʼ/** — ejective, sharp and clipped\n\n### ჭ (Chari) - /tʃʼ/\n\nThis is an **ejective postalveolar affricate**. It sounds like \"ch\" in \"church\" but produced with the same ejective mechanism as წ. Compare:\n- ჯ /dʒ/ — voiced \"j\" sound\n- ჩ /tʃʰ/ — aspirated \"ch\" sound\n- **ჭ /tʃʼ/** — ejective \"ch\" sound, sharp and abrupt\n\n### ყ (Qari) - /qʼ/\n\nThis is an **ejective uvular stop**, perhaps the most exotic sound in the Georgian alphabet. It is produced even further back than კ (velar ejective):\n\n- კ /kʼ/ — ejective at the **velum** (soft palate)\n- **ყ /qʼ/** — ejective at the **uvula** (even further back)\n\nTo produce ყ, the back of the tongue contacts the uvula while the glottis closes. The simultaneous release creates a deep, abrupt pop. This sound is common in Arabic (as the letter ق) and in many Caucasian languages.\n\n## The Complete Three-Way System\n\nWith these final consonants, the full Georgian three-way contrast system is complete:\n\n### Stops\n\n| Place | Voiced | Aspirated | Ejective |\n|-------|--------|-----------|----------|\n| Labial | ბ /b/ | ფ /pʰ/ | პ /pʼ/ |\n| Dental | დ /d/ | თ /tʰ/ | ტ /tʼ/ |\n| Velar | გ /g/ | ქ /kʰ/ | კ /kʼ/ |\n| Uvular | — | — | **ყ /qʼ/** |\n\n### Affricates\n\n| Place | Voiced | Aspirated | Ejective |\n|-------|--------|-----------|----------|\n| Alveolar | ძ /dz/ | ც /tsʰ/ | **წ /tsʼ/** |\n| Postalveolar | ჯ /dʒ/ | ჩ /tʃʰ/ | **ჭ /tʃʼ/** |\n\n## Practice Words\n\n| Word | Transliteration | Meaning | Notes |\n|------|----------------|---------|-------|\n| წელი | ts'eli | year | Common word with ejective წ |\n| ჭამა | ch'ama | eating | Everyday word, ejective ჭ |\n| ყავა | q'ava | coffee | Georgia's beloved coffee, ejective ყ |\n\n## Georgia and Coffee\n\nThe word **ყავა** (q'ava, coffee) provides an excellent practice word for the uvular ejective. Georgian coffee culture is deeply rooted, and the strong, rich Turkish-style coffee served throughout the country mirrors the intensity of the ყ sound itself.\n\n## The Complete 33-Letter Alphabet\n\nHere are all 33 letters of the modern Mkhedruli alphabet in traditional order:\n\n**ა ბ გ დ ე ვ ზ თ ი კ ლ მ ნ ო პ ჟ რ ს ტ უ ფ ქ ღ ყ შ ჩ ც ძ წ ჭ ხ ჯ ჰ**\n\n### By Category:\n\n**Vowels (5):**\nა /ɑ/, ე /ɛ/, ი /i/, ო /ɔ/, უ /u/\n\n**Stops — Voiced:**\nბ /b/, გ /g/, დ /d/\n\n**Stops — Aspirated:**\nთ /tʰ/, ფ /pʰ/, ქ /kʰ/\n\n**Stops — Ejective:**\nკ /kʼ/, პ /pʼ/, ტ /tʼ/, ყ /qʼ/\n\n**Affricates — Voiced:**\nძ /dz/, ჯ /dʒ/\n\n**Affricates — Aspirated:**\nც /tsʰ/, ჩ /tʃʰ/\n\n**Affricates — Ejective:**\nწ /tsʼ/, ჭ /tʃʼ/\n\n**Fricatives — Voiceless:**\nს /s/, შ /ʃ/, ხ /x/, ჰ /h/\n\n**Fricatives — Voiced:**\nზ /z/, ჟ /ʒ/, ღ /ɣ/\n\n**Sonorants:**\nვ /v/, ლ /l/, მ /m/, ნ /n/, რ /r/\n\n## Key Points\n\n1. **Ejectives use glottalic air**: No voicing, no aspiration, just a sharp pop\n2. **ყ is uvular**: Produced even further back than the velar ejective კ\n3. **Three-way system is complete**: Every stop and affricate position has voiced/aspirated/ejective variants\n4. **33 letters total**: 5 vowels, 28 consonants in the modern Mkhedruli script\n5. **Practice with real words**: წელი (year), ჭამა (eating), ყავა (coffee)\n\n## Practice Exercises\n\n:::exercise{id=\"ejective-recognition-10\" type=\"matching\" title=\"Ejective Affricate Recognition\" skill=\"character-recognition\" tests=\"tsili,chari,qari\" objectiveId=\"obj-ejective-affricate-recognition\"}\n\n**Question:** Match each ejective consonant to its transliteration and description\n\n- წ\n- ჭ\n- ყ\n\n**Answer:**\n\n- ts' /tsʼ/ (Tsili) - ejective alveolar affricate\n- ch' /tʃʼ/ (Chari) - ejective postalveolar affricate\n- q' /qʼ/ (Qari) - ejective uvular stop\n\n**Explanation:** These three consonants are all ejectives, produced with glottalic airflow rather than pulmonary air. წ and ჭ are affricates (stop + fricative release), while ყ is a pure stop at the uvular position.\n\n:::\n\n:::exercise{id=\"ejective-contrast-10\" type=\"multiple-choice\" title=\"Ejective vs Aspirated vs Voiced\" skill=\"character-sound-mapping\" tests=\"tsili,chari,qari\" objectiveId=\"obj-ejective-contrast\"}\n\n**Question:** What distinguishes an ejective consonant (like წ, ჭ, ყ) from an aspirated consonant (like ც, ჩ, ქ)?\n\n**Options:**\n- Ejectives are louder than aspirated consonants\n- Ejectives use glottalic airflow (glottis closure) while aspirated consonants use pulmonary air with a puff\n- Ejectives are voiced while aspirated consonants are voiceless\n- Ejectives are produced at the back of the mouth while aspirated consonants are at the front\n\n**Answer:** 2\n\n**Explanation:** The key distinction is the airstream mechanism. Ejectives close the glottis and use the rising larynx to compress air, producing a sharp, clipped sound. Aspirated consonants use normal lung air followed by a noticeable puff. Neither type involves vocal cord vibration (voicing).\n\n:::\n\n:::exercise{id=\"full-alphabet-review-10\" type=\"matching\" title=\"Full Alphabet Review\" skill=\"character-recognition\" objectiveId=\"obj-full-alphabet-review\"}\n\n**Question:** Classify each consonant by its manner of articulation\n\n- პ, ტ, კ, ყ\n- წ, ჭ\n- ბ, გ, დ\n- ს, შ, ხ, ჰ\n- ზ, ჟ, ღ\n\n**Answer:**\n\n- Ejective stops: პ /pʼ/, ტ /tʼ/, კ /kʼ/, ყ /qʼ/\n- Ejective affricates: წ /tsʼ/, ჭ /tʃʼ/\n- Voiced stops: ბ /b/, გ /g/, დ /d/\n- Voiceless fricatives: ს /s/, შ /ʃ/, ხ /x/, ჰ /h/\n- Voiced fricatives: ზ /z/, ჟ /ʒ/, ღ /ɣ/\n\n**Explanation:** Georgian consonants are organized by manner of articulation (how they are produced) and voicing. The three-way stop/affricate system (voiced/aspirated/ejective) is the defining feature of Georgian phonology. Fricatives follow a simpler voiced/voiceless distinction.\n\n:::\n\n:::exercise{id=\"complete-word-reading-10\" type=\"fill-in-blank\" title=\"Complete Word Reading\" skill=\"word-recognition\" tests=\"tsili,chari,qari\" objectiveId=\"obj-complete-word-reading\"}\n\n**Question:** Read each word, identify the ejective consonant, and give its meaning\n\n- წელი\n- ჭამა\n- ყავა\n\n**Answer:**\n\n- წელი (ts'eli) - year; წ is an ejective alveolar affricate /tsʼ/\n- ჭამა (ch'ama) - eating; ჭ is an ejective postalveolar affricate /tʃʼ/\n- ყავა (q'ava) - coffee; ყ is an ejective uvular stop /qʼ/\n\n**Explanation:** These three words showcase Georgian ejective consonants in everyday vocabulary. Practice producing each ejective with a sharp, clipped quality and no aspiration. The word ყავა (coffee) is especially useful since it contains both the challenging ყ and common vowels.\n\n:::\n\n## Congratulations!\n\nYou have now learned all **33 letters** of the modern Georgian Mkhedruli alphabet. This is a significant achievement! The Georgian script is one of the world's 14 unique alphabets and has been recognized by UNESCO as part of the Intangible Cultural Heritage of Humanity.\n\n## What's Next\n\nContinue practicing character recognition and pronunciation with real Georgian texts. Focus on:\n- Distinguishing the three-way contrasts (voiced/aspirated/ejective)\n- Reading common words without transliteration\n- Building speed in letter recognition\n";
|
|
3
|
+
//#endregion
|
|
4
|
+
export { e as default };
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=lesson-10-DcnEGGIo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lesson-10-DcnEGGIo.js","names":[],"sources":["../src/syllabi/alphabet/lessons/lesson-10.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: georgian-alphabet-lesson-10\\ntitle: \\\"გაკვეთილი 10 — ეჟექტიური აფრიკატები და სრული მიმოხილვა\\\"\\ndescription: \\\"Ejective Affricates & Full Review: წ ჭ ყ — Complete the alphabet with ejective affricates and the uvular ejective, then review all 33 characters\\\"\\norder: 10\\nparentId: georgian-alphabet\\ndifficulty: intermediate\\ncefrLevel: A1\\ncategories:\\n - consonants\\n - ejectives\\n - affricates\\n - review\\n - advanced-characters\\nmetadata:\\n estimatedTime: 35\\n prerequisites:\\n - georgian-alphabet-lesson-09\\n learningObjectives:\\n - id: obj-ejective-affricate-recognition\\n description: \\\"Recognize the ejective affricates წ ჭ and the uvular ejective ყ\\\"\\n skill: character-recognition\\n references: [tsili, chari, qari]\\n - id: obj-ejective-contrast\\n description: \\\"Distinguish ejective consonants from their voiced and aspirated counterparts\\\"\\n skill: character-sound-mapping\\n references: [tsili, chari, qari]\\n - id: obj-full-alphabet-review\\n description: \\\"Identify all 33 characters of the modern Georgian Mkhedruli alphabet\\\"\\n skill: character-recognition\\n - id: obj-complete-word-reading\\n description: \\\"Read words using the complete Georgian alphabet\\\"\\n skill: word-recognition\\n references: [tsili, chari, qari]\\n---\\n\\n# გაკვეთილი 10 (Lesson 10) — Ejective Affricates & Full Review\\n\\n## Introduction\\n\\nCongratulations! This lesson completes your journey through all **33 letters** of the modern Georgian Mkhedruli alphabet. You will learn three final consonants: the ejective affricates **წ** and **ჭ**, plus the uvular ejective stop **ყ**. These sounds are among the most distinctive features of Georgian phonology.\\n\\n## What Are Ejectives?\\n\\nEjective consonants are produced with a unique mechanism:\\n\\n1. The glottis (vocal cords) closes completely\\n2. The tongue or lips form a closure at another point in the mouth\\n3. The larynx rises, compressing the air between the two closures\\n4. Both closures release simultaneously, creating a sharp, popping sound\\n\\nEjectives have **no voicing** and **no aspiration**. They sound crisp, abrupt, and intense. There is no equivalent in English or most European languages, but they are common in Caucasian, African, and indigenous American languages.\\n\\n## Characters\\n\\n:::character-set{id=\\\"georgian-ejective-affricates\\\" title=\\\"Ejective Affricates & Uvular Ejective\\\"}\\n\\n::character{id=\\\"tsili\\\" canonicalRef=\\\"tsili\\\" char=\\\"წ\\\" name=\\\"წ წილი (Tsili)\\\" charType=\\\"consonant\\\" data:phoneticCategory=\\\"affricate\\\" data:voicing=\\\"ejective\\\" data:transliteration=\\\"ts'\\\" data:ipa=\\\"t͡sʼ\\\"}\\n\\n::character{id=\\\"chari\\\" canonicalRef=\\\"chari\\\" char=\\\"ჭ\\\" name=\\\"ჭ ჭარი (Chari)\\\" charType=\\\"consonant\\\" data:phoneticCategory=\\\"affricate\\\" data:voicing=\\\"ejective\\\" data:transliteration=\\\"ch'\\\" data:ipa=\\\"t͡ʃʼ\\\"}\\n\\n::character{id=\\\"qari\\\" canonicalRef=\\\"qari\\\" char=\\\"ყ\\\" name=\\\"ყ ყარი (Qari)\\\" charType=\\\"consonant\\\" data:phoneticCategory=\\\"stop\\\" data:voicing=\\\"ejective\\\" data:transliteration=\\\"q'\\\" data:ipa=\\\"qʼ\\\"}\\n\\n:::\\n\\n## Pronunciation Guide\\n\\n### წ (Tsili) - /tsʼ/\\n\\nThis is an **ejective alveolar affricate**. It sounds like \\\"ts\\\" in \\\"cats\\\" but with glottalic airflow instead of pulmonary air. To practice:\\n\\n1. Say \\\"ts\\\" (as in \\\"cats\\\")\\n2. Now try to produce it without any air from your lungs\\n3. Close your glottis, build pressure, and release both closures at once\\n4. The result should sound sharp and clipped, with no aspiration\\n\\nCompare the three alveolar affricates:\\n- ძ /dz/ — voiced, with throat vibration\\n- ც /tsʰ/ — aspirated, with a puff of air\\n- **წ /tsʼ/** — ejective, sharp and clipped\\n\\n### ჭ (Chari) - /tʃʼ/\\n\\nThis is an **ejective postalveolar affricate**. It sounds like \\\"ch\\\" in \\\"church\\\" but produced with the same ejective mechanism as წ. Compare:\\n- ჯ /dʒ/ — voiced \\\"j\\\" sound\\n- ჩ /tʃʰ/ — aspirated \\\"ch\\\" sound\\n- **ჭ /tʃʼ/** — ejective \\\"ch\\\" sound, sharp and abrupt\\n\\n### ყ (Qari) - /qʼ/\\n\\nThis is an **ejective uvular stop**, perhaps the most exotic sound in the Georgian alphabet. It is produced even further back than კ (velar ejective):\\n\\n- კ /kʼ/ — ejective at the **velum** (soft palate)\\n- **ყ /qʼ/** — ejective at the **uvula** (even further back)\\n\\nTo produce ყ, the back of the tongue contacts the uvula while the glottis closes. The simultaneous release creates a deep, abrupt pop. This sound is common in Arabic (as the letter ق) and in many Caucasian languages.\\n\\n## The Complete Three-Way System\\n\\nWith these final consonants, the full Georgian three-way contrast system is complete:\\n\\n### Stops\\n\\n| Place | Voiced | Aspirated | Ejective |\\n|-------|--------|-----------|----------|\\n| Labial | ბ /b/ | ფ /pʰ/ | პ /pʼ/ |\\n| Dental | დ /d/ | თ /tʰ/ | ტ /tʼ/ |\\n| Velar | გ /g/ | ქ /kʰ/ | კ /kʼ/ |\\n| Uvular | — | — | **ყ /qʼ/** |\\n\\n### Affricates\\n\\n| Place | Voiced | Aspirated | Ejective |\\n|-------|--------|-----------|----------|\\n| Alveolar | ძ /dz/ | ც /tsʰ/ | **წ /tsʼ/** |\\n| Postalveolar | ჯ /dʒ/ | ჩ /tʃʰ/ | **ჭ /tʃʼ/** |\\n\\n## Practice Words\\n\\n| Word | Transliteration | Meaning | Notes |\\n|------|----------------|---------|-------|\\n| წელი | ts'eli | year | Common word with ejective წ |\\n| ჭამა | ch'ama | eating | Everyday word, ejective ჭ |\\n| ყავა | q'ava | coffee | Georgia's beloved coffee, ejective ყ |\\n\\n## Georgia and Coffee\\n\\nThe word **ყავა** (q'ava, coffee) provides an excellent practice word for the uvular ejective. Georgian coffee culture is deeply rooted, and the strong, rich Turkish-style coffee served throughout the country mirrors the intensity of the ყ sound itself.\\n\\n## The Complete 33-Letter Alphabet\\n\\nHere are all 33 letters of the modern Mkhedruli alphabet in traditional order:\\n\\n**ა ბ გ დ ე ვ ზ თ ი კ ლ მ ნ ო პ ჟ რ ს ტ უ ფ ქ ღ ყ შ ჩ ც ძ წ ჭ ხ ჯ ჰ**\\n\\n### By Category:\\n\\n**Vowels (5):**\\nა /ɑ/, ე /ɛ/, ი /i/, ო /ɔ/, უ /u/\\n\\n**Stops — Voiced:**\\nბ /b/, გ /g/, დ /d/\\n\\n**Stops — Aspirated:**\\nთ /tʰ/, ფ /pʰ/, ქ /kʰ/\\n\\n**Stops — Ejective:**\\nკ /kʼ/, პ /pʼ/, ტ /tʼ/, ყ /qʼ/\\n\\n**Affricates — Voiced:**\\nძ /dz/, ჯ /dʒ/\\n\\n**Affricates — Aspirated:**\\nც /tsʰ/, ჩ /tʃʰ/\\n\\n**Affricates — Ejective:**\\nწ /tsʼ/, ჭ /tʃʼ/\\n\\n**Fricatives — Voiceless:**\\nს /s/, შ /ʃ/, ხ /x/, ჰ /h/\\n\\n**Fricatives — Voiced:**\\nზ /z/, ჟ /ʒ/, ღ /ɣ/\\n\\n**Sonorants:**\\nვ /v/, ლ /l/, მ /m/, ნ /n/, რ /r/\\n\\n## Key Points\\n\\n1. **Ejectives use glottalic air**: No voicing, no aspiration, just a sharp pop\\n2. **ყ is uvular**: Produced even further back than the velar ejective კ\\n3. **Three-way system is complete**: Every stop and affricate position has voiced/aspirated/ejective variants\\n4. **33 letters total**: 5 vowels, 28 consonants in the modern Mkhedruli script\\n5. **Practice with real words**: წელი (year), ჭამა (eating), ყავა (coffee)\\n\\n## Practice Exercises\\n\\n:::exercise{id=\\\"ejective-recognition-10\\\" type=\\\"matching\\\" title=\\\"Ejective Affricate Recognition\\\" skill=\\\"character-recognition\\\" tests=\\\"tsili,chari,qari\\\" objectiveId=\\\"obj-ejective-affricate-recognition\\\"}\\n\\n**Question:** Match each ejective consonant to its transliteration and description\\n\\n- წ\\n- ჭ\\n- ყ\\n\\n**Answer:**\\n\\n- ts' /tsʼ/ (Tsili) - ejective alveolar affricate\\n- ch' /tʃʼ/ (Chari) - ejective postalveolar affricate\\n- q' /qʼ/ (Qari) - ejective uvular stop\\n\\n**Explanation:** These three consonants are all ejectives, produced with glottalic airflow rather than pulmonary air. წ and ჭ are affricates (stop + fricative release), while ყ is a pure stop at the uvular position.\\n\\n:::\\n\\n:::exercise{id=\\\"ejective-contrast-10\\\" type=\\\"multiple-choice\\\" title=\\\"Ejective vs Aspirated vs Voiced\\\" skill=\\\"character-sound-mapping\\\" tests=\\\"tsili,chari,qari\\\" objectiveId=\\\"obj-ejective-contrast\\\"}\\n\\n**Question:** What distinguishes an ejective consonant (like წ, ჭ, ყ) from an aspirated consonant (like ც, ჩ, ქ)?\\n\\n**Options:**\\n- Ejectives are louder than aspirated consonants\\n- Ejectives use glottalic airflow (glottis closure) while aspirated consonants use pulmonary air with a puff\\n- Ejectives are voiced while aspirated consonants are voiceless\\n- Ejectives are produced at the back of the mouth while aspirated consonants are at the front\\n\\n**Answer:** 2\\n\\n**Explanation:** The key distinction is the airstream mechanism. Ejectives close the glottis and use the rising larynx to compress air, producing a sharp, clipped sound. Aspirated consonants use normal lung air followed by a noticeable puff. Neither type involves vocal cord vibration (voicing).\\n\\n:::\\n\\n:::exercise{id=\\\"full-alphabet-review-10\\\" type=\\\"matching\\\" title=\\\"Full Alphabet Review\\\" skill=\\\"character-recognition\\\" objectiveId=\\\"obj-full-alphabet-review\\\"}\\n\\n**Question:** Classify each consonant by its manner of articulation\\n\\n- პ, ტ, კ, ყ\\n- წ, ჭ\\n- ბ, გ, დ\\n- ს, შ, ხ, ჰ\\n- ზ, ჟ, ღ\\n\\n**Answer:**\\n\\n- Ejective stops: პ /pʼ/, ტ /tʼ/, კ /kʼ/, ყ /qʼ/\\n- Ejective affricates: წ /tsʼ/, ჭ /tʃʼ/\\n- Voiced stops: ბ /b/, გ /g/, დ /d/\\n- Voiceless fricatives: ს /s/, შ /ʃ/, ხ /x/, ჰ /h/\\n- Voiced fricatives: ზ /z/, ჟ /ʒ/, ღ /ɣ/\\n\\n**Explanation:** Georgian consonants are organized by manner of articulation (how they are produced) and voicing. The three-way stop/affricate system (voiced/aspirated/ejective) is the defining feature of Georgian phonology. Fricatives follow a simpler voiced/voiceless distinction.\\n\\n:::\\n\\n:::exercise{id=\\\"complete-word-reading-10\\\" type=\\\"fill-in-blank\\\" title=\\\"Complete Word Reading\\\" skill=\\\"word-recognition\\\" tests=\\\"tsili,chari,qari\\\" objectiveId=\\\"obj-complete-word-reading\\\"}\\n\\n**Question:** Read each word, identify the ejective consonant, and give its meaning\\n\\n- წელი\\n- ჭამა\\n- ყავა\\n\\n**Answer:**\\n\\n- წელი (ts'eli) - year; წ is an ejective alveolar affricate /tsʼ/\\n- ჭამა (ch'ama) - eating; ჭ is an ejective postalveolar affricate /tʃʼ/\\n- ყავა (q'ava) - coffee; ყ is an ejective uvular stop /qʼ/\\n\\n**Explanation:** These three words showcase Georgian ejective consonants in everyday vocabulary. Practice producing each ejective with a sharp, clipped quality and no aspiration. The word ყავა (coffee) is especially useful since it contains both the challenging ყ and common vowels.\\n\\n:::\\n\\n## Congratulations!\\n\\nYou have now learned all **33 letters** of the modern Georgian Mkhedruli alphabet. This is a significant achievement! The Georgian script is one of the world's 14 unique alphabets and has been recognized by UNESCO as part of the Intangible Cultural Heritage of Humanity.\\n\\n## What's Next\\n\\nContinue practicing character recognition and pronunciation with real Georgian texts. Focus on:\\n- Distinguishing the three-way contrasts (voiced/aspirated/ejective)\\n- Reading common words without transliteration\\n- Building speed in letter recognition\\n\""],"mappings":";AAAA,IAAA,IAAe"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
|
+
var e = Object.defineProperty, t = (t, n) => {
|
|
3
|
+
let r = {};
|
|
4
|
+
for (var i in t) e(r, i, {
|
|
5
|
+
get: t[i],
|
|
6
|
+
enumerable: !0
|
|
7
|
+
});
|
|
8
|
+
return n || e(r, Symbol.toStringTag, { value: "Module" }), r;
|
|
9
|
+
};
|
|
10
|
+
//#endregion
|
|
11
|
+
//#region src/shared.ts
|
|
12
|
+
function n(e, t) {
|
|
13
|
+
return {
|
|
14
|
+
config: e,
|
|
15
|
+
async loadLesson(n) {
|
|
16
|
+
if (n < 1 || n > e.lessonCount) throw Error(`Lesson ${n} not found. Valid range: 1-${e.lessonCount}`);
|
|
17
|
+
return {
|
|
18
|
+
number: n,
|
|
19
|
+
rawContent: (await t(n)).default
|
|
20
|
+
};
|
|
21
|
+
},
|
|
22
|
+
async loadAllLessons() {
|
|
23
|
+
let t = [];
|
|
24
|
+
for (let n = 1; n <= e.lessonCount; n++) t.push(await this.loadLesson(n));
|
|
25
|
+
return t;
|
|
26
|
+
},
|
|
27
|
+
getAvailableLessons() {
|
|
28
|
+
return Array.from({ length: e.lessonCount }, (e, t) => t + 1);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
export { t as n, n as t };
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=shared-Cpn5kpPR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-Cpn5kpPR.js","names":[],"sources":["../src/shared.ts"],"sourcesContent":["/**\n * Shared types and utilities for SYLLST content.\n * `CEFRLevel` is the canonical type from `@polyglot-bundles/syllabi-base`\n * (was previously inlined locally; see #13).\n */\n\nimport type { CEFRLevel } from \"@polyglot-bundles/syllabi-base\";\nexport type { CEFRLevel };\n\n/**\n * Difficulty levels\n */\nexport type Difficulty = 'beginner' | 'intermediate' | 'advanced';\n\n/**\n * Icon types for syllabi\n */\nexport type SyllabusIcon =\n | 'alphabet'\n | 'dialogue'\n | 'vocabulary'\n | 'grammar'\n | 'reading'\n | 'numbers'\n | 'food'\n | 'travel';\n\n/**\n * Configuration for a syllabus content package\n */\nexport interface SyllabusConfig {\n /** Unique syllabus ID (e.g., \"ka-alphabet\") */\n id: string;\n /** Display title */\n title: string;\n /** Description */\n description: string;\n /** Language code (ISO 639-1) */\n language: string;\n /** Locale code (e.g., \"ka-GE\") */\n locale: string;\n /** Number of lessons */\n lessonCount: number;\n /** Difficulty level */\n difficulty: Difficulty;\n /** CEFR level */\n cefrLevel: CEFRLevel;\n /** Icon for display */\n icon?: SyllabusIcon;\n /** Package version */\n version: string;\n}\n\n/**\n * Result of loading a lesson\n */\nexport interface LoadedLesson {\n /** Lesson number (1-indexed) */\n number: number;\n /** Raw MDX content */\n rawContent: string;\n}\n\n/**\n * Content loader interface\n */\nexport interface ContentLoader {\n /** Syllabus configuration */\n config: SyllabusConfig;\n /** Load a single lesson by number */\n loadLesson(lessonNumber: number): Promise<LoadedLesson>;\n /** Load all lessons */\n loadAllLessons(): Promise<LoadedLesson[]>;\n /** Get list of available lesson numbers */\n getAvailableLessons(): number[];\n}\n\n/**\n * Create a content loader from config and lesson loader function\n */\nexport function createContentLoader(\n config: SyllabusConfig,\n loadLessonMDX: (lessonNumber: number) => Promise<{ default: string }>\n): ContentLoader {\n return {\n config,\n\n async loadLesson(lessonNumber: number): Promise<LoadedLesson> {\n if (lessonNumber < 1 || lessonNumber > config.lessonCount) {\n throw new Error(`Lesson ${lessonNumber} not found. Valid range: 1-${config.lessonCount}`);\n }\n const module = await loadLessonMDX(lessonNumber);\n return {\n number: lessonNumber,\n rawContent: module.default,\n };\n },\n\n async loadAllLessons(): Promise<LoadedLesson[]> {\n const lessons: LoadedLesson[] = [];\n for (let i = 1; i <= config.lessonCount; i++) {\n lessons.push(await this.loadLesson(i));\n }\n return lessons;\n },\n\n getAvailableLessons(): number[] {\n return Array.from({ length: config.lessonCount }, (_, i) => i + 1);\n },\n };\n}\n"],"mappings":";;;;;;;;;;;AAgFA,SAAgB,EACd,GACA,GACe;AACf,QAAO;EACL;EAEA,MAAM,WAAW,GAA6C;AAC5D,OAAI,IAAe,KAAK,IAAe,EAAO,YAC5C,OAAU,MAAM,UAAU,EAAa,6BAA6B,EAAO,cAAc;AAG3F,UAAO;IACL,QAAQ;IACR,aAHa,MAAM,EAAc,EAAa,EAG3B;IACpB;;EAGH,MAAM,iBAA0C;GAC9C,IAAM,IAA0B,EAAE;AAClC,QAAK,IAAI,IAAI,GAAG,KAAK,EAAO,aAAa,IACvC,GAAQ,KAAK,MAAM,KAAK,WAAW,EAAE,CAAC;AAExC,UAAO;;EAGT,sBAAgC;AAC9B,UAAO,MAAM,KAAK,EAAE,QAAQ,EAAO,aAAa,GAAG,GAAG,MAAM,IAAI,EAAE;;EAErE"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SyllabusConfig, ContentLoader } from '../../shared.js';
|
|
2
|
+
export declare const config: SyllabusConfig;
|
|
3
|
+
export declare const loader: ContentLoader;
|
|
4
|
+
export declare const loadLesson: (lessonNumber: number) => Promise<import('../../shared.js').LoadedLesson>;
|
|
5
|
+
export declare const loadAllLessons: () => Promise<import('../../shared.js').LoadedLesson[]>;
|
|
6
|
+
export declare const getAvailableLessons: () => number[];
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { n as e, t } from "../../shared-Cpn5kpPR.js";
|
|
2
|
+
//#region src/syllabi/alphabet/index.ts
|
|
3
|
+
var n = /* @__PURE__ */ e({
|
|
4
|
+
config: () => r,
|
|
5
|
+
getAvailableLessons: () => c,
|
|
6
|
+
loadAllLessons: () => s,
|
|
7
|
+
loadLesson: () => o,
|
|
8
|
+
loader: () => a
|
|
9
|
+
}), r = {
|
|
10
|
+
id: "ka-alphabet",
|
|
11
|
+
title: "ქართული ანბანი (Georgian Alphabet)",
|
|
12
|
+
description: "Learn the Georgian Mkhedruli script - vowels and consonants",
|
|
13
|
+
language: "ka",
|
|
14
|
+
locale: "ka-GE",
|
|
15
|
+
lessonCount: 10,
|
|
16
|
+
difficulty: "beginner",
|
|
17
|
+
cefrLevel: "A1",
|
|
18
|
+
icon: "alphabet",
|
|
19
|
+
version: "0.1.0"
|
|
20
|
+
};
|
|
21
|
+
async function i(e) {
|
|
22
|
+
switch (e) {
|
|
23
|
+
case 1: return import("../../lesson-01-LSRt08jD.js");
|
|
24
|
+
case 2: return import("../../lesson-02-CsY7a8UP.js");
|
|
25
|
+
case 3: return import("../../lesson-03-BOk3ZPw_.js");
|
|
26
|
+
case 4: return import("../../lesson-04-CmID-Isk.js");
|
|
27
|
+
case 5: return import("../../lesson-05-eNuIBRgT.js");
|
|
28
|
+
case 6: return import("../../lesson-06-CaJFtC5V.js");
|
|
29
|
+
case 7: return import("../../lesson-07-Bz7RpCPe.js");
|
|
30
|
+
case 8: return import("../../lesson-08-CBEhy7Ii.js");
|
|
31
|
+
case 9: return import("../../lesson-09-DO01blQM.js");
|
|
32
|
+
case 10: return import("../../lesson-10-DcnEGGIo.js");
|
|
33
|
+
default: throw Error(`Lesson ${e} not found`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
var a = t(r, i), o = a.loadLesson.bind(a), s = a.loadAllLessons.bind(a), c = a.getAvailableLessons.bind(a);
|
|
37
|
+
//#endregion
|
|
38
|
+
export { r as config, c as getAvailableLessons, s as loadAllLessons, o as loadLesson, a as loader, n as t };
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/syllabi/alphabet/index.ts"],"sourcesContent":["/**\n * Georgian Alphabet syllabus\n */\n\nimport { createContentLoader, type SyllabusConfig, type ContentLoader } from '../../shared.js';\n\nexport const config: SyllabusConfig = {\n id: 'ka-alphabet',\n title: 'ქართული ანბანი (Georgian Alphabet)',\n description: 'Learn the Georgian Mkhedruli script - vowels and consonants',\n language: 'ka',\n locale: 'ka-GE',\n lessonCount: 10,\n difficulty: 'beginner',\n cefrLevel: 'A1',\n icon: 'alphabet',\n version: '0.1.0',\n};\n\nasync function loadLessonMDX(lessonNumber: number) {\n switch (lessonNumber) {\n case 1: return import('./lessons/lesson-01.mdx?raw');\n case 2: return import('./lessons/lesson-02.mdx?raw');\n case 3: return import('./lessons/lesson-03.mdx?raw');\n case 4: return import('./lessons/lesson-04.mdx?raw');\n case 5: return import('./lessons/lesson-05.mdx?raw');\n case 6: return import('./lessons/lesson-06.mdx?raw');\n case 7: return import('./lessons/lesson-07.mdx?raw');\n case 8: return import('./lessons/lesson-08.mdx?raw');\n case 9: return import('./lessons/lesson-09.mdx?raw');\n case 10: return import('./lessons/lesson-10.mdx?raw');\n default: throw new Error(`Lesson ${lessonNumber} not found`);\n }\n}\n\nexport const loader: ContentLoader = createContentLoader(config, loadLessonMDX);\nexport const loadLesson = loader.loadLesson.bind(loader);\nexport const loadAllLessons = loader.loadAllLessons.bind(loader);\nexport const getAvailableLessons = loader.getAvailableLessons.bind(loader);\n"],"mappings":";;;;;;;;IAMa,IAAyB;CACpC,IAAI;CACJ,OAAO;CACP,aAAa;CACb,UAAU;CACV,QAAQ;CACR,aAAa;CACb,YAAY;CACZ,WAAW;CACX,MAAM;CACN,SAAS;CACV;AAED,eAAe,EAAc,GAAsB;AACjD,SAAQ,GAAR;EACE,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,GAAI,QAAO,OAAO;EACvB,QAAS,OAAU,MAAM,UAAU,EAAa,YAAY;;;AAIhE,IAAa,IAAwB,EAAoB,GAAQ,EAAc,EAClE,IAAa,EAAO,WAAW,KAAK,EAAO,EAC3C,IAAiB,EAAO,eAAe,KAAK,EAAO,EACnD,IAAsB,EAAO,oBAAoB,KAAK,EAAO"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SyllabusConfig, ContentLoader } from '../../shared.js';
|
|
2
|
+
export declare const config: SyllabusConfig;
|
|
3
|
+
export declare const loader: ContentLoader;
|
|
4
|
+
export declare const loadLesson: (lessonNumber: number) => Promise<import('../../shared.js').LoadedLesson>;
|
|
5
|
+
export declare const loadAllLessons: () => Promise<import('../../shared.js').LoadedLesson[]>;
|
|
6
|
+
export declare const getAvailableLessons: () => number[];
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { n as e, t } from "../../shared-Cpn5kpPR.js";
|
|
2
|
+
//#region src/syllabi/dialogue/index.ts
|
|
3
|
+
var n = /* @__PURE__ */ e({
|
|
4
|
+
config: () => r,
|
|
5
|
+
getAvailableLessons: () => c,
|
|
6
|
+
loadAllLessons: () => s,
|
|
7
|
+
loadLesson: () => o,
|
|
8
|
+
loader: () => a
|
|
9
|
+
}), r = {
|
|
10
|
+
id: "ka-dialogue",
|
|
11
|
+
title: "Dialogue",
|
|
12
|
+
description: "Georgian conversation dialogues",
|
|
13
|
+
language: "ka",
|
|
14
|
+
locale: "ka-GE",
|
|
15
|
+
lessonCount: 8,
|
|
16
|
+
difficulty: "intermediate",
|
|
17
|
+
cefrLevel: "A2",
|
|
18
|
+
icon: "dialogue",
|
|
19
|
+
version: "0.1.0"
|
|
20
|
+
};
|
|
21
|
+
async function i(e) {
|
|
22
|
+
switch (e) {
|
|
23
|
+
case 1: return import("../../lesson-01-DSHysOJC.js");
|
|
24
|
+
case 2: return import("../../lesson-02-C9DZJyWt.js");
|
|
25
|
+
case 3: return import("../../lesson-03-mZDq7lkM.js");
|
|
26
|
+
case 4: return import("../../lesson-04-Du3L5xTx.js");
|
|
27
|
+
case 5: return import("../../lesson-05-CT_60I7a.js");
|
|
28
|
+
case 6: return import("../../lesson-06-B4YxoTO1.js");
|
|
29
|
+
case 7: return import("../../lesson-07-njalJYjv.js");
|
|
30
|
+
case 8: return import("../../lesson-08-Cil-VviG.js");
|
|
31
|
+
default: throw Error(`Lesson ${e} not found`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
var a = t(r, i), o = a.loadLesson.bind(a), s = a.loadAllLessons.bind(a), c = a.getAvailableLessons.bind(a);
|
|
35
|
+
//#endregion
|
|
36
|
+
export { r as config, c as getAvailableLessons, s as loadAllLessons, o as loadLesson, a as loader, n as t };
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/syllabi/dialogue/index.ts"],"sourcesContent":["/**\n * Georgian Dialogue syllabus\n */\n\nimport { createContentLoader, type SyllabusConfig, type ContentLoader } from '../../shared.js';\n\nexport const config: SyllabusConfig = {\n id: 'ka-dialogue',\n title: 'Dialogue',\n description: 'Georgian conversation dialogues',\n language: 'ka',\n locale: 'ka-GE',\n lessonCount: 8,\n difficulty: 'intermediate',\n cefrLevel: 'A2',\n icon: 'dialogue',\n version: '0.1.0',\n};\n\nasync function loadLessonMDX(lessonNumber: number) {\n switch (lessonNumber) {\n case 1: return import('./lessons/lesson-01.mdx?raw');\n case 2: return import('./lessons/lesson-02.mdx?raw');\n case 3: return import('./lessons/lesson-03.mdx?raw');\n case 4: return import('./lessons/lesson-04.mdx?raw');\n case 5: return import('./lessons/lesson-05.mdx?raw');\n case 6: return import('./lessons/lesson-06.mdx?raw');\n case 7: return import('./lessons/lesson-07.mdx?raw');\n case 8: return import('./lessons/lesson-08.mdx?raw');\n default: throw new Error(`Lesson ${lessonNumber} not found`);\n }\n}\n\nexport const loader: ContentLoader = createContentLoader(config, loadLessonMDX);\nexport const loadLesson = loader.loadLesson.bind(loader);\nexport const loadAllLessons = loader.loadAllLessons.bind(loader);\nexport const getAvailableLessons = loader.getAvailableLessons.bind(loader);\n"],"mappings":";;;;;;;;IAMa,IAAyB;CACpC,IAAI;CACJ,OAAO;CACP,aAAa;CACb,UAAU;CACV,QAAQ;CACR,aAAa;CACb,YAAY;CACZ,WAAW;CACX,MAAM;CACN,SAAS;CACV;AAED,eAAe,EAAc,GAAsB;AACjD,SAAQ,GAAR;EACE,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,QAAS,OAAU,MAAM,UAAU,EAAa,YAAY;;;AAIhE,IAAa,IAAwB,EAAoB,GAAQ,EAAc,EAClE,IAAa,EAAO,WAAW,KAAK,EAAO,EAC3C,IAAiB,EAAO,eAAe,KAAK,EAAO,EACnD,IAAsB,EAAO,oBAAoB,KAAK,EAAO"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SyllabusConfig, ContentLoader } from '../../shared.js';
|
|
2
|
+
export declare const config: SyllabusConfig;
|
|
3
|
+
export declare const loader: ContentLoader;
|
|
4
|
+
export declare const loadLesson: (lessonNumber: number) => Promise<import('../../shared.js').LoadedLesson>;
|
|
5
|
+
export declare const loadAllLessons: () => Promise<import('../../shared.js').LoadedLesson[]>;
|
|
6
|
+
export declare const getAvailableLessons: () => number[];
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { n as e, t } from "../../shared-Cpn5kpPR.js";
|
|
2
|
+
//#region src/syllabi/essentials/index.ts
|
|
3
|
+
var n = /* @__PURE__ */ e({
|
|
4
|
+
config: () => r,
|
|
5
|
+
getAvailableLessons: () => c,
|
|
6
|
+
loadAllLessons: () => s,
|
|
7
|
+
loadLesson: () => o,
|
|
8
|
+
loader: () => a
|
|
9
|
+
}), r = {
|
|
10
|
+
id: "ka-essentials",
|
|
11
|
+
title: "Essentials",
|
|
12
|
+
description: "Essential Georgian phrases and vocabulary",
|
|
13
|
+
language: "ka",
|
|
14
|
+
locale: "ka-GE",
|
|
15
|
+
lessonCount: 6,
|
|
16
|
+
difficulty: "beginner",
|
|
17
|
+
cefrLevel: "A1",
|
|
18
|
+
icon: "vocabulary",
|
|
19
|
+
version: "0.1.0"
|
|
20
|
+
};
|
|
21
|
+
async function i(e) {
|
|
22
|
+
switch (e) {
|
|
23
|
+
case 1: return import("../../lesson-01-BSKhKTDW.js");
|
|
24
|
+
case 2: return import("../../lesson-02-DPN3s6QY.js");
|
|
25
|
+
case 3: return import("../../lesson-03-8O32c441.js");
|
|
26
|
+
case 4: return import("../../lesson-04-R0urHFPi.js");
|
|
27
|
+
case 5: return import("../../lesson-05-CSUzaNYS.js");
|
|
28
|
+
case 6: return import("../../lesson-06-B5-j4iqf.js");
|
|
29
|
+
default: throw Error(`Lesson ${e} not found`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
var a = t(r, i), o = a.loadLesson.bind(a), s = a.loadAllLessons.bind(a), c = a.getAvailableLessons.bind(a);
|
|
33
|
+
//#endregion
|
|
34
|
+
export { r as config, c as getAvailableLessons, s as loadAllLessons, o as loadLesson, a as loader, n as t };
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/syllabi/essentials/index.ts"],"sourcesContent":["/**\n * Georgian Essentials syllabus\n */\n\nimport { createContentLoader, type SyllabusConfig, type ContentLoader } from '../../shared.js';\n\nexport const config: SyllabusConfig = {\n id: 'ka-essentials',\n title: 'Essentials',\n description: 'Essential Georgian phrases and vocabulary',\n language: 'ka',\n locale: 'ka-GE',\n lessonCount: 6,\n difficulty: 'beginner',\n cefrLevel: 'A1',\n icon: 'vocabulary',\n version: '0.1.0',\n};\n\nasync function loadLessonMDX(lessonNumber: number) {\n switch (lessonNumber) {\n case 1: return import('./lessons/lesson-01.mdx?raw');\n case 2: return import('./lessons/lesson-02.mdx?raw');\n case 3: return import('./lessons/lesson-03.mdx?raw');\n case 4: return import('./lessons/lesson-04.mdx?raw');\n case 5: return import('./lessons/lesson-05.mdx?raw');\n case 6: return import('./lessons/lesson-06.mdx?raw');\n default: throw new Error(`Lesson ${lessonNumber} not found`);\n }\n}\n\nexport const loader: ContentLoader = createContentLoader(config, loadLessonMDX);\nexport const loadLesson = loader.loadLesson.bind(loader);\nexport const loadAllLessons = loader.loadAllLessons.bind(loader);\nexport const getAvailableLessons = loader.getAvailableLessons.bind(loader);\n"],"mappings":";;;;;;;;IAMa,IAAyB;CACpC,IAAI;CACJ,OAAO;CACP,aAAa;CACb,UAAU;CACV,QAAQ;CACR,aAAa;CACb,YAAY;CACZ,WAAW;CACX,MAAM;CACN,SAAS;CACV;AAED,eAAe,EAAc,GAAsB;AACjD,SAAQ,GAAR;EACE,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,QAAS,OAAU,MAAM,UAAU,EAAa,YAAY;;;AAIhE,IAAa,IAAwB,EAAoB,GAAQ,EAAc,EAClE,IAAa,EAAO,WAAW,KAAK,EAAO,EAC3C,IAAiB,EAAO,eAAe,KAAK,EAAO,EACnD,IAAsB,EAAO,oBAAoB,KAAK,EAAO"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SyllabusConfig, ContentLoader } from '../../shared.js';
|
|
2
|
+
export declare const config: SyllabusConfig;
|
|
3
|
+
export declare const loader: ContentLoader;
|
|
4
|
+
export declare const loadLesson: (lessonNumber: number) => Promise<import('../../shared.js').LoadedLesson>;
|
|
5
|
+
export declare const loadAllLessons: () => Promise<import('../../shared.js').LoadedLesson[]>;
|
|
6
|
+
export declare const getAvailableLessons: () => number[];
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { n as e, t } from "../../shared-Cpn5kpPR.js";
|
|
2
|
+
//#region src/syllabi/grammar/index.ts
|
|
3
|
+
var n = /* @__PURE__ */ e({
|
|
4
|
+
config: () => r,
|
|
5
|
+
getAvailableLessons: () => c,
|
|
6
|
+
loadAllLessons: () => s,
|
|
7
|
+
loadLesson: () => o,
|
|
8
|
+
loader: () => a
|
|
9
|
+
}), r = {
|
|
10
|
+
id: "ka-grammar",
|
|
11
|
+
title: "Grammar",
|
|
12
|
+
description: "Georgian grammar fundamentals",
|
|
13
|
+
language: "ka",
|
|
14
|
+
locale: "ka-GE",
|
|
15
|
+
lessonCount: 8,
|
|
16
|
+
difficulty: "intermediate",
|
|
17
|
+
cefrLevel: "B1",
|
|
18
|
+
icon: "grammar",
|
|
19
|
+
version: "0.1.0"
|
|
20
|
+
};
|
|
21
|
+
async function i(e) {
|
|
22
|
+
switch (e) {
|
|
23
|
+
case 1: return import("../../lesson-01-CTAv0yfD.js");
|
|
24
|
+
case 2: return import("../../lesson-02-BNDCOZZz.js");
|
|
25
|
+
case 3: return import("../../lesson-03-HM06LnOV.js");
|
|
26
|
+
case 4: return import("../../lesson-04-BonyJnLB.js");
|
|
27
|
+
case 5: return import("../../lesson-05-DAqBqOv1.js");
|
|
28
|
+
case 6: return import("../../lesson-06-DOq3NnQS.js");
|
|
29
|
+
case 7: return import("../../lesson-07-BQQqDq1V.js");
|
|
30
|
+
case 8: return import("../../lesson-08-Ut6NpCj9.js");
|
|
31
|
+
default: throw Error(`Lesson ${e} not found`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
var a = t(r, i), o = a.loadLesson.bind(a), s = a.loadAllLessons.bind(a), c = a.getAvailableLessons.bind(a);
|
|
35
|
+
//#endregion
|
|
36
|
+
export { r as config, c as getAvailableLessons, s as loadAllLessons, o as loadLesson, a as loader, n as t };
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/syllabi/grammar/index.ts"],"sourcesContent":["/**\n * Georgian Grammar syllabus\n */\n\nimport { createContentLoader, type SyllabusConfig, type ContentLoader } from '../../shared.js';\n\nexport const config: SyllabusConfig = {\n id: 'ka-grammar',\n title: 'Grammar',\n description: 'Georgian grammar fundamentals',\n language: 'ka',\n locale: 'ka-GE',\n lessonCount: 8,\n difficulty: 'intermediate',\n cefrLevel: 'B1',\n icon: 'grammar',\n version: '0.1.0',\n};\n\nasync function loadLessonMDX(lessonNumber: number) {\n switch (lessonNumber) {\n case 1: return import('./lessons/lesson-01.mdx?raw');\n case 2: return import('./lessons/lesson-02.mdx?raw');\n case 3: return import('./lessons/lesson-03.mdx?raw');\n case 4: return import('./lessons/lesson-04.mdx?raw');\n case 5: return import('./lessons/lesson-05.mdx?raw');\n case 6: return import('./lessons/lesson-06.mdx?raw');\n case 7: return import('./lessons/lesson-07.mdx?raw');\n case 8: return import('./lessons/lesson-08.mdx?raw');\n default: throw new Error(`Lesson ${lessonNumber} not found`);\n }\n}\n\nexport const loader: ContentLoader = createContentLoader(config, loadLessonMDX);\nexport const loadLesson = loader.loadLesson.bind(loader);\nexport const loadAllLessons = loader.loadAllLessons.bind(loader);\nexport const getAvailableLessons = loader.getAvailableLessons.bind(loader);\n"],"mappings":";;;;;;;;IAMa,IAAyB;CACpC,IAAI;CACJ,OAAO;CACP,aAAa;CACb,UAAU;CACV,QAAQ;CACR,aAAa;CACb,YAAY;CACZ,WAAW;CACX,MAAM;CACN,SAAS;CACV;AAED,eAAe,EAAc,GAAsB;AACjD,SAAQ,GAAR;EACE,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,QAAS,OAAU,MAAM,UAAU,EAAa,YAAY;;;AAIhE,IAAa,IAAwB,EAAoB,GAAQ,EAAc,EAClE,IAAa,EAAO,WAAW,KAAK,EAAO,EAC3C,IAAiB,EAAO,eAAe,KAAK,EAAO,EACnD,IAAsB,EAAO,oBAAoB,KAAK,EAAO"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SyllabusConfig, ContentLoader } from '../../shared.js';
|
|
2
|
+
export declare const config: SyllabusConfig;
|
|
3
|
+
export declare const loader: ContentLoader;
|
|
4
|
+
export declare const loadLesson: (lessonNumber: number) => Promise<import('../../shared.js').LoadedLesson>;
|
|
5
|
+
export declare const loadAllLessons: () => Promise<import('../../shared.js').LoadedLesson[]>;
|
|
6
|
+
export declare const getAvailableLessons: () => number[];
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { n as e, t } from "../../shared-Cpn5kpPR.js";
|
|
2
|
+
//#region src/syllabi/numbers/index.ts
|
|
3
|
+
var n = /* @__PURE__ */ e({
|
|
4
|
+
config: () => r,
|
|
5
|
+
getAvailableLessons: () => c,
|
|
6
|
+
loadAllLessons: () => s,
|
|
7
|
+
loadLesson: () => o,
|
|
8
|
+
loader: () => a
|
|
9
|
+
}), r = {
|
|
10
|
+
id: "ka-numbers",
|
|
11
|
+
title: "Numbers",
|
|
12
|
+
description: "Learn Georgian numbers and counting",
|
|
13
|
+
language: "ka",
|
|
14
|
+
locale: "ka-GE",
|
|
15
|
+
lessonCount: 3,
|
|
16
|
+
difficulty: "beginner",
|
|
17
|
+
cefrLevel: "A1",
|
|
18
|
+
icon: "numbers",
|
|
19
|
+
version: "0.1.0"
|
|
20
|
+
};
|
|
21
|
+
async function i(e) {
|
|
22
|
+
switch (e) {
|
|
23
|
+
case 1: return import("../../lesson-01-BBJKg1DY.js");
|
|
24
|
+
case 2: return import("../../lesson-02-DWujij4_.js");
|
|
25
|
+
case 3: return import("../../lesson-03-CuS_xeex.js");
|
|
26
|
+
default: throw Error(`Lesson ${e} not found`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
var a = t(r, i), o = a.loadLesson.bind(a), s = a.loadAllLessons.bind(a), c = a.getAvailableLessons.bind(a);
|
|
30
|
+
//#endregion
|
|
31
|
+
export { r as config, c as getAvailableLessons, s as loadAllLessons, o as loadLesson, a as loader, n as t };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/syllabi/numbers/index.ts"],"sourcesContent":["/**\n * Georgian Numbers syllabus\n */\n\nimport { createContentLoader, type SyllabusConfig, type ContentLoader } from '../../shared.js';\n\nexport const config: SyllabusConfig = {\n id: 'ka-numbers',\n title: 'Numbers',\n description: 'Learn Georgian numbers and counting',\n language: 'ka',\n locale: 'ka-GE',\n lessonCount: 3,\n difficulty: 'beginner',\n cefrLevel: 'A1',\n icon: 'numbers',\n version: '0.1.0',\n};\n\nasync function loadLessonMDX(lessonNumber: number) {\n switch (lessonNumber) {\n case 1: return import('./lessons/lesson-01.mdx?raw');\n case 2: return import('./lessons/lesson-02.mdx?raw');\n case 3: return import('./lessons/lesson-03.mdx?raw');\n default: throw new Error(`Lesson ${lessonNumber} not found`);\n }\n}\n\nexport const loader: ContentLoader = createContentLoader(config, loadLessonMDX);\nexport const loadLesson = loader.loadLesson.bind(loader);\nexport const loadAllLessons = loader.loadAllLessons.bind(loader);\nexport const getAvailableLessons = loader.getAvailableLessons.bind(loader);\n"],"mappings":";;;;;;;;IAMa,IAAyB;CACpC,IAAI;CACJ,OAAO;CACP,aAAa;CACb,UAAU;CACV,QAAQ;CACR,aAAa;CACb,YAAY;CACZ,WAAW;CACX,MAAM;CACN,SAAS;CACV;AAED,eAAe,EAAc,GAAsB;AACjD,SAAQ,GAAR;EACE,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,QAAS,OAAU,MAAM,UAAU,EAAa,YAAY;;;AAIhE,IAAa,IAAwB,EAAoB,GAAQ,EAAc,EAClE,IAAa,EAAO,WAAW,KAAK,EAAO,EAC3C,IAAiB,EAAO,eAAe,KAAK,EAAO,EACnD,IAAsB,EAAO,oBAAoB,KAAK,EAAO"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SyllabusConfig, ContentLoader } from '../../shared.js';
|
|
2
|
+
export declare const config: SyllabusConfig;
|
|
3
|
+
export declare const loader: ContentLoader;
|
|
4
|
+
export declare const loadLesson: (lessonNumber: number) => Promise<import('../../shared.js').LoadedLesson>;
|
|
5
|
+
export declare const loadAllLessons: () => Promise<import('../../shared.js').LoadedLesson[]>;
|
|
6
|
+
export declare const getAvailableLessons: () => number[];
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { n as e, t } from "../../shared-Cpn5kpPR.js";
|
|
2
|
+
//#region src/syllabi/reading/index.ts
|
|
3
|
+
var n = /* @__PURE__ */ e({
|
|
4
|
+
config: () => r,
|
|
5
|
+
getAvailableLessons: () => c,
|
|
6
|
+
loadAllLessons: () => s,
|
|
7
|
+
loadLesson: () => o,
|
|
8
|
+
loader: () => a
|
|
9
|
+
}), r = {
|
|
10
|
+
id: "ka-reading",
|
|
11
|
+
title: "Reading",
|
|
12
|
+
description: "Georgian reading comprehension",
|
|
13
|
+
language: "ka",
|
|
14
|
+
locale: "ka-GE",
|
|
15
|
+
lessonCount: 8,
|
|
16
|
+
difficulty: "intermediate",
|
|
17
|
+
cefrLevel: "B1",
|
|
18
|
+
icon: "reading",
|
|
19
|
+
version: "0.1.0"
|
|
20
|
+
};
|
|
21
|
+
async function i(e) {
|
|
22
|
+
switch (e) {
|
|
23
|
+
case 1: return import("../../lesson-01-kLcICyFz.js");
|
|
24
|
+
case 2: return import("../../lesson-02-lSVoPv5L.js");
|
|
25
|
+
case 3: return import("../../lesson-03-CSF1gzTa.js");
|
|
26
|
+
case 4: return import("../../lesson-04-CRC7ZnPs.js");
|
|
27
|
+
case 5: return import("../../lesson-05-C5xA_tPR.js");
|
|
28
|
+
case 6: return import("../../lesson-06-BiBaAfeD.js");
|
|
29
|
+
case 7: return import("../../lesson-07-DsPjGL5E.js");
|
|
30
|
+
case 8: return import("../../lesson-08-CKzWXQTu.js");
|
|
31
|
+
default: throw Error(`Lesson ${e} not found`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
var a = t(r, i), o = a.loadLesson.bind(a), s = a.loadAllLessons.bind(a), c = a.getAvailableLessons.bind(a);
|
|
35
|
+
//#endregion
|
|
36
|
+
export { r as config, c as getAvailableLessons, s as loadAllLessons, o as loadLesson, a as loader, n as t };
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/syllabi/reading/index.ts"],"sourcesContent":["/**\n * Georgian Reading syllabus\n */\n\nimport { createContentLoader, type SyllabusConfig, type ContentLoader } from '../../shared.js';\n\nexport const config: SyllabusConfig = {\n id: 'ka-reading',\n title: 'Reading',\n description: 'Georgian reading comprehension',\n language: 'ka',\n locale: 'ka-GE',\n lessonCount: 8,\n difficulty: 'intermediate',\n cefrLevel: 'B1',\n icon: 'reading',\n version: '0.1.0',\n};\n\nasync function loadLessonMDX(lessonNumber: number) {\n switch (lessonNumber) {\n case 1: return import('./lessons/lesson-01.mdx?raw');\n case 2: return import('./lessons/lesson-02.mdx?raw');\n case 3: return import('./lessons/lesson-03.mdx?raw');\n case 4: return import('./lessons/lesson-04.mdx?raw');\n case 5: return import('./lessons/lesson-05.mdx?raw');\n case 6: return import('./lessons/lesson-06.mdx?raw');\n case 7: return import('./lessons/lesson-07.mdx?raw');\n case 8: return import('./lessons/lesson-08.mdx?raw');\n default: throw new Error(`Lesson ${lessonNumber} not found`);\n }\n}\n\nexport const loader: ContentLoader = createContentLoader(config, loadLessonMDX);\nexport const loadLesson = loader.loadLesson.bind(loader);\nexport const loadAllLessons = loader.loadAllLessons.bind(loader);\nexport const getAvailableLessons = loader.getAvailableLessons.bind(loader);\n"],"mappings":";;;;;;;;IAMa,IAAyB;CACpC,IAAI;CACJ,OAAO;CACP,aAAa;CACb,UAAU;CACV,QAAQ;CACR,aAAa;CACb,YAAY;CACZ,WAAW;CACX,MAAM;CACN,SAAS;CACV;AAED,eAAe,EAAc,GAAsB;AACjD,SAAQ,GAAR;EACE,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,KAAK,EAAG,QAAO,OAAO;EACtB,QAAS,OAAU,MAAM,UAAU,EAAa,YAAY;;;AAIhE,IAAa,IAAwB,EAAoB,GAAQ,EAAc,EAClE,IAAa,EAAO,WAAW,KAAK,EAAO,EAC3C,IAAiB,EAAO,eAAe,KAAK,EAAO,EACnD,IAAsB,EAAO,oBAAoB,KAAK,EAAO"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@polyglot-bundles/ka-syllabi",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.2",
|
|
4
4
|
"description": "Georgian syllabi - Georgian alphabet syllabus (Mkhedruli script)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -43,10 +43,10 @@
|
|
|
43
43
|
"tsx": "^4.7.0",
|
|
44
44
|
"vite": "^8.0.8",
|
|
45
45
|
"vite-plugin-dts": "^4.5.4",
|
|
46
|
-
"@polyglot-bundles/content-shared": "0.7.
|
|
47
|
-
"@polyglot-bundles/syllabi-base": "0.7.
|
|
46
|
+
"@polyglot-bundles/content-shared": "0.7.1",
|
|
47
|
+
"@polyglot-bundles/syllabi-base": "0.7.1",
|
|
48
48
|
"@polyglot-bundles/lang-tooling": "0.0.0",
|
|
49
|
-
"@polyglot-bundles/ka-lang": "1.3.
|
|
49
|
+
"@polyglot-bundles/ka-lang": "1.3.2"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
52
|
"@syllst/core": "^0.7.0",
|