@syllst/th 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/dist/{index-of_athp-.js → index-4uNMctdq.js} +13 -13
  2. package/dist/{index-of_athp-.js.map → index-4uNMctdq.js.map} +1 -1
  3. package/dist/{index-Dy38Hmlm.js → index-BM-LWlCm.js} +10 -10
  4. package/dist/{index-Dy38Hmlm.js.map → index-BM-LWlCm.js.map} +1 -1
  5. package/dist/{index-CTQ45BVw.js → index-Bjym0crS.js} +8 -8
  6. package/dist/{index-CTQ45BVw.js.map → index-Bjym0crS.js.map} +1 -1
  7. package/dist/{index-B029m98V.js → index-BuKXw7-Z.js} +7 -7
  8. package/dist/{index-B029m98V.js.map → index-BuKXw7-Z.js.map} +1 -1
  9. package/dist/{index-CoqP9GZL.js → index-ByS0o5dz.js} +10 -10
  10. package/dist/{index-CoqP9GZL.js.map → index-ByS0o5dz.js.map} +1 -1
  11. package/dist/{index-BCA5Llwg.js → index-C9VnG7dT.js} +10 -10
  12. package/dist/{index-BCA5Llwg.js.map → index-C9VnG7dT.js.map} +1 -1
  13. package/dist/{index-vuRo2mLK.js → index-CPQkjFjV.js} +9 -9
  14. package/dist/{index-vuRo2mLK.js.map → index-CPQkjFjV.js.map} +1 -1
  15. package/dist/{index-BFcg5D_W.js → index-CkHd3Fal.js} +12 -12
  16. package/dist/{index-BFcg5D_W.js.map → index-CkHd3Fal.js.map} +1 -1
  17. package/dist/{index-CB8M6CK6.js → index-DBkPBXe2.js} +10 -10
  18. package/dist/{index-CB8M6CK6.js.map → index-DBkPBXe2.js.map} +1 -1
  19. package/dist/index.d.ts +1 -1
  20. package/dist/index.js +18 -18
  21. package/dist/{lesson-01--9NOyHZ6.js → lesson-01-B0wtSaSl.js} +21 -9
  22. package/dist/lesson-01-B0wtSaSl.js.map +1 -0
  23. package/dist/{lesson-01-97FtYE6g.js → lesson-01-C9vbUlA4.js} +14 -6
  24. package/dist/lesson-01-C9vbUlA4.js.map +1 -0
  25. package/dist/{lesson-01-CF4tJfZ3.js → lesson-01-CPmBFTe0.js} +28 -16
  26. package/dist/lesson-01-CPmBFTe0.js.map +1 -0
  27. package/dist/{lesson-01-3hBted4A.js → lesson-01-Cc4Ws8eR.js} +25 -14
  28. package/dist/lesson-01-Cc4Ws8eR.js.map +1 -0
  29. package/dist/{lesson-01-BYKAZiua.js → lesson-01-Cm5k-m-9.js} +14 -8
  30. package/dist/lesson-01-Cm5k-m-9.js.map +1 -0
  31. package/dist/{lesson-01-WV3ic8Ok.js → lesson-01-DELblCNj.js} +11 -5
  32. package/dist/lesson-01-DELblCNj.js.map +1 -0
  33. package/dist/{lesson-01-CRx-yw4C.js → lesson-01-Djl_72e7.js} +14 -6
  34. package/dist/lesson-01-Djl_72e7.js.map +1 -0
  35. package/dist/{lesson-01-BhjY6ArF.js → lesson-01-LEHTeGQQ.js} +17 -9
  36. package/dist/lesson-01-LEHTeGQQ.js.map +1 -0
  37. package/dist/{lesson-01-BNdHXAGR.js → lesson-01-ih_-OO_O.js} +14 -6
  38. package/dist/lesson-01-ih_-OO_O.js.map +1 -0
  39. package/dist/{lesson-02-C8dfzXvq.js → lesson-02-B2aZrKUQ.js} +14 -6
  40. package/dist/lesson-02-B2aZrKUQ.js.map +1 -0
  41. package/dist/{lesson-02-C2ALLvoT.js → lesson-02-BI1Vnwiz.js} +17 -9
  42. package/dist/lesson-02-BI1Vnwiz.js.map +1 -0
  43. package/dist/{lesson-02-BGnp0Ik_.js → lesson-02-BXbwEMaL.js} +27 -15
  44. package/dist/lesson-02-BXbwEMaL.js.map +1 -0
  45. package/dist/{lesson-02-BAbq-QGP.js → lesson-02-CbJJ5Amt.js} +24 -14
  46. package/dist/lesson-02-CbJJ5Amt.js.map +1 -0
  47. package/dist/{lesson-02-Bm9EJuN8.js → lesson-02-DGrALAgG.js} +21 -9
  48. package/dist/lesson-02-DGrALAgG.js.map +1 -0
  49. package/dist/{lesson-02-C0ZL4z3c.js → lesson-02-DcMDDBDL.js} +11 -5
  50. package/dist/lesson-02-DcMDDBDL.js.map +1 -0
  51. package/dist/{lesson-02-B2Xg7RVU.js → lesson-02-Dk59HZWp.js} +17 -9
  52. package/dist/lesson-02-Dk59HZWp.js.map +1 -0
  53. package/dist/{lesson-02-BO3BXPMJ.js → lesson-02-L8oNhBej.js} +14 -8
  54. package/dist/lesson-02-L8oNhBej.js.map +1 -0
  55. package/dist/{lesson-02-CsejVbCo.js → lesson-02-VDOme3ES.js} +17 -9
  56. package/dist/lesson-02-VDOme3ES.js.map +1 -0
  57. package/dist/{lesson-03-DV2SUWVH.js → lesson-03-9WioSe19.js} +21 -9
  58. package/dist/lesson-03-9WioSe19.js.map +1 -0
  59. package/dist/{lesson-03-DiV17_Os.js → lesson-03-BZutWzMD.js} +14 -6
  60. package/dist/lesson-03-BZutWzMD.js.map +1 -0
  61. package/dist/{lesson-03-Xc8-2Yt3.js → lesson-03-CSIF5xRS.js} +14 -8
  62. package/dist/lesson-03-CSIF5xRS.js.map +1 -0
  63. package/dist/{lesson-03-DrJgbfDQ.js → lesson-03-CSKig363.js} +17 -9
  64. package/dist/lesson-03-CSKig363.js.map +1 -0
  65. package/dist/{lesson-03-XVahXvgf.js → lesson-03-CoDPKwa1.js} +21 -14
  66. package/dist/lesson-03-CoDPKwa1.js.map +1 -0
  67. package/dist/{lesson-03-8NtAeqFh.js → lesson-03-DPJOG2M_.js} +14 -8
  68. package/dist/lesson-03-DPJOG2M_.js.map +1 -0
  69. package/dist/{lesson-03-CKTNtgY1.js → lesson-03-DkjCuJ26.js} +17 -9
  70. package/dist/lesson-03-DkjCuJ26.js.map +1 -0
  71. package/dist/{lesson-03-BdZfKRhq.js → lesson-03-DucbRMOQ.js} +17 -9
  72. package/dist/lesson-03-DucbRMOQ.js.map +1 -0
  73. package/dist/{lesson-03-D8va_Q9B.js → lesson-03-MIne1PbH.js} +26 -14
  74. package/dist/lesson-03-MIne1PbH.js.map +1 -0
  75. package/dist/{lesson-04-Dfc7S4nT.js → lesson-04-0Pj_x1DU.js} +17 -9
  76. package/dist/lesson-04-0Pj_x1DU.js.map +1 -0
  77. package/dist/{lesson-04-ZrSBM0BX.js → lesson-04-B9h0p9kE.js} +14 -8
  78. package/dist/lesson-04-B9h0p9kE.js.map +1 -0
  79. package/dist/{lesson-04-DEEPJ_rd.js → lesson-04-BLuPI1-X.js} +22 -13
  80. package/dist/lesson-04-BLuPI1-X.js.map +1 -0
  81. package/dist/{lesson-04-rapx_3vA.js → lesson-04-CmDvofL4.js} +17 -9
  82. package/dist/lesson-04-CmDvofL4.js.map +1 -0
  83. package/dist/{lesson-04-DtXVhdGB.js → lesson-04-DGKHK4LW.js} +17 -9
  84. package/dist/lesson-04-DGKHK4LW.js.map +1 -0
  85. package/dist/{lesson-04-CtNr2B3E.js → lesson-04-DUcHZzsk.js} +21 -9
  86. package/dist/lesson-04-DUcHZzsk.js.map +1 -0
  87. package/dist/{lesson-04-BpRrNmzO.js → lesson-04-DnVIXXk-.js} +14 -8
  88. package/dist/lesson-04-DnVIXXk-.js.map +1 -0
  89. package/dist/{lesson-04-ioLXnB0j.js → lesson-04-FZnIE7tu.js} +27 -15
  90. package/dist/lesson-04-FZnIE7tu.js.map +1 -0
  91. package/dist/{lesson-04-D__vMCyA.js → lesson-04-ToX3nRz1.js} +17 -9
  92. package/dist/lesson-04-ToX3nRz1.js.map +1 -0
  93. package/dist/{lesson-05-D_GdROUn.js → lesson-05-2aTCGXMh.js} +14 -8
  94. package/dist/lesson-05-2aTCGXMh.js.map +1 -0
  95. package/dist/{lesson-05-ip400cxe.js → lesson-05-BvitRdE8.js} +28 -16
  96. package/dist/lesson-05-BvitRdE8.js.map +1 -0
  97. package/dist/{lesson-05-D1d3kc3M.js → lesson-05-CgXGkcjS.js} +14 -8
  98. package/dist/lesson-05-CgXGkcjS.js.map +1 -0
  99. package/dist/{lesson-05-D2SVU-I0.js → lesson-05-ClfrUrvX.js} +17 -9
  100. package/dist/lesson-05-ClfrUrvX.js.map +1 -0
  101. package/dist/{lesson-05-CKxXcooO.js → lesson-05-D2zf9n7k.js} +23 -13
  102. package/dist/lesson-05-D2zf9n7k.js.map +1 -0
  103. package/dist/{lesson-05-DusKUtbm.js → lesson-05-DWquBfdl.js} +21 -9
  104. package/dist/lesson-05-DWquBfdl.js.map +1 -0
  105. package/dist/{lesson-05-Bm6fg-DJ.js → lesson-05-DpIkwhJ8.js} +17 -9
  106. package/dist/lesson-05-DpIkwhJ8.js.map +1 -0
  107. package/dist/{lesson-05-DBsHyFlt.js → lesson-05-UYz39ORV.js} +17 -9
  108. package/dist/lesson-05-UYz39ORV.js.map +1 -0
  109. package/dist/{lesson-05-DXOLS7G0.js → lesson-05-t6XuANiZ.js} +17 -9
  110. package/dist/lesson-05-t6XuANiZ.js.map +1 -0
  111. package/dist/{lesson-06-1ZsbrE1a.js → lesson-06-B2y08mKv.js} +17 -9
  112. package/dist/lesson-06-B2y08mKv.js.map +1 -0
  113. package/dist/{lesson-06-1CE05TRX.js → lesson-06-CHqaVQix.js} +16 -10
  114. package/dist/lesson-06-CHqaVQix.js.map +1 -0
  115. package/dist/{lesson-06-Bliedg7n.js → lesson-06-CaCZBX1V.js} +17 -9
  116. package/dist/lesson-06-CaCZBX1V.js.map +1 -0
  117. package/dist/{lesson-06-Du9J8sYl.js → lesson-06-ClplsJBT.js} +30 -18
  118. package/dist/lesson-06-ClplsJBT.js.map +1 -0
  119. package/dist/{lesson-06-BG26PBTF.js → lesson-06-CzGnNKo5.js} +14 -8
  120. package/dist/lesson-06-CzGnNKo5.js.map +1 -0
  121. package/dist/{lesson-06-CnKkcUb-.js → lesson-06-Dg_bQLNC.js} +17 -9
  122. package/dist/lesson-06-Dg_bQLNC.js.map +1 -0
  123. package/dist/{lesson-06-Aw-X-HMV.js → lesson-06-OWFMgO0a.js} +23 -14
  124. package/dist/lesson-06-OWFMgO0a.js.map +1 -0
  125. package/dist/{lesson-06-CvN9pDsE.js → lesson-06-Q2aRAzws.js} +17 -9
  126. package/dist/lesson-06-Q2aRAzws.js.map +1 -0
  127. package/dist/{lesson-07-DjCMCYkK.js → lesson-07-BLDUA_Ff.js} +17 -9
  128. package/dist/lesson-07-BLDUA_Ff.js.map +1 -0
  129. package/dist/{lesson-07-DezS1ojS.js → lesson-07-BpyF1Ssq.js} +27 -15
  130. package/dist/lesson-07-BpyF1Ssq.js.map +1 -0
  131. package/dist/{lesson-07-rvSSQiVh.js → lesson-07-C4GrfDTW.js} +25 -13
  132. package/dist/lesson-07-C4GrfDTW.js.map +1 -0
  133. package/dist/{lesson-07-CTFSd9gF.js → lesson-07-CVCUt1Jn.js} +14 -8
  134. package/dist/lesson-07-CVCUt1Jn.js.map +1 -0
  135. package/dist/{lesson-07-8zdPFyjE.js → lesson-07-DQFXCZsZ.js} +17 -9
  136. package/dist/lesson-07-DQFXCZsZ.js.map +1 -0
  137. package/dist/{lesson-07-X6anzbAn.js → lesson-07-Dcry2Yjo.js} +17 -9
  138. package/dist/lesson-07-Dcry2Yjo.js.map +1 -0
  139. package/dist/{lesson-07-B9bkJ3gP.js → lesson-07-JS_cqdNr.js} +14 -8
  140. package/dist/lesson-07-JS_cqdNr.js.map +1 -0
  141. package/dist/{lesson-08-CeDWopKc.js → lesson-08-18gscaS0.js} +25 -13
  142. package/dist/lesson-08-18gscaS0.js.map +1 -0
  143. package/dist/{lesson-08-Cyzy_VeP.js → lesson-08-2kBUq_B2.js} +14 -8
  144. package/dist/lesson-08-2kBUq_B2.js.map +1 -0
  145. package/dist/{lesson-08-BYfkPBkH.js → lesson-08-BP5lpiGe.js} +17 -9
  146. package/dist/lesson-08-BP5lpiGe.js.map +1 -0
  147. package/dist/{lesson-08-Bb_v_gD-.js → lesson-08-BXm9GgdN.js} +14 -8
  148. package/dist/lesson-08-BXm9GgdN.js.map +1 -0
  149. package/dist/{lesson-08-BqW5C_OE.js → lesson-08-Bru0PdEK.js} +21 -9
  150. package/dist/lesson-08-Bru0PdEK.js.map +1 -0
  151. package/dist/{lesson-08-hJlci9W5.js → lesson-08-Dd-8cbGW.js} +17 -9
  152. package/dist/lesson-08-Dd-8cbGW.js.map +1 -0
  153. package/dist/{lesson-09-DHRHZIc1.js → lesson-09-B1qWE3Yl.js} +27 -15
  154. package/dist/lesson-09-B1qWE3Yl.js.map +1 -0
  155. package/dist/{lesson-09-BQ1CZCjT.js → lesson-09-B5Vb70xj.js} +14 -8
  156. package/dist/lesson-09-B5Vb70xj.js.map +1 -0
  157. package/dist/{lesson-10-BdfkVT7s.js → lesson-10-00qNLc7A.js} +25 -13
  158. package/dist/lesson-10-00qNLc7A.js.map +1 -0
  159. package/dist/{lesson-10-C7YEQ8et.js → lesson-10-Dw-Jtm3D.js} +14 -8
  160. package/dist/lesson-10-Dw-Jtm3D.js.map +1 -0
  161. package/dist/{lesson-11-oJQ8ZxJk.js → lesson-11-BM3R_S7I.js} +25 -13
  162. package/dist/lesson-11-BM3R_S7I.js.map +1 -0
  163. package/dist/{lesson-12-D69m5ETy.js → lesson-12-D1Wx7CyK.js} +33 -21
  164. package/dist/lesson-12-D1Wx7CyK.js.map +1 -0
  165. package/dist/skills-hcn-pGD0.js +244 -0
  166. package/dist/skills-hcn-pGD0.js.map +1 -0
  167. package/dist/syllabi/alphabet/index.js +1 -1
  168. package/dist/syllabi/dialogue/index.d.ts +1 -1
  169. package/dist/syllabi/dialogue/index.js +2 -2
  170. package/dist/syllabi/essentials/index.d.ts +1 -1
  171. package/dist/syllabi/essentials/index.js +2 -2
  172. package/dist/syllabi/food/index.d.ts +1 -1
  173. package/dist/syllabi/food/index.js +2 -2
  174. package/dist/syllabi/grammar/index.d.ts +1 -1
  175. package/dist/syllabi/grammar/index.js +2 -2
  176. package/dist/syllabi/numbers/index.d.ts +1 -1
  177. package/dist/syllabi/numbers/index.js +2 -2
  178. package/dist/syllabi/reading/index.d.ts +1 -1
  179. package/dist/syllabi/reading/index.js +2 -2
  180. package/dist/syllabi/travel/index.d.ts +1 -1
  181. package/dist/syllabi/travel/index.js +2 -2
  182. package/dist/syllabi/vowels-tones/index.d.ts +1 -1
  183. package/dist/syllabi/vowels-tones/index.js +2 -2
  184. package/package.json +10 -7
  185. package/src/syllabi/alphabet/lessons/lesson-01.mdx +24 -13
  186. package/src/syllabi/alphabet/lessons/lesson-02.mdx +23 -13
  187. package/src/syllabi/alphabet/lessons/lesson-03.mdx +20 -13
  188. package/src/syllabi/alphabet/lessons/lesson-04.mdx +21 -12
  189. package/src/syllabi/alphabet/lessons/lesson-05.mdx +22 -12
  190. package/src/syllabi/alphabet/lessons/lesson-06.mdx +22 -13
  191. package/src/syllabi/alphabet/lessons/lesson-07.mdx +26 -14
  192. package/src/syllabi/alphabet/lessons/lesson-08.mdx +24 -12
  193. package/src/syllabi/alphabet/lessons/lesson-09.mdx +26 -14
  194. package/src/syllabi/alphabet/lessons/lesson-10.mdx +24 -12
  195. package/src/syllabi/alphabet/lessons/lesson-11.mdx +24 -12
  196. package/src/syllabi/alphabet/lessons/lesson-12.mdx +32 -20
  197. package/src/syllabi/dialogue/lessons/lesson-01.mdx +13 -5
  198. package/src/syllabi/dialogue/lessons/lesson-02.mdx +13 -5
  199. package/src/syllabi/dialogue/lessons/lesson-03.mdx +13 -5
  200. package/src/syllabi/dialogue/lessons/lesson-04.mdx +16 -8
  201. package/src/syllabi/dialogue/lessons/lesson-05.mdx +16 -8
  202. package/src/syllabi/dialogue/lessons/lesson-06.mdx +16 -8
  203. package/src/syllabi/dialogue/lessons/lesson-07.mdx +16 -8
  204. package/src/syllabi/dialogue/lessons/lesson-08.mdx +16 -8
  205. package/src/syllabi/essentials/lessons/lesson-01.mdx +13 -5
  206. package/src/syllabi/essentials/lessons/lesson-02.mdx +16 -8
  207. package/src/syllabi/essentials/lessons/lesson-03.mdx +16 -8
  208. package/src/syllabi/essentials/lessons/lesson-04.mdx +16 -8
  209. package/src/syllabi/essentials/lessons/lesson-05.mdx +16 -8
  210. package/src/syllabi/essentials/lessons/lesson-06.mdx +16 -8
  211. package/src/syllabi/food/lessons/lesson-01.mdx +13 -5
  212. package/src/syllabi/food/lessons/lesson-02.mdx +16 -8
  213. package/src/syllabi/food/lessons/lesson-03.mdx +16 -8
  214. package/src/syllabi/food/lessons/lesson-04.mdx +16 -8
  215. package/src/syllabi/food/lessons/lesson-05.mdx +16 -8
  216. package/src/syllabi/food/lessons/lesson-06.mdx +16 -8
  217. package/src/syllabi/food/lessons/lesson-07.mdx +16 -8
  218. package/src/syllabi/food/lessons/lesson-08.mdx +16 -8
  219. package/src/syllabi/grammar/lessons/lesson-01.mdx +10 -4
  220. package/src/syllabi/grammar/lessons/lesson-02.mdx +10 -4
  221. package/src/syllabi/grammar/lessons/lesson-03.mdx +13 -7
  222. package/src/syllabi/grammar/lessons/lesson-04.mdx +13 -7
  223. package/src/syllabi/grammar/lessons/lesson-05.mdx +13 -7
  224. package/src/syllabi/grammar/lessons/lesson-06.mdx +13 -7
  225. package/src/syllabi/grammar/lessons/lesson-07.mdx +13 -7
  226. package/src/syllabi/grammar/lessons/lesson-08.mdx +13 -7
  227. package/src/syllabi/numbers/lessons/lesson-01.mdx +27 -15
  228. package/src/syllabi/numbers/lessons/lesson-02.mdx +20 -8
  229. package/src/syllabi/numbers/lessons/lesson-03.mdx +20 -8
  230. package/src/syllabi/numbers/lessons/lesson-04.mdx +20 -8
  231. package/src/syllabi/numbers/lessons/lesson-05.mdx +20 -8
  232. package/src/syllabi/reading/lessons/lesson-01.mdx +13 -7
  233. package/src/syllabi/reading/lessons/lesson-02.mdx +13 -7
  234. package/src/syllabi/reading/lessons/lesson-03.mdx +13 -7
  235. package/src/syllabi/reading/lessons/lesson-04.mdx +13 -7
  236. package/src/syllabi/reading/lessons/lesson-05.mdx +13 -7
  237. package/src/syllabi/reading/lessons/lesson-06.mdx +13 -7
  238. package/src/syllabi/reading/lessons/lesson-07.mdx +13 -7
  239. package/src/syllabi/reading/lessons/lesson-08.mdx +13 -7
  240. package/src/syllabi/reading/lessons/lesson-09.mdx +13 -7
  241. package/src/syllabi/reading/lessons/lesson-10.mdx +13 -7
  242. package/src/syllabi/travel/lessons/lesson-01.mdx +16 -8
  243. package/src/syllabi/travel/lessons/lesson-02.mdx +16 -8
  244. package/src/syllabi/travel/lessons/lesson-03.mdx +16 -8
  245. package/src/syllabi/travel/lessons/lesson-04.mdx +16 -8
  246. package/src/syllabi/travel/lessons/lesson-05.mdx +16 -8
  247. package/src/syllabi/travel/lessons/lesson-06.mdx +16 -8
  248. package/src/syllabi/travel/lessons/lesson-07.mdx +16 -8
  249. package/src/syllabi/vowels-tones/lessons/lesson-01.mdx +20 -8
  250. package/src/syllabi/vowels-tones/lessons/lesson-02.mdx +26 -14
  251. package/src/syllabi/vowels-tones/lessons/lesson-03.mdx +25 -13
  252. package/src/syllabi/vowels-tones/lessons/lesson-04.mdx +24 -12
  253. package/src/syllabi/vowels-tones/lessons/lesson-05.mdx +27 -15
  254. package/src/syllabi/vowels-tones/lessons/lesson-06.mdx +29 -17
  255. package/src/syllabi/vowels-tones/lessons/lesson-07.mdx +24 -12
  256. package/src/syllabi/vowels-tones/lessons/lesson-08.mdx +20 -8
  257. package/dist/index-DADMaTE7.js +0 -27
  258. package/dist/index-DADMaTE7.js.map +0 -1
  259. package/dist/lesson-01--9NOyHZ6.js.map +0 -1
  260. package/dist/lesson-01-3hBted4A.js.map +0 -1
  261. package/dist/lesson-01-97FtYE6g.js.map +0 -1
  262. package/dist/lesson-01-BNdHXAGR.js.map +0 -1
  263. package/dist/lesson-01-BYKAZiua.js.map +0 -1
  264. package/dist/lesson-01-BhjY6ArF.js.map +0 -1
  265. package/dist/lesson-01-CF4tJfZ3.js.map +0 -1
  266. package/dist/lesson-01-CRx-yw4C.js.map +0 -1
  267. package/dist/lesson-01-WV3ic8Ok.js.map +0 -1
  268. package/dist/lesson-02-B2Xg7RVU.js.map +0 -1
  269. package/dist/lesson-02-BAbq-QGP.js.map +0 -1
  270. package/dist/lesson-02-BGnp0Ik_.js.map +0 -1
  271. package/dist/lesson-02-BO3BXPMJ.js.map +0 -1
  272. package/dist/lesson-02-Bm9EJuN8.js.map +0 -1
  273. package/dist/lesson-02-C0ZL4z3c.js.map +0 -1
  274. package/dist/lesson-02-C2ALLvoT.js.map +0 -1
  275. package/dist/lesson-02-C8dfzXvq.js.map +0 -1
  276. package/dist/lesson-02-CsejVbCo.js.map +0 -1
  277. package/dist/lesson-03-8NtAeqFh.js.map +0 -1
  278. package/dist/lesson-03-BdZfKRhq.js.map +0 -1
  279. package/dist/lesson-03-CKTNtgY1.js.map +0 -1
  280. package/dist/lesson-03-D8va_Q9B.js.map +0 -1
  281. package/dist/lesson-03-DV2SUWVH.js.map +0 -1
  282. package/dist/lesson-03-DiV17_Os.js.map +0 -1
  283. package/dist/lesson-03-DrJgbfDQ.js.map +0 -1
  284. package/dist/lesson-03-XVahXvgf.js.map +0 -1
  285. package/dist/lesson-03-Xc8-2Yt3.js.map +0 -1
  286. package/dist/lesson-04-BpRrNmzO.js.map +0 -1
  287. package/dist/lesson-04-CtNr2B3E.js.map +0 -1
  288. package/dist/lesson-04-DEEPJ_rd.js.map +0 -1
  289. package/dist/lesson-04-D__vMCyA.js.map +0 -1
  290. package/dist/lesson-04-Dfc7S4nT.js.map +0 -1
  291. package/dist/lesson-04-DtXVhdGB.js.map +0 -1
  292. package/dist/lesson-04-ZrSBM0BX.js.map +0 -1
  293. package/dist/lesson-04-ioLXnB0j.js.map +0 -1
  294. package/dist/lesson-04-rapx_3vA.js.map +0 -1
  295. package/dist/lesson-05-Bm6fg-DJ.js.map +0 -1
  296. package/dist/lesson-05-CKxXcooO.js.map +0 -1
  297. package/dist/lesson-05-D1d3kc3M.js.map +0 -1
  298. package/dist/lesson-05-D2SVU-I0.js.map +0 -1
  299. package/dist/lesson-05-DBsHyFlt.js.map +0 -1
  300. package/dist/lesson-05-DXOLS7G0.js.map +0 -1
  301. package/dist/lesson-05-D_GdROUn.js.map +0 -1
  302. package/dist/lesson-05-DusKUtbm.js.map +0 -1
  303. package/dist/lesson-05-ip400cxe.js.map +0 -1
  304. package/dist/lesson-06-1CE05TRX.js.map +0 -1
  305. package/dist/lesson-06-1ZsbrE1a.js.map +0 -1
  306. package/dist/lesson-06-Aw-X-HMV.js.map +0 -1
  307. package/dist/lesson-06-BG26PBTF.js.map +0 -1
  308. package/dist/lesson-06-Bliedg7n.js.map +0 -1
  309. package/dist/lesson-06-CnKkcUb-.js.map +0 -1
  310. package/dist/lesson-06-CvN9pDsE.js.map +0 -1
  311. package/dist/lesson-06-Du9J8sYl.js.map +0 -1
  312. package/dist/lesson-07-8zdPFyjE.js.map +0 -1
  313. package/dist/lesson-07-B9bkJ3gP.js.map +0 -1
  314. package/dist/lesson-07-CTFSd9gF.js.map +0 -1
  315. package/dist/lesson-07-DezS1ojS.js.map +0 -1
  316. package/dist/lesson-07-DjCMCYkK.js.map +0 -1
  317. package/dist/lesson-07-X6anzbAn.js.map +0 -1
  318. package/dist/lesson-07-rvSSQiVh.js.map +0 -1
  319. package/dist/lesson-08-BYfkPBkH.js.map +0 -1
  320. package/dist/lesson-08-Bb_v_gD-.js.map +0 -1
  321. package/dist/lesson-08-BqW5C_OE.js.map +0 -1
  322. package/dist/lesson-08-CeDWopKc.js.map +0 -1
  323. package/dist/lesson-08-Cyzy_VeP.js.map +0 -1
  324. package/dist/lesson-08-hJlci9W5.js.map +0 -1
  325. package/dist/lesson-09-BQ1CZCjT.js.map +0 -1
  326. package/dist/lesson-09-DHRHZIc1.js.map +0 -1
  327. package/dist/lesson-10-BdfkVT7s.js.map +0 -1
  328. package/dist/lesson-10-C7YEQ8et.js.map +0 -1
  329. package/dist/lesson-11-oJQ8ZxJk.js.map +0 -1
  330. package/dist/lesson-12-D69m5ETy.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-02-L8oNhBej.js","sources":["../src/syllabi/reading/lessons/lesson-02.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: thai-reading-lesson-02\\ntitle: \\\"บทที่ 2 — เมนูอาหาร\\\"\\ndescription: \\\"Restaurant Menus: Read Thai restaurant menus and order confidently\\\"\\norder: 2\\nparentId: thai-reading\\ndifficulty: intermediate\\ncefrLevel: B1\\ncategories:\\n - reading\\n - menus\\n - food\\nmetadata:\\n estimatedTime: 30\\n prerequisites:\\n - thai-reading-lesson-01\\n learningObjectives:\\n - id: obj-r2-food-names\\n description: \\\"Read food names in Thai script\\\"\\n skill: text-decoding\\n - id: obj-r2-menu-categories\\n description: \\\"Understand menu categories\\\"\\n skill: reading-comprehension\\n - id: obj-r2-pricing\\n description: \\\"Recognize pricing and portion information\\\"\\n skill: word-recognition\\n---\\n\\n# Restaurant Menus\\n\\nThai menus follow predictable patterns. Learn to read them and order with confidence.\\n\\n## Menu Categories\\n\\n| Thai | Romanization | English |\\n|------|--------------|---------|\\n| อาหารจานเดียว | ahan jan diao | single dishes |\\n| กับข้าว | kap khao | dishes with rice |\\n| เครื่องดื่ม | khrueang duem | beverages |\\n| ของหวาน | khong wan | desserts |\\n\\n## Common Menu Items\\n\\n| Thai | Romanization | English |\\n|------|--------------|---------|\\n| ข้าวผัด | khao phat | fried rice |\\n| ผัดไทย | phat thai | pad thai |\\n| ต้มยำกุ้ง | tom yam kung | spicy shrimp soup |\\n| แกงเขียวหวาน | kaeng khiao wan | green curry |\\n\\n## Menu Descriptors\\n\\n| Thai | Romanization | English |\\n|------|--------------|---------|\\n| พิเศษ | phiset | special |\\n| ธรรมดา | thammada | regular |\\n| ใหญ่ | yai | large |\\n| เล็ก | lek | small |\\n\\n## Price Indicators\\n\\n| Thai | Romanization | English |\\n|------|--------------|---------|\\n| ราคา | raka | price |\\n| บาท | baht | baht |\\n| ต่อจาน | to jan | per plate |\\n| ต่อถ้วย | to thuai | per bowl |\\n\\n## Sample Menu Reading\\n\\n**ผัดไทยกุ้ง (พิเศษ) - 80 บาท**\\n*phat thai kung (phiset) - paet-sip baht*\\nPad Thai with shrimp (special) - 80 baht\\n\\n**ข้าวผัดหมู - 50 บาท**\\n*khao phat mu - ha-sip baht*\\nPork fried rice - 50 baht\\n\\n## Practice Exercises\\n\\n:::exercise{id=\\\"reading-2-menu-categories\\\" type=\\\"matching\\\" title=\\\"Menu Category Recognition\\\" skill=\\\"reading-comprehension\\\" objectiveId=\\\"obj-r2-menu-categories\\\"}\\n\\n**Question:** Match each menu category to its meaning\\n\\n- อาหารจานเดียว\\n- กับข้าว\\n- เครื่องดื่ม\\n- ของหวาน\\n\\n**Answer:**\\n\\n- อาหารจานเดียว → Single dishes (main dishes)\\n- กับข้าว → Dishes with rice (side dishes)\\n- เครื่องดื่ม → Beverages/drinks\\n- ของหวาน → Desserts\\n\\n**Explanation:** Thai menus are organized by category. อาหารจานเดียว are complete single-dish meals. กับข้าว are dishes meant to be eaten with rice. Understanding these categories helps you navigate menus.\\n\\n:::\\n\\n:::exercise{id=\\\"reading-2-menu-descriptors\\\" type=\\\"fill-in-blank\\\" title=\\\"Menu Descriptors\\\" skill=\\\"word-recognition\\\" objectiveId=\\\"obj-r2-pricing\\\"}\\n\\n**Question:** What do these menu descriptors mean?\\n\\n- พิเศษ\\n- ธรรมดา\\n- ใหญ่\\n- เล็ก\\n\\n**Answer:**\\n\\n- พิเศษ → Special (often means larger portion or premium version)\\n- ธรรมดา → Regular/normal\\n- ใหญ่ → Large\\n- เล็ก → Small\\n\\n**Explanation:** These descriptors appear frequently on menus. พิเศษ often means a special or larger version. ใหญ่ and เล็ก refer to portion sizes.\\n\\n:::\\n\\n:::exercise{id=\\\"reading-2-price-reading\\\" type=\\\"multiple-choice\\\" title=\\\"Reading Prices\\\" skill=\\\"text-decoding\\\" objectiveId=\\\"obj-r2-food-names\\\"}\\n\\n**Question:** How do you read \\\"80 บาท\\\" from a menu?\\n\\n**Options:**\\n- Eighty baht\\n- Eight-zero baht\\n- แปดสิบบาท (paet-sip baat)\\n- All of the above are correct\\n\\n**Answer:** 4\\n\\n**Explanation:** Prices can be written in Arabic numerals (80) or Thai numerals (๘๐), but are usually said in Thai: แปดสิบบาท. Always add บาท after the amount.\\n\\n:::\\n\\n## What's Next\\n\\nIn Lesson 3, you'll master transportation signs — navigate BTS/MRT stations, airports, and public transport with confidence.\\n\""],"names":["lesson02"],"mappings":"AAAA,MAAAA,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -15,11 +15,19 @@ metadata:
15
15
  estimatedTime: 25
16
16
  prerequisites:
17
17
  - thai-essentials-lesson-01
18
- objectives:
19
- - "Use ครับ and ค่ะ/คะ correctly"
20
- - "Understand other common particles"
21
- - "Know when particles are optional"
22
- - "Sound polite in any situation"
18
+ learningObjectives:
19
+ - id: obj-particles-use-correctly
20
+ description: "Use ครับ and ค่ะ/คะ correctly"
21
+ skill: polite-register
22
+ - id: obj-particles-common
23
+ description: "Understand other common particles"
24
+ skill: word-recognition
25
+ - id: obj-particles-optional
26
+ description: "Know when particles are optional"
27
+ skill: situational-response
28
+ - id: obj-particles-sound-polite
29
+ description: "Sound polite in any situation"
30
+ skill: polite-register
23
31
  ---
24
32
 
25
33
  # บทที่ 2 (Lesson 2) — Polite Particles
@@ -132,7 +140,7 @@ Particles can combine. Order: content particle + polite particle
132
140
 
133
141
  ## Practice Exercises
134
142
 
135
- :::exercise{id="particles-1-practice" type="fill-in-blank" title="Particle Practice"}
143
+ :::exercise{id="particles-1-practice" type="fill-in-blank" title="Particle Practice" skill="polite-register" objectiveId="obj-particles-use-correctly"}
136
144
 
137
145
  **Question:** Add the correct particle:
138
146
 
@@ -152,7 +160,7 @@ Particles can combine. Order: content particle + polite particle
152
160
 
153
161
  :::
154
162
 
155
- :::exercise{id="particles-1-combining" type="matching" title="Combining Particles"}
163
+ :::exercise{id="particles-1-combining" type="matching" title="Combining Particles" skill="polite-register" objectiveId="obj-particles-sound-polite"}
156
164
 
157
165
  **Question:** Match each phrase to its correct particle combination
158
166
 
@@ -170,7 +178,7 @@ Particles can combine. Order: content particle + polite particle
170
178
 
171
179
  :::
172
180
 
173
- :::exercise{id="particles-1-common-mistakes" type="multiple-choice" title="Common Mistakes"}
181
+ :::exercise{id="particles-1-common-mistakes" type="multiple-choice" title="Common Mistakes" skill="polite-register" objectiveId="obj-particles-use-correctly"}
174
182
 
175
183
  **Question:** What's wrong with this sentence: "ขอบคุณค่ะ" (spoken by a male)?
176
184
 
@@ -193,4 +201,4 @@ In Lesson 3, you'll learn how to ask basic questions — who, what, where, when,
193
201
  export {
194
202
  n as default
195
203
  };
196
- //# sourceMappingURL=lesson-02-CsejVbCo.js.map
204
+ //# sourceMappingURL=lesson-02-VDOme3ES.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-02-VDOme3ES.js","sources":["../src/syllabi/essentials/lessons/lesson-02.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: thai-essentials-lesson-02\\ntitle: \\\"บทที่ 2 — คำลงท้าย\\\"\\ndescription: \\\"Polite Particles: ครับ, ค่ะ, and showing respect\\\"\\norder: 2\\nparentId: thai-essentials\\ndifficulty: beginner\\ncefrLevel: A1\\ncategories:\\n - particles\\n - politeness\\n - grammar\\nmetadata:\\n estimatedTime: 25\\n prerequisites:\\n - thai-essentials-lesson-01\\n learningObjectives:\\n - id: obj-particles-use-correctly\\n description: \\\"Use ครับ and ค่ะ/คะ correctly\\\"\\n skill: polite-register\\n - id: obj-particles-common\\n description: \\\"Understand other common particles\\\"\\n skill: word-recognition\\n - id: obj-particles-optional\\n description: \\\"Know when particles are optional\\\"\\n skill: situational-response\\n - id: obj-particles-sound-polite\\n description: \\\"Sound polite in any situation\\\"\\n skill: polite-register\\n---\\n\\n# บทที่ 2 (Lesson 2) — Polite Particles\\n\\n## Introduction\\n\\nIn Thai, how you end a sentence is as important as what you say. Polite particles (คำลงท้าย) show respect, indicate your gender, and mark whether you're asking or stating. Missing them makes you sound rude or abrupt.\\n\\n## The Core System\\n\\n| Speaker | Statement | Question |\\n|---------|-----------|----------|\\n| Male | ครับ (khráp) | ครับ (khráp) |\\n| Female | ค่ะ (khâ) | คะ (khá) |\\n\\n**Key insight**: Men use ครับ for everything. Women change tone: falling (ค่ะ) for statements, rising (คะ) for questions.\\n\\n## Examples in Action\\n\\n**Male speaker:**\\n- ขอบคุณครับ (Thank you)\\n- ใช่ครับ (Yes)\\n- ไม่ใช่ครับ (No, it isn't)\\n- อะไรครับ (What?)\\n\\n**Female speaker:**\\n- ขอบคุณค่ะ (Thank you)\\n- ใช่ค่ะ (Yes)\\n- ไม่ใช่ค่ะ (No, it isn't)\\n- อะไรคะ (What?)\\n\\n## When to Use Particles\\n\\n**Always use particles with:**\\n- Strangers and acquaintances\\n- Elders and superiors\\n- Service situations (shops, restaurants)\\n- Formal settings\\n- When in doubt\\n\\n**Particles optional with:**\\n- Close friends\\n- Family members\\n- Children\\n- Very casual situations\\n\\n## Other Important Particles\\n\\n:::vocabulary-set{id=\\\"thai-particles\\\" title=\\\"Common Particles\\\"}\\n\\n::vocab-item{id=\\\"na\\\" word=\\\"นะ\\\" pronunciation=\\\"ná\\\" meaning=\\\"softener, seeking agreement\\\"}\\n\\n::vocab-item{id=\\\"si\\\" word=\\\"สิ\\\" pronunciation=\\\"sì\\\" meaning=\\\"urging, encouragement\\\"}\\n\\n::vocab-item{id=\\\"la\\\" word=\\\"ล่ะ\\\" pronunciation=\\\"là\\\" meaning=\\\"emphasis, 'then/so'\\\"}\\n\\n::vocab-item{id=\\\"loei\\\" word=\\\"เลย\\\" pronunciation=\\\"ləəi\\\" meaning=\\\"emphasis, 'at all/really'\\\"}\\n\\n::vocab-item{id=\\\"roh\\\" word=\\\"หรอ\\\" pronunciation=\\\"rɔ̌ɔ\\\" meaning=\\\"really? (surprise)\\\"}\\n\\n:::\\n\\n## Using นะ (ná)\\n\\nThe particle นะ softens statements and seeks agreement:\\n\\n| Without นะ | With นะ | Effect |\\n|------------|---------|--------|\\n| ไปเลย (Go!) | ไปเลยนะ | Go, okay? (softer) |\\n| อร่อย (Delicious) | อร่อยนะ | It's good, right? |\\n| ขอบคุณ (Thanks) | ขอบคุณนะ | Thanks! (warmer) |\\n\\n## Using สิ (sì)\\n\\nThe particle สิ encourages or urges:\\n\\n| Thai | Meaning |\\n|------|---------|\\n| กินสิ | Go ahead and eat! |\\n| มาสิ | Come on! |\\n| ลองดูสิ | Give it a try! |\\n\\n## Combining Particles\\n\\nParticles can combine. Order: content particle + polite particle\\n\\n| Thai | Meaning |\\n|------|---------|\\n| ใช่นะครับ | Yes, right? (male) |\\n| อร่อยนะคะ | It's delicious, isn't it? (female) |\\n| ไปเลยนะค่ะ | Go ahead then, okay? (female) |\\n\\n## Common Mistakes\\n\\n❌ **Forgetting particles with strangers**\\n- ขอบคุณ (too abrupt) → ✓ ขอบคุณครับ/ค่ะ\\n\\n❌ **Wrong tone for questions (women)**\\n- อะไรค่ะ (wrong) → ✓ อะไรคะ (rising tone)\\n\\n❌ **Using ครับ as a woman**\\n- This sounds masculine; always use ค่ะ/คะ\\n\\n## Key Points\\n\\n1. **Always end politely**: ครับ for men, ค่ะ/คะ for women\\n2. **Question vs statement**: Women change tone\\n3. **นะ softens**: Makes requests and statements gentler\\n4. **When in doubt, use them**: Better to be too polite\\n\\n## Practice Exercises\\n\\n:::exercise{id=\\\"particles-1-practice\\\" type=\\\"fill-in-blank\\\" title=\\\"Particle Practice\\\" skill=\\\"polite-register\\\" objectiveId=\\\"obj-particles-use-correctly\\\"}\\n\\n**Question:** Add the correct particle:\\n\\n1. ขอบคุณ___ (male thanking someone)\\n2. อะไร___ (female asking \\\"what?\\\")\\n3. ใช่___ (female confirming)\\n4. ไม่เป็นไร___ (male saying \\\"no problem\\\")\\n\\n**Answer:**\\n\\n1. ขอบคุณ**ครับ** (male statement)\\n2. อะไร**คะ** (female question - rising tone)\\n3. ใช่**ค่ะ** (female statement - falling tone)\\n4. ไม่เป็นไร**ครับ** (male statement)\\n\\n**Explanation:** Men always use ครับ. Women use ค่ะ (falling) for statements and คะ (rising) for questions. This is essential for sounding polite in Thai.\\n\\n:::\\n\\n:::exercise{id=\\\"particles-1-combining\\\" type=\\\"matching\\\" title=\\\"Combining Particles\\\" skill=\\\"polite-register\\\" objectiveId=\\\"obj-particles-sound-polite\\\"}\\n\\n**Question:** Match each phrase to its correct particle combination\\n\\n- ใช่นะ (yes, right?)\\n- อร่อยนะ (it's delicious, isn't it?)\\n- ไปเลยนะ (go ahead, okay?)\\n\\n**Answer:**\\n\\n- ใช่นะ**ครับ** (male, seeking agreement)\\n- อร่อยนะ**คะ** (female, question form)\\n- ไปเลยนะ**ค่ะ** (female, statement form)\\n\\n**Explanation:** Particles can combine. The order is: content particle (นะ) + polite particle (ครับ/ค่ะ/คะ). นะ softens and seeks agreement, then add the gender-appropriate polite particle.\\n\\n:::\\n\\n:::exercise{id=\\\"particles-1-common-mistakes\\\" type=\\\"multiple-choice\\\" title=\\\"Common Mistakes\\\" skill=\\\"polite-register\\\" objectiveId=\\\"obj-particles-use-correctly\\\"}\\n\\n**Question:** What's wrong with this sentence: \\\"ขอบคุณค่ะ\\\" (spoken by a male)?\\n\\n**Options:**\\n- Nothing, it's correct\\n- Should be ขอบคุณครับ\\n- Should be ขอบคุณคะ\\n- Particles are optional\\n\\n**Answer:** 2\\n\\n**Explanation:** Men must use ครับ, not ค่ะ. Using ค่ะ as a man sounds feminine. Women use ค่ะ/คะ depending on whether it's a statement or question.\\n\\n:::\\n\\n## What's Next\\n\\nIn Lesson 3, you'll learn how to ask basic questions — who, what, where, when, why, how.\\n\""],"names":["lesson02"],"mappings":"AAAA,MAAAA,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -14,11 +14,23 @@ metadata:
14
14
  estimatedTime: 25
15
15
  prerequisites:
16
16
  - thai-numbers-lesson-02
17
- objectives:
18
- - "Count in hundreds and thousands"
19
- - "Understand Thai number grouping (หมื่น, แสน)"
20
- - "Say numbers up to one million"
21
- - "Read prices and large quantities"
17
+ learningObjectives:
18
+ - id: obj-count-hundreds-thousands
19
+ description: "Count in hundreds and thousands"
20
+ skill: word-production
21
+ references: [num-one, num-two, num-three, num-four, num-five, num-six, num-seven, num-eight, num-nine]
22
+ - id: obj-thai-number-grouping
23
+ description: "Understand Thai number grouping (หมื่น, แสน)"
24
+ skill: reading-comprehension
25
+ references: [num-one, num-two, num-three, num-four, num-five, num-six, num-seven, num-eight, num-nine]
26
+ - id: obj-say-up-to-million
27
+ description: "Say numbers up to one million"
28
+ skill: word-pronunciation
29
+ references: [num-one, num-two, num-three, num-four, num-five, num-six, num-seven, num-eight, num-nine]
30
+ - id: obj-read-prices-quantities
31
+ description: "Read prices and large quantities"
32
+ skill: word-recognition
33
+ references: [num-one, num-two, num-three, num-four, num-five, num-six, num-seven, num-eight, num-nine]
22
34
  ---
23
35
 
24
36
  # บทที่ 3 (Lesson 3) — Large Numbers
@@ -122,7 +134,7 @@ Remember: หนึ่ง becomes เอ็ด in compounds:
122
134
 
123
135
  ## Practice Exercises
124
136
 
125
- :::exercise{id="numbers-3-large-numbers" type="fill-in-blank" title="Large Number Practice"}
137
+ :::exercise{id="numbers-3-large-numbers" type="fill-in-blank" title="Large Number Practice" skill="word-production" objectiveId="obj-count-hundreds-thousands"}
126
138
 
127
139
  **Question:** Write these large numbers in Thai:
128
140
 
@@ -140,7 +152,7 @@ Remember: หนึ่ง becomes เอ็ด in compounds:
140
152
 
141
153
  :::
142
154
 
143
- :::exercise{id="numbers-3-thai-grouping" type="multiple-choice" title="Thai Number Grouping"}
155
+ :::exercise{id="numbers-3-thai-grouping" type="multiple-choice" title="Thai Number Grouping" skill="reading-comprehension" objectiveId="obj-thai-number-grouping"}
144
156
 
145
157
  **Question:** How does Thai say 50,000 differently from English?
146
158
 
@@ -156,7 +168,7 @@ Remember: หนึ่ง becomes เอ็ด in compounds:
156
168
 
157
169
  :::
158
170
 
159
- :::exercise{id="numbers-3-price-reading" type="matching" title="Reading Prices"}
171
+ :::exercise{id="numbers-3-price-reading" type="matching" title="Reading Prices" skill="word-recognition" objectiveId="obj-read-prices-quantities"}
160
172
 
161
173
  **Question:** Match each price to its Thai form
162
174
 
@@ -181,4 +193,4 @@ In Lesson 4, you'll learn how to tell time and read dates in Thai — essential
181
193
  export {
182
194
  n as default
183
195
  };
184
- //# sourceMappingURL=lesson-03-DV2SUWVH.js.map
196
+ //# sourceMappingURL=lesson-03-9WioSe19.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-03-9WioSe19.js","sources":["../src/syllabi/numbers/lessons/lesson-03.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: thai-numbers-lesson-03\\ntitle: \\\"บทที่ 3 — ตัวเลขใหญ่\\\"\\ndescription: \\\"Large Numbers: Hundreds, thousands, and millions\\\"\\norder: 3\\nparentId: thai-numbers\\ndifficulty: beginner\\ncefrLevel: A1\\ncategories:\\n - numbers\\n - large-numbers\\nmetadata:\\n estimatedTime: 25\\n prerequisites:\\n - thai-numbers-lesson-02\\n learningObjectives:\\n - id: obj-count-hundreds-thousands\\n description: \\\"Count in hundreds and thousands\\\"\\n skill: word-production\\n references: [num-one, num-two, num-three, num-four, num-five, num-six, num-seven, num-eight, num-nine]\\n - id: obj-thai-number-grouping\\n description: \\\"Understand Thai number grouping (หมื่น, แสน)\\\"\\n skill: reading-comprehension\\n references: [num-one, num-two, num-three, num-four, num-five, num-six, num-seven, num-eight, num-nine]\\n - id: obj-say-up-to-million\\n description: \\\"Say numbers up to one million\\\"\\n skill: word-pronunciation\\n references: [num-one, num-two, num-three, num-four, num-five, num-six, num-seven, num-eight, num-nine]\\n - id: obj-read-prices-quantities\\n description: \\\"Read prices and large quantities\\\"\\n skill: word-recognition\\n references: [num-one, num-two, num-three, num-four, num-five, num-six, num-seven, num-eight, num-nine]\\n---\\n\\n# บทที่ 3 (Lesson 3) — Large Numbers\\n\\n## Introduction\\n\\nThai has specific words for each power of ten, including some that don't exist in English. Understanding these is essential for dealing with prices, populations, distances, and any real-world numbers.\\n\\n## The Number Words\\n\\n| Value | Thai | Romanization | Notes |\\n|-------|------|--------------|-------|\\n| 100 | ร้อย | rɔ́ɔi | hundred |\\n| 1,000 | พัน | phan | thousand |\\n| 10,000 | หมื่น | mʉ̀ʉn | ten-thousand (no English equivalent) |\\n| 100,000 | แสน | sǎen | hundred-thousand |\\n| 1,000,000 | ล้าน | láan | million |\\n\\n## Thai vs English Grouping\\n\\nEnglish groups by thousands (1,000 → 1,000,000 → 1,000,000,000).\\nThai traditionally groups by ten-thousands (หมื่น).\\n\\n| Number | English Says | Thai Says |\\n|--------|--------------|-----------|\\n| 50,000 | \\\"fifty thousand\\\" | \\\"five หมื่น\\\" (ห้าหมื่น) |\\n| 300,000 | \\\"three hundred thousand\\\" | \\\"three แสน\\\" (สามแสน) |\\n\\n## Building Large Numbers\\n\\nNumbers build from largest to smallest:\\n\\n**543,210 = ห้าแสนสี่หมื่นสามพันสองร้อยสิบ**\\n\\nBreakdown:\\n- ห้าแสน (5 × 100,000)\\n- สี่หมื่น (4 × 10,000)\\n- สามพัน (3 × 1,000)\\n- สองร้อย (2 × 100)\\n- สิบ (10)\\n\\n## Hundreds (100-999)\\n\\n| Number | Thai | Pronunciation |\\n|--------|------|---------------|\\n| 100 | หนึ่งร้อย / ร้อย | (nʉ̀ng) rɔ́ɔi |\\n| 200 | สองร้อย | sǒng rɔ́ɔi |\\n| 500 | ห้าร้อย | hâa rɔ́ɔi |\\n| 150 | ร้อยห้าสิบ | rɔ́ɔi hâa-sìp |\\n| 275 | สองร้อยเจ็ดสิบห้า | sǒng-rɔ́ɔi jèt-sìp-hâa |\\n\\n**Note**: For 100 alone, หนึ่ง is often dropped (just ร้อย).\\n\\n## Thousands (1,000-9,999)\\n\\n| Number | Thai | Pronunciation |\\n|--------|------|---------------|\\n| 1,000 | หนึ่งพัน / พัน | (nʉ̀ng) phan |\\n| 2,000 | สองพัน | sǒng phan |\\n| 5,500 | ห้าพันห้าร้อย | hâa-phan hâa-rɔ́ɔi |\\n| 9,999 | เก้าพันเก้าร้อยเก้าสิบเก้า | gâo-phan gâo-rɔ́ɔi gâo-sìp-gâo |\\n\\n## Ten-Thousands & Beyond\\n\\n| Number | Thai |\\n|--------|------|\\n| 10,000 | หนึ่งหมื่น (nʉ̀ng mʉ̀ʉn) |\\n| 50,000 | ห้าหมื่น (hâa mʉ̀ʉn) |\\n| 100,000 | หนึ่งแสน (nʉ̀ng sǎen) |\\n| 500,000 | ห้าแสน (hâa sǎen) |\\n| 1,000,000 | หนึ่งล้าน (nʉ̀ng láan) |\\n\\n## Real-World Examples\\n\\n| Context | Number | Thai |\\n|---------|--------|------|\\n| Rent | 15,000 baht | หนึ่งหมื่นห้าพันบาท |\\n| Salary | 45,000 baht | สี่หมื่นห้าพันบาท |\\n| Car price | 800,000 baht | แปดแสนบาท |\\n| Population | 10 million | สิบล้านคน |\\n\\n## The เอ็ด Rule Continues\\n\\nRemember: หนึ่ง becomes เอ็ด in compounds:\\n- 101 = ร้อยเอ็ด (not ร้อยหนึ่ง)\\n- 1,001 = พันเอ็ด\\n- 10,001 = หมื่นเอ็ด\\n\\n## Key Points\\n\\n1. **หมื่น (10,000)**: Unique to Thai — no direct English equivalent\\n2. **แสน (100,000)**: Another Thai-specific grouping\\n3. **Same pattern**: Larger numbers follow the same logic\\n4. **เอ็ด still applies**: For any number ending in 1\\n\\n## Practice Reading Prices\\n\\n- ฿250 = สองร้อยห้าสิบบาท\\n- ฿1,500 = พันห้าร้อยบาท\\n- ฿35,000 = สามหมื่นห้าพันบาท\\n\\n## Practice Exercises\\n\\n:::exercise{id=\\\"numbers-3-large-numbers\\\" type=\\\"fill-in-blank\\\" title=\\\"Large Number Practice\\\" skill=\\\"word-production\\\" objectiveId=\\\"obj-count-hundreds-thousands\\\"}\\n\\n**Question:** Write these large numbers in Thai:\\n\\n- 543,210\\n- 1,000,000\\n- 50,000\\n\\n**Answer:**\\n\\n- 543,210 → ห้าแสนสี่หมื่นสามพันสองร้อยสิบ\\n- 1,000,000 → หนึ่งล้าน\\n- 50,000 → ห้าหมื่น\\n\\n**Explanation:** Thai groups by ten-thousands (หมื่น) and hundred-thousands (แสน). Break down from largest to smallest: แสน → หมื่น → พัน → ร้อย → สิบ → ones.\\n\\n:::\\n\\n:::exercise{id=\\\"numbers-3-thai-grouping\\\" type=\\\"multiple-choice\\\" title=\\\"Thai Number Grouping\\\" skill=\\\"reading-comprehension\\\" objectiveId=\\\"obj-thai-number-grouping\\\"}\\n\\n**Question:** How does Thai say 50,000 differently from English?\\n\\n**Options:**\\n- Thai says \\\"fifty thousand\\\" like English\\n- Thai says \\\"five หมื่น\\\" (five ten-thousands)\\n- Thai doesn't have a word for 50,000\\n- Thai uses a different number system\\n\\n**Answer:** 2\\n\\n**Explanation:** Thai traditionally groups by ten-thousands (หมื่น), not thousands. So 50,000 is \\\"five หมื่น\\\" (ห้าหมื่น) rather than \\\"fifty thousand\\\". This reflects the traditional counting system.\\n\\n:::\\n\\n:::exercise{id=\\\"numbers-3-price-reading\\\" type=\\\"matching\\\" title=\\\"Reading Prices\\\" skill=\\\"word-recognition\\\" objectiveId=\\\"obj-read-prices-quantities\\\"}\\n\\n**Question:** Match each price to its Thai form\\n\\n- ฿250\\n- ฿1,500\\n- ฿35,000\\n\\n**Answer:**\\n\\n- ฿250 → สองร้อยห้าสิบบาท\\n- ฿1,500 → พันห้าร้อยบาท\\n- ฿35,000 → สามหมื่นห้าพันบาท\\n\\n**Explanation:** Always add บาท after the amount. Break down the number from largest to smallest place value, then add บาท.\\n\\n:::\\n\\n## What's Next\\n\\nIn Lesson 4, you'll learn how to tell time and read dates in Thai — essential for daily life!\\n\""],"names":["lesson03"],"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;"}
@@ -15,11 +15,19 @@ metadata:
15
15
  estimatedTime: 30
16
16
  prerequisites:
17
17
  - thai-dialogue-lesson-02
18
- objectives:
19
- - "Ask where something is located"
20
- - "Understand direction instructions"
21
- - "Ask for clarification"
22
- - "Thank someone for helping"
18
+ learningObjectives:
19
+ - id: obj-directions-ask-location
20
+ description: "Ask where something is located"
21
+ skill: situational-response
22
+ - id: obj-directions-understand
23
+ description: "Understand direction instructions"
24
+ skill: dialogue-comprehension
25
+ - id: obj-directions-clarify
26
+ description: "Ask for clarification"
27
+ skill: polite-register
28
+ - id: obj-directions-thank
29
+ description: "Thank someone for helping"
30
+ skill: word-production
23
31
  ---
24
32
 
25
33
  # บทที่ 3 (Lesson 3) — Asking Directions
@@ -113,4 +121,4 @@ In Lesson 4, you'll learn dialogues for transportation — taking taxis, tuk-tuk
113
121
  export {
114
122
  n as default
115
123
  };
116
- //# sourceMappingURL=lesson-03-DiV17_Os.js.map
124
+ //# sourceMappingURL=lesson-03-BZutWzMD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-03-BZutWzMD.js","sources":["../src/syllabi/dialogue/lessons/lesson-03.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: thai-dialogue-lesson-03\\ntitle: \\\"บทที่ 3 — ถามทาง\\\"\\ndescription: \\\"Asking Directions: Finding your way around\\\"\\norder: 3\\nparentId: thai-dialogue\\ndifficulty: intermediate\\ncefrLevel: A2\\ncategories:\\n - dialogue\\n - directions\\n - navigation\\nmetadata:\\n estimatedTime: 30\\n prerequisites:\\n - thai-dialogue-lesson-02\\n learningObjectives:\\n - id: obj-directions-ask-location\\n description: \\\"Ask where something is located\\\"\\n skill: situational-response\\n - id: obj-directions-understand\\n description: \\\"Understand direction instructions\\\"\\n skill: dialogue-comprehension\\n - id: obj-directions-clarify\\n description: \\\"Ask for clarification\\\"\\n skill: polite-register\\n - id: obj-directions-thank\\n description: \\\"Thank someone for helping\\\"\\n skill: word-production\\n---\\n\\n# บทที่ 3 (Lesson 3) — Asking Directions\\n\\n## Situation\\n\\nYou're looking for a temple (Wat Pho) and asking a local for directions.\\n\\n## Dialogue\\n\\n:::dialogue{id=\\\"directions-dialogue-1\\\" title=\\\"Finding Wat Pho\\\"}\\n\\n**คุณ (You):** ขอโทษครับ/ค่ะ วัดโพธิ์อยู่ที่ไหนครับ/คะ?\\n*khǎaw-thôot khráp/khâ, wát-phoo yùu thîi-nǎi khráp/khá?*\\nExcuse me, where is Wat Pho?\\n\\n**คนไทย (Thai person):** วัดโพธิ์เหรอครับ? ตรงไปแล้วเลี้ยวซ้ายที่สี่แยก\\n*wát-phoo rǒe khráp? dtrong bpai láew líaw sáai thîi sìi-yàek*\\nWat Pho? Go straight and turn left at the intersection.\\n\\n**คุณ:** เดินไกลไหมครับ/คะ?\\n*dəən glai mái khráp/khá?*\\nIs it far to walk?\\n\\n**คนไทย:** ไม่ไกลครับ ประมาณ 5 นาที\\n*mâi glai khráp, bprà-maan hâa naa-thii*\\nNot far. About 5 minutes.\\n\\n**คุณ:** เลี้ยวซ้ายที่ไหนครับ/คะ?\\n*líaw sáai thîi-nǎi khráp/khá?*\\nWhere do I turn left?\\n\\n**คนไทย:** ที่สี่แยกแรกครับ จะเห็นเซเว่นอยู่มุมถนน\\n*thîi sìi-yàek râek khráp, jà hěn seh-wen yùu mum thà-nǒn*\\nAt the first intersection. You'll see a 7-Eleven on the corner.\\n\\n**คุณ:** ขอบคุณมากครับ/ค่ะ\\n*khàawp-khun mâak khráp/khâ*\\nThank you very much!\\n\\n**คนไทย:** ไม่เป็นไรครับ\\n*mâi bpen rai khráp*\\nYou're welcome!\\n\\n:::\\n\\n## Key Phrases\\n\\n| Thai | Romanization | Meaning |\\n|------|--------------|---------|\\n| ...อยู่ที่ไหน? | ...yùu thîi-nǎi? | Where is...? |\\n| ตรงไป | dtrong bpai | go straight |\\n| เลี้ยวซ้าย | líaw sáai | turn left |\\n| เลี้ยวขวา | líaw kwǎa | turn right |\\n| ไกลไหม? | glai mái? | Is it far? |\\n| ไม่ไกล | mâi glai | not far |\\n| ประมาณ...นาที | bprà-maan...naa-thii | about...minutes |\\n\\n## Direction Words\\n\\n| Thai | Meaning |\\n|------|---------|\\n| ตรงไป | go straight |\\n| เลี้ยวซ้าย | turn left |\\n| เลี้ยวขวา | turn right |\\n| ตรงข้าม | across from |\\n| ข้างๆ | next to |\\n| ใกล้ | near |\\n| ไกล | far |\\n| มุมถนน | street corner |\\n\\n## Landmarks to Look For\\n\\n| Thai | Meaning |\\n|------|---------|\\n| สี่แยก | intersection |\\n| ไฟแดง | traffic light |\\n| สะพาน | bridge |\\n| ปั๊มน้ำมัน | gas station |\\n| เซเว่น | 7-Eleven |\\n| ธนาคาร | bank |\\n\\n## Cultural Note\\n\\nThais often use landmarks rather than street names when giving directions. 7-Elevens (เซเว่น) are especially useful as they're everywhere!\\n\\n## What's Next\\n\\nIn Lesson 4, you'll learn dialogues for transportation — taking taxis, tuk-tuks, and public transport in Thailand.\\n\""],"names":["lesson03"],"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;"}
@@ -14,10 +14,16 @@ metadata:
14
14
  estimatedTime: 30
15
15
  prerequisites:
16
16
  - thai-grammar-lesson-02
17
- objectives:
18
- - "Negate verbs and adjectives"
19
- - "Use ไม่ได้ for inability"
20
- - "Express 'not yet' and 'never'"
17
+ learningObjectives:
18
+ - id: obj-03-negate-verbs
19
+ description: "Negate verbs and adjectives"
20
+ skill: pattern-application
21
+ - id: obj-03-inability
22
+ description: "Use ไม่ได้ for inability"
23
+ skill: particle-usage
24
+ - id: obj-03-not-yet-never
25
+ description: "Express 'not yet' and 'never'"
26
+ skill: pattern-application
21
27
  ---
22
28
 
23
29
  # บทที่ 3 (Lesson 3) — Negation
@@ -109,7 +115,7 @@ Thai doesn't use double negatives like English might avoid:
109
115
 
110
116
  ## Practice Exercises
111
117
 
112
- :::exercise{id="grammar-3-negation-patterns" type="matching" title="Negation Pattern Recognition"}
118
+ :::exercise{id="grammar-3-negation-patterns" type="matching" title="Negation Pattern Recognition" skill="pattern-recognition" objectiveId="obj-03-negate-verbs"}
113
119
 
114
120
  **Question:** Match each negation pattern to its correct usage
115
121
 
@@ -131,7 +137,7 @@ Thai doesn't use double negatives like English might avoid:
131
137
 
132
138
  :::
133
139
 
134
- :::exercise{id="grammar-3-choose-negation" type="multiple-choice" title="Choosing the Right Negation"}
140
+ :::exercise{id="grammar-3-choose-negation" type="multiple-choice" title="Choosing the Right Negation" skill="pattern-application" objectiveId="obj-03-inability"}
135
141
 
136
142
  **Question:** How do you say "I can't go" in Thai?
137
143
 
@@ -147,7 +153,7 @@ Thai doesn't use double negatives like English might avoid:
147
153
 
148
154
  :::
149
155
 
150
- :::exercise{id="grammar-3-practice-negation" type="fill-in-blank" title="Negation Practice"}
156
+ :::exercise{id="grammar-3-practice-negation" type="fill-in-blank" title="Negation Practice" skill="pattern-application" objectiveId="obj-03-not-yet-never"}
151
157
 
152
158
  **Question:** Negate these sentences correctly:
153
159
 
@@ -172,4 +178,4 @@ In Lesson 4, you'll learn classifiers — essential for counting objects in Thai
172
178
  export {
173
179
  n as default
174
180
  };
175
- //# sourceMappingURL=lesson-03-Xc8-2Yt3.js.map
181
+ //# sourceMappingURL=lesson-03-CSIF5xRS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-03-CSIF5xRS.js","sources":["../src/syllabi/grammar/lessons/lesson-03.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: thai-grammar-lesson-03\\ntitle: \\\"บทที่ 3 — การปฏิเสธ\\\"\\ndescription: \\\"Negation: ไม่ (not) and negative patterns\\\"\\norder: 3\\nparentId: thai-grammar\\ndifficulty: intermediate\\ncefrLevel: A2\\ncategories:\\n - grammar\\n - negation\\nmetadata:\\n estimatedTime: 30\\n prerequisites:\\n - thai-grammar-lesson-02\\n learningObjectives:\\n - id: obj-03-negate-verbs\\n description: \\\"Negate verbs and adjectives\\\"\\n skill: pattern-application\\n - id: obj-03-inability\\n description: \\\"Use ไม่ได้ for inability\\\"\\n skill: particle-usage\\n - id: obj-03-not-yet-never\\n description: \\\"Express 'not yet' and 'never'\\\"\\n skill: pattern-application\\n---\\n\\n# บทที่ 3 (Lesson 3) — Negation\\n\\n## Introduction\\n\\nNegation in Thai is simple: put **ไม่** (mâi) before the verb or adjective. That's the core rule!\\n\\n## Basic Negation: ไม่ + Verb\\n\\n| Positive | Negative |\\n|----------|----------|\\n| ผมกิน (I eat) | ผมไม่กิน (I don't eat) |\\n| เขาไป (He goes) | เขาไม่ไป (He doesn't go) |\\n| ดี (good) | ไม่ดี (not good) |\\n| แพง (expensive) | ไม่แพง (not expensive) |\\n\\n## ไม่ได้ (mâi dâai) - Can't / Didn't\\n\\n**ไม่ได้** is used for:\\n1. **Inability** - can't do something\\n2. **Past negation** - didn't do something\\n\\n| Thai | Meaning |\\n|------|---------|\\n| ผมไม่ได้ไป | I didn't go / I can't go |\\n| เขาไม่ได้กิน | He didn't eat / He can't eat |\\n| ทำไม่ได้ | Can't do it |\\n\\n## ไม่ใช่ (mâi châi) - Is Not\\n\\nUse **ไม่ใช่** to negate nouns (identity):\\n\\n| Thai | Meaning |\\n|------|---------|\\n| นี่ไม่ใช่หนังสือ | This is not a book |\\n| เขาไม่ใช่หมอ | He is not a doctor |\\n| ไม่ใช่ผม | It's not me |\\n\\n## ยังไม่ (yang mâi) - Not Yet\\n\\n| Thai | Meaning |\\n|------|---------|\\n| ยังไม่กิน | Haven't eaten yet |\\n| ยังไม่พร้อม | Not ready yet |\\n| ยังไม่ถึง | Haven't arrived yet |\\n\\n## ไม่เคย (mâi kəəi) - Never\\n\\n| Thai | Meaning |\\n|------|---------|\\n| ไม่เคยไป | Never been (there) |\\n| ไม่เคยกิน | Never eaten (it) |\\n| ไม่เคยเห็น | Never seen (it) |\\n\\n## Comparison Table\\n\\n| Pattern | Use | Example |\\n|---------|-----|---------|\\n| ไม่ + V | Simple negation | ไม่ชอบ (don't like) |\\n| ไม่ได้ + V | Can't / Didn't | ไม่ได้ไป (didn't go) |\\n| ไม่ใช่ + N | Is not (noun) | ไม่ใช่คนไทย (not Thai) |\\n| ยังไม่ + V | Not yet | ยังไม่เสร็จ (not finished yet) |\\n| ไม่เคย + V | Never | ไม่เคยลอง (never tried) |\\n\\n## Double Negatives\\n\\nThai doesn't use double negatives like English might avoid:\\n\\n- ไม่มีอะไร (mâi mii à-rai) = \\\"don't have anything\\\" = nothing\\n\\n## Common Negative Expressions\\n\\n| Thai | Meaning |\\n|------|---------|\\n| ไม่เป็นไร | It's okay / Never mind |\\n| ไม่ต้อง | Don't need to / No need |\\n| ไม่มี | Don't have / There isn't |\\n| ไม่รู้ | Don't know |\\n| ไม่เข้าใจ | Don't understand |\\n\\n## Key Points\\n\\n1. **ไม่ before verb/adjective** - Basic negation\\n2. **ไม่ได้** - Can't or didn't\\n3. **ไม่ใช่** - Negates nouns (identity)\\n4. **ยังไม่** - Not yet\\n5. **ไม่เคย** - Never (in the past)\\n\\n## Practice Exercises\\n\\n:::exercise{id=\\\"grammar-3-negation-patterns\\\" type=\\\"matching\\\" title=\\\"Negation Pattern Recognition\\\" skill=\\\"pattern-recognition\\\" objectiveId=\\\"obj-03-negate-verbs\\\"}\\n\\n**Question:** Match each negation pattern to its correct usage\\n\\n- ไม่ + verb\\n- ไม่ได้ + verb\\n- ไม่ใช่ + noun\\n- ยังไม่ + verb\\n- ไม่เคย + verb\\n\\n**Answer:**\\n\\n- ไม่ + verb → Simple negation (don't like, don't go)\\n- ไม่ได้ + verb → Can't or didn't (couldn't go, didn't eat)\\n- ไม่ใช่ + noun → Negates identity (not a doctor, not Thai)\\n- ยังไม่ + verb → Not yet (haven't eaten yet)\\n- ไม่เคย + verb → Never (never been, never tried)\\n\\n**Explanation:** Each negation pattern has a specific use. ไม่ is for simple negation, ไม่ได้ is for ability/past, ไม่ใช่ is for identity, ยังไม่ is for \\\"not yet\\\", and ไม่เคย is for \\\"never\\\".\\n\\n:::\\n\\n:::exercise{id=\\\"grammar-3-choose-negation\\\" type=\\\"multiple-choice\\\" title=\\\"Choosing the Right Negation\\\" skill=\\\"pattern-application\\\" objectiveId=\\\"obj-03-inability\\\"}\\n\\n**Question:** How do you say \\\"I can't go\\\" in Thai?\\n\\n**Options:**\\n- ผมไม่ไป\\n- ผมไม่ได้ไป\\n- ผมไม่ใช่ไป\\n- ผมยังไม่ไป\\n\\n**Answer:** 2\\n\\n**Explanation:** \\\"I can't go\\\" requires ไม่ได้ because it expresses inability. ไม่ไป means \\\"I don't go\\\" (simple negation), while ไม่ได้ไป means \\\"I can't go\\\" or \\\"I didn't go\\\" (inability or past negation).\\n\\n:::\\n\\n:::exercise{id=\\\"grammar-3-practice-negation\\\" type=\\\"fill-in-blank\\\" title=\\\"Negation Practice\\\" skill=\\\"pattern-application\\\" objectiveId=\\\"obj-03-not-yet-never\\\"}\\n\\n**Question:** Negate these sentences correctly:\\n\\n- เขาเป็นหมอ (He is a doctor)\\n- ผมกินข้าวแล้ว (I already ate)\\n- คุณเคยไปไทย (You have been to Thailand)\\n\\n**Answer:**\\n\\n- เขาเป็นหมอ → เขา**ไม่ใช่**หมอ (He is not a doctor - use ไม่ใช่ for identity)\\n- ผมกินข้าวแล้ว → ผม**ยังไม่**กินข้าว (I haven't eaten yet - use ยังไม่ for \\\"not yet\\\")\\n- คุณเคยไปไทย → คุณ**ไม่เคย**ไปไทย (You have never been to Thailand - use ไม่เคย for \\\"never\\\")\\n\\n**Explanation:** Choose the negation pattern based on what you're negating: identity (ไม่ใช่), completion (ยังไม่), or experience (ไม่เคย).\\n\\n:::\\n\\n## What's Next\\n\\nIn Lesson 4, you'll learn classifiers — essential for counting objects in Thai. Every noun needs a classifier when you count!\\n\""],"names":["lesson03"],"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;"}
@@ -15,11 +15,19 @@ metadata:
15
15
  estimatedTime: 30
16
16
  prerequisites:
17
17
  - thai-essentials-lesson-02
18
- objectives:
19
- - "Ask who, what, where, when, why, how"
20
- - "Form yes/no questions"
21
- - "Understand question word placement"
22
- - "Ask about price, time, and quantity"
18
+ learningObjectives:
19
+ - id: obj-questions-wh-words
20
+ description: "Ask who, what, where, when, why, how"
21
+ skill: word-production
22
+ - id: obj-questions-yes-no
23
+ description: "Form yes/no questions"
24
+ skill: pattern-application
25
+ - id: obj-questions-word-placement
26
+ description: "Understand question word placement"
27
+ skill: pattern-recognition
28
+ - id: obj-questions-price-quantity
29
+ description: "Ask about price, time, and quantity"
30
+ skill: word-production
23
31
  ---
24
32
 
25
33
  # บทที่ 3 (Lesson 3) — Basic Questions
@@ -161,7 +169,7 @@ Use กี่ (gìi) + classifier:
161
169
 
162
170
  ## Practice Exercises
163
171
 
164
- :::exercise{id="questions-1-word-placement" type="fill-in-blank" title="Question Word Placement"}
172
+ :::exercise{id="questions-1-word-placement" type="fill-in-blank" title="Question Word Placement" skill="pattern-recognition" objectiveId="obj-questions-word-placement"}
165
173
 
166
174
  **Question:** Where do question words go in Thai sentences?
167
175
 
@@ -173,7 +181,7 @@ Question words go where the answer would be in the sentence, typically at the en
173
181
 
174
182
  :::
175
183
 
176
- :::exercise{id="questions-1-yes-no" type="matching" title="Yes/No Questions"}
184
+ :::exercise{id="questions-1-yes-no" type="matching" title="Yes/No Questions" skill="pattern-application" objectiveId="obj-questions-yes-no"}
177
185
 
178
186
  **Question:** Convert these statements to yes/no questions
179
187
 
@@ -191,7 +199,7 @@ Question words go where the answer would be in the sentence, typically at the en
191
199
 
192
200
  :::
193
201
 
194
- :::exercise{id="questions-1-price-quantity" type="multiple-choice" title="Price vs Quantity"}
202
+ :::exercise{id="questions-1-price-quantity" type="multiple-choice" title="Price vs Quantity" skill="word-recognition" objectiveId="obj-questions-price-quantity"}
195
203
 
196
204
  **Question:** Which question word do you use to ask "How many people?"
197
205
 
@@ -214,4 +222,4 @@ In Lesson 4, you'll learn how to make requests and respond appropriately.
214
222
  export {
215
223
  n as default
216
224
  };
217
- //# sourceMappingURL=lesson-03-DrJgbfDQ.js.map
225
+ //# sourceMappingURL=lesson-03-CSKig363.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-03-CSKig363.js","sources":["../src/syllabi/essentials/lessons/lesson-03.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: thai-essentials-lesson-03\\ntitle: \\\"บทที่ 3 — คำถามพื้นฐาน\\\"\\ndescription: \\\"Basic Questions: Who, what, where, when, why, how\\\"\\norder: 3\\nparentId: thai-essentials\\ndifficulty: beginner\\ncefrLevel: A1\\ncategories:\\n - questions\\n - basics\\n - grammar\\nmetadata:\\n estimatedTime: 30\\n prerequisites:\\n - thai-essentials-lesson-02\\n learningObjectives:\\n - id: obj-questions-wh-words\\n description: \\\"Ask who, what, where, when, why, how\\\"\\n skill: word-production\\n - id: obj-questions-yes-no\\n description: \\\"Form yes/no questions\\\"\\n skill: pattern-application\\n - id: obj-questions-word-placement\\n description: \\\"Understand question word placement\\\"\\n skill: pattern-recognition\\n - id: obj-questions-price-quantity\\n description: \\\"Ask about price, time, and quantity\\\"\\n skill: word-production\\n---\\n\\n# บทที่ 3 (Lesson 3) — Basic Questions\\n\\n## Introduction\\n\\nQuestions are the key to learning and conversation. Thai question structure is different from English — question words often come at the end of the sentence, not the beginning.\\n\\n## The Question Words\\n\\n:::vocabulary-set{id=\\\"thai-question-words\\\" title=\\\"Question Words\\\"}\\n\\n::vocab-item{id=\\\"arai\\\" word=\\\"อะไร\\\" pronunciation=\\\"à-rai\\\" meaning=\\\"what\\\"}\\n\\n::vocab-item{id=\\\"khrai\\\" word=\\\"ใคร\\\" pronunciation=\\\"khrai\\\" meaning=\\\"who\\\"}\\n\\n::vocab-item{id=\\\"thinai\\\" word=\\\"ที่ไหน\\\" pronunciation=\\\"thîi-nǎi\\\" meaning=\\\"where\\\"}\\n\\n::vocab-item{id=\\\"meuarai\\\" word=\\\"เมื่อไหร่\\\" pronunciation=\\\"mʉ̂a-rài\\\" meaning=\\\"when\\\"}\\n\\n::vocab-item{id=\\\"thammai\\\" word=\\\"ทำไม\\\" pronunciation=\\\"tham-mai\\\" meaning=\\\"why\\\"}\\n\\n::vocab-item{id=\\\"yangngai\\\" word=\\\"อย่างไร/ยังไง\\\" pronunciation=\\\"yàang-rai/yang-ngai\\\" meaning=\\\"how\\\"}\\n\\n::vocab-item{id=\\\"thaorai\\\" word=\\\"เท่าไหร่\\\" pronunciation=\\\"thâo-rài\\\" meaning=\\\"how much/many\\\"}\\n\\n::vocab-item{id=\\\"kii\\\" word=\\\"กี่\\\" pronunciation=\\\"gìi\\\" meaning=\\\"how many (with classifier)\\\"}\\n\\n:::\\n\\n## Question Word Placement\\n\\nIn Thai, question words typically go where the answer would be:\\n\\n| English | Thai Structure | Example |\\n|---------|----------------|---------|\\n| What is this? | This is **what**? | นี่คืออะไร |\\n| Who is that? | That is **who**? | นั่นคือใคร |\\n| Where are you going? | You go **where**? | คุณไปที่ไหน |\\n\\n## Common Questions\\n\\n### อะไร (What)\\n\\n| Question | Meaning |\\n|----------|---------|\\n| นี่คืออะไร | What is this? |\\n| คุณทำอะไร | What are you doing? |\\n| คุณชื่ออะไร | What is your name? |\\n| คุณกินอะไร | What are you eating? |\\n\\n### ใคร (Who)\\n\\n| Question | Meaning |\\n|----------|---------|\\n| นั่นคือใคร | Who is that? |\\n| ใครมา | Who came? |\\n| คุณไปกับใคร | Who did you go with? |\\n\\n### ที่ไหน (Where)\\n\\n| Question | Meaning |\\n|----------|---------|\\n| ห้องน้ำอยู่ที่ไหน | Where is the bathroom? |\\n| คุณมาจากที่ไหน | Where are you from? |\\n| คุณอยู่ที่ไหน | Where do you live? |\\n| ไปที่ไหน | Where are you going? |\\n\\n### เมื่อไหร่ (When)\\n\\n| Question | Meaning |\\n|----------|---------|\\n| คุณมาเมื่อไหร่ | When did you come? |\\n| เริ่มเมื่อไหร่ | When does it start? |\\n| กลับเมื่อไหร่ | When are you going back? |\\n\\n### ทำไม (Why)\\n\\n| Question | Meaning |\\n|----------|---------|\\n| ทำไมคุณมา | Why did you come? |\\n| ทำไมไม่กิน | Why don't you eat? |\\n| ทำไมแพง | Why is it expensive? |\\n\\n### ยังไง/อย่างไร (How)\\n\\n| Question | Meaning |\\n|----------|---------|\\n| ทำยังไง | How do you do it? |\\n| ไปยังไง | How do I get there? |\\n| เป็นยังไง | How is it? / How are things? |\\n\\n## Yes/No Questions\\n\\nAdd ไหม (mǎi) at the end to make a yes/no question:\\n\\n| Statement | Question |\\n|-----------|----------|\\n| คุณไป (You go) | คุณไปไหม (Are you going?) |\\n| อร่อย (Delicious) | อร่อยไหม (Is it delicious?) |\\n| เข้าใจ (Understand) | เข้าใจไหม (Do you understand?) |\\n\\n## Price Questions\\n\\n| Question | Meaning |\\n|----------|---------|\\n| เท่าไหร่ | How much? |\\n| ราคาเท่าไหร่ | What's the price? |\\n| อันนี้เท่าไหร่ | How much is this one? |\\n| ทั้งหมดเท่าไหร่ | How much total? |\\n\\n## Quantity Questions\\n\\nUse กี่ (gìi) + classifier:\\n\\n| Question | Meaning |\\n|----------|---------|\\n| กี่คน | How many people? |\\n| กี่ชิ้น | How many pieces? |\\n| กี่โมง | What time? (How many hours?) |\\n| กี่บาท | How many baht? |\\n\\n## Key Points\\n\\n1. **Question words go at the end**: Where the answer would be\\n2. **ไหม for yes/no**: Add to any statement to make it a question\\n3. **เท่าไหร่ for amounts**: Price, quantity, degree\\n4. **กี่ + classifier**: For counting quantities\\n\\n## Practice Conversations\\n\\n**At a shop:**\\n- A: อันนี้เท่าไหร่ครับ (How much is this?)\\n- B: สองร้อยบาทค่ะ (200 baht)\\n\\n**Meeting someone:**\\n- A: คุณมาจากที่ไหนคะ (Where are you from?)\\n- B: ผมมาจากอเมริกาครับ (I'm from America)\\n\\n## Practice Exercises\\n\\n:::exercise{id=\\\"questions-1-word-placement\\\" type=\\\"fill-in-blank\\\" title=\\\"Question Word Placement\\\" skill=\\\"pattern-recognition\\\" objectiveId=\\\"obj-questions-word-placement\\\"}\\n\\n**Question:** Where do question words go in Thai sentences?\\n\\n**Answer:**\\n\\nQuestion words go where the answer would be in the sentence, typically at the end. Unlike English where \\\"What is this?\\\" puts \\\"what\\\" at the beginning, Thai says \\\"นี่คืออะไร\\\" (This is what?).\\n\\n**Explanation:** Thai question structure is different from English. Question words replace the unknown information in its natural position, not moved to the front.\\n\\n:::\\n\\n:::exercise{id=\\\"questions-1-yes-no\\\" type=\\\"matching\\\" title=\\\"Yes/No Questions\\\" skill=\\\"pattern-application\\\" objectiveId=\\\"obj-questions-yes-no\\\"}\\n\\n**Question:** Convert these statements to yes/no questions\\n\\n- คุณไป (You go)\\n- อร่อย (Delicious)\\n- เข้าใจ (Understand)\\n\\n**Answer:**\\n\\n- คุณไป → คุณไป**ไหม** (Are you going?)\\n- อร่อย → อร่อย**ไหม** (Is it delicious?)\\n- เข้าใจ → เข้าใจ**ไหม** (Do you understand?)\\n\\n**Explanation:** Simply add ไหม at the end of any statement to make it a yes/no question. This is one of the simplest question forms in Thai.\\n\\n:::\\n\\n:::exercise{id=\\\"questions-1-price-quantity\\\" type=\\\"multiple-choice\\\" title=\\\"Price vs Quantity\\\" skill=\\\"word-recognition\\\" objectiveId=\\\"obj-questions-price-quantity\\\"}\\n\\n**Question:** Which question word do you use to ask \\\"How many people?\\\"\\n\\n**Options:**\\n- เท่าไหร่ (how much)\\n- กี่ (how many)\\n- อะไร (what)\\n- ที่ไหน (where)\\n\\n**Answer:** 2\\n\\n**Explanation:** Use กี่ (how many) with classifiers. กี่คน means \\\"how many people\\\" (คน is the classifier for people). เท่าไหร่ is for prices and amounts, not countable quantities.\\n\\n:::\\n\\n## What's Next\\n\\nIn Lesson 4, you'll learn how to make requests and respond appropriately.\\n\""],"names":["lesson03"],"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;"}
@@ -16,10 +16,17 @@ metadata:
16
16
  estimatedTime: 20
17
17
  prerequisites:
18
18
  - thai-script-lesson-02
19
- objectives:
20
- - "Learn 3 common high-class consonants"
21
- - "Understand aspiration (puff of air)"
22
- - "Recognize the rising tone pattern"
19
+ learningObjectives:
20
+ - id: obj-high-consonants-1
21
+ description: "Learn 3 common high-class consonants"
22
+ skill: character-recognition
23
+ references: [egg, tiger, box]
24
+ - id: obj-aspiration
25
+ description: "Understand aspiration (puff of air)"
26
+ skill: character-sound-mapping
27
+ - id: obj-rising-tone
28
+ description: "Recognize the rising tone pattern"
29
+ skill: character-class-identification
23
30
  ---
24
31
 
25
32
  # บทที่ 3 (Lesson 3) — High-Class Consonants I
@@ -33,7 +40,7 @@ Put your hand in front of your mouth and say these English words:
33
40
 
34
41
  That puff of air is called **aspiration**.
35
42
 
36
- :::exercise{id="aspiration-check" exerciseType="multiple-choice" title="Quick Check"}
43
+ :::exercise{id="aspiration-check" exerciseType="multiple-choice" title="Quick Check" skill="character-sound-mapping" objectiveId="obj-aspiration"}
37
44
  Which word has MORE air on the 'k' sound?
38
45
  ?options: kite, sky
39
46
  ?answer: 1
@@ -54,11 +61,11 @@ You already know **ก** (from Lesson 1). Now meet its aspirated partner:
54
61
 
55
62
  :::character-set{id="thai-high-consonants-1" title="High-Class Consonants I"}
56
63
 
57
- ::character{id="th-egg" char="ข" name="ข ไข่ (khɔ̌ɔ khài)" nativeName="ข ไข่" transliteration="kh/k" charType="consonant"}
64
+ ::character{id="egg" canonicalRef="egg" data:class="high" char="ข" name="ข ไข่ (khɔ̌ɔ khài)" nativeName="ข ไข่" transliteration="kh/k" charType="consonant"}
58
65
 
59
- ::character{id="th-tiger" char="ส" name="ส เสือ (sɔ̌ɔ sʉ̌a)" nativeName="ส เสือ" transliteration="s/t" charType="consonant"}
66
+ ::character{id="tiger" canonicalRef="tiger" data:class="high" char="ส" name="ส เสือ (sɔ̌ɔ sʉ̌a)" nativeName="ส เสือ" transliteration="s/t" charType="consonant"}
60
67
 
61
- ::character{id="th-box" char="ห" name="ห หีบ (hɔ̌ɔ hìip)" nativeName="ห หีบ" transliteration="h/-" charType="consonant"}
68
+ ::character{id="box" canonicalRef="box" data:class="high" char="ห" name="ห หีบ (hɔ̌ɔ hìip)" nativeName="ห หีบ" transliteration="h/-" charType="consonant"}
62
69
 
63
70
  :::
64
71
 
@@ -72,13 +79,13 @@ Each character has a memorable shape:
72
79
 
73
80
  **ห** (box) — Looks like a box. หีบ means "chest/box" — the shape matches!
74
81
 
75
- :::exercise{id="shape-match" exerciseType="multiple-choice" title="Match the Shape"}
82
+ :::exercise{id="shape-match" exerciseType="multiple-choice" title="Match the Shape" skill="character-recognition" tests="egg" objectiveId="obj-high-consonants-1"}
76
83
  Which letter looks like ก with an extra loop on top?
77
84
  ?options: ส, ข, ห
78
85
  ?answer: 2
79
86
  :::
80
87
 
81
- :::exercise{id="shape-match-2" exerciseType="multiple-choice" title="Match the Shape"}
88
+ :::exercise{id="shape-match-2" exerciseType="multiple-choice" title="Match the Shape" skill="character-recognition" tests="tiger" objectiveId="obj-high-consonants-1"}
82
89
  Which letter has an S-curve shape (like tiger stripes)?
83
90
  ?options: ข, ห, ส
84
91
  ?answer: 3
@@ -94,7 +101,7 @@ Thai consonants sound different depending on position:
94
101
  | ส tiger | **s** | **t** (no release) |
95
102
  | ห box | **h** | (not used) |
96
103
 
97
- :::exercise{id="position-sound" exerciseType="multiple-choice" title="Position Check"}
104
+ :::exercise{id="position-sound" exerciseType="multiple-choice" title="Position Check" skill="character-sound-mapping" tests="egg" objectiveId="obj-aspiration"}
98
105
  At the START of a syllable, how is ข pronounced?
99
106
  ?options: k (no air), kh (with air puff), s
100
107
  ?answer: 2
@@ -115,7 +122,7 @@ Compare to middle-class ก (flat mid tone):
115
122
 
116
123
  Same vowel, different consonant class = **different tone!**
117
124
 
118
- :::exercise{id="tone-pattern" exerciseType="multiple-choice" title="Tone Check"}
125
+ :::exercise{id="tone-pattern" exerciseType="multiple-choice" title="Tone Check" skill="character-class-identification" objectiveId="obj-rising-tone"}
119
126
  What tone do high-class consonants produce in simple syllables?
120
127
  ?options: falling tone ↘, mid tone →, rising tone ↗
121
128
  ?answer: 3
@@ -133,7 +140,7 @@ You learned 3 high-class consonants:
133
140
 
134
141
  **Key insight:** High-class = aspirated (puff of air) + rising tone ↗
135
142
 
136
- :::exercise{id="final-recognition" exerciseType="multiple-choice" title="Final Check"}
143
+ :::exercise{id="final-recognition" exerciseType="multiple-choice" title="Final Check" skill="character-class-identification" objectiveId="obj-rising-tone"}
137
144
  Which consonant class produces a rising tone?
138
145
  ?options: low-class, middle-class, high-class
139
146
  ?answer: 3
@@ -142,4 +149,4 @@ Which consonant class produces a rising tone?
142
149
  export {
143
150
  n as default
144
151
  };
145
- //# sourceMappingURL=lesson-03-XVahXvgf.js.map
152
+ //# sourceMappingURL=lesson-03-CoDPKwa1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-03-CoDPKwa1.js","sources":["../src/syllabi/alphabet/lessons/lesson-03.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: thai-script-lesson-03\\ntitle: \\\"บทที่ 3 — พยัญชนะสูง I\\\"\\ndescription: \\\"High-Class Consonants Part 1: ข ส ห — The aspirated consonants\\\"\\norder: 3\\nparentId: thai-script-alphabet\\ndifficulty: beginner\\ncefrLevel: A1\\ncategories:\\n - consonants\\n - high-class\\n - aspirated\\n - basic-characters\\nmetadata:\\n estimatedTime: 20\\n prerequisites:\\n - thai-script-lesson-02\\n learningObjectives:\\n - id: obj-high-consonants-1\\n description: \\\"Learn 3 common high-class consonants\\\"\\n skill: character-recognition\\n references: [egg, tiger, box]\\n - id: obj-aspiration\\n description: \\\"Understand aspiration (puff of air)\\\"\\n skill: character-sound-mapping\\n - id: obj-rising-tone\\n description: \\\"Recognize the rising tone pattern\\\"\\n skill: character-class-identification\\n---\\n\\n# บทที่ 3 (Lesson 3) — High-Class Consonants I\\n\\n## Feel the Difference\\n\\nPut your hand in front of your mouth and say these English words:\\n\\n- \\\"**k**ite\\\" — feel the puff of air on \\\"k\\\"\\n- \\\"s**k**y\\\" — notice LESS air after \\\"s\\\"\\n\\nThat puff of air is called **aspiration**.\\n\\n:::exercise{id=\\\"aspiration-check\\\" exerciseType=\\\"multiple-choice\\\" title=\\\"Quick Check\\\" skill=\\\"character-sound-mapping\\\" objectiveId=\\\"obj-aspiration\\\"}\\nWhich word has MORE air on the 'k' sound?\\n?options: kite, sky\\n?answer: 1\\n:::\\n\\n## Why This Matters\\n\\nThai treats aspirated and unaspirated sounds as **completely different letters**:\\n\\n| Sound | Air | Thai Letter | Like English... |\\n|-------|-----|-------------|-----------------|\\n| Unaspirated k | none | ก | s**k**y |\\n| Aspirated k | puff | ข | **k**ite |\\n\\nYou already know **ก** (from Lesson 1). Now meet its aspirated partner:\\n\\n## The Characters\\n\\n:::character-set{id=\\\"thai-high-consonants-1\\\" title=\\\"High-Class Consonants I\\\"}\\n\\n::character{id=\\\"egg\\\" canonicalRef=\\\"egg\\\" data:class=\\\"high\\\" char=\\\"ข\\\" name=\\\"ข ไข่ (khɔ̌ɔ khài)\\\" nativeName=\\\"ข ไข่\\\" transliteration=\\\"kh/k\\\" charType=\\\"consonant\\\"}\\n\\n::character{id=\\\"tiger\\\" canonicalRef=\\\"tiger\\\" data:class=\\\"high\\\" char=\\\"ส\\\" name=\\\"ส เสือ (sɔ̌ɔ sʉ̌a)\\\" nativeName=\\\"ส เสือ\\\" transliteration=\\\"s/t\\\" charType=\\\"consonant\\\"}\\n\\n::character{id=\\\"box\\\" canonicalRef=\\\"box\\\" data:class=\\\"high\\\" char=\\\"ห\\\" name=\\\"ห หีบ (hɔ̌ɔ hìip)\\\" nativeName=\\\"ห หีบ\\\" transliteration=\\\"h/-\\\" charType=\\\"consonant\\\"}\\n\\n:::\\n\\n## Shape Recognition\\n\\nEach character has a memorable shape:\\n\\n**ข** (egg) — Looks like ก with an extra loop. The extra loop = extra air!\\n\\n**ส** (tiger) — Curvy S-shape, like tiger stripes.\\n\\n**ห** (box) — Looks like a box. หีบ means \\\"chest/box\\\" — the shape matches!\\n\\n:::exercise{id=\\\"shape-match\\\" exerciseType=\\\"multiple-choice\\\" title=\\\"Match the Shape\\\" skill=\\\"character-recognition\\\" tests=\\\"egg\\\" objectiveId=\\\"obj-high-consonants-1\\\"}\\nWhich letter looks like ก with an extra loop on top?\\n?options: ส, ข, ห\\n?answer: 2\\n:::\\n\\n:::exercise{id=\\\"shape-match-2\\\" exerciseType=\\\"multiple-choice\\\" title=\\\"Match the Shape\\\" skill=\\\"character-recognition\\\" tests=\\\"tiger\\\" objectiveId=\\\"obj-high-consonants-1\\\"}\\nWhich letter has an S-curve shape (like tiger stripes)?\\n?options: ข, ห, ส\\n?answer: 3\\n:::\\n\\n## Sound at Start vs End\\n\\nThai consonants sound different depending on position:\\n\\n| Letter | Start of syllable | End of syllable |\\n|--------|------------------|-----------------|\\n| ข egg | **kh** (with air) | **k** (no release) |\\n| ส tiger | **s** | **t** (no release) |\\n| ห box | **h** | (not used) |\\n\\n:::exercise{id=\\\"position-sound\\\" exerciseType=\\\"multiple-choice\\\" title=\\\"Position Check\\\" skill=\\\"character-sound-mapping\\\" tests=\\\"egg\\\" objectiveId=\\\"obj-aspiration\\\"}\\nAt the START of a syllable, how is ข pronounced?\\n?options: k (no air), kh (with air puff), s\\n?answer: 2\\n:::\\n\\n## The Rising Tone\\n\\nHere's something powerful: **consonant class determines tone**.\\n\\nHigh-class consonants + simple vowel = **rising tone** ↗\\n\\n- ข + า = **ขา** (khǎa) ↗ \\\"leg\\\"\\n- ส + ี = **สี** (sǐi) ↗ \\\"color\\\"\\n- ห + า = **หา** (hǎa) ↗ \\\"to find\\\"\\n\\nCompare to middle-class ก (flat mid tone):\\n- ก + า = **กา** (gaa) → \\\"crow\\\"\\n\\nSame vowel, different consonant class = **different tone!**\\n\\n:::exercise{id=\\\"tone-pattern\\\" exerciseType=\\\"multiple-choice\\\" title=\\\"Tone Check\\\" skill=\\\"character-class-identification\\\" objectiveId=\\\"obj-rising-tone\\\"}\\nWhat tone do high-class consonants produce in simple syllables?\\n?options: falling tone ↘, mid tone →, rising tone ↗\\n?answer: 3\\n:::\\n\\n## Summary\\n\\nYou learned 3 high-class consonants:\\n\\n| Char | Name | Sound | Remember |\\n|------|------|-------|----------|\\n| ข | egg (ไข่) | kh- | ก + loop = + air |\\n| ส | tiger (เสือ) | s- | S-curve shape |\\n| ห | box (หีบ) | h- | Looks like a box |\\n\\n**Key insight:** High-class = aspirated (puff of air) + rising tone ↗\\n\\n:::exercise{id=\\\"final-recognition\\\" exerciseType=\\\"multiple-choice\\\" title=\\\"Final Check\\\" skill=\\\"character-class-identification\\\" objectiveId=\\\"obj-rising-tone\\\"}\\nWhich consonant class produces a rising tone?\\n?options: low-class, middle-class, high-class\\n?answer: 3\\n:::\\n\""],"names":["lesson03"],"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;"}
@@ -15,10 +15,16 @@ metadata:
15
15
  estimatedTime: 30
16
16
  prerequisites:
17
17
  - thai-reading-lesson-02
18
- objectives:
19
- - "Navigate BTS/MRT stations"
20
- - "Read airport signage"
21
- - "Understand bus and train information"
18
+ learningObjectives:
19
+ - id: obj-r3-station-navigation
20
+ description: "Navigate BTS/MRT stations"
21
+ skill: text-decoding
22
+ - id: obj-r3-airport-signage
23
+ description: "Read airport signage"
24
+ skill: word-recognition
25
+ - id: obj-r3-transport-info
26
+ description: "Understand bus and train information"
27
+ skill: reading-comprehension
22
28
  ---
23
29
 
24
30
  # Transportation Signs
@@ -73,7 +79,7 @@ Transfer at Siam Station
73
79
 
74
80
  ## Practice Exercises
75
81
 
76
- :::exercise{id="reading-3-transport-vocab" type="matching" title="Transportation Vocabulary"}
82
+ :::exercise{id="reading-3-transport-vocab" type="matching" title="Transportation Vocabulary" skill="text-decoding" objectiveId="obj-r3-station-navigation"}
77
83
 
78
84
  **Question:** Match each transport term to its meaning
79
85
 
@@ -93,7 +99,7 @@ Transfer at Siam Station
93
99
 
94
100
  :::
95
101
 
96
- :::exercise{id="reading-3-bts-mrt" type="fill-in-blank" title="BTS vs MRT"}
102
+ :::exercise{id="reading-3-bts-mrt" type="fill-in-blank" title="BTS vs MRT" skill="reading-comprehension" objectiveId="obj-r3-transport-info"}
97
103
 
98
104
  **Question:** What's the difference between BTS and MRT in Thai?
99
105
 
@@ -106,7 +112,7 @@ Transfer at Siam Station
106
112
 
107
113
  :::
108
114
 
109
- :::exercise{id="reading-3-airport-signs" type="multiple-choice" title="Airport Signage"}
115
+ :::exercise{id="reading-3-airport-signs" type="multiple-choice" title="Airport Signage" skill="word-recognition" objectiveId="obj-r3-airport-signage"}
110
116
 
111
117
  **Question:** What does "ขาออก" mean at an airport?
112
118
 
@@ -129,4 +135,4 @@ In Lesson 4, you'll learn to read shop signs — identify different types of sto
129
135
  export {
130
136
  n as default
131
137
  };
132
- //# sourceMappingURL=lesson-03-8NtAeqFh.js.map
138
+ //# sourceMappingURL=lesson-03-DPJOG2M_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-03-DPJOG2M_.js","sources":["../src/syllabi/reading/lessons/lesson-03.mdx?raw"],"sourcesContent":["export default \"---\\ntype: lesson\\nid: thai-reading-lesson-03\\ntitle: \\\"บทที่ 3 — ป้ายคมนาคม\\\"\\ndescription: \\\"Transportation Signs: Read signs at stations and airports\\\"\\norder: 3\\nparentId: thai-reading\\ndifficulty: intermediate\\ncefrLevel: B1\\ncategories:\\n - reading\\n - transportation\\n - signs\\nmetadata:\\n estimatedTime: 30\\n prerequisites:\\n - thai-reading-lesson-02\\n learningObjectives:\\n - id: obj-r3-station-navigation\\n description: \\\"Navigate BTS/MRT stations\\\"\\n skill: text-decoding\\n - id: obj-r3-airport-signage\\n description: \\\"Read airport signage\\\"\\n skill: word-recognition\\n - id: obj-r3-transport-info\\n description: \\\"Understand bus and train information\\\"\\n skill: reading-comprehension\\n---\\n\\n# Transportation Signs\\n\\nPublic transport in Thailand has consistent signage. Master these patterns to travel independently.\\n\\n## Station Signs\\n\\n| Thai | Romanization | English |\\n|------|--------------|---------|\\n| สถานี | sathani | station |\\n| ทางออก | thang ok | exit |\\n| ทางเข้า | thang khao | entrance |\\n| ชานชาลา | chan chala | platform |\\n\\n## BTS/MRT Vocabulary\\n\\n| Thai | Romanization | English |\\n|------|--------------|---------|\\n| รถไฟฟ้า | rot fai fa | electric train (BTS) |\\n| รถไฟใต้ดิน | rot fai tai din | subway (MRT) |\\n| ตั๋ว | tua | ticket |\\n| บัตรเติมเงิน | bat toem ngoen | top-up card |\\n\\n## Airport Signs\\n\\n| Thai | Romanization | English |\\n|------|--------------|---------|\\n| สนามบิน | sanam bin | airport |\\n| ขาออก | kha ok | departures |\\n| ขาเข้า | kha khao | arrivals |\\n| รับกระเป๋า | rap krapao | baggage claim |\\n\\n## Directional Signs\\n\\n| Thai | Romanization | English |\\n|------|--------------|---------|\\n| ไปทาง | pai thang | go towards |\\n| เปลี่ยนสาย | plian sai | transfer (line) |\\n| สายสีเขียว | sai si khiao | green line |\\n| สายสีน้ำเงิน | sai si nam ngoen | blue line |\\n\\n## Practice Reading\\n\\n**ทางออก 3 - สยามพารากอน**\\n*thang ok sam - siam paragon*\\nExit 3 - Siam Paragon\\n\\n**เปลี่ยนสายที่สถานีสยาม**\\n*plian sai thi sathani siam*\\nTransfer at Siam Station\\n\\n## Practice Exercises\\n\\n:::exercise{id=\\\"reading-3-transport-vocab\\\" type=\\\"matching\\\" title=\\\"Transportation Vocabulary\\\" skill=\\\"text-decoding\\\" objectiveId=\\\"obj-r3-station-navigation\\\"}\\n\\n**Question:** Match each transport term to its meaning\\n\\n- สถานี\\n- ทางออก\\n- ทางเข้า\\n- ชานชาลา\\n\\n**Answer:**\\n\\n- สถานี → Station\\n- ทางออก → Exit\\n- ทางเข้า → Entrance\\n- ชานชาลา → Platform\\n\\n**Explanation:** These are essential for navigating transportation. ทาง means \\\"way/path\\\", so ทางออก is \\\"exit way\\\" and ทางเข้า is \\\"entrance way\\\". ชานชาลา is specifically for train platforms.\\n\\n:::\\n\\n:::exercise{id=\\\"reading-3-bts-mrt\\\" type=\\\"fill-in-blank\\\" title=\\\"BTS vs MRT\\\" skill=\\\"reading-comprehension\\\" objectiveId=\\\"obj-r3-transport-info\\\"}\\n\\n**Question:** What's the difference between BTS and MRT in Thai?\\n\\n**Answer:**\\n\\n- BTS → รถไฟฟ้า (electric train) - above ground\\n- MRT → รถไฟใต้ดิน (underground train/subway) - below ground\\n\\n**Explanation:** Both are electric trains, but BTS (รถไฟฟ้า) runs above ground, while MRT (รถไฟใต้ดิน) runs underground. ใต้ดิน means \\\"underground\\\".\\n\\n:::\\n\\n:::exercise{id=\\\"reading-3-airport-signs\\\" type=\\\"multiple-choice\\\" title=\\\"Airport Signage\\\" skill=\\\"word-recognition\\\" objectiveId=\\\"obj-r3-airport-signage\\\"}\\n\\n**Question:** What does \\\"ขาออก\\\" mean at an airport?\\n\\n**Options:**\\n- Arrivals\\n- Departures\\n- Exit\\n- Check-in\\n\\n**Answer:** 2\\n\\n**Explanation:** ขาออก means \\\"departures\\\" (literally \\\"leg out/going out\\\"). ขาเข้า means \\\"arrivals\\\" (literally \\\"leg in/coming in\\\"). These terms are used at airports and train stations.\\n\\n:::\\n\\n## What's Next\\n\\nIn Lesson 4, you'll learn to read shop signs — identify different types of stores, read hours, and understand sale promotions.\\n\""],"names":["lesson03"],"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;"}
@@ -15,11 +15,19 @@ metadata:
15
15
  estimatedTime: 30
16
16
  prerequisites:
17
17
  - thai-food-lesson-02
18
- objectives:
19
- - "Name common proteins"
20
- - "Identify vegetables in Thai dishes"
21
- - "Order specific meat types"
22
- - "Understand ingredient lists"
18
+ learningObjectives:
19
+ - id: obj-name-proteins
20
+ description: "Name common proteins"
21
+ skill: word-recognition
22
+ - id: obj-identify-vegetables
23
+ description: "Identify vegetables in Thai dishes"
24
+ skill: word-recognition
25
+ - id: obj-order-meat-types
26
+ description: "Order specific meat types"
27
+ skill: word-production
28
+ - id: obj-understand-ingredient-lists
29
+ description: "Understand ingredient lists"
30
+ skill: reading-comprehension
23
31
  ---
24
32
 
25
33
  # บทที่ 3 (Lesson 3) — Proteins & Vegetables
@@ -161,7 +169,7 @@ Thai dish names often follow: [cooking method] + [protein]
161
169
 
162
170
  ## Practice Exercises
163
171
 
164
- :::exercise{id="food-3-protein-recognition" type="matching" title="Protein Recognition"}
172
+ :::exercise{id="food-3-protein-recognition" type="matching" title="Protein Recognition" skill="word-recognition" objectiveId="obj-name-proteins"}
165
173
 
166
174
  **Question:** Match each protein to its Thai name
167
175
 
@@ -185,7 +193,7 @@ Thai dish names often follow: [cooking method] + [protein]
185
193
 
186
194
  :::
187
195
 
188
- :::exercise{id="food-3-dish-patterns" type="fill-in-blank" title="Dish Name Patterns"}
196
+ :::exercise{id="food-3-dish-patterns" type="fill-in-blank" title="Dish Name Patterns" skill="pattern-recognition" objectiveId="obj-understand-ingredient-lists"}
189
197
 
190
198
  **Question:** What does each dish name mean? (Break down the pattern)
191
199
 
@@ -203,7 +211,7 @@ Thai dish names often follow: [cooking method] + [protein]
203
211
 
204
212
  :::
205
213
 
206
- :::exercise{id="food-3-vegetarian" type="multiple-choice" title="Vegetarian Options"}
214
+ :::exercise{id="food-3-vegetarian" type="multiple-choice" title="Vegetarian Options" skill="word-recognition" objectiveId="obj-order-meat-types"}
207
215
 
208
216
  **Question:** How do you say "vegetarian" in Thai?
209
217
 
@@ -226,4 +234,4 @@ In Lesson 4, you'll learn cooking methods — how food is prepared in Thai cuisi
226
234
  export {
227
235
  n as default
228
236
  };
229
- //# sourceMappingURL=lesson-03-CKTNtgY1.js.map
237
+ //# sourceMappingURL=lesson-03-DkjCuJ26.js.map