@syllst/th 0.1.2 → 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.
Files changed (330) hide show
  1. package/dist/{index-of_athp-.js → index-4uNMctdq.js} +13 -13
  2. package/dist/{index-of_athp-.js.map → index-4uNMctdq.js.map} +1 -1
  3. package/dist/{index-Dy38Hmlm.js → index-BM-LWlCm.js} +10 -10
  4. package/dist/{index-Dy38Hmlm.js.map → index-BM-LWlCm.js.map} +1 -1
  5. package/dist/{index-CTQ45BVw.js → index-Bjym0crS.js} +8 -8
  6. package/dist/{index-CTQ45BVw.js.map → index-Bjym0crS.js.map} +1 -1
  7. package/dist/{index-B029m98V.js → index-BuKXw7-Z.js} +7 -7
  8. package/dist/{index-B029m98V.js.map → index-BuKXw7-Z.js.map} +1 -1
  9. package/dist/{index-CoqP9GZL.js → index-ByS0o5dz.js} +10 -10
  10. package/dist/{index-CoqP9GZL.js.map → index-ByS0o5dz.js.map} +1 -1
  11. package/dist/{index-BCA5Llwg.js → index-C9VnG7dT.js} +10 -10
  12. package/dist/{index-BCA5Llwg.js.map → index-C9VnG7dT.js.map} +1 -1
  13. package/dist/{index-vuRo2mLK.js → index-CPQkjFjV.js} +9 -9
  14. package/dist/{index-vuRo2mLK.js.map → index-CPQkjFjV.js.map} +1 -1
  15. package/dist/{index-BFcg5D_W.js → index-CkHd3Fal.js} +12 -12
  16. package/dist/{index-BFcg5D_W.js.map → index-CkHd3Fal.js.map} +1 -1
  17. package/dist/{index-CB8M6CK6.js → index-DBkPBXe2.js} +10 -10
  18. package/dist/{index-CB8M6CK6.js.map → index-DBkPBXe2.js.map} +1 -1
  19. package/dist/index.d.ts +1 -1
  20. package/dist/index.js +18 -18
  21. package/dist/{lesson-01--9NOyHZ6.js → lesson-01-B0wtSaSl.js} +21 -9
  22. package/dist/lesson-01-B0wtSaSl.js.map +1 -0
  23. package/dist/{lesson-01-97FtYE6g.js → lesson-01-C9vbUlA4.js} +14 -6
  24. package/dist/lesson-01-C9vbUlA4.js.map +1 -0
  25. package/dist/{lesson-01-CF4tJfZ3.js → lesson-01-CPmBFTe0.js} +28 -16
  26. package/dist/lesson-01-CPmBFTe0.js.map +1 -0
  27. package/dist/{lesson-01-3hBted4A.js → lesson-01-Cc4Ws8eR.js} +25 -14
  28. package/dist/lesson-01-Cc4Ws8eR.js.map +1 -0
  29. package/dist/{lesson-01-BYKAZiua.js → lesson-01-Cm5k-m-9.js} +14 -8
  30. package/dist/lesson-01-Cm5k-m-9.js.map +1 -0
  31. package/dist/{lesson-01-WV3ic8Ok.js → lesson-01-DELblCNj.js} +11 -5
  32. package/dist/lesson-01-DELblCNj.js.map +1 -0
  33. package/dist/{lesson-01-CRx-yw4C.js → lesson-01-Djl_72e7.js} +14 -6
  34. package/dist/lesson-01-Djl_72e7.js.map +1 -0
  35. package/dist/{lesson-01-BhjY6ArF.js → lesson-01-LEHTeGQQ.js} +17 -9
  36. package/dist/lesson-01-LEHTeGQQ.js.map +1 -0
  37. package/dist/{lesson-01-BNdHXAGR.js → lesson-01-ih_-OO_O.js} +14 -6
  38. package/dist/lesson-01-ih_-OO_O.js.map +1 -0
  39. package/dist/{lesson-02-C8dfzXvq.js → lesson-02-B2aZrKUQ.js} +14 -6
  40. package/dist/lesson-02-B2aZrKUQ.js.map +1 -0
  41. package/dist/{lesson-02-C2ALLvoT.js → lesson-02-BI1Vnwiz.js} +17 -9
  42. package/dist/lesson-02-BI1Vnwiz.js.map +1 -0
  43. package/dist/{lesson-02-BGnp0Ik_.js → lesson-02-BXbwEMaL.js} +27 -15
  44. package/dist/lesson-02-BXbwEMaL.js.map +1 -0
  45. package/dist/{lesson-02-BAbq-QGP.js → lesson-02-CbJJ5Amt.js} +24 -14
  46. package/dist/lesson-02-CbJJ5Amt.js.map +1 -0
  47. package/dist/{lesson-02-Bm9EJuN8.js → lesson-02-DGrALAgG.js} +21 -9
  48. package/dist/lesson-02-DGrALAgG.js.map +1 -0
  49. package/dist/{lesson-02-C0ZL4z3c.js → lesson-02-DcMDDBDL.js} +11 -5
  50. package/dist/lesson-02-DcMDDBDL.js.map +1 -0
  51. package/dist/{lesson-02-B2Xg7RVU.js → lesson-02-Dk59HZWp.js} +17 -9
  52. package/dist/lesson-02-Dk59HZWp.js.map +1 -0
  53. package/dist/{lesson-02-BO3BXPMJ.js → lesson-02-L8oNhBej.js} +14 -8
  54. package/dist/lesson-02-L8oNhBej.js.map +1 -0
  55. package/dist/{lesson-02-CsejVbCo.js → lesson-02-VDOme3ES.js} +17 -9
  56. package/dist/lesson-02-VDOme3ES.js.map +1 -0
  57. package/dist/{lesson-03-DV2SUWVH.js → lesson-03-9WioSe19.js} +21 -9
  58. package/dist/lesson-03-9WioSe19.js.map +1 -0
  59. package/dist/{lesson-03-DiV17_Os.js → lesson-03-BZutWzMD.js} +14 -6
  60. package/dist/lesson-03-BZutWzMD.js.map +1 -0
  61. package/dist/{lesson-03-Xc8-2Yt3.js → lesson-03-CSIF5xRS.js} +14 -8
  62. package/dist/lesson-03-CSIF5xRS.js.map +1 -0
  63. package/dist/{lesson-03-DrJgbfDQ.js → lesson-03-CSKig363.js} +17 -9
  64. package/dist/lesson-03-CSKig363.js.map +1 -0
  65. package/dist/{lesson-03-XVahXvgf.js → lesson-03-CoDPKwa1.js} +21 -14
  66. package/dist/lesson-03-CoDPKwa1.js.map +1 -0
  67. package/dist/{lesson-03-8NtAeqFh.js → lesson-03-DPJOG2M_.js} +14 -8
  68. package/dist/lesson-03-DPJOG2M_.js.map +1 -0
  69. package/dist/{lesson-03-CKTNtgY1.js → lesson-03-DkjCuJ26.js} +17 -9
  70. package/dist/lesson-03-DkjCuJ26.js.map +1 -0
  71. package/dist/{lesson-03-BdZfKRhq.js → lesson-03-DucbRMOQ.js} +17 -9
  72. package/dist/lesson-03-DucbRMOQ.js.map +1 -0
  73. package/dist/{lesson-03-D8va_Q9B.js → lesson-03-MIne1PbH.js} +26 -14
  74. package/dist/lesson-03-MIne1PbH.js.map +1 -0
  75. package/dist/{lesson-04-Dfc7S4nT.js → lesson-04-0Pj_x1DU.js} +17 -9
  76. package/dist/lesson-04-0Pj_x1DU.js.map +1 -0
  77. package/dist/{lesson-04-ZrSBM0BX.js → lesson-04-B9h0p9kE.js} +14 -8
  78. package/dist/lesson-04-B9h0p9kE.js.map +1 -0
  79. package/dist/{lesson-04-DEEPJ_rd.js → lesson-04-BLuPI1-X.js} +22 -13
  80. package/dist/lesson-04-BLuPI1-X.js.map +1 -0
  81. package/dist/{lesson-04-rapx_3vA.js → lesson-04-CmDvofL4.js} +17 -9
  82. package/dist/lesson-04-CmDvofL4.js.map +1 -0
  83. package/dist/{lesson-04-DtXVhdGB.js → lesson-04-DGKHK4LW.js} +17 -9
  84. package/dist/lesson-04-DGKHK4LW.js.map +1 -0
  85. package/dist/{lesson-04-CtNr2B3E.js → lesson-04-DUcHZzsk.js} +21 -9
  86. package/dist/lesson-04-DUcHZzsk.js.map +1 -0
  87. package/dist/{lesson-04-BpRrNmzO.js → lesson-04-DnVIXXk-.js} +14 -8
  88. package/dist/lesson-04-DnVIXXk-.js.map +1 -0
  89. package/dist/{lesson-04-ioLXnB0j.js → lesson-04-FZnIE7tu.js} +27 -15
  90. package/dist/lesson-04-FZnIE7tu.js.map +1 -0
  91. package/dist/{lesson-04-D__vMCyA.js → lesson-04-ToX3nRz1.js} +17 -9
  92. package/dist/lesson-04-ToX3nRz1.js.map +1 -0
  93. package/dist/{lesson-05-D_GdROUn.js → lesson-05-2aTCGXMh.js} +14 -8
  94. package/dist/lesson-05-2aTCGXMh.js.map +1 -0
  95. package/dist/{lesson-05-ip400cxe.js → lesson-05-BvitRdE8.js} +28 -16
  96. package/dist/lesson-05-BvitRdE8.js.map +1 -0
  97. package/dist/{lesson-05-D1d3kc3M.js → lesson-05-CgXGkcjS.js} +14 -8
  98. package/dist/lesson-05-CgXGkcjS.js.map +1 -0
  99. package/dist/{lesson-05-D2SVU-I0.js → lesson-05-ClfrUrvX.js} +17 -9
  100. package/dist/lesson-05-ClfrUrvX.js.map +1 -0
  101. package/dist/{lesson-05-CKxXcooO.js → lesson-05-D2zf9n7k.js} +23 -13
  102. package/dist/lesson-05-D2zf9n7k.js.map +1 -0
  103. package/dist/{lesson-05-DusKUtbm.js → lesson-05-DWquBfdl.js} +21 -9
  104. package/dist/lesson-05-DWquBfdl.js.map +1 -0
  105. package/dist/{lesson-05-Bm6fg-DJ.js → lesson-05-DpIkwhJ8.js} +17 -9
  106. package/dist/lesson-05-DpIkwhJ8.js.map +1 -0
  107. package/dist/{lesson-05-DBsHyFlt.js → lesson-05-UYz39ORV.js} +17 -9
  108. package/dist/lesson-05-UYz39ORV.js.map +1 -0
  109. package/dist/{lesson-05-DXOLS7G0.js → lesson-05-t6XuANiZ.js} +17 -9
  110. package/dist/lesson-05-t6XuANiZ.js.map +1 -0
  111. package/dist/{lesson-06-1ZsbrE1a.js → lesson-06-B2y08mKv.js} +17 -9
  112. package/dist/lesson-06-B2y08mKv.js.map +1 -0
  113. package/dist/{lesson-06-1CE05TRX.js → lesson-06-CHqaVQix.js} +16 -10
  114. package/dist/lesson-06-CHqaVQix.js.map +1 -0
  115. package/dist/{lesson-06-Bliedg7n.js → lesson-06-CaCZBX1V.js} +17 -9
  116. package/dist/lesson-06-CaCZBX1V.js.map +1 -0
  117. package/dist/{lesson-06-Du9J8sYl.js → lesson-06-ClplsJBT.js} +30 -18
  118. package/dist/lesson-06-ClplsJBT.js.map +1 -0
  119. package/dist/{lesson-06-BG26PBTF.js → lesson-06-CzGnNKo5.js} +14 -8
  120. package/dist/lesson-06-CzGnNKo5.js.map +1 -0
  121. package/dist/{lesson-06-CnKkcUb-.js → lesson-06-Dg_bQLNC.js} +17 -9
  122. package/dist/lesson-06-Dg_bQLNC.js.map +1 -0
  123. package/dist/{lesson-06-Aw-X-HMV.js → lesson-06-OWFMgO0a.js} +23 -14
  124. package/dist/lesson-06-OWFMgO0a.js.map +1 -0
  125. package/dist/{lesson-06-CvN9pDsE.js → lesson-06-Q2aRAzws.js} +17 -9
  126. package/dist/lesson-06-Q2aRAzws.js.map +1 -0
  127. package/dist/{lesson-07-DjCMCYkK.js → lesson-07-BLDUA_Ff.js} +17 -9
  128. package/dist/lesson-07-BLDUA_Ff.js.map +1 -0
  129. package/dist/{lesson-07-DezS1ojS.js → lesson-07-BpyF1Ssq.js} +27 -15
  130. package/dist/lesson-07-BpyF1Ssq.js.map +1 -0
  131. package/dist/{lesson-07-rvSSQiVh.js → lesson-07-C4GrfDTW.js} +25 -13
  132. package/dist/lesson-07-C4GrfDTW.js.map +1 -0
  133. package/dist/{lesson-07-CTFSd9gF.js → lesson-07-CVCUt1Jn.js} +14 -8
  134. package/dist/lesson-07-CVCUt1Jn.js.map +1 -0
  135. package/dist/{lesson-07-8zdPFyjE.js → lesson-07-DQFXCZsZ.js} +17 -9
  136. package/dist/lesson-07-DQFXCZsZ.js.map +1 -0
  137. package/dist/{lesson-07-X6anzbAn.js → lesson-07-Dcry2Yjo.js} +17 -9
  138. package/dist/lesson-07-Dcry2Yjo.js.map +1 -0
  139. package/dist/{lesson-07-B9bkJ3gP.js → lesson-07-JS_cqdNr.js} +14 -8
  140. package/dist/lesson-07-JS_cqdNr.js.map +1 -0
  141. package/dist/{lesson-08-CeDWopKc.js → lesson-08-18gscaS0.js} +25 -13
  142. package/dist/lesson-08-18gscaS0.js.map +1 -0
  143. package/dist/{lesson-08-Cyzy_VeP.js → lesson-08-2kBUq_B2.js} +14 -8
  144. package/dist/lesson-08-2kBUq_B2.js.map +1 -0
  145. package/dist/{lesson-08-BYfkPBkH.js → lesson-08-BP5lpiGe.js} +17 -9
  146. package/dist/lesson-08-BP5lpiGe.js.map +1 -0
  147. package/dist/{lesson-08-Bb_v_gD-.js → lesson-08-BXm9GgdN.js} +14 -8
  148. package/dist/lesson-08-BXm9GgdN.js.map +1 -0
  149. package/dist/{lesson-08-BqW5C_OE.js → lesson-08-Bru0PdEK.js} +21 -9
  150. package/dist/lesson-08-Bru0PdEK.js.map +1 -0
  151. package/dist/{lesson-08-hJlci9W5.js → lesson-08-Dd-8cbGW.js} +17 -9
  152. package/dist/lesson-08-Dd-8cbGW.js.map +1 -0
  153. package/dist/{lesson-09-DHRHZIc1.js → lesson-09-B1qWE3Yl.js} +27 -15
  154. package/dist/lesson-09-B1qWE3Yl.js.map +1 -0
  155. package/dist/{lesson-09-BQ1CZCjT.js → lesson-09-B5Vb70xj.js} +14 -8
  156. package/dist/lesson-09-B5Vb70xj.js.map +1 -0
  157. package/dist/{lesson-10-BdfkVT7s.js → lesson-10-00qNLc7A.js} +25 -13
  158. package/dist/lesson-10-00qNLc7A.js.map +1 -0
  159. package/dist/{lesson-10-C7YEQ8et.js → lesson-10-Dw-Jtm3D.js} +14 -8
  160. package/dist/lesson-10-Dw-Jtm3D.js.map +1 -0
  161. package/dist/{lesson-11-oJQ8ZxJk.js → lesson-11-BM3R_S7I.js} +25 -13
  162. package/dist/lesson-11-BM3R_S7I.js.map +1 -0
  163. package/dist/{lesson-12-D69m5ETy.js → lesson-12-D1Wx7CyK.js} +33 -21
  164. package/dist/lesson-12-D1Wx7CyK.js.map +1 -0
  165. package/dist/skills-hcn-pGD0.js +244 -0
  166. package/dist/skills-hcn-pGD0.js.map +1 -0
  167. package/dist/syllabi/alphabet/index.js +1 -1
  168. package/dist/syllabi/dialogue/index.d.ts +1 -1
  169. package/dist/syllabi/dialogue/index.js +2 -2
  170. package/dist/syllabi/essentials/index.d.ts +1 -1
  171. package/dist/syllabi/essentials/index.js +2 -2
  172. package/dist/syllabi/food/index.d.ts +1 -1
  173. package/dist/syllabi/food/index.js +2 -2
  174. package/dist/syllabi/grammar/index.d.ts +1 -1
  175. package/dist/syllabi/grammar/index.js +2 -2
  176. package/dist/syllabi/numbers/index.d.ts +1 -1
  177. package/dist/syllabi/numbers/index.js +2 -2
  178. package/dist/syllabi/reading/index.d.ts +1 -1
  179. package/dist/syllabi/reading/index.js +2 -2
  180. package/dist/syllabi/travel/index.d.ts +1 -1
  181. package/dist/syllabi/travel/index.js +2 -2
  182. package/dist/syllabi/vowels-tones/index.d.ts +1 -1
  183. package/dist/syllabi/vowels-tones/index.js +2 -2
  184. package/package.json +10 -7
  185. package/src/syllabi/alphabet/lessons/lesson-01.mdx +24 -13
  186. package/src/syllabi/alphabet/lessons/lesson-02.mdx +23 -13
  187. package/src/syllabi/alphabet/lessons/lesson-03.mdx +20 -13
  188. package/src/syllabi/alphabet/lessons/lesson-04.mdx +21 -12
  189. package/src/syllabi/alphabet/lessons/lesson-05.mdx +22 -12
  190. package/src/syllabi/alphabet/lessons/lesson-06.mdx +22 -13
  191. package/src/syllabi/alphabet/lessons/lesson-07.mdx +26 -14
  192. package/src/syllabi/alphabet/lessons/lesson-08.mdx +24 -12
  193. package/src/syllabi/alphabet/lessons/lesson-09.mdx +26 -14
  194. package/src/syllabi/alphabet/lessons/lesson-10.mdx +24 -12
  195. package/src/syllabi/alphabet/lessons/lesson-11.mdx +24 -12
  196. package/src/syllabi/alphabet/lessons/lesson-12.mdx +32 -20
  197. package/src/syllabi/dialogue/lessons/lesson-01.mdx +13 -5
  198. package/src/syllabi/dialogue/lessons/lesson-02.mdx +13 -5
  199. package/src/syllabi/dialogue/lessons/lesson-03.mdx +13 -5
  200. package/src/syllabi/dialogue/lessons/lesson-04.mdx +16 -8
  201. package/src/syllabi/dialogue/lessons/lesson-05.mdx +16 -8
  202. package/src/syllabi/dialogue/lessons/lesson-06.mdx +16 -8
  203. package/src/syllabi/dialogue/lessons/lesson-07.mdx +16 -8
  204. package/src/syllabi/dialogue/lessons/lesson-08.mdx +16 -8
  205. package/src/syllabi/essentials/lessons/lesson-01.mdx +13 -5
  206. package/src/syllabi/essentials/lessons/lesson-02.mdx +16 -8
  207. package/src/syllabi/essentials/lessons/lesson-03.mdx +16 -8
  208. package/src/syllabi/essentials/lessons/lesson-04.mdx +16 -8
  209. package/src/syllabi/essentials/lessons/lesson-05.mdx +16 -8
  210. package/src/syllabi/essentials/lessons/lesson-06.mdx +16 -8
  211. package/src/syllabi/food/lessons/lesson-01.mdx +13 -5
  212. package/src/syllabi/food/lessons/lesson-02.mdx +16 -8
  213. package/src/syllabi/food/lessons/lesson-03.mdx +16 -8
  214. package/src/syllabi/food/lessons/lesson-04.mdx +16 -8
  215. package/src/syllabi/food/lessons/lesson-05.mdx +16 -8
  216. package/src/syllabi/food/lessons/lesson-06.mdx +16 -8
  217. package/src/syllabi/food/lessons/lesson-07.mdx +16 -8
  218. package/src/syllabi/food/lessons/lesson-08.mdx +16 -8
  219. package/src/syllabi/grammar/lessons/lesson-01.mdx +10 -4
  220. package/src/syllabi/grammar/lessons/lesson-02.mdx +10 -4
  221. package/src/syllabi/grammar/lessons/lesson-03.mdx +13 -7
  222. package/src/syllabi/grammar/lessons/lesson-04.mdx +13 -7
  223. package/src/syllabi/grammar/lessons/lesson-05.mdx +13 -7
  224. package/src/syllabi/grammar/lessons/lesson-06.mdx +13 -7
  225. package/src/syllabi/grammar/lessons/lesson-07.mdx +13 -7
  226. package/src/syllabi/grammar/lessons/lesson-08.mdx +13 -7
  227. package/src/syllabi/numbers/lessons/lesson-01.mdx +27 -15
  228. package/src/syllabi/numbers/lessons/lesson-02.mdx +20 -8
  229. package/src/syllabi/numbers/lessons/lesson-03.mdx +20 -8
  230. package/src/syllabi/numbers/lessons/lesson-04.mdx +20 -8
  231. package/src/syllabi/numbers/lessons/lesson-05.mdx +20 -8
  232. package/src/syllabi/reading/lessons/lesson-01.mdx +13 -7
  233. package/src/syllabi/reading/lessons/lesson-02.mdx +13 -7
  234. package/src/syllabi/reading/lessons/lesson-03.mdx +13 -7
  235. package/src/syllabi/reading/lessons/lesson-04.mdx +13 -7
  236. package/src/syllabi/reading/lessons/lesson-05.mdx +13 -7
  237. package/src/syllabi/reading/lessons/lesson-06.mdx +13 -7
  238. package/src/syllabi/reading/lessons/lesson-07.mdx +13 -7
  239. package/src/syllabi/reading/lessons/lesson-08.mdx +13 -7
  240. package/src/syllabi/reading/lessons/lesson-09.mdx +13 -7
  241. package/src/syllabi/reading/lessons/lesson-10.mdx +13 -7
  242. package/src/syllabi/travel/lessons/lesson-01.mdx +16 -8
  243. package/src/syllabi/travel/lessons/lesson-02.mdx +16 -8
  244. package/src/syllabi/travel/lessons/lesson-03.mdx +16 -8
  245. package/src/syllabi/travel/lessons/lesson-04.mdx +16 -8
  246. package/src/syllabi/travel/lessons/lesson-05.mdx +16 -8
  247. package/src/syllabi/travel/lessons/lesson-06.mdx +16 -8
  248. package/src/syllabi/travel/lessons/lesson-07.mdx +16 -8
  249. package/src/syllabi/vowels-tones/lessons/lesson-01.mdx +20 -8
  250. package/src/syllabi/vowels-tones/lessons/lesson-02.mdx +26 -14
  251. package/src/syllabi/vowels-tones/lessons/lesson-03.mdx +25 -13
  252. package/src/syllabi/vowels-tones/lessons/lesson-04.mdx +24 -12
  253. package/src/syllabi/vowels-tones/lessons/lesson-05.mdx +27 -15
  254. package/src/syllabi/vowels-tones/lessons/lesson-06.mdx +29 -17
  255. package/src/syllabi/vowels-tones/lessons/lesson-07.mdx +24 -12
  256. package/src/syllabi/vowels-tones/lessons/lesson-08.mdx +20 -8
  257. package/dist/index-DADMaTE7.js +0 -27
  258. package/dist/index-DADMaTE7.js.map +0 -1
  259. package/dist/lesson-01--9NOyHZ6.js.map +0 -1
  260. package/dist/lesson-01-3hBted4A.js.map +0 -1
  261. package/dist/lesson-01-97FtYE6g.js.map +0 -1
  262. package/dist/lesson-01-BNdHXAGR.js.map +0 -1
  263. package/dist/lesson-01-BYKAZiua.js.map +0 -1
  264. package/dist/lesson-01-BhjY6ArF.js.map +0 -1
  265. package/dist/lesson-01-CF4tJfZ3.js.map +0 -1
  266. package/dist/lesson-01-CRx-yw4C.js.map +0 -1
  267. package/dist/lesson-01-WV3ic8Ok.js.map +0 -1
  268. package/dist/lesson-02-B2Xg7RVU.js.map +0 -1
  269. package/dist/lesson-02-BAbq-QGP.js.map +0 -1
  270. package/dist/lesson-02-BGnp0Ik_.js.map +0 -1
  271. package/dist/lesson-02-BO3BXPMJ.js.map +0 -1
  272. package/dist/lesson-02-Bm9EJuN8.js.map +0 -1
  273. package/dist/lesson-02-C0ZL4z3c.js.map +0 -1
  274. package/dist/lesson-02-C2ALLvoT.js.map +0 -1
  275. package/dist/lesson-02-C8dfzXvq.js.map +0 -1
  276. package/dist/lesson-02-CsejVbCo.js.map +0 -1
  277. package/dist/lesson-03-8NtAeqFh.js.map +0 -1
  278. package/dist/lesson-03-BdZfKRhq.js.map +0 -1
  279. package/dist/lesson-03-CKTNtgY1.js.map +0 -1
  280. package/dist/lesson-03-D8va_Q9B.js.map +0 -1
  281. package/dist/lesson-03-DV2SUWVH.js.map +0 -1
  282. package/dist/lesson-03-DiV17_Os.js.map +0 -1
  283. package/dist/lesson-03-DrJgbfDQ.js.map +0 -1
  284. package/dist/lesson-03-XVahXvgf.js.map +0 -1
  285. package/dist/lesson-03-Xc8-2Yt3.js.map +0 -1
  286. package/dist/lesson-04-BpRrNmzO.js.map +0 -1
  287. package/dist/lesson-04-CtNr2B3E.js.map +0 -1
  288. package/dist/lesson-04-DEEPJ_rd.js.map +0 -1
  289. package/dist/lesson-04-D__vMCyA.js.map +0 -1
  290. package/dist/lesson-04-Dfc7S4nT.js.map +0 -1
  291. package/dist/lesson-04-DtXVhdGB.js.map +0 -1
  292. package/dist/lesson-04-ZrSBM0BX.js.map +0 -1
  293. package/dist/lesson-04-ioLXnB0j.js.map +0 -1
  294. package/dist/lesson-04-rapx_3vA.js.map +0 -1
  295. package/dist/lesson-05-Bm6fg-DJ.js.map +0 -1
  296. package/dist/lesson-05-CKxXcooO.js.map +0 -1
  297. package/dist/lesson-05-D1d3kc3M.js.map +0 -1
  298. package/dist/lesson-05-D2SVU-I0.js.map +0 -1
  299. package/dist/lesson-05-DBsHyFlt.js.map +0 -1
  300. package/dist/lesson-05-DXOLS7G0.js.map +0 -1
  301. package/dist/lesson-05-D_GdROUn.js.map +0 -1
  302. package/dist/lesson-05-DusKUtbm.js.map +0 -1
  303. package/dist/lesson-05-ip400cxe.js.map +0 -1
  304. package/dist/lesson-06-1CE05TRX.js.map +0 -1
  305. package/dist/lesson-06-1ZsbrE1a.js.map +0 -1
  306. package/dist/lesson-06-Aw-X-HMV.js.map +0 -1
  307. package/dist/lesson-06-BG26PBTF.js.map +0 -1
  308. package/dist/lesson-06-Bliedg7n.js.map +0 -1
  309. package/dist/lesson-06-CnKkcUb-.js.map +0 -1
  310. package/dist/lesson-06-CvN9pDsE.js.map +0 -1
  311. package/dist/lesson-06-Du9J8sYl.js.map +0 -1
  312. package/dist/lesson-07-8zdPFyjE.js.map +0 -1
  313. package/dist/lesson-07-B9bkJ3gP.js.map +0 -1
  314. package/dist/lesson-07-CTFSd9gF.js.map +0 -1
  315. package/dist/lesson-07-DezS1ojS.js.map +0 -1
  316. package/dist/lesson-07-DjCMCYkK.js.map +0 -1
  317. package/dist/lesson-07-X6anzbAn.js.map +0 -1
  318. package/dist/lesson-07-rvSSQiVh.js.map +0 -1
  319. package/dist/lesson-08-BYfkPBkH.js.map +0 -1
  320. package/dist/lesson-08-Bb_v_gD-.js.map +0 -1
  321. package/dist/lesson-08-BqW5C_OE.js.map +0 -1
  322. package/dist/lesson-08-CeDWopKc.js.map +0 -1
  323. package/dist/lesson-08-Cyzy_VeP.js.map +0 -1
  324. package/dist/lesson-08-hJlci9W5.js.map +0 -1
  325. package/dist/lesson-09-BQ1CZCjT.js.map +0 -1
  326. package/dist/lesson-09-DHRHZIc1.js.map +0 -1
  327. package/dist/lesson-10-BdfkVT7s.js.map +0 -1
  328. package/dist/lesson-10-C7YEQ8et.js.map +0 -1
  329. package/dist/lesson-11-oJQ8ZxJk.js.map +0 -1
  330. package/dist/lesson-12-D69m5ETy.js.map +0 -1
