lido-player 0.0.2-beta-24 → 0.0.2-beta-26-dev

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 (240) hide show
  1. package/LICENSE +21 -21
  2. package/dist/cjs/{decode-BCvdWRyT.js → decode-CE64w_Pc.js} +1 -1
  3. package/dist/cjs/{index-DjM03fsg.js → index-Cf9LHdIw.js} +238 -87
  4. package/dist/cjs/{index-DBCFoh1I.js → index-DnaH8sO-.js} +1 -1
  5. package/dist/cjs/index.cjs.js +2 -2
  6. package/dist/cjs/lido-avatar_22.cjs.entry.js +214 -53
  7. package/dist/cjs/lido-player.cjs.js +2 -2
  8. package/dist/cjs/loader.cjs.js +2 -2
  9. package/dist/collection/components/avatar/lido-avatar.css +4 -4
  10. package/dist/collection/components/avatar/lido-avatar.js +1 -1
  11. package/dist/collection/components/avatar/lido-avatar.tsx +214 -214
  12. package/dist/collection/components/avatar/readme.md +49 -49
  13. package/dist/collection/components/calculator/lido-calculator.css +89 -89
  14. package/dist/collection/components/calculator/lido-calculator.js +2 -2
  15. package/dist/collection/components/canvas/lido-canvas.css +33 -33
  16. package/dist/collection/components/canvas/lido-canvas.js +1 -1
  17. package/dist/collection/components/cell/lido-cell.css +100 -100
  18. package/dist/collection/components/cell/lido-cell.js +12 -12
  19. package/dist/collection/components/column/lido-col.css +19 -19
  20. package/dist/collection/components/column/lido-col.js +6 -6
  21. package/dist/collection/components/container/lido-container.css +34 -10
  22. package/dist/collection/components/container/lido-container.js +55 -9
  23. package/dist/collection/components/flashCard/lido-flash-card.css +72 -72
  24. package/dist/collection/components/flashCard/lido-flash-card.js +84 -15
  25. package/dist/collection/components/float/lido-float.css +30 -30
  26. package/dist/collection/components/float/lido-float.js +2 -2
  27. package/dist/collection/components/home/lido-home.css +309 -309
  28. package/dist/collection/components/home/lido-home.js +38 -14
  29. package/dist/collection/components/image/lido-image.css +17 -17
  30. package/dist/collection/components/image/lido-image.js +6 -6
  31. package/dist/collection/components/keyboard/lido-keyboard.css +38 -38
  32. package/dist/collection/components/keyboard/lido-keyboard.js +3 -3
  33. package/dist/collection/components/mathMatrix/lido-math-matrix.css +56 -56
  34. package/dist/collection/components/mathMatrix/lido-math-matrix.js +1 -1
  35. package/dist/collection/components/position/lido-pos.css +16 -16
  36. package/dist/collection/components/position/lido-pos.js +2 -2
  37. package/dist/collection/components/random/lido-random.css +8 -8
  38. package/dist/collection/components/random/lido-random.js +2 -2
  39. package/dist/collection/components/root/lido-root.js +6 -6
  40. package/dist/collection/components/row/lido-row.css +10 -10
  41. package/dist/collection/components/row/lido-row.js +6 -6
  42. package/dist/collection/components/scale/assets/Shadow.svg +9 -9
  43. package/dist/collection/components/scale/lido-balance.css +174 -174
  44. package/dist/collection/components/scale/lido-balance.js +13 -13
  45. package/dist/collection/components/shape/lido-shape.css +216 -216
  46. package/dist/collection/components/shape/lido-shape.js +6 -6
  47. package/dist/collection/components/slideFill/lido-slide-fill.css +3 -3
  48. package/dist/collection/components/slideFill/lido-slide-fill.js +13 -13
  49. package/dist/collection/components/text/lido-text.css +53 -53
  50. package/dist/collection/components/text/lido-text.js +6 -6
  51. package/dist/collection/components/trace/assets/Tracing-hand.svg +8 -8
  52. package/dist/collection/components/trace/lido-trace.css +97 -97
  53. package/dist/collection/components/trace/lido-trace.js +2 -2
  54. package/dist/collection/components/wrap/lido-wrap.css +18 -18
  55. package/dist/collection/components/wrap/lido-wrap.js +6 -6
  56. package/dist/collection/css/animation.css +211 -211
  57. package/dist/collection/css/index.css +323 -323
  58. package/dist/collection/stories/Templates/Fill-Up/fill-up.stories.js +61 -61
  59. package/dist/collection/stories/Templates/LetterPairing/LetterPairing.stories.js +123 -123
  60. package/dist/collection/stories/Templates/RocketGame/rocketGame.stories.js +48 -48
  61. package/dist/collection/stories/Templates/Tag/tagGame.stories.js +39 -39
  62. package/dist/collection/stories/Templates/arrangeLetters/arrangeLetters.stories.js +44 -44
  63. package/dist/collection/stories/Templates/balancing/balancing.stories.js +35 -35
  64. package/dist/collection/stories/Templates/balloonPop/balloonPop.stories.js +38 -38
  65. package/dist/collection/stories/Templates/blender/blender.stories.js +59 -59
  66. package/dist/collection/stories/Templates/bubbleType/bubbleType.stories.js +42 -42
  67. package/dist/collection/stories/Templates/calculator/calculator.stories.js +28 -28
  68. package/dist/collection/stories/Templates/categorize/categorize.stories.js +37 -37
  69. package/dist/collection/stories/Templates/categorize2/categorize2.stories.js +67 -67
  70. package/dist/collection/stories/Templates/checker-block/checkerBlock.stories.js +29 -29
  71. package/dist/collection/stories/Templates/checkerBlock/checkerBlock.stories.js +13 -13
  72. package/dist/collection/stories/Templates/create-sentence/createSentence.stories.js +74 -74
  73. package/dist/collection/stories/Templates/dragAndDrop/drag-drop.stories.js +69 -69
  74. package/dist/collection/stories/Templates/fillAnswer/fill-answer.stories.js +43 -43
  75. package/dist/collection/stories/Templates/fillBlank/fill-blank.stories.js +282 -282
  76. package/dist/collection/stories/Templates/foodJar/food-jar.stories.js +35 -35
  77. package/dist/collection/stories/Templates/grid/grid.stories.js +118 -118
  78. package/dist/collection/stories/Templates/gridGame/grid-game.stories.js +57 -57
  79. package/dist/collection/stories/Templates/imageMatch/imageMatch.stories.js +44 -44
  80. package/dist/collection/stories/Templates/jumpSentence/jumpSentence.stories.js +41 -41
  81. package/dist/collection/stories/Templates/letterboard/letterboard.stories.js +183 -183
  82. package/dist/collection/stories/Templates/makeSentence/make-sentence.stories.js +36 -36
  83. package/dist/collection/stories/Templates/matchBox/matchBox.stories.js +69 -69
  84. package/dist/collection/stories/Templates/matchBox/matchBox2.stories.js +84 -84
  85. package/dist/collection/stories/Templates/matchingCard/matching-card.stories.js +31 -31
  86. package/dist/collection/stories/Templates/multipleOption/mcqWithQuestionImage.stories.js +112 -112
  87. package/dist/collection/stories/Templates/multipleOption/multiple-option.stories.js +47 -47
  88. package/dist/collection/stories/Templates/multiplyBeeds/multiplyBeeds.stories.js +57 -57
  89. package/dist/collection/stories/Templates/nimbleTable/nimbleTable.stories.js +53 -53
  90. package/dist/collection/stories/Templates/numberBoard/numberBoard.stories.js +46 -46
  91. package/dist/collection/stories/Templates/numberBoardTwo/numberBoardTwo.stories.js +45 -45
  92. package/dist/collection/stories/Templates/numberIdentification/numberIdentificationimageTotext.stories.js +56 -56
  93. package/dist/collection/stories/Templates/numberIdentification/numberIdentificationtextTotext.stories.js +53 -53
  94. package/dist/collection/stories/Templates/numberPair/numberPair.stories.js +127 -127
  95. package/dist/collection/stories/Templates/openwindow/openwindow.stories.js +47 -47
  96. package/dist/collection/stories/Templates/openwindow/openwindow2.stories.js +38 -38
  97. package/dist/collection/stories/Templates/order-tractor/order-tractor-ascending-order.stories.js +97 -97
  98. package/dist/collection/stories/Templates/order-tractor/order-tractor.stories.js +90 -90
  99. package/dist/collection/stories/Templates/palEgmaCalculateSum/palEgmaMultiOption.stories.js +63 -63
  100. package/dist/collection/stories/Templates/palEgmaCalculateSum/palEgmaSumTogether.stories.js +45 -45
  101. package/dist/collection/stories/Templates/palEgmaPatternMatching/palEgmaPatternMatching.stories.js +63 -63
  102. package/dist/collection/stories/Templates/palEgmaWordProblem/palEgmaWordProblem.stories.js +79 -79
  103. package/dist/collection/stories/Templates/palEgraInventedSpelling/pal_egra_invented_spelling_schema.stories.js +32 -32
  104. package/dist/collection/stories/Templates/palEgraMCQWithImage/palEgraMCQWithImage.stories.js +42 -42
  105. package/dist/collection/stories/Templates/palEgraOptionWithAudio/palEgraOptionWithAudio.stories.js +63 -63
  106. package/dist/collection/stories/Templates/palEgraStoryMaking/pal_egra_story_making.stories.js +44 -44
  107. package/dist/collection/stories/Templates/palEgraTemplate1/palEgraLetterIdentification.stories.js +34 -34
  108. package/dist/collection/stories/Templates/palEgraWordMatch/palEgraWordMatch.stories.js +52 -52
  109. package/dist/collection/stories/Templates/palEgra_OddOneOut/palEgra_oddOneOut.stories.js +33 -33
  110. package/dist/collection/stories/Templates/palEgra_arrange_pictures/palEgra_arrange_pictures.stories.js +40 -40
  111. package/dist/collection/stories/Templates/palEgra_build_word/palEgra_build_word.stories.js +48 -48
  112. package/dist/collection/stories/Templates/palEgra_word_formation/palEgra_WordFormation.stories.js +48 -48
  113. package/dist/collection/stories/Templates/palStorytale/palStorytale.stories.js +18 -18
  114. package/dist/collection/stories/Templates/phonic-tractor/phonic-tractor.stories.js +44 -44
  115. package/dist/collection/stories/Templates/pictureClues/pictureClues.stories.js +34 -34
  116. package/dist/collection/stories/Templates/pictureWordMatch/pictureWordMatch1.stories.js +36 -36
  117. package/dist/collection/stories/Templates/pictureWordMatch/pictureWordMatch2.stories.js +30 -30
  118. package/dist/collection/stories/Templates/picturemeaning/pictureMeaningCocos.stories.js +20 -20
  119. package/dist/collection/stories/Templates/puzzleGame/puzzleGame.stories.js +17 -17
  120. package/dist/collection/stories/Templates/questionBoard/questionBoard.stories.js +58 -58
  121. package/dist/collection/stories/Templates/quizLiteracy/quizLiteracy.stories.js +50 -50
  122. package/dist/collection/stories/Templates/quizLiteracy/quizLiteracyImageWithText.stories.js +36 -36
  123. package/dist/collection/stories/Templates/quizLiteracy/quizLiteracyImageWord.stories.js +43 -43
  124. package/dist/collection/stories/Templates/quizMaths/quizMaths.stories.js +633 -633
  125. package/dist/collection/stories/Templates/reorder/reorder.stories.js +63 -63
  126. package/dist/collection/stories/Templates/rowBlocks/rowBlocks.stories.js +47 -47
  127. package/dist/collection/stories/Templates/sentenceMatch/sentenceMatch.stories.js +29 -29
  128. package/dist/collection/stories/Templates/sequenceBox/sequenceBox1.stories.js +64 -64
  129. package/dist/collection/stories/Templates/sequenceBox/sequenceBox2.stories.js +62 -62
  130. package/dist/collection/stories/Templates/shapePair/shape-pair.stories.js +106 -106
  131. package/dist/collection/stories/Templates/shapeTractor/shape-tractor.stories.js +50 -50
  132. package/dist/collection/stories/Templates/spellDoor/spellDoor.stories.js +41 -41
  133. package/dist/collection/stories/Templates/storyTale/storyTale.stories.js +39 -39
  134. package/dist/collection/stories/Templates/substraction/substractionWithimg.stories.js +62 -62
  135. package/dist/collection/stories/Templates/substraction/substractionWithoutImg.stories.js +42 -42
  136. package/dist/collection/stories/Templates/sumTogether/sumTogether.stories.js +50 -50
  137. package/dist/collection/stories/Templates/tenBox/tenBox.stories.js +88 -88
  138. package/dist/collection/stories/Templates/total/total.stories.js +28 -28
  139. package/dist/collection/stories/Templates/wordBuilding/wordBuildingwithimg.stories.js +35 -35
  140. package/dist/collection/stories/Templates/wordBuilding/wordBuildingwithoutimg.stories.js +34 -34
  141. package/dist/collection/stories/Templates/writeCard/writeCard.stories.js +31 -31
  142. package/dist/collection/stories/Templates/writeLetter/writeLetter.stories.js +58 -58
  143. package/dist/collection/stories/Templates/writeNumber/writeNumber.stories.js +44 -44
  144. package/dist/collection/stories/Templates/writeSet/writeSet.stories.js +31 -31
  145. package/dist/collection/stories/Templates/writeWord/writeWord.stories.js +34 -34
  146. package/dist/collection/stories/components/flash-card.stories.js +48 -48
  147. package/dist/collection/stories/components/keyboard.stories.js +10 -10
  148. package/dist/collection/stories/components/slider.stories.js +4 -4
  149. package/dist/collection/stories/components/trace.stories.js +5 -5
  150. package/dist/collection/utils/audioPlayer.js +10 -3
  151. package/dist/collection/utils/constants.js +6 -0
  152. package/dist/collection/utils/utils.js +109 -14
  153. package/dist/collection/utils/utilsHandlers/dragDropHandler.js +8 -8
  154. package/dist/collection/utils/utilsHandlers/highlightHandler.js +54 -54
  155. package/dist/collection/utils/utilsHandlers/slideHandler.js +58 -19
  156. package/dist/collection/utils/utilsHandlers/sortHandler.js +10 -10
  157. package/dist/components/index.js +1 -1
  158. package/dist/components/lido-avatar.js +1 -1
  159. package/dist/components/lido-balance.js +1 -1
  160. package/dist/components/lido-calculator.js +1 -1
  161. package/dist/components/lido-canvas.js +1 -1
  162. package/dist/components/lido-cell.js +1 -1
  163. package/dist/components/lido-col.js +1 -1
  164. package/dist/components/lido-container.js +1 -1
  165. package/dist/components/lido-flash-card.js +1 -1
  166. package/dist/components/lido-float.js +1 -1
  167. package/dist/components/lido-home.js +1 -1
  168. package/dist/components/lido-image.js +1 -1
  169. package/dist/components/lido-keyboard.js +1 -1
  170. package/dist/components/lido-math-matrix.js +1 -1
  171. package/dist/components/lido-pos.js +1 -1
  172. package/dist/components/lido-random.js +1 -1
  173. package/dist/components/lido-root.js +1 -1
  174. package/dist/components/lido-row.js +1 -1
  175. package/dist/components/lido-shape.js +1 -1
  176. package/dist/components/lido-slide-fill.js +1 -1
  177. package/dist/components/lido-text.js +1 -1
  178. package/dist/components/lido-trace.js +1 -1
  179. package/dist/components/lido-wrap.js +1 -1
  180. package/dist/components/p-B4iWvszS.js +1 -0
  181. package/dist/components/{p-C5jvgiPE.js → p-BA-XmR9g.js} +1 -1
  182. package/dist/components/p-BJt-z8VW.js +1 -0
  183. package/dist/components/{p-CTlcpv4a.js → p-BfwUqpXc.js} +1 -1
  184. package/dist/components/{p-DNo3iX_r.js → p-BiBt9LGP.js} +1 -1
  185. package/dist/components/{p-DG0KR2iN.js → p-BlN0IsR4.js} +1 -1
  186. package/dist/components/{p-CFPSty2U.js → p-BpVpANK9.js} +1 -1
  187. package/dist/components/{p-CgsPIpg0.js → p-Bw-OC9iR.js} +1 -1
  188. package/dist/components/p-C2J7-bcH.js +1 -0
  189. package/dist/components/{p-CFWohOId.js → p-CEmofYPx.js} +1 -1
  190. package/dist/components/{p-C5WmmkI6.js → p-CPYnt0P-.js} +1 -1
  191. package/dist/components/{p-CsDu4kiC.js → p-ChfVUoX4.js} +1 -1
  192. package/dist/components/p-CnQ-4EIw.js +1 -0
  193. package/dist/components/{p-CXHPZN3m.js → p-CyGxEcn7.js} +1 -1
  194. package/dist/components/{p-C-pHQRbp.js → p-D1cBkIab.js} +1 -1
  195. package/dist/components/p-DP6jQ5ML.js +1 -0
  196. package/dist/components/{p-Bv1hunWk.js → p-DV-k1ulI.js} +1 -1
  197. package/dist/components/p-Qhj9-H6e.js +12 -0
  198. package/dist/components/{p-Bh_vemY3.js → p-hUfX1As2.js} +1 -1
  199. package/dist/components/p-leIEepjl.js +1 -0
  200. package/dist/components/{p-B8nzzM8c.js → p-s4oGlKg6.js} +1 -1
  201. package/dist/components/{p-C70ykycD.js → p-useuhkjH.js} +1 -1
  202. package/dist/esm/{decode-BxzUG5XP.js → decode-DhjaTUf2.js} +1 -1
  203. package/dist/esm/{index-C_uxZLF-.js → index-Bc6Y7rds.js} +235 -88
  204. package/dist/esm/{index-mMpK8062.js → index-Dvjbti-h.js} +1 -1
  205. package/dist/esm/index.js +2 -2
  206. package/dist/esm/lido-avatar_22.entry.js +214 -53
  207. package/dist/esm/lido-player.js +3 -3
  208. package/dist/esm/loader.js +3 -3
  209. package/dist/lido-player/assets/Shadow.svg +9 -9
  210. package/dist/lido-player/assets/Tracing-hand.svg +8 -8
  211. package/dist/lido-player/index.esm.js +1 -1
  212. package/dist/lido-player/lido-avatar.css +4 -4
  213. package/dist/lido-player/lido-avatar.tsx +214 -214
  214. package/dist/lido-player/lido-player.css +7 -7
  215. package/dist/lido-player/lido-player.esm.js +1 -1
  216. package/dist/lido-player/{p-CsCr7DlS.js → p-CORilAH-.js} +1 -1
  217. package/dist/lido-player/p-D66K5DXn.js +1 -0
  218. package/dist/lido-player/p-Dvjbti-h.js +2 -0
  219. package/dist/lido-player/p-ca195982.entry.js +12 -0
  220. package/dist/lido-player/readme.md +49 -49
  221. package/dist/types/components/container/lido-container.d.ts +7 -0
  222. package/dist/types/components/flashCard/lido-flash-card.d.ts +2 -0
  223. package/dist/types/components.d.ts +1 -0
  224. package/dist/types/types/json.d.ts +3 -3
  225. package/dist/types/utils/audioPlayer.d.ts +1 -1
  226. package/dist/types/utils/constants.d.ts +2 -0
  227. package/dist/types/utils/utils.d.ts +11 -0
  228. package/dist/types/utils/utilsHandlers/slideHandler.d.ts +1 -1
  229. package/package.json +73 -73
  230. package/readme.md +113 -113
  231. package/dist/components/p-CgBwmr9A.js +0 -12
  232. package/dist/components/p-Ckb8QhUV.js +0 -1
  233. package/dist/components/p-DDwqmTYM.js +0 -1
  234. package/dist/components/p-DLyacZap.js +0 -1
  235. package/dist/components/p-DONbWJGn.js +0 -1
  236. package/dist/components/p-DXy70SGv.js +0 -1
  237. package/dist/components/p-Gwko4CTL.js +0 -1
  238. package/dist/lido-player/p-00993d1a.entry.js +0 -12
  239. package/dist/lido-player/p-mMpK8062.js +0 -2
  240. package/dist/lido-player/p-v3GBrpv9.js +0 -1
