@polyglot-bundles/ka-minimal-pairs 0.3.2 → 0.3.3

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,3 +1,3 @@
1
- import { MinimalPairsMinimalPair } from '../../../content-shared/src';
1
+ import { MinimalPairsMinimalPair } from '@polyglot-bundles/content-shared';
2
2
  export declare const level0Pairs: MinimalPairsMinimalPair[];
3
3
  //# sourceMappingURL=level-0.d.ts.map
@@ -0,0 +1,24 @@
1
+ const i = [
2
+ // Level 0: Clear contrasts
3
+ {
4
+ pairId: "ka_l0_001",
5
+ level: 0,
6
+ tags: ["level_0"],
7
+ contrastFeature: "consonant",
8
+ contrastDescription: "/k/ vs /t/",
9
+ word1: { script: "კარი", romanization: "k'ari", definition: "door", audioFile: null },
10
+ word2: { script: "ტარი", romanization: "t'ari", definition: "(handle)", audioFile: null }
11
+ },
12
+ {
13
+ pairId: "ka_l0_002",
14
+ level: 0,
15
+ tags: ["level_0"],
16
+ contrastFeature: "consonant",
17
+ contrastDescription: "/m/ vs /n/",
18
+ word1: { script: "მა", romanization: "ma", definition: "to me", audioFile: null },
19
+ word2: { script: "ნა", romanization: "na", definition: "(particle)", audioFile: null }
20
+ }
21
+ ];
22
+ export {
23
+ i as level0Pairs
24
+ };
@@ -1,3 +1,3 @@
1
- import { MinimalPairsMinimalPair } from '../../../content-shared/src';
1
+ import { MinimalPairsMinimalPair } from '@polyglot-bundles/content-shared';
2
2
  export declare const level1Pairs: MinimalPairsMinimalPair[];
3
3
  //# sourceMappingURL=level-1.d.ts.map
@@ -0,0 +1,61 @@
1
+ const i = [
2
+ // Level 1: Three-way stop contrast (ejective, aspirated, voiced)
3
+ {
4
+ pairId: "ka_l1_001",
5
+ level: 1,
6
+ tags: ["level_1", "consonant"],
7
+ contrastFeature: "consonant",
8
+ contrastDescription: "Ejective /p'/ vs aspirated /pʰ/",
9
+ pronunciationTipId: "consonant_three_way",
10
+ word1: { script: "პარი", romanization: "p'ari", definition: "bald", audioFile: null },
11
+ word2: { script: "ფარი", romanization: "pari", definition: "shield", audioFile: null }
12
+ },
13
+ {
14
+ pairId: "ka_l1_002",
15
+ level: 1,
16
+ tags: ["level_1", "consonant"],
17
+ contrastFeature: "consonant",
18
+ contrastDescription: "Ejective /t'/ vs aspirated /tʰ/",
19
+ word1: { script: "ტანი", romanization: "t'ani", definition: "body", audioFile: null },
20
+ word2: { script: "თანი", romanization: "tani", definition: "(equal)", audioFile: null }
21
+ },
22
+ {
23
+ pairId: "ka_l1_003",
24
+ level: 1,
25
+ tags: ["level_1", "consonant"],
26
+ contrastFeature: "consonant",
27
+ contrastDescription: "Ejective /k'/ vs aspirated /kʰ/",
28
+ word1: { script: "კანი", romanization: "k'ani", definition: "skin", audioFile: null },
29
+ word2: { script: "ხანი", romanization: "khani", definition: "time; period", audioFile: null }
30
+ },
31
+ {
32
+ pairId: "ka_l1_004",
33
+ level: 1,
34
+ tags: ["level_1", "consonant"],
35
+ contrastFeature: "consonant",
36
+ contrastDescription: "Voiced /b/ vs ejective /p'/",
37
+ word1: { script: "ბანი", romanization: "bani", definition: "roof", audioFile: null },
38
+ word2: { script: "პანი", romanization: "p'ani", definition: "(pani - name)", audioFile: null }
39
+ },
40
+ {
41
+ pairId: "ka_l1_005",
42
+ level: 1,
43
+ tags: ["level_1", "consonant"],
44
+ contrastFeature: "consonant",
45
+ contrastDescription: "Voiced /d/ vs ejective /t'/",
46
+ word1: { script: "დარი", romanization: "dari", definition: "(Dari language)", audioFile: null },
47
+ word2: { script: "ტარი", romanization: "t'ari", definition: "(handle)", audioFile: null }
48
+ },
49
+ {
50
+ pairId: "ka_l1_006",
51
+ level: 1,
52
+ tags: ["level_1", "consonant"],
53
+ contrastFeature: "consonant",
54
+ contrastDescription: "Voiced /g/ vs ejective /k'/",
55
+ word1: { script: "გარი", romanization: "gari", definition: "(Gari - name)", audioFile: null },
56
+ word2: { script: "კარი", romanization: "k'ari", definition: "door", audioFile: null }
57
+ }
58
+ ];
59
+ export {
60
+ i as level1Pairs
61
+ };
@@ -1,3 +1,3 @@
1
- import { MinimalPairsMinimalPair } from '../../../content-shared/src';
1
+ import { MinimalPairsMinimalPair } from '@polyglot-bundles/content-shared';
2
2
  export declare const level2Pairs: MinimalPairsMinimalPair[];