@@ -15,11 +15,19 @@ metadata:
15
15
  estimatedTime: 30
16
16
  prerequisites:
17
17
  - thai-dialogue-lesson-01
18
- objectives:
19
- - "Order food at a restaurant"
20
- - "Make special dietary requests"
21
- - "Ask for the bill"
22
- - "Handle common restaurant situations"
18
+ learningObjectives:
19
+ - id: obj-restaurant-order
20
+ description: "Order food at a restaurant"
21
+ skill: situational-response
22
+ - id: obj-restaurant-dietary
23
+ description: "Make special dietary requests"
24
+ skill: polite-register
25
+ - id: obj-restaurant-bill
26
+ description: "Ask for the bill"
27
+ skill: word-production
28
+ - id: obj-restaurant-situations
29
+ description: "Handle common restaurant situations"
30
+ skill: dialogue-comprehension
23
31
  ---
24
32
 
25
33
  # บทที่ 2 (Lesson 2) — At the Restaurant
@@ -109,4 +117,4 @@ In Lesson 3, you'll learn dialogues for shopping — bargaining, asking about pr
109
117
  export {
110
118
  n as default
111
119
  };
112
- //# sourceMappingURL=lesson-02-C8dfzXvq.js.map
120
+ //# sourceMappingURL=lesson-02-B2aZrKUQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-02-B2aZrKUQ.js","sources":["../src/syllabi/dialogue/lessons/lesson-02.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: thai-dialogue-lesson-02\\ntitle: \\\"บทที่ 2 — ที่ร้านอาหาร\\\"\\ndescription: \\\"At the Restaurant: Ordering food and making special requests\\\"\\norder: 2\\nparentId: thai-dialogue\\ndifficulty: intermediate\\ncefrLevel: A2\\ncategories:\\n - dialogue\\n - restaurant\\n - food\\nmetadata:\\n estimatedTime: 30\\n prerequisites:\\n - thai-dialogue-lesson-01\\n learningObjectives:\\n - id: obj-restaurant-order\\n description: \\\"Order food at a restaurant\\\"\\n skill: situational-response\\n - id: obj-restaurant-dietary\\n description: \\\"Make special dietary requests\\\"\\n skill: polite-register\\n - id: obj-restaurant-bill\\n description: \\\"Ask for the bill\\\"\\n skill: word-production\\n - id: obj-restaurant-situations\\n description: \\\"Handle common restaurant situations\\\"\\n skill: dialogue-comprehension\\n---\\n\\n# บทที่ 2 (Lesson 2) — At the Restaurant\\n\\n## Situation\\n\\nYou're at a Thai restaurant ordering lunch.\\n\\n## Dialogue\\n\\n:::dialogue{id=\\\"restaurant-dialogue-1\\\" title=\\\"Ordering Lunch\\\"}\\n\\n**พนักงาน (Server):** สวัสดีค่ะ สั่งอะไรดีคะ?\\n*sà-wàt-dii khâ, sàng à-rai dii khá?*\\nHello! What would you like to order?\\n\\n**คุณ (You):** ขอผัดไทยหนึ่งจานครับ/ค่ะ ไม่เผ็ดได้ไหม?\\n*khǎaw phàt-thai nùeng jaan khráp/khâ, mâi phèt dâai mái?*\\nI'd like one pad thai please. Can it be not spicy?\\n\\n**พนักงาน:** ได้ค่ะ ไม่เผ็ดเลยหรือเผ็ดนิดหน่อย?\\n*dâai khâ, mâi phèt ləəi rǔue phèt nít-nàwy?*\\nSure. Not spicy at all, or a little bit spicy?\\n\\n**คุณ:** ไม่เผ็ดเลยครับ/ค่ะ\\n*mâi phèt ləəi khráp/khâ*\\nNot spicy at all.\\n\\n**พนักงาน:** ค่ะ รับเครื่องดื่มอะไรไหมคะ?\\n*khâ, ráp khrûueang-dùuem à-rai mái khá?*\\nWould you like any drinks?\\n\\n**คุณ:** ขอน้ำเปล่าแก้วหนึ่งครับ/ค่ะ\\n*khǎaw náam-bplào gâew nùeng khráp/khâ*\\nOne glass of water, please.\\n\\n*[After eating]*\\n\\n**คุณ:** เก็บเงินด้วยครับ/ค่ะ\\n*gèp ngəən dûuay khráp/khâ*\\nCheck please.\\n\\n**พนักงาน:** ค่ะ ทั้งหมด 80 บาทค่ะ\\n*khâ, tháng-mòt bpàet-sìp bàat khâ*\\nThat's 80 baht total.\\n\\n:::\\n\\n## Key Phrases\\n\\n| Thai | Romanization | Meaning |\\n|------|--------------|---------|\\n| ขอ...หนึ่งจาน | khǎaw...nùeng jaan | I'd like one plate of... |\\n| สั่งอะไรดี? | sàng à-rai dii? | What would you like to order? |\\n| ไม่เผ็ด | mâi phèt | not spicy |\\n| เผ็ดนิดหน่อย | phèt nít-nàwy | a little spicy |\\n| เผ็ดมาก | phèt mâak | very spicy |\\n| เก็บเงินด้วย | gèp ngəən dûuay | Check please |\\n| ทั้งหมด | tháng-mòt | total/altogether |\\n\\n## Spice Levels\\n\\n| Thai | Level |\\n|------|-------|\\n| ไม่เผ็ดเลย | Not spicy at all |\\n| เผ็ดนิดหน่อย | A little spicy |\\n| เผ็ดปกติ | Normal spicy |\\n| เผ็ดมาก | Very spicy |\\n\\n## Special Requests\\n\\n| Request | Thai |\\n|---------|------|\\n| No MSG | ไม่ใส่ผงชูรส (mâi sài phǒng-chuu-rót) |\\n| No peanuts | ไม่ใส่ถั่ว (mâi sài thùa) |\\n| No meat | ไม่ใส่เนื้อสัตว์ (mâi sài núea-sàt) |\\n| Vegetarian | มังสวิรัติ (mang-sà-wí-rát) or เจ (jay) |\\n\\n## Cultural Note\\n\\nIn Thai restaurants, you don't tip at street food stalls, but 10% is appreciated at nicer restaurants. \\\"เก็บเงิน\\\" (check please) is more common than asking for \\\"บิล\\\" (bill).\\n\\n## What's Next\\n\\nIn Lesson 3, you'll learn dialogues for shopping — bargaining, asking about products, and handling transactions at markets and stores.\\n\""],"names":["lesson02"],"mappings":"AAAA,MAAAA,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -14,11 +14,19 @@ metadata:
14
14
  estimatedTime: 25
