lido-player 0.0.2-beta-17 → 0.0.2-beta-18-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 (233) hide show
  1. package/LICENSE +21 -21
  2. package/dist/cjs/{decode-BPWgujpW.js → decode-DUZYNXIv.js} +1 -1
  3. package/dist/cjs/{index-BnfJD-Dp.js → index-BEjUmVtH.js} +185 -86
  4. package/dist/cjs/{index-CACb9dlg.js → index-DnqQXD5x.js} +53 -12
  5. package/dist/cjs/index.cjs.js +2 -2
  6. package/dist/cjs/lido-avatar_22.cjs.entry.js +61 -68
  7. package/dist/cjs/lido-player.cjs.js +3 -3
  8. package/dist/cjs/loader.cjs.js +2 -2
  9. package/dist/collection/collection-manifest.json +1 -1
  10. package/dist/collection/components/avatar/lido-avatar.css +4 -4
  11. package/dist/collection/components/avatar/lido-avatar.js +1 -1
  12. package/dist/collection/components/avatar/lido-avatar.tsx +207 -207
  13. package/dist/collection/components/avatar/readme.md +49 -49
  14. package/dist/collection/components/calculator/lido-calculator.css +89 -89
  15. package/dist/collection/components/calculator/lido-calculator.js +2 -2
  16. package/dist/collection/components/canvas/lido-canvas.css +33 -33
  17. package/dist/collection/components/canvas/lido-canvas.js +1 -1
  18. package/dist/collection/components/cell/lido-cell.css +100 -100
  19. package/dist/collection/components/cell/lido-cell.js +12 -12
  20. package/dist/collection/components/column/lido-col.css +19 -19
  21. package/dist/collection/components/column/lido-col.js +6 -6
  22. package/dist/collection/components/container/lido-container.css +10 -10
  23. package/dist/collection/components/container/lido-container.js +8 -8
  24. package/dist/collection/components/flashCard/lido-flash-card.css +28 -28
  25. package/dist/collection/components/flashCard/lido-flash-card.js +4 -4
  26. package/dist/collection/components/float/lido-float.css +30 -30
  27. package/dist/collection/components/float/lido-float.js +2 -2
  28. package/dist/collection/components/home/lido-home.css +309 -309
  29. package/dist/collection/components/home/lido-home.js +5 -5
  30. package/dist/collection/components/image/lido-image.css +17 -17
  31. package/dist/collection/components/image/lido-image.js +6 -6
  32. package/dist/collection/components/keyboard/lido-keyboard.css +38 -38
  33. package/dist/collection/components/keyboard/lido-keyboard.js +3 -3
  34. package/dist/collection/components/mathMatrix/lido-math-matrix.css +56 -56
  35. package/dist/collection/components/mathMatrix/lido-math-matrix.js +1 -1
  36. package/dist/collection/components/position/lido-pos.css +16 -16
  37. package/dist/collection/components/position/lido-pos.js +2 -2
  38. package/dist/collection/components/random/lido-random.css +8 -8
  39. package/dist/collection/components/random/lido-random.js +2 -2
  40. package/dist/collection/components/root/lido-root.js +5 -5
  41. package/dist/collection/components/row/lido-row.css +10 -10
  42. package/dist/collection/components/row/lido-row.js +6 -6
  43. package/dist/collection/components/scale/assets/Shadow.svg +9 -9
  44. package/dist/collection/components/scale/lido-balance.css +145 -145
  45. package/dist/collection/components/scale/lido-balance.js +13 -13
  46. package/dist/collection/components/shape/lido-shape.css +216 -216
  47. package/dist/collection/components/shape/lido-shape.js +6 -6
  48. package/dist/collection/components/slideFill/lido-slide-fill.css +3 -3
  49. package/dist/collection/components/slideFill/lido-slide-fill.js +13 -13
  50. package/dist/collection/components/text/lido-text.css +53 -53
  51. package/dist/collection/components/text/lido-text.js +31 -6
  52. package/dist/collection/components/trace/assets/Tracing-hand.svg +8 -8
  53. package/dist/collection/components/trace/lido-trace.css +97 -97
  54. package/dist/collection/components/trace/lido-trace.js +22 -35
  55. package/dist/collection/components/wrap/lido-wrap.css +18 -18
  56. package/dist/collection/components/wrap/lido-wrap.js +6 -6
  57. package/dist/collection/css/animation.css +211 -211
  58. package/dist/collection/css/index.css +315 -315
  59. package/dist/collection/stories/Templates/Fill-Up/fill-up.stories.js +61 -61
  60. package/dist/collection/stories/Templates/LetterPairing/LetterPairing.stories.js +123 -123
  61. package/dist/collection/stories/Templates/RocketGame/rocketGame.stories.js +48 -48
  62. package/dist/collection/stories/Templates/Tag/tagGame.stories.js +39 -39
  63. package/dist/collection/stories/Templates/arrangeLetters/arrangeLetters.stories.js +44 -44
  64. package/dist/collection/stories/Templates/balancing/balancing.stories.js +35 -35
  65. package/dist/collection/stories/Templates/balloonPop/balloonPop.stories.js +38 -38
  66. package/dist/collection/stories/Templates/blender/blender.stories.js +63 -59
  67. package/dist/collection/stories/Templates/bubbleType/bubbleType.stories.js +42 -42
  68. package/dist/collection/stories/Templates/calculator/calculator.stories.js +28 -28
  69. package/dist/collection/stories/Templates/categorize/categorize.stories.js +37 -37
  70. package/dist/collection/stories/Templates/categorize2/categorize2.stories.js +67 -67
  71. package/dist/collection/stories/Templates/checker-block/checkerBlock.stories.js +29 -29
  72. package/dist/collection/stories/Templates/checkerBlock/checkerBlock.stories.js +13 -13
  73. package/dist/collection/stories/Templates/create-sentence/createSentence.stories.js +74 -74
  74. package/dist/collection/stories/Templates/dragAndDrop/drag-drop.stories.js +69 -69
  75. package/dist/collection/stories/Templates/fillAnswer/fill-answer.stories.js +43 -43
  76. package/dist/collection/stories/Templates/fillBlank/fill-blank.stories.js +282 -282
  77. package/dist/collection/stories/Templates/foodJar/food-jar.stories.js +35 -35
  78. package/dist/collection/stories/Templates/grid/grid.stories.js +118 -118
  79. package/dist/collection/stories/Templates/gridGame/grid-game.stories.js +57 -57
  80. package/dist/collection/stories/Templates/imageMatch/imageMatch.stories.js +44 -44
  81. package/dist/collection/stories/Templates/jumpSentence/jumpSentence.stories.js +41 -41
  82. package/dist/collection/stories/Templates/letterboard/letterboard.stories.js +183 -183
  83. package/dist/collection/stories/Templates/makeSentence/make-sentence.stories.js +36 -36
  84. package/dist/collection/stories/Templates/matchBox/matchBox.stories.js +69 -69
  85. package/dist/collection/stories/Templates/matchBox/matchBox2.stories.js +84 -84
  86. package/dist/collection/stories/Templates/matchingCard/matching-card.stories.js +31 -31
  87. package/dist/collection/stories/Templates/multipleOption/mcqWithQuestionImage.stories.js +112 -112
  88. package/dist/collection/stories/Templates/multipleOption/multiple-option.stories.js +47 -47
  89. package/dist/collection/stories/Templates/multiplyBeeds/multiplyBeeds.stories.js +57 -57
  90. package/dist/collection/stories/Templates/nimbleTable/nimbleTable.stories.js +53 -53
  91. package/dist/collection/stories/Templates/numberBoard/numberBoard.stories.js +46 -46
  92. package/dist/collection/stories/Templates/numberBoardTwo/numberBoardTwo.stories.js +45 -45
  93. package/dist/collection/stories/Templates/numberIdentification/numberIdentificationimageTotext.stories.js +56 -56
  94. package/dist/collection/stories/Templates/numberIdentification/numberIdentificationtextTotext.stories.js +53 -53
  95. package/dist/collection/stories/Templates/numberPair/numberPair.stories.js +127 -127
  96. package/dist/collection/stories/Templates/openwindow/openwindow.stories.js +47 -47
  97. package/dist/collection/stories/Templates/openwindow/openwindow2.stories.js +38 -38
  98. package/dist/collection/stories/Templates/order-tractor/order-tractor-ascending-order.stories.js +97 -97
  99. package/dist/collection/stories/Templates/order-tractor/order-tractor.stories.js +90 -90
  100. package/dist/collection/stories/Templates/palEgmaCalculateSum/palEgmaMultiOption.stories.js +63 -63
  101. package/dist/collection/stories/Templates/palEgmaCalculateSum/palEgmaSumTogether.stories.js +45 -45
  102. package/dist/collection/stories/Templates/palEgmaPatternMatching/palEgmaPatternMatching.stories.js +63 -63
  103. package/dist/collection/stories/Templates/palEgmaWordProblem/palEgmaWordProblem.stories.js +79 -79
  104. package/dist/collection/stories/Templates/palEgraInventedSpelling/pal_egra_invented_spelling_schema.stories.js +32 -32
  105. package/dist/collection/stories/Templates/palEgraMCQWithImage/palEgraMCQWithImage.stories.js +42 -42
  106. package/dist/collection/stories/Templates/palEgraOptionWithAudio/palEgraOptionWithAudio.stories.js +63 -63
  107. package/dist/collection/stories/Templates/palEgraStoryMaking/pal_egra_story_making.stories.js +44 -44
  108. package/dist/collection/stories/Templates/palEgraTemplate1/palEgraLetterIdentification.stories.js +34 -34
  109. package/dist/collection/stories/Templates/palEgraWordMatch/palEgraWordMatch.stories.js +52 -52
  110. package/dist/collection/stories/Templates/palEgra_OddOneOut/palEgra_oddOneOut.stories.js +33 -33
  111. package/dist/collection/stories/Templates/palEgra_arrange_pictures/palEgra_arrange_pictures.stories.js +40 -40
  112. package/dist/collection/stories/Templates/palEgra_build_word/palEgra_build_word.stories.js +48 -48
  113. package/dist/collection/stories/Templates/palEgra_word_formation/palEgra_WordFormation.stories.js +48 -48
  114. package/dist/collection/stories/Templates/palStorytale/palStorytale.stories.js +18 -18
  115. package/dist/collection/stories/Templates/phonic-tractor/phonic-tractor.stories.js +44 -44
  116. package/dist/collection/stories/Templates/pictureClues/pictureClues.stories.js +34 -34
  117. package/dist/collection/stories/Templates/pictureWordMatch/pictureWordMatch1.stories.js +36 -36
  118. package/dist/collection/stories/Templates/pictureWordMatch/pictureWordMatch2.stories.js +30 -30
  119. package/dist/collection/stories/Templates/picturemeaning/pictureMeaningCocos.stories.js +20 -20
  120. package/dist/collection/stories/Templates/puzzleGame/puzzleGame.stories.js +17 -17
  121. package/dist/collection/stories/Templates/questionBoard/questionBoard.stories.js +58 -58
  122. package/dist/collection/stories/Templates/quizLiteracy/quizLiteracy.stories.js +50 -50
  123. package/dist/collection/stories/Templates/quizLiteracy/quizLiteracyImageWithText.stories.js +36 -36
  124. package/dist/collection/stories/Templates/quizLiteracy/quizLiteracyImageWord.stories.js +43 -43
  125. package/dist/collection/stories/Templates/quizMaths/quizMaths.stories.js +631 -631
  126. package/dist/collection/stories/Templates/reorder/reorder.stories.js +63 -63
  127. package/dist/collection/stories/Templates/rowBlocks/rowBlocks.stories.js +47 -47
  128. package/dist/collection/stories/Templates/sentenceMatch/sentenceMatch.stories.js +29 -29
  129. package/dist/collection/stories/Templates/sequenceBox/sequenceBox1.stories.js +64 -64
  130. package/dist/collection/stories/Templates/sequenceBox/sequenceBox2.stories.js +62 -62
  131. package/dist/collection/stories/Templates/shapePair/shape-pair.stories.js +106 -106
  132. package/dist/collection/stories/Templates/shapeTractor/shape-tractor.stories.js +50 -50
  133. package/dist/collection/stories/Templates/spellDoor/spellDoor.stories.js +41 -41
  134. package/dist/collection/stories/Templates/storyTale/storyTale.stories.js +39 -39
  135. package/dist/collection/stories/Templates/substraction/substractionWithimg.stories.js +62 -62
  136. package/dist/collection/stories/Templates/substraction/substractionWithoutImg.stories.js +42 -42
  137. package/dist/collection/stories/Templates/sumTogether/sumTogether.stories.js +50 -50
  138. package/dist/collection/stories/Templates/tenBox/tenBox.stories.js +88 -88
  139. package/dist/collection/stories/Templates/total/total.stories.js +28 -28
  140. package/dist/collection/stories/Templates/wordBuilding/wordBuildingwithimg.stories.js +35 -35
  141. package/dist/collection/stories/Templates/wordBuilding/wordBuildingwithoutimg.stories.js +34 -34
  142. package/dist/collection/stories/Templates/writeCard/writeCard.stories.js +31 -31
  143. package/dist/collection/stories/Templates/writeLetter/writeLetter.stories.js +58 -58
  144. package/dist/collection/stories/Templates/writeNumber/writeNumber.stories.js +44 -44
  145. package/dist/collection/stories/Templates/writeSet/writeSet.stories.js +31 -31
  146. package/dist/collection/stories/Templates/writeWord/writeWord.stories.js +34 -34
  147. package/dist/collection/stories/components/flash-card.stories.js +48 -48
  148. package/dist/collection/stories/components/keyboard.stories.js +10 -10
  149. package/dist/collection/stories/components/slider.stories.js +4 -4
  150. package/dist/collection/stories/components/trace.stories.js +5 -5
  151. package/dist/collection/utils/utils.js +26 -17
  152. package/dist/collection/utils/utilsHandlers/dragDropHandler.js +36 -16
  153. package/dist/collection/utils/utilsHandlers/highlightHandler.js +54 -54
  154. package/dist/collection/utils/utilsHandlers/slideHandler.js +80 -23
  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-keyboard.js +1 -1
  168. package/dist/components/lido-math-matrix.js +1 -1
  169. package/dist/components/lido-pos.js +1 -1
  170. package/dist/components/lido-random.js +1 -1
  171. package/dist/components/lido-root.js +1 -1
  172. package/dist/components/lido-row.js +1 -1
  173. package/dist/components/lido-shape.js +1 -1
  174. package/dist/components/lido-slide-fill.js +1 -1
  175. package/dist/components/lido-text.js +1 -1
  176. package/dist/components/lido-trace.js +1 -1
  177. package/dist/components/lido-wrap.js +1 -1
  178. package/dist/components/{p-CCR42e0i.js → p-BE25wHoo.js} +1 -1
  179. package/dist/components/p-BNNX1Pew.js +12 -0
  180. package/dist/components/p-BSV5U72F.js +1 -0
  181. package/dist/components/{p-CTlcpv4a.js → p-BfwUqpXc.js} +1 -1
  182. package/dist/components/{p-CgsPIpg0.js → p-Bw-OC9iR.js} +1 -1
  183. package/dist/components/{p-C5WmmkI6.js → p-CPYnt0P-.js} +1 -1
  184. package/dist/components/p-CTlwn9r7.js +1 -0
  185. package/dist/components/{p-CIbBOu51.js → p-Cj-6tqzU.js} +1 -1
  186. package/dist/components/{p-BfqihbR6.js → p-CjdDpXfk.js} +1 -1
  187. package/dist/components/{p-BeRr8u5m.js → p-CwDTdXe5.js} +1 -1
  188. package/dist/components/{p-CXHPZN3m.js → p-CyGxEcn7.js} +1 -1
  189. package/dist/components/p-D-B1groh.js +1 -0
  190. package/dist/components/{p-DuvxecDX.js → p-D54c-ybm.js} +1 -1
  191. package/dist/components/p-DbR5sNOj.js +1 -0
  192. package/dist/components/{p-B8nzzM8c.js → p-DdQ1eqJr.js} +1 -1
  193. package/dist/components/{p-CxkH5UIf.js → p-SPZTb5fI.js} +1 -1
  194. package/dist/components/{p-BBHM059l.js → p-Sl9R-E6h.js} +1 -1
  195. package/dist/components/p-leIEepjl.js +1 -0
  196. package/dist/components/{p-C70ykycD.js → p-useuhkjH.js} +1 -1
  197. package/dist/components/{p-BXvoOUIv.js → p-yT7udDfd.js} +1 -1
  198. package/dist/esm/{decode-To5V_Qqp.js → decode-BgBfbPZu.js} +1 -1
  199. package/dist/esm/{index-Dnvog_Mm.js → index-BeHFCsWf.js} +53 -12
  200. package/dist/esm/{index-CEJsA_x_.js → index-D-29PaRa.js} +185 -86
  201. package/dist/esm/index.js +2 -2
  202. package/dist/esm/lido-avatar_22.entry.js +61 -68
  203. package/dist/esm/lido-player.js +4 -4
  204. package/dist/esm/loader.js +3 -3
  205. package/dist/lido-player/assets/Shadow.svg +9 -9
  206. package/dist/lido-player/assets/Tracing-hand.svg +8 -8
  207. package/dist/lido-player/index.esm.js +1 -1
  208. package/dist/lido-player/lido-avatar.css +4 -4
  209. package/dist/lido-player/lido-avatar.tsx +207 -207
  210. package/dist/lido-player/lido-player.css +7 -7
  211. package/dist/lido-player/lido-player.esm.js +1 -1
  212. package/dist/lido-player/{p-3b6e3b51.entry.js → p-856e1956.entry.js} +3 -3
  213. package/dist/lido-player/{p-DUx4nii8.js → p-BA2X6O7O.js} +1 -1
  214. package/dist/lido-player/p-BeHFCsWf.js +3 -0
  215. package/dist/lido-player/p-TuBmCgtK.js +1 -0
  216. package/dist/lido-player/readme.md +49 -49
  217. package/dist/types/components/text/lido-text.d.ts +6 -1
  218. package/dist/types/components/trace/lido-trace.d.ts +1 -1
  219. package/dist/types/components.d.ts +11 -0
  220. package/dist/types/stencil-public-runtime.d.ts +12 -0
  221. package/dist/types/types/json.d.ts +3 -3
  222. package/dist/types/utils/utilsHandlers/slideHandler.d.ts +5 -0
  223. package/loader/index.d.ts +1 -1
  224. package/package.json +74 -73
  225. package/readme.md +113 -113
  226. package/dist/components/p-CwIlwnQk.js +0 -1
  227. package/dist/components/p-DBbLGy4y.js +0 -12
  228. package/dist/components/p-DLyacZap.js +0 -1
  229. package/dist/components/p-DONbWJGn.js +0 -1
  230. package/dist/components/p-DVTigdH_.js +0 -1
  231. package/dist/components/p-Dv1cIsyS.js +0 -1
  232. package/dist/lido-player/p-Dnvog_Mm.js +0 -2
  233. package/dist/lido-player/p-gkKsw3a6.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 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 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 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 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 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 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 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 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
  }
@@ -337,10 +337,11 @@ export const executeActions = async (actionsString, thisElement, element) => {
337
337
  if (dropTo === "hundredsDrop")
338
338
  hundreds++;
339
339
  });
340
- const unitsValue = units * 1;
341
- const tensValue = tens * 10;
342
- const hundredsValue = hundreds * 100;
343
- const totalValue = unitsValue + tensValue + hundredsValue;
340
+ // Blender displays the number of blocks placed in each column.
341
+ // Blender's drag/drop values are also the required block counts.
342
+ const unitsValue = units;
343
+ const tensValue = tens;
344
+ const hundredsValue = hundreds;
344
345
  // ✅ Update Lido Text Boxes
345
346
  const unitsBox = document.getElementById("units");
346
347
  const tensBox = document.getElementById("tens");
@@ -398,11 +399,11 @@ const afterDropDragHandling = (dragElement, dropElement) => {
398
399
  }
399
400
  dummyElement.setAttribute('id', dragElement.getAttribute('id'));
400
401
  dragElement.replaceWith(dummyElement);
401
- const keyframes = `
402
- @keyframes widthDecrease {
403
- 0% { width: ${dragElement.style.width}; height: ${dragElement.style.height}; margin: ${dragElement.style.margin}; }
404
- 100% { width: 0px; height: 0px; margin: 0px;}
405
- }
402
+ const keyframes = `
403
+ @keyframes widthDecrease {
404
+ 0% { width: ${dragElement.style.width}; height: ${dragElement.style.height}; margin: ${dragElement.style.margin}; }
405
+ 100% { width: 0px; height: 0px; margin: 0px;}
406
+ }
406
407
  `;
407
408
  if (!isInfinite) {
408
409
  dummyElement.style.width = element.style.width;
@@ -607,13 +608,21 @@ export const calculateScore = () => {
607
608
  gameScore.wrongMoves = 0;
608
609
  };
609
610
  export async function onActivityComplete(dragElement, dropElement) {
610
- var _a, _b;
611
+ var _a, _b, _c;
611
612
  const container = document.getElementById(LidoContainer);
612
613
  if (!container)
613
614
  return;
615
+ const isBlender = container.getAttribute('template-id') === 'blender';
614
616
  await executeActions("this.alignMatch='true'", dropElement, dragElement);
615
617
  if (dragElement && dropElement) {
616
- const isCorrect = dropElement['value'].toLowerCase().includes(dragElement['value'].toLowerCase());
618
+ let isCorrect = dropElement['value'].toLowerCase().includes(dragElement['value'].toLowerCase());
619
+ if (isBlender) {
620
+ const requiredDrops = Number((_a = dropElement.getAttribute('required-drops')) !== null && _a !== void 0 ? _a : 0);
621
+ const placedDrops = document.querySelectorAll(`[drop-to="${dropElement.id}"]`).length;
622
+ // Blender accepts every count from 1 through the required count.
623
+ // Zero or an overfilled drop zone uses the incorrect action.
624
+ isCorrect = placedDrops > 0 && placedDrops <= requiredDrops;
625
+ }
617
626
  // storing each activity score based on isCorrect for (all drag-drop events)
618
627
  // storingEachActivityScore(isCorrect);
619
628
  if (isCorrect) {
@@ -622,10 +631,10 @@ export async function onActivityComplete(dragElement, dropElement) {
622
631
  console.log("Right Moves : ", gameScore.rightMoves);
623
632
  console.log("Wrong Moves : ", gameScore.wrongMoves);
624
633
  }
625
- const onCorrect = ((_a = container.getAttribute('dropAttr')) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === DropMode.EnableAnimation.toLowerCase()
634
+ const onCorrect = ((_b = container.getAttribute('dropAttr')) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === DropMode.EnableAnimation.toLowerCase()
626
635
  ? ''
627
636
  : dropElement.getAttribute('onCorrect');
628
- if (onCorrect) {
637
+ if (onCorrect && !isBlender) {
629
638
  await executeActions(onCorrect, dropElement, dragElement);
630
639
  }
631
640
  //for multiply beeds
@@ -640,7 +649,7 @@ export async function onActivityComplete(dragElement, dropElement) {
640
649
  console.log("Wrong Moves : ", gameScore.wrongMoves);
641
650
  }
642
651
  const onInCorrect = dropElement.getAttribute('onInCorrect');
643
- if (onInCorrect) {
652
+ if (onInCorrect && !isBlender) {
644
653
  await executeActions(onInCorrect, dropElement, dragElement);
645
654
  }
646
655
  }
@@ -649,7 +658,7 @@ export async function onActivityComplete(dragElement, dropElement) {
649
658
  const sortedValues = getSortedValuesArrayFromMap(dragScore);
650
659
  container.setAttribute(SelectedValuesKey, JSON.stringify(sortedValues));
651
660
  //localStorage
652
- let drag = JSON.parse((_b = localStorage.getItem(DragMapKey)) !== null && _b !== void 0 ? _b : '{}');
661
+ let drag = JSON.parse((_c = localStorage.getItem(DragMapKey)) !== null && _c !== void 0 ? _c : '{}');
653
662
  const index = dropElement.getAttribute('tab-index');
654
663
  if (!drag[index]) {
655
664
  drag[index] = [];
@@ -710,7 +719,7 @@ const storeActivityScore = (score) => {
710
719
  activityScore[activityScoreKey] = score;
711
720
  //send Custom Event to parent
712
721
  // window.dispatchEvent(new CustomEvent(ActivityEndKey, { detail: { index: index, totalIndex: totalIndex, score: score } }));
713
- const actualActivitySeconds = Number((Timer.getI().getElapsed() / 1000).toFixed(1));
722
+ const actualActivitySeconds = Math.ceil(Timer.getI().getElapsed() / 1000);
714
723
  ACTIVYTY_TIME_SPEND_ARRAY.push(actualActivitySeconds);
715
724
  console.log(`[Utils][Activity Time] Activity ${index + 1}/${totalIndex} - Time spent: ${actualActivitySeconds}s`);
716
725
  const lessonTrackingParams = getLessonTrackingParams();
@@ -722,7 +731,7 @@ const storeActivityScore = (score) => {
722
731
  gameScore.finalScore = Math.floor(finalScore);
723
732
  console.log('Total Score : ', gameScore.finalScore);
724
733
  // window.dispatchEvent(new CustomEvent(LessonEndKey, { detail: { score: finalScore } }));
725
- const timeSpendForLesson = Number(ACTIVYTY_TIME_SPEND_ARRAY.reduce((sum, current) => sum + current, 0).toFixed(1));
734
+ const timeSpendForLesson = ACTIVYTY_TIME_SPEND_ARRAY.reduce((sum, current) => sum + current, 0);
726
735
  console.log(`[Utils][Lesson Time] Total lesson time spent: ${timeSpendForLesson}s`);
727
736
  dispatchLessonEndEvent(totalIndex, gameScore.totalRightMovesCount, gameScore.totalWrongMovesCount, finalScore, timeSpendForLesson, lessonTrackingParams);
728
737
  gameScore.totalRightMovesCount = 0;
@@ -5,6 +5,7 @@ import { DropLength, SelectedValuesKey, DropMode, DropToAttr, DropTimeAttr, Lido
5
5
  import { dispatchElementDropEvent } from "../customEvents";
6
6
  import { highlightElement, removeHighlight } from "./highlightHandler";
7
7
  import { dragDropAnimation } from "./animationHandler";
8
+ const isBlenderTemplate = (container) => (container === null || container === void 0 ? void 0 : container.getAttribute('template-id')) === 'blender';
8
9
  export function buildDropHasDragFromDOM() {
9
10
  const dropHasDrag = {};
10
11
  const dropElements = document.querySelectorAll("[type='drop']");
@@ -63,7 +64,6 @@ export function enableDraggingWithScaling(element) {
63
64
  let mutationFlag = false;
64
65
  // Fetch the container element
65
66
  const container = document.getElementById(LidoContainer);
66
- const templateId = container.getAttribute("template-id");
67
67
  if (!container) {
68
68
  console.error(`Container with ID "container" not found.`);
69
69
  return;
@@ -230,7 +230,7 @@ export function enableDraggingWithScaling(element) {
230
230
  allElements.forEach(otherElement => {
231
231
  var _a;
232
232
  if (storedTabIndexes.includes(JSON.parse(otherElement.getAttribute('tab-index')))) {
233
- if (!(((_a = element.getAttribute('dropAttr')) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === DropMode.Diagonal) && container.getAttribute("template-id") !== "blender") {
233
+ if (!(((_a = element.getAttribute('dropAttr')) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === DropMode.Diagonal) && !isBlenderTemplate(container)) {
234
234
  if (otherElement) {
235
235
  setOpacityIfChanged(otherElement, "0.3");
236
236
  }
@@ -318,7 +318,7 @@ export function enableDraggingWithScaling(element) {
318
318
  else {
319
319
  onElementDropComplete(element, mostOverlappedElement);
320
320
  }
321
- if (templateId === "blender" && element && mostOverlappedElement) {
321
+ if (isBlenderTemplate(container) && element && mostOverlappedElement) {
322
322
  const allElements = document.querySelectorAll(`*`);
323
323
  allElements.forEach(el => {
324
324
  removeHighlight(el);
@@ -546,7 +546,7 @@ export async function handleResetDragElement(dragElement, dropElement, dropHasDr
546
546
  highlightElement();
547
547
  }
548
548
  export async function onElementDropComplete(dragElement, dropElement) {
549
- var _a, _b, _c, _d, _e, _f, _g, _h;
549
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
550
550
  const container = document.getElementById(LidoContainer);
551
551
  const selectedValueData = (_a = container.getAttribute(SelectedValuesKey)) !== null && _a !== void 0 ? _a : "[]";
552
552
  const dragSelectedData = JSON.stringify(buildDragSelectedMapFromDOM());
@@ -769,28 +769,48 @@ export async function onElementDropComplete(dragElement, dropElement) {
769
769
  // Add pulse and highlight effect for a successful match
770
770
  const isCorrect = dropElement['value'].toLowerCase().includes(dragElement['value'].toLowerCase());
771
771
  dispatchElementDropEvent(dragElement, dropElement, isCorrect);
772
- if (container.getAttribute("template-id") !== "blender") {
772
+ if (!isBlenderTemplate(container)) {
773
773
  storingEachActivityScore(isCorrect);
774
774
  }
775
775
  dragElement.style.opacity = '1';
776
776
  const allDropElements = document.querySelectorAll('.drop-element');
777
777
  allDropElements.forEach(el => updateDropBorder(el));
778
+ if (isBlenderTemplate(container)) {
779
+ const requiredDrops = Number((_j = dropElement.getAttribute('required-drops')) !== null && _j !== void 0 ? _j : 0);
780
+ const placedDrops = document.querySelectorAll(`[${DropToAttr}="${dropElement.id}"]`).length;
781
+ const action = placedDrops > 0 && placedDrops <= requiredDrops
782
+ ? dropElement.getAttribute('onCorrect')
783
+ : dropElement.getAttribute('onInCorrect');
784
+ if (action) {
785
+ await executeActions(action, dropElement, dragElement);
786
+ }
787
+ }
778
788
  highlightElement();
779
789
  await onActivityComplete(dragElement, dropElement);
780
790
  }
781
791
  export function updateDropBorder(element) {
792
+ var _a;
782
793
  if (!element || !element.classList.contains('drop-element'))
783
794
  return;
784
795
  const container = document.getElementById(LidoContainer);
785
796
  if (!container)
786
797
  return;
787
798
  const showBorder = container.getAttribute('show-drop-border');
788
- if (showBorder !== 'true') {
799
+ if (showBorder !== 'true' && !isBlenderTemplate(container)) {
789
800
  return;
790
801
  }
791
802
  const dropId = element.id;
792
803
  const dragSelectedElements = document.querySelectorAll(`[${DropToAttr}="${dropId}"]`);
793
- if (dragSelectedElements.length > 0 && container.getAttribute("template-id") !== "blender") {
804
+ if (isBlenderTemplate(container)) {
805
+ const requiredDrops = Number((_a = element.getAttribute('required-drops')) !== null && _a !== void 0 ? _a : 0);
806
+ const placedDrops = dragSelectedElements.length;
807
+ const showCorrectBorder = placedDrops > 0 && placedDrops <= requiredDrops;
808
+ element.classList.toggle('empty', !showCorrectBorder);
809
+ element.classList.remove('filled');
810
+ element.style.setProperty('border', showCorrectBorder ? '5px dashed green' : '5px dashed #f34d08', 'important');
811
+ return;
812
+ }
813
+ if (dragSelectedElements.length > 0 && !isBlenderTemplate(container)) {
794
814
  element.classList.add('filled');
795
815
  element.classList.remove('empty');
796
816
  element.classList.remove('highlight-element');
@@ -835,14 +855,14 @@ export async function onClickDropOrDragElement(element, type) {
835
855
  if (!document.querySelector('#dynamic-highlight-style')) {
836
856
  const style = document.createElement('style');
837
857
  style.id = 'dynamic-highlight-style';
838
- style.innerHTML = `
839
- .highlight {
840
- // border: 4px solid #e74c3c; /* Thicker red border for more visibility */
841
- // border-radius: 12px; /* Larger rounded corners */
842
- // background-color: rgba(231, 76, 60, 0.3); /* Stronger, more noticeable background */
843
- // box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2), 0 12px 40px rgba(0, 0, 0, 0.2); /* Stronger shadow */
844
- // outline: 4px solid rgba(231, 76, 60, 0.6); /* Glow effect */
845
- }
858
+ style.innerHTML = `
859
+ .highlight {
860
+ // border: 4px solid #e74c3c; /* Thicker red border for more visibility */
861
+ // border-radius: 12px; /* Larger rounded corners */
862
+ // background-color: rgba(231, 76, 60, 0.3); /* Stronger, more noticeable background */
863
+ // box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2), 0 12px 40px rgba(0, 0, 0, 0.2); /* Stronger shadow */
864
+ // outline: 4px solid rgba(231, 76, 60, 0.6); /* Glow effect */
865
+ }
846
866
  `;
847
867
  document.head.appendChild(style);
848
868
  }
@@ -880,7 +900,7 @@ export async function onClickDropOrDragElement(element, type) {
880
900
  // Move the drag element to the drop position
881
901
  selectedDragElement.style.transform = `translate(${translateX}px, ${translateY}px)`;
882
902
  // Remove highlights after moving the element
883
- if (container.getAttribute("template-id") !== "blender") {
903
+ if (!isBlenderTemplate(container)) {
884
904
  const allElements = document.querySelectorAll(`*`);
885
905
  allElements.forEach(el => {
886
906
  removeHighlight(el);