lido-player 0.0.2-beta-25-dev → 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 (236) hide show
  1. package/LICENSE +21 -21
  2. package/dist/cjs/{decode-BSImuLEU.js → decode-CE64w_Pc.js} +1 -1
  3. package/dist/cjs/{index-DRw2yVbg.js → index-Cf9LHdIw.js} +126 -60
  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 +103 -42
  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 -34
  22. package/dist/collection/components/container/lido-container.js +8 -8
  23. package/dist/collection/components/flashCard/lido-flash-card.css +72 -72
  24. package/dist/collection/components/flashCard/lido-flash-card.js +72 -12
  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 +35 -8
  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 +5 -5
  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 +7 -2
  151. package/dist/collection/utils/constants.js +6 -0
  152. package/dist/collection/utils/utils.js +59 -7
  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/sortHandler.js +10 -10
  156. package/dist/components/index.js +1 -1
  157. package/dist/components/lido-avatar.js +1 -1
  158. package/dist/components/lido-balance.js +1 -1
  159. package/dist/components/lido-calculator.js +1 -1
  160. package/dist/components/lido-canvas.js +1 -1
  161. package/dist/components/lido-cell.js +1 -1
  162. package/dist/components/lido-col.js +1 -1
  163. package/dist/components/lido-container.js +1 -1
  164. package/dist/components/lido-flash-card.js +1 -1
  165. package/dist/components/lido-float.js +1 -1
  166. package/dist/components/lido-home.js +1 -1
  167. package/dist/components/lido-image.js +1 -1
  168. package/dist/components/lido-keyboard.js +1 -1
  169. package/dist/components/lido-math-matrix.js +1 -1
  170. package/dist/components/lido-pos.js +1 -1
  171. package/dist/components/lido-random.js +1 -1
  172. package/dist/components/lido-root.js +1 -1
  173. package/dist/components/lido-row.js +1 -1
  174. package/dist/components/lido-shape.js +1 -1
  175. package/dist/components/lido-slide-fill.js +1 -1
  176. package/dist/components/lido-text.js +1 -1
  177. package/dist/components/lido-trace.js +1 -1
  178. package/dist/components/lido-wrap.js +1 -1
  179. package/dist/components/p-B4iWvszS.js +1 -0
  180. package/dist/components/{p-Cf85Nc-6.js → p-BA-XmR9g.js} +1 -1
  181. package/dist/components/p-BJt-z8VW.js +1 -0
  182. package/dist/components/{p-CTlcpv4a.js → p-BfwUqpXc.js} +1 -1
  183. package/dist/components/{p-DNo3iX_r.js → p-BiBt9LGP.js} +1 -1
  184. package/dist/components/{p-DG0KR2iN.js → p-BlN0IsR4.js} +1 -1
  185. package/dist/components/{p-BSWrnLbC.js → p-BpVpANK9.js} +1 -1
  186. package/dist/components/{p-CgsPIpg0.js → p-Bw-OC9iR.js} +1 -1
  187. package/dist/components/p-C2J7-bcH.js +1 -0
  188. package/dist/components/{p-BfJG1wmU.js → p-CEmofYPx.js} +1 -1
  189. package/dist/components/{p-C5WmmkI6.js → p-CPYnt0P-.js} +1 -1
  190. package/dist/components/{p-CsDu4kiC.js → p-ChfVUoX4.js} +1 -1
  191. package/dist/components/{p-AaE392x7.js → p-CnQ-4EIw.js} +1 -1
  192. package/dist/components/{p-CXHPZN3m.js → p-CyGxEcn7.js} +1 -1
  193. package/dist/components/{p-CuDMRxx_.js → p-D1cBkIab.js} +1 -1
  194. package/dist/components/p-DP6jQ5ML.js +1 -0
  195. package/dist/components/{p-BW0855oZ.js → p-DV-k1ulI.js} +1 -1
  196. package/dist/components/p-Qhj9-H6e.js +12 -0
  197. package/dist/components/{p-CVZEVfip.js → p-hUfX1As2.js} +1 -1
  198. package/dist/components/p-leIEepjl.js +1 -0
  199. package/dist/components/{p-CK9M0Kcf.js → p-s4oGlKg6.js} +1 -1
  200. package/dist/components/{p-C70ykycD.js → p-useuhkjH.js} +1 -1
  201. package/dist/esm/{decode-D2f5bktc.js → decode-DhjaTUf2.js} +1 -1
  202. package/dist/esm/{index-BB56Mo3L.js → index-Bc6Y7rds.js} +124 -61
  203. package/dist/esm/{index-mMpK8062.js → index-Dvjbti-h.js} +1 -1
  204. package/dist/esm/index.js +2 -2
  205. package/dist/esm/lido-avatar_22.entry.js +103 -42
  206. package/dist/esm/lido-player.js +3 -3
  207. package/dist/esm/loader.js +3 -3
  208. package/dist/lido-player/assets/Shadow.svg +9 -9
  209. package/dist/lido-player/assets/Tracing-hand.svg +8 -8
  210. package/dist/lido-player/index.esm.js +1 -1
  211. package/dist/lido-player/lido-avatar.css +4 -4
  212. package/dist/lido-player/lido-avatar.tsx +214 -214
  213. package/dist/lido-player/lido-player.css +7 -7
  214. package/dist/lido-player/lido-player.esm.js +1 -1
  215. package/dist/lido-player/{p-DSlo480E.js → p-CORilAH-.js} +1 -1
  216. package/dist/lido-player/p-D66K5DXn.js +1 -0
  217. package/dist/lido-player/p-Dvjbti-h.js +2 -0
  218. package/dist/lido-player/p-ca195982.entry.js +12 -0
  219. package/dist/lido-player/readme.md +49 -49
  220. package/dist/types/components/flashCard/lido-flash-card.d.ts +2 -0
  221. package/dist/types/components.d.ts +1 -0
  222. package/dist/types/types/json.d.ts +3 -3
  223. package/dist/types/utils/audioPlayer.d.ts +1 -1
  224. package/dist/types/utils/constants.d.ts +2 -0
  225. package/dist/types/utils/utils.d.ts +4 -0
  226. package/package.json +73 -73
  227. package/readme.md +113 -113
  228. package/dist/components/p-B-mIxynb.js +0 -1
  229. package/dist/components/p-CSxwfvl3.js +0 -1
  230. package/dist/components/p-DONbWJGn.js +0 -1
  231. package/dist/components/p-DPGOqpde.js +0 -1
  232. package/dist/components/p-DXy70SGv.js +0 -1
  233. package/dist/components/p-i3W5bJbL.js +0 -12
  234. package/dist/lido-player/p-53d245b0.entry.js +0 -12
  235. package/dist/lido-player/p-DKuh-2gv.js +0 -1
  236. package/dist/lido-player/p-mMpK8062.js +0 -2