3
3
  //# sourceMappingURL=level-2.d.ts.map
@@ -0,0 +1,33 @@
1
+ const i = [
2
+ // Level 2: Vowel contrasts
3
+ {
4
+ pairId: "ka_l2_001",
5
+ level: 2,
6
+ tags: ["level_2", "vowel"],
7
+ contrastFeature: "vowel",
8
+ contrastDescription: "/a/ vs /e/",
9
+ word1: { script: "მა", romanization: "ma", definition: "she/he", audioFile: null },
10
+ word2: { script: "მე", romanization: "me", definition: "I", audioFile: null }
11
+ },
12
+ {
13
+ pairId: "ka_l2_002",
14
+ level: 2,
15
+ tags: ["level_2", "vowel"],
16
+ contrastFeature: "vowel",
17
+ contrastDescription: "/i/ vs /u/",
18
+ word1: { script: "მი", romanization: "mi", definition: "to me", audioFile: null },
19
+ word2: { script: "მუ", romanization: "mu", definition: "(dialectal)", audioFile: null }
20
+ },
21
+ {
22
+ pairId: "ka_l2_003",
23
+ level: 2,
24
+ tags: ["level_2", "vowel"],
25
+ contrastFeature: "vowel",
26
+ contrastDescription: "/ɛ/ vs /ɔ/",
27
+ word1: { script: "ბე", romanization: "be", definition: "(destiny)", audioFile: null },
28
+ word2: { script: "ბო", romanization: "bo", definition: "(Bo - name)", audioFile: null }
29
+ }
30
+ ];
31
+ export {
32
+ i as level2Pairs
33
+ };
@@ -1,3 +1,3 @@
1
- import { MinimalPairsMinimalPair } from '../../../content-shared/src';
1
+ import { MinimalPairsMinimalPair } from '@polyglot-bundles/content-shared';
2
2
  export declare const level3Pairs: MinimalPairsMinimalPair[];
3
3
  //# sourceMappingURL=level-3.d.ts.map