15
15
  prerequisites:
16
16
  - thai-travel-lesson-01
17
- objectives:
18
- - "Give and understand basic directions"
19
- - "Ask where places are"
20
- - "Describe relative positions"
21
- - "Use distance vocabulary"
17
+ learningObjectives:
18
+ - id: obj-02a
19
+ description: "Give and understand basic directions"
20
+ skill: pattern-application
21
+ - id: obj-02b
22
+ description: "Ask where places are"
23
+ skill: pattern-recognition
24
+ - id: obj-02c
25
+ description: "Describe relative positions"
26
+ skill: word-production
27
+ - id: obj-02d
28
+ description: "Use distance vocabulary"
29
+ skill: word-recognition
22
30
  ---
23
31
 
24
32
  # บทที่ 2 (Lesson 2) — Directions
@@ -97,7 +105,7 @@ Knowing direction words transforms you from a lost tourist into a confident navi
97
105
 
98
106
  ## Practice Exercises
99
107
 
100
- :::exercise{id="travel-2-basic-directions" type="matching" title="Basic Direction Recognition"}
108
+ :::exercise{id="travel-2-basic-directions" type="matching" title="Basic Direction Recognition" skill="word-recognition" objectiveId="obj-02a"}
101
109
 
102
110
  **Question:** Match each direction to its Thai word
103
111
 
@@ -117,7 +125,7 @@ Knowing direction words transforms you from a lost tourist into a confident navi
117
125
 
118
126
  :::
119
127
 
120
- :::exercise{id="travel-2-distance" type="multiple-choice" title="Distance Vocabulary"}
128
+ :::exercise{id="travel-2-distance" type="multiple-choice" title="Distance Vocabulary" skill="word-recognition" objectiveId="obj-02d"}
121
129
 
122
130
  **Question:** What's the difference between ใกล้ and ไกล?
123
131
 
@@ -133,7 +141,7 @@ Knowing direction words transforms you from a lost tourist into a confident navi
133
141
 
134
142
  :::
135
143
 
136
- :::exercise{id="travel-2-asking-directions" type="fill-in-blank" title="Asking for Directions"}
144
+ :::exercise{id="travel-2-asking-directions" type="fill-in-blank" title="Asking for Directions" skill="pattern-application" objectiveId="obj-02b"}
137
145
 
138
146
  **Question:** How do you ask these questions?
139
147
 
@@ -158,4 +166,4 @@ In Lesson 3, you'll learn the names of key places you'll want to find.
158
166
  export {
159
167
  n as default
160
168
  };