@@ -50,39 +50,39 @@ function getContainerXml(args) {
50
50
  console.error('Trace image is missing');
51
51
  return '';
52
52
  }
53
- return `
54
- <main>
55
- <lido-container id="lido-container" tab-index="1" objective="writeWord" value="mainContainer1" bg-image="https://aeakbcdznktpsbrfsgys.supabase.co/storage/v1/object/public/template-assets/background-images/Write%20word.png" height="100%" width="100%" bg-color="transparent" visible="true" onCorrect="lido-avatar.avatarAnimate='Success'; this.sleep='2000';" onEntry="this.justifyContent='space-around';" onInCorrect="lido-avatar.avatarAnimate='Fail'; this.sleep='2000';" show-check="false" is-continue-on-correct="true" is-allow-only-correct="${isAllowOnlyCorrect}" after-drop="false">
56
-
57
- <!-- Chimple Avatar -->
58
- <lido-cell layout="pos" id="pos1" disable-edit="true" value="pos1" height="landscape.600px, portrait.700px" width="landscape.393px, portrait.485px" x="landscape.1200px, portrait.450px" y="landscape.390px, portrait.1020px" aria-hidden="true" z="1" bg-color="transparent" visible="true" onEntry="this.flex-shrink='0';">
59
- <lido-avatar id="lido-avatar" disable-edit="true" visible="true" height="inherit" width="inherit" src="https://aeakbcdznktpsbrfsgys.supabase.co/storage/v1/object/public/template-assets/temp2/chimplecharacter.riv" altText="{chimpleCharacterRive}" onEntry="">
60
- </lido-avatar>
61
- <lido-image id="image" disable-edit="true" value="image" visible="true" src="https://aeakbcdznktpsbrfsgys.supabase.co/storage/v1/object/public/template-assets/temp2/Shadow.png" bg-color="transparent" width="inherit" height="27px" x="landscape.-7px, portrait.-7px" y="landscape.450px, portrait.540px" altText="{shadowImage}">
62
- </lido-image>
63
- </lido-cell>
64
-
65
-
66
-
67
- <lido-cell layout="col" visible="true" width="landscape.70%, portrait.70%" height="landscape.84%, portrait.60%" bg-color="transparent" margin="landscape.-35px 0px -35px 0px, portrait.-400px 0px -40px 0px" onEntry="this.padding='4px 0px 16px 0px';">
68
- <lido-image visible="true" src="${topDisplayImage}" z="1" width="landscape.570px, portrait.570px" height="landscape.225px, portrait.225px" onEntry="this.flex-shrink='0';" altText="{image1}">
69
- <!-- text-element -->
70
- <lido-cell layout="pos" display="flex" id="pos1" disable-edit="true" value="pos1" height="landscape.80px, portrait.80px" width="landscape.525px, portrait.525px" x="landscape.545px, portrait.300px" y="landscape.125px, portrait.190px" aria-hidden="true" bg-color="transparent" visible="true" onEntry="this.z-index='2'; this.align-items='center'; this.justify-content='center'; this.display='flex';">
71
- <lido-text id="txt1" tab-index="2" span-type="${spanType}" audio="" width="525px" height="80px" onEntry="this.text-align='center'; this.justify-content='center'; this.flex-shrink='0'; this.fontWeight='600';" font="'Baloo Bhai 2'" font-size="96px" z="1" font-color="black" color=" #000000" string="${text}" visible="true" y="landscape., portrait." bg-color="transparent">
72
- </lido-text>
73
- </lido-cell>
74
- </lido-image>
75
-
76
- <lido-image visible="true" src="${bottomDisplayImage}" z="1" width="landscape.574px, portrait.760px" height="landscape.574px, portrait.760px" onEntry="this.flex-shrink='0';" altText="{image1}">
77
- </lido-image>
78
- </lido-cell>
79
-
80
- <!-- trace element -->
81
- <lido-cell layout="pos" id="pos2" disable-edit="true" value="pos2" height="landscape.500px, portrait.500px" width="landscape.550px, portrait.550px" x="landscape.510px, portrait.75px" y="landscape.305px, portrait.475px" aria-hidden="true" z="1" bg-color="transparent" visible="true" onEntry="trace1.visibility='visible'; this.flex-shrink='0';">
82
- <lido-trace id="trace1" audio="https://aeakbcdznktpsbrfsgys.supabase.co/storage/v1/object/public/template-assets/Audios/B.wav; https://aeakbcdznktpsbrfsgys.supabase.co/storage/v1/object/public/template-assets/Audios/U.wav; https://aeakbcdznktpsbrfsgys.supabase.co/storage/v1/object/public/template-assets/Audios/G.wav" animationTrace="true" highlightTextId="txt1" tab-index="3" value="a" visible="true" svg-source="${traceImage1}; ${traceImage2}; ${traceImage3}" onCorrect="this.sleep='2000'; txt1.speak='true';" mode="${traceMode}" z="1" x="25px" y="25px" width="landscape.500px, portrait.675px" height="landscape.500px, portrait.500px" altText="{backgroundImage}">
83
- </lido-trace>
84
- </lido-cell>
85
- </lido-container>
86
- </main>
53
+ return `
54
+ <main>
55
+ <lido-container highlight-word-by-word="true" id="lido-container" tab-index="1" objective="writeWord" value="mainContainer1" bg-image="https://aeakbcdznktpsbrfsgys.supabase.co/storage/v1/object/public/template-assets/background-images/Write%20word.png" height="100%" width="100%" bg-color="transparent" visible="true" onCorrect="lido-avatar.avatarAnimate='Success'; this.sleep='2000';" onEntry="this.justifyContent='space-around';" onInCorrect="lido-avatar.avatarAnimate='Fail'; this.sleep='2000';" show-check="false" is-continue-on-correct="true" is-allow-only-correct="${isAllowOnlyCorrect}" after-drop="false">
56
+
57
+ <!-- Chimple Avatar -->
58
+ <lido-cell layout="pos" id="pos1" disable-edit="true" value="pos1" height="landscape.600px, portrait.700px" width="landscape.393px, portrait.485px" x="landscape.1200px, portrait.450px" y="landscape.390px, portrait.1020px" aria-hidden="true" z="1" bg-color="transparent" visible="true" onEntry="this.flex-shrink='0';">
59
+ <lido-avatar id="lido-avatar" disable-edit="true" visible="true" height="inherit" width="inherit" src="https://aeakbcdznktpsbrfsgys.supabase.co/storage/v1/object/public/template-assets/temp2/chimplecharacter.riv" altText="{chimpleCharacterRive}" onEntry="">
60
+ </lido-avatar>
61
+ <lido-image id="image" disable-edit="true" value="image" visible="true" src="https://aeakbcdznktpsbrfsgys.supabase.co/storage/v1/object/public/template-assets/temp2/Shadow.png" bg-color="transparent" width="inherit" height="27px" x="landscape.-7px, portrait.-7px" y="landscape.450px, portrait.540px" altText="{shadowImage}">
62
+ </lido-image>
63
+ </lido-cell>
64
+
65
+
66
+
67
+ <lido-cell layout="col" visible="true" width="landscape.70%, portrait.70%" height="landscape.84%, portrait.60%" bg-color="transparent" margin="landscape.-35px 0px -35px 0px, portrait.-400px 0px -40px 0px" onEntry="this.padding='4px 0px 16px 0px';">
68
+ <lido-image visible="true" src="${topDisplayImage}" z="1" width="landscape.570px, portrait.570px" height="landscape.225px, portrait.225px" onEntry="this.flex-shrink='0';" altText="{image1}">
69
+ <!-- text-element -->
70
+ <lido-cell layout="pos" display="flex" id="pos1" disable-edit="true" value="pos1" height="landscape.80px, portrait.80px" width="landscape.525px, portrait.525px" x="landscape.545px, portrait.300px" y="landscape.125px, portrait.190px" aria-hidden="true" bg-color="transparent" visible="true" onEntry="this.z-index='2'; this.align-items='center'; this.justify-content='center'; this.display='flex';">
71
+ <lido-text id="txt1" tab-index="2" span-type="${spanType}" audio="" width="525px" height="80px" onEntry="this.text-align='center'; this.justify-content='center'; this.flex-shrink='0'; this.fontWeight='600';" font="'Baloo Bhai 2'" font-size="96px" z="1" font-color="black" color=" #000000" string="${text}" visible="true" y="landscape., portrait." bg-color="transparent">
72
+ </lido-text>
73
+ </lido-cell>
74
+ </lido-image>
75
+
76
+ <lido-image visible="true" src="${bottomDisplayImage}" z="1" width="landscape.574px, portrait.760px" height="landscape.574px, portrait.760px" onEntry="this.flex-shrink='0';" altText="{image1}">
77
+ </lido-image>
78
+ </lido-cell>
79
+
80
+ <!-- trace element -->
81
+ <lido-cell layout="pos" id="pos2" disable-edit="true" value="pos2" height="landscape.500px, portrait.500px" width="landscape.550px, portrait.550px" x="landscape.510px, portrait.75px" y="landscape.305px, portrait.475px" aria-hidden="true" z="1" bg-color="transparent" visible="true" onEntry="trace1.visibility='visible'; this.flex-shrink='0';">
82
+ <lido-trace id="trace1" audio="https://aeakbcdznktpsbrfsgys.supabase.co/storage/v1/object/public/template-assets/Audios/B.wav; https://aeakbcdznktpsbrfsgys.supabase.co/storage/v1/object/public/template-assets/Audios/U.wav; https://aeakbcdznktpsbrfsgys.supabase.co/storage/v1/object/public/template-assets/Audios/G.wav" animationTrace="true" highlightTextId="txt1" tab-index="3" value="a" visible="true" svg-source="${traceImage1}; ${traceImage2}; ${traceImage3}" onCorrect="this.sleep='2000'; txt1.speak='true';" mode="${traceMode}" z="1" x="25px" y="25px" width="landscape.500px, portrait.675px" height="landscape.500px, portrait.500px" altText="{backgroundImage}">
83
+ </lido-trace>
84
+ </lido-cell>
85
+ </lido-container>
86
+ </main>
87
87
  `;
88
88
  }
@@ -10,21 +10,21 @@ export default meta;
10
10
  export const FrontTextBackCol = {
11
11
  args: {},
12
12
  render: _ => {
13
- const xml = `<main>
14
- <lido-container id="lido-container" tab-index="1" value="mainContainer3" objective="lion,crocodile,cow" bg-color="#B1BEFD" aria-label="" height="100vh" width="100vw" x="0" y="0" z="0" visible="true" audio="background1.mp3" onTouch="" onCorrect="lido-avatar.avatarAnimate='Success'; this.sleep='2000'; this.removeClone='.cloned-element'" onEntry="" onInCorrect="lido-avatar.avatarAnimate='Fail'; this.sleep='2000';" show-check="false" is-continue-on-correct="true" dropAttr="diagonal">
15
- <lido-row visible="true" width="landscape.100%, portrait.338px" onEntry="" height="landscape.100%, portrait." y="landscape.340px, portrait.300px" x="landscape.,portrait.520px" direction="landscape.row, portrait.column">
16
- <lido-flash-card x="50" y="200" width="220px" height="140px">
17
- <lido-text slot="front" width="400px" height="200px" display="flex" onEntry="" font-family="" font-size="48px" z="1" font-color="black" fontWeight="bold" color="#000000" string="lion" visible="true" y="landscape.35px, portrait.15px" bg-color="red">
18
- </lido-text>
19
- <lido-col id="col5" slot="back" disable-edit="true" visible="true" width="300px" height="400px" bg-color="orange" type="" tab-index="6" dropAttr="diagonal" value="cat" onEntry="this.position='relative';" y="landscape.-50px,portrait.">
20
- <lido-image visible="true" src="https://i0.wp.com/pixahive.com/wp-content/uploads/2021/02/Yellow-pattern-abstract-background-wallpaper-325431-pixahive.jpg?fit=778%2C435ssl=1" z="0" width="200px" height="300px" onEntry="">
21
- </lido-image>
22
- <lido-text width="300px" height="200px" display="flex" onEntry="" font-family="" font-size="48px" z="1" font-color="black" fontWeight="bold" color="#000000" string="tiger" visible="true" y="landscape.35px, portrait.15px" bg-color="yellow">
23
- </lido-text>
24
- </lido-col>
25
- </lido-flash-card>
26
- </lido-row>
27
- </lido-container>
13
+ const xml = `<main>
14
+ <lido-container highlight-word-by-word="true" id="lido-container" tab-index="1" value="mainContainer3" objective="lion,crocodile,cow" bg-color="#B1BEFD" aria-label="" height="100vh" width="100vw" x="0" y="0" z="0" visible="true" audio="background1.mp3" onTouch="" onCorrect="lido-avatar.avatarAnimate='Success'; this.sleep='2000'; this.removeClone='.cloned-element'" onEntry="" onInCorrect="lido-avatar.avatarAnimate='Fail'; this.sleep='2000';" show-check="false" is-continue-on-correct="true" dropAttr="diagonal">
15
+ <lido-row visible="true" width="landscape.100%, portrait.338px" onEntry="" height="landscape.100%, portrait." y="landscape.340px, portrait.300px" x="landscape.,portrait.520px" direction="landscape.row, portrait.column">
16
+ <lido-flash-card x="50" y="200" width="220px" height="140px">
17
+ <lido-text slot="front" width="400px" height="200px" display="flex" onEntry="" font-family="" font-size="48px" z="1" font-color="black" fontWeight="bold" color="#000000" string="lion" visible="true" y="landscape.35px, portrait.15px" bg-color="red">
18
+ </lido-text>
19
+ <lido-col id="col5" slot="back" disable-edit="true" visible="true" width="300px" height="400px" bg-color="orange" type="" tab-index="6" dropAttr="diagonal" value="cat" onEntry="this.position='relative';" y="landscape.-50px,portrait.">
20
+ <lido-image visible="true" src="https://i0.wp.com/pixahive.com/wp-content/uploads/2021/02/Yellow-pattern-abstract-background-wallpaper-325431-pixahive.jpg?fit=778%2C435ssl=1" z="0" width="200px" height="300px" onEntry="">
21
+ </lido-image>
22
+ <lido-text width="300px" height="200px" display="flex" onEntry="" font-family="" font-size="48px" z="1" font-color="black" fontWeight="bold" color="#000000" string="tiger" visible="true" y="landscape.35px, portrait.15px" bg-color="yellow">
23
+ </lido-text>
24
+ </lido-col>
25
+ </lido-flash-card>
26
+ </lido-row>
27
+ </lido-container>
28
28
  </main>`;