@@ -0,0 +1,42 @@
1
+ const n = [
2
+ // Level 3: Consonant series
3
+ {
4
+ pairId: "ka_l3_001",
5
+ level: 3,
6
+ tags: ["level_3", "consonant"],
7
+ contrastFeature: "consonant",
8
+ contrastDescription: "Labial /p/ vs coronal /t/",
9
+ word1: { script: "ფა", romanization: "pa", definition: "(fa - musical note)", audioFile: null },
10
+ word2: { script: "თა", romanization: "ta", definition: "(ta - letter name)", audioFile: null }
11
+ },
12
+ {
13
+ pairId: "ka_l3_002",
14
+ level: 3,
15
+ tags: ["level_3", "consonant"],
16
+ contrastFeature: "consonant",
17
+ contrastDescription: "Coronal /t/ vs velar /k/",
18
+ word1: { script: "თა", romanization: "ta", definition: "(ta - letter name)", audioFile: null },
19
+ word2: { script: "ხა", romanization: "kha", definition: "(kha - letter name)", audioFile: null }
20
+ },
21
+ {
22
+ pairId: "ka_l3_003",
23
+ level: 3,
24
+ tags: ["level_3", "consonant"],
25
+ contrastFeature: "consonant",
26
+ contrastDescription: "Nasal /m/ vs nasal /n/",
27
+ word1: { script: "მათ", romanization: "mat", definition: "them", audioFile: null },
28
+ word2: { script: "ნათ", romanization: "nat", definition: "(clear)", audioFile: null }
29
+ },
30
+ {
31
+ pairId: "ka_l3_004",
32
+ level: 3,
33
+ tags: ["level_3", "consonant"],
34
+ contrastFeature: "consonant",
35
+ contrastDescription: "/l/ vs /r/",
36
+ word1: { script: "ლა", romanization: "la", definition: "(la - musical note)", audioFile: null },
37
+ word2: { script: "რა", romanization: "ra", definition: "what", audioFile: null }
38
+ }
39
+ ];
40
+ export {
41
+ n as level3Pairs
42
+ };
@@ -1,3 +1,3 @@
1
- import { MinimalPairsMinimalPair } from '../../../content-shared/src';
1
+ import { MinimalPairsMinimalPair } from '@polyglot-bundles/content-shared';
2
2
  export declare const level4Pairs: MinimalPairsMinimalPair[];
3
3
  //# sourceMappingURL=level-4.d.ts.map
@@ -0,0 +1,42 @@
1
+ const i = [
2
+ // Level 4: Advanced consonants (affricates and fricatives)
3
+ {
4
+ pairId: "ka_l4_001",
5
+ level: 4,
6
+ tags: ["level_4", "consonant"],
7
+ contrastFeature: "consonant",
8
+ contrastDescription: "Affricate /ts/ vs /ts'/",
9
+ word1: { script: "ცა", romanization: "tsa", definition: "sky", audioFile: null },
10
+ word2: { script: "წა", romanization: "ts'a", definition: "(ts'a - name)", audioFile: null }
11
+ },
12
+ {
13
+ pairId: "ka_l4_002",
14
+ level: 4,
15
+ tags: ["level_4", "consonant"],
16
+ contrastFeature: "consonant",
17
+ contrastDescription: "Affricate /tʃ/ vs /tʃ'/",
18
+ word1: { script: "ჩა", romanization: "cha", definition: "tea", audioFile: null },
19
+ word2: { script: "ჭა", romanization: "ch'a", definition: "well (for water)", audioFile: null }
20
+ },
21
+ {
22
+ pairId: "ka_l4_003",
23
+ level: 4,
24
+ tags: ["level_4", "consonant"],
25
+ contrastFeature: "consonant",
26
+ contrastDescription: "Fricative /s/ vs /ʃ/",
27
+ word1: { script: "სა", romanization: "sa", definition: "(sa - letter name)", audioFile: null },
28
+ word2: { script: "შა", romanization: "sha", definition: "(sha - letter name)", audioFile: null }
29
+ },
30
+ {
31
+ pairId: "ka_l4_004",
32
+ level: 4,
33
+ tags: ["level_4", "consonant"],
34
+ contrastFeature: "consonant",
35
+ contrastDescription: "Fricative /x/ vs /h/",
36
+ word1: { script: "ხა", romanization: "kha", definition: "(kha - letter name)", audioFile: null },
37
+ word2: { script: "ჰა", romanization: "ha", definition: "(ha - letter name)", audioFile: null }
38
+ }
39
+ ];
40
+ export {
41
+ i as level4Pairs
42
+ };
@@ -1,3 +1,3 @@
1
- import { MinimalPairsMinimalPair } from '../../../content-shared/src';
1
+ import { MinimalPairsMinimalPair } from '@polyglot-bundles/content-shared';
2
2
  export declare const level5Pairs: MinimalPairsMinimalPair[];
3
3
  //# sourceMappingURL=level-5.d.ts.map