161
- //# sourceMappingURL=lesson-02-C2ALLvoT.js.map
169
+ //# sourceMappingURL=lesson-02-BI1Vnwiz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-02-BI1Vnwiz.js","sources":["../src/syllabi/travel/lessons/lesson-02.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: thai-travel-lesson-02\\ntitle: \\\"บทที่ 2 — ทิศทาง\\\"\\ndescription: \\\"Directions: Navigate and give directions in Thai\\\"\\norder: 2\\nparentId: thai-vocab-travel\\ndifficulty: beginner\\ncefrLevel: A2\\ncategories:\\n - travel\\n - directions\\nmetadata:\\n estimatedTime: 25\\n prerequisites:\\n - thai-travel-lesson-01\\n learningObjectives:\\n - id: obj-02a\\n description: \\\"Give and understand basic directions\\\"\\n skill: pattern-application\\n - id: obj-02b\\n description: \\\"Ask where places are\\\"\\n skill: pattern-recognition\\n - id: obj-02c\\n description: \\\"Describe relative positions\\\"\\n skill: word-production\\n - id: obj-02d\\n description: \\\"Use distance vocabulary\\\"\\n skill: word-recognition\\n---\\n\\n# บทที่ 2 (Lesson 2) — Directions\\n\\n## Introduction\\n\\nKnowing direction words transforms you from a lost tourist into a confident navigator. These are some of the most useful words in daily Thai life.\\n\\n## Basic Directions\\n\\n:::vocabulary-set{id=\\\"thai-directions\\\" title=\\\"Direction Words\\\"}\\n\\n::vocab-item{id=\\\"sai\\\" word=\\\"ซ้าย\\\" pronunciation=\\\"sáai\\\" meaning=\\\"left\\\"}\\n\\n::vocab-item{id=\\\"kwaa\\\" word=\\\"ขวา\\\" pronunciation=\\\"khwǎa\\\" meaning=\\\"right\\\"}\\n\\n::vocab-item{id=\\\"trong-pai\\\" word=\\\"ตรงไป\\\" pronunciation=\\\"dtrong bpai\\\" meaning=\\\"straight ahead\\\"}\\n\\n::vocab-item{id=\\\"liaw\\\" word=\\\"เลี้ยว\\\" pronunciation=\\\"líao\\\" meaning=\\\"turn\\\"}\\n\\n::vocab-item{id=\\\"klap\\\" word=\\\"กลับ\\\" pronunciation=\\\"glàp\\\" meaning=\\\"turn around/go back\\\"}\\n\\n:::\\n\\n## Distance & Position\\n\\n:::vocabulary-set{id=\\\"thai-distance\\\" title=\\\"Distance & Position\\\"}\\n\\n::vocab-item{id=\\\"glai\\\" word=\\\"ใกล้\\\" pronunciation=\\\"glâi\\\" meaning=\\\"near/close\\\"}\\n\\n::vocab-item{id=\\\"klai\\\" word=\\\"ไกล\\\" pronunciation=\\\"glai\\\" meaning=\\\"far\\\"}\\n\\n::vocab-item{id=\\\"trong-khaam\\\" word=\\\"ตรงข้าม\\\" pronunciation=\\\"dtrong khâam\\\" meaning=\\\"opposite/across from\\\"}\\n\\n::vocab-item{id=\\\"khaang\\\" word=\\\"ข้าง\\\" pronunciation=\\\"khâang\\\" meaning=\\\"beside/next to\\\"}\\n\\n::vocab-item{id=\\\"rawang\\\" word=\\\"ระหว่าง\\\" pronunciation=\\\"rá-wàang\\\" meaning=\\\"between\\\"}\\n\\n:::\\n\\n## Direction Phrases\\n\\n| Thai | Meaning |\\n|------|---------|\\n| เลี้ยวซ้าย | Turn left |\\n| เลี้ยวขวา | Turn right |\\n| ตรงไปเรื่อยๆ | Keep going straight |\\n| อยู่ข้างซ้าย | It's on the left |\\n| อยู่ตรงข้าม | It's across from |\\n| ไกลไหม | Is it far? |\\n| ใกล้มาก | Very close |\\n\\n## Asking Directions\\n\\n| Question | Meaning |\\n|----------|---------|\\n| ...อยู่ที่ไหนครับ | Where is...? |\\n| ไปยังไงครับ | How do I get there? |\\n| เดินไปได้ไหม | Can I walk there? |\\n| ใช้เวลานานไหม | Does it take long? |\\n\\n## Sample Conversation\\n\\n**Finding a place:**\\n- คุณ: ขอโทษครับ วัดพระแก้วอยู่ที่ไหนครับ (Excuse me, where is Wat Phra Kaew?)\\n- คนไทย: ตรงไปแล้วเลี้ยวซ้ายครับ ใกล้ๆ นี่เอง (Go straight then turn left. It's nearby)\\n- คุณ: ไกลไหมครับ (Is it far?)\\n- คนไทย: ไม่ไกลครับ เดินห้านาที (Not far. Five minutes walking)\\n\\n## Key Points\\n\\n1. **เลี้ยว + direction**: \\\"Turn\\\" + left/right\\n2. **ใกล้ vs ไกล**: Near vs far (tones matter!)\\n3. **อยู่ที่ไหน**: Essential question for finding anything\\n4. **ตรงข้าม**: Use with landmarks (ตรงข้ามเซเว่น = opposite 7-Eleven)\\n\\n## Practice Exercises\\n\\n:::exercise{id=\\\"travel-2-basic-directions\\\" type=\\\"matching\\\" title=\\\"Basic Direction Recognition\\\" skill=\\\"word-recognition\\\" objectiveId=\\\"obj-02a\\\"}\\n\\n**Question:** Match each direction to its Thai word\\n\\n- Left\\n- Right\\n- Straight ahead\\n- Turn around\\n\\n**Answer:**\\n\\n- Left → ซ้าย\\n- Right → ขวา\\n- Straight ahead → ตรงไป\\n- Turn around → กลับ\\n\\n**Explanation:** These are the four basic directions. Remember: ซ้าย (left) and ขวา (right) have different tones - ซ้าย is falling, ขวา is rising. This matters for understanding!\\n\\n:::\\n\\n:::exercise{id=\\\"travel-2-distance\\\" type=\\\"multiple-choice\\\" title=\\\"Distance Vocabulary\\\" skill=\\\"word-recognition\\\" objectiveId=\\\"obj-02d\\\"}\\n\\n**Question:** What's the difference between ใกล้ and ไกล?\\n\\n**Options:**\\n- ใกล้ means \\\"near\\\", ไกล means \\\"far\\\" - different tones\\n- They mean the same thing\\n- ใกล้ means \\\"far\\\", ไกล means \\\"near\\\"\\n- They're different words for the same concept\\n\\n**Answer:** 1\\n\\n**Explanation:** ใกล้ (glâi - falling tone) means \\\"near/close\\\", while ไกล (glai - mid tone) means \\\"far\\\". The tones are different, so listen carefully! This is a common confusion for learners.\\n\\n:::\\n\\n:::exercise{id=\\\"travel-2-asking-directions\\\" type=\\\"fill-in-blank\\\" title=\\\"Asking for Directions\\\" skill=\\\"pattern-application\\\" objectiveId=\\\"obj-02b\\\"}\\n\\n**Question:** How do you ask these questions?\\n\\n- Where is the bathroom?\\n- How do I get there?\\n- Can I walk there?\\n\\n**Answer:**\\n\\n- ห้องน้ำอยู่ที่ไหนครับ/คะ (Where is the bathroom?)\\n- ไปยังไงครับ/คะ (How do I get there?)\\n- เดินไปได้ไหมครับ/คะ (Can I walk there?)\\n\\n**Explanation:** ...อยู่ที่ไหน is the standard \\\"where is...\\\" pattern. ไปยังไง means \\\"how to go\\\". เดินไปได้ไหม asks about walking ability. Always add polite particles!\\n\\n:::\\n\\n## What's Next\\n\\nIn Lesson 3, you'll learn the names of key places you'll want to find.\\n\""],"names":["lesson02"],"mappings":"AAAA,MAAAA,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -15,11 +15,23 @@ metadata:
15
15
  estimatedTime: 35
16
16
  prerequisites:
17
17
  - thai-vowels-lesson-01
18
- objectives:
19
- - "Recognize vowels written before consonants"
20
- - "Recognize vowels written after consonants"
21
- - "Understand 'write left, read right' principle"
22
- - "Master the short 'a' vowel forms"
18
+ learningObjectives:
19
+ - id: obj-recognize-before-vowels
20
+ description: "Recognize vowels written before consonants"
21
+ skill: character-recognition
22
+ references: [vowel-e, vowel-ae, vowel-o, vowel-oe]
23
+ - id: obj-recognize-after-vowels
24
+ description: "Recognize vowels written after consonants"
25
+ skill: character-recognition
26
+ references: [vowel-a, vowel-ao]
27
+ - id: obj-write-left-read-right
28
+ description: "Understand 'write left, read right' principle"
29
+ skill: vowel-positioning
30
+ references: [vowel-e, vowel-ae, vowel-o, vowel-oe, vowel-ao]
31
+ - id: obj-short-a-vowel-forms
32
+ description: "Master the short 'a' vowel forms"
33
+ skill: character-sound-mapping
34
+ references: [vowel-a, vowel-e, vowel-ae, vowel-o]
23
35
  ---
24
36
 
25
37
  # บทที่ 2 (Lesson 2) — Short Vowels II
@@ -34,7 +46,7 @@ The vowel **ะ** (sara a) is special — it creates a short "a" sound followed
34
46
 
35
47
  :::character-set{id="thai-short-vowel-a" title="Short 'a' Vowel"}
36
48
 
37
- ::character{id="th-vowel-a" char="ะ" name="สระอะ (sara a)" nativeName="สระอะ" transliteration="a" charType="vowel"}
49
+ ::character{id="vowel-a" canonicalRef="vowel-a" char="ะ" name="สระอะ (sara a)" nativeName="สระอะ" transliteration="a" charType="vowel"}
38
50
 
39
51
  :::
40
52
 
@@ -44,13 +56,13 @@ These vowels are written **before** the consonant but pronounced **after** it:
44
56
 
45
57
  :::character-set{id="thai-leading-short-vowels" title="Leading Short Vowels"}
46
58
 
47
- ::character{id="th-vowel-e" char="เ-ะ" name="สระเอะ (sara e)" nativeName="สระเอะ" transliteration="e" charType="vowel"}
59
+ ::character{id="vowel-e" canonicalRef="vowel-e" char="เ-ะ" name="สระเอะ (sara e)" nativeName="สระเอะ" transliteration="e" charType="vowel"}
48
60
 
49
- ::character{id="th-vowel-ae" char="แ-ะ" name="สระแอะ (sara ae)" nativeName="สระแอะ" transliteration="ae" charType="vowel"}
61
+ ::character{id="vowel-ae" canonicalRef="vowel-ae" char="แ-ะ" name="สระแอะ (sara ae)" nativeName="สระแอะ" transliteration="ae" charType="vowel"}
50
62
 
51
- ::character{id="th-vowel-o" char="โ-ะ" name="สระโอะ (sara o)" nativeName="สระโอะ" transliteration="o" charType="vowel"}
63
+ ::character{id="vowel-o" canonicalRef="vowel-o" char="โ-ะ" name="สระโอะ (sara o)" nativeName="สระโอะ" transliteration="o" charType="vowel"}
52
64
 
53
- ::character{id="th-vowel-oe" char="เ-อะ" name="สระเออะ (sara oe)" nativeName="สระเออะ" transliteration="oe" charType="vowel"}
65
+ ::character{id="vowel-oe" canonicalRef="vowel-oe" char="เ-อะ" name="สระเออะ (sara oe)" nativeName="สระเออะ" transliteration="oe" charType="vowel"}
54
66
 
55
67
  :::
56
68
 
@@ -60,7 +72,7 @@ This vowel "wraps around" the consonant:
60
72
 
61
73
  :::character-set{id="thai-wraparound-vowel" title="Wrap-Around Vowel"}
62
74
 
63
- ::character{id="th-vowel-ao" char="เ-า" name="สระเอา (sara ao)" nativeName="สระเอา" transliteration="ao" charType="vowel"}
75
+ ::character{id="vowel-ao" canonicalRef="vowel-ao" char="เ-า" name="สระเอา (sara ao)" nativeName="สระเอา" transliteration="ao" charType="vowel"}
64
76
 
65
77
  :::
66
78
 
@@ -104,7 +116,7 @@ Try reading these common words:
104
116
 
105
117
  ## Practice Exercises
106
118
 
107
- :::exercise{id="short-vowels-2-direction" type="multiple-choice" title="Write Left, Read Right"}
119
+ :::exercise{id="short-vowels-2-direction" type="multiple-choice" title="Write Left, Read Right" skill="vowel-positioning" tests="vowel-e,vowel-ae,vowel-o" objectiveId="obj-write-left-read-right"}
108
120
 
109
121
  **Question:** When you see เก (written as เ + ก), how do you read it?
110
122
 
@@ -120,7 +132,7 @@ Try reading these common words:
120
132
 
121
133
  :::
122
134
 
123
- :::exercise{id="short-vowels-2-recognition" type="matching" title="Short Vowel Recognition"}
135
+ :::exercise{id="short-vowels-2-recognition" type="matching" title="Short Vowel Recognition" skill="character-sound-mapping" tests="vowel-e,vowel-ae,vowel-o,vowel-ao" objectiveId="obj-short-a-vowel-forms"}
124
136
 
125
137
  **Question:** Match each written form to its pronunciation
126
138
 
@@ -140,7 +152,7 @@ Try reading these common words:
140
152
 
141
153
  :::
142
154
 
143
- :::exercise{id="short-vowels-2-pairs" type="fill-in-blank" title="Short vs Long Pairs"}
155
+ :::exercise{id="short-vowels-2-pairs" type="fill-in-blank" title="Short vs Long Pairs" skill="character-sound-mapping" tests="vowel-a,vowel-e,vowel-ae" objectiveId="obj-short-a-vowel-forms"}
144
156
 
145
157
  **Question:** What makes a vowel short vs long in these pairs?
146
158
 
@@ -165,4 +177,4 @@ In Lesson 3, you'll learn the **long vowels** — extended sounds that are cruci
165
177
  export {
166
178
  e as default
167
179
  };
168
- //# sourceMappingURL=lesson-02-BGnp0Ik_.js.map
180
+ //# sourceMappingURL=lesson-02-BXbwEMaL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-02-BXbwEMaL.js","sources":["../src/syllabi/vowels-tones/lessons/lesson-02.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: thai-vowels-lesson-02\\ntitle: \\\"บทที่ 2 — สระเสียงสั้น II\\\"\\ndescription: \\\"Short Vowels Part 2: Before, after, and around consonants\\\"\\norder: 2\\nparentId: thai-vowels-tones\\ndifficulty: beginner\\ncefrLevel: A1\\ncategories:\\n - vowels\\n - short-vowels\\n - basic-vowels\\nmetadata:\\n estimatedTime: 35\\n prerequisites:\\n - thai-vowels-lesson-01\\n learningObjectives:\\n - id: obj-recognize-before-vowels\\n description: \\\"Recognize vowels written before consonants\\\"\\n skill: character-recognition\\n references: [vowel-e, vowel-ae, vowel-o, vowel-oe]\\n - id: obj-recognize-after-vowels\\n description: \\\"Recognize vowels written after consonants\\\"\\n skill: character-recognition\\n references: [vowel-a, vowel-ao]\\n - id: obj-write-left-read-right\\n description: \\\"Understand 'write left, read right' principle\\\"\\n skill: vowel-positioning\\n references: [vowel-e, vowel-ae, vowel-o, vowel-oe, vowel-ao]\\n - id: obj-short-a-vowel-forms\\n description: \\\"Master the short 'a' vowel forms\\\"\\n skill: character-sound-mapping\\n references: [vowel-a, vowel-e, vowel-ae, vowel-o]\\n---\\n\\n# บทที่ 2 (Lesson 2) — Short Vowels II\\n\\n## Introduction\\n\\nIn this lesson, you'll encounter Thai's most unique vowel feature: vowels that appear **before** the consonant in writing but are pronounced **after** it. This \\\"write left, read right\\\" pattern is essential for reading Thai fluently.\\n\\n## The Glottal Stop Vowel: ะ\\n\\nThe vowel **ะ** (sara a) is special — it creates a short \\\"a\\\" sound followed by a **glottal stop** (a brief catch in the throat, like the pause in \\\"uh-oh\\\").\\n\\n:::character-set{id=\\\"thai-short-vowel-a\\\" title=\\\"Short 'a' Vowel\\\"}\\n\\n::character{id=\\\"vowel-a\\\" canonicalRef=\\\"vowel-a\\\" char=\\\"ะ\\\" name=\\\"สระอะ (sara a)\\\" nativeName=\\\"สระอะ\\\" transliteration=\\\"a\\\" charType=\\\"vowel\\\"}\\n\\n:::\\n\\n## Leading Vowels: Write First, Pronounce After\\n\\nThese vowels are written **before** the consonant but pronounced **after** it:\\n\\n:::character-set{id=\\\"thai-leading-short-vowels\\\" title=\\\"Leading Short Vowels\\\"}\\n\\n::character{id=\\\"vowel-e\\\" canonicalRef=\\\"vowel-e\\\" char=\\\"เ-ะ\\\" name=\\\"สระเอะ (sara e)\\\" nativeName=\\\"สระเอะ\\\" transliteration=\\\"e\\\" charType=\\\"vowel\\\"}\\n\\n::character{id=\\\"vowel-ae\\\" canonicalRef=\\\"vowel-ae\\\" char=\\\"แ-ะ\\\" name=\\\"สระแอะ (sara ae)\\\" nativeName=\\\"สระแอะ\\\" transliteration=\\\"ae\\\" charType=\\\"vowel\\\"}\\n\\n::character{id=\\\"vowel-o\\\" canonicalRef=\\\"vowel-o\\\" char=\\\"โ-ะ\\\" name=\\\"สระโอะ (sara o)\\\" nativeName=\\\"สระโอะ\\\" transliteration=\\\"o\\\" charType=\\\"vowel\\\"}\\n\\n::character{id=\\\"vowel-oe\\\" canonicalRef=\\\"vowel-oe\\\" char=\\\"เ-อะ\\\" name=\\\"สระเออะ (sara oe)\\\" nativeName=\\\"สระเออะ\\\" transliteration=\\\"oe\\\" charType=\\\"vowel\\\"}\\n\\n:::\\n\\n## The Wrap-Around Vowel: เ-า\\n\\nThis vowel \\\"wraps around\\\" the consonant:\\n\\n:::character-set{id=\\\"thai-wraparound-vowel\\\" title=\\\"Wrap-Around Vowel\\\"}\\n\\n::character{id=\\\"vowel-ao\\\" canonicalRef=\\\"vowel-ao\\\" char=\\\"เ-า\\\" name=\\\"สระเอา (sara ao)\\\" nativeName=\\\"สระเอา\\\" transliteration=\\\"ao\\\" charType=\\\"vowel\\\"}\\n\\n:::\\n\\n## Understanding \\\"Write Left, Read Right\\\"\\n\\nIn Thai, when you see: **เ** + ก → **เก**\\n\\nYou **write** เ first (to the left), but you **read** it as \\\"gee\\\" — the consonant ก comes first in pronunciation.\\n\\n| Written Form | How to Read | Pronunciation |\\n|--------------|-------------|---------------|\\n| เกะ | ก + เ-ะ | ge (short) |\\n| แกะ | ก + แ-ะ | gae (short) |\\n| โกะ | ก + โ-ะ | go (short) |\\n| เกา | ก + เ-า | gao |\\n\\n## Short Vowel Pairs\\n\\nEach short vowel has a long counterpart:\\n\\n| Short | Long | Sound Comparison |\\n|-------|------|------------------|\\n| ะ (a) | า (aa) | \\\"cut\\\" vs \\\"car\\\" |\\n| เ-ะ (e) | เ (ee) | \\\"pet\\\" vs \\\"pay\\\" |\\n| แ-ะ (ae) | แ (aae) | \\\"bat\\\" vs \\\"bad\\\" (longer) |\\n| โ-ะ (o) | โ (oo) | \\\"pot\\\" vs \\\"boat\\\" |\\n\\n## Key Points\\n\\n1. **Write left, read right**: Leading vowels are written first but pronounced after the consonant\\n2. **ะ marks shortness**: When you see ะ at the end, the vowel is short\\n3. **Glottal stop**: Short vowels often end with a brief throat catch\\n4. **Two-part vowels**: Some vowels wrap around the consonant (เ-า)\\n\\n## Common Words Practice\\n\\nTry reading these common words:\\n- เตะ (dte) — to kick\\n- แมะ (mae) — informal \\\"mom\\\" (some dialects)\\n- เกา (gao) — to scratch\\n\\n## Practice Exercises\\n\\n:::exercise{id=\\\"short-vowels-2-direction\\\" type=\\\"multiple-choice\\\" title=\\\"Write Left, Read Right\\\" skill=\\\"vowel-positioning\\\" tests=\\\"vowel-e,vowel-ae,vowel-o\\\" objectiveId=\\\"obj-write-left-read-right\\\"}\\n\\n**Question:** When you see เก (written as เ + ก), how do you read it?\\n\\n**Options:**\\n- Read เ first, then ก (like \\\"ay-gor\\\")\\n- Read ก first, then เ (like \\\"gor-ay\\\")\\n- Read them simultaneously\\n- It depends on the word\\n\\n**Answer:** 2\\n\\n**Explanation:** Leading vowels follow the \\\"write left, read right\\\" principle. เ is written first (to the left), but you read ก first, then the vowel sound. เก is pronounced \\\"gee\\\" (ก + เ).\\n\\n:::\\n\\n:::exercise{id=\\\"short-vowels-2-recognition\\\" type=\\\"matching\\\" title=\\\"Short Vowel Recognition\\\" skill=\\\"character-sound-mapping\\\" tests=\\\"vowel-e,vowel-ae,vowel-o,vowel-ao\\\" objectiveId=\\\"obj-short-a-vowel-forms\\\"}\\n\\n**Question:** Match each written form to its pronunciation\\n\\n- เกะ (ก + เ-ะ)\\n- แกะ (ก + แ-ะ)\\n- โกะ (ก + โ-ะ)\\n- เกา (ก + เ-า)\\n\\n**Answer:**\\n\\n- เกะ → ge (short e)\\n- แกะ → gae (short ae)\\n- โกะ → go (short o)\\n- เกา → gao (ao sound)\\n\\n**Explanation:** Short vowels are marked with ะ at the end. The wrap-around vowel เ-า creates the \\\"ao\\\" sound. Remember to read the consonant first, then the vowel.\\n\\n:::\\n\\n:::exercise{id=\\\"short-vowels-2-pairs\\\" type=\\\"fill-in-blank\\\" title=\\\"Short vs Long Pairs\\\" skill=\\\"character-sound-mapping\\\" tests=\\\"vowel-a,vowel-e,vowel-ae\\\" objectiveId=\\\"obj-short-a-vowel-forms\\\"}\\n\\n**Question:** What makes a vowel short vs long in these pairs?\\n\\n- ะ vs า\\n- เ-ะ vs เ\\n- แ-ะ vs แ\\n\\n**Answer:**\\n\\n- ะ is short, า is long (the ะ marks shortness)\\n- เ-ะ is short, เ is long (absence of ะ = long)\\n- แ-ะ is short, แ is long (same pattern)\\n\\n**Explanation:** The ะ mark indicates a short vowel. When ะ is absent, the vowel is long. This is a consistent pattern across Thai vowels.\\n\\n:::\\n\\n## What's Next\\n\\nIn Lesson 3, you'll learn the **long vowels** — extended sounds that are crucial for proper pronunciation and affect how tones work.\\n\""],"names":["lesson02"],"mappings":"AAAA,MAAAA,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -17,11 +17,21 @@ metadata:
17
17
  estimatedTime: 25
18
18
  prerequisites:
19
19
  - thai-script-lesson-01
20
- objectives:
21
- - "Complete your knowledge of middle-class consonants"
22
- - "Understand nasals and approximants"
23
- - "Learn the special role of อ as a silent consonant"
24
- - "Practice reading simple syllables"
20
+ learningObjectives:
21
+ - id: obj-complete-mid
22
+ description: "Complete your knowledge of middle-class consonants"
23
+ skill: character-recognition
24
+ references: [horse, ogre, boat, monkey, bowl]
25
+ - id: obj-nasal-approx
26
+ description: "Understand nasals and approximants"
27
+ skill: character-sound-mapping
28
+ - id: obj-silent-consonant
29
+ description: "Learn the special role of อ as a silent consonant"
30
+ skill: character-sound-mapping
31
+ references: [bowl]
32
+ - id: obj-syllable-reading
33
+ description: "Practice reading simple syllables"
34
+ skill: character-sound-mapping
25
35
  ---
26
36
 
27
37
  # บทที่ 2 (Lesson 2) — Middle-Class Consonants II
@@ -44,15 +54,15 @@ This affects their behavior in final position — they don't become unreleased s
44
54
 
45
55
  :::character-set{id="thai-middle-consonants-2" title="Middle-Class Consonants II"}
46
56
 
47
- ::character{id="th-horse" char="ม" name="ม ม้า (mɔɔ máa)" nativeName="ม ม้า" transliteration="m" charType="consonant"}
57
+ ::character{id="horse" canonicalRef="horse" data:class="low" char="ม" name="ม ม้า (mɔɔ máa)" nativeName="ม ม้า" transliteration="m" charType="consonant"}
48
58
 
49
- ::character{id="th-ogre" char="ย" name="ย ยักษ์ (yɔɔ yák)" nativeName="ย ยักษ์" transliteration="y" charType="consonant"}
59
+ ::character{id="ogre" canonicalRef="ogre" data:class="low" char="ย" name="ย ยักษ์ (yɔɔ yák)" nativeName="ย ยักษ์" transliteration="y" charType="consonant"}
50
60
 
51
- ::character{id="th-boat" char="ร" name="ร เรือ (rɔɔ rʉa)" nativeName="ร เรือ" transliteration="r/n" charType="consonant"}
61
+ ::character{id="boat" canonicalRef="boat" data:class="low" char="ร" name="ร เรือ (rɔɔ rʉa)" nativeName="ร เรือ" transliteration="r/n" charType="consonant"}
52
62
 
53
- ::character{id="th-monkey" char="ล" name="ล ลิง (lɔɔ ling)" nativeName="ล ลิง" transliteration="l/n" charType="consonant"}
63
+ ::character{id="monkey" canonicalRef="monkey" data:class="low" char="ล" name="ล ลิง (lɔɔ ling)" nativeName="ล ลิง" transliteration="l/n" charType="consonant"}
54
64
 
55
- ::character{id="th-bowl" char="อ" name="อ อ่าง (ɔɔ àang)" nativeName="อ อ่าง" transliteration="-/vowel" charType="consonant"}
65
+ ::character{id="bowl" canonicalRef="bowl" data:class="middle" char="อ" name="อ อ่าง (ɔɔ àang)" nativeName="อ อ่าง" transliteration="-/vowel" charType="consonant"}
56
66
 
57
67
  :::
58
68
 
@@ -131,7 +141,7 @@ This will make more sense after you learn vowels and tone marks!
131
141
 
132
142
  ## Practice Exercises
133
143
 
134
- :::exercise{id="middle-2-final-sounds" type="matching" title="Final Position Sounds"}
144
+ :::exercise{id="middle-2-final-sounds" type="matching" title="Final Position Sounds" skill="character-sound-mapping" tests="boat,monkey,ogre,horse" objectiveId="obj-nasal-approx"}
135
145
 
136
146
  **Question:** Match each consonant to its final position sound
137
147
 
@@ -151,7 +161,7 @@ This will make more sense after you learn vowels and tone marks!
151
161
 
152
162
  :::
153
163
 
154
- :::exercise{id="middle-2-special-case" type="multiple-choice" title="The Special อ Consonant"}
164
+ :::exercise{id="middle-2-special-case" type="multiple-choice" title="The Special อ Consonant" skill="character-sound-mapping" tests="bowl" objectiveId="obj-silent-consonant"}
155
165
 
156
166
  **Question:** What makes อ (bowl) special?
157
167
 
@@ -167,7 +177,7 @@ This will make more sense after you learn vowels and tone marks!
167
177
 
168
178
  :::
169
179
 
170
- :::exercise{id="middle-2-complete-set" type="fill-in-blank" title="Complete Middle-Class Set"}
180
+ :::exercise{id="middle-2-complete-set" type="fill-in-blank" title="Complete Middle-Class Set" skill="character-recognition" objectiveId="obj-complete-mid"}
171
181
 
172
182
  **Question:** How many middle-class consonants are there, and what are they?
173
183
 
@@ -188,4 +198,4 @@ In Lesson 3, you'll start learning **high-class consonants** — these create ri
188
198
  export {
189
199
  n as default
190
200
  };
191
- //# sourceMappingURL=lesson-02-BAbq-QGP.js.map
201
+ //# sourceMappingURL=lesson-02-CbJJ5Amt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-02-CbJJ5Amt.js","sources":["../src/syllabi/alphabet/lessons/lesson-02.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: thai-script-lesson-02\\ntitle: \\\"บทที่ 2 — พยัญชนะกลาง II\\\"\\ndescription: \\\"Middle-Class Consonants Part 2: ม ย ร ล อ — Nasals, liquids, and the silent consonant\\\"\\norder: 2\\nparentId: thai-script-alphabet\\ndifficulty: beginner\\ncefrLevel: A1\\ncategories:\\n - consonants\\n - middle-class\\n - nasal\\n - approximant\\n - basic-characters\\nmetadata:\\n estimatedTime: 25\\n prerequisites:\\n - thai-script-lesson-01\\n learningObjectives:\\n - id: obj-complete-mid\\n description: \\\"Complete your knowledge of middle-class consonants\\\"\\n skill: character-recognition\\n references: [horse, ogre, boat, monkey, bowl]\\n - id: obj-nasal-approx\\n description: \\\"Understand nasals and approximants\\\"\\n skill: character-sound-mapping\\n - id: obj-silent-consonant\\n description: \\\"Learn the special role of อ as a silent consonant\\\"\\n skill: character-sound-mapping\\n references: [bowl]\\n - id: obj-syllable-reading\\n description: \\\"Practice reading simple syllables\\\"\\n skill: character-sound-mapping\\n---\\n\\n# บทที่ 2 (Lesson 2) — Middle-Class Consonants II\\n\\n## Introduction\\n\\nIn this lesson, you'll complete the middle-class consonants with 5 more characters. These include **nasals** (ม), **liquids** (ร ล), **approximants** (ย ว), and the unique **silent consonant** (อ).\\n\\n## Why These Are Different\\n\\nThe consonants in Lesson 1 were all **stops** — sounds made by completely blocking airflow then releasing. Today's consonants are different:\\n\\n- **Nasals** (ม): Air flows through the nose\\n- **Liquids** (ร ล): Air flows around the tongue\\n- **Approximants** (ย): Tongue approaches but doesn't touch\\n\\nThis affects their behavior in final position — they don't become unreleased stops like the Lesson 1 consonants.\\n\\n## Characters\\n\\n:::character-set{id=\\\"thai-middle-consonants-2\\\" title=\\\"Middle-Class Consonants II\\\"}\\n\\n::character{id=\\\"horse\\\" canonicalRef=\\\"horse\\\" data:class=\\\"low\\\" char=\\\"ม\\\" name=\\\"ม ม้า (mɔɔ máa)\\\" nativeName=\\\"ม ม้า\\\" transliteration=\\\"m\\\" charType=\\\"consonant\\\"}\\n\\n::character{id=\\\"ogre\\\" canonicalRef=\\\"ogre\\\" data:class=\\\"low\\\" char=\\\"ย\\\" name=\\\"ย ยักษ์ (yɔɔ yák)\\\" nativeName=\\\"ย ยักษ์\\\" transliteration=\\\"y\\\" charType=\\\"consonant\\\"}\\n\\n::character{id=\\\"boat\\\" canonicalRef=\\\"boat\\\" data:class=\\\"low\\\" char=\\\"ร\\\" name=\\\"ร เรือ (rɔɔ rʉa)\\\" nativeName=\\\"ร เรือ\\\" transliteration=\\\"r/n\\\" charType=\\\"consonant\\\"}\\n\\n::character{id=\\\"monkey\\\" canonicalRef=\\\"monkey\\\" data:class=\\\"low\\\" char=\\\"ล\\\" name=\\\"ล ลิง (lɔɔ ling)\\\" nativeName=\\\"ล ลิง\\\" transliteration=\\\"l/n\\\" charType=\\\"consonant\\\"}\\n\\n::character{id=\\\"bowl\\\" canonicalRef=\\\"bowl\\\" data:class=\\\"middle\\\" char=\\\"อ\\\" name=\\\"อ อ่าง (ɔɔ àang)\\\" nativeName=\\\"อ อ่าง\\\" transliteration=\\\"-/vowel\\\" charType=\\\"consonant\\\"}\\n\\n:::\\n\\n## The Special Case: อ (Ɔɔ Àang)\\n\\n**อ** is the most unusual Thai consonant. It has **two completely different roles**:\\n\\n### As Initial Consonant\\nWhen starting a syllable that begins with a vowel sound, อ serves as a **silent placeholder**:\\n- อา (aa) — the อ is silent, you just hear \\\"aa\\\"\\n- Without อ, there would be no consonant to \\\"carry\\\" the vowel\\n\\n### As Vowel Component\\nIn certain vowel combinations, อ represents the sound /ɔɔ/:\\n- เมือง (mʉang) — the อ makes the /ɔ/ sound\\n\\nThis dual nature makes อ essential despite being \\\"silent\\\" in many words.\\n\\n## Sound Changes for Nasals and Liquids\\n\\nUnlike the stop consonants from Lesson 1, these consonants keep their basic sound quality in final position:\\n\\n| Consonant | Initial Sound | Final Sound | Example |\\n|-----------|---------------|-------------|---------|\\n| ม | **m** | **m** | มา (maa) / ลม (lom) |\\n| ย | **y** | **i** (as vowel) | ยา (yaa) / สาย (sǎai) |\\n| ร | **r** (rolled) | **n** | รัก (rák) / ตอร์ (dton) |\\n| ล | **l** | **n** | ลา (laa) / กล (gon) |\\n\\n**Important**: Both ร and ล become /n/ in final position. This surprises many learners!\\n\\n## The Thai R Sound\\n\\nThai **ร** is a rolled or flapped R, similar to Spanish. In casual speech, many Thai speakers substitute **ล** for **ร** (so \\\"ร เรือ\\\" sounds like \\\"ล เลือ\\\"). This is very common but considered informal.\\n\\nIn careful speech:\\n- **ร** = alveolar trill or flap (tongue tip vibrates)\\n- **ล** = lateral (air flows around tongue sides)\\n\\n## Middle-Class Complete\\n\\nYou've now learned all 9 middle-class consonants! Here's the complete set:\\n\\n| Stop Consonants | Nasals/Liquids |\\n|-----------------|----------------|\\n| ก จ ด ต ป บ | ม ย ร ล อ |\\n\\nWhy only 9 middle-class versus 24 low-class? Historical sound shifts moved many consonants to the low class over time. The remaining middle-class consonants are the \\\"original\\\" unvoiced stops plus sonorants.\\n\\n## Tone Behavior of Middle Class\\n\\nWith no tone mark, middle-class consonants produce:\\n- **Live syllable** (open or nasal ending): **Mid tone**\\n- **Dead syllable** (stop ending, short vowel): **Low tone**\\n\\nExamples:\\n- กา (gaa) — live, mid tone\\n- กับ (gàp) — dead, low tone\\n\\nThis will make more sense after you learn vowels and tone marks!\\n\\n## Key Points\\n\\n1. **ม** is a nasal — air through nose, same sound initial and final\\n2. **ย** becomes a vowel sound (/i/) in final position\\n3. **ร and ล** both become /n/ at syllable end\\n4. **อ** is the \\\"silent\\\" consonant for vowel-initial words\\n5. **All 9 middle-class** consonants share the same tone rules\\n\\n## Practice Tip: Shape Recognition\\n\\n- **ม** looks like a \\\"3\\\" with a tail\\n- **ย** has a distinctive curving shape\\n- **ร and ล** can be confusing — ร has the loop on top, ล doesn't\\n- **อ** looks like a circle with a tail\\n\\n## Practice Exercises\\n\\n:::exercise{id=\\\"middle-2-final-sounds\\\" type=\\\"matching\\\" title=\\\"Final Position Sounds\\\" skill=\\\"character-sound-mapping\\\" tests=\\\"boat,monkey,ogre,horse\\\" objectiveId=\\\"obj-nasal-approx\\\"}\\n\\n**Question:** Match each consonant to its final position sound\\n\\n- ร (boat)\\n- ล (monkey)\\n- ย (ogre)\\n- ม (horse)\\n\\n**Answer:**\\n\\n- ร → /n/ (becomes N in final position)\\n- ล → /n/ (becomes N in final position)\\n- ย → /i/ (becomes vowel-like sound)\\n- ม → /m/ (stays M in final position)\\n\\n**Explanation:** Unlike stop consonants, these sonorants maintain or transform their sound. Both ร and ล become /n/ finally, which surprises many learners. ย becomes vowel-like, and ม stays the same.\\n\\n:::\\n\\n:::exercise{id=\\\"middle-2-special-case\\\" type=\\\"multiple-choice\\\" title=\\\"The Special อ Consonant\\\" skill=\\\"character-sound-mapping\\\" tests=\\\"bowl\\\" objectiveId=\\\"obj-silent-consonant\\\"}\\n\\n**Question:** What makes อ (bowl) special?\\n\\n**Options:**\\n- It's the only vowel\\n- It serves as both silent consonant carrier and vowel component\\n- It's never used\\n- It's always pronounced\\n\\n**Answer:** 2\\n\\n**Explanation:** อ has dual functions: (1) as a silent placeholder for vowel-initial syllables (อา = \\\"aa\\\"), and (2) as a vowel component representing /ɔɔ/ in certain combinations. This makes it unique among Thai consonants.\\n\\n:::\\n\\n:::exercise{id=\\\"middle-2-complete-set\\\" type=\\\"fill-in-blank\\\" title=\\\"Complete Middle-Class Set\\\" skill=\\\"character-recognition\\\" objectiveId=\\\"obj-complete-mid\\\"}\\n\\n**Question:** How many middle-class consonants are there, and what are they?\\n\\n**Answer:**\\n\\nThere are **9 middle-class consonants** total:\\n- Stop consonants: ก จ ด ต ป บ\\n- Nasals/Liquids: ม ย ร ล อ\\n\\n**Explanation:** Middle-class is the smallest group (9 consonants) compared to high-class (11) and low-class (24). They're called \\\"middle\\\" because they produce mid tones in basic patterns, forming the baseline for the tone system.\\n\\n:::\\n\\n## What's Next\\n\\nIn Lesson 3, you'll start learning **high-class consonants** — these create rising tones and are the \\\"aspirated\\\" (breathy) versions of sounds you already know.\\n\""],"names":["lesson02"],"mappings":"AAAA,MAAAA,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -15,11 +15,23 @@ metadata:
15
15
  estimatedTime: 25
16
16
  prerequisites:
17
17
  - thai-numbers-lesson-01
18
- objectives:
19
- - "Count from 1 to 100 fluently"
20
- - "Understand the special rule for 11-19"
21
- - "Know why 20 uses ยี่ instead of สอง"
22
- - "Form any two-digit number correctly"
18
+ learningObjectives:
19
+ - id: obj-count-1-100
20
+ description: "Count from 1 to 100 fluently"
21
+ skill: word-pronunciation
22
+ references: [num-one, num-two, num-three, num-four, num-five, num-six, num-seven, num-eight, num-nine]
23
+ - id: obj-special-rule-teens
24
+ description: "Understand the special rule for 11-19"
25
+ skill: word-production
26
+ references: [num-one]
27
+ - id: obj-twenty-rule
28
+ description: "Know why 20 uses ยี่ instead of สอง"
29
+ skill: word-production
30
+ references: [num-two]
31
+ - id: obj-two-digit-numbers
32
+ description: "Form any two-digit number correctly"
33
+ skill: word-production
34
+ references: [num-one, num-two, num-three, num-four, num-five, num-six, num-seven, num-eight, num-nine]
23
35
  ---
24
36
 
25
37
  # บทที่ 2 (Lesson 2) — Counting 1-100
@@ -125,7 +137,7 @@ Try saying these out loud:
125
137
 
126
138
  ## Practice Exercises
127
139
 
128
- :::exercise{id="numbers-2-special-rules" type="fill-in-blank" title="Special Rules Practice"}
140
+ :::exercise{id="numbers-2-special-rules" type="fill-in-blank" title="Special Rules Practice" skill="word-production" tests="num-one,num-two" objectiveId="obj-special-rule-teens"}
129
141
 
130
142
  **Question:** Write these numbers in Thai:
131
143
 
@@ -145,7 +157,7 @@ Try saying these out loud:
145
157
 
146
158
  :::
147
159
 
148
- :::exercise{id="numbers-2-building-numbers" type="matching" title="Building Two-Digit Numbers"}
160
+ :::exercise{id="numbers-2-building-numbers" type="matching" title="Building Two-Digit Numbers" skill="word-recognition" objectiveId="obj-two-digit-numbers"}
149
161
 
150
162
  **Question:** Match each number to its Thai form
151
163
 
@@ -165,7 +177,7 @@ Try saying these out loud:
165
177
 
166
178
  :::
167
179
 
168
- :::exercise{id="numbers-2-common-mistakes" type="multiple-choice" title="Common Mistakes"}
180
+ :::exercise{id="numbers-2-common-mistakes" type="multiple-choice" title="Common Mistakes" skill="word-pronunciation" tests="num-one,num-two" objectiveId="obj-twenty-rule"}
169
181
 
170
182
  **Question:** Which is the correct way to say 21 in Thai?
171
183
 
@@ -188,4 +200,4 @@ In Lesson 3, you'll learn large numbers — hundreds, thousands, and millions
188
200
  export {
189
201
  n as default
190
202
  };
191
- //# sourceMappingURL=lesson-02-Bm9EJuN8.js.map
203
+ //# sourceMappingURL=lesson-02-DGrALAgG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-02-DGrALAgG.js","sources":["../src/syllabi/numbers/lessons/lesson-02.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: thai-numbers-lesson-02\\ntitle: \\\"บทที่ 2 — นับ ๑-๑๐๐\\\"\\ndescription: \\\"Counting 1-100: Teens, tens, and special rules\\\"\\norder: 2\\nparentId: thai-numbers\\ndifficulty: beginner\\ncefrLevel: A1\\ncategories:\\n - numbers\\n - counting\\n - basics\\nmetadata:\\n estimatedTime: 25\\n prerequisites:\\n - thai-numbers-lesson-01\\n learningObjectives:\\n - id: obj-count-1-100\\n description: \\\"Count from 1 to 100 fluently\\\"\\n skill: word-pronunciation\\n references: [num-one, num-two, num-three, num-four, num-five, num-six, num-seven, num-eight, num-nine]\\n - id: obj-special-rule-teens\\n description: \\\"Understand the special rule for 11-19\\\"\\n skill: word-production\\n references: [num-one]\\n - id: obj-twenty-rule\\n description: \\\"Know why 20 uses ยี่ instead of สอง\\\"\\n skill: word-production\\n references: [num-two]\\n - id: obj-two-digit-numbers\\n description: \\\"Form any two-digit number correctly\\\"\\n skill: word-production\\n references: [num-one, num-two, num-three, num-four, num-five, num-six, num-seven, num-eight, num-nine]\\n---\\n\\n# บทที่ 2 (Lesson 2) — Counting 1-100\\n\\n## Introduction\\n\\nThai counting follows a logical pattern, but with a few important exceptions that every learner must know. The rules for teens (11-19) and the word for 20 are different from what you might expect.\\n\\n## The Basic Pattern\\n\\nThai numbers follow a place-value system like English:\\n- **Tens place** + สิบ (sìp) = \\\"ten\\\"\\n- **Ones place** = the digit\\n\\nExample: 35 = สาม (3) + สิบ (10) + ห้า (5) = สามสิบห้า (sǎam-sìp-hâa)\\n\\n## The Teens (11-19): Special Rule #1\\n\\nFor 11-19, Thai uses สิบ (sìp) first, then adds the ones digit. But there's a catch:\\n\\n**หนึ่ง becomes เอ็ด (èt) when it's not alone.**\\n\\n| Number | Wrong | Correct | Pronunciation |\\n|--------|-------|---------|---------------|\\n| 10 | — | สิบ | sìp |\\n| 11 | ~~สิบหนึ่ง~~ | สิบเอ็ด | sìp-èt |\\n| 12 | — | สิบสอง | sìp-sǒng |\\n| 13 | — | สิบสาม | sìp-sǎam |\\n| 14 | — | สิบสี่ | sìp-sìi |\\n| 15 | — | สิบห้า | sìp-hâa |\\n| 16 | — | สิบหก | sìp-hòk |\\n| 17 | — | สิบเจ็ด | sìp-jèt |\\n| 18 | — | สิบแปด | sìp-bpàet |\\n| 19 | — | สิบเก้า | sìp-gâo |\\n\\n**Key rule**: หนึ่ง (nʉ̀ng) is only used when it stands alone. In compounds, it becomes เอ็ด (èt).\\n\\n## Twenty: Special Rule #2\\n\\nHere's the second exception: 20 is NOT สองสิบ!\\n\\n**20 = ยี่สิบ (yîi-sìp)**\\n\\nWhy? Historical reasons — ยี่ is an older word for \\\"two\\\" that survives only in this context.\\n\\n| Number | Thai | Pronunciation |\\n|--------|------|---------------|\\n| 20 | ยี่สิบ | yîi-sìp |\\n| 21 | ยี่สิบเอ็ด | yîi-sìp-èt |\\n| 22 | ยี่สิบสอง | yîi-sìp-sǒng |\\n| 29 | ยี่สิบเก้า | yîi-sìp-gâo |\\n\\n## The Regular Tens (30-90)\\n\\nAfter 20, the pattern is regular:\\n\\n| Number | Thai | Pronunciation |\\n|--------|------|---------------|\\n| 30 | สามสิบ | sǎam-sìp |\\n| 40 | สี่สิบ | sìi-sìp |\\n| 50 | ห้าสิบ | hâa-sìp |\\n| 60 | หกสิบ | hòk-sìp |\\n| 70 | เจ็ดสิบ | jèt-sìp |\\n| 80 | แปดสิบ | bpàet-sìp |\\n| 90 | เก้าสิบ | gâo-sìp |\\n| 100 | ร้อย | rɔ́ɔi |\\n\\n## Building Any Number 1-99\\n\\nFormula: **[tens word] + สิบ + [ones word]**\\n\\nRemember:\\n- Use เอ็ด for 1 in compounds (21, 31, 41...)\\n- Use ยี่สิบ for 20-29\\n- Everything else is regular\\n\\n| Number | Breakdown | Thai |\\n|--------|-----------|------|\\n| 47 | 4×10 + 7 | สี่สิบเจ็ด |\\n| 63 | 6×10 + 3 | หกสิบสาม |\\n| 81 | 8×10 + 1 | แปดสิบเอ็ด |\\n| 99 | 9×10 + 9 | เก้าสิบเก้า |\\n\\n## Key Points\\n\\n1. **เอ็ด replaces หนึ่ง**: Always in compound numbers (11, 21, 31...)\\n2. **ยี่สิบ for 20**: Never สองสิบ\\n3. **สิบ = 10**: The building block for all two-digit numbers\\n4. **Pattern is logical**: Once you know the exceptions, it's predictable\\n\\n## Common Mistakes\\n\\n- ❌ ยี่สิบหนึ่ง → ✓ ยี่สิบเอ็ด (21)\\n- ❌ สองสิบ → ✓ ยี่สิบ (20)\\n- ❌ สามสิบหนึ่ง → ✓ สามสิบเอ็ด (31)\\n\\n## Practice Counting\\n\\nTry saying these out loud:\\n- 15, 25, 35, 45, 55\\n- 11, 22, 33, 44, 55\\n- 19, 29, 39, 49, 59\\n\\n## Practice Exercises\\n\\n:::exercise{id=\\\"numbers-2-special-rules\\\" type=\\\"fill-in-blank\\\" title=\\\"Special Rules Practice\\\" skill=\\\"word-production\\\" tests=\\\"num-one,num-two\\\" objectiveId=\\\"obj-special-rule-teens\\\"}\\n\\n**Question:** Write these numbers in Thai:\\n\\n- 11 (ten + one)\\n- 20 (twenty)\\n- 21 (twenty + one)\\n- 31 (thirty + one)\\n\\n**Answer:**\\n\\n- 11 → สิบ**เอ็ด** (not สิบหนึ่ง)\\n- 20 → **ยี่**สิบ (not สองสิบ)\\n- 21 → ยี่สิบ**เอ็ด** (not ยี่สิบหนึ่ง)\\n- 31 → สามสิบ**เอ็ด** (not สามสิบหนึ่ง)\\n\\n**Explanation:** Remember the two special rules: (1) หนึ่ง becomes เอ็ด in compound numbers, and (2) 20 uses ยี่สิบ, not สองสิบ. These are the only exceptions to the regular pattern.\\n\\n:::\\n\\n:::exercise{id=\\\"numbers-2-building-numbers\\\" type=\\\"matching\\\" title=\\\"Building Two-Digit Numbers\\\" skill=\\\"word-recognition\\\" objectiveId=\\\"obj-two-digit-numbers\\\"}\\n\\n**Question:** Match each number to its Thai form\\n\\n- 47\\n- 63\\n- 81\\n- 99\\n\\n**Answer:**\\n\\n- 47 → สี่สิบเจ็ด (4×10 + 7)\\n- 63 → หกสิบสาม (6×10 + 3)\\n- 81 → แปดสิบเอ็ด (8×10 + 1, remember เอ็ด!)\\n- 99 → เก้าสิบเก้า (9×10 + 9)\\n\\n**Explanation:** The pattern is [tens word] + สิบ + [ones word]. For numbers ending in 1, use เอ็ด instead of หนึ่ง.\\n\\n:::\\n\\n:::exercise{id=\\\"numbers-2-common-mistakes\\\" type=\\\"multiple-choice\\\" title=\\\"Common Mistakes\\\" skill=\\\"word-pronunciation\\\" tests=\\\"num-one,num-two\\\" objectiveId=\\\"obj-twenty-rule\\\"}\\n\\n**Question:** Which is the correct way to say 21 in Thai?\\n\\n**Options:**\\n- ยี่สิบหนึ่ง\\n- ยี่สิบเอ็ด\\n- สองสิบเอ็ด\\n- ยี่สิบยี่\\n\\n**Answer:** 2\\n\\n**Explanation:** 21 is ยี่สิบเอ็ด. Remember: (1) 20 uses ยี่สิบ (not สองสิบ), and (2) หนึ่ง becomes เอ็ด in compounds. So ยี่สิบ + เอ็ด = ยี่สิบเอ็ด.\\n\\n:::\\n\\n## What's Next\\n\\nIn Lesson 3, you'll learn large numbers — hundreds, thousands, and millions — including how Thai groups numbers differently than English.\\n\""],"names":["lesson02"],"mappings":"AAAA,MAAAA,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -14,10 +14,16 @@ metadata:
14
14
  estimatedTime: 30
15
15
  prerequisites:
16
16
  - thai-grammar-lesson-01
17
- objectives:
18
- - "Form yes/no questions"
19
- - "Use question words"
20
- - "Understand question intonation"
17
+ learningObjectives:
18
+ - id: obj-02-yes-no-questions
19
+ description: "Form yes/no questions"
20
+ skill: pattern-application
21
+ - id: obj-02-question-words
22
+ description: "Use question words"
23
+ skill: word-production
24
+ - id: obj-02-question-intonation
25
+ description: "Understand question intonation"
26
+ skill: pattern-recognition
21
27
  ---
22
28
 
23
29
  # บทที่ 2 (Lesson 2) — Questions
@@ -107,4 +113,4 @@ In Lesson 3, you'll learn about Thai negation — how to say "no" and "not" in d
107
113
  export {
108
114
  n as default
109
115
  };
110
- //# sourceMappingURL=lesson-02-C0ZL4z3c.js.map
116
+ //# sourceMappingURL=lesson-02-DcMDDBDL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-02-DcMDDBDL.js","sources":["../src/syllabi/grammar/lessons/lesson-02.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: thai-grammar-lesson-02\\ntitle: \\\"บทที่ 2 — การถามคำถาม\\\"\\ndescription: \\\"Questions: Question words and yes/no questions\\\"\\norder: 2\\nparentId: thai-grammar\\ndifficulty: intermediate\\ncefrLevel: A2\\ncategories:\\n - grammar\\n - questions\\nmetadata:\\n estimatedTime: 30\\n prerequisites:\\n - thai-grammar-lesson-01\\n learningObjectives:\\n - id: obj-02-yes-no-questions\\n description: \\\"Form yes/no questions\\\"\\n skill: pattern-application\\n - id: obj-02-question-words\\n description: \\\"Use question words\\\"\\n skill: word-production\\n - id: obj-02-question-intonation\\n description: \\\"Understand question intonation\\\"\\n skill: pattern-recognition\\n---\\n\\n# บทที่ 2 (Lesson 2) — Questions\\n\\n## Introduction\\n\\nThai has two main question types: **yes/no questions** (add ไหม at the end) and **wh-questions** (use question words).\\n\\n## Yes/No Questions: Add ไหม (mái)\\n\\nSimply add **ไหม** at the end of a statement:\\n\\n| Statement | Question |\\n|-----------|----------|\\n| คุณกินข้าว (you eat rice) | คุณกินข้าวไหม? (Do you eat rice?) |\\n| เขาไปตลาด (he goes to market) | เขาไปตลาดไหม? (Does he go to market?) |\\n| มีห้องว่าง (there's a room) | มีห้องว่างไหม? (Is there a room?) |\\n\\n## Answering Yes/No Questions\\n\\n| Response | Meaning |\\n|----------|---------|\\n| ครับ/ค่ะ | Yes (polite) |\\n| ใช่ (châi) | Yes/correct |\\n| ไม่ (mâi) + verb | No (repeat verb with ไม่) |\\n| ไม่ครับ/ค่ะ | No (polite) |\\n\\nExample:\\n- Q: คุณชอบอาหารไทยไหม? (Do you like Thai food?)\\n- A: ชอบครับ (Yes, I like it) or ไม่ชอบครับ (No, I don't like it)\\n\\n## Question Words\\n\\n| Thai | Romanization | Meaning |\\n|------|--------------|---------|\\n| อะไร | à-rai | what |\\n| ใคร | khrai | who |\\n| ที่ไหน | thîi-nǎi | where |\\n| เมื่อไหร่ | mûuea-rài | when |\\n| ทำไม | tham-mai | why |\\n| อย่างไร/ยังไง | yàang-rai/yang-ngai | how |\\n| เท่าไหร่ | thâo-rài | how much |\\n| กี่ | gìi | how many |\\n\\n## Question Word Placement\\n\\nQuestion words go **where the answer would go**:\\n\\n| Question | Answer |\\n|----------|--------|\\n| คุณกินอะไร? (What do you eat?) | ผมกินข้าว (I eat rice) |\\n| ใครมา? (Who came?) | เพื่อนมา (A friend came) |\\n| คุณไปที่ไหน? (Where do you go?) | ผมไปตลาด (I go to market) |\\n| นี่อะไร? (What is this?) | นี่หนังสือ (This is a book) |\\n\\n## Common Question Patterns\\n\\n| Pattern | Example | Meaning |\\n|---------|---------|---------|\\n| ...อะไร? | ชื่ออะไร? | What is (your) name? |\\n| ...ที่ไหน? | ห้องน้ำอยู่ที่ไหน? | Where is the bathroom? |\\n| ...เท่าไหร่? | ราคาเท่าไหร่? | How much (is the price)? |\\n| กี่...? | กี่โมง? | What time? (How many hours?) |\\n| ...หรือเปล่า? | ร้อนหรือเปล่า? | Is it hot? |\\n\\n## Alternative: หรือเปล่า (rǔue bplào)\\n\\nAnother way to ask yes/no questions:\\n\\n| With ไหม | With หรือเปล่า |\\n|----------|----------------|\\n| คุณหิวไหม? | คุณหิวหรือเปล่า? |\\n\\nBoth mean \\\"Are you hungry?\\\" but หรือเปล่า sounds slightly softer.\\n\\n## Key Points\\n\\n1. **ไหม at the end** makes any statement a yes/no question\\n2. **Answer by repeating the verb** (with or without ไม่)\\n3. **Question words** replace the unknown information\\n4. **No subject-verb inversion** like in English\\n\\n## What's Next\\n\\nIn Lesson 3, you'll learn about Thai negation — how to say \\\"no\\\" and \\\"not\\\" in different contexts, including the important distinction between ไม่ (mâi) and ไม่ใช่ (mâi châi).\\n\""],"names":["lesson02"],"mappings":"AAAA,MAAAA,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -15,11 +15,19 @@ metadata:
15
15
  estimatedTime: 30
16
16
  prerequisites:
17
17
  - thai-food-lesson-01
18
- objectives:
19
- - "Describe the five Thai tastes"
20
- - "Adjust spice levels"
21
- - "Express food preferences"
22
- - "Understand flavor descriptions on menus"
18
+ learningObjectives:
19
+ - id: obj-describe-five-tastes
20
+ description: "Describe the five Thai tastes"
21
+ skill: word-recognition
22
+ - id: obj-adjust-spice-levels
23
+ description: "Adjust spice levels"
24
+ skill: word-production
25
+ - id: obj-express-food-preferences
26
+ description: "Express food preferences"
27
+ skill: pattern-application
28
+ - id: obj-understand-flavor-descriptions
29
+ description: "Understand flavor descriptions on menus"
30
+ skill: reading-comprehension
23
31
  ---
24
32
 
25
33
  # บทที่ 2 (Lesson 2) — Tastes & Flavors
@@ -146,7 +154,7 @@ Great Thai dishes balance these tastes. For example:
146
154
 
147
155
  ## Practice Exercises
148
156
 
149
- :::exercise{id="food-2-spice-levels" type="matching" title="Spice Level Recognition"}
157
+ :::exercise{id="food-2-spice-levels" type="matching" title="Spice Level Recognition" skill="word-recognition" objectiveId="obj-adjust-spice-levels"}
150
158
 
151
159
  **Question:** Match each spice level to its Thai phrase
152
160
 
@@ -168,7 +176,7 @@ Great Thai dishes balance these tastes. For example:
168
176
 
169
177
  :::
170
178
 
171
- :::exercise{id="food-2-taste-description" type="fill-in-blank" title="Describing Tastes"}
179
+ :::exercise{id="food-2-taste-description" type="fill-in-blank" title="Describing Tastes" skill="word-production" objectiveId="obj-express-food-preferences"}
172
180
 
173
181
  **Question:** How do you say these taste descriptions?
174
182
 
@@ -188,7 +196,7 @@ Great Thai dishes balance these tastes. For example:
188
196
 
189
197
  :::
190
198
 
191
- :::exercise{id="food-2-five-tastes" type="multiple-choice" title="The Five Tastes"}
199
+ :::exercise{id="food-2-five-tastes" type="multiple-choice" title="The Five Tastes" skill="pattern-recognition" objectiveId="obj-describe-five-tastes"}
192
200
 
193
201
  **Question:** Which dish is known for balancing sour, spicy, and salty flavors?
194
202
 
@@ -211,4 +219,4 @@ In Lesson 3, you'll learn the words for proteins and vegetables — the ingredie
211
219
  export {
212
220
  n as default
213
221
  };
214
- //# sourceMappingURL=lesson-02-B2Xg7RVU.js.map
222
+ //# sourceMappingURL=lesson-02-Dk59HZWp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-02-Dk59HZWp.js","sources":["../src/syllabi/food/lessons/lesson-02.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: thai-food-lesson-02\\ntitle: \\\"บทที่ 2 — รสชาติ\\\"\\ndescription: \\\"Tastes & Flavors: Spicy, sweet, sour, salty, and bitter\\\"\\norder: 2\\nparentId: thai-food\\ndifficulty: beginner\\ncefrLevel: A2\\ncategories:\\n - food\\n - flavors\\n - adjectives\\nmetadata:\\n estimatedTime: 30\\n prerequisites:\\n - thai-food-lesson-01\\n learningObjectives:\\n - id: obj-describe-five-tastes\\n description: \\\"Describe the five Thai tastes\\\"\\n skill: word-recognition\\n - id: obj-adjust-spice-levels\\n description: \\\"Adjust spice levels\\\"\\n skill: word-production\\n - id: obj-express-food-preferences\\n description: \\\"Express food preferences\\\"\\n skill: pattern-application\\n - id: obj-understand-flavor-descriptions\\n description: \\\"Understand flavor descriptions on menus\\\"\\n skill: reading-comprehension\\n---\\n\\n# บทที่ 2 (Lesson 2) — Tastes & Flavors\\n\\n## Introduction\\n\\nThai cuisine is famous for balancing multiple flavors in a single dish. Understanding taste vocabulary lets you describe what you want, ask for adjustments, and appreciate the complexity of Thai cooking.\\n\\n## The Five Fundamental Tastes\\n\\n:::vocabulary-set{id=\\\"thai-tastes\\\" title=\\\"The Five Tastes\\\"}\\n\\n::vocab-item{id=\\\"phet\\\" word=\\\"เผ็ด\\\" pronunciation=\\\"phèt\\\" meaning=\\\"spicy\\\"}\\n\\n::vocab-item{id=\\\"waan\\\" word=\\\"หวาน\\\" pronunciation=\\\"wǎan\\\" meaning=\\\"sweet\\\"}\\n\\n::vocab-item{id=\\\"priao\\\" word=\\\"เปรี้ยว\\\" pronunciation=\\\"prîao\\\" meaning=\\\"sour\\\"}\\n\\n::vocab-item{id=\\\"khem\\\" word=\\\"เค็ม\\\" pronunciation=\\\"khem\\\" meaning=\\\"salty\\\"}\\n\\n::vocab-item{id=\\\"khom\\\" word=\\\"ขม\\\" pronunciation=\\\"khǒm\\\" meaning=\\\"bitter\\\"}\\n\\n:::\\n\\n### Taste Balance\\n\\nGreat Thai dishes balance these tastes. For example:\\n- **ต้มยำ** (tom yam): sour + spicy + salty\\n- **ผัดไทย** (pad thai): sweet + sour + salty\\n- **ส้มตำ** (som tam): sour + spicy + sweet + salty\\n\\n## Spice Levels — The Most Important Skill\\n\\n:::vocabulary-set{id=\\\"thai-spice\\\" title=\\\"Spice Vocabulary\\\"}\\n\\n::vocab-item{id=\\\"mai-phet\\\" word=\\\"ไม่เผ็ด\\\" pronunciation=\\\"mâi phèt\\\" meaning=\\\"not spicy\\\"}\\n\\n::vocab-item{id=\\\"phet-nit-noi\\\" word=\\\"เผ็ดนิดหน่อย\\\" pronunciation=\\\"phèt nít nòi\\\" meaning=\\\"a little spicy\\\"}\\n\\n::vocab-item{id=\\\"phet-klang\\\" word=\\\"เผ็ดกลาง\\\" pronunciation=\\\"phèt glaang\\\" meaning=\\\"medium spicy\\\"}\\n\\n::vocab-item{id=\\\"phet-maak\\\" word=\\\"เผ็ดมาก\\\" pronunciation=\\\"phèt mâak\\\" meaning=\\\"very spicy\\\"}\\n\\n::vocab-item{id=\\\"phet-thai\\\" word=\\\"เผ็ดแบบคนไทย\\\" pronunciation=\\\"phèt bàep khon thai\\\" meaning=\\\"Thai-style spicy\\\"}\\n\\n:::\\n\\n### Ordering with Spice Preference\\n\\n| Request | Meaning |\\n|---------|---------|\\n| ขอไม่เผ็ด | Not spicy, please |\\n| เผ็ดนิดหน่อยได้ไหม | Can it be a little spicy? |\\n| เผ็ดปกติ | Normal spice level |\\n| ใส่พริกเพิ่ม | Add more chili |\\n| ไม่ใส่พริก | No chili |\\n\\n**Warning**: \\\"เผ็ดแบบคนไทย\\\" means VERY spicy. Thai people often underestimate spice for foreigners, so this signals you can handle real heat.\\n\\n## Other Flavor Adjustments\\n\\n:::vocabulary-set{id=\\\"thai-flavor-adjust\\\" title=\\\"Flavor Adjustments\\\"}\\n\\n::vocab-item{id=\\\"mai-waan\\\" word=\\\"ไม่หวาน\\\" pronunciation=\\\"mâi wǎan\\\" meaning=\\\"not sweet\\\"}\\n\\n::vocab-item{id=\\\"mai-khem\\\" word=\\\"ไม่เค็ม\\\" pronunciation=\\\"mâi khem\\\" meaning=\\\"not salty\\\"}\\n\\n::vocab-item{id=\\\"waan-noi\\\" word=\\\"หวานน้อย\\\" pronunciation=\\\"wǎan nói\\\" meaning=\\\"less sweet\\\"}\\n\\n::vocab-item{id=\\\"khem-noi\\\" word=\\\"เค็มน้อย\\\" pronunciation=\\\"khem nói\\\" meaning=\\\"less salty\\\"}\\n\\n:::\\n\\n## Describing Food\\n\\n| Thai | Meaning | Example |\\n|------|---------|---------|\\n| อร่อย | delicious | อร่อยมาก! (Very delicious!) |\\n| เผ็ดไป | too spicy | เผ็ดไปหน่อย (a bit too spicy) |\\n| หวานไป | too sweet | หวานไปนิดหน่อย |\\n| กำลังดี | just right | รสชาติกำลังดี |\\n| จืด | bland | จืดไปหน่อย (a bit bland) |\\n\\n## Flavor Sources\\n\\n| Ingredient | Provides |\\n|------------|----------|\\n| พริก (chili) | เผ็ด (spicy) |\\n| น้ำตาล (sugar) | หวาน (sweet) |\\n| มะนาว (lime) | เปรี้ยว (sour) |\\n| น้ำปลา (fish sauce) | เค็ม (salty) |\\n| มะระ (bitter melon) | ขม (bitter) |\\n\\n## Common Taste Combinations\\n\\n| Dish | Dominant Tastes |\\n|------|-----------------|\\n| ต้มยำกุ้ง | เปรี้ยว + เผ็ด |\\n| แกงเขียวหวาน | เผ็ด + หวาน (slightly) |\\n| ส้มตำ | เปรี้ยว + เผ็ด + หวาน |\\n| มัสมั่น | หวาน + เค็ม |\\n| ลาบ | เปรี้ยว + เผ็ด + เค็ม |\\n\\n## Practice Conversations\\n\\n**Ordering with spice preference:**\\n- พนักงาน: เผ็ดได้ไหมคะ (Can you eat spicy?)\\n- คุณ: ได้ครับ แต่เผ็ดนิดหน่อยนะครับ (Yes, but just a little spicy)\\n\\n**Giving feedback:**\\n- พนักงาน: อร่อยไหมคะ (Is it delicious?)\\n- คุณ: อร่อยมากครับ แต่เผ็ดไปนิดหน่อย (Very delicious, but a bit too spicy)\\n\\n**Asking about a dish:**\\n- คุณ: อันนี้เผ็ดไหมครับ (Is this spicy?)\\n- พนักงาน: เผ็ดนิดหน่อยค่ะ (A little spicy)\\n\\n## Key Points\\n\\n1. **เผ็ด is the big one**: Master spice adjustment first\\n2. **ไม่... = not...**: Add ไม่ before any taste\\n3. **...น้อย = less...**: For reducing intensity\\n4. **...ไป = too...**: For feedback on excess\\n\\n## Practice Exercises\\n\\n:::exercise{id=\\\"food-2-spice-levels\\\" type=\\\"matching\\\" title=\\\"Spice Level Recognition\\\" skill=\\\"word-recognition\\\" objectiveId=\\\"obj-adjust-spice-levels\\\"}\\n\\n**Question:** Match each spice level to its Thai phrase\\n\\n- Not spicy at all\\n- A little spicy\\n- Normal spicy\\n- Very spicy\\n- Thai-style spicy\\n\\n**Answer:**\\n\\n- Not spicy at all → ไม่เผ็ดเลย\\n- A little spicy → เผ็ดนิดหน่อย\\n- Normal spicy → เผ็ดปกติ\\n- Very spicy → เผ็ดมาก\\n- Thai-style spicy → เผ็ดแบบคนไทย (warning: very hot!)\\n\\n**Explanation:** Mastering spice levels is crucial for enjoying Thai food. Start with เผ็ดนิดหน่อย if you're unsure. เผ็ดแบบคนไทย is extremely spicy - only use if you can handle real heat!\\n\\n:::\\n\\n:::exercise{id=\\\"food-2-taste-description\\\" type=\\\"fill-in-blank\\\" title=\\\"Describing Tastes\\\" skill=\\\"word-production\\\" objectiveId=\\\"obj-express-food-preferences\\\"}\\n\\n**Question:** How do you say these taste descriptions?\\n\\n- Too spicy\\n- Just right\\n- A bit bland\\n- Very delicious\\n\\n**Answer:**\\n\\n- เผ็ดไป (too spicy)\\n- กำลังดี (just right)\\n- จืดไปหน่อย (a bit bland)\\n- อร่อยมาก (very delicious)\\n\\n**Explanation:** Use ...ไป for \\\"too [adjective]\\\" and มาก for \\\"very\\\". กำลังดี means \\\"just right\\\" and is perfect for complimenting well-balanced dishes.\\n\\n:::\\n\\n:::exercise{id=\\\"food-2-five-tastes\\\" type=\\\"multiple-choice\\\" title=\\\"The Five Tastes\\\" skill=\\\"pattern-recognition\\\" objectiveId=\\\"obj-describe-five-tastes\\\"}\\n\\n**Question:** Which dish is known for balancing sour, spicy, and salty flavors?\\n\\n**Options:**\\n- ผัดไทย (Pad Thai)\\n- ต้มยำกุ้ง (Tom Yum Goong)\\n- แกงเขียวหวาน (Green Curry)\\n- ส้มตำ (Som Tam)\\n\\n**Answer:** 2\\n\\n**Explanation:** ต้มยำกุ้ง (Tom Yum Goong) is famous for balancing เปรี้ยว (sour), เผ็ด (spicy), and เค็ม (salty). Understanding these taste combinations helps you appreciate Thai cuisine's complexity.\\n\\n:::\\n\\n## What's Next\\n\\nIn Lesson 3, you'll learn the words for proteins and vegetables — the ingredients that make up Thai dishes.\\n\""],"names":["lesson02"],"mappings":"AAAA,MAAAA,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -15,10 +15,16 @@ metadata:
15
15
  estimatedTime: 30
16
16
  prerequisites:
17
17
  - thai-reading-lesson-01
18
- objectives:
19
- - "Read food names in Thai script"
20
- - "Understand menu categories"
21
- - "Recognize pricing and portion information"
18
+ learningObjectives:
19
+ - id: obj-r2-food-names
20
+ description: "Read food names in Thai script"
21
+ skill: text-decoding
22
+ - id: obj-r2-menu-categories
23
+ description: "Understand menu categories"
24
+ skill: reading-comprehension
25
+ - id: obj-r2-pricing
26
+ description: "Recognize pricing and portion information"
27
+ skill: word-recognition
22
28
  ---
23
29
 
24
30
  # Restaurant Menus
@@ -73,7 +79,7 @@ Pork fried rice - 50 baht
73
79
 
74
80
  ## Practice Exercises
75
81
 
76
- :::exercise{id="reading-2-menu-categories" type="matching" title="Menu Category Recognition"}
82
+ :::exercise{id="reading-2-menu-categories" type="matching" title="Menu Category Recognition" skill="reading-comprehension" objectiveId="obj-r2-menu-categories"}
77
83
 
78
84
  **Question:** Match each menu category to its meaning
79
85
 
@@ -93,7 +99,7 @@ Pork fried rice - 50 baht
93
99
 
94
100
  :::
95
101
 
96
- :::exercise{id="reading-2-menu-descriptors" type="fill-in-blank" title="Menu Descriptors"}
102
+ :::exercise{id="reading-2-menu-descriptors" type="fill-in-blank" title="Menu Descriptors" skill="word-recognition" objectiveId="obj-r2-pricing"}
97
103
 
98
104
  **Question:** What do these menu descriptors mean?
99
105
 
@@ -113,7 +119,7 @@ Pork fried rice - 50 baht
113
119
 
114
120
  :::
115
121
 
116
- :::exercise{id="reading-2-price-reading" type="multiple-choice" title="Reading Prices"}
122
+ :::exercise{id="reading-2-price-reading" type="multiple-choice" title="Reading Prices" skill="text-decoding" objectiveId="obj-r2-food-names"}
117
123
 
118
124
  **Question:** How do you read "80 บาท" from a menu?
119
125
 
@@ -136,4 +142,4 @@ In Lesson 3, you'll master transportation signs — navigate BTS/MRT stations, a
136
142
  export {
137
143
  n as default
138
144
  };
139
- //# sourceMappingURL=lesson-02-BO3BXPMJ.js.map
145
+ //# sourceMappingURL=lesson-02-L8oNhBej.js.map