29
29
  return html `<lido-home xml-data="${xml}" xmlData="${xml}"></lido-home>`;
30
30
  },
@@ -32,17 +32,17 @@ export const FrontTextBackCol = {
32
32
  export const BothText = {
33
33
  args: {},
34
34
  render: _ => {
35
- const xml = `<main>
36
- <lido-container id="lido-container" tab-index="1" value="mainContainer3" objective="lion,crocodile,cow" bg-color="#B1BEFD" aria-label="" height="100vh" width="100vw" x="0" y="0" z="0" visible="true" audio="background1.mp3" onTouch="" onCorrect="lido-avatar.avatarAnimate='Success'; this.sleep='2000'; this.removeClone='.cloned-element'" onEntry="" onInCorrect="lido-avatar.avatarAnimate='Fail'; this.sleep='2000';" show-check="false" is-continue-on-correct="true" dropAttr="diagonal">
37
- <lido-row visible="true" width="landscape.100%, portrait.338px" onEntry="" height="landscape.100%, portrait." y="landscape.340px, portrait.300px" x="landscape.,portrait.520px" direction="landscape.row, portrait.column">
38
- <lido-flash-card x="50" y="200" width="220px" height="140px">
39
- <lido-text slot="front" width="400px" height="200px" display="flex" onEntry="" font-family="" font-size="48px" z="1" font-color="black" fontWeight="bold" color="#000000" string="lion" visible="true" y="landscape.35px, portrait.15px" bg-color="red">
40
- </lido-text>
41
- <lido-text slot="back" width="300px" height="200px" display="flex" onEntry="" font-family="" font-size="48px" z="1" font-color="black" fontWeight="bold" color="#000000" string="tiger" visible="true" y="landscape.35px, portrait.15px" bg-color="yellow">
42
- </lido-text>
43
- </lido-flash-card>
44
- </lido-row>
45
- </lido-container>
35
+ const xml = `<main>
36
+ <lido-container highlight-word-by-word="true" id="lido-container" tab-index="1" value="mainContainer3" objective="lion,crocodile,cow" bg-color="#B1BEFD" aria-label="" height="100vh" width="100vw" x="0" y="0" z="0" visible="true" audio="background1.mp3" onTouch="" onCorrect="lido-avatar.avatarAnimate='Success'; this.sleep='2000'; this.removeClone='.cloned-element'" onEntry="" onInCorrect="lido-avatar.avatarAnimate='Fail'; this.sleep='2000';" show-check="false" is-continue-on-correct="true" dropAttr="diagonal">
37
+ <lido-row visible="true" width="landscape.100%, portrait.338px" onEntry="" height="landscape.100%, portrait." y="landscape.340px, portrait.300px" x="landscape.,portrait.520px" direction="landscape.row, portrait.column">
38
+ <lido-flash-card x="50" y="200" width="220px" height="140px">
39
+ <lido-text slot="front" width="400px" height="200px" display="flex" onEntry="" font-family="" font-size="48px" z="1" font-color="black" fontWeight="bold" color="#000000" string="lion" visible="true" y="landscape.35px, portrait.15px" bg-color="red">
40
+ </lido-text>
41
+ <lido-text slot="back" width="300px" height="200px" display="flex" onEntry="" font-family="" font-size="48px" z="1" font-color="black" fontWeight="bold" color="#000000" string="tiger" visible="true" y="landscape.35px, portrait.15px" bg-color="yellow">
42
+ </lido-text>
43
+ </lido-flash-card>
44
+ </lido-row>
45
+ </lido-container>
46
46
  </main>`;
47
47
  return html `<lido-home xml-data="${xml}" xmlData="${xml}"></lido-home>`;
48
48
  },
@@ -50,17 +50,17 @@ export const BothText = {
50
50
  export const BothImages = {
51
51
  args: {},
52
52
  render: _ => {
53
- const xml = `<main>
54
- <lido-container id="lido-container" tab-index="1" value="mainContainer3" objective="lion,crocodile,cow" bg-color="#B1BEFD" aria-label="" height="100vh" width="100vw" x="0" y="0" z="0" visible="true" audio="background1.mp3" onTouch="" onCorrect="lido-avatar.avatarAnimate='Success'; this.sleep='2000'; this.removeClone='.cloned-element'" onEntry="" onInCorrect="lido-avatar.avatarAnimate='Fail'; this.sleep='2000';" show-check="false" is-continue-on-correct="true" dropAttr="diagonal">
55
- <lido-row visible="true" width="landscape.100%, portrait.338px" onEntry="" height="landscape.100%, portrait." y="landscape.340px, portrait.300px" x="landscape.,portrait.520px" direction="landscape.row, portrait.column">
56
- <lido-flash-card x="50" y="200" width="220px" height="140px">
57
- <lido-image visible="true" slot="front" src="https://aeakbcdznktpsbrfsgys.supabase.co/storage/v1/object/public/thumbnails/sticker/Bird_Blue.png" z="0" width="200px" height="300px" onEntry="">
58
- </lido-image>
59
- <lido-image visible="true" slot="back" src="https://aeakbcdznktpsbrfsgys.supabase.co/storage/v1/object/public/thumbnails/sticker/Boat.png" z="0" width="200px" height="300px" onEntry="">
60
- </lido-image>
61
- </lido-flash-card>
62
- </lido-row>
63
- </lido-container>
53
+ const xml = `<main>
54
+ <lido-container highlight-word-by-word="true" id="lido-container" tab-index="1" value="mainContainer3" objective="lion,crocodile,cow" bg-color="#B1BEFD" aria-label="" height="100vh" width="100vw" x="0" y="0" z="0" visible="true" audio="background1.mp3" onTouch="" onCorrect="lido-avatar.avatarAnimate='Success'; this.sleep='2000'; this.removeClone='.cloned-element'" onEntry="" onInCorrect="lido-avatar.avatarAnimate='Fail'; this.sleep='2000';" show-check="false" is-continue-on-correct="true" dropAttr="diagonal">
55
+ <lido-row visible="true" width="landscape.100%, portrait.338px" onEntry="" height="landscape.100%, portrait." y="landscape.340px, portrait.300px" x="landscape.,portrait.520px" direction="landscape.row, portrait.column">
56
+ <lido-flash-card x="50" y="200" width="220px" height="140px">
57
+ <lido-image visible="true" slot="front" src="https://aeakbcdznktpsbrfsgys.supabase.co/storage/v1/object/public/thumbnails/sticker/Bird_Blue.png" z="0" width="200px" height="300px" onEntry="">
58
+ </lido-image>
59
+ <lido-image visible="true" slot="back" src="https://aeakbcdznktpsbrfsgys.supabase.co/storage/v1/object/public/thumbnails/sticker/Boat.png" z="0" width="200px" height="300px" onEntry="">
60
+ </lido-image>
61
+ </lido-flash-card>
62
+ </lido-row>
63
+ </lido-container>
64
64
  </main>`;
65
65
  return html `<lido-home xml-data="${xml}" xmlData="${xml}"></lido-home>`;
66
66
  },
@@ -68,17 +68,17 @@ export const BothImages = {
68
68
  export const FrontImageBackText = {
69
69
  args: {},
70
70
  render: _ => {
71
- const xml = `<main>
72
- <lido-container id="lido-container" tab-index="1" value="mainContainer3" objective="lion,crocodile,cow" bg-color="#B1BEFD" aria-label="" height="100vh" width="100vw" x="0" y="0" z="0" visible="true" audio="background1.mp3" onTouch="" onCorrect="lido-avatar.avatarAnimate='Success'; this.sleep='2000'; this.removeClone='.cloned-element'" onEntry="" onInCorrect="lido-avatar.avatarAnimate='Fail'; this.sleep='2000';" show-check="false" is-continue-on-correct="true" dropAttr="diagonal">
73
- <lido-row visible="true" width="landscape.100%, portrait.338px" onEntry="" height="landscape.100%, portrait." y="landscape.340px, portrait.300px" x="landscape.,portrait.520px" direction="landscape.row, portrait.column">
74
- <lido-flash-card x="50" y="200" width="220px" height="140px">
75
- <lido-image visible="true" slot="front" src="https://aeakbcdznktpsbrfsgys.supabase.co/storage/v1/object/public/thumbnails/sticker/Bird_Blue.png" z="0" width="200px" height="300px" onEntry="">
76
- </lido-image>
77
- <lido-text slot="back" width="300px" height="200px" display="flex" onEntry="" font-family="" font-size="48px" z="1" font-color="black" fontWeight="bold" color="#000000" string="Bird" visible="true" y="landscape.35px, portrait.15px" bg-color="yellow">
78
- </lido-text>
79
- </lido-flash-card>
80
- </lido-row>
81
- </lido-container>
71
+ const xml = `<main>
72
+ <lido-container highlight-word-by-word="true" id="lido-container" tab-index="1" value="mainContainer3" objective="lion,crocodile,cow" bg-color="#B1BEFD" aria-label="" height="100vh" width="100vw" x="0" y="0" z="0" visible="true" audio="background1.mp3" onTouch="" onCorrect="lido-avatar.avatarAnimate='Success'; this.sleep='2000'; this.removeClone='.cloned-element'" onEntry="" onInCorrect="lido-avatar.avatarAnimate='Fail'; this.sleep='2000';" show-check="false" is-continue-on-correct="true" dropAttr="diagonal">
73
+ <lido-row visible="true" width="landscape.100%, portrait.338px" onEntry="" height="landscape.100%, portrait." y="landscape.340px, portrait.300px" x="landscape.,portrait.520px" direction="landscape.row, portrait.column">
74
+ <lido-flash-card x="50" y="200" width="220px" height="140px">
75
+ <lido-image visible="true" slot="front" src="https://aeakbcdznktpsbrfsgys.supabase.co/storage/v1/object/public/thumbnails/sticker/Bird_Blue.png" z="0" width="200px" height="300px" onEntry="">
76
+ </lido-image>
77
+ <lido-text slot="back" width="300px" height="200px" display="flex" onEntry="" font-family="" font-size="48px" z="1" font-color="black" fontWeight="bold" color="#000000" string="Bird" visible="true" y="landscape.35px, portrait.15px" bg-color="yellow">
78
+ </lido-text>
79
+ </lido-flash-card>
80
+ </lido-row>
81
+ </lido-container>
82
82
  </main>`;
83
83
  return html `<lido-home xml-data="${xml}" xmlData="${xml}"></lido-home>`;
84
84
  },
@@ -24,15 +24,15 @@ export const Keyboard = {
24
24
  },
25
25
  };
26
26
  const getContainerXml = args => {
27
- return `<main>
28
- <lido-container objective="${args.objective}" is-continue-on-correct="true" drop-action="infinite-drop" onCorrect="lido-avatar.avatarAnimate='Success'; this.sleep='2000';" onInCorrect="lido-avatar.avatarAnimate='Success'; this.sleep='2000';">
29
- <!-- Chimple Avatar -->
30
- <lido-cell layout="pos" id="pos1" disable-edit="true" value="pos2" height="305px" width="227px" x="-50px" y="landscape.560px, portrait.1220px" aria-hidden="true" z="1" bg-color="transparent" visible="true" onEntry="">
31
- <lido-avatar id="lido-avatar" disable-edit="true" visible="true" height="462px" width="356px" src="https://aeakbcdznktpsbrfsgys.supabase.co/storage/v1/object/public/template-assets/temp2/chimplecharacter.riv" alt-text="{chimpleCharacterRive}">
32
- </lido-avatar>
33
- </lido-cell>
34
- ${args.type === 'drag' ? `<lido-text visible="true" string="Drag the letters to this boxes." font-family="'Baloo Bhai 2'" font-size="36px" bg-color="transparent" margin="0 0 20px 0" type="drop"></lido-text>` : ""}
35
- <lido-keyboard visible="true" keys="${args.keys}" type="${args.type}" width="1000px" height="300px" keyboard-input="${args.keyboardInput === "enable" ? "true" : "false"}"></lido-keyboard>
36
- </lido-container>
27
+ return `<main>
28
+ <lido-container highlight-word-by-word="true" objective="${args.objective}" is-continue-on-correct="true" drop-action="infinite-drop" onCorrect="lido-avatar.avatarAnimate='Success'; this.sleep='2000';" onInCorrect="lido-avatar.avatarAnimate='Success'; this.sleep='2000';">
29
+ <!-- Chimple Avatar -->
30
+ <lido-cell layout="pos" id="pos1" disable-edit="true" value="pos2" height="305px" width="227px" x="-50px" y="landscape.560px, portrait.1220px" aria-hidden="true" z="1" bg-color="transparent" visible="true" onEntry="">
31
+ <lido-avatar id="lido-avatar" disable-edit="true" visible="true" height="462px" width="356px" src="https://aeakbcdznktpsbrfsgys.supabase.co/storage/v1/object/public/template-assets/temp2/chimplecharacter.riv" alt-text="{chimpleCharacterRive}">
32
+ </lido-avatar>
33
+ </lido-cell>
34
+ ${args.type === 'drag' ? `<lido-text visible="true" string="Drag the letters to this boxes." font-family="'Baloo Bhai 2'" font-size="36px" bg-color="transparent" margin="0 0 20px 0" type="drop"></lido-text>` : ""}
35
+ <lido-keyboard visible="true" keys="${args.keys}" type="${args.type}" width="1000px" height="300px" keyboard-input="${args.keyboardInput === "enable" ? "true" : "false"}"></lido-keyboard>
36
+ </lido-container>
37
37
  </main>`;
38
38
  };
@@ -32,9 +32,9 @@ export const QuestionAndOptions = {
32
32
  };
33
33
  function getContainerXml(args) {
34
34
  const { src, fillPercentage, fillDirection, min, max, division, numberType } = args;
35
- return `<main>
36
- <lido-container id="lido-container" tab-index="1" value="mainContainer1" objective="..." aria-label="" height="100vh" width="100vw" x="0" y="0" z="0" bg-color="black" visible="true">
37
- <lido-slide-fill fill="${fillPercentage}" width="500px" src="${src}" fillDirection="${fillDirection}" numberType="${numberType}" min="${min}" max="${max}" division="${division}" ></lido-slider-fill>
38
- </lido-container>
35
+ return `<main>
36
+ <lido-container highlight-word-by-word="true" id="lido-container" tab-index="1" value="mainContainer1" objective="..." aria-label="" height="100vh" width="100vw" x="0" y="0" z="0" bg-color="black" visible="true">
37
+ <lido-slide-fill fill="${fillPercentage}" width="500px" src="${src}" fillDirection="${fillDirection}" numberType="${numberType}" min="${min}" max="${max}" division="${division}" ></lido-slider-fill>
38
+ </lido-container>
39
39
  </main>`;
40
40
  }
@@ -20,10 +20,10 @@ export const QuestionAndOptions = {
20
20
  function getContainerXml(args) {
21
21
  let svgText = args.svgFile[0];
22
22
  let mode = args.mode;
23
- return `<main>
24
- <lido-container id="lido-container" tab-index="1" value="mainContainer1" objective="D-6ba518e3,D-5a192ba3,D-b686f882,D-9095b74f,D-e0a32c78,D-1e4e88f1" aria-label="" height="100vh" width="100vw" x="0" y="0" z="0" bg-color="#FFB742" visible="true" audio="background1.mp3" onTouch="" onCorrect="lido-avatar.avatarAnimate='Success'; this.sleep='2000';" onEntry="" onInCorrect="lido-avatar.avatarAnimate='Fail'; this.sleep='2000';" show-check="false" is-continue-on-correct="true">
25
- <lido-trace id="image1" tab-index="2" value="image1" visible="true" svgSource="${svgText}" mode="${mode}" z="0" width="1600px" height="900px" onEntry="" alt-text="{backgroundImage}">
26
- </lido-trace>
27
- </lido-container>
23
+ return `<main>
24
+ <lido-container highlight-word-by-word="true" id="lido-container" tab-index="1" value="mainContainer1" objective="D-6ba518e3,D-5a192ba3,D-b686f882,D-9095b74f,D-e0a32c78,D-1e4e88f1" aria-label="" height="100vh" width="100vw" x="0" y="0" z="0" bg-color="#FFB742" visible="true" audio="background1.mp3" onTouch="" onCorrect="lido-avatar.avatarAnimate='Success'; this.sleep='2000';" onEntry="" onInCorrect="lido-avatar.avatarAnimate='Fail'; this.sleep='2000';" show-check="false" is-continue-on-correct="true">
25
+ <lido-trace id="image1" tab-index="2" value="image1" visible="true" svgSource="${svgText}" mode="${mode}" z="0" width="1600px" height="900px" onEntry="" alt-text="{backgroundImage}">
26
+ </lido-trace>
27
+ </lido-container>
28
28
  </main>`;
29
29
  }
@@ -115,7 +115,7 @@ export class AudioPlayer {
115
115
  return el;
116
116
  return el.closest('lido-text');
117
117
  }
118
- async play(targetElement, suppressHighlight = false, playbackContext) {
118
+ async play(targetElement, suppressHighlight = false, playbackContext, fallbackAudio) {
119
119
  this.registerVisibilityEvents();
120
120
  this.playbackHasStarted = false;
121
121
  if (!this.isWindowVisible()) {
@@ -218,7 +218,12 @@ export class AudioPlayer {
218
218
  };
219
219
  });
220
220
  }
221
- catch (error) { }
221
+ catch (error) {
222
+ if (fallbackAudio && fallbackAudio !== audioUrl) {
223
+ targetElement.setAttribute('audio', fallbackAudio);
224
+ await this.play(targetElement, suppressHighlight, playbackContext);
225
+ }
226
+ }
222
227
  finally {
223
228
  this.audioElement.onended = null;
224
229
  this.audioElement.onloadedmetadata = null;
@@ -432,7 +437,9 @@ export class AudioPlayer {
432
437
  const duration = timeline[timeline.length - 1].endMs - timeline[0].startMs;
433
438
  const averageWordMs = duration / timeline.length;
434
439
  const speedLead = averageWordMs < 190 ? 120 : averageWordMs < 260 ? 90 : 60;
435
- return Math.max(profile.preemptiveOffsetMs, speedLead);
440
+ // Advance the estimated highlight slightly to compensate for perceived lag.
441
+ const playbackLeadAdjustmentMs = 40;
442
+ return Math.max(profile.preemptiveOffsetMs, speedLead) + playbackLeadAdjustmentMs;
436
443
  }
437
444
  getTimelineIndex(timeline, currentMs) {
438
445
  if (!timeline.length)
@@ -20,6 +20,12 @@ export const LidoContainer = 'lido-container';
20
20
  export const LangChangeEvent = 'languageChanged';
21
21
  export const LIDO_COMMON_AUDIO_PATH = '__LIDO_COMMON_AUDIO_PATH__';
22
22
  export const LIDO_COMMON_AUDIO_READY_EVENT = 'lidoCommonAudioPathReady';
23
+ export const GOOD_JOB_AUDIO_FILE = 'goodJob.mp3';
24
+ export const resolveCommonAudioPath = (basePath, fileName) => {
25
+ if (!basePath || !fileName)
26
+ return undefined;
27
+ return `${basePath}/${fileName}`;
28
+ };
23
29
  export const LIDO_INTERACTION_CLEANUP_EVENT = 'lido:interaction-cleanup';
24
30
  export const TemplateID = 'template-id';
25
31
  export const CalculatorOk = 'calculator-ok';
@@ -1,4 +1,4 @@
1
- import { ActivityScoreKey, DragMapKey, SelectedValuesKey, DropMode, DropToAttr, DropTimeAttr, LidoContainer, DropAction, CalculatorOk } from "./constants";
1
+ import { ActivityScoreKey, DragMapKey, SelectedValuesKey, DropMode, DropToAttr, DropTimeAttr, LidoContainer, DropAction, CalculatorOk, LIDO_COMMON_AUDIO_PATH, resolveCommonAudioPath, GOOD_JOB_AUDIO_FILE } from "./constants";
2
2
  import { dispatchActivityEndEvent, dispatchGameCompletedEvent, dispatchLessonEndEvent, dispatchNextContainerEvent, dispatchPrevContainerEvent } from "./customEvents";
3
3
  import GameScore from "./constants";
4
4
  import { RiveService } from "./rive-service";
@@ -17,6 +17,44 @@ import { handlingMatrix } from "./utilsHandlers/matrixHandler";
17
17
  import { balanceResult } from "./utilsHandlers/lidoBalanceHandler";
18
18
  import { ACTIVYTY_TIME_SPEND_ARRAY, Timer } from "./utilsHandlers/timer";
19
19
  const gameScore = new GameScore();
20
+ const GOOD_JOB_TEMPLATES = new Set(['flashcardtemplate', 'writeCard', 'drawShape', 'storyTale']);
21
+ export const isGoodJobAudioTarget = (element) => {
22
+ var _a;
23
+ const templateId = (_a = element === null || element === void 0 ? void 0 : element.closest('lido-container')) === null || _a === void 0 ? void 0 : _a.getAttribute('template-id');
24
+ if (!GOOD_JOB_TEMPLATES.has(templateId || ''))
25
+ return false;
26
+ if ((element === null || element === void 0 ? void 0 : element.id) === 'arrow')
27
+ return true;
28
+ return templateId === 'storyTale' && (element === null || element === void 0 ? void 0 : element.id) === 'arrow1' && !!element.closest('#arrow');
29
+ };
30
+ export const resetGoodJobAudioTracking = (home) => {
31
+ home.__lidoGoodJobTemplates = new Set();
32
+ };
33
+ export const shouldPlayGoodJobAudio = (element) => {
34
+ var _a;
35
+ if (!isGoodJobAudioTarget(element))
36
+ return false;
37
+ // Standalone templates and editor previews have no lesson host. Preserve
38
+ // their existing behavior rather than making them depend on lido-home.
39
+ const home = element.closest('lido-home');
40
+ if (!home)
41
+ return true;
42
+ const templateId = (_a = element.closest('lido-container')) === null || _a === void 0 ? void 0 : _a.getAttribute('template-id');
43
+ if (!templateId)
44
+ return true;
45
+ const played = home.__lidoGoodJobTemplates || (home.__lidoGoodJobTemplates = new Set());
46
+ if (played.has(templateId))
47
+ return false;
48
+ played.add(templateId);
49
+ return true;
50
+ };
51
+ export const getGoodJobAudio = (element) => {
52
+ if (!element)
53
+ return undefined;
54
+ if (!isGoodJobAudioTarget(element))
55
+ return undefined;
56
+ return resolveCommonAudioPath(window[LIDO_COMMON_AUDIO_PATH], GOOD_JOB_AUDIO_FILE);
57
+ };
20
58
  export function buildDragSelectedMapFromDOM() {
21
59
  const map = {};
22
60
  const draggedEls = document.querySelectorAll(`[${DropToAttr}]`);
@@ -151,6 +189,22 @@ export const initEventsForElement = async (element, type) => {
151
189
  }
152
190
  onTouchListenerForOnTouch(element);
153
191
  };
192
+ /**
193
+ * Re-enable the gameplay handlers for interactive children that were created
194
+ * while the player was in edit mode. This is intentionally limited to the
195
+ * drag/drop elements used by Food Jar; other templates retain their existing
196
+ * component-load initialization path.
197
+ */
198
+ export const initializePlayModeDragDropElements = async (root) => {
199
+ const elements = root.querySelectorAll('[type="drag"], [type="drop"]');
200
+ for (const element of Array.from(elements)) {
201
+ const type = element.getAttribute('type') || undefined;
202
+ const initializedElement = element;
203
+ if (initializedElement.__lidoInitializationKey === `${type || ''}:true`)
204
+ continue;
205
+ await initEventsForElement(element, type);
206
+ }
207
+ };
154
208
  // Function to execute actions parsed from the onMatch string
155
209
  export const executeActions = async (actionsString, thisElement, element, options = {}) => {
156
210
  var _a, _b, _c, _d, _e, _f, _g, _h;
@@ -224,7 +278,21 @@ export const executeActions = async (actionsString, thisElement, element, option
224
278
  const val = (action.value || '').toString().trim().toLowerCase();
225
279
  if (val === 'true' || val === '1' || val === 'yes') {
226
280
  try {
227
- await AudioPlayer.getI().play(targetElement);
281
+ if (isGoodJobAudioTarget(targetElement) && !shouldPlayGoodJobAudio(targetElement))
282
+ break;
283
+ const isGoodJobTarget = isGoodJobAudioTarget(targetElement);
284
+ const currentAudio = targetElement.getAttribute('audio') || undefined;
285
+ const originalAudio = isGoodJobTarget
286
+ ? (targetElement.getAttribute('data-lido-original-audio') || currentAudio)
287
+ : currentAudio;
288
+ const localizedAudio = getGoodJobAudio(targetElement);
289
+ if (localizedAudio) {
290
+ if (currentAudio && !targetElement.hasAttribute('data-lido-original-audio')) {
291
+ targetElement.setAttribute('data-lido-original-audio', currentAudio);
292
+ }
293
+ targetElement.setAttribute('audio', localizedAudio);
294
+ }
295
+ await AudioPlayer.getI().play(targetElement, false, undefined, originalAudio);
228
296
  }
229
297
  catch (err) {
230
298
  console.error('Error playing audio for speak action:', err);
@@ -434,12 +502,25 @@ const afterDropDragHandling = (dragElement, dropElement) => {
434
502
  const element = dragElement;
435
503
  const isAppend = container.getAttribute('drop-action') === DropAction.Move;
436
504
  const isInfinite = container.getAttribute('drop-action') === DropAction.InfiniteDrop;
505
+ const isCreateSentence = container.getAttribute('template-id') === 'createSentence';
506
+ // Reserve the source slot synchronously so an overlapping drag sees the
507
+ // updated source layout before the dropped element is reparented.
508
+ let sourcePlaceholder = null;
509
+ if (isAppend && isCreateSentence) {
510
+ const computedStyle = window.getComputedStyle(dragElement);
511
+ sourcePlaceholder = document.createElement('div');
512
+ sourcePlaceholder.style.width = `${dragElement.offsetWidth}px`;
513
+ sourcePlaceholder.style.height = `${dragElement.offsetHeight}px`;
514
+ sourcePlaceholder.style.margin = computedStyle.margin;
515
+ sourcePlaceholder.style.visibility = 'hidden';
516
+ dragElement.replaceWith(sourcePlaceholder);
517
+ }
437
518
  if (isAppend || isInfinite) {
438
- setTimeout(() => {
519
+ const finishDrop = () => {
439
520
  var _a, _b;
440
521
  dragElement.style.transform = 'translate(0,0)';
441
522
  dragElement.style.transition = '';
442
- let dummyElement = document.createElement('div');
523
+ let dummyElement = sourcePlaceholder || document.createElement('div');
443
524
  if (isInfinite) {
444
525
  dummyElement = cloneElementWithComputedStyles(dragElement);
445
526
  dummyElement.classList.remove('dropped');
@@ -454,17 +535,25 @@ const afterDropDragHandling = (dragElement, dropElement) => {
454
535
  }, 100);
455
536
  }
456
537
  dummyElement.setAttribute('id', dragElement.getAttribute('id'));
457
- dragElement.replaceWith(dummyElement);
458
- const keyframes = `
459
- @keyframes widthDecrease {
460
- 0% { width: ${dragElement.style.width}; height: ${dragElement.style.height}; margin: ${dragElement.style.margin}; }
461
- 100% { width: 0px; height: 0px; margin: 0px;}
462
- }
538
+ if (!sourcePlaceholder) {
539
+ dragElement.replaceWith(dummyElement);
540
+ }
541
+ const keyframes = `
542
+ @keyframes widthDecrease {
543
+ 0% { width: ${dragElement.style.width}; height: ${dragElement.style.height}; margin: ${dragElement.style.margin}; }
544
+ 100% { width: 0px; height: 0px; margin: 0px;}
545
+ }
463
546
  `;
464
547
  if (!isInfinite) {
465
- dummyElement.style.width = element.style.width;
466
- dummyElement.style.height = element.style.height;
467
- dummyElement.style.margin = element.style.margin;
548
+ dummyElement.style.width = sourcePlaceholder
549
+ ? sourcePlaceholder.style.width
550
+ : element.style.width;
551
+ dummyElement.style.height = sourcePlaceholder
552
+ ? sourcePlaceholder.style.height
553
+ : element.style.height;
554
+ dummyElement.style.margin = sourcePlaceholder
555
+ ? sourcePlaceholder.style.margin
556
+ : element.style.margin;
468
557
  const styleSheet = document.styleSheets[0];
469
558
  styleSheet.insertRule(keyframes, styleSheet.cssRules.length);
470
559
  dummyElement.style.animation = `widthDecrease 0.5s`;
@@ -494,7 +583,13 @@ const afterDropDragHandling = (dragElement, dropElement) => {
494
583
  const scaledLeft = (dropCenterX - dragCenterX) / containerScale;
495
584
  const scaledTop = (dropCenterY - dragCenterY) / containerScale;
496
585
  dragElement.style.transform = `translate(${scaledLeft}px, ${scaledTop}px)`;
497
- }, 700);
586
+ };
587
+ if (isAppend && isCreateSentence) {
588
+ finishDrop();
589
+ }
590
+ else {
591
+ setTimeout(finishDrop, 700);
592
+ }
498
593
  }
499
594
  };
500
595
  // function cloneElementWithComputedStyles(originalEl: HTMLElement): HTMLElement {
@@ -970,14 +970,14 @@ export async function onClickDropOrDragElement(element, type) {
970
970
  if (!document.querySelector('#dynamic-highlight-style')) {
971
971
  const style = document.createElement('style');
972
972
  style.id = 'dynamic-highlight-style';
973
- style.innerHTML = `
974
- .highlight {
975
- // border: 4px solid #e74c3c; /* Thicker red border for more visibility */
976
- // border-radius: 12px; /* Larger rounded corners */
977
- // background-color: rgba(231, 76, 60, 0.3); /* Stronger, more noticeable background */
978
- // box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2), 0 12px 40px rgba(0, 0, 0, 0.2); /* Stronger shadow */
979
- // outline: 4px solid rgba(231, 76, 60, 0.6); /* Glow effect */
980
- }
973
+ style.innerHTML = `
974
+ .highlight {
975
+ // border: 4px solid #e74c3c; /* Thicker red border for more visibility */
976
+ // border-radius: 12px; /* Larger rounded corners */
977
+ // background-color: rgba(231, 76, 60, 0.3); /* Stronger, more noticeable background */
978
+ // box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2), 0 12px 40px rgba(0, 0, 0, 0.2); /* Stronger shadow */
979
+ // outline: 4px solid rgba(231, 76, 60, 0.6); /* Glow effect */
980
+ }
981
981
  `;
982
982
  document.head.appendChild(style);
983
983
  }