@@ -0,0 +1,36 @@
1
+ const i = [
2
+ // Level 5: Expert - complex clusters and subtle distinctions
3
+ {
4
+ pairId: "ka_l5_001",
5
+ level: 5,
6
+ tags: ["level_5", "consonant"],
7
+ contrastFeature: "consonant",
8
+ contrastDescription: "Ejective affricate /ts'/ vs ejective stop /t'/",
9
+ word1: { script: "წა", romanization: "ts'a", definition: "(ts'a - name)", audioFile: null },
10
+ word2: { script: "ტა", romanization: "t'a", definition: "(ta - clap)", audioFile: null },
11
+ notes: "Georgian has a rich inventory of ejective consonants including stops and affricates."
12
+ },
13
+ {
14
+ pairId: "ka_l5_002",
15
+ level: 5,
16
+ tags: ["level_5", "cluster"],
17
+ contrastFeature: "cluster",
18
+ contrastDescription: "Complex consonant clusters",
19
+ word1: { script: "მკლა", romanization: "mk'la", definition: "(arm - dialectal)", audioFile: null },
20
+ word2: { script: "მკვა", romanization: "mk'va", definition: "(mkva - name)", audioFile: null },
21
+ notes: "Georgian is famous for complex consonant clusters like 'gvprtskvni' (you peel us)."
22
+ },
23
+ {
24
+ pairId: "ka_l5_003",
25
+ level: 5,
26
+ tags: ["level_5", "consonant"],
27
+ contrastFeature: "consonant",
28
+ contrastDescription: "Voiced velar fricative /ɣ/ vs stop /g/",
29
+ word1: { script: "ღა", romanization: "gha", definition: "(poor; only)", audioFile: null },
30
+ word2: { script: "გა", romanization: "ga", definition: "(ga - prefix)", audioFile: null },
31
+ notes: "ღ (ghani) is a voiced velar fricative, distinct from გ (gani) the stop."
32
+ }
33
+ ];
34
+ export {
35
+ i as level5Pairs
36
+ };
package/dist/data.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { MinimalPairsLanguageData } from '../../content-shared/src';
1
+ import { MinimalPairsLanguageData } from '@polyglot-bundles/content-shared';
2
2
  export declare const minimalPairsData: MinimalPairsLanguageData;
3
3
  export default minimalPairsData;
4
4
  //# sourceMappingURL=data.d.ts.map
