@syllst/th 0.1.3 → 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 +5 -5
  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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-07-Dcry2Yjo.js","sources":["../src/syllabi/food/lessons/lesson-07.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: thai-food-lesson-07\\ntitle: \\\"บทที่ 7 — เครื่องดื่มและของหวาน\\\"\\ndescription: \\\"Drinks & Desserts: Thai beverages and sweet treats\\\"\\norder: 7\\nparentId: thai-food\\ndifficulty: beginner\\ncefrLevel: A2\\ncategories:\\n - food\\n - drinks\\n - desserts\\nmetadata:\\n estimatedTime: 30\\n prerequisites:\\n - thai-food-lesson-06\\n learningObjectives:\\n - id: obj-order-drinks\\n description: \\\"Order drinks at restaurants and cafes\\\"\\n skill: pattern-application\\n - id: obj-name-desserts\\n description: \\\"Name Thai desserts\\\"\\n skill: word-recognition\\n - id: obj-customize-drinks\\n description: \\\"Customize drink orders\\\"\\n skill: word-production\\n - id: obj-understand-coffee-culture\\n description: \\\"Understand Thai coffee culture\\\"\\n skill: dialogue-comprehension\\n---\\n\\n# บทที่ 7 (Lesson 7) — Drinks & Desserts\\n\\n## Introduction\\n\\nThai drinks and desserts are just as complex and delicious as the savory dishes. From the famous Thai iced tea to coconut-based sweets, this lesson covers everything you need to complete your Thai food education.\\n\\n## Basic Drink Vocabulary\\n\\n:::vocabulary-set{id=\\\"thai-drinks\\\" title=\\\"Drink Basics\\\"}\\n\\n::vocab-item{id=\\\"nam\\\" word=\\\"น้ำ\\\" pronunciation=\\\"náam\\\" meaning=\\\"water/liquid\\\"}\\n\\n::vocab-item{id=\\\"nam-plao\\\" word=\\\"น้ำเปล่า\\\" pronunciation=\\\"náam bplào\\\" meaning=\\\"plain water\\\"}\\n\\n::vocab-item{id=\\\"nam-khaeng\\\" word=\\\"น้ำแข็ง\\\" pronunciation=\\\"náam khǎeng\\\" meaning=\\\"ice\\\"}\\n\\n::vocab-item{id=\\\"yen\\\" word=\\\"เย็น\\\" pronunciation=\\\"yen\\\" meaning=\\\"cold/iced\\\"}\\n\\n::vocab-item{id=\\\"ron\\\" word=\\\"ร้อน\\\" pronunciation=\\\"rɔ́ɔn\\\" meaning=\\\"hot\\\"}\\n\\n::vocab-item{id=\\\"waan\\\" word=\\\"หวาน\\\" pronunciation=\\\"wǎan\\\" meaning=\\\"sweet\\\"}\\n\\n:::\\n\\n## Thai Specialty Drinks\\n\\n:::vocabulary-set{id=\\\"thai-special-drinks\\\" title=\\\"Thai Drinks\\\"}\\n\\n::vocab-item{id=\\\"cha-yen\\\" word=\\\"ชาเย็น\\\" pronunciation=\\\"chaa yen\\\" meaning=\\\"Thai iced tea\\\"}\\n\\n::vocab-item{id=\\\"cha-dam-yen\\\" word=\\\"ชาดำเย็น\\\" pronunciation=\\\"chaa dam yen\\\" meaning=\\\"iced black tea\\\"}\\n\\n::vocab-item{id=\\\"cha-khiao\\\" word=\\\"ชาเขียว\\\" pronunciation=\\\"chaa khǐao\\\" meaning=\\\"green tea\\\"}\\n\\n::vocab-item{id=\\\"kafae\\\" word=\\\"กาแฟ\\\" pronunciation=\\\"gaa-fae\\\" meaning=\\\"coffee\\\"}\\n\\n::vocab-item{id=\\\"oliang\\\" word=\\\"โอเลี้ยง\\\" pronunciation=\\\"oo-lîang\\\" meaning=\\\"Thai iced coffee\\\"}\\n\\n::vocab-item{id=\\\"nom-yen\\\" word=\\\"นมเย็น\\\" pronunciation=\\\"nom yen\\\" meaning=\\\"iced milk (pink)\\\"}\\n\\n:::\\n\\n## Coffee Orders\\n\\n| Thai | Meaning |\\n|------|---------|\\n| กาแฟร้อน | Hot coffee |\\n| กาแฟเย็น | Iced coffee |\\n| เอสเพรสโซ่ | Espresso |\\n| ลาเต้ | Latte |\\n| คาปูชิโน่ | Cappuccino |\\n| อเมริกาโน่ | Americano |\\n\\n### Coffee Customization\\n\\n| Phrase | Meaning |\\n|--------|---------|\\n| หวานน้อย | Less sweet |\\n| ไม่หวาน | Not sweet |\\n| หวานปกติ | Normal sweetness |\\n| ใส่นมเพิ่ม | Extra milk |\\n| ไม่ใส่น้ำแข็ง | No ice |\\n\\n## Fresh Juices & Smoothies\\n\\n:::vocabulary-set{id=\\\"thai-juice\\\" title=\\\"Juices\\\"}\\n\\n::vocab-item{id=\\\"nam-som\\\" word=\\\"น้ำส้ม\\\" pronunciation=\\\"náam sôm\\\" meaning=\\\"orange juice\\\"}\\n\\n::vocab-item{id=\\\"nam-ma-prao\\\" word=\\\"น้ำมะพร้าว\\\" pronunciation=\\\"náam má-práao\\\" meaning=\\\"coconut water\\\"}\\n\\n::vocab-item{id=\\\"nam-pan\\\" word=\\\"น้ำปั่น\\\" pronunciation=\\\"náam bpàn\\\" meaning=\\\"smoothie/blended\\\"}\\n\\n::vocab-item{id=\\\"nam-taengmo\\\" word=\\\"น้ำแตงโม\\\" pronunciation=\\\"náam dtaeng-moo\\\" meaning=\\\"watermelon juice\\\"}\\n\\n::vocab-item{id=\\\"nam-mamuang\\\" word=\\\"น้ำมะม่วง\\\" pronunciation=\\\"náam má-mûang\\\" meaning=\\\"mango juice\\\"}\\n\\n:::\\n\\n## Alcoholic Beverages\\n\\n| Thai | Meaning |\\n|------|---------|\\n| เบียร์ | Beer |\\n| เบียร์สิงห์ | Singha beer |\\n| เบียร์ช้าง | Chang beer |\\n| เบียร์ลีโอ | Leo beer |\\n| ไวน์ | Wine |\\n| เหล้า | Spirits/alcohol |\\n| ค็อกเทล | Cocktail |\\n\\n## Thai Desserts (ขนมหวาน)\\n\\n:::vocabulary-set{id=\\\"thai-desserts\\\" title=\\\"Desserts\\\"}\\n\\n::vocab-item{id=\\\"khanom-wan\\\" word=\\\"ขนมหวาน\\\" pronunciation=\\\"khà-nǒm wǎan\\\" meaning=\\\"dessert/sweets\\\"}\\n\\n::vocab-item{id=\\\"khao-niao-mamuang\\\" word=\\\"ข้าวเหนียวมะม่วง\\\" pronunciation=\\\"khâao nǐao má-mûang\\\" meaning=\\\"mango sticky rice\\\"}\\n\\n::vocab-item{id=\\\"tub-tim-krob\\\" word=\\\"ทับทิมกรอบ\\\" pronunciation=\\\"tháp-thim gròp\\\" meaning=\\\"water chestnut in coconut\\\"}\\n\\n::vocab-item{id=\\\"ice-cream\\\" word=\\\"ไอศกรีม\\\" pronunciation=\\\"ai-sà-griim\\\" meaning=\\\"ice cream\\\"}\\n\\n::vocab-item{id=\\\"i-tim\\\" word=\\\"ไอติม\\\" pronunciation=\\\"ai-dtim\\\" meaning=\\\"ice cream (casual)\\\"}\\n\\n::vocab-item{id=\\\"lod-chong\\\" word=\\\"ลอดช่อง\\\" pronunciation=\\\"lɔ̂ɔt chɔ̂ng\\\" meaning=\\\"pandan noodles in coconut\\\"}\\n\\n:::\\n\\n## Classic Thai Desserts\\n\\n| Thai | Description |\\n|------|-------------|\\n| ข้าวเหนียวมะม่วง | Mango + sticky rice + coconut cream |\\n| บัวลอย | Sweet rice balls in coconut milk |\\n| กล้วยบวชชี | Banana in coconut milk |\\n| ฝอยทอง | Golden egg threads |\\n| ขนมชั้น | Layered coconut jelly |\\n\\n## Fruit (ผลไม้)\\n\\n:::vocabulary-set{id=\\\"thai-fruit\\\" title=\\\"Fruits\\\"}\\n\\n::vocab-item{id=\\\"mamuang\\\" word=\\\"มะม่วง\\\" pronunciation=\\\"má-mûang\\\" meaning=\\\"mango\\\"}\\n\\n::vocab-item{id=\\\"turian\\\" word=\\\"ทุเรียน\\\" pronunciation=\\\"thú-rian\\\" meaning=\\\"durian\\\"}\\n\\n::vocab-item{id=\\\"mangkut\\\" word=\\\"มังคุด\\\" pronunciation=\\\"mang-khút\\\" meaning=\\\"mangosteen\\\"}\\n\\n::vocab-item{id=\\\"linchi\\\" word=\\\"ลิ้นจี่\\\" pronunciation=\\\"lín-jìi\\\" meaning=\\\"lychee\\\"}\\n\\n::vocab-item{id=\\\"lamyai\\\" word=\\\"ลำไย\\\" pronunciation=\\\"lam-yai\\\" meaning=\\\"longan\\\"}\\n\\n::vocab-item{id=\\\"som-o\\\" word=\\\"ส้มโอ\\\" pronunciation=\\\"sôm-oo\\\" meaning=\\\"pomelo\\\"}\\n\\n:::\\n\\n## Ordering Drinks\\n\\n**At a cafe:**\\n- คุณ: ขอชาเย็นหนึ่งแก้วครับ (One Thai iced tea please)\\n- พนักงาน: หวานปกติไหมคะ (Normal sweetness?)\\n- คุณ: หวานน้อยครับ (Less sweet please)\\n\\n**At a restaurant:**\\n- พนักงาน: ดื่มอะไรดีคะ (What would you like to drink?)\\n- คุณ: ขอน้ำมะพร้าวครับ (Coconut water please)\\n\\n## Key Points\\n\\n1. **ชาเย็น = Thai iced tea**: The iconic orange drink\\n2. **หวานน้อย = less sweet**: Essential for drinks\\n3. **น้ำแข็ง = ice**: Add ไม่ใส่ if you don't want ice\\n4. **ข้าวเหนียวมะม่วง**: Must-try Thai dessert\\n\\n## Practice Exercises\\n\\n:::exercise{id=\\\"food-7-drink-customization\\\" type=\\\"matching\\\" title=\\\"Drink Customization\\\" skill=\\\"word-recognition\\\" objectiveId=\\\"obj-customize-drinks\\\"}\\n\\n**Question:** Match each customization to its Thai phrase\\n\\n- Less sweet\\n- No ice\\n- Extra milk\\n- Hot (not iced)\\n\\n**Answer:**\\n\\n- Less sweet → หวานน้อย\\n- No ice → ไม่ใส่น้ำแข็ง\\n- Extra milk → ใส่นมเพิ่ม\\n- Hot (not iced) → ร้อน (or specify กาแฟร้อน)\\n\\n**Explanation:** Thai drinks are often very sweet by default. Always specify หวานน้อย if you want less sugar. ไม่ใส่น้ำแข็ง is important if you don't want ice (Thai drinks are usually very iced).\\n\\n:::\\n\\n:::exercise{id=\\\"food-7-dessert-recognition\\\" type=\\\"fill-in-blank\\\" title=\\\"Thai Dessert Recognition\\\" skill=\\\"word-recognition\\\" objectiveId=\\\"obj-name-desserts\\\"}\\n\\n**Question:** What is ข้าวเหนียวมะม่วง?\\n\\n**Answer:**\\n\\nข้าวเหนียวมะม่วง is mango sticky rice - a classic Thai dessert made of:\\n- ข้าวเหนียว (sticky rice)\\n- มะม่วง (mango)\\n- น้ำกะทิ (coconut cream)\\n\\n**Explanation:** This is Thailand's most famous dessert. It's a must-try! The combination of sweet sticky rice, ripe mango, and rich coconut cream is iconic.\\n\\n:::\\n\\n:::exercise{id=\\\"food-7-coffee-culture\\\" type=\\\"multiple-choice\\\" title=\\\"Thai Coffee Culture\\\" skill=\\\"dialogue-comprehension\\\" objectiveId=\\\"obj-understand-coffee-culture\\\"}\\n\\n**Question:** What is โอเลี้ยง (ooliang)?\\n\\n**Options:**\\n- Hot black coffee\\n- Thai iced coffee (sweet, strong)\\n- Green tea\\n- Milk tea\\n\\n**Answer:** 2\\n\\n**Explanation:** โอเลี้ยง is Thai iced coffee - strong, sweet, and served over ice. It's different from Western iced coffee. Thai coffee culture includes both traditional strong coffee and modern cafe drinks.\\n\\n:::\\n\\n## What's Next\\n\\nIn Lesson 8, you'll learn how to handle dietary restrictions and make special requests.\\n\""],"names":["lesson07"],"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;AAAA;AAAA;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: 35
