@polyglot-bundles/km-minimal-pairs 0.1.0 → 0.2.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAEjF,eAAO,MAAM,gBAAgB,EAAE,wBAW9B,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAEjF,eAAO,MAAM,gBAAgB,EAAE,wBA+L9B,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
package/dist/data.js CHANGED
@@ -1,16 +1,187 @@
1
- const e = {
1
+ const i = {
2
2
  levels: [
3
3
  { level: 0, title: "Getting Started", description: "Practice with clearly different sounds" },
4
- { level: 1, title: "Basic Contrasts", description: "Common minimal pairs" },
5
- { level: 2, title: "Vowels", description: "Vowel distinctions" },
6
- { level: 3, title: "Consonants", description: "Consonant contrasts" },
7
- { level: 4, title: "Advanced", description: "More challenging distinctions" },
8
- { level: 5, title: "Expert Level", description: "Subtle differences" }
4
+ { level: 1, title: "Consonant Registers", description: "High vs low series consonants" },
5
+ { level: 2, title: "Vowel Quality", description: "Vowel contrasts from register" },
6
+ { level: 3, title: "Stop Consonants", description: "Voicing and aspiration contrasts" },
7
+ { level: 4, title: "Final Consonants", description: "Syllable-final contrasts" },
8
+ { level: 5, title: "Expert Level", description: "Subtle distinctions and dialectal variation" }
9
9
  ],
10
- minimalPairs: [],
11
- pronunciationTips: {}
10
+ minimalPairs: [
11
+ // Level 0: Clear contrasts
12
+ {
13
+ pairId: "km_l0_001",
14
+ level: 0,
15
+ tags: ["level_0"],
16
+ contrastFeature: "consonant",
17
+ contrastDescription: "/k/ vs /t/",
18
+ word1: { script: "ក", romanization: "kɑɑ", definition: "to be", audioFile: null },
19
+ word2: { script: "ត", romanization: "tɑɑ", definition: "to be cheap", audioFile: null }
20
+ },
21
+ {
22
+ pairId: "km_l0_002",
23
+ level: 0,
24
+ tags: ["level_0"],
25
+ contrastFeature: "consonant",
26
+ contrastDescription: "/m/ vs /n/",
27
+ word1: { script: "ម", romanization: "mɔɔ", definition: "come", audioFile: null },
28
+ word2: { script: "ន", romanization: "nɔɔ", definition: "(particle)", audioFile: null }
29
+ },
30
+ // Level 1: High vs low series consonants (the key Khmer feature)
31
+ {
32
+ pairId: "km_l1_001",
33
+ level: 1,
34
+ tags: ["level_1", "consonant"],
35
+ contrastFeature: "consonant",
36
+ contrastDescription: "High series /k/ vs low series /k/",
37
+ pronunciationTipId: "consonant_register",
38
+ word1: { script: "កា", romanization: "kie", definition: "crow", audioFile: null },
39
+ word2: { script: "ខា", romanization: "kʰɑɑ", definition: "side", audioFile: null }
40
+ },
41
+ {
42
+ pairId: "km_l1_002",
43
+ level: 1,
44
+ tags: ["level_1", "consonant"],
45
+ contrastFeature: "consonant",
46
+ contrastDescription: "High series /c/ vs low series /c/",
47
+ word1: { script: "ចា", romanization: "cie", definition: "old", audioFile: null },
48
+ word2: { script: "ឆា", romanization: "chɑɑ", definition: "to stir-fry", audioFile: null }
49
+ },
50
+ {
51
+ pairId: "km_l1_003",
52
+ level: 1,
53
+ tags: ["level_1", "consonant"],
54
+ contrastFeature: "consonant",
55
+ contrastDescription: "High series /p/ vs low series /p/",
56
+ word1: { script: "បា", romanization: "bie", definition: "father", audioFile: null },
57
+ word2: { script: "ផា", romanization: "pʰɑɑ", definition: "to sweep", audioFile: null }
58
+ },
59
+ {
60
+ pairId: "km_l1_004",
61
+ level: 1,
62
+ tags: ["level_1", "consonant"],
63
+ contrastFeature: "consonant",
64
+ contrastDescription: "High series /t/ vs low series /t/",
65
+ word1: { script: "តា", romanization: "tie", definition: "grandfather", audioFile: null },
66
+ word2: { script: "ថា", romanization: "tʰii", definition: "to say", audioFile: null }
67
+ },
68
+ // Level 2: Vowel quality (derived from register)
69
+ {
70
+ pairId: "km_l2_001",
71
+ level: 2,
72
+ tags: ["level_2", "vowel"],
73
+ contrastFeature: "vowel",
74
+ contrastDescription: "/ɑɑ/ vs /iə/",
75
+ pronunciationTipId: "vowel_register",
76
+ word1: { script: "កាន", romanization: "kɑɑn", definition: "to hold", audioFile: null },
77
+ word2: { script: "គាន", romanization: "kiən", definition: "(to speak)", audioFile: null }
78
+ },
79
+ {
80
+ pairId: "km_l2_002",
81
+ level: 2,
82
+ tags: ["level_2", "vowel"],
83
+ contrastFeature: "vowel",
84
+ contrastDescription: "/ɔɔ/ vs /uə/",
85
+ word1: { script: "បន", romanization: "pɔɔn", definition: "(servant)", audioFile: null },
86
+ word2: { script: "ពន", romanization: "puən", definition: "(to increase)", audioFile: null }
87
+ },
88
+ {
89
+ pairId: "km_l2_003",
90
+ level: 2,
91
+ tags: ["level_2", "vowel"],
92
+ contrastFeature: "vowel",
93
+ contrastDescription: "/ɛɛ/ vs /ie/",
94
+ word1: { script: "បែ", romanization: "pɛɛ", definition: "to break", audioFile: null },
95
+ word2: { script: "ពែ", romanization: "pie", definition: "(to lend)", audioFile: null }
96
+ },
97
+ // Level 3: Stop consonants
98
+ {
99
+ pairId: "km_l3_001",
100
+ level: 3,
101
+ tags: ["level_3", "consonant"],
102
+ contrastFeature: "consonant",
103
+ contrastDescription: "Unaspirated /p/ vs aspirated /pʰ/",
104
+ pronunciationTipId: "consonant_aspiration",
105
+ word1: { script: "ប៉ា", romanization: "pɑɑ", definition: "father (colloquial)", audioFile: null },
106
+ word2: { script: "ផា", romanization: "pʰɑɑ", definition: "to sweep", audioFile: null }
107
+ },
108
+ {
109
+ pairId: "km_l3_002",
110
+ level: 3,
111
+ tags: ["level_3", "consonant"],
112
+ contrastFeature: "consonant",
113
+ contrastDescription: "Unaspirated /t/ vs aspirated /tʰ/",
114
+ word1: { script: "តា", romanization: "tie", definition: "grandfather", audioFile: null },
115
+ word2: { script: "ថា", romanization: "tʰii", definition: "to say", audioFile: null }
116
+ },
117
+ {
118
+ pairId: "km_l3_003",
119
+ level: 3,
120
+ tags: ["level_3", "consonant"],
121
+ contrastFeature: "consonant",
122
+ contrastDescription: "Unaspirated /k/ vs aspirated /kʰ/",
123
+ word1: { script: "កា", romanization: "kie", definition: "crow", audioFile: null },
124
+ word2: { script: "ខា", romanization: "kʰɑɑ", definition: "side", audioFile: null }
125
+ },
126
+ // Level 4: Final consonants
127
+ {
128
+ pairId: "km_l4_001",
129
+ level: 4,
130
+ tags: ["level_4", "final"],
131
+ contrastFeature: "final_consonant",
132
+ contrastDescription: "Final /-n/ vs final /-ŋ/",
133
+ pronunciationTipId: "final_consonants",
134
+ word1: { script: "បាន", romanization: "baan", definition: "to get; can", audioFile: null },
135
+ word2: { script: "បាង", romanization: "baaŋ", definition: "(narrow)", audioFile: null }
136
+ },
137
+ {
138
+ pairId: "km_l4_002",
139
+ level: 4,
140
+ tags: ["level_4", "final"],
141
+ contrastFeature: "final_consonant",
142
+ contrastDescription: "Final /-m/ vs final /-n/",
143
+ word1: { script: "ចម", romanization: "cɑɑm", definition: "(distance)", audioFile: null },
144
+ word2: { script: "ចន", romanization: "cɑɑn", definition: "(Tuesday)", audioFile: null }
145
+ },
146
+ {
147
+ pairId: "km_l4_003",
148
+ level: 4,
149
+ tags: ["level_4", "final"],
150
+ contrastFeature: "final_consonant",
151
+ contrastDescription: "Final /-k/ vs final /-c/",
152
+ word1: { script: "បាក", romanization: "baak", definition: "(fragment)", audioFile: null },
153
+ word2: { script: "បាច", romanization: "baac", definition: "to scatter", audioFile: null }
154
+ },
155
+ // Level 5: Expert - subtle distinctions
156
+ {
157
+ pairId: "km_l5_001",
158
+ level: 5,
159
+ tags: ["level_5", "vowel"],
160
+ contrastFeature: "vowel",
161
+ contrastDescription: "Long vs short vowel",
162
+ word1: { script: "បាទ", romanization: "baat", definition: "yes (male)", audioFile: null },
163
+ word2: { script: "បត់", romanization: "bot", definition: "to fold", audioFile: null },
164
+ notes: "Vowel length and quality interact in complex ways in Khmer."
165
+ },
166
+ {
167
+ pairId: "km_l5_002",
168
+ level: 5,
169
+ tags: ["level_5", "consonant"],
170
+ contrastFeature: "consonant",
171
+ contrastDescription: "Sesquisyllable reduction",
172
+ word1: { script: "ក្បាល", romanization: "kbaal", definition: "head", audioFile: null },
173
+ word2: { script: "កាល", romanization: "kaal", definition: "time", audioFile: null },
174
+ notes: "Khmer has sesquisyllables (1.5 syllables) with reduced minor syllables."
175
+ }
176
+ ],
177
+ pronunciationTips: {
178
+ consonant_register: "Khmer consonants come in two series: high (voiceless) and low (voiced). This affects the following vowel quality.",
179
+ vowel_register: "High series consonants produce 'brighter' vowels. Low series produce 'darker' vowels. The same written vowel sounds different based on consonant register.",
180
+ consonant_aspiration: "Aspirated consonants (ផ, ថ, ខ) have a strong puff of air. Unaspirated (ប, ត, ក) do not.",
181
+ final_consonants: "Final consonants are unreleased in Khmer. Stop finals (-p, -t, -c, -k) end abruptly without a release burst."
182
+ }
12
183
  };
13
184
  export {
14
- e as default,
15
- e as minimalPairsData
185
+ i as default,
186
+ i as minimalPairsData
16
187
  };
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export { minimalPairsData as default } from './data';
1
2
  export { minimalPairsData } from './data';
2
- export default minimalPairsData;
3
+ export type { MinimalPairsLanguageData, MinimalPairsLevelInfo, MinimalPairsMinimalPair, MinimalPairsPronunciationTipsMap, MinimalPairsRubySegment, MinimalPairsWordInfo, } from '../../content-shared';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAE1C,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,IAAI,OAAO,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAG1C,YAAY,EACV,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,gCAAgC,EAChC,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,kCAAkC,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,5 @@
1
- import { default as m } from "./data.js";
2
- const a = minimalPairsData;
1
+ import { default as e, default as f } from "./data.js";
3
2
  export {
4
- a as default,
5
- m as minimalPairsData
3
+ e as default,
4
+ f as minimalPairsData
6
5
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polyglot-bundles/km-minimal-pairs",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",