@@ -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;
@@ -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}]`);
@@ -240,7 +278,21 @@ export const executeActions = async (actionsString, thisElement, element, option
240
278
  const val = (action.value || '').toString().trim().toLowerCase();
241
279
  if (val === 'true' || val === '1' || val === 'yes') {
242
280
  try {
243
- 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);
244
296
  }
245
297
  catch (err) {
246
298
  console.error('Error playing audio for speak action:', err);
@@ -486,11 +538,11 @@ const afterDropDragHandling = (dragElement, dropElement) => {
486
538
  if (!sourcePlaceholder) {
487
539
  dragElement.replaceWith(dummyElement);
488
540
  }
489
- const keyframes = `
490
- @keyframes widthDecrease {
491
- 0% { width: ${dragElement.style.width}; height: ${dragElement.style.height}; margin: ${dragElement.style.margin}; }
492
- 100% { width: 0px; height: 0px; margin: 0px;}
493
- }
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
+ }
494
546
  `;
495
547
  if (!isInfinite) {
496
548
  dummyElement.style.width = sourcePlaceholder
@@ -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
  }
@@ -8,32 +8,32 @@ export function showWrongAnswerAnimation(elements) {
8
8
  if (!document.querySelector(styleId)) {
9
9
  const style = document.createElement('style');
10
10
  style.id = styleId;
11
- style.innerHTML = `
12
- @keyframes enhanced-shake {
13
- 0% { left: 0; }
14
- 10% { left: -8px; }
15
- 20% { left: 8px; }
16
- 30% { left: -8px; }
17
- 40% { left: 8px; }
18
- 50% { left: -6px; }
19
- 60% { left: 6px; }
20
- 70% { left: -4px; }
21
- 80% { left: 4px; }
22
- 90% { left: -2px; }
23
- 100% { left: 0; }
24
- }
25
-
26
-
27
- .wrong-answer {
28
- position: relative; /* Enable relative positioning to move the element */
29
- animation: enhanced-shake 0.6s cubic-bezier(0.36, 0.07, 0.19, 0.97);
30
- background-color: #ffdddd; /* Flash red background to indicate wrong answer */
31
- box-shadow: 0 0 10px rgba(255, 0, 0, 0.5); /* Subtle red shadow */
32
-
33
- border: 4px solid red;
34
- }
35
-
36
-
11
+ style.innerHTML = `
12
+ @keyframes enhanced-shake {
13
+ 0% { left: 0; }
14
+ 10% { left: -8px; }
15
+ 20% { left: 8px; }
16
+ 30% { left: -8px; }
17
+ 40% { left: 8px; }
18
+ 50% { left: -6px; }
19
+ 60% { left: 6px; }
20
+ 70% { left: -4px; }
21
+ 80% { left: 4px; }
22
+ 90% { left: -2px; }
23
+ 100% { left: 0; }
24
+ }
25
+
26
+
27
+ .wrong-answer {
28
+ position: relative; /* Enable relative positioning to move the element */
29
+ animation: enhanced-shake 0.6s cubic-bezier(0.36, 0.07, 0.19, 0.97);
30
+ background-color: #ffdddd; /* Flash red background to indicate wrong answer */
31
+ box-shadow: 0 0 10px rgba(255, 0, 0, 0.5); /* Subtle red shadow */
32
+
33
+ border: 4px solid red;
34
+ }
35
+
36
+
37
37
  `;
38
38
  document.head.appendChild(style);
39
39
  }
@@ -61,34 +61,34 @@ export function highlightSpeakingElement(element) {
61
61
  if (!document.getElementById(styleId)) {
62
62
  const style = document.createElement('style');
63
63
  style.id = styleId;
64
- style.innerHTML = `
65
- .speaking-highlight {
66
- --base-transform: ${element.style.transform};
67
- box-shadow: 0 0 20px 10px rgba(255, 165, 0, 0.9) !important; /* Stronger orange glow effect */
68
- // border: 3px solid green !important;
69
- // transition: box-shadow 0.5s ease-in-out, transform 0.5s ease-in-out;
70
- // transform: scale(1.05); /* Subtle scale effect to pop the element */
71
- // animation: pulseEffect 1.5s infinite; /* Pulsing animation */
72
-
73
- }
74
-
75
- @keyframes pulseEffect {
76
- 0% {
77
- box-shadow: 0 0 20px 10px rgba(255, 165, 0, 0.9);
78
- // transform: var(--base-transform) scale(1.05);
79
- // background-color: #FFFF0B;
80
- }
81
- 50% {
82
- box-shadow: 0 0 30px 15px rgba(255, 165, 0, 1);
83
- // transform: var(--base-transform) scale(1.1);
84
- // background-color: #FFFF0B;
85
- }
86
- 100% {
87
- box-shadow: 0 0 20px 10px rgba(255, 165, 0, 0.9);
88
- // transform: var(--base-transform) scale(1.05);
89
- // background-color: #FFFF0B;
90
- }
91
- }
64
+ style.innerHTML = `
65
+ .speaking-highlight {
66
+ --base-transform: ${element.style.transform};
67
+ box-shadow: 0 0 20px 10px rgba(255, 165, 0, 0.9) !important; /* Stronger orange glow effect */
68
+ // border: 3px solid green !important;
69
+ // transition: box-shadow 0.5s ease-in-out, transform 0.5s ease-in-out;
70
+ // transform: scale(1.05); /* Subtle scale effect to pop the element */
71
+ // animation: pulseEffect 1.5s infinite; /* Pulsing animation */
72
+
73
+ }
74
+
75
+ @keyframes pulseEffect {
76
+ 0% {
77
+ box-shadow: 0 0 20px 10px rgba(255, 165, 0, 0.9);
78
+ // transform: var(--base-transform) scale(1.05);
79
+ // background-color: #FFFF0B;
80
+ }
81
+ 50% {
82
+ box-shadow: 0 0 30px 15px rgba(255, 165, 0, 1);
83
+ // transform: var(--base-transform) scale(1.1);
84
+ // background-color: #FFFF0B;
85
+ }
86
+ 100% {
87
+ box-shadow: 0 0 20px 10px rgba(255, 165, 0, 0.9);
88
+ // transform: var(--base-transform) scale(1.05);
89
+ // background-color: #FFFF0B;
90
+ }
91
+ }
92
92
  `;
93
93
  document.head.appendChild(style);
94
94
  }
@@ -163,11 +163,11 @@ export function enableReorderDrag(element) {
163
163
  onDropToCategory(element, category);
164
164
  }
165
165
  if (divEl) {
166
- const keyframes = `
167
- @keyframes widthDecrease {
168
- 0% { width: ${divEl.offsetWidth}px; height: ${divEl.offsetHeight}px; }
169
- 100% { width: 0px; height: 0px;}
170
- }
166
+ const keyframes = `
167
+ @keyframes widthDecrease {
168
+ 0% { width: ${divEl.offsetWidth}px; height: ${divEl.offsetHeight}px; }
169
+ 100% { width: 0px; height: 0px;}
170
+ }
171
171
  `;
172
172
  const styleSheet = document.styleSheets[0];
173
173
  styleSheet.insertRule(keyframes, styleSheet.cssRules.length);
@@ -390,11 +390,11 @@ function moveWithAnimation(target, overlapped) {
390
390
  const dummy = createDummyElement(target);
391
391
  dummy.style.visibility = 'hidden';
392
392
  dummy.setAttribute('type', 'dummy');
393
- const keyframes = `
394
- @keyframes widthIncrease {
395
- 0% { width: 0px; height: 0px; }
396
- 100% { width: ${target.offsetWidth}px; height: ${target.offsetHeight}px;}
397
- }
393
+ const keyframes = `
394
+ @keyframes widthIncrease {
395
+ 0% { width: 0px; height: 0px; }
396
+ 100% { width: ${target.offsetWidth}px; height: ${target.offsetHeight}px;}
397
+ }
398
398
  `;
399
399
  if (!overlapped) {
400
400
  const overlapCategory = findMostoverlappedElement(target, 'category');