@syllst/th 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/dist/index-B029m98V.js +46 -0
  2. package/dist/index-B029m98V.js.map +1 -0
  3. package/dist/index-BCA5Llwg.js +52 -0
  4. package/dist/index-BCA5Llwg.js.map +1 -0
  5. package/dist/index-BFcg5D_W.js +56 -0
  6. package/dist/index-BFcg5D_W.js.map +1 -0
  7. package/dist/index-CB8M6CK6.js +52 -0
  8. package/dist/index-CB8M6CK6.js.map +1 -0
  9. package/dist/index-CTQ45BVw.js +48 -0
  10. package/dist/index-CTQ45BVw.js.map +1 -0
  11. package/dist/index-CoqP9GZL.js +52 -0
  12. package/dist/index-CoqP9GZL.js.map +1 -0
  13. package/dist/index-DADMaTE7.js +27 -0
  14. package/dist/index-DADMaTE7.js.map +1 -0
  15. package/dist/index-Dy38Hmlm.js +52 -0
  16. package/dist/index-Dy38Hmlm.js.map +1 -0
  17. package/dist/index-of_athp-.js +82 -0
  18. package/dist/index-of_athp-.js.map +1 -0
  19. package/dist/index-vuRo2mLK.js +50 -0
  20. package/dist/index-vuRo2mLK.js.map +1 -0
  21. package/dist/index.d.ts +15 -45
  22. package/dist/index.js +62 -66
  23. package/dist/index.js.map +1 -1
  24. package/dist/lesson-01--9NOyHZ6.js +106 -0
  25. package/dist/lesson-01--9NOyHZ6.js.map +1 -0
  26. package/dist/lesson-01-3hBted4A.js +147 -0
  27. package/dist/lesson-01-3hBted4A.js.map +1 -0
  28. package/dist/lesson-01-97FtYE6g.js +130 -0
  29. package/dist/lesson-01-97FtYE6g.js.map +1 -0
  30. package/dist/lesson-01-BNdHXAGR.js +103 -0
  31. package/dist/lesson-01-BNdHXAGR.js.map +1 -0
  32. package/dist/lesson-01-BYKAZiua.js +130 -0
  33. package/dist/lesson-01-BYKAZiua.js.map +1 -0
  34. package/dist/lesson-01-BhjY6ArF.js +147 -0
  35. package/dist/lesson-01-BhjY6ArF.js.map +1 -0
  36. package/dist/lesson-01-CF4tJfZ3.js +120 -0
  37. package/dist/lesson-01-CF4tJfZ3.js.map +1 -0
  38. package/dist/lesson-01-CRx-yw4C.js +145 -0
  39. package/dist/lesson-01-CRx-yw4C.js.map +1 -0
  40. package/dist/lesson-01-WV3ic8Ok.js +91 -0
  41. package/dist/lesson-01-WV3ic8Ok.js.map +1 -0
  42. package/dist/lesson-02-B2Xg7RVU.js +214 -0
  43. package/dist/lesson-02-B2Xg7RVU.js.map +1 -0
  44. package/dist/lesson-02-BAbq-QGP.js +191 -0
  45. package/dist/lesson-02-BAbq-QGP.js.map +1 -0
  46. package/dist/lesson-02-BGnp0Ik_.js +168 -0
  47. package/dist/lesson-02-BGnp0Ik_.js.map +1 -0
  48. package/dist/lesson-02-BO3BXPMJ.js +139 -0
  49. package/dist/lesson-02-BO3BXPMJ.js.map +1 -0
  50. package/dist/lesson-02-Bm9EJuN8.js +191 -0
  51. package/dist/lesson-02-Bm9EJuN8.js.map +1 -0
  52. package/dist/lesson-02-C0ZL4z3c.js +110 -0
  53. package/dist/lesson-02-C0ZL4z3c.js.map +1 -0
  54. package/dist/lesson-02-C2ALLvoT.js +161 -0
  55. package/dist/lesson-02-C2ALLvoT.js.map +1 -0
  56. package/dist/lesson-02-C8dfzXvq.js +112 -0
  57. package/dist/lesson-02-C8dfzXvq.js.map +1 -0
  58. package/dist/lesson-02-CsejVbCo.js +196 -0
  59. package/dist/lesson-02-CsejVbCo.js.map +1 -0
  60. package/dist/lesson-03-8NtAeqFh.js +132 -0
  61. package/dist/lesson-03-8NtAeqFh.js.map +1 -0
  62. package/dist/lesson-03-BdZfKRhq.js +163 -0
  63. package/dist/lesson-03-BdZfKRhq.js.map +1 -0
  64. package/dist/lesson-03-CKTNtgY1.js +229 -0
  65. package/dist/lesson-03-CKTNtgY1.js.map +1 -0
  66. package/dist/lesson-03-D8va_Q9B.js +173 -0
  67. package/dist/lesson-03-D8va_Q9B.js.map +1 -0
  68. package/dist/lesson-03-DV2SUWVH.js +184 -0
  69. package/dist/lesson-03-DV2SUWVH.js.map +1 -0
  70. package/dist/lesson-03-DiV17_Os.js +116 -0
  71. package/dist/lesson-03-DiV17_Os.js.map +1 -0
  72. package/dist/lesson-03-DrJgbfDQ.js +217 -0
  73. package/dist/lesson-03-DrJgbfDQ.js.map +1 -0
  74. package/dist/lesson-03-XVahXvgf.js +145 -0
  75. package/dist/lesson-03-XVahXvgf.js.map +1 -0
  76. package/dist/lesson-03-Xc8-2Yt3.js +175 -0
  77. package/dist/lesson-03-Xc8-2Yt3.js.map +1 -0
  78. package/dist/lesson-04-BpRrNmzO.js +135 -0
  79. package/dist/lesson-04-BpRrNmzO.js.map +1 -0
  80. package/dist/lesson-04-CtNr2B3E.js +206 -0
  81. package/dist/lesson-04-CtNr2B3E.js.map +1 -0
  82. package/dist/lesson-04-DEEPJ_rd.js +207 -0
  83. package/dist/lesson-04-DEEPJ_rd.js.map +1 -0
  84. package/dist/lesson-04-D__vMCyA.js +164 -0
  85. package/dist/lesson-04-D__vMCyA.js.map +1 -0
  86. package/dist/lesson-04-Dfc7S4nT.js +225 -0
  87. package/dist/lesson-04-Dfc7S4nT.js.map +1 -0
  88. package/dist/lesson-04-DtXVhdGB.js +170 -0
  89. package/dist/lesson-04-DtXVhdGB.js.map +1 -0
  90. package/dist/lesson-04-ZrSBM0BX.js +184 -0
  91. package/dist/lesson-04-ZrSBM0BX.js.map +1 -0
  92. package/dist/lesson-04-ioLXnB0j.js +175 -0
  93. package/dist/lesson-04-ioLXnB0j.js.map +1 -0
  94. package/dist/lesson-04-rapx_3vA.js +222 -0
  95. package/dist/lesson-04-rapx_3vA.js.map +1 -0
  96. package/dist/lesson-05-Bm6fg-DJ.js +236 -0
  97. package/dist/lesson-05-Bm6fg-DJ.js.map +1 -0
  98. package/dist/lesson-05-CKxXcooO.js +191 -0
  99. package/dist/lesson-05-CKxXcooO.js.map +1 -0
  100. package/dist/lesson-05-D1d3kc3M.js +137 -0
  101. package/dist/lesson-05-D1d3kc3M.js.map +1 -0
  102. package/dist/lesson-05-D2SVU-I0.js +236 -0
  103. package/dist/lesson-05-D2SVU-I0.js.map +1 -0
  104. package/dist/lesson-05-DBsHyFlt.js +181 -0
  105. package/dist/lesson-05-DBsHyFlt.js.map +1 -0
  106. package/dist/lesson-05-DXOLS7G0.js +172 -0
  107. package/dist/lesson-05-DXOLS7G0.js.map +1 -0
  108. package/dist/lesson-05-D_GdROUn.js +175 -0
  109. package/dist/lesson-05-D_GdROUn.js.map +1 -0
  110. package/dist/lesson-05-DusKUtbm.js +208 -0
  111. package/dist/lesson-05-DusKUtbm.js.map +1 -0
  112. package/dist/lesson-05-ip400cxe.js +194 -0
  113. package/dist/lesson-05-ip400cxe.js.map +1 -0
  114. package/dist/lesson-06-1CE05TRX.js +196 -0
  115. package/dist/lesson-06-1CE05TRX.js.map +1 -0
  116. package/dist/lesson-06-1ZsbrE1a.js +230 -0
  117. package/dist/lesson-06-1ZsbrE1a.js.map +1 -0
  118. package/dist/lesson-06-Aw-X-HMV.js +222 -0
  119. package/dist/lesson-06-Aw-X-HMV.js.map +1 -0
  120. package/dist/lesson-06-BG26PBTF.js +135 -0
  121. package/dist/lesson-06-BG26PBTF.js.map +1 -0
  122. package/dist/lesson-06-Bliedg7n.js +265 -0
  123. package/dist/lesson-06-Bliedg7n.js.map +1 -0
  124. package/dist/lesson-06-CnKkcUb-.js +164 -0
  125. package/dist/lesson-06-CnKkcUb-.js.map +1 -0
  126. package/dist/lesson-06-CvN9pDsE.js +182 -0
  127. package/dist/lesson-06-CvN9pDsE.js.map +1 -0
  128. package/dist/lesson-06-Du9J8sYl.js +192 -0
  129. package/dist/lesson-06-Du9J8sYl.js.map +1 -0
  130. package/dist/lesson-07-8zdPFyjE.js +189 -0
  131. package/dist/lesson-07-8zdPFyjE.js.map +1 -0
  132. package/dist/lesson-07-B9bkJ3gP.js +136 -0
  133. package/dist/lesson-07-B9bkJ3gP.js.map +1 -0
  134. package/dist/lesson-07-CTFSd9gF.js +200 -0
  135. package/dist/lesson-07-CTFSd9gF.js.map +1 -0
  136. package/dist/lesson-07-DezS1ojS.js +224 -0
  137. package/dist/lesson-07-DezS1ojS.js.map +1 -0
  138. package/dist/lesson-07-DjCMCYkK.js +186 -0
  139. package/dist/lesson-07-DjCMCYkK.js.map +1 -0
  140. package/dist/lesson-07-X6anzbAn.js +240 -0
  141. package/dist/lesson-07-X6anzbAn.js.map +1 -0
  142. package/dist/lesson-07-rvSSQiVh.js +222 -0
  143. package/dist/lesson-07-rvSSQiVh.js.map +1 -0
  144. package/dist/lesson-08-BYfkPBkH.js +279 -0
  145. package/dist/lesson-08-BYfkPBkH.js.map +1 -0
  146. package/dist/lesson-08-Bb_v_gD-.js +140 -0
  147. package/dist/lesson-08-Bb_v_gD-.js.map +1 -0
  148. package/dist/lesson-08-BqW5C_OE.js +265 -0
  149. package/dist/lesson-08-BqW5C_OE.js.map +1 -0
  150. package/dist/lesson-08-CeDWopKc.js +215 -0
  151. package/dist/lesson-08-CeDWopKc.js.map +1 -0
  152. package/dist/lesson-08-Cyzy_VeP.js +214 -0
  153. package/dist/lesson-08-Cyzy_VeP.js.map +1 -0
  154. package/dist/lesson-08-hJlci9W5.js +197 -0
  155. package/dist/lesson-08-hJlci9W5.js.map +1 -0
  156. package/dist/lesson-09-BQ1CZCjT.js +137 -0
  157. package/dist/lesson-09-BQ1CZCjT.js.map +1 -0
  158. package/dist/lesson-09-DHRHZIc1.js +209 -0
  159. package/dist/lesson-09-DHRHZIc1.js.map +1 -0
  160. package/dist/lesson-10-BdfkVT7s.js +221 -0
  161. package/dist/lesson-10-BdfkVT7s.js.map +1 -0
  162. package/dist/lesson-10-C7YEQ8et.js +150 -0
  163. package/dist/lesson-10-C7YEQ8et.js.map +1 -0
  164. package/dist/lesson-11-oJQ8ZxJk.js +248 -0
  165. package/dist/lesson-11-oJQ8ZxJk.js.map +1 -0
  166. package/dist/lesson-12-D69m5ETy.js +265 -0
  167. package/dist/lesson-12-D69m5ETy.js.map +1 -0
  168. package/dist/syllabi/alphabet/index.d.ts +3 -6
  169. package/dist/syllabi/alphabet/index.js +8 -37
  170. package/dist/syllabi/alphabet/index.js.map +1 -1
  171. package/dist/syllabi/dialogue/index.d.ts +3 -6
  172. package/dist/syllabi/dialogue/index.js +9 -33
  173. package/dist/syllabi/dialogue/index.js.map +1 -1
  174. package/dist/syllabi/essentials/index.d.ts +3 -6
  175. package/dist/syllabi/essentials/index.js +9 -31
  176. package/dist/syllabi/essentials/index.js.map +1 -1
  177. package/dist/syllabi/food/index.d.ts +3 -6
  178. package/dist/syllabi/food/index.js +9 -33
  179. package/dist/syllabi/food/index.js.map +1 -1
  180. package/dist/syllabi/grammar/index.d.ts +3 -6
  181. package/dist/syllabi/grammar/index.js +9 -33
  182. package/dist/syllabi/grammar/index.js.map +1 -1
  183. package/dist/syllabi/numbers/index.d.ts +3 -6
  184. package/dist/syllabi/numbers/index.js +9 -30
  185. package/dist/syllabi/numbers/index.js.map +1 -1
  186. package/dist/syllabi/reading/index.d.ts +3 -6
  187. package/dist/syllabi/reading/index.js +9 -35
  188. package/dist/syllabi/reading/index.js.map +1 -1
  189. package/dist/syllabi/travel/index.d.ts +3 -6
  190. package/dist/syllabi/travel/index.js +9 -32
  191. package/dist/syllabi/travel/index.js.map +1 -1
  192. package/dist/syllabi/vowels-tones/index.d.ts +3 -6
  193. package/dist/syllabi/vowels-tones/index.js +9 -33
  194. package/dist/syllabi/vowels-tones/index.js.map +1 -1
  195. package/package.json +21 -11
  196. package/src/syllabi/alphabet/lessons/lesson-12.mdx +10 -10
  197. package/dist/index.d.ts.map +0 -1
  198. package/dist/shared.d.ts +0 -70
  199. package/dist/shared.d.ts.map +0 -1
  200. package/dist/shared.js +0 -33
  201. package/dist/shared.js.map +0 -1
  202. package/dist/syllabi/alphabet/index.d.ts.map +0 -1
  203. package/dist/syllabi/dialogue/index.d.ts.map +0 -1
  204. package/dist/syllabi/essentials/index.d.ts.map +0 -1
  205. package/dist/syllabi/food/index.d.ts.map +0 -1
  206. package/dist/syllabi/grammar/index.d.ts.map +0 -1
  207. package/dist/syllabi/numbers/index.d.ts.map +0 -1
  208. package/dist/syllabi/reading/index.d.ts.map +0 -1
  209. package/dist/syllabi/travel/index.d.ts.map +0 -1
  210. package/dist/syllabi/vowels-tones/index.d.ts.map +0 -1
@@ -0,0 +1,46 @@
1
+ import { c as s } from "./index-DADMaTE7.js";
2
+ const o = {
3
+ id: "th-numbers",
4
+ title: "ตัวเลขไทย (Thai Numbers)",
5
+ description: "Learn Thai numerals and counting",
6
+ language: "th",
7
+ locale: "th-TH",
8
+ lessonCount: 5,
9
+ difficulty: "beginner",
10
+ cefrLevel: "A1",
11
+ icon: "numbers",
12
+ version: "0.1.0"
13
+ };
14
+ async function t(n) {
15
+ switch (n) {
16
+ case 1:
17
+ return import("./lesson-01-CF4tJfZ3.js");
18
+ case 2:
19
+ return import("./lesson-02-Bm9EJuN8.js");
20
+ case 3:
21
+ return import("./lesson-03-DV2SUWVH.js");
22
+ case 4:
23
+ return import("./lesson-04-CtNr2B3E.js");
24
+ case 5:
25
+ return import("./lesson-05-DusKUtbm.js");
26
+ default:
27
+ throw new Error(`Lesson ${n} not found`);
28
+ }
29
+ }
30
+ const e = s(o, t), r = e.loadLesson.bind(e), a = e.loadAllLessons.bind(e), i = e.getAvailableLessons.bind(e), c = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
31
+ __proto__: null,
32
+ config: o,
33
+ getAvailableLessons: i,
34
+ loadAllLessons: a,
35
+ loadLesson: r,
36
+ loader: e
37
+ }, Symbol.toStringTag, { value: "Module" }));
38
+ export {
39
+ a,
40
+ r as b,
41
+ o as c,
42
+ i as g,
43
+ c as i,
44
+ e as l
45
+ };
46
+ //# sourceMappingURL=index-B029m98V.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-B029m98V.js","sources":["../src/syllabi/numbers/index.ts"],"sourcesContent":["/**\n * Thai Numbers syllabus\n */\n\nimport { createContentLoader, type SyllabusConfig, type ContentLoader } from '@syllst/content-shared';\n\nexport const config: SyllabusConfig = {\n id: 'th-numbers',\n title: 'ตัวเลขไทย (Thai Numbers)',\n description: 'Learn Thai numerals and counting',\n language: 'th',\n locale: 'th-TH',\n lessonCount: 5,\n difficulty: 'beginner',\n cefrLevel: 'A1',\n icon: 'numbers',\n version: '0.1.0',\n};\n\nasync function loadLessonMDX(lessonNumber: number) {\n switch (lessonNumber) {\n case 1: return import('./lessons/lesson-01.mdx?raw');\n case 2: return import('./lessons/lesson-02.mdx?raw');\n case 3: return import('./lessons/lesson-03.mdx?raw');\n case 4: return import('./lessons/lesson-04.mdx?raw');\n case 5: return import('./lessons/lesson-05.mdx?raw');\n default: throw new Error(`Lesson ${lessonNumber} not found`);\n }\n}\n\nexport const loader: ContentLoader = createContentLoader(config, loadLessonMDX);\nexport const loadLesson = loader.loadLesson.bind(loader);\nexport const loadAllLessons = loader.loadAllLessons.bind(loader);\nexport const getAvailableLessons = loader.getAvailableLessons.bind(loader);\n"],"names":["config","loadLessonMDX","lessonNumber","loader","createContentLoader","loadLesson","loadAllLessons","getAvailableLessons"],"mappings":";AAMO,MAAMA,IAAyB;AAAA,EACpC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,aAAa;AAAA,EACb,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,MAAM;AAAA,EACN,SAAS;AACX;AAEA,eAAeC,EAAcC,GAAsB;AACjD,UAAQA,GAAA;AAAA,IACN,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD;AAAS,YAAM,IAAI,MAAM,UAAUA,CAAY,YAAY;AAAA,EAAA;AAE/D;AAEO,MAAMC,IAAwBC,EAAoBJ,GAAQC,CAAa,GACjEI,IAAaF,EAAO,WAAW,KAAKA,CAAM,GAC1CG,IAAiBH,EAAO,eAAe,KAAKA,CAAM,GAClDI,IAAsBJ,EAAO,oBAAoB,KAAKA,CAAM;;;;;;;;"}
@@ -0,0 +1,52 @@
1
+ import { c as n } from "./index-DADMaTE7.js";
2
+ const t = {
3
+ id: "th-food",
4
+ title: "อาหารไทย (Thai Food)",
5
+ description: "Food vocabulary and ordering at restaurants",
6
+ language: "th",
7
+ locale: "th-TH",
8
+ lessonCount: 8,
9
+ difficulty: "beginner",
10
+ cefrLevel: "A2",
11
+ icon: "food",
12
+ version: "0.1.0"
13
+ };
14
+ async function r(e) {
15
+ switch (e) {
16
+ case 1:
17
+ return import("./lesson-01-CRx-yw4C.js");
18
+ case 2:
19
+ return import("./lesson-02-B2Xg7RVU.js");
20
+ case 3:
21
+ return import("./lesson-03-CKTNtgY1.js");
22
+ case 4:
23
+ return import("./lesson-04-rapx_3vA.js");
24
+ case 5:
25
+ return import("./lesson-05-Bm6fg-DJ.js");
26
+ case 6:
27
+ return import("./lesson-06-1ZsbrE1a.js");
28
+ case 7:
29
+ return import("./lesson-07-X6anzbAn.js");
30
+ case 8:
31
+ return import("./lesson-08-BYfkPBkH.js");
32
+ default:
33
+ throw new Error(`Lesson ${e} not found`);
34
+ }
35
+ }
36
+ const o = n(t, r), s = o.loadLesson.bind(o), a = o.loadAllLessons.bind(o), i = o.getAvailableLessons.bind(o), l = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
37
+ __proto__: null,
38
+ config: t,
39
+ getAvailableLessons: i,
40
+ loadAllLessons: a,
41
+ loadLesson: s,
42
+ loader: o
43
+ }, Symbol.toStringTag, { value: "Module" }));
44
+ export {
45
+ a,
46
+ s as b,
47
+ t as c,
48
+ i as g,
49
+ l as i,
50
+ o as l
51
+ };
52
+ //# sourceMappingURL=index-BCA5Llwg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BCA5Llwg.js","sources":["../src/syllabi/food/index.ts"],"sourcesContent":["/**\n * Thai Food syllabus\n */\n\nimport { createContentLoader, type SyllabusConfig, type ContentLoader } from '@syllst/content-shared';\n\nexport const config: SyllabusConfig = {\n id: 'th-food',\n title: 'อาหารไทย (Thai Food)',\n description: 'Food vocabulary and ordering at restaurants',\n language: 'th',\n locale: 'th-TH',\n lessonCount: 8,\n difficulty: 'beginner',\n cefrLevel: 'A2',\n icon: 'food',\n version: '0.1.0',\n};\n\nasync function loadLessonMDX(lessonNumber: number) {\n switch (lessonNumber) {\n case 1: return import('./lessons/lesson-01.mdx?raw');\n case 2: return import('./lessons/lesson-02.mdx?raw');\n case 3: return import('./lessons/lesson-03.mdx?raw');\n case 4: return import('./lessons/lesson-04.mdx?raw');\n case 5: return import('./lessons/lesson-05.mdx?raw');\n case 6: return import('./lessons/lesson-06.mdx?raw');\n case 7: return import('./lessons/lesson-07.mdx?raw');\n case 8: return import('./lessons/lesson-08.mdx?raw');\n default: throw new Error(`Lesson ${lessonNumber} not found`);\n }\n}\n\nexport const loader: ContentLoader = createContentLoader(config, loadLessonMDX);\nexport const loadLesson = loader.loadLesson.bind(loader);\nexport const loadAllLessons = loader.loadAllLessons.bind(loader);\nexport const getAvailableLessons = loader.getAvailableLessons.bind(loader);\n"],"names":["config","loadLessonMDX","lessonNumber","loader","createContentLoader","loadLesson","loadAllLessons","getAvailableLessons"],"mappings":";AAMO,MAAMA,IAAyB;AAAA,EACpC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,aAAa;AAAA,EACb,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,MAAM;AAAA,EACN,SAAS;AACX;AAEA,eAAeC,EAAcC,GAAsB;AACjD,UAAQA,GAAA;AAAA,IACN,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD;AAAS,YAAM,IAAI,MAAM,UAAUA,CAAY,YAAY;AAAA,EAAA;AAE/D;AAEO,MAAMC,IAAwBC,EAAoBJ,GAAQC,CAAa,GACjEI,IAAaF,EAAO,WAAW,KAAKA,CAAM,GAC1CG,IAAiBH,EAAO,eAAe,KAAKA,CAAM,GAClDI,IAAsBJ,EAAO,oBAAoB,KAAKA,CAAM;;;;;;;;"}
@@ -0,0 +1,56 @@
1
+ import { c as r } from "./index-DADMaTE7.js";
2
+ const o = {
3
+ id: "th-reading",
4
+ title: "การอ่าน (Thai Reading)",
5
+ description: "Reading practice with Thai texts",
6
+ language: "th",
7
+ locale: "th-TH",
8
+ lessonCount: 10,
9
+ difficulty: "intermediate",
10
+ cefrLevel: "B1",
11
+ icon: "reading",
12
+ version: "0.1.0"
13
+ };
14
+ async function n(t) {
15
+ switch (t) {
16
+ case 1:
17
+ return import("./lesson-01-BYKAZiua.js");
18
+ case 2:
19
+ return import("./lesson-02-BO3BXPMJ.js");
20
+ case 3:
21
+ return import("./lesson-03-8NtAeqFh.js");
22
+ case 4:
23
+ return import("./lesson-04-BpRrNmzO.js");
24
+ case 5:
25
+ return import("./lesson-05-D1d3kc3M.js");
26
+ case 6:
27
+ return import("./lesson-06-BG26PBTF.js");
28
+ case 7:
29
+ return import("./lesson-07-B9bkJ3gP.js");
30
+ case 8:
31
+ return import("./lesson-08-Bb_v_gD-.js");
32
+ case 9:
33
+ return import("./lesson-09-BQ1CZCjT.js");
34
+ case 10:
35
+ return import("./lesson-10-C7YEQ8et.js");
36
+ default:
37
+ throw new Error(`Lesson ${t} not found`);
38
+ }
39
+ }
40
+ const e = r(o, n), s = e.loadLesson.bind(e), a = e.loadAllLessons.bind(e), i = e.getAvailableLessons.bind(e), l = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
41
+ __proto__: null,
42
+ config: o,
43
+ getAvailableLessons: i,
44
+ loadAllLessons: a,
45
+ loadLesson: s,
46
+ loader: e
47
+ }, Symbol.toStringTag, { value: "Module" }));
48
+ export {
49
+ a,
50
+ s as b,
51
+ o as c,
52
+ i as g,
53
+ l as i,
54
+ e as l
55
+ };
56
+ //# sourceMappingURL=index-BFcg5D_W.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BFcg5D_W.js","sources":["../src/syllabi/reading/index.ts"],"sourcesContent":["/**\n * Thai Reading syllabus\n */\n\nimport { createContentLoader, type SyllabusConfig, type ContentLoader } from '@syllst/content-shared';\n\nexport const config: SyllabusConfig = {\n id: 'th-reading',\n title: 'การอ่าน (Thai Reading)',\n description: 'Reading practice with Thai texts',\n language: 'th',\n locale: 'th-TH',\n lessonCount: 10,\n difficulty: 'intermediate',\n cefrLevel: 'B1',\n icon: 'reading',\n version: '0.1.0',\n};\n\nasync function loadLessonMDX(lessonNumber: number) {\n switch (lessonNumber) {\n case 1: return import('./lessons/lesson-01.mdx?raw');\n case 2: return import('./lessons/lesson-02.mdx?raw');\n case 3: return import('./lessons/lesson-03.mdx?raw');\n case 4: return import('./lessons/lesson-04.mdx?raw');\n case 5: return import('./lessons/lesson-05.mdx?raw');\n case 6: return import('./lessons/lesson-06.mdx?raw');\n case 7: return import('./lessons/lesson-07.mdx?raw');\n case 8: return import('./lessons/lesson-08.mdx?raw');\n case 9: return import('./lessons/lesson-09.mdx?raw');\n case 10: return import('./lessons/lesson-10.mdx?raw');\n default: throw new Error(`Lesson ${lessonNumber} not found`);\n }\n}\n\nexport const loader: ContentLoader = createContentLoader(config, loadLessonMDX);\nexport const loadLesson = loader.loadLesson.bind(loader);\nexport const loadAllLessons = loader.loadAllLessons.bind(loader);\nexport const getAvailableLessons = loader.getAvailableLessons.bind(loader);\n"],"names":["config","loadLessonMDX","lessonNumber","loader","createContentLoader","loadLesson","loadAllLessons","getAvailableLessons"],"mappings":";AAMO,MAAMA,IAAyB;AAAA,EACpC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,aAAa;AAAA,EACb,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,MAAM;AAAA,EACN,SAAS;AACX;AAEA,eAAeC,EAAcC,GAAsB;AACjD,UAAQA,GAAA;AAAA,IACN,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAI,aAAO,OAAO,yBAA6B;AAAA,IACpD;AAAS,YAAM,IAAI,MAAM,UAAUA,CAAY,YAAY;AAAA,EAAA;AAE/D;AAEO,MAAMC,IAAwBC,EAAoBJ,GAAQC,CAAa,GACjEI,IAAaF,EAAO,WAAW,KAAKA,CAAM,GAC1CG,IAAiBH,EAAO,eAAe,KAAKA,CAAM,GAClDI,IAAsBJ,EAAO,oBAAoB,KAAKA,CAAM;;;;;;;;"}
@@ -0,0 +1,52 @@
1
+ import { c as s } from "./index-DADMaTE7.js";
2
+ const t = {
3
+ id: "th-vowels-tones",
4
+ title: "สระและวรรณยุกต์ (Vowels & Tones)",
5
+ description: "Master Thai vowels and the five tones",
6
+ language: "th",
7
+ locale: "th-TH",
8
+ lessonCount: 8,
9
+ difficulty: "beginner",
10
+ cefrLevel: "A1",
11
+ icon: "alphabet",
12
+ version: "0.1.0"
13
+ };
14
+ async function n(o) {
15
+ switch (o) {
16
+ case 1:
17
+ return import("./lesson-01--9NOyHZ6.js");
18
+ case 2:
19
+ return import("./lesson-02-BGnp0Ik_.js");
20
+ case 3:
21
+ return import("./lesson-03-D8va_Q9B.js");
22
+ case 4:
23
+ return import("./lesson-04-ioLXnB0j.js");
24
+ case 5:
25
+ return import("./lesson-05-ip400cxe.js");
26
+ case 6:
27
+ return import("./lesson-06-Du9J8sYl.js");
28
+ case 7:
29
+ return import("./lesson-07-rvSSQiVh.js");
30
+ case 8:
31
+ return import("./lesson-08-BqW5C_OE.js");
32
+ default:
33
+ throw new Error(`Lesson ${o} not found`);
34
+ }
35
+ }
36
+ const e = s(t, n), r = e.loadLesson.bind(e), a = e.loadAllLessons.bind(e), i = e.getAvailableLessons.bind(e), c = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
37
+ __proto__: null,
38
+ config: t,
39
+ getAvailableLessons: i,
40
+ loadAllLessons: a,
41
+ loadLesson: r,
42
+ loader: e
43
+ }, Symbol.toStringTag, { value: "Module" }));
44
+ export {
45
+ a,
46
+ r as b,
47
+ t as c,
48
+ i as g,
49
+ c as i,
50
+ e as l
51
+ };
52
+ //# sourceMappingURL=index-CB8M6CK6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CB8M6CK6.js","sources":["../src/syllabi/vowels-tones/index.ts"],"sourcesContent":["/**\n * Thai Vowels & Tones syllabus\n */\n\nimport { createContentLoader, type SyllabusConfig, type ContentLoader } from '@syllst/content-shared';\n\nexport const config: SyllabusConfig = {\n id: 'th-vowels-tones',\n title: 'สระและวรรณยุกต์ (Vowels & Tones)',\n description: 'Master Thai vowels and the five tones',\n language: 'th',\n locale: 'th-TH',\n lessonCount: 8,\n difficulty: 'beginner',\n cefrLevel: 'A1',\n icon: 'alphabet',\n version: '0.1.0',\n};\n\nasync function loadLessonMDX(lessonNumber: number) {\n switch (lessonNumber) {\n case 1: return import('./lessons/lesson-01.mdx?raw');\n case 2: return import('./lessons/lesson-02.mdx?raw');\n case 3: return import('./lessons/lesson-03.mdx?raw');\n case 4: return import('./lessons/lesson-04.mdx?raw');\n case 5: return import('./lessons/lesson-05.mdx?raw');\n case 6: return import('./lessons/lesson-06.mdx?raw');\n case 7: return import('./lessons/lesson-07.mdx?raw');\n case 8: return import('./lessons/lesson-08.mdx?raw');\n default: throw new Error(`Lesson ${lessonNumber} not found`);\n }\n}\n\nexport const loader: ContentLoader = createContentLoader(config, loadLessonMDX);\nexport const loadLesson = loader.loadLesson.bind(loader);\nexport const loadAllLessons = loader.loadAllLessons.bind(loader);\nexport const getAvailableLessons = loader.getAvailableLessons.bind(loader);\n"],"names":["config","loadLessonMDX","lessonNumber","loader","createContentLoader","loadLesson","loadAllLessons","getAvailableLessons"],"mappings":";AAMO,MAAMA,IAAyB;AAAA,EACpC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,aAAa;AAAA,EACb,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,MAAM;AAAA,EACN,SAAS;AACX;AAEA,eAAeC,EAAcC,GAAsB;AACjD,UAAQA,GAAA;AAAA,IACN,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD;AAAS,YAAM,IAAI,MAAM,UAAUA,CAAY,YAAY;AAAA,EAAA;AAE/D;AAEO,MAAMC,IAAwBC,EAAoBJ,GAAQC,CAAa,GACjEI,IAAaF,EAAO,WAAW,KAAKA,CAAM,GAC1CG,IAAiBH,EAAO,eAAe,KAAKA,CAAM,GAClDI,IAAsBJ,EAAO,oBAAoB,KAAKA,CAAM;;;;;;;;"}
@@ -0,0 +1,48 @@
1
+ import { c as n } from "./index-DADMaTE7.js";
2
+ const o = {
3
+ id: "th-essentials",
4
+ title: "คำพื้นฐาน (Thai Essentials)",
5
+ description: "Essential phrases and greetings for everyday use",
6
+ language: "th",
7
+ locale: "th-TH",
8
+ lessonCount: 6,
9
+ difficulty: "beginner",
10
+ cefrLevel: "A1",
11
+ icon: "dialogue",
12
+ version: "0.1.0"
13
+ };
14
+ async function t(s) {
15
+ switch (s) {
16
+ case 1:
17
+ return import("./lesson-01-97FtYE6g.js");
18
+ case 2:
19
+ return import("./lesson-02-CsejVbCo.js");
20
+ case 3:
21
+ return import("./lesson-03-DrJgbfDQ.js");
22
+ case 4:
23
+ return import("./lesson-04-Dfc7S4nT.js");
24
+ case 5:
25
+ return import("./lesson-05-D2SVU-I0.js");
26
+ case 6:
27
+ return import("./lesson-06-Bliedg7n.js");
28
+ default:
29
+ throw new Error(`Lesson ${s} not found`);
30
+ }
31
+ }
32
+ const e = n(o, t), a = e.loadLesson.bind(e), r = e.loadAllLessons.bind(e), i = e.getAvailableLessons.bind(e), c = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
33
+ __proto__: null,
34
+ config: o,
35
+ getAvailableLessons: i,
36
+ loadAllLessons: r,
37
+ loadLesson: a,
38
+ loader: e
39
+ }, Symbol.toStringTag, { value: "Module" }));
40
+ export {
41
+ r as a,
42
+ a as b,
43
+ o as c,
44
+ i as g,
45
+ c as i,
46
+ e as l
47
+ };
48
+ //# sourceMappingURL=index-CTQ45BVw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CTQ45BVw.js","sources":["../src/syllabi/essentials/index.ts"],"sourcesContent":["/**\n * Thai Essentials syllabus\n */\n\nimport { createContentLoader, type SyllabusConfig, type ContentLoader } from '@syllst/content-shared';\n\nexport const config: SyllabusConfig = {\n id: 'th-essentials',\n title: 'คำพื้นฐาน (Thai Essentials)',\n description: 'Essential phrases and greetings for everyday use',\n language: 'th',\n locale: 'th-TH',\n lessonCount: 6,\n difficulty: 'beginner',\n cefrLevel: 'A1',\n icon: 'dialogue',\n version: '0.1.0',\n};\n\nasync function loadLessonMDX(lessonNumber: number) {\n switch (lessonNumber) {\n case 1: return import('./lessons/lesson-01.mdx?raw');\n case 2: return import('./lessons/lesson-02.mdx?raw');\n case 3: return import('./lessons/lesson-03.mdx?raw');\n case 4: return import('./lessons/lesson-04.mdx?raw');\n case 5: return import('./lessons/lesson-05.mdx?raw');\n case 6: return import('./lessons/lesson-06.mdx?raw');\n default: throw new Error(`Lesson ${lessonNumber} not found`);\n }\n}\n\nexport const loader: ContentLoader = createContentLoader(config, loadLessonMDX);\nexport const loadLesson = loader.loadLesson.bind(loader);\nexport const loadAllLessons = loader.loadAllLessons.bind(loader);\nexport const getAvailableLessons = loader.getAvailableLessons.bind(loader);\n"],"names":["config","loadLessonMDX","lessonNumber","loader","createContentLoader","loadLesson","loadAllLessons","getAvailableLessons"],"mappings":";AAMO,MAAMA,IAAyB;AAAA,EACpC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,aAAa;AAAA,EACb,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,MAAM;AAAA,EACN,SAAS;AACX;AAEA,eAAeC,EAAcC,GAAsB;AACjD,UAAQA,GAAA;AAAA,IACN,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD;AAAS,YAAM,IAAI,MAAM,UAAUA,CAAY,YAAY;AAAA,EAAA;AAE/D;AAEO,MAAMC,IAAwBC,EAAoBJ,GAAQC,CAAa,GACjEI,IAAaF,EAAO,WAAW,KAAKA,CAAM,GAC1CG,IAAiBH,EAAO,eAAe,KAAKA,CAAM,GAClDI,IAAsBJ,EAAO,oBAAoB,KAAKA,CAAM;;;;;;;;"}
@@ -0,0 +1,52 @@
1
+ import { c as s } from "./index-DADMaTE7.js";
2
+ const t = {
3
+ id: "th-dialogue",
4
+ title: "บทสนทนา (Thai Dialogue)",
5
+ description: "Practical conversations for everyday situations",
6
+ language: "th",
7
+ locale: "th-TH",
8
+ lessonCount: 8,
9
+ difficulty: "intermediate",
10
+ cefrLevel: "A2",
11
+ icon: "dialogue",
12
+ version: "0.1.0"
13
+ };
14
+ async function n(o) {
15
+ switch (o) {
16
+ case 1:
17
+ return import("./lesson-01-BNdHXAGR.js");
18
+ case 2:
19
+ return import("./lesson-02-C8dfzXvq.js");
20
+ case 3:
21
+ return import("./lesson-03-DiV17_Os.js");
22
+ case 4:
23
+ return import("./lesson-04-D__vMCyA.js");
24
+ case 5:
25
+ return import("./lesson-05-DBsHyFlt.js");
26
+ case 6:
27
+ return import("./lesson-06-CnKkcUb-.js");
28
+ case 7:
29
+ return import("./lesson-07-8zdPFyjE.js");
30
+ case 8:
31
+ return import("./lesson-08-hJlci9W5.js");
32
+ default:
33
+ throw new Error(`Lesson ${o} not found`);
34
+ }
35
+ }
36
+ const e = s(t, n), r = e.loadLesson.bind(e), a = e.loadAllLessons.bind(e), i = e.getAvailableLessons.bind(e), l = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
37
+ __proto__: null,
38
+ config: t,
39
+ getAvailableLessons: i,
40
+ loadAllLessons: a,
41
+ loadLesson: r,
42
+ loader: e
43
+ }, Symbol.toStringTag, { value: "Module" }));
44
+ export {
45
+ a,
46
+ r as b,
47
+ t as c,
48
+ i as g,
49
+ l as i,
50
+ e as l
51
+ };
52
+ //# sourceMappingURL=index-CoqP9GZL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CoqP9GZL.js","sources":["../src/syllabi/dialogue/index.ts"],"sourcesContent":["/**\n * Thai Dialogue syllabus\n */\n\nimport { createContentLoader, type SyllabusConfig, type ContentLoader } from '@syllst/content-shared';\n\nexport const config: SyllabusConfig = {\n id: 'th-dialogue',\n title: 'บทสนทนา (Thai Dialogue)',\n description: 'Practical conversations for everyday situations',\n language: 'th',\n locale: 'th-TH',\n lessonCount: 8,\n difficulty: 'intermediate',\n cefrLevel: 'A2',\n icon: 'dialogue',\n version: '0.1.0',\n};\n\nasync function loadLessonMDX(lessonNumber: number) {\n switch (lessonNumber) {\n case 1: return import('./lessons/lesson-01.mdx?raw');\n case 2: return import('./lessons/lesson-02.mdx?raw');\n case 3: return import('./lessons/lesson-03.mdx?raw');\n case 4: return import('./lessons/lesson-04.mdx?raw');\n case 5: return import('./lessons/lesson-05.mdx?raw');\n case 6: return import('./lessons/lesson-06.mdx?raw');\n case 7: return import('./lessons/lesson-07.mdx?raw');\n case 8: return import('./lessons/lesson-08.mdx?raw');\n default: throw new Error(`Lesson ${lessonNumber} not found`);\n }\n}\n\nexport const loader: ContentLoader = createContentLoader(config, loadLessonMDX);\nexport const loadLesson = loader.loadLesson.bind(loader);\nexport const loadAllLessons = loader.loadAllLessons.bind(loader);\nexport const getAvailableLessons = loader.getAvailableLessons.bind(loader);\n"],"names":["config","loadLessonMDX","lessonNumber","loader","createContentLoader","loadLesson","loadAllLessons","getAvailableLessons"],"mappings":";AAMO,MAAMA,IAAyB;AAAA,EACpC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,aAAa;AAAA,EACb,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,MAAM;AAAA,EACN,SAAS;AACX;AAEA,eAAeC,EAAcC,GAAsB;AACjD,UAAQA,GAAA;AAAA,IACN,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD;AAAS,YAAM,IAAI,MAAM,UAAUA,CAAY,YAAY;AAAA,EAAA;AAE/D;AAEO,MAAMC,IAAwBC,EAAoBJ,GAAQC,CAAa,GACjEI,IAAaF,EAAO,WAAW,KAAKA,CAAM,GAC1CG,IAAiBH,EAAO,eAAe,KAAKA,CAAM,GAClDI,IAAsBJ,EAAO,oBAAoB,KAAKA,CAAM;;;;;;;;"}
@@ -0,0 +1,27 @@
1
+ function e(o, s) {
2
+ return {
3
+ config: o,
4
+ async loadLesson(n) {
5
+ if (n < 1 || n > o.lessonCount)
6
+ throw new Error(`Lesson ${n} not found. Valid range: 1-${o.lessonCount}`);
7
+ const t = await s(n);
8
+ return {
9
+ number: n,
10
+ rawContent: t.default
11
+ };
12
+ },
13
+ async loadAllLessons() {
14
+ const n = [];
15
+ for (let t = 1; t <= o.lessonCount; t++)
16
+ n.push(await this.loadLesson(t));
17
+ return n;
18
+ },
19
+ getAvailableLessons() {
20
+ return Array.from({ length: o.lessonCount }, (n, t) => t + 1);
21
+ }
22
+ };
23
+ }
24
+ export {
25
+ e as c
26
+ };
27
+ //# sourceMappingURL=index-DADMaTE7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-DADMaTE7.js","sources":["../../../../tooling/content-shared/dist/index.js"],"sourcesContent":["/**\n * @syllst/content-shared\n *\n * Shared utilities for SYLLST content packages.\n */\n/**\n * Create a content loader from config and lesson loader function\n */\nexport function createContentLoader(config, loadLessonMDX) {\n return {\n config,\n async loadLesson(lessonNumber) {\n if (lessonNumber < 1 || lessonNumber > config.lessonCount) {\n throw new Error(`Lesson ${lessonNumber} not found. Valid range: 1-${config.lessonCount}`);\n }\n const module = await loadLessonMDX(lessonNumber);\n return {\n number: lessonNumber,\n rawContent: module.default,\n };\n },\n async loadAllLessons() {\n const lessons = [];\n for (let i = 1; i <= config.lessonCount; i++) {\n lessons.push(await this.loadLesson(i));\n }\n return lessons;\n },\n getAvailableLessons() {\n return Array.from({ length: config.lessonCount }, (_, i) => i + 1);\n },\n };\n}\n//# sourceMappingURL=index.js.map"],"names":["createContentLoader","config","loadLessonMDX","lessonNumber","module","lessons","i","_"],"mappings":"AAQO,SAASA,EAAoBC,GAAQC,GAAe;AACvD,SAAO;AAAA,IACH,QAAAD;AAAA,IACA,MAAM,WAAWE,GAAc;AAC3B,UAAIA,IAAe,KAAKA,IAAeF,EAAO;AAC1C,cAAM,IAAI,MAAM,UAAUE,CAAY,8BAA8BF,EAAO,WAAW,EAAE;AAE5F,YAAMG,IAAS,MAAMF,EAAcC,CAAY;AAC/C,aAAO;AAAA,QACH,QAAQA;AAAA,QACR,YAAYC,EAAO;AAAA,MACnC;AAAA,IACQ;AAAA,IACA,MAAM,iBAAiB;AACnB,YAAMC,IAAU,CAAA;AAChB,eAASC,IAAI,GAAGA,KAAKL,EAAO,aAAaK;AACrC,QAAAD,EAAQ,KAAK,MAAM,KAAK,WAAWC,CAAC,CAAC;AAEzC,aAAOD;AAAA,IACX;AAAA,IACA,sBAAsB;AAClB,aAAO,MAAM,KAAK,EAAE,QAAQJ,EAAO,YAAW,GAAI,CAACM,GAAGD,MAAMA,IAAI,CAAC;AAAA,IACrE;AAAA,EACR;AACA;"}
@@ -0,0 +1,52 @@
1
+ import { c as o } from "./index-DADMaTE7.js";
2
+ const r = {
3
+ id: "th-grammar",
4
+ title: "ไวยากรณ์ไทย (Thai Grammar)",
5
+ description: "Essential Thai grammar patterns",
6
+ language: "th",
7
+ locale: "th-TH",
8
+ lessonCount: 8,
9
+ difficulty: "intermediate",
10
+ cefrLevel: "B1",
11
+ icon: "grammar",
12
+ version: "0.1.0"
13
+ };
14
+ async function a(t) {
15
+ switch (t) {
16
+ case 1:
17
+ return import("./lesson-01-WV3ic8Ok.js");
18
+ case 2:
19
+ return import("./lesson-02-C0ZL4z3c.js");
20
+ case 3:
21
+ return import("./lesson-03-Xc8-2Yt3.js");
22
+ case 4:
23
+ return import("./lesson-04-ZrSBM0BX.js");
24
+ case 5:
25
+ return import("./lesson-05-D_GdROUn.js");
26
+ case 6:
27
+ return import("./lesson-06-1CE05TRX.js");
28
+ case 7:
29
+ return import("./lesson-07-CTFSd9gF.js");
30
+ case 8:
31
+ return import("./lesson-08-Cyzy_VeP.js");
32
+ default:
33
+ throw new Error(`Lesson ${t} not found`);
34
+ }
35
+ }
36
+ const e = o(r, a), s = e.loadLesson.bind(e), n = e.loadAllLessons.bind(e), i = e.getAvailableLessons.bind(e), l = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
37
+ __proto__: null,
38
+ config: r,
39
+ getAvailableLessons: i,
40
+ loadAllLessons: n,
41
+ loadLesson: s,
42
+ loader: e
43
+ }, Symbol.toStringTag, { value: "Module" }));
44
+ export {
45
+ n as a,
46
+ s as b,
47
+ r as c,
48
+ i as g,
49
+ l as i,
50
+ e as l
51
+ };
52
+ //# sourceMappingURL=index-Dy38Hmlm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-Dy38Hmlm.js","sources":["../src/syllabi/grammar/index.ts"],"sourcesContent":["/**\n * Thai Grammar syllabus\n */\n\nimport { createContentLoader, type SyllabusConfig, type ContentLoader } from '@syllst/content-shared';\n\nexport const config: SyllabusConfig = {\n id: 'th-grammar',\n title: 'ไวยากรณ์ไทย (Thai Grammar)',\n description: 'Essential Thai grammar patterns',\n language: 'th',\n locale: 'th-TH',\n lessonCount: 8,\n difficulty: 'intermediate',\n cefrLevel: 'B1',\n icon: 'grammar',\n version: '0.1.0',\n};\n\nasync function loadLessonMDX(lessonNumber: number) {\n switch (lessonNumber) {\n case 1: return import('./lessons/lesson-01.mdx?raw');\n case 2: return import('./lessons/lesson-02.mdx?raw');\n case 3: return import('./lessons/lesson-03.mdx?raw');\n case 4: return import('./lessons/lesson-04.mdx?raw');\n case 5: return import('./lessons/lesson-05.mdx?raw');\n case 6: return import('./lessons/lesson-06.mdx?raw');\n case 7: return import('./lessons/lesson-07.mdx?raw');\n case 8: return import('./lessons/lesson-08.mdx?raw');\n default: throw new Error(`Lesson ${lessonNumber} not found`);\n }\n}\n\nexport const loader: ContentLoader = createContentLoader(config, loadLessonMDX);\nexport const loadLesson = loader.loadLesson.bind(loader);\nexport const loadAllLessons = loader.loadAllLessons.bind(loader);\nexport const getAvailableLessons = loader.getAvailableLessons.bind(loader);\n"],"names":["config","loadLessonMDX","lessonNumber","loader","createContentLoader","loadLesson","loadAllLessons","getAvailableLessons"],"mappings":";AAMO,MAAMA,IAAyB;AAAA,EACpC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,aAAa;AAAA,EACb,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,MAAM;AAAA,EACN,SAAS;AACX;AAEA,eAAeC,EAAcC,GAAsB;AACjD,UAAQA,GAAA;AAAA,IACN,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD;AAAS,YAAM,IAAI,MAAM,UAAUA,CAAY,YAAY;AAAA,EAAA;AAE/D;AAEO,MAAMC,IAAwBC,EAAoBJ,GAAQC,CAAa,GACjEI,IAAaF,EAAO,WAAW,KAAKA,CAAM,GAC1CG,IAAiBH,EAAO,eAAe,KAAKA,CAAM,GAClDI,IAAsBJ,EAAO,oBAAoB,KAAKA,CAAM;;;;;;;;"}
@@ -0,0 +1,82 @@
1
+ function a(t, r) {
2
+ return {
3
+ config: t,
4
+ async loadLesson(e) {
5
+ if (e < 1 || e > t.lessonCount)
6
+ throw new Error(`Lesson ${e} not found. Valid range: 1-${t.lessonCount}`);
7
+ const n = await r(e);
8
+ return {
9
+ number: e,
10
+ rawContent: n.default
11
+ };
12
+ },
13
+ async loadAllLessons() {
14
+ const e = [];
15
+ for (let n = 1; n <= t.lessonCount; n++)
16
+ e.push(await this.loadLesson(n));
17
+ return e;
18
+ },
19
+ getAvailableLessons() {
20
+ return Array.from({ length: t.lessonCount }, (e, n) => n + 1);
21
+ }
22
+ };
23
+ }
24
+ const s = {
25
+ id: "th-alphabet",
26
+ title: "อักษรไทย (Thai Alphabet)",
27
+ description: "Learn the Thai writing system - consonants, vowels, and tone marks",
28
+ language: "th",
29
+ locale: "th-TH",
30
+ lessonCount: 12,
31
+ difficulty: "beginner",
32
+ cefrLevel: "A1",
33
+ icon: "alphabet",
34
+ version: "0.1.0"
35
+ };
36
+ async function l(t) {
37
+ switch (t) {
38
+ case 1:
39
+ return import("./lesson-01-3hBted4A.js");
40
+ case 2:
41
+ return import("./lesson-02-BAbq-QGP.js");
42
+ case 3:
43
+ return import("./lesson-03-XVahXvgf.js");
44
+ case 4:
45
+ return import("./lesson-04-DEEPJ_rd.js");
46
+ case 5:
47
+ return import("./lesson-05-CKxXcooO.js");
48
+ case 6:
49
+ return import("./lesson-06-Aw-X-HMV.js");
50
+ case 7:
51
+ return import("./lesson-07-DezS1ojS.js");
52
+ case 8:
53
+ return import("./lesson-08-CeDWopKc.js");
54
+ case 9:
55
+ return import("./lesson-09-DHRHZIc1.js");
56
+ case 10:
57
+ return import("./lesson-10-BdfkVT7s.js");
58
+ case 11:
59
+ return import("./lesson-11-oJQ8ZxJk.js");
60
+ case 12:
61
+ return import("./lesson-12-D69m5ETy.js");
62
+ default:
63
+ throw new Error(`Lesson ${t} not found`);
64
+ }
65
+ }
66
+ const o = a(s, l), i = o.loadLesson.bind(o), c = o.loadAllLessons.bind(o), u = o.getAvailableLessons.bind(o), d = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
67
+ __proto__: null,
68
+ config: s,
69
+ getAvailableLessons: u,
70
+ loadAllLessons: c,
71
+ loadLesson: i,
72
+ loader: o
73
+ }, Symbol.toStringTag, { value: "Module" }));
74
+ export {
75
+ c as a,
76
+ i as b,
77
+ s as c,
78
+ u as g,
79
+ d as i,
80
+ o as l
81
+ };
82
+ //# sourceMappingURL=index-of_athp-.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-of_athp-.js","sources":["../src/shared.ts","../src/syllabi/alphabet/index.ts"],"sourcesContent":["/**\n * Shared types and utilities for SYLLST content\n * (Inlined from @syllst/content-shared to make package self-contained)\n */\n\n/**\n * CEFR language proficiency levels\n */\nexport type CEFRLevel = 'A1' | 'A2' | 'B1' | 'B2' | 'C1' | 'C2';\n\n/**\n * Difficulty levels\n */\nexport type Difficulty = 'beginner' | 'intermediate' | 'advanced';\n\n/**\n * Icon types for syllabi\n */\nexport type SyllabusIcon =\n | 'alphabet'\n | 'dialogue'\n | 'vocabulary'\n | 'grammar'\n | 'reading'\n | 'numbers'\n | 'food'\n | 'travel';\n\n/**\n * Configuration for a syllabus content package\n */\nexport interface SyllabusConfig {\n /** Unique syllabus ID (e.g., \"th-alphabet\") */\n id: string;\n /** Display title */\n title: string;\n /** Description */\n description: string;\n /** Language code (ISO 639-1) */\n language: string;\n /** Locale code (e.g., \"th-TH\") */\n locale: string;\n /** Number of lessons */\n lessonCount: number;\n /** Difficulty level */\n difficulty: Difficulty;\n /** CEFR level */\n cefrLevel: CEFRLevel;\n /** Icon for display */\n icon?: SyllabusIcon;\n /** Package version */\n version: string;\n}\n\n/**\n * Result of loading a lesson\n */\nexport interface LoadedLesson {\n /** Lesson number (1-indexed) */\n number: number;\n /** Raw MDX content */\n rawContent: string;\n}\n\n/**\n * Content loader interface\n */\nexport interface ContentLoader {\n /** Syllabus configuration */\n config: SyllabusConfig;\n /** Load a single lesson by number */\n loadLesson(lessonNumber: number): Promise<LoadedLesson>;\n /** Load all lessons */\n loadAllLessons(): Promise<LoadedLesson[]>;\n /** Get list of available lesson numbers */\n getAvailableLessons(): number[];\n}\n\n/**\n * Create a content loader from config and lesson loader function\n */\nexport function createContentLoader(\n config: SyllabusConfig,\n loadLessonMDX: (lessonNumber: number) => Promise<{ default: string }>\n): ContentLoader {\n return {\n config,\n\n async loadLesson(lessonNumber: number): Promise<LoadedLesson> {\n if (lessonNumber < 1 || lessonNumber > config.lessonCount) {\n throw new Error(`Lesson ${lessonNumber} not found. Valid range: 1-${config.lessonCount}`);\n }\n const module = await loadLessonMDX(lessonNumber);\n return {\n number: lessonNumber,\n rawContent: module.default,\n };\n },\n\n async loadAllLessons(): Promise<LoadedLesson[]> {\n const lessons: LoadedLesson[] = [];\n for (let i = 1; i <= config.lessonCount; i++) {\n lessons.push(await this.loadLesson(i));\n }\n return lessons;\n },\n\n getAvailableLessons(): number[] {\n return Array.from({ length: config.lessonCount }, (_, i) => i + 1);\n },\n };\n}\n","/**\n * Thai Alphabet syllabus\n */\n\nimport { createContentLoader, type SyllabusConfig, type ContentLoader } from '../../shared.js';\n\nexport const config: SyllabusConfig = {\n id: 'th-alphabet',\n title: 'อักษรไทย (Thai Alphabet)',\n description: 'Learn the Thai writing system - consonants, vowels, and tone marks',\n language: 'th',\n locale: 'th-TH',\n lessonCount: 12,\n difficulty: 'beginner',\n cefrLevel: 'A1',\n icon: 'alphabet',\n version: '0.1.0',\n};\n\nasync function loadLessonMDX(lessonNumber: number) {\n switch (lessonNumber) {\n case 1: return import('./lessons/lesson-01.mdx?raw');\n case 2: return import('./lessons/lesson-02.mdx?raw');\n case 3: return import('./lessons/lesson-03.mdx?raw');\n case 4: return import('./lessons/lesson-04.mdx?raw');\n case 5: return import('./lessons/lesson-05.mdx?raw');\n case 6: return import('./lessons/lesson-06.mdx?raw');\n case 7: return import('./lessons/lesson-07.mdx?raw');\n case 8: return import('./lessons/lesson-08.mdx?raw');\n case 9: return import('./lessons/lesson-09.mdx?raw');\n case 10: return import('./lessons/lesson-10.mdx?raw');\n case 11: return import('./lessons/lesson-11.mdx?raw');\n case 12: return import('./lessons/lesson-12.mdx?raw');\n default: throw new Error(`Lesson ${lessonNumber} not found`);\n }\n}\n\nexport const loader: ContentLoader = createContentLoader(config, loadLessonMDX);\nexport const loadLesson = loader.loadLesson.bind(loader);\nexport const loadAllLessons = loader.loadAllLessons.bind(loader);\nexport const getAvailableLessons = loader.getAvailableLessons.bind(loader);\n"],"names":["createContentLoader","config","loadLessonMDX","lessonNumber","module","lessons","i","_","loader","loadLesson","loadAllLessons","getAvailableLessons"],"mappings":"AAiFO,SAASA,EACdC,GACAC,GACe;AACf,SAAO;AAAA,IACL,QAAAD;AAAA,IAEA,MAAM,WAAWE,GAA6C;AAC5D,UAAIA,IAAe,KAAKA,IAAeF,EAAO;AAC5C,cAAM,IAAI,MAAM,UAAUE,CAAY,8BAA8BF,EAAO,WAAW,EAAE;AAE1F,YAAMG,IAAS,MAAMF,EAAcC,CAAY;AAC/C,aAAO;AAAA,QACL,QAAQA;AAAA,QACR,YAAYC,EAAO;AAAA,MAAA;AAAA,IAEvB;AAAA,IAEA,MAAM,iBAA0C;AAC9C,YAAMC,IAA0B,CAAA;AAChC,eAASC,IAAI,GAAGA,KAAKL,EAAO,aAAaK;AACvC,QAAAD,EAAQ,KAAK,MAAM,KAAK,WAAWC,CAAC,CAAC;AAEvC,aAAOD;AAAA,IACT;AAAA,IAEA,sBAAgC;AAC9B,aAAO,MAAM,KAAK,EAAE,QAAQJ,EAAO,YAAA,GAAe,CAACM,GAAGD,MAAMA,IAAI,CAAC;AAAA,IACnE;AAAA,EAAA;AAEJ;ACzGO,MAAML,IAAyB;AAAA,EACpC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,aAAa;AAAA,EACb,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,MAAM;AAAA,EACN,SAAS;AACX;AAEA,eAAeC,EAAcC,GAAsB;AACjD,UAAQA,GAAA;AAAA,IACN,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAI,aAAO,OAAO,yBAA6B;AAAA,IACpD,KAAK;AAAI,aAAO,OAAO,yBAA6B;AAAA,IACpD,KAAK;AAAI,aAAO,OAAO,yBAA6B;AAAA,IACpD;AAAS,YAAM,IAAI,MAAM,UAAUA,CAAY,YAAY;AAAA,EAAA;AAE/D;AAEO,MAAMK,IAAwBR,EAAoBC,GAAQC,CAAa,GACjEO,IAAaD,EAAO,WAAW,KAAKA,CAAM,GAC1CE,IAAiBF,EAAO,eAAe,KAAKA,CAAM,GAClDG,IAAsBH,EAAO,oBAAoB,KAAKA,CAAM;;;;;;;;"}
@@ -0,0 +1,50 @@
1
+ import { c as n } from "./index-DADMaTE7.js";
2
+ const t = {
3
+ id: "th-travel",
4
+ title: "การเดินทาง (Thai Travel)",
5
+ description: "Travel vocabulary and directions",
6
+ language: "th",
7
+ locale: "th-TH",
8
+ lessonCount: 7,
9
+ difficulty: "beginner",
10
+ cefrLevel: "A2",
11
+ icon: "travel",
12
+ version: "0.1.0"
13
+ };
14
+ async function r(o) {
15
+ switch (o) {
16
+ case 1:
17
+ return import("./lesson-01-BhjY6ArF.js");
18
+ case 2:
19
+ return import("./lesson-02-C2ALLvoT.js");
20
+ case 3:
21
+ return import("./lesson-03-BdZfKRhq.js");
22
+ case 4:
23
+ return import("./lesson-04-DtXVhdGB.js");
24
+ case 5:
25
+ return import("./lesson-05-DXOLS7G0.js");
26
+ case 6:
27
+ return import("./lesson-06-CvN9pDsE.js");
28
+ case 7:
29
+ return import("./lesson-07-DjCMCYkK.js");
30
+ default:
31
+ throw new Error(`Lesson ${o} not found`);
32
+ }
33
+ }
34
+ const e = n(t, r), s = e.loadLesson.bind(e), a = e.loadAllLessons.bind(e), i = e.getAvailableLessons.bind(e), c = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
35
+ __proto__: null,
36
+ config: t,
37
+ getAvailableLessons: i,
38
+ loadAllLessons: a,
39
+ loadLesson: s,
40
+ loader: e
41
+ }, Symbol.toStringTag, { value: "Module" }));
42
+ export {
43
+ a,
44
+ s as b,
45
+ t as c,
46
+ i as g,
47
+ c as i,
48
+ e as l
49
+ };
50
+ //# sourceMappingURL=index-vuRo2mLK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-vuRo2mLK.js","sources":["../src/syllabi/travel/index.ts"],"sourcesContent":["/**\n * Thai Travel syllabus\n */\n\nimport { createContentLoader, type SyllabusConfig, type ContentLoader } from '@syllst/content-shared';\n\nexport const config: SyllabusConfig = {\n id: 'th-travel',\n title: 'การเดินทาง (Thai Travel)',\n description: 'Travel vocabulary and directions',\n language: 'th',\n locale: 'th-TH',\n lessonCount: 7,\n difficulty: 'beginner',\n cefrLevel: 'A2',\n icon: 'travel',\n version: '0.1.0',\n};\n\nasync function loadLessonMDX(lessonNumber: number) {\n switch (lessonNumber) {\n case 1: return import('./lessons/lesson-01.mdx?raw');\n case 2: return import('./lessons/lesson-02.mdx?raw');\n case 3: return import('./lessons/lesson-03.mdx?raw');\n case 4: return import('./lessons/lesson-04.mdx?raw');\n case 5: return import('./lessons/lesson-05.mdx?raw');\n case 6: return import('./lessons/lesson-06.mdx?raw');\n case 7: return import('./lessons/lesson-07.mdx?raw');\n default: throw new Error(`Lesson ${lessonNumber} not found`);\n }\n}\n\nexport const loader: ContentLoader = createContentLoader(config, loadLessonMDX);\nexport const loadLesson = loader.loadLesson.bind(loader);\nexport const loadAllLessons = loader.loadAllLessons.bind(loader);\nexport const getAvailableLessons = loader.getAvailableLessons.bind(loader);\n"],"names":["config","loadLessonMDX","lessonNumber","loader","createContentLoader","loadLesson","loadAllLessons","getAvailableLessons"],"mappings":";AAMO,MAAMA,IAAyB;AAAA,EACpC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,aAAa;AAAA,EACb,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,MAAM;AAAA,EACN,SAAS;AACX;AAEA,eAAeC,EAAcC,GAAsB;AACjD,UAAQA,GAAA;AAAA,IACN,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD,KAAK;AAAG,aAAO,OAAO,yBAA6B;AAAA,IACnD;AAAS,YAAM,IAAI,MAAM,UAAUA,CAAY,YAAY;AAAA,EAAA;AAE/D;AAEO,MAAMC,IAAwBC,EAAoBJ,GAAQC,CAAa,GACjEI,IAAaF,EAAO,WAAW,KAAKA,CAAM,GAC1CG,IAAiBH,EAAO,eAAe,KAAKA,CAAM,GAClDI,IAAsBJ,EAAO,oBAAoB,KAAKA,CAAM;;;;;;;;"}