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
@@ -1,4 +1,4 @@
1
- import { c as getAssetPath } from './index-mMpK8062.js';
1
+ import { c as getAssetPath } from './index-Dvjbti-h.js';
2
2
 
3
3
  const DragMapKey = 'lidoDragMap';
4
4
  const SelectedValuesKey = 'lidoSelectedValues';
@@ -19,6 +19,12 @@ const DropTimeAttr = 'drop-time';
19
19
  const LidoContainer = 'lido-container';
20
20
  const LIDO_COMMON_AUDIO_PATH = '__LIDO_COMMON_AUDIO_PATH__';
21
21
  const LIDO_COMMON_AUDIO_READY_EVENT = 'lidoCommonAudioPathReady';
22
+ const GOOD_JOB_AUDIO_FILE = 'goodJob.mp3';
23
+ const resolveCommonAudioPath = (basePath, fileName) => {
24
+ if (!basePath || !fileName)
25
+ return undefined;
26
+ return `${basePath}/${fileName}`;
27
+ };
22
28
  const LIDO_INTERACTION_CLEANUP_EVENT = 'lido:interaction-cleanup';
23
29
  const TemplateID = 'template-id';
24
30
  const CalculatorOk = 'calculator-ok';
@@ -1349,14 +1355,14 @@ async function onClickDropOrDragElement(element, type) {
1349
1355
  if (!document.querySelector('#dynamic-highlight-style')) {
1350
1356
  const style = document.createElement('style');
1351
1357
  style.id = 'dynamic-highlight-style';
1352
- style.innerHTML = `
1353
- .highlight {
1354
- // border: 4px solid #e74c3c; /* Thicker red border for more visibility */
1355
- // border-radius: 12px; /* Larger rounded corners */
1356
- // background-color: rgba(231, 76, 60, 0.3); /* Stronger, more noticeable background */
1357
- // box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2), 0 12px 40px rgba(0, 0, 0, 0.2); /* Stronger shadow */
1358
- // outline: 4px solid rgba(231, 76, 60, 0.6); /* Glow effect */
1359
- }
1358
+ style.innerHTML = `
1359
+ .highlight {
1360
+ // border: 4px solid #e74c3c; /* Thicker red border for more visibility */
1361
+ // border-radius: 12px; /* Larger rounded corners */
1362
+ // background-color: rgba(231, 76, 60, 0.3); /* Stronger, more noticeable background */
1363
+ // box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2), 0 12px 40px rgba(0, 0, 0, 0.2); /* Stronger shadow */
1364
+ // outline: 4px solid rgba(231, 76, 60, 0.6); /* Glow effect */
1365
+ }
1360
1366
  `;
1361
1367
  document.head.appendChild(style);
1362
1368
  }
@@ -1544,34 +1550,34 @@ function highlightSpeakingElement(element) {
1544
1550
  if (!document.getElementById(styleId)) {
1545
1551
  const style = document.createElement('style');
1546
1552
  style.id = styleId;
1547
- style.innerHTML = `
1548
- .speaking-highlight {
1549
- --base-transform: ${element.style.transform};
1550
- box-shadow: 0 0 20px 10px rgba(255, 165, 0, 0.9) !important; /* Stronger orange glow effect */
1551
- // border: 3px solid green !important;
1552
- // transition: box-shadow 0.5s ease-in-out, transform 0.5s ease-in-out;
1553
- // transform: scale(1.05); /* Subtle scale effect to pop the element */
1554
- // animation: pulseEffect 1.5s infinite; /* Pulsing animation */
1555
-
1556
- }
1557
-
1558
- @keyframes pulseEffect {
1559
- 0% {
1560
- box-shadow: 0 0 20px 10px rgba(255, 165, 0, 0.9);
1561
- // transform: var(--base-transform) scale(1.05);
1562
- // background-color: #FFFF0B;
1563
- }
1564
- 50% {
1565
- box-shadow: 0 0 30px 15px rgba(255, 165, 0, 1);
1566
- // transform: var(--base-transform) scale(1.1);
1567
- // background-color: #FFFF0B;
1568
- }
1569
- 100% {
1570
- box-shadow: 0 0 20px 10px rgba(255, 165, 0, 0.9);
1571
- // transform: var(--base-transform) scale(1.05);
1572
- // background-color: #FFFF0B;
1573
- }
1574
- }
1553
+ style.innerHTML = `
1554
+ .speaking-highlight {
1555
+ --base-transform: ${element.style.transform};
1556
+ box-shadow: 0 0 20px 10px rgba(255, 165, 0, 0.9) !important; /* Stronger orange glow effect */
1557
+ // border: 3px solid green !important;
1558
+ // transition: box-shadow 0.5s ease-in-out, transform 0.5s ease-in-out;
1559
+ // transform: scale(1.05); /* Subtle scale effect to pop the element */
1560
+ // animation: pulseEffect 1.5s infinite; /* Pulsing animation */
1561
+
1562
+ }
1563
+
1564
+ @keyframes pulseEffect {
1565
+ 0% {
1566
+ box-shadow: 0 0 20px 10px rgba(255, 165, 0, 0.9);
1567
+ // transform: var(--base-transform) scale(1.05);
1568
+ // background-color: #FFFF0B;
1569
+ }
1570
+ 50% {
1571
+ box-shadow: 0 0 30px 15px rgba(255, 165, 0, 1);
1572
+ // transform: var(--base-transform) scale(1.1);
1573
+ // background-color: #FFFF0B;
1574
+ }
1575
+ 100% {
1576
+ box-shadow: 0 0 20px 10px rgba(255, 165, 0, 0.9);
1577
+ // transform: var(--base-transform) scale(1.05);
1578
+ // background-color: #FFFF0B;
1579
+ }
1580
+ }
1575
1581
  `;
1576
1582
  document.head.appendChild(style);
1577
1583
  }
@@ -1747,7 +1753,7 @@ class AudioPlayer {
1747
1753
  return el;
1748
1754
  return el.closest('lido-text');
1749
1755
  }
1750
- async play(targetElement, suppressHighlight = false, playbackContext) {
1756
+ async play(targetElement, suppressHighlight = false, playbackContext, fallbackAudio) {
1751
1757
  this.registerVisibilityEvents();
1752
1758
  this.playbackHasStarted = false;
1753
1759
  if (!this.isWindowVisible()) {
@@ -1850,7 +1856,12 @@ class AudioPlayer {
1850
1856
  };
1851
1857
  });
1852
1858
  }
1853
- catch (error) { }
1859
+ catch (error) {
1860
+ if (fallbackAudio && fallbackAudio !== audioUrl) {
1861
+ targetElement.setAttribute('audio', fallbackAudio);
1862
+ await this.play(targetElement, suppressHighlight, playbackContext);
1863
+ }
1864
+ }
1854
1865
  finally {
1855
1866
  this.audioElement.onended = null;
1856
1867
  this.audioElement.onloadedmetadata = null;
@@ -2282,11 +2293,11 @@ function enableReorderDrag(element) {
2282
2293
  onDropToCategory(element, category);
2283
2294
  }
2284
2295
  if (divEl) {
2285
- const keyframes = `
2286
- @keyframes widthDecrease {
2287
- 0% { width: ${divEl.offsetWidth}px; height: ${divEl.offsetHeight}px; }
2288
- 100% { width: 0px; height: 0px;}
2289
- }
2296
+ const keyframes = `
2297
+ @keyframes widthDecrease {
2298
+ 0% { width: ${divEl.offsetWidth}px; height: ${divEl.offsetHeight}px; }
2299
+ 100% { width: 0px; height: 0px;}
2300
+ }
2290
2301
  `;
2291
2302
  const styleSheet = document.styleSheets[0];
2292
2303
  styleSheet.insertRule(keyframes, styleSheet.cssRules.length);
@@ -2509,11 +2520,11 @@ function moveWithAnimation(target, overlapped) {
2509
2520
  const dummy = createDummyElement(target);
2510
2521
  dummy.style.visibility = 'hidden';
2511
2522
  dummy.setAttribute('type', 'dummy');
2512
- const keyframes = `
2513
- @keyframes widthIncrease {
2514
- 0% { width: 0px; height: 0px; }
2515
- 100% { width: ${target.offsetWidth}px; height: ${target.offsetHeight}px;}
2516
- }
2523
+ const keyframes = `
2524
+ @keyframes widthIncrease {
2525
+ 0% { width: 0px; height: 0px; }
2526
+ 100% { width: ${target.offsetWidth}px; height: ${target.offsetHeight}px;}
2527
+ }
2517
2528
  `;
2518
2529
  if (!overlapped) {
2519
2530
  const overlapCategory = findMostoverlappedElement(target, 'category');
@@ -32061,15 +32072,15 @@ function _typeof(o) {
32061
32072
  }, _typeof(o);
32062
32073
  }
32063
32074
 
32064
- function toPrimitive(t, e) {
32075
+ function toPrimitive(t, r) {
32065
32076
  if ("object" != _typeof(t) || !t) return t;
32066
- var r;
32067
- if ("undefined" != typeof Symbol && void 0 !== (r = t[Symbol.toPrimitive])) {
32068
- var i = r.call(t, e);
32077
+ var e = t[Symbol.toPrimitive];
32078
+ if (void 0 !== e) {
32079
+ var i = e.call(t, r);
32069
32080
  if ("object" != _typeof(i)) return i;
32070
32081
  throw new TypeError("@@toPrimitive must return a primitive value.");
32071
32082
  }
32072
- return ("string" === e ? String : Number)(t);
32083
+ return ("string" === r ? String : Number)(t);
32073
32084
  }
32074
32085
 
32075
32086
  function toPropertyKey(t) {
@@ -72880,6 +72891,44 @@ class Timer {
72880
72891
  let ACTIVYTY_TIME_SPEND_ARRAY = [];
72881
72892
 
72882
72893
  const gameScore = new GameScore();
72894
+ const GOOD_JOB_TEMPLATES = new Set(['flashcardtemplate', 'writeCard', 'drawShape', 'storyTale']);
72895
+ const isGoodJobAudioTarget = (element) => {
72896
+ var _a;
72897
+ const templateId = (_a = element === null || element === void 0 ? void 0 : element.closest('lido-container')) === null || _a === void 0 ? void 0 : _a.getAttribute('template-id');
72898
+ if (!GOOD_JOB_TEMPLATES.has(templateId || ''))
72899
+ return false;
72900
+ if ((element === null || element === void 0 ? void 0 : element.id) === 'arrow')
72901
+ return true;
72902
+ return templateId === 'storyTale' && (element === null || element === void 0 ? void 0 : element.id) === 'arrow1' && !!element.closest('#arrow');
72903
+ };
72904
+ const resetGoodJobAudioTracking = (home) => {
72905
+ home.__lidoGoodJobTemplates = new Set();
72906
+ };
72907
+ const shouldPlayGoodJobAudio = (element) => {
72908
+ var _a;
72909
+ if (!isGoodJobAudioTarget(element))
72910
+ return false;
72911
+ // Standalone templates and editor previews have no lesson host. Preserve
72912
+ // their existing behavior rather than making them depend on lido-home.
72913
+ const home = element.closest('lido-home');
72914
+ if (!home)
72915
+ return true;
72916
+ const templateId = (_a = element.closest('lido-container')) === null || _a === void 0 ? void 0 : _a.getAttribute('template-id');
72917
+ if (!templateId)
72918
+ return true;
72919
+ const played = home.__lidoGoodJobTemplates || (home.__lidoGoodJobTemplates = new Set());
72920
+ if (played.has(templateId))
72921
+ return false;
72922
+ played.add(templateId);
72923
+ return true;
72924
+ };
72925
+ const getGoodJobAudio = (element) => {
72926
+ if (!element)
72927
+ return undefined;
72928
+ if (!isGoodJobAudioTarget(element))
72929
+ return undefined;
72930
+ return resolveCommonAudioPath(window[LIDO_COMMON_AUDIO_PATH], GOOD_JOB_AUDIO_FILE);
72931
+ };
72883
72932
  function buildDragSelectedMapFromDOM() {
72884
72933
  const map = {};
72885
72934
  const draggedEls = document.querySelectorAll(`[${DropToAttr}]`);
@@ -73101,7 +73150,21 @@ const executeActions = async (actionsString, thisElement, element, options = {})
73101
73150
  const val = (action.value || '').toString().trim().toLowerCase();
73102
73151
  if (val === 'true' || val === '1' || val === 'yes') {
73103
73152
  try {
73104
- await AudioPlayer.getI().play(targetElement);
73153
+ if (isGoodJobAudioTarget(targetElement) && !shouldPlayGoodJobAudio(targetElement))
73154
+ break;
73155
+ const isGoodJobTarget = isGoodJobAudioTarget(targetElement);
73156
+ const currentAudio = targetElement.getAttribute('audio') || undefined;
73157
+ const originalAudio = isGoodJobTarget
73158
+ ? (targetElement.getAttribute('data-lido-original-audio') || currentAudio)
73159
+ : currentAudio;
73160
+ const localizedAudio = getGoodJobAudio(targetElement);
73161
+ if (localizedAudio) {
73162
+ if (currentAudio && !targetElement.hasAttribute('data-lido-original-audio')) {
73163
+ targetElement.setAttribute('data-lido-original-audio', currentAudio);
73164
+ }
73165
+ targetElement.setAttribute('audio', localizedAudio);
73166
+ }
73167
+ await AudioPlayer.getI().play(targetElement, false, undefined, originalAudio);
73105
73168
  }
73106
73169
  catch (err) {
73107
73170
  console.error('Error playing audio for speak action:', err);
@@ -73347,11 +73410,11 @@ const afterDropDragHandling = (dragElement, dropElement) => {
73347
73410
  if (!sourcePlaceholder) {
73348
73411
  dragElement.replaceWith(dummyElement);
73349
73412
  }
73350
- const keyframes = `
73351
- @keyframes widthDecrease {
73352
- 0% { width: ${dragElement.style.width}; height: ${dragElement.style.height}; margin: ${dragElement.style.margin}; }
73353
- 100% { width: 0px; height: 0px; margin: 0px;}
73354
- }
73413
+ const keyframes = `
73414
+ @keyframes widthDecrease {
73415
+ 0% { width: ${dragElement.style.width}; height: ${dragElement.style.height}; margin: ${dragElement.style.margin}; }
73416
+ 100% { width: 0px; height: 0px; margin: 0px;}
73417
+ }
73355
73418
  `;
73356
73419
  if (!isInfinite) {
73357
73420
  dummyElement.style.width = sourcePlaceholder
@@ -74630,4 +74693,4 @@ const updateCalculatorAnswer = (el) => {
74630
74693
  el.setAttribute('string', value);
74631
74694
  };
74632
74695
 
74633
- export { fingerUrl as $, AudioPlayer as A, prevUrl as B, CalculatorOk as C, exitUrl as D, LIDO_COMMON_AUDIO_PATH as E, LidoContainer as F, GameScore as G, getCancelBtnPopup as H, matchStringPattern as I, triggerPrevcontainer as J, setActiveZipAssets as K, LIDO_INTERACTION_CLEANUP_EVENT as L, clearActiveZipAssets as M, NextContainerKey as N, setCancelBtnPopup as O, PrevContainerKey as P, tinycolor as Q, RiveService as R, SelectedValuesKey as S, TemplateID as T, stopHighlightForSpeakingElement as U, DropAction as V, validateObjectiveStatus as W, fraction as X, LIDO_COMMON_AUDIO_READY_EVENT as Y, TraceMode as Z, speakIcon as _, storingEachActivityScore as a, format as a0, executeActions as b, convertUrlToRelative as c, calculateScore as d, equationCheck as e, attachSpeakIcon as f, getDefaultExportFromCjs as g, handlingChildElements as h, initEventsForElement as i, initializePlayModeDragDropElements as j, calculateScale as k, highlightElement as l, Timer as m, handleFloatElementPosition as n, handleElementClick as o, parseProp as p, commonjsGlobal as q, resetFloatState as r, setVisibilityWithDelay as s, triggerNextContainer as t, generateUUIDFallback as u, ActivityScoreKey as v, dispatchActivityChangeEvent as w, dispatchGameExitEvent as x, speakUrl as y, nextUrl as z };
74696
+ export { LIDO_COMMON_AUDIO_READY_EVENT as $, AudioPlayer as A, resetGoodJobAudioTracking as B, CalculatorOk as C, speakUrl as D, nextUrl as E, prevUrl as F, GameScore as G, exitUrl as H, LIDO_COMMON_AUDIO_PATH as I, LidoContainer as J, getCancelBtnPopup as K, LIDO_INTERACTION_CLEANUP_EVENT as L, matchStringPattern as M, NextContainerKey as N, triggerPrevcontainer as O, PrevContainerKey as P, setActiveZipAssets as Q, RiveService as R, SelectedValuesKey as S, TemplateID as T, clearActiveZipAssets as U, setCancelBtnPopup as V, tinycolor as W, stopHighlightForSpeakingElement as X, DropAction as Y, validateObjectiveStatus as Z, fraction as _, storingEachActivityScore as a, TraceMode as a0, speakIcon as a1, fingerUrl as a2, format as a3, executeActions as b, convertUrlToRelative as c, calculateScore as d, equationCheck as e, attachSpeakIcon as f, getDefaultExportFromCjs as g, handlingChildElements as h, initEventsForElement as i, initializePlayModeDragDropElements as j, calculateScale as k, highlightElement as l, Timer as m, getGoodJobAudio as n, shouldPlayGoodJobAudio as o, parseProp as p, handleFloatElementPosition as q, resetFloatState as r, setVisibilityWithDelay as s, triggerNextContainer as t, handleElementClick as u, commonjsGlobal as v, generateUUIDFallback as w, ActivityScoreKey as x, dispatchActivityChangeEvent as y, dispatchGameExitEvent as z };
@@ -2,7 +2,7 @@ const NAMESPACE = 'lido-player';
2
2
  const BUILD = /* lido-player */ { hotModuleReplacement: false, hydratedSelectorName: "hydrated", lazyLoad: true, propChangeCallback: true, slotRelocation: true, state: true, updatable: true};
3
3
 
4
4
  const globalScripts = () => {};
5
- const globalStyles = "@font-face{font-family:'Baloo Bhai 2';font-style:normal;font-weight:400 800;font-display:swap;src:url('../assets/offline-assets/fonts/Baloo-Bhai-2/Baloo-Bhai-2-Variable.woff2') format('woff2')}body{overflow:hidden;background-position:center;background-size:cover;background-repeat:no-repeat;height:100vh}*{user-select:none}.lido-disable-check-button{pointer-events:none;background-color:#9393935c !important;color:white}.lido-element-selected{border:2px solid;background-color:#ffdf7d !important}.diagonal-target,.diagonal-drop *{transform:scale(0.8) !important;opacity:1 !important}.cloned-element{display:flex !important;position:absolute !important;filter:grayscale(100%);pointer-events:none}.removeShadow{box-shadow:0px 0px 0px 0px #ff8900 !important}.highlight-element{border:2px solid white;box-shadow:rgb(243, 77, 8) 0px 0px 40px !important}.drop-element.empty{border:4px dashed #f34d08 !important}.drop-element.filled{border:'none' !important}.drag-element{box-shadow:0px 15px 11px rgba(43, 0, 0, 0.3) !important}.drag-element.dropped{box-shadow:none !important}.click-element{background-color:var(--btn-bg-color, rgba(255, 172, 76, 1)) !important;box-shadow:var(--btn-shadow-px) var(--btn-shadow-color, rgba(225, 121, 76, 1)) !important;cursor:pointer;transition:box-shadow 0.1s ease-out, transform 0.2s ease-out;}.click-element:active{box-shadow:0px 0px 0px var(--btn-shadow-color, rgba(225, 121, 76, 1)) !important;transform:translateY(var(--btn-active));}.click-element:focus{outline:2px solid dodgerblue;outline-offset:3px}.after-drop-popup-container{width:200%;height:200%;background-color:rgba(0, 0, 0, 0.8);position:absolute;display:flex;flex-direction:row-reverse;align-items:center;justify-content:center !important;gap:80px}.after-drop-popup-drag-element{scale:1.5;border-radius:8px;transform:none !important;position:unset !important}.after-drop-popup-drop-element{scale:1.5;border:unset;border-radius:8px;transform:none !important;position:unset !important}@keyframes zoomFadeIn{0%{transform:scale(0.6);opacity:0}100%{transform:scale(1);opacity:1}}.zoom-fade-in{animation:zoomFadeIn 0.8s ease-out forwards}@keyframes zoomFadeOut{0%{transform:scale(1);opacity:1}100%{transform:scale(0.6);opacity:0}}.zoom-fade-out{animation:zoomFadeOut 0.8s ease-in forwards}.slide-numbers{width:70px;height:70px;border:1px solid #f57139;background-color:white;font-weight:500;color:#f57139;font-size:44px;border-radius:40px;display:flex;align-items:center;justify-content:center;font-family:'Baloo Bhai 2', serif}.slide-numbers-bottom{position:absolute;display:flex;justify-content:space-around;align-items:center;bottom:-25px;width:100%;height:50px}.slide-numbers-left{position:absolute;display:flex;flex-direction:column;justify-content:space-around;height:100%;width:50px;left:-25px;bottom:0px}.lido-speak-icon{width:56px;height:56px;position:absolute;top:-25px;right:-25px;z-index:10;background-color:white;border:4px solid #F34D08;border-radius:16px;box-shadow:0px 4px 0px 0px #F34D08;background-size:contain;background-repeat:no-repeat;cursor:pointer}.lido-speak-icon:active{transform:translateY(8px);box-shadow:0px 0px 0px 0px !important}.lido-strong-shake{animation:strongShake 0.3s ease}.lido-scaled-shake{animation:scaledShake 0.6s ease-in-out}.lido-horizontal-shake{animation:horizontalShake 0.6s ease-in-out;border-radius:20px}.lido-vertical-shake{animation:verticalShake 0.6s ease-in-out;border-radius:20px}.lido-diagonal-shake{animation:diagonalShake 0.5s ease-in-out;border-radius:20px;will-change:transform}.lido-glow{animation:glowPulse 1s infinite alternate;transition:opacity 0.5s ease-in-out}.lido-box-highlight{animation:topToPlace 0.3s linear}.lido-display-hiddenvalue{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:80px;font-weight:1000;color:brown;-webkit-text-stroke:2px white;font-family:'Baloo Bhai 2', sans-serif;pointer-events:none}.lido-image-colorize{position:relative;display:inline-block}.lido-image-colorize::after{content:'';position:absolute;inset:0;background:var(--tint-color);mix-blend-mode:multiply;opacity:0.8;pointer-events:none;mask-image:var(--mask-url);mask-size:cover;mask-repeat:no-repeat;mask-position:center}.lido-tts-highlight-overlay{position:fixed;left:0;top:0;pointer-events:none;z-index:9999;background:linear-gradient(\n 180deg,\n rgba(255, 235, 59, 0.95),\n rgba(255, 214, 0, 0.95)\n );border-radius:6px;box-shadow:0 2px 6px rgba(0, 0, 0, 0.18),\n inset 0 -1px 0 rgba(255, 255, 255, 0.25);transition:width 25ms ease-out,\n height 25ms ease-out,\n opacity 80ms ease-out;opacity:0.95;will-change:transform, width, height;contain:layout paint style}.category-dropped-onCorrect{box-shadow:rgba(129, 193, 39, 1) 0px 8px 8px 0px !important}.category-dropped-onInCorrect{box-shadow:rgba(255, 4, 16, 1) 0px 8px 8px 0px !important}";
5
+ const globalStyles = "@font-face{font-family:'Baloo Bhai 2';font-style:normal;font-weight:400 800;font-display:swap;src:url('../assets/offline-assets/fonts/Baloo-Bhai-2/Baloo-Bhai-2-Variable.woff2') format('woff2')}body{overflow:hidden;background-position:center;background-size:cover;background-repeat:no-repeat;height:100vh}*{user-select:none}.lido-disable-check-button{pointer-events:none;background-color:#9393935c !important;color:white}.lido-element-selected{border:2px solid;background-color:#ffdf7d !important}.diagonal-target,.diagonal-drop *{transform:scale(0.8) !important;opacity:1 !important}.cloned-element{display:flex !important;position:absolute !important;filter:grayscale(100%);pointer-events:none}.removeShadow{box-shadow:0px 0px 0px 0px #ff8900 !important}.highlight-element{border:2px solid white;box-shadow:rgb(243, 77, 8) 0px 0px 40px !important}.drop-element.empty{border:4px dashed #f34d08 !important}.drop-element.filled{border:'none' !important}.drag-element{box-shadow:0px 15px 11px rgba(43, 0, 0, 0.3) !important}.drag-element.dropped{box-shadow:none !important}.click-element{background-color:var(--btn-bg-color, rgba(255, 172, 76, 1)) !important;box-shadow:var(--btn-shadow-px) var(--btn-shadow-color, rgba(225, 121, 76, 1)) !important;cursor:pointer;transition:box-shadow 0.1s ease-out, transform 0.2s ease-out;}.click-element:active{box-shadow:0px 0px 0px var(--btn-shadow-color, rgba(225, 121, 76, 1)) !important;transform:translateY(var(--btn-active));}.click-element:focus{outline:2px solid dodgerblue;outline-offset:3px}.after-drop-popup-container{width:200%;height:200%;background-color:rgba(0, 0, 0, 0.8);position:absolute;display:flex;flex-direction:row-reverse;align-items:center;justify-content:center !important;gap:80px}.after-drop-popup-drag-element{scale:1.5;border-radius:8px;transform:none !important;position:unset !important}.after-drop-popup-drop-element{scale:1.5;border:unset;border-radius:8px;transform:none !important;position:unset !important}@keyframes zoomFadeIn{0%{transform:scale(0.6);opacity:0}100%{transform:scale(1);opacity:1}}.zoom-fade-in{animation:zoomFadeIn 0.8s ease-out forwards}@keyframes zoomFadeOut{0%{transform:scale(1);opacity:1}100%{transform:scale(0.6);opacity:0}}.zoom-fade-out{animation:zoomFadeOut 0.8s ease-in forwards}.slide-numbers{width:70px;height:70px;border:1px solid #f57139;background-color:white;font-weight:500;color:#f57139;font-size:44px;border-radius:40px;display:flex;align-items:center;justify-content:center;font-family:'Baloo Bhai 2', serif}.slide-numbers-bottom{position:absolute;display:flex;justify-content:space-around;align-items:center;bottom:-25px;width:100%;height:50px}.slide-numbers-left{position:absolute;display:flex;flex-direction:column;justify-content:space-around;height:100%;width:50px;left:-25px;bottom:0px}.lido-speak-icon{width:56px;height:56px;position:absolute;top:-25px;right:-25px;z-index:10;background-color:white;border:4px solid #F34D08;border-radius:16px;box-shadow:0px 4px 0px 0px #F34D08;background-size:contain;background-repeat:no-repeat;cursor:pointer}.lido-speak-icon:active{transform:translateY(8px);box-shadow:0px 0px 0px 0px !important}.lido-strong-shake{animation:strongShake 0.3s ease}.lido-scaled-shake{animation:scaledShake 0.6s ease-in-out}.lido-horizontal-shake{animation:horizontalShake 0.6s ease-in-out;border-radius:20px}.lido-vertical-shake{animation:verticalShake 0.6s ease-in-out;border-radius:20px}.lido-diagonal-shake{animation:diagonalShake 0.5s ease-in-out;border-radius:20px;will-change:transform}.lido-glow{animation:glowPulse 1s infinite alternate;transition:opacity 0.5s ease-in-out}.lido-box-highlight{animation:topToPlace 0.3s linear}.lido-display-hiddenvalue{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:80px;font-weight:1000;color:brown;-webkit-text-stroke:2px white;font-family:'Baloo Bhai 2', sans-serif;pointer-events:none}.lido-image-colorize{position:relative;display:inline-block}.lido-image-colorize::after{content:'';position:absolute;inset:0;background:var(--tint-color);mix-blend-mode:multiply;opacity:0.8;pointer-events:none;mask-image:var(--mask-url);mask-size:cover;mask-repeat:no-repeat;mask-position:center}.lido-tts-highlight-overlay{position:fixed;left:0;top:0;pointer-events:none;z-index:9999;background:linear-gradient(\r\n 180deg,\r\n rgba(255, 235, 59, 0.95),\r\n rgba(255, 214, 0, 0.95)\r\n );border-radius:6px;box-shadow:0 2px 6px rgba(0, 0, 0, 0.18),\r\n inset 0 -1px 0 rgba(255, 255, 255, 0.25);transition:width 25ms ease-out,\r\n height 25ms ease-out,\r\n opacity 80ms ease-out;opacity:0.95;will-change:transform, width, height;contain:layout paint style}.category-dropped-onCorrect{box-shadow:rgba(129, 193, 39, 1) 0px 8px 8px 0px !important}.category-dropped-onInCorrect{box-shadow:rgba(255, 4, 16, 1) 0px 8px 8px 0px !important}";
6
6
 
7
7
  /*
8
8
  Stencil Client Platform v4.43.5 | MIT Licensed | https://stenciljs.com
package/dist/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { a0 as format } from './index-BB56Mo3L.js';
2
- import './index-mMpK8062.js';
1
+ export { a3 as format } from './index-Bc6Y7rds.js';
2
+ import './index-Dvjbti-h.js';