package/dist/data.js CHANGED
@@ -1,247 +1,24 @@
1
- const i = [
2
- { level: 0, title: "Getting Started", description: "Practice with clearly different sounds" },
3
- { level: 1, title: "Three-Way Stop Contrast", description: "Ejective vs aspirated vs voiced" },
4
- { level: 2, title: "Vowels", description: "Vowel distinctions" },
5
- { level: 3, title: "Consonant Series", description: "Labial, coronal, and velar contrasts" },
6
- { level: 4, title: "Advanced Consonants", description: "Affricates and fricatives" },
7
- { level: 5, title: "Expert Level", description: "Complex clusters and subtle distinctions" }
8
- ], n = {
9
- consonant_three_way: "Georgian has a three-way contrast: ejective (პ, ტ, კ), aspirated (ფ, თ, ქ), and voiced (ბ, დ, გ). Ejectives have a glottal burst, aspirated have a strong puff of air."
10
- }, a = [
11
- // Level 0: Clear contrasts
12
- {
13
- pairId: "ka_l0_001",
14
- level: 0,
15
- tags: ["level_0"],
16
- contrastFeature: "consonant",
17
- contrastDescription: "/k/ vs /t/",
18
- word1: { script: "კარი", romanization: "k'ari", definition: "door", audioFile: null },
19
- word2: { script: "ტარი", romanization: "t'ari", definition: "(handle)", audioFile: null }
20
- },
21
- {
22
- pairId: "ka_l0_002",
23
- level: 0,
24
- tags: ["level_0"],
25
- contrastFeature: "consonant",
26
- contrastDescription: "/m/ vs /n/",
27
- word1: { script: "მა", romanization: "ma", definition: "to me", audioFile: null },
28
- word2: { script: "ნა", romanization: "na", definition: "(particle)", audioFile: null }
29
- }
30
- ], t = [
31
- // Level 1: Three-way stop contrast (ejective, aspirated, voiced)
32
- {
33
- pairId: "ka_l1_001",
34
- level: 1,
35
- tags: ["level_1", "consonant"],
36
- contrastFeature: "consonant",
37
- contrastDescription: "Ejective /p'/ vs aspirated /pʰ/",
38
- pronunciationTipId: "consonant_three_way",
39
- word1: { script: "პარი", romanization: "p'ari", definition: "bald", audioFile: null },
40
- word2: { script: "ფარი", romanization: "pari", definition: "shield", audioFile: null }
41
- },
42
- {
43
- pairId: "ka_l1_002",
44
- level: 1,
45
- tags: ["level_1", "consonant"],
46
- contrastFeature: "consonant",
47
- contrastDescription: "Ejective /t'/ vs aspirated /tʰ/",
48
- word1: { script: "ტანი", romanization: "t'ani", definition: "body", audioFile: null },
49
- word2: { script: "თანი", romanization: "tani", definition: "(equal)", audioFile: null }
50
- },
51
- {
52
- pairId: "ka_l1_003",
53
- level: 1,
54
- tags: ["level_1", "consonant"],
55
- contrastFeature: "consonant",
56
- contrastDescription: "Ejective /k'/ vs aspirated /kʰ/",
57
- word1: { script: "კანი", romanization: "k'ani", definition: "skin", audioFile: null },
58
- word2: { script: "ხანი", romanization: "khani", definition: "time; period", audioFile: null }
59
- },
60
- {
61
- pairId: "ka_l1_004",
62
- level: 1,
63
- tags: ["level_1", "consonant"],
64
- contrastFeature: "consonant",
65
- contrastDescription: "Voiced /b/ vs ejective /p'/",
66
- word1: { script: "ბანი", romanization: "bani", definition: "roof", audioFile: null },
67
- word2: { script: "პანი", romanization: "p'ani", definition: "(pani - name)", audioFile: null }
68
- },
69
- {
70
- pairId: "ka_l1_005",
71
- level: 1,
72
- tags: ["level_1", "consonant"],
73
- contrastFeature: "consonant",
74
- contrastDescription: "Voiced /d/ vs ejective /t'/",
75
- word1: { script: "დარი", romanization: "dari", definition: "(Dari language)", audioFile: null },
76
- word2: { script: "ტარი", romanization: "t'ari", definition: "(handle)", audioFile: null }
77
- },
78
- {
79
- pairId: "ka_l1_006",
80
- level: 1,
81
- tags: ["level_1", "consonant"],
82
- contrastFeature: "consonant",
83
- contrastDescription: "Voiced /g/ vs ejective /k'/",
84
- word1: { script: "გარი", romanization: "gari", definition: "(Gari - name)", audioFile: null },
85
- word2: { script: "კარი", romanization: "k'ari", definition: "door", audioFile: null }
86
- }
87
- ], o = [
88
- // Level 2: Vowel contrasts
89
- {
90
- pairId: "ka_l2_001",
91
- level: 2,
92
- tags: ["level_2", "vowel"],
93
- contrastFeature: "vowel",
94
- contrastDescription: "/a/ vs /e/",
95
- word1: { script: "მა", romanization: "ma", definition: "she/he", audioFile: null },
96
- word2: { script: "მე", romanization: "me", definition: "I", audioFile: null }
97
- },
98
- {
99
- pairId: "ka_l2_002",
100
- level: 2,
101
- tags: ["level_2", "vowel"],
102
- contrastFeature: "vowel",
103
- contrastDescription: "/i/ vs /u/",
104
- word1: { script: "მი", romanization: "mi", definition: "to me", audioFile: null },
105
- word2: { script: "მუ", romanization: "mu", definition: "(dialectal)", audioFile: null }
106
- },
107
- {
108
- pairId: "ka_l2_003",
109
- level: 2,
110
- tags: ["level_2", "vowel"],
111
- contrastFeature: "vowel",
112
- contrastDescription: "/ɛ/ vs /ɔ/",
113
- word1: { script: "ბე", romanization: "be", definition: "(destiny)", audioFile: null },
114
- word2: { script: "ბო", romanization: "bo", definition: "(Bo - name)", audioFile: null }
115
- }
116
- ], e = [
117
- // Level 3: Consonant series
118
- {
119
- pairId: "ka_l3_001",
120
- level: 3,
121
- tags: ["level_3", "consonant"],
122
- contrastFeature: "consonant",
123
- contrastDescription: "Labial /p/ vs coronal /t/",
124
- word1: { script: "ფა", romanization: "pa", definition: "(fa - musical note)", audioFile: null },
125
- word2: { script: "თა", romanization: "ta", definition: "(ta - letter name)", audioFile: null }
126
- },
127
- {
128
- pairId: "ka_l3_002",
129
- level: 3,
130
- tags: ["level_3", "consonant"],
131
- contrastFeature: "consonant",
132
- contrastDescription: "Coronal /t/ vs velar /k/",
133
- word1: { script: "თა", romanization: "ta", definition: "(ta - letter name)", audioFile: null },
134
- word2: { script: "ხა", romanization: "kha", definition: "(kha - letter name)", audioFile: null }
135
- },
136
- {
137
- pairId: "ka_l3_003",
138
- level: 3,
139
- tags: ["level_3", "consonant"],
140
- contrastFeature: "consonant",
141
- contrastDescription: "Nasal /m/ vs nasal /n/",
142
- word1: { script: "მათ", romanization: "mat", definition: "them", audioFile: null },
143
- word2: { script: "ნათ", romanization: "nat", definition: "(clear)", audioFile: null }
144
- },
145
- {
146
- pairId: "ka_l3_004",
147
- level: 3,
148
- tags: ["level_3", "consonant"],
149
- contrastFeature: "consonant",
150
- contrastDescription: "/l/ vs /r/",
151
- word1: { script: "ლა", romanization: "la", definition: "(la - musical note)", audioFile: null },
152
- word2: { script: "რა", romanization: "ra", definition: "what", audioFile: null }
153
- }
154
- ], l = [
155
- // Level 4: Advanced consonants (affricates and fricatives)
156
- {
157
- pairId: "ka_l4_001",
158
- level: 4,
159
- tags: ["level_4", "consonant"],
160
- contrastFeature: "consonant",
161
- contrastDescription: "Affricate /ts/ vs /ts'/",
162
- word1: { script: "ცა", romanization: "tsa", definition: "sky", audioFile: null },
163
- word2: { script: "წა", romanization: "ts'a", definition: "(ts'a - name)", audioFile: null }
164
- },
165
- {
166
- pairId: "ka_l4_002",
167
- level: 4,
168
- tags: ["level_4", "consonant"],
169
- contrastFeature: "consonant",
170
- contrastDescription: "Affricate /tʃ/ vs /tʃ'/",
171
- word1: { script: "ჩა", romanization: "cha", definition: "tea", audioFile: null },
172
- word2: { script: "ჭა", romanization: "ch'a", definition: "well (for water)", audioFile: null }
173
- },
174
- {
175
- pairId: "ka_l4_003",
176
- level: 4,
177
- tags: ["level_4", "consonant"],
178
- contrastFeature: "consonant",
179
- contrastDescription: "Fricative /s/ vs /ʃ/",
180
- word1: { script: "სა", romanization: "sa", definition: "(sa - letter name)", audioFile: null },
181
- word2: { script: "შა", romanization: "sha", definition: "(sha - letter name)", audioFile: null }
182
- },
183
- {
184
- pairId: "ka_l4_004",
185
- level: 4,
186
- tags: ["level_4", "consonant"],
187
- contrastFeature: "consonant",
188
- contrastDescription: "Fricative /x/ vs /h/",
189
- word1: { script: "ხა", romanization: "kha", definition: "(kha - letter name)", audioFile: null },
190
- word2: { script: "ჰა", romanization: "ha", definition: "(ha - letter name)", audioFile: null }
191
- }
192
- ], r = [
193
- // Level 5: Expert - complex clusters and subtle distinctions
194
- {
195
- pairId: "ka_l5_001",
196
- level: 5,
197
- tags: ["level_5", "consonant"],
198
- contrastFeature: "consonant",
199
- contrastDescription: "Ejective affricate /ts'/ vs ejective stop /t'/",
200
- word1: { script: "წა", romanization: "ts'a", definition: "(ts'a - name)", audioFile: null },
201
- word2: { script: "ტა", romanization: "t'a", definition: "(ta - clap)", audioFile: null },
202
- notes: "Georgian has a rich inventory of ejective consonants including stops and affricates."
203
- },
204
- {
205
- pairId: "ka_l5_002",
206
- level: 5,
207
- tags: ["level_5", "cluster"],
208
- contrastFeature: "cluster",
209
- contrastDescription: "Complex consonant clusters",
210
- word1: { script: "მკლა", romanization: "mk'la", definition: "(arm - dialectal)", audioFile: null },
211
- word2: { script: "მკვა", romanization: "mk'va", definition: "(mkva - name)", audioFile: null },
212
- notes: "Georgian is famous for complex consonant clusters like 'gvprtskvni' (you peel us)."
213
- },
214
- {
215
- pairId: "ka_l5_003",
216
- level: 5,
217
- tags: ["level_5", "consonant"],
218
- contrastFeature: "consonant",
219
- contrastDescription: "Voiced velar fricative /ɣ/ vs stop /g/",
220
- word1: { script: "ღა", romanization: "gha", definition: "(poor; only)", audioFile: null },
221
- word2: { script: "გა", romanization: "ga", definition: "(ga - prefix)", audioFile: null },
222
- notes: "ღ (ghani) is a voiced velar fricative, distinct from გ (gani) the stop."
223
- }
224
- ], s = [
225
- ...a,
226
- ...t,
1
+ import { levels as r } from "./levels.js";
2
+ import { pronunciationTips as i } from "./pronunciationTips.js";
3
+ import { level0Pairs as o } from "./data/level-0.js";
4
+ import { level1Pairs as m } from "./data/level-1.js";
5
+ import { level2Pairs as l } from "./data/level-2.js";
6
+ import { level3Pairs as a } from "./data/level-3.js";
7
+ import { level4Pairs as e } from "./data/level-4.js";
8
+ import { level5Pairs as s } from "./data/level-5.js";
9
+ const t = [
227
10
  ...o,
228
- ...e,
11
+ ...m,
229
12
  ...l,
230
- ...r
231
- ], c = {
232
- levels: i,
233
- minimalPairs: s,
234
- pronunciationTips: n
13
+ ...a,
14
+ ...e,
15
+ ...s
16
+ ], x = {
17
+ levels: r,
18
+ minimalPairs: t,
19
+ pronunciationTips: i
235
20
  };
236
21
  export {
237
- t as a,
238
- o as b,
239
- e as c,
240
- l as d,
241
- c as default,
242
- r as e,
243
- i as f,
244
- a as l,
245
- c as minimalPairsData,
246
- n as p
22
+ x as default,
23
+ x as minimalPairsData
247
24
  };
package/dist/index.d.ts CHANGED
@@ -7,5 +7,5 @@ export { level2Pairs } from './data/level-2';
7
7
  export { level3Pairs } from './data/level-3';
8
8
  export { level4Pairs } from './data/level-4';
9
9
  export { level5Pairs } from './data/level-5';
10
- export type { MinimalPairsLanguageData, MinimalPairsLevelInfo, MinimalPairsMinimalPair, MinimalPairsPronunciationTipsMap, MinimalPairsRubySegment, MinimalPairsWordInfo, } from '../../content-shared/src';
10
+ export type { MinimalPairsLanguageData, MinimalPairsLevelInfo, MinimalPairsMinimalPair, MinimalPairsPronunciationTipsMap, MinimalPairsRubySegment, MinimalPairsWordInfo, } from '@polyglot-bundles/content-shared';
11
11
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,12 +1,20 @@
1
- import { default as l, l as s, a as i, b as r, c as v, d as P, e as o, f as p, p as f } from "./data.js";
1
+ import { default as o } from "./data.js";
2
+ import { levels as p } from "./levels.js";
3
+ import { pronunciationTips as f } from "./pronunciationTips.js";
4
+ import { level0Pairs as m } from "./data/level-0.js";
5
+ import { level1Pairs as a } from "./data/level-1.js";
6
+ import { level2Pairs as v } from "./data/level-2.js";
7
+ import { level3Pairs as n } from "./data/level-3.js";
8
+ import { level4Pairs as c } from "./data/level-4.js";
9
+ import { level5Pairs as T } from "./data/level-5.js";
2
10
  export {
3
- l as default,
4
- s as level0Pairs,
5
- i as level1Pairs,
6
- r as level2Pairs,
7
- v as level3Pairs,
8
- P as level4Pairs,
9
- o as level5Pairs,
11
+ o as default,
12
+ m as level0Pairs,
13
+ a as level1Pairs,
14
+ v as level2Pairs,
15
+ n as level3Pairs,
16
+ c as level4Pairs,
17
+ T as level5Pairs,
10
18
  p as levels,
11
19
  f as pronunciationTips
12
20
  };
package/dist/levels.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { MinimalPairsLevelInfo } from '../../content-shared/src';
1
+ import { MinimalPairsLevelInfo } from '@polyglot-bundles/content-shared';
2
2
  export declare const levels: MinimalPairsLevelInfo[];
3
3
  //# sourceMappingURL=levels.d.ts.map
package/dist/levels.js ADDED
@@ -0,0 +1,11 @@
1
+ const e = [
2
+ { level: 0, title: "Getting Started", description: "Practice with clearly different sounds" },
3
+ { level: 1, title: "Three-Way Stop Contrast", description: "Ejective vs aspirated vs voiced" },
4
+ { level: 2, title: "Vowels", description: "Vowel distinctions" },
5
+ { level: 3, title: "Consonant Series", description: "Labial, coronal, and velar contrasts" },
6
+ { level: 4, title: "Advanced Consonants", description: "Affricates and fricatives" },
7
+ { level: 5, title: "Expert Level", description: "Complex clusters and subtle distinctions" }
8
+ ];
9
+ export {
10
+ e as levels
11
+ };
@@ -1,3 +1,3 @@
1
- import { MinimalPairsPronunciationTipsMap } from '../../content-shared/src';
1
+ import { MinimalPairsPronunciationTipsMap } from '@polyglot-bundles/content-shared';
2
2
  export declare const pronunciationTips: MinimalPairsPronunciationTipsMap;
3
3
  //# sourceMappingURL=pronunciationTips.d.ts.map
@@ -0,0 +1,6 @@
1
+ const a = {
2
+ consonant_three_way: "Georgian has a three-way contrast: ejective (პ, ტ, კ), aspirated (ფ, თ, ქ), and voiced (ბ, დ, გ). Ejectives have a glottal burst, aspirated have a strong puff of air."
3
+ };
4
+ export {
5
+ a as pronunciationTips
6
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polyglot-bundles/ka-minimal-pairs",
3
- "version": "0.3.2",
3
+ "version": "0.3.3",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -50,12 +50,13 @@
50
50
  "dist"
51
51
  ],
52
52
  "dependencies": {
53
- "@polyglot-bundles/content-shared": "0.3.2",
54
- "@polyglot-bundles/ka-lang": "0.3.4"
53
+ "@polyglot-bundles/content-shared": "0.4.1",
54
+ "@polyglot-bundles/ka-lang": "0.3.5"
55
55
  },
56
56
  "devDependencies": {
57
57
  "vite": "^5.4.0",
58
- "vite-plugin-dts": "^4.0.0"
58
+ "vite-plugin-dts": "^4.0.0",
59
+ "@polyglot-bundles/lang-tooling": "0.0.0"
59
60
  },
60
61
  "publishConfig": {
61
62
  "access": "public"
@@ -66,6 +67,7 @@
66
67
  "directory": "packages/ka/minimal-pairs"
67
68
  },
68
69
  "scripts": {
70
+ "typecheck": "tsc --noEmit",
69
71
  "build": "vite build",
70
72
  "clean": "rm -rf dist"
71
73
  }