16
16
  prerequisites:
17
17
  - thai-reading-lesson-06
18
- objectives:
19
- - "Understand news headline structure"
20
- - "Recognize common news vocabulary"
21
- - "Read condensed Thai text"
18
+ learningObjectives:
19
+ - id: obj-r7-headline-structure
20
+ description: "Understand news headline structure"
21
+ skill: pattern-recognition
22
+ - id: obj-r7-news-vocab
23
+ description: "Recognize common news vocabulary"
24
+ skill: word-recognition
25
+ - id: obj-r7-condensed-text
26
+ description: "Read condensed Thai text"
27
+ skill: reading-comprehension
22
28
  ---
23
29
 
24
30
  # News Headlines
@@ -73,7 +79,7 @@ Storm enters south, citizens warned to be careful
73
79
 
74
80
  ## Practice Exercises
75
81
 
76
- :::exercise{id="reading-7-news-categories" type="matching" title="News Category Recognition"}
82
+ :::exercise{id="reading-7-news-categories" type="matching" title="News Category Recognition" skill="word-recognition" objectiveId="obj-r7-news-vocab"}
77
83
 
78
84
  **Question:** Match each news category to its Thai name
79
85
 
@@ -93,7 +99,7 @@ Storm enters south, citizens warned to be careful
93
99
 
94
100
  :::
95
101
 
96
- :::exercise{id="reading-7-headline-structure" type="fill-in-blank" title="Headline Structure"}
102
+ :::exercise{id="reading-7-headline-structure" type="fill-in-blank" title="Headline Structure" skill="pattern-recognition" objectiveId="obj-r7-headline-structure"}
97
103
 
98
104
  **Question:** How are Thai news headlines structured?
99
105
 
@@ -110,7 +116,7 @@ Example: "รัฐบาลประกาศมาตรการใหม่"
110
116
 
111
117
  :::
112
118
 
113
- :::exercise{id="reading-7-news-vocab" type="multiple-choice" title="Common News Vocabulary"}
119
+ :::exercise{id="reading-7-news-vocab" type="multiple-choice" title="Common News Vocabulary" skill="reading-comprehension" objectiveId="obj-r7-condensed-text"}
114
120
 
115
121
  **Question:** What does "รัฐบาล" mean in news headlines?
116
122
 
@@ -133,4 +139,4 @@ In Lesson 8, you'll learn to read official notices and announcements — underst
133
139
  export {
134
140
  n as default
135
141
  };
136
- //# sourceMappingURL=lesson-07-B9bkJ3gP.js.map
142
+ //# sourceMappingURL=lesson-07-JS_cqdNr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-07-JS_cqdNr.js","sources":["../src/syllabi/reading/lessons/lesson-07.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: thai-reading-lesson-07\\ntitle: \\\"บทที่ 7 — พาดหัวข่าว\\\"\\ndescription: \\\"News Headlines: Read Thai news headlines and stay informed\\\"\\norder: 7\\nparentId: thai-reading\\ndifficulty: intermediate\\ncefrLevel: B1\\ncategories:\\n - reading\\n - news\\n - headlines\\nmetadata:\\n estimatedTime: 35\\n prerequisites:\\n - thai-reading-lesson-06\\n learningObjectives:\\n - id: obj-r7-headline-structure\\n description: \\\"Understand news headline structure\\\"\\n skill: pattern-recognition\\n - id: obj-r7-news-vocab\\n description: \\\"Recognize common news vocabulary\\\"\\n skill: word-recognition\\n - id: obj-r7-condensed-text\\n description: \\\"Read condensed Thai text\\\"\\n skill: reading-comprehension\\n---\\n\\n# News Headlines\\n\\nThai news headlines use condensed language. Learn to decode them for current events.\\n\\n## News Categories\\n\\n| Thai | Romanization | English |\\n|------|--------------|---------|\\n| ข่าวในประเทศ | khao nai prathet | domestic news |\\n| ข่าวต่างประเทศ | khao tang prathet | international news |\\n| ข่าวเศรษฐกิจ | khao setthakit | economic news |\\n| ข่าวกีฬา | khao kila | sports news |\\n\\n## Common News Words\\n\\n| Thai | Romanization | English |\\n|------|--------------|---------|\\n| รัฐบาล | ratthaban | government |\\n| นายกรัฐมนตรี | nayok ratthamontri | prime minister |\\n| ประชุม | prachum | meeting |\\n| ประกาศ | prakat | announce |\\n\\n## Action Words\\n\\n| Thai | Romanization | English |\\n|------|--------------|---------|\\n| เปิดเผย | poet phoeni | reveal |\\n| ยืนยัน | yuen yan | confirm |\\n| ปฏิเสธ | patiseth | deny |\\n| เรียกร้อง | riak rong | demand |\\n\\n## Weather & Events\\n\\n| Thai | Romanization | English |\\n|------|--------------|---------|\\n| พายุ | phayu | storm |\\n| น้ำท่วม | nam thuam | flood |\\n| แผ่นดินไหว | phaen din wai | earthquake |\\n| อากาศร้อน | akat ron | hot weather |\\n\\n## Sample Headlines\\n\\n**รัฐบาลประกาศมาตรการใหม่**\\n*ratthaban prakat mattrakan mai*\\nGovernment announces new measures\\n\\n**พายุเข้าภาคใต้ เตือนประชาชนระวัง**\\n*phayu khao phak tai tuean prachachon rawang*\\nStorm enters south, citizens warned to be careful\\n\\n## Practice Exercises\\n\\n:::exercise{id=\\\"reading-7-news-categories\\\" type=\\\"matching\\\" title=\\\"News Category Recognition\\\" skill=\\\"word-recognition\\\" objectiveId=\\\"obj-r7-news-vocab\\\"}\\n\\n**Question:** Match each news category to its Thai name\\n\\n- Domestic news\\n- International news\\n- Economic news\\n- Sports news\\n\\n**Answer:**\\n\\n- Domestic news → ข่าวในประเทศ\\n- International news → ข่าวต่างประเทศ\\n- Economic news → ข่าวเศรษฐกิจ\\n- Sports news → ข่าวกีฬา\\n\\n**Explanation:** ข่าว means \\\"news\\\". The word after ข่าว indicates the category. ในประเทศ means \\\"in country\\\" (domestic), ต่างประเทศ means \\\"foreign country\\\" (international).\\n\\n:::\\n\\n:::exercise{id=\\\"reading-7-headline-structure\\\" type=\\\"fill-in-blank\\\" title=\\\"Headline Structure\\\" skill=\\\"pattern-recognition\\\" objectiveId=\\\"obj-r7-headline-structure\\\"}\\n\\n**Question:** How are Thai news headlines structured?\\n\\n**Answer:**\\n\\nThai headlines are condensed and often omit:\\n- Articles (no \\\"the\\\", \\\"a\\\")\\n- Auxiliary verbs (often implied)\\n- Subject pronouns (often dropped)\\n\\nExample: \\\"รัฐบาลประกาศมาตรการใหม่\\\" = \\\"Government announces new measures\\\" (no \\\"the\\\" before government, no \\\"has\\\" before announces).\\n\\n**Explanation:** Headlines use the most essential words. They're written in a condensed style to save space and grab attention. Understanding this helps decode them.\\n\\n:::\\n\\n:::exercise{id=\\\"reading-7-news-vocab\\\" type=\\\"multiple-choice\\\" title=\\\"Common News Vocabulary\\\" skill=\\\"reading-comprehension\\\" objectiveId=\\\"obj-r7-condensed-text\\\"}\\n\\n**Question:** What does \\\"รัฐบาล\\\" mean in news headlines?\\n\\n**Options:**\\n- Prime Minister\\n- Government\\n- Parliament\\n- Ministry\\n\\n**Answer:** 2\\n\\n**Explanation:** รัฐบาล means \\\"government\\\". It appears frequently in news. นายกรัฐมนตรี means \\\"prime minister\\\". Learning these common news words helps you understand headlines quickly.\\n\\n:::\\n\\n## What's Next\\n\\nIn Lesson 8, you'll learn to read official notices and announcements — understand formal Thai writing and notice patterns.\\n\""],"names":["lesson07"],"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;"}
@@ -16,11 +16,23 @@ metadata:
16
16
  estimatedTime: 25
17
17
  prerequisites:
18
18
  - thai-script-lesson-07
19
- objectives:
20
- - "Learn 4 Sanskrit-derived consonants"
21
- - "Understand when these rare consonants appear"
22
- - "Practice reading formal and loanwords"
23
- - "Distinguish multiple S consonants"
19
+ learningObjectives:
20
+ - id: obj-rare1-recognition
21
+ description: "Learn 4 Sanskrit-derived consonants"
22
+ skill: character-recognition
23
+ references: [woman, monk, pavilion, hermit]
24
+ - id: obj-rare-usage
25
+ description: "Understand when these rare consonants appear"
26
+ skill: character-class-identification
27
+ references: [woman, monk, pavilion, hermit]
28
+ - id: obj-formal-reading
29
+ description: "Practice reading formal and loanwords"
30
+ skill: character-sound-mapping
31
+ references: [woman, monk, pavilion, hermit]
32
+ - id: obj-s-consonants
33
+ description: "Distinguish multiple S consonants"
34
+ skill: character-recognition
35
+ references: [pavilion, hermit]
24
36
  ---
25
37
 
26
38
  # บทที่ 8 (Lesson 8) — Rare Consonants I
@@ -38,13 +50,13 @@ While less frequent, you'll encounter them in everyday Thai through common borro
38
50
 
39
51
  :::character-set{id="thai-rare-consonants-1" title="Rare Consonants I"}
40
52
 
41
- ::character{id="th-woman" char="ญ" name="ญ หญิง (yɔɔ yǐng)" nativeName="ญ หญิง" transliteration="y/n" charType="consonant"}
53
+ ::character{id="woman" canonicalRef="woman" data:class="low" char="ญ" name="ญ หญิง (yɔɔ yǐng)" nativeName="ญ หญิง" transliteration="y/n" charType="consonant"}
42
54
 
43
- ::character{id="th-monk" char="ณ" name="ณ เณร (nɔɔ neen)" nativeName="ณ เณร" transliteration="n" charType="consonant"}
55
+ ::character{id="monk" canonicalRef="monk" data:class="low" char="ณ" name="ณ เณร (nɔɔ neen)" nativeName="ณ เณร" transliteration="n" charType="consonant"}
44
56
 
45
- ::character{id="th-pavilion" char="ศ" name="ศ ศาลา (sɔ̌ɔ sǎa-laa)" nativeName="ศ ศาลา" transliteration="s/t" charType="consonant"}
57
+ ::character{id="pavilion" canonicalRef="pavilion" data:class="high" char="ศ" name="ศ ศาลา (sɔ̌ɔ sǎa-laa)" nativeName="ศ ศาลา" transliteration="s/t" charType="consonant"}
46
58
 
47
- ::character{id="th-hermit" char="ษ" name="ษ ฤๅษี (sɔ̌ɔ rʉʉ-sǐi)" nativeName="ษ ฤๅษี" transliteration="s/t" charType="consonant"}
59
+ ::character{id="hermit" canonicalRef="hermit" data:class="high" char="ษ" name="ษ ฤๅษี (sɔ̌ɔ rʉʉ-sǐi)" nativeName="ษ ฤๅษี" transliteration="s/t" charType="consonant"}
48
60
 
49
61
  :::
50
62
 
@@ -155,7 +167,7 @@ While you may not use royal language actively, you'll encounter it in formal con
155
167
 
156
168
  ## Practice Exercises
157
169
 
158
- :::exercise{id="rare-1-s-consonants" type="fill-in-blank" title="The Three S Consonants"}
170
+ :::exercise{id="rare-1-s-consonants" type="fill-in-blank" title="The Three S Consonants" skill="character-recognition" tests="pavilion,hermit" objectiveId="obj-s-consonants"}
159
171
 
160
172
  **Question:** Thai has three consonants all pronounced /s/ and all high-class. Which are they?
161
173
 
@@ -169,7 +181,7 @@ While you may not use royal language actively, you'll encounter it in formal con
169
181
 
170
182
  :::
171
183
 
172
- :::exercise{id="rare-1-yn-shift" type="multiple-choice" title="The ญ Sound Change"}
184
+ :::exercise{id="rare-1-yn-shift" type="multiple-choice" title="The ญ Sound Change" skill="character-sound-mapping" tests="woman" objectiveId="obj-formal-reading"}
173
185
 
174
186
  **Question:** The consonant ญ makes which sound(s)?
175
187
 
@@ -185,7 +197,7 @@ While you may not use royal language actively, you'll encounter it in formal con
185
197
 
186
198
  :::
187
199
 
188
- :::exercise{id="rare-1-formal-recognition" type="matching" title="Formal vs Everyday"}
200
+ :::exercise{id="rare-1-formal-recognition" type="matching" title="Formal vs Everyday" skill="character-recognition" tests="pavilion,woman" objectiveId="obj-rare-usage"}
189
201
 
190
202
  **Question:** Match each word to whether it uses rare consonants (formal) or common consonants (everyday)
191
203
 
@@ -212,4 +224,4 @@ In Lesson 9, you'll learn the **obsolete and archaic consonants** — characters
212
224
  export {
213
225
  n as default
214
226
  };
215
- //# sourceMappingURL=lesson-08-CeDWopKc.js.map
227
+ //# sourceMappingURL=lesson-08-18gscaS0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-08-18gscaS0.js","sources":["../src/syllabi/alphabet/lessons/lesson-08.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: thai-script-lesson-08\\ntitle: \\\"บทที่ 8 — พยัญชนะหายาก I\\\"\\ndescription: \\\"Rare Consonants Part 1: ญ ณ ศ ษ — Sanskrit-derived formal consonants\\\"\\norder: 8\\nparentId: thai-script-alphabet\\ndifficulty: intermediate\\ncefrLevel: A2\\ncategories:\\n - consonants\\n - rare-consonants\\n - sanskrit-origin\\n - advanced-characters\\nmetadata:\\n estimatedTime: 25\\n prerequisites:\\n - thai-script-lesson-07\\n learningObjectives:\\n - id: obj-rare1-recognition\\n description: \\\"Learn 4 Sanskrit-derived consonants\\\"\\n skill: character-recognition\\n references: [woman, monk, pavilion, hermit]\\n - id: obj-rare-usage\\n description: \\\"Understand when these rare consonants appear\\\"\\n skill: character-class-identification\\n references: [woman, monk, pavilion, hermit]\\n - id: obj-formal-reading\\n description: \\\"Practice reading formal and loanwords\\\"\\n skill: character-sound-mapping\\n references: [woman, monk, pavilion, hermit]\\n - id: obj-s-consonants\\n description: \\\"Distinguish multiple S consonants\\\"\\n skill: character-recognition\\n references: [pavilion, hermit]\\n---\\n\\n# บทที่ 8 (Lesson 8) — Rare Consonants I\\n\\n## Introduction\\n\\nThese consonants are considered **rare** (หายาก) because they appear mainly in:\\n- Sanskrit and Pali loanwords\\n- Formal or royal vocabulary\\n- Literary and religious texts\\n\\nWhile less frequent, you'll encounter them in everyday Thai through common borrowed words.\\n\\n## Characters\\n\\n:::character-set{id=\\\"thai-rare-consonants-1\\\" title=\\\"Rare Consonants I\\\"}\\n\\n::character{id=\\\"woman\\\" canonicalRef=\\\"woman\\\" data:class=\\\"low\\\" char=\\\"ญ\\\" name=\\\"ญ หญิง (yɔɔ yǐng)\\\" nativeName=\\\"ญ หญิง\\\" transliteration=\\\"y/n\\\" charType=\\\"consonant\\\"}\\n\\n::character{id=\\\"monk\\\" canonicalRef=\\\"monk\\\" data:class=\\\"low\\\" char=\\\"ณ\\\" name=\\\"ณ เณร (nɔɔ neen)\\\" nativeName=\\\"ณ เณร\\\" transliteration=\\\"n\\\" charType=\\\"consonant\\\"}\\n\\n::character{id=\\\"pavilion\\\" canonicalRef=\\\"pavilion\\\" data:class=\\\"high\\\" char=\\\"ศ\\\" name=\\\"ศ ศาลา (sɔ̌ɔ sǎa-laa)\\\" nativeName=\\\"ศ ศาลา\\\" transliteration=\\\"s/t\\\" charType=\\\"consonant\\\"}\\n\\n::character{id=\\\"hermit\\\" canonicalRef=\\\"hermit\\\" data:class=\\\"high\\\" char=\\\"ษ\\\" name=\\\"ษ ฤๅษี (sɔ̌ɔ rʉʉ-sǐi)\\\" nativeName=\\\"ษ ฤๅษี\\\" transliteration=\\\"s/t\\\" charType=\\\"consonant\\\"}\\n\\n:::\\n\\n## The Three S Sounds (Yes, Three!)\\n\\nThai has three consonants all pronounced /s/:\\n\\n| Consonant | Class | Mnemonic | Common Usage |\\n|-----------|-------|----------|--------------|\\n| ส | High | Tiger | Everyday words |\\n| ศ | High | Pavilion | Sanskrit formal |\\n| ษ | High | Hermit | Sanskrit formal |\\n\\nAll three are **high-class** and **sound identical**. The difference is purely spelling based on etymology:\\n\\n- **สี** (color) — everyday word, uses ส\\n- **ศิลปะ** (art) — Sanskrit origin, uses ศ\\n- **กษัตริย์** (king) — Sanskrit origin, uses ษ\\n\\n### Which S to Use?\\n\\nNo pronunciation rule helps — you must memorize. Some patterns:\\n\\n1. **ศ** often appears in words about religion, royalty, culture:\\n - ศาสนา (religion)\\n - ศิลปะ (art)\\n - ศึกษา (study, education)\\n\\n2. **ษ** is the rarest, often in:\\n - Words with ฤ vowel\\n - Royal/formal titles\\n - กษัตริย์ (king)\\n\\n3. **ส** is the default for native Thai words and new loanwords\\n\\n## The Two N Sounds\\n\\nThai also has two consonants pronounced /n/:\\n\\n| Consonant | Class | Position |\\n|-----------|-------|----------|\\n| น | Low | Common, any position |\\n| ณ | Low | Rare, mainly Sanskrit words |\\n\\nBoth low-class, both sound /n/. Usage examples:\\n- **นา** (rice field) — common น\\n- **เณร** (novice monk) — Sanskrit ณ\\n\\n**ณ** appears in:\\n- Buddhist vocabulary\\n- Royal language\\n- Sanskrit-derived words like คุณ (you, polite)\\n\\n## The ญ Consonant: Y That Becomes N\\n\\n**ญ** is unusual — it changes sound by position:\\n\\n| Position | Sound | Example |\\n|----------|-------|---------|\\n| Initial | Y (/y/) | ญี่ปุ่น (yîi-bpùn) \\\"Japan\\\" |\\n| Final | N (/n/) | สัญญา (sǎn-yaa) → final ญ in สัญ is /n/ |\\n\\nThis Y→N shift is unique to ญ. The mnemonic หญิง (woman) demonstrates:\\n- หญ at start = /y/ sound (with ห lifting)\\n- The word is pronounced /yǐng/\\n\\nCommon words with ญ:\\n- หญิง (woman)\\n- ญี่ปุ่น (Japan)\\n- สัญญา (promise, contract)\\n- อัญมณี (gems)\\n\\n## Formal vs Everyday Spelling\\n\\nThe same concept often has formal and everyday spellings:\\n\\n| Meaning | Formal | Everyday |\\n|---------|--------|----------|\\n| Knowledge | วิทยา | — |\\n| Art | ศิลปะ | — |\\n| To | สู่ | — |\\n\\nWhen learning vocabulary, note which spellings use rare consonants — these tend to be more formal register.\\n\\n## The Royal Language Connection\\n\\nRare consonants appear frequently in **ราชาศัพท์** (royal vocabulary):\\n- ศีรษะ (head, royal)\\n- พระราชทาน (royally bestowed)\\n- พระบรมราชานุญาต (royal permission)\\n\\nWhile you may not use royal language actively, you'll encounter it in formal contexts, news about the monarchy, and religious ceremonies.\\n\\n## Key Points\\n\\n1. **Three S consonants**: ส ศ ษ — all sound /s/, all high-class\\n2. **Two N consonants**: น ณ — both sound /n/, both low-class\\n3. **ญ changes**: Y initially, N finally\\n4. **Etymology determines spelling**: Sanskrit origin → formal consonants\\n5. **Memorize by word**: No rules predict which variant to use\\n6. **Formal register**: Rare consonants signal educated/formal writing\\n\\n## Shape Recognition\\n\\n- **ญ** has a distinctive descending tail\\n- **ณ** looks like น with an extra element\\n- **ศ and ษ** look similar to ส but with variations — ศ has a \\\"tail,\\\" ษ has a \\\"hook\\\"\\n\\n## Practice Exercises\\n\\n:::exercise{id=\\\"rare-1-s-consonants\\\" type=\\\"fill-in-blank\\\" title=\\\"The Three S Consonants\\\" skill=\\\"character-recognition\\\" tests=\\\"pavilion,hermit\\\" objectiveId=\\\"obj-s-consonants\\\"}\\n\\n**Question:** Thai has three consonants all pronounced /s/ and all high-class. Which are they?\\n\\n**Answer:**\\n\\n- ส (tiger) - everyday words\\n- ศ (pavilion) - Sanskrit/formal words\\n- ษ (hermit) - Sanskrit/formal words (rarest)\\n\\n**Explanation:** All three make the same /s/ sound and are high-class. The difference is purely spelling based on etymology. ส is for everyday words, ศ and ษ for Sanskrit-derived formal vocabulary.\\n\\n:::\\n\\n:::exercise{id=\\\"rare-1-yn-shift\\\" type=\\\"multiple-choice\\\" title=\\\"The ญ Sound Change\\\" skill=\\\"character-sound-mapping\\\" tests=\\\"woman\\\" objectiveId=\\\"obj-formal-reading\\\"}\\n\\n**Question:** The consonant ญ makes which sound(s)?\\n\\n**Options:**\\n- Only Y sound\\n- Only N sound\\n- Y initially, N finally\\n- Always silent\\n\\n**Answer:** 3\\n\\n**Explanation:** ญ is unique — it makes /y/ sound initially (like in หญิง \\\"woman\\\") but becomes /n/ in final position (like in สัญญา \\\"promise\\\"). This Y→N shift is unique to ญ.\\n\\n:::\\n\\n:::exercise{id=\\\"rare-1-formal-recognition\\\" type=\\\"matching\\\" title=\\\"Formal vs Everyday\\\" skill=\\\"character-recognition\\\" tests=\\\"pavilion,woman\\\" objectiveId=\\\"obj-rare-usage\\\"}\\n\\n**Question:** Match each word to whether it uses rare consonants (formal) or common consonants (everyday)\\n\\n- ศิลปะ (art)\\n- สี (color)\\n- ญี่ปุ่น (Japan)\\n- นา (rice field)\\n\\n**Answer:**\\n\\n- ศิลปะ - uses ศ (rare, formal)\\n- สี - uses ส (common, everyday)\\n- ญี่ปุ่น - uses ญ (rare, formal)\\n- นา - uses น (common, everyday)\\n\\n**Explanation:** Rare consonants (ศ ษ ญ ณ) typically appear in Sanskrit-derived words, formal vocabulary, and royal language. Everyday words use common consonants (ส น).\\n\\n:::\\n\\n## What's Next\\n\\nIn Lesson 9, you'll learn the **obsolete and archaic consonants** — characters that exist in the alphabet but are rarely used in modern Thai.\\n\""],"names":["lesson08"],"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;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -14,10 +14,16 @@ metadata:
14
14
  estimatedTime: 30
15
15
  prerequisites:
16
16
  - thai-grammar-lesson-07
17
- objectives:
18
- - "Connect sentences with conjunctions"
19
- - "Express cause and effect"
20
- - "Use conditional structures"
17
+ learningObjectives:
18
+ - id: obj-08-conjunctions
19
+ description: "Connect sentences with conjunctions"
20
+ skill: pattern-application
21
+ - id: obj-08-cause-effect
22
+ description: "Express cause and effect"
23
+ skill: word-production
24
+ - id: obj-08-conditionals
25
+ description: "Use conditional structures"
26
+ skill: pattern-application
21
27
  ---
22
28
 
23
29
  # บทที่ 8 (Lesson 8) — Conjunctions
@@ -135,7 +141,7 @@ Conjunctions connect ideas and create complex sentences. Thai conjunctions work
135
141
 
136
142
  ## Practice Exercises
137
143
 
138
- :::exercise{id="grammar-8-conjunction-choice" type="multiple-choice" title="Choosing Conjunctions"}
144
+ :::exercise{id="grammar-8-conjunction-choice" type="multiple-choice" title="Choosing Conjunctions" skill="word-recognition" objectiveId="obj-08-conjunctions"}
139
145
 
140
146
  **Question:** Which conjunction do you use to join "rice" and "curry"?
141
147
 
@@ -151,7 +157,7 @@ Conjunctions connect ideas and create complex sentences. Thai conjunctions work
151
157
 
152
158
  :::
153
159
 
154
- :::exercise{id="grammar-8-cause-effect" type="matching" title="Cause and Effect Patterns"}
160
+ :::exercise{id="grammar-8-cause-effect" type="matching" title="Cause and Effect Patterns" skill="pattern-recognition" objectiveId="obj-08-cause-effect"}
155
161
 
156
162
  **Question:** Match each pattern to its structure
157
163
 
@@ -169,7 +175,7 @@ Conjunctions connect ideas and create complex sentences. Thai conjunctions work
169
175
 
170
176
  :::
171
177
 
172
- :::exercise{id="grammar-8-conditional" type="fill-in-blank" title="Conditional Sentences"}
178
+ :::exercise{id="grammar-8-conditional" type="fill-in-blank" title="Conditional Sentences" skill="pattern-application" objectiveId="obj-08-conditionals"}
173
179
 
174
180
  **Question:** How do you form "if...then" sentences in Thai?
175
181
 
@@ -211,4 +217,4 @@ Congratulations on completing the Grammar syllabus! Continue building your skill
211
217
  export {
212
218
  n as default
213
219
  };
214
- //# sourceMappingURL=lesson-08-Cyzy_VeP.js.map
220
+ //# sourceMappingURL=lesson-08-2kBUq_B2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-08-2kBUq_B2.js","sources":["../src/syllabi/grammar/lessons/lesson-08.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: thai-grammar-lesson-08\\ntitle: \\\"บทที่ 8 — คำเชื่อม\\\"\\ndescription: \\\"Conjunctions: And, but, because, so\\\"\\norder: 8\\nparentId: thai-grammar\\ndifficulty: intermediate\\ncefrLevel: B1\\ncategories:\\n - grammar\\n - conjunctions\\nmetadata:\\n estimatedTime: 30\\n prerequisites:\\n - thai-grammar-lesson-07\\n learningObjectives:\\n - id: obj-08-conjunctions\\n description: \\\"Connect sentences with conjunctions\\\"\\n skill: pattern-application\\n - id: obj-08-cause-effect\\n description: \\\"Express cause and effect\\\"\\n skill: word-production\\n - id: obj-08-conditionals\\n description: \\\"Use conditional structures\\\"\\n skill: pattern-application\\n---\\n\\n# บทที่ 8 (Lesson 8) — Conjunctions\\n\\n## Introduction\\n\\nConjunctions connect ideas and create complex sentences. Thai conjunctions work similarly to English ones.\\n\\n## Basic Conjunctions\\n\\n| Thai | Romanization | Meaning |\\n|------|--------------|---------|\\n| และ | láe | and |\\n| กับ | gàp | and/with |\\n| หรือ | rǔue | or |\\n| แต่ | dtàe | but |\\n| แต่ว่า | dtàe-wâa | but (stronger) |\\n\\n## \\\"And\\\": และ (láe) vs กับ (gàp)\\n\\n| Use | Conjunction | Example |\\n|-----|-------------|---------|\\n| Joining clauses | และ | ผมกินข้าว**และ**ดื่มน้ำ (I eat rice and drink water) |\\n| Joining nouns | กับ | ข้าว**กับ**แกง (rice and curry) |\\n| \\\"With\\\" | กับ | ไป**กับ**เพื่อน (go with friend) |\\n\\n## \\\"But\\\": แต่ (dtàe)\\n\\n| Thai | Meaning |\\n|------|---------|\\n| อร่อยแต่แพง | Delicious but expensive |\\n| อยากไปแต่ไม่มีเวลา | Want to go but don't have time |\\n| เขาเก่งแต่ขี้เกียจ | He's smart but lazy |\\n\\n## Cause: เพราะ (phráw) - Because\\n\\n**Pattern: Result + เพราะ + Cause** (or vice versa)\\n\\n| Thai | Meaning |\\n|------|---------|\\n| ไม่ไปเพราะป่วย | Not going because sick |\\n| เพราะฝนตกเลยไม่ไป | Because it rained, didn't go |\\n| เหนื่อยเพราะทำงานหนัก | Tired because work hard |\\n\\n## Result: เลย (ləəi) / ก็เลย (gâw ləəi) - So\\n\\n**Pattern: Cause + เลย + Result**\\n\\n| Thai | Meaning |\\n|------|---------|\\n| หิวเลยกินข้าว | Hungry, so ate |\\n| ฝนตกก็เลยไม่ไป | It rained, so didn't go |\\n| ไม่สบายเลยนอนอยู่บ้าน | Not feeling well, so staying home |\\n\\n## Conditional: ถ้า (thâa) - If\\n\\n**Pattern: ถ้า + Condition, Result**\\n\\n| Thai | Meaning |\\n|------|---------|\\n| ถ้าฝนตกจะไม่ไป | If it rains, won't go |\\n| ถ้าหิวก็กิน | If hungry, then eat |\\n| ถ้ามีเวลาจะโทรหา | If have time, will call |\\n\\n## \\\"When\\\": เมื่อ (mûuea) / ตอน (dtawn)\\n\\n| Thai | Meaning |\\n|------|---------|\\n| เมื่อเด็กๆ | when (I was) a child |\\n| ตอนกินข้าว | when eating |\\n| เมื่อไหร่ก็ได้ | whenever (is fine) |\\n\\n## \\\"Although\\\": แม้ว่า (máe-wâa) / ถึงแม้ว่า (thǔeng máe-wâa)\\n\\n| Thai | Meaning |\\n|------|---------|\\n| แม้ว่าจะเหนื่อยแต่ก็ไป | Although tired, still went |\\n| ถึงแม้ว่าแพงแต่ก็ซื้อ | Although expensive, still bought |\\n\\n## \\\"So that\\\": เพื่อ (phûuea)\\n\\n| Thai | Meaning |\\n|------|---------|\\n| เรียนเพื่อสอบ | Study in order to test |\\n| ทำงานเพื่อหาเงิน | Work in order to make money |\\n\\n## Common Patterns\\n\\n| Pattern | Example | Meaning |\\n|---------|---------|---------|\\n| ถ้า...ก็... | ถ้าไม่ไปก็ไม่เป็นไร | If not go, it's okay |\\n| ...เพราะ... | ไปเพราะอยาก | Went because wanted to |\\n| ...เลย... | หิวเลยกิน | Hungry so ate |\\n| แม้ว่า...แต่... | แม้ว่าเหนื่อยแต่สนุก | Although tired but fun |\\n\\n## Key Points\\n\\n1. **และ** - and (joining clauses)\\n2. **กับ** - and/with (joining nouns)\\n3. **แต่** - but\\n4. **เพราะ** - because\\n5. **เลย** - so/therefore\\n6. **ถ้า** - if\\n\\n## Conjunction Pattern Table\\n\\n| Conjunction | Use | Pattern | Example |\\n|-------------|-----|--------|---------|\\n| และ | Join clauses | Clause + และ + Clause | กินข้าวและดื่มน้ำ |\\n| กับ | Join nouns/with | Noun + กับ + Noun | ข้าวกับแกง |\\n| แต่ | Contrast | Statement + แต่ + Contrast | อร่อยแต่แพง |\\n| เพราะ | Cause | Result + เพราะ + Cause | ไม่ไปเพราะป่วย |\\n| เลย | Result | Cause + เลย + Result | หิวเลยกิน |\\n| ถ้า | Condition | ถ้า + Condition, Result | ถ้าฝนตกจะไม่ไป |\\n\\n## Practice Exercises\\n\\n:::exercise{id=\\\"grammar-8-conjunction-choice\\\" type=\\\"multiple-choice\\\" title=\\\"Choosing Conjunctions\\\" skill=\\\"word-recognition\\\" objectiveId=\\\"obj-08-conjunctions\\\"}\\n\\n**Question:** Which conjunction do you use to join \\\"rice\\\" and \\\"curry\\\"?\\n\\n**Options:**\\n- และ\\n- กับ\\n- แต่\\n- หรือ\\n\\n**Answer:** 2\\n\\n**Explanation:** Use กับ to join nouns. และ is for joining clauses (verbs/actions). So \\\"rice and curry\\\" is ข้าวกับแกง, not ข้าวและแกง.\\n\\n:::\\n\\n:::exercise{id=\\\"grammar-8-cause-effect\\\" type=\\\"matching\\\" title=\\\"Cause and Effect Patterns\\\" skill=\\\"pattern-recognition\\\" objectiveId=\\\"obj-08-cause-effect\\\"}\\n\\n**Question:** Match each pattern to its structure\\n\\n- เพราะ...เลย...\\n- ...เพราะ...\\n- ...เลย...\\n\\n**Answer:**\\n\\n- เพราะ...เลย... → Because [cause], so [result] (formal pattern)\\n- ...เพราะ... → [Result] because [cause] (common pattern)\\n- ...เลย... → [Cause] so [result] (simple pattern)\\n\\n**Explanation:** Thai allows flexible word order for cause and effect. เพราะ means \\\"because\\\" and เลย means \\\"so/therefore\\\". You can use them together or separately.\\n\\n:::\\n\\n:::exercise{id=\\\"grammar-8-conditional\\\" type=\\\"fill-in-blank\\\" title=\\\"Conditional Sentences\\\" skill=\\\"pattern-application\\\" objectiveId=\\\"obj-08-conditionals\\\"}\\n\\n**Question:** How do you form \\\"if...then\\\" sentences in Thai?\\n\\n**Answer:**\\n\\nUse the pattern: **ถ้า + [condition], [result]**. For example:\\n- ถ้าฝนตกจะไม่ไป (If it rains, won't go)\\n- ถ้าหิวก็กิน (If hungry, then eat)\\n\\nOften ก็ (then) is used in the result clause, but it's optional. The key is ถ้า at the beginning.\\n\\n**Explanation:** ถ้า introduces the condition. The result can follow directly or use ก็ for emphasis. This is similar to English \\\"if...then\\\" but more flexible in structure.\\n\\n:::\\n\\n## Course Complete!\\n\\nยินดีด้วย! (Congratulations!)\\n\\nYou've completed Thai Grammar! You now understand:\\n- Sentence structure (SVO)\\n- Questions and negation\\n- Classifiers\\n- Polite particles\\n- Time expressions\\n- Comparisons\\n- Conjunctions\\n\\nKeep practicing, and your Thai will become more natural every day!\\n\\n## What's Next\\n\\nCongratulations on completing the Grammar syllabus! Continue building your skills by exploring other syllabi:\\n- **Dialogue** - Practice conversations in real situations\\n- **Essentials** - Master everyday phrases and vocabulary\\n- **Food** - Learn to order and discuss Thai cuisine\\n- **Reading** - Apply your grammar knowledge to real texts\\n\""],"names":["lesson08"],"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;"}
@@ -15,11 +15,19 @@ metadata:
15
15
  estimatedTime: 30
16
16
  prerequisites:
17
17
  - thai-food-lesson-07
18
- objectives:
19
- - "Communicate food allergies"
20
- - "Explain dietary restrictions"
21
- - "Make customization requests"
22
- - "Handle food emergencies"
18
+ learningObjectives:
19
+ - id: obj-communicate-allergies
20
+ description: "Communicate food allergies"
21
+ skill: pattern-application
22
+ - id: obj-explain-dietary-restrictions
23
+ description: "Explain dietary restrictions"
24
+ skill: pattern-application
25
+ - id: obj-make-customization-requests
26
+ description: "Make customization requests"
27
+ skill: word-production
28
+ - id: obj-handle-food-emergencies
29
+ description: "Handle food emergencies"
30
+ skill: pattern-application
23
31
  ---
24
32
 
25
33
  # บทที่ 8 (Lesson 8) — Special Requests
@@ -206,7 +214,7 @@ Thank you)
206
214
 
207
215
  ## Practice Exercises
208
216
 
209
- :::exercise{id="food-8-allergy-communication" type="matching" title="Allergy Communication"}
217
+ :::exercise{id="food-8-allergy-communication" type="matching" title="Allergy Communication" skill="pattern-application" objectiveId="obj-communicate-allergies"}
210
218
 
211
219
  **Question:** Match each allergy phrase to its meaning
212
220
 
@@ -226,7 +234,7 @@ Thank you)
226
234
 
227
235
  :::
228
236
 
229
- :::exercise{id="food-8-dietary-restrictions" type="fill-in-blank" title="Dietary Restrictions"}
237
+ :::exercise{id="food-8-dietary-restrictions" type="fill-in-blank" title="Dietary Restrictions" skill="pattern-application" objectiveId="obj-explain-dietary-restrictions"}
230
238
 
231
239
  **Question:** How do you communicate these dietary needs?
232
240
 
@@ -246,7 +254,7 @@ Thank you)
246
254
 
247
255
  :::
248
256
 
249
- :::exercise{id="food-8-emergency-phrases" type="multiple-choice" title="Food Emergency Phrases"}
257
+ :::exercise{id="food-8-emergency-phrases" type="multiple-choice" title="Food Emergency Phrases" skill="pattern-application" objectiveId="obj-handle-food-emergencies"}
250
258
 
251
259
  **Question:** What should you say if you're having a severe allergic reaction?
252
260
 
@@ -276,4 +284,4 @@ Congratulations! You've completed the Thai Food course. You can now:
276
284
  export {
277
285
  n as default
278
286
  };
279
- //# sourceMappingURL=lesson-08-BYfkPBkH.js.map
287
+ //# sourceMappingURL=lesson-08-BP5lpiGe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-08-BP5lpiGe.js","sources":["../src/syllabi/food/lessons/lesson-08.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: thai-food-lesson-08\\ntitle: \\\"บทที่ 8 — คำขอพิเศษ\\\"\\ndescription: \\\"Special Requests: Allergies, dietary restrictions, and customizations\\\"\\norder: 8\\nparentId: thai-food\\ndifficulty: beginner\\ncefrLevel: A2\\ncategories:\\n - food\\n - dietary\\n - health\\nmetadata:\\n estimatedTime: 30\\n prerequisites:\\n - thai-food-lesson-07\\n learningObjectives:\\n - id: obj-communicate-allergies\\n description: \\\"Communicate food allergies\\\"\\n skill: pattern-application\\n - id: obj-explain-dietary-restrictions\\n description: \\\"Explain dietary restrictions\\\"\\n skill: pattern-application\\n - id: obj-make-customization-requests\\n description: \\\"Make customization requests\\\"\\n skill: word-production\\n - id: obj-handle-food-emergencies\\n description: \\\"Handle food emergencies\\\"\\n skill: pattern-application\\n---\\n\\n# บทที่ 8 (Lesson 8) — Special Requests\\n\\n## Introduction\\n\\nWhether you have allergies, dietary restrictions, or simply preferences, knowing how to communicate them is essential for safe and enjoyable eating in Thailand. This lesson covers all the phrases you need.\\n\\n## Allergies (แพ้อาหาร)\\n\\n:::vocabulary-set{id=\\\"thai-allergy\\\" title=\\\"Allergy Vocabulary\\\"}\\n\\n::vocab-item{id=\\\"phae\\\" word=\\\"แพ้\\\" pronunciation=\\\"phâe\\\" meaning=\\\"allergic to\\\"}\\n\\n::vocab-item{id=\\\"phae-aahaan\\\" word=\\\"แพ้อาหาร\\\" pronunciation=\\\"phâe aa-hǎan\\\" meaning=\\\"food allergy\\\"}\\n\\n::vocab-item{id=\\\"antharai\\\" word=\\\"อันตราย\\\" pronunciation=\\\"an-dtà-raai\\\" meaning=\\\"dangerous\\\"}\\n\\n::vocab-item{id=\\\"mai-dai\\\" word=\\\"ไม่ได้\\\" pronunciation=\\\"mâi dâi\\\" meaning=\\\"cannot/not able\\\"}\\n\\n::vocab-item{id=\\\"kin-mai-dai\\\" word=\\\"กินไม่ได้\\\" pronunciation=\\\"gin mâi dâi\\\" meaning=\\\"cannot eat\\\"}\\n\\n:::\\n\\n### Common Allergy Statements\\n\\n| Thai | Meaning |\\n|------|---------|\\n| ผมแพ้ถั่ว | I'm allergic to peanuts |\\n| ฉันแพ้อาหารทะเล | I'm allergic to seafood |\\n| แพ้กุ้ง | Allergic to shrimp |\\n| แพ้นม | Allergic to milk/dairy |\\n| แพ้ไข่ | Allergic to eggs |\\n| แพ้กลูเตน | Allergic to gluten |\\n\\n### Allergy Alert Phrases\\n\\n| Thai | Meaning |\\n|------|---------|\\n| แพ้มาก อาจตายได้ | Severe allergy, could be fatal |\\n| ต้องระวังมาก | Must be very careful |\\n| มี...ไหมครับ | Does this contain...? |\\n| ใส่...ไหมครับ | Is there... in this? |\\n\\n## Dietary Restrictions\\n\\n:::vocabulary-set{id=\\\"thai-dietary\\\" title=\\\"Dietary Terms\\\"}\\n\\n::vocab-item{id=\\\"mangsawirat\\\" word=\\\"มังสวิรัติ\\\" pronunciation=\\\"mang-sà-wí-rát\\\" meaning=\\\"vegetarian\\\"}\\n\\n::vocab-item{id=\\\"je\\\" word=\\\"เจ\\\" pronunciation=\\\"jee\\\" meaning=\\\"vegan (Buddhist)\\\"}\\n\\n::vocab-item{id=\\\"halal\\\" word=\\\"ฮาลาล\\\" pronunciation=\\\"haa-laan\\\" meaning=\\\"halal\\\"}\\n\\n::vocab-item{id=\\\"mai-kin-nuea\\\" word=\\\"ไม่กินเนื้อ\\\" pronunciation=\\\"mâi gin nʉ́a\\\" meaning=\\\"don't eat beef\\\"}\\n\\n::vocab-item{id=\\\"mai-kin-muu\\\" word=\\\"ไม่กินหมู\\\" pronunciation=\\\"mâi gin mǔu\\\" meaning=\\\"don't eat pork\\\"}\\n\\n:::\\n\\n### Vegetarian & Vegan\\n\\n| Statement | Meaning |\\n|-----------|---------|\\n| ผมกินเจ | I eat vegan |\\n| ฉันเป็นมังสวิรัติ | I'm vegetarian |\\n| ไม่กินเนื้อสัตว์ | Don't eat meat |\\n| กินแต่ผัก | Only eat vegetables |\\n| ไม่กินเนื้อแต่กินไข่ได้ | No meat but eggs okay |\\n\\n### Religious Dietary Needs\\n\\n| Thai | Meaning |\\n|------|---------|\\n| ต้องการอาหารฮาลาล | Need halal food |\\n| ร้านนี้มีอาหารฮาลาลไหม | Does this restaurant have halal food? |\\n| ไม่กินหมูครับ | I don't eat pork |\\n| มีเนื้อวัวไหม | Is there beef in this? |\\n\\n## Making Specific Requests\\n\\n### Ingredient Removal\\n\\n| Thai | Meaning |\\n|------|---------|\\n| ไม่ใส่ผักชี | No cilantro |\\n| ไม่ใส่ถั่วลิสง | No peanuts |\\n| ไม่ใส่น้ำปลา | No fish sauce |\\n| ไม่ใส่กะปิ | No shrimp paste |\\n| ไม่ใส่หอยนางรม | No oyster sauce |\\n\\n### Substitutions\\n\\n| Thai | Meaning |\\n|------|---------|\\n| เปลี่ยนเป็นเต้าหู้ | Change to tofu |\\n| ใช้ซอสถั่วเหลืองแทน | Use soy sauce instead |\\n| เอาซอสแยก | Sauce on the side |\\n| ไม่ต้องใส่ซอส | No sauce needed |\\n\\n## Health-Related Requests\\n\\n:::vocabulary-set{id=\\\"thai-health\\\" title=\\\"Health Terms\\\"}\\n\\n::vocab-item{id=\\\"bao-wan\\\" word=\\\"เบาหวาน\\\" pronunciation=\\\"bao wǎan\\\" meaning=\\\"diabetes\\\"}\\n\\n::vocab-item{id=\\\"khwam-dan\\\" word=\\\"ความดัน\\\" pronunciation=\\\"khwaam dan\\\" meaning=\\\"blood pressure\\\"}\\n\\n::vocab-item{id=\\\"mai-sai-phong-churot\\\" word=\\\"ไม่ใส่ผงชูรส\\\" pronunciation=\\\"mâi sài phǒng chuu rót\\\" meaning=\\\"no MSG\\\"}\\n\\n::vocab-item{id=\\\"klua-sai\\\" word=\\\"เกลือน้อย\\\" pronunciation=\\\"glʉa nɔ́ɔi\\\" meaning=\\\"low salt\\\"}\\n\\n:::\\n\\n### Health-Conscious Requests\\n\\n| Thai | Meaning |\\n|------|---------|\\n| ไม่ใส่ผงชูรส | No MSG |\\n| เกลือน้อย | Low salt |\\n| น้ำตาลน้อย | Low sugar |\\n| ไม่ใส่น้ำมัน | No oil |\\n| นึ่งแทนทอด | Steam instead of fry |\\n\\n## Emergency Phrases\\n\\n:::vocabulary-set{id=\\\"thai-food-emergency\\\" title=\\\"Emergency Phrases\\\"}\\n\\n::vocab-item{id=\\\"mai-sabai\\\" word=\\\"ไม่สบาย\\\" pronunciation=\\\"mâi sà-baai\\\" meaning=\\\"not feeling well\\\"}\\n\\n::vocab-item{id=\\\"puad-thong\\\" word=\\\"ปวดท้อง\\\" pronunciation=\\\"bpùat thɔ́ɔng\\\" meaning=\\\"stomachache\\\"}\\n\\n::vocab-item{id=\\\"aahaan-pen-pit\\\" word=\\\"อาหารเป็นพิษ\\\" pronunciation=\\\"aa-hǎan bpen phít\\\" meaning=\\\"food poisoning\\\"}\\n\\n::vocab-item{id=\\\"rong-phayabaan\\\" word=\\\"โรงพยาบาล\\\" pronunciation=\\\"roong pha-yaa-baan\\\" meaning=\\\"hospital\\\"}\\n\\n:::\\n\\n| Emergency Phrase | Meaning |\\n|------------------|---------|\\n| ผมแพ้อาหาร ช่วยด้วย | I'm having an allergic reaction, help! |\\n| ต้องไปโรงพยาบาล | Need to go to hospital |\\n| เรียกรถพยาบาล | Call an ambulance |\\n\\n## Sample Conversations\\n\\n**Explaining allergies:**\\n- คุณ: ผมแพ้ถั่วลิสงครับ อันนี้มีถั่วไหม (I'm allergic to peanuts. Does this have peanuts?)\\n- พนักงาน: มีค่ะ แต่ทำไม่ใส่ได้ค่ะ (Yes, but we can make it without)\\n- คุณ: ขอไม่ใส่เลยนะครับ แพ้มากครับ (Please don't add any. Severe allergy)\\n\\n**Vegetarian request:**\\n- คุณ: มีอาหารมังสวิรัติไหมครับ (Do you have vegetarian food?)\\n- พนักงาน: มีค่ะ ผัดผักรวมมีค่ะ (Yes, we have mixed vegetable stir-fry)\\n- คุณ: ใส่น้ำมันหอยไหมครับ (Does it have oyster sauce?)\\n- พนักงาน: ใส่ค่ะ ไม่ใส่ได้ค่ะ (Yes, but can make without)\\n\\n**Muslim diner:**\\n- คุณ: ร้านนี้มีอาหารฮาลาลไหมครับ (Does this restaurant have halal food?)\\n- พนักงาน: มีค่ะ ไม่ใช้หมูเลยค่ะ (Yes, we don't use pork at all)\\n\\n## Helpful Cards\\n\\nConsider having a card with your allergies written in Thai:\\n\\n```\\nผมแพ้ [ingredient]\\nกินไม่ได้ อาจเป็นอันตราย\\nกรุณาไม่ใส่ [ingredient] ในอาหาร\\nขอบคุณครับ\\n\\n(I am allergic to [ingredient]\\nI cannot eat it, it may be dangerous\\nPlease do not add [ingredient] to food\\nThank you)\\n```\\n\\n## Key Points\\n\\n1. **แพ้ = allergic to**: Critical word to know\\n2. **กินไม่ได้ = cannot eat**: Clear statement of restriction\\n3. **เจ = vegan**: Recognized Buddhist term\\n4. **มี...ไหม = is there...?**: Check before eating\\n\\n## Practice Exercises\\n\\n:::exercise{id=\\\"food-8-allergy-communication\\\" type=\\\"matching\\\" title=\\\"Allergy Communication\\\" skill=\\\"pattern-application\\\" objectiveId=\\\"obj-communicate-allergies\\\"}\\n\\n**Question:** Match each allergy phrase to its meaning\\n\\n- ผมแพ้ถั่ว\\n- แพ้มาก อาจตายได้\\n- มี...ไหมครับ\\n- ใส่...ไหมครับ\\n\\n**Answer:**\\n\\n- ผมแพ้ถั่ว → I'm allergic to peanuts\\n- แพ้มาก อาจตายได้ → Severe allergy, could be fatal (critical!)\\n- มี...ไหมครับ → Does this contain...? (checking ingredients)\\n- ใส่...ไหมครับ → Is there... in this? (checking if added)\\n\\n**Explanation:** แพ้ means \\\"allergic to\\\". For severe allergies, emphasize แพ้มาก (very allergic) or อาจตายได้ (could be fatal) to ensure the kitchen takes it seriously.\\n\\n:::\\n\\n:::exercise{id=\\\"food-8-dietary-restrictions\\\" type=\\\"fill-in-blank\\\" title=\\\"Dietary Restrictions\\\" skill=\\\"pattern-application\\\" objectiveId=\\\"obj-explain-dietary-restrictions\\\"}\\n\\n**Question:** How do you communicate these dietary needs?\\n\\n- Vegetarian\\n- Vegan (Buddhist)\\n- No pork\\n- No MSG\\n\\n**Answer:**\\n\\n- Vegetarian → มังสวิรัติ or ไม่กินเนื้อสัตว์\\n- Vegan (Buddhist) → เจ\\n- No pork → ไม่กินหมู or ไม่ใส่หมู\\n- No MSG → ไม่ใส่ผงชูรส\\n\\n**Explanation:** เจ is a recognized Buddhist vegan term. มังสวิรัติ is the general term for vegetarian. Always specify ไม่ใส่ (don't add) for ingredients you want to avoid.\\n\\n:::\\n\\n:::exercise{id=\\\"food-8-emergency-phrases\\\" type=\\\"multiple-choice\\\" title=\\\"Food Emergency Phrases\\\" skill=\\\"pattern-application\\\" objectiveId=\\\"obj-handle-food-emergencies\\\"}\\n\\n**Question:** What should you say if you're having a severe allergic reaction?\\n\\n**Options:**\\n- ไม่เป็นไร (it's okay)\\n- ผมแพ้อาหาร ช่วยด้วย (I'm having an allergic reaction, help!)\\n- ขอโทษ (sorry)\\n- ไม่สบาย (not feeling well)\\n\\n**Answer:** 2\\n\\n**Explanation:** For severe allergies, use strong language: ผมแพ้อาหาร ช่วยด้วย (I'm allergic, help!). This signals urgency. Always carry allergy cards in Thai if you have severe allergies.\\n\\n:::\\n\\n## Course Complete!\\n\\nCongratulations! You've completed the Thai Food course. You can now:\\n- ✓ Order any Thai dish confidently\\n- ✓ Describe flavors and adjust spice\\n- ✓ Navigate street food and restaurants\\n- ✓ Handle allergies and dietary needs\\n- ✓ Enjoy Thai cuisine to the fullest!\\n\\nอร่อยนะครับ! (Enjoy your meal!)\\n\""],"names":["lesson08"],"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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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-07
18
- objectives:
19
- - "Read official announcement formats"
20
- - "Understand formal Thai writing"
21
- - "Recognize notice patterns"
18
+ learningObjectives:
19
+ - id: obj-r8-announcement-formats
20
+ description: "Read official announcement formats"
21
+ skill: reading-comprehension
22
+ - id: obj-r8-formal-writing
23
+ description: "Understand formal Thai writing"
24
+ skill: word-recognition
25
+ - id: obj-r8-notice-patterns
26
+ description: "Recognize notice patterns"
27
+ skill: pattern-recognition
22
28
  ---
23
29
 
24
30
  # Short Notices
@@ -74,7 +80,7 @@ Official notices appear in buildings, offices, and public spaces. Learn their pa
74
80
 
75
81
  ## Practice Exercises
76
82
 
77
- :::exercise{id="reading-8-notice-headers" type="matching" title="Notice Header Recognition"}
83
+ :::exercise{id="reading-8-notice-headers" type="matching" title="Notice Header Recognition" skill="word-recognition" objectiveId="obj-r8-announcement-formats"}
78
84
 
79
85
  **Question:** Match each notice header to its meaning
80
86
 
@@ -94,7 +100,7 @@ Official notices appear in buildings, offices, and public spaces. Learn their pa
94
100
 
95
101
  :::
96
102
 
97
- :::exercise{id="reading-8-formal-phrases" type="fill-in-blank" title="Formal Notice Phrases"}
103
+ :::exercise{id="reading-8-formal-phrases" type="fill-in-blank" title="Formal Notice Phrases" skill="word-recognition" objectiveId="obj-r8-formal-writing"}
98
104
 
99
105
  **Question:** What do these formal phrases mean?
100
106
 
@@ -114,7 +120,7 @@ Official notices appear in buildings, offices, and public spaces. Learn their pa
114
120
 
115
121
  :::
116
122
 
117
- :::exercise{id="reading-8-time-references" type="multiple-choice" title="Time References in Notices"}
123
+ :::exercise{id="reading-8-time-references" type="multiple-choice" title="Time References in Notices" skill="pattern-recognition" objectiveId="obj-r8-notice-patterns"}
118
124
 
119
125
  **Question:** What does "ชั่วคราว" mean in a notice?
120
126
 
@@ -137,4 +143,4 @@ In Lesson 9, you'll read simple stories — build reading fluency by following n
137
143
  export {
138
144
  n as default
139
145
  };
140
- //# sourceMappingURL=lesson-08-Bb_v_gD-.js.map
146
+ //# sourceMappingURL=lesson-08-BXm9GgdN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-08-BXm9GgdN.js","sources":["../src/syllabi/reading/lessons/lesson-08.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: thai-reading-lesson-08\\ntitle: \\\"บทที่ 8 — ประกาศสั้น\\\"\\ndescription: \\\"Short Notices: Read official notices and announcements\\\"\\norder: 8\\nparentId: thai-reading\\ndifficulty: intermediate\\ncefrLevel: B1\\ncategories:\\n - reading\\n - notices\\n - formal\\nmetadata:\\n estimatedTime: 30\\n prerequisites:\\n - thai-reading-lesson-07\\n learningObjectives:\\n - id: obj-r8-announcement-formats\\n description: \\\"Read official announcement formats\\\"\\n skill: reading-comprehension\\n - id: obj-r8-formal-writing\\n description: \\\"Understand formal Thai writing\\\"\\n skill: word-recognition\\n - id: obj-r8-notice-patterns\\n description: \\\"Recognize notice patterns\\\"\\n skill: pattern-recognition\\n---\\n\\n# Short Notices\\n\\nOfficial notices appear in buildings, offices, and public spaces. Learn their patterns.\\n\\n## Notice Headers\\n\\n| Thai | Romanization | English |\\n|------|--------------|---------|\\n| ประกาศ | prakat | announcement |\\n| แจ้งให้ทราบ | jaeng hai sap | notification |\\n| ข้อบังคับ | kho bangkhap | regulation |\\n| คำเตือน | kham tuean | warning notice |\\n\\n## Common Phrases\\n\\n| Thai | Romanization | English |\\n|------|--------------|---------|\\n| ตั้งแต่วันที่ | tang tae wan thi | starting from |\\n| จนถึงวันที่ | jon thung wan thi | until |\\n| กรุณา | karuna | please (formal) |\\n| ขอความร่วมมือ | kho khwam ruam mue | request cooperation |\\n\\n## Official Terms\\n\\n| Thai | Romanization | English |\\n|------|--------------|---------|\\n| ฝ่ายบริหาร | fai borihan | management |\\n| ผู้จัดการ | phu jatkan | manager |\\n| เจ้าหน้าที่ | jao nathi | officer/staff |\\n| ลูกค้า | lukkhaa | customer |\\n\\n## Time References\\n\\n| Thai | Romanization | English |\\n|------|--------------|---------|\\n| ชั่วคราว | chua khrao | temporary |\\n| ถาวร | thawon | permanent |\\n| ระยะเวลา | rayawela | duration |\\n| มีผลบังคับใช้ | mi phon bangkhap chai | effective |\\n\\n## Sample Notice\\n\\n**ประกาศ**\\n**เรื่อง: ปิดปรับปรุงลิฟต์**\\n\\nฝ่ายบริหารขอแจ้งให้ทราบว่า ลิฟต์จะปิดปรับปรุงชั่วคราว ตั้งแต่วันที่ 15-17 มกราคม กรุณาใช้บันไดแทน\\n\\nขออภัยในความไม่สะดวก\\n\\n*Announcement: Elevator maintenance. Management notifies that the elevator will be temporarily closed for maintenance from January 15-17. Please use stairs instead. Sorry for the inconvenience.*\\n\\n## Practice Exercises\\n\\n:::exercise{id=\\\"reading-8-notice-headers\\\" type=\\\"matching\\\" title=\\\"Notice Header Recognition\\\" skill=\\\"word-recognition\\\" objectiveId=\\\"obj-r8-announcement-formats\\\"}\\n\\n**Question:** Match each notice header to its meaning\\n\\n- ประกาศ\\n- แจ้งให้ทราบ\\n- ข้อบังคับ\\n- คำเตือน\\n\\n**Answer:**\\n\\n- ประกาศ → Announcement (general)\\n- แจ้งให้ทราบ → Notification (formal notice)\\n- ข้อบังคับ → Regulation (rule/requirement)\\n- คำเตือน → Warning notice\\n\\n**Explanation:** These headers indicate the type and formality of the notice. ประกาศ is most common. แจ้งให้ทราบ is more formal. ข้อบังคับ indicates a rule that must be followed.\\n\\n:::\\n\\n:::exercise{id=\\\"reading-8-formal-phrases\\\" type=\\\"fill-in-blank\\\" title=\\\"Formal Notice Phrases\\\" skill=\\\"word-recognition\\\" objectiveId=\\\"obj-r8-formal-writing\\\"}\\n\\n**Question:** What do these formal phrases mean?\\n\\n- ตั้งแต่วันที่\\n- จนถึงวันที่\\n- กรุณา\\n- ขอความร่วมมือ\\n\\n**Answer:**\\n\\n- ตั้งแต่วันที่ → Starting from (date)\\n- จนถึงวันที่ → Until (date)\\n- กรุณา → Please (formal)\\n- ขอความร่วมมือ → Request cooperation\\n\\n**Explanation:** These are formal phrases common in official notices. ตั้งแต่ means \\\"starting from\\\", จนถึง means \\\"until\\\". กรุณา is formal \\\"please\\\". Learning these helps you understand official communications.\\n\\n:::\\n\\n:::exercise{id=\\\"reading-8-time-references\\\" type=\\\"multiple-choice\\\" title=\\\"Time References in Notices\\\" skill=\\\"pattern-recognition\\\" objectiveId=\\\"obj-r8-notice-patterns\\\"}\\n\\n**Question:** What does \\\"ชั่วคราว\\\" mean in a notice?\\n\\n**Options:**\\n- Permanent\\n- Temporary\\n- Effective immediately\\n- Cancelled\\n\\n**Answer:** 2\\n\\n**Explanation:** ชั่วคราว means \\\"temporary\\\". ถาวร means \\\"permanent\\\". These words appear frequently in notices about closures, changes, or restrictions. Understanding them helps you know if something is temporary or permanent.\\n\\n:::\\n\\n## What's Next\\n\\nIn Lesson 9, you'll read simple stories — build reading fluency by following narrative structure and connected paragraphs in Thai.\\n\""],"names":["lesson08"],"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;"}
@@ -15,11 +15,23 @@ metadata:
15
15
  estimatedTime: 40
16
16
  prerequisites:
17
17
  - thai-vowels-lesson-07
18
- objectives:
19
- - "Understand live vs dead syllables"
20
- - "Apply tone rules based on syllable structure"
21
- - "Master the complete tone determination system"
22
- - "Practice reading tones without marks"
18
+ learningObjectives:
19
+ - id: obj-live-vs-dead-syllables
20
+ description: "Understand live vs dead syllables"
21
+ skill: syllable-analysis
22
+ references: []
23
+ - id: obj-apply-tone-rules
24
+ description: "Apply tone rules based on syllable structure"
25
+ skill: tone-rule-application
26
+ references: [mai-ek, mai-tho]
27
+ - id: obj-complete-tone-system
28
+ description: "Master the complete tone determination system"
29
+ skill: tone-rule-application
30
+ references: [mai-ek, mai-tho, mai-tri, mai-chattawa]
31
+ - id: obj-read-tones-without-marks
32
+ description: "Practice reading tones without marks"
33
+ skill: syllable-analysis
34
+ references: []
23
35
  ---
24
36
 
25
37
  # บทที่ 8 (Lesson 8) — Complete Tone Rules
@@ -188,7 +200,7 @@ When reading a new word:
188
200
 
189
201
  ## Practice Exercises
190
202
 
191
- :::exercise{id="tone-rules-1-syllable-type" type="multiple-choice" title="Live vs Dead Syllable"}
203
+ :::exercise{id="tone-rules-1-syllable-type" type="multiple-choice" title="Live vs Dead Syllable" skill="syllable-analysis" objectiveId="obj-live-vs-dead-syllables"}
192
204
 
193
205
  **Question:** Which syllable is "dead" (คำตาย)?
194
206
 
@@ -204,7 +216,7 @@ When reading a new word:
204
216
 
205
217
  :::
206
218
 
207
- :::exercise{id="tone-rules-1-tone-determination" type="fill-in-blank" title="Tone Determination Practice"}
219
+ :::exercise{id="tone-rules-1-tone-determination" type="fill-in-blank" title="Tone Determination Practice" skill="tone-rule-application" tests="mai-tho" objectiveId="obj-apply-tone-rules"}
208
220
 
209
221
  **Question:** Determine the tone for these syllables:
210
222
 
@@ -224,7 +236,7 @@ When reading a new word:
224
236
 
225
237
  :::
226
238
 
227
- :::exercise{id="tone-rules-1-leading-h" type="matching" title="The Leading ห Trick"}
239
+ :::exercise{id="tone-rules-1-leading-h" type="matching" title="The Leading ห Trick" skill="tone-rule-application" objectiveId="obj-read-tones-without-marks"}
228
240
 
229
241
  **Question:** Match each word to how ห affects the tone
230
242
 
@@ -262,4 +274,4 @@ Your foundation is now solid. Everything from here builds on what you've learned
262
274
  export {
263
275
  n as default
264
276
  };
265
- //# sourceMappingURL=lesson-08-BqW5C_OE.js.map
277
+ //# sourceMappingURL=lesson-08-Bru0PdEK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-08-Bru0PdEK.js","sources":["../src/syllabi/vowels-tones/lessons/lesson-08.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: thai-vowels-lesson-08\\ntitle: \\\"บทที่ 8 — กฎเสียงวรรณยุกต์\\\"\\ndescription: \\\"Complete Tone Rules: Determining tone from syllable structure\\\"\\norder: 8\\nparentId: thai-vowels-tones\\ndifficulty: intermediate\\ncefrLevel: A1\\ncategories:\\n - tones\\n - tone-rules\\n - phonology\\nmetadata:\\n estimatedTime: 40\\n prerequisites:\\n - thai-vowels-lesson-07\\n learningObjectives:\\n - id: obj-live-vs-dead-syllables\\n description: \\\"Understand live vs dead syllables\\\"\\n skill: syllable-analysis\\n references: []\\n - id: obj-apply-tone-rules\\n description: \\\"Apply tone rules based on syllable structure\\\"\\n skill: tone-rule-application\\n references: [mai-ek, mai-tho]\\n - id: obj-complete-tone-system\\n description: \\\"Master the complete tone determination system\\\"\\n skill: tone-rule-application\\n references: [mai-ek, mai-tho, mai-tri, mai-chattawa]\\n - id: obj-read-tones-without-marks\\n description: \\\"Practice reading tones without marks\\\"\\n skill: syllable-analysis\\n references: []\\n---\\n\\n# บทที่ 8 (Lesson 8) — Complete Tone Rules\\n\\n## Introduction\\n\\nThis final lesson ties everything together. You'll learn how to determine the tone of **any** Thai syllable — even those without tone marks — based on three factors:\\n1. **Consonant class** (middle, high, low)\\n2. **Vowel length** (short vs long)\\n3. **Syllable type** (live vs dead)\\n\\n## Live vs Dead Syllables\\n\\nThai syllables are classified as **live** (คำเป็น) or **dead** (คำตาย):\\n\\n| Type | Thai | Ends With | Example |\\n|------|------|-----------|---------|\\n| Live | คำเป็น | Long vowel OR sonorant (ง, น, ม, ย, ว, ร, ล) | มา, กิน |\\n| Dead | คำตาย | Short vowel OR stop consonant (ก, บ, ด) | มะ, มัก |\\n\\n**Sonorants** are: ง, น, ม, ย, ว, ร, ล — these allow the voice to continue.\\n**Stops** are: ก, บ, ด (and their homophones) — these cut off the sound.\\n\\n## The Master Tone Chart\\n\\nThis chart shows the default tone (no tone mark) for each combination:\\n\\n### Without Tone Marks\\n\\n| Class | Live Syllable | Dead (Short) | Dead (Long) |\\n|-------|---------------|--------------|-------------|\\n| Middle | Mid | Low | Low |\\n| High | Rising | Low | Low |\\n| Low | Mid | High | Falling |\\n\\n### With Mai Ek (่)\\n\\n| Class | Result |\\n|-------|--------|\\n| Middle | Low |\\n| High | Low |\\n| Low | Falling |\\n\\n### With Mai Tho (้)\\n\\n| Class | Result |\\n|-------|--------|\\n| Middle | Falling |\\n| High | Falling |\\n| Low | High |\\n\\n## Step-by-Step Tone Determination\\n\\nTo find the tone of any syllable:\\n\\n1. **Identify the initial consonant class** (middle, high, low)\\n2. **Check for tone marks** — if present, use the tone mark chart\\n3. **If no tone mark**:\\n - Determine if the syllable is live or dead\\n - If dead, check if the vowel is short or long\\n - Apply the master chart\\n\\n## Worked Examples\\n\\n### Example 1: มา (maa)\\n- Initial consonant: ม (low class)\\n- Tone mark: none\\n- Syllable type: live (ends in long vowel า)\\n- **Result**: Mid tone → มา (maa)\\n\\n### Example 2: มัก (mak)\\n- Initial consonant: ม (low class)\\n- Tone mark: none\\n- Syllable type: dead (ends in stop ก)\\n- Vowel: short (ั)\\n- **Result**: High tone → มัก (mák)\\n\\n### Example 3: ข้าว (khaao)\\n- Initial consonant: ข (high class)\\n- Tone mark: mai tho (้)\\n- **Result**: Falling tone → ข้าว (khâao)\\n\\n### Example 4: ตก (dtok)\\n- Initial consonant: ต (middle class)\\n- Tone mark: none\\n- Syllable type: dead (ends in stop ก)\\n- **Result**: Low tone → ตก (dtòk)\\n\\n## The Leading ห Trick\\n\\nLow class consonants **cannot produce rising or low tones** on their own. Thai solves this with the \\\"leading ห\\\" pattern:\\n\\n**ห + low class consonant** = acts like high class\\n\\n| Without ห | With ห | Effect |\\n|-----------|--------|--------|\\n| มา (mid) | หมา (rising) | Now can get rising tone |\\n| นา (mid) | หนา (rising) | Same pattern |\\n\\nThis is why หมา (dog) has a rising tone even though ม is low class.\\n\\n## Common Patterns\\n\\n### Food Words Often Have Falling Tones\\n- ข้าว (khâao) — rice\\n- ก๋วยเตี๋ยว (gǔai-dtǐao) — noodles\\n- น้ำ (náam) — water\\n\\n### Question Particles\\n- ไหม (mǎi) — yes/no question\\n- หรือ (rʉ̌ʉ) — or\\n\\n### Negation\\n- ไม่ (mâi) — not\\n- ไม่ใช่ (mâi châi) — is not\\n\\n## Key Points\\n\\n1. **Three factors**: Class + vowel length + syllable type determine tone\\n2. **Live vs dead**: Open syllables vs closed syllables\\n3. **Leading ห**: Converts low class behavior to high class\\n4. **Practice is key**: Eventually this becomes intuitive\\n\\n## Tone Practice Checklist\\n\\nWhen reading a new word:\\n1. ✓ What class is the initial consonant?\\n2. ✓ Is there a tone mark?\\n3. ✓ If no mark: is it live or dead?\\n4. ✓ If dead: short or long vowel?\\n5. ✓ Apply the rule from the chart\\n\\n## Common Mistakes to Avoid\\n\\n1. **Forgetting syllable type**: Dead syllables without marks aren't mid tone\\n2. **Ignoring ห**: It's not silent — it changes the tone class\\n3. **Class confusion**: Review consonant classes from the alphabet course\\n4. **Over-relying on marks**: Many words have no tone marks\\n\\n## Complete Tone Rules Summary Table\\n\\n### Live Syllables (No Tone Mark)\\n\\n| Consonant Class | Tone | Example |\\n|----------------|------|---------|\\n| Middle | Mid | กา (gaa) |\\n| High | Rising | ขา (khǎa) |\\n| Low | Mid | คา (khaa) |\\n\\n### Dead Syllables (No Tone Mark)\\n\\n| Consonant Class | Short Vowel | Long Vowel | Example (Short) |\\n|----------------|------------|------------|-----------------|\\n| Middle | Low | Low | ตก (dtòk) |\\n| High | Low | Low | ขก (khòk) |\\n| Low | High | Falling | มัก (mák) |\\n\\n### With Tone Marks\\n\\n| Mark | Middle | High | Low |\\n|------|--------|------|-----|\\n| ◌่ (mai ek) | Low | Low | Falling |\\n| ◌้ (mai tho) | Falling | Falling | High |\\n| ◌๊ (mai tri) | High | — | — |\\n| ◌๋ (mai chattawa) | Rising | — | — |\\n\\n## Practice Exercises\\n\\n:::exercise{id=\\\"tone-rules-1-syllable-type\\\" type=\\\"multiple-choice\\\" title=\\\"Live vs Dead Syllable\\\" skill=\\\"syllable-analysis\\\" objectiveId=\\\"obj-live-vs-dead-syllables\\\"}\\n\\n**Question:** Which syllable is \\\"dead\\\" (คำตาย)?\\n\\n**Options:**\\n- มา (maa) - ends in long vowel\\n- กิน (gin) - ends in น (sonorant)\\n- ตก (dtok) - ends in ก (stop)\\n- งู (nguu) - ends in long vowel\\n\\n**Answer:** 3\\n\\n**Explanation:** Dead syllables end in a stop consonant (ก, บ, ด) or have a short vowel. มา and งู are live (long vowels), กิน is live (ends in sonorant น), but ตก is dead (ends in stop ก).\\n\\n:::\\n\\n:::exercise{id=\\\"tone-rules-1-tone-determination\\\" type=\\\"fill-in-blank\\\" title=\\\"Tone Determination Practice\\\" skill=\\\"tone-rule-application\\\" tests=\\\"mai-tho\\\" objectiveId=\\\"obj-apply-tone-rules\\\"}\\n\\n**Question:** Determine the tone for these syllables:\\n\\n- มา (low-class ม, no mark, live syllable)\\n- มัก (low-class ม, no mark, dead syllable, short vowel)\\n- ขา (high-class ข, no mark, live syllable)\\n- ค้า (low-class ค, mai tho, live syllable)\\n\\n**Answer:**\\n\\n- มา → Mid tone (low-class, live, no mark)\\n- มัก → High tone (low-class, dead, short vowel, no mark)\\n- ขา → Rising tone (high-class, live, no mark)\\n- ค้า → High tone (low-class + mai tho = high tone exception)\\n\\n**Explanation:** Follow the step-by-step process: identify class, check for tone mark, determine syllable type, apply the rules from the chart.\\n\\n:::\\n\\n:::exercise{id=\\\"tone-rules-1-leading-h\\\" type=\\\"matching\\\" title=\\\"The Leading ห Trick\\\" skill=\\\"tone-rule-application\\\" objectiveId=\\\"obj-read-tones-without-marks\\\"}\\n\\n**Question:** Match each word to how ห affects the tone\\n\\n- หมา (dog)\\n- หนา (thick)\\n- หงา (rare)\\n\\n**Answer:**\\n\\n- หมา → ห lifts ม (low-class) to high-class behavior, producing rising tone\\n- หนา → ห lifts น (low-class) to high-class behavior, producing rising tone\\n- หงา → ห lifts ง (low-class) to high-class behavior, producing rising tone\\n\\n**Explanation:** Leading ห (silent) changes low-class consonants to behave like high-class for tone purposes. This allows low-class consonants to produce rising tones, which they normally cannot do.\\n\\n:::\\n\\n## What You've Learned\\n\\nCongratulations! You now understand:\\n- All 32 Thai vowel forms\\n- Short vs long vowel distinction\\n- The 4 tone marks\\n- Complete tone rules for any syllable\\n\\n## Next Steps\\n\\nWith vowels and tones mastered, you're ready for:\\n- **Numbers & Counting** — Apply your reading skills to practical vocabulary\\n- **Essential Phrases** — Start forming complete sentences\\n- **Thai Typing** — Build muscle memory for keyboard input\\n\\nYour foundation is now solid. Everything from here builds on what you've learned!\\n\""],"names":["lesson08"],"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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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-dialogue-lesson-07
18
- objectives:
19
- - "Suggest activities"
20
- - "Accept and decline invitations politely"
21
- - "Set times and places to meet"
22
- - "Reschedule plans"
18
+ learningObjectives:
19
+ - id: obj-plans-suggest
20
+ description: "Suggest activities"
21
+ skill: situational-response
22
+ - id: obj-plans-accept-decline
23
+ description: "Accept and decline invitations politely"
24
+ skill: polite-register
25
+ - id: obj-plans-time-place
26
+ description: "Set times and places to meet"
27
+ skill: word-production
28
+ - id: obj-plans-reschedule
29
+ description: "Reschedule plans"
30
+ skill: dialogue-comprehension
23
31
  ---
24
32
 
25
33
  # บทที่ 8 (Lesson 8) — Making Plans
@@ -128,7 +136,7 @@ Thais often make plans somewhat loosely and last-minute changes are common. Don'
128
136
 
129
137
  ## Practice Exercises
130
138
 
131
- :::exercise{id="dialogue-8-making-plans" type="matching" title="Planning Phrases"}
139
+ :::exercise{id="dialogue-8-making-plans" type="matching" title="Planning Phrases" skill="word-recognition" objectiveId="obj-plans-suggest"}
132
140
 
133
141
  **Question:** Match each phrase to its meaning
134
142
 
@@ -148,7 +156,7 @@ Thais often make plans somewhat loosely and last-minute changes are common. Don'
148
156
 
149
157
  :::
150
158
 
151
- :::exercise{id="dialogue-8-declining" type="fill-in-blank" title="Politely Declining"}
159
+ :::exercise{id="dialogue-8-declining" type="fill-in-blank" title="Politely Declining" skill="polite-register" objectiveId="obj-plans-accept-decline"}
152
160
 
153
161
  **Question:** How do you politely decline an invitation in Thai?
154
162
 
@@ -163,7 +171,7 @@ You can say:
163
171
 
164
172
  :::
165
173
 
166
- :::exercise{id="dialogue-8-time-expressions" type="multiple-choice" title="Time Expressions"}
174
+ :::exercise{id="dialogue-8-time-expressions" type="multiple-choice" title="Time Expressions" skill="pattern-recognition" objectiveId="obj-plans-time-place"}
167
175
 
168
176
  **Question:** How do you say "this Saturday" in Thai?
169
177
 
@@ -194,4 +202,4 @@ Keep practicing these dialogues, and don't be afraid to make mistakes - Thais ap
194
202
  export {
195
203
  n as default
196
204
  };
197
- //# sourceMappingURL=lesson-08-hJlci9W5.js.map
205
+ //# sourceMappingURL=lesson-08-Dd-8cbGW.js.map