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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/LICENSE +21 -21
  2. package/dist/cjs/{decode-BCvdWRyT.js → decode-CE64w_Pc.js} +1 -1
  3. package/dist/cjs/{index-DjM03fsg.js → index-Cf9LHdIw.js} +238 -87
  4. package/dist/cjs/{index-DBCFoh1I.js → index-DnaH8sO-.js} +1 -1
  5. package/dist/cjs/index.cjs.js +2 -2
  6. package/dist/cjs/lido-avatar_22.cjs.entry.js +214 -53
  7. package/dist/cjs/lido-player.cjs.js +2 -2
  8. package/dist/cjs/loader.cjs.js +2 -2
  9. package/dist/collection/components/avatar/lido-avatar.css +4 -4
  10. package/dist/collection/components/avatar/lido-avatar.js +1 -1
  11. package/dist/collection/components/avatar/lido-avatar.tsx +214 -214
  12. package/dist/collection/components/avatar/readme.md +49 -49
  13. package/dist/collection/components/calculator/lido-calculator.css +89 -89
  14. package/dist/collection/components/calculator/lido-calculator.js +2 -2
  15. package/dist/collection/components/canvas/lido-canvas.css +33 -33
  16. package/dist/collection/components/canvas/lido-canvas.js +1 -1
  17. package/dist/collection/components/cell/lido-cell.css +100 -100
  18. package/dist/collection/components/cell/lido-cell.js +12 -12
  19. package/dist/collection/components/column/lido-col.css +19 -19
  20. package/dist/collection/components/column/lido-col.js +6 -6
  21. package/dist/collection/components/container/lido-container.css +34 -10
  22. package/dist/collection/components/container/lido-container.js +55 -9
  23. package/dist/collection/components/flashCard/lido-flash-card.css +72 -72
  24. package/dist/collection/components/flashCard/lido-flash-card.js +84 -15
  25. package/dist/collection/components/float/lido-float.css +30 -30
  26. package/dist/collection/components/float/lido-float.js +2 -2
  27. package/dist/collection/components/home/lido-home.css +309 -309
  28. package/dist/collection/components/home/lido-home.js +38 -14
  29. package/dist/collection/components/image/lido-image.css +17 -17
  30. package/dist/collection/components/image/lido-image.js +6 -6
  31. package/dist/collection/components/keyboard/lido-keyboard.css +38 -38
  32. package/dist/collection/components/keyboard/lido-keyboard.js +3 -3
  33. package/dist/collection/components/mathMatrix/lido-math-matrix.css +56 -56
  34. package/dist/collection/components/mathMatrix/lido-math-matrix.js +1 -1
  35. package/dist/collection/components/position/lido-pos.css +16 -16
  36. package/dist/collection/components/position/lido-pos.js +2 -2
  37. package/dist/collection/components/random/lido-random.css +8 -8
  38. package/dist/collection/components/random/lido-random.js +2 -2
  39. package/dist/collection/components/root/lido-root.js +6 -6
  40. package/dist/collection/components/row/lido-row.css +10 -10
  41. package/dist/collection/components/row/lido-row.js +6 -6
  42. package/dist/collection/components/scale/assets/Shadow.svg +9 -9
  43. package/dist/collection/components/scale/lido-balance.css +174 -174
  44. package/dist/collection/components/scale/lido-balance.js +13 -13
  45. package/dist/collection/components/shape/lido-shape.css +216 -216
  46. package/dist/collection/components/shape/lido-shape.js +6 -6
  47. package/dist/collection/components/slideFill/lido-slide-fill.css +3 -3
  48. package/dist/collection/components/slideFill/lido-slide-fill.js +13 -13
  49. package/dist/collection/components/text/lido-text.css +53 -53
  50. package/dist/collection/components/text/lido-text.js +6 -6
  51. package/dist/collection/components/trace/assets/Tracing-hand.svg +8 -8
  52. package/dist/collection/components/trace/lido-trace.css +97 -97
  53. package/dist/collection/components/trace/lido-trace.js +2 -2
  54. package/dist/collection/components/wrap/lido-wrap.css +18 -18
  55. package/dist/collection/components/wrap/lido-wrap.js +6 -6
  56. package/dist/collection/css/animation.css +211 -211
  57. package/dist/collection/css/index.css +323 -323
  58. package/dist/collection/stories/Templates/Fill-Up/fill-up.stories.js +61 -61
  59. package/dist/collection/stories/Templates/LetterPairing/LetterPairing.stories.js +123 -123
  60. package/dist/collection/stories/Templates/RocketGame/rocketGame.stories.js +48 -48
  61. package/dist/collection/stories/Templates/Tag/tagGame.stories.js +39 -39
  62. package/dist/collection/stories/Templates/arrangeLetters/arrangeLetters.stories.js +44 -44
  63. package/dist/collection/stories/Templates/balancing/balancing.stories.js +35 -35
  64. package/dist/collection/stories/Templates/balloonPop/balloonPop.stories.js +38 -38
  65. package/dist/collection/stories/Templates/blender/blender.stories.js +59 -59
  66. package/dist/collection/stories/Templates/bubbleType/bubbleType.stories.js +42 -42
  67. package/dist/collection/stories/Templates/calculator/calculator.stories.js +28 -28
  68. package/dist/collection/stories/Templates/categorize/categorize.stories.js +37 -37
  69. package/dist/collection/stories/Templates/categorize2/categorize2.stories.js +67 -67
  70. package/dist/collection/stories/Templates/checker-block/checkerBlock.stories.js +29 -29
  71. package/dist/collection/stories/Templates/checkerBlock/checkerBlock.stories.js +13 -13
  72. package/dist/collection/stories/Templates/create-sentence/createSentence.stories.js +74 -74
  73. package/dist/collection/stories/Templates/dragAndDrop/drag-drop.stories.js +69 -69
  74. package/dist/collection/stories/Templates/fillAnswer/fill-answer.stories.js +43 -43
  75. package/dist/collection/stories/Templates/fillBlank/fill-blank.stories.js +282 -282
  76. package/dist/collection/stories/Templates/foodJar/food-jar.stories.js +35 -35
  77. package/dist/collection/stories/Templates/grid/grid.stories.js +118 -118
  78. package/dist/collection/stories/Templates/gridGame/grid-game.stories.js +57 -57
  79. package/dist/collection/stories/Templates/imageMatch/imageMatch.stories.js +44 -44
  80. package/dist/collection/stories/Templates/jumpSentence/jumpSentence.stories.js +41 -41
  81. package/dist/collection/stories/Templates/letterboard/letterboard.stories.js +183 -183
  82. package/dist/collection/stories/Templates/makeSentence/make-sentence.stories.js +36 -36
  83. package/dist/collection/stories/Templates/matchBox/matchBox.stories.js +69 -69
  84. package/dist/collection/stories/Templates/matchBox/matchBox2.stories.js +84 -84
  85. package/dist/collection/stories/Templates/matchingCard/matching-card.stories.js +31 -31
  86. package/dist/collection/stories/Templates/multipleOption/mcqWithQuestionImage.stories.js +112 -112
  87. package/dist/collection/stories/Templates/multipleOption/multiple-option.stories.js +47 -47
  88. package/dist/collection/stories/Templates/multiplyBeeds/multiplyBeeds.stories.js +57 -57
  89. package/dist/collection/stories/Templates/nimbleTable/nimbleTable.stories.js +53 -53
  90. package/dist/collection/stories/Templates/numberBoard/numberBoard.stories.js +46 -46
  91. package/dist/collection/stories/Templates/numberBoardTwo/numberBoardTwo.stories.js +45 -45
  92. package/dist/collection/stories/Templates/numberIdentification/numberIdentificationimageTotext.stories.js +56 -56
  93. package/dist/collection/stories/Templates/numberIdentification/numberIdentificationtextTotext.stories.js +53 -53
  94. package/dist/collection/stories/Templates/numberPair/numberPair.stories.js +127 -127
  95. package/dist/collection/stories/Templates/openwindow/openwindow.stories.js +47 -47
  96. package/dist/collection/stories/Templates/openwindow/openwindow2.stories.js +38 -38
  97. package/dist/collection/stories/Templates/order-tractor/order-tractor-ascending-order.stories.js +97 -97
  98. package/dist/collection/stories/Templates/order-tractor/order-tractor.stories.js +90 -90
  99. package/dist/collection/stories/Templates/palEgmaCalculateSum/palEgmaMultiOption.stories.js +63 -63
  100. package/dist/collection/stories/Templates/palEgmaCalculateSum/palEgmaSumTogether.stories.js +45 -45
  101. package/dist/collection/stories/Templates/palEgmaPatternMatching/palEgmaPatternMatching.stories.js +63 -63
  102. package/dist/collection/stories/Templates/palEgmaWordProblem/palEgmaWordProblem.stories.js +79 -79
  103. package/dist/collection/stories/Templates/palEgraInventedSpelling/pal_egra_invented_spelling_schema.stories.js +32 -32
  104. package/dist/collection/stories/Templates/palEgraMCQWithImage/palEgraMCQWithImage.stories.js +42 -42
  105. package/dist/collection/stories/Templates/palEgraOptionWithAudio/palEgraOptionWithAudio.stories.js +63 -63
  106. package/dist/collection/stories/Templates/palEgraStoryMaking/pal_egra_story_making.stories.js +44 -44
  107. package/dist/collection/stories/Templates/palEgraTemplate1/palEgraLetterIdentification.stories.js +34 -34
  108. package/dist/collection/stories/Templates/palEgraWordMatch/palEgraWordMatch.stories.js +52 -52
  109. package/dist/collection/stories/Templates/palEgra_OddOneOut/palEgra_oddOneOut.stories.js +33 -33
  110. package/dist/collection/stories/Templates/palEgra_arrange_pictures/palEgra_arrange_pictures.stories.js +40 -40
  111. package/dist/collection/stories/Templates/palEgra_build_word/palEgra_build_word.stories.js +48 -48
  112. package/dist/collection/stories/Templates/palEgra_word_formation/palEgra_WordFormation.stories.js +48 -48
  113. package/dist/collection/stories/Templates/palStorytale/palStorytale.stories.js +18 -18
  114. package/dist/collection/stories/Templates/phonic-tractor/phonic-tractor.stories.js +44 -44
  115. package/dist/collection/stories/Templates/pictureClues/pictureClues.stories.js +34 -34
  116. package/dist/collection/stories/Templates/pictureWordMatch/pictureWordMatch1.stories.js +36 -36
  117. package/dist/collection/stories/Templates/pictureWordMatch/pictureWordMatch2.stories.js +30 -30
  118. package/dist/collection/stories/Templates/picturemeaning/pictureMeaningCocos.stories.js +20 -20
  119. package/dist/collection/stories/Templates/puzzleGame/puzzleGame.stories.js +17 -17
  120. package/dist/collection/stories/Templates/questionBoard/questionBoard.stories.js +58 -58
  121. package/dist/collection/stories/Templates/quizLiteracy/quizLiteracy.stories.js +50 -50
  122. package/dist/collection/stories/Templates/quizLiteracy/quizLiteracyImageWithText.stories.js +36 -36
  123. package/dist/collection/stories/Templates/quizLiteracy/quizLiteracyImageWord.stories.js +43 -43
  124. package/dist/collection/stories/Templates/quizMaths/quizMaths.stories.js +633 -633
  125. package/dist/collection/stories/Templates/reorder/reorder.stories.js +63 -63
  126. package/dist/collection/stories/Templates/rowBlocks/rowBlocks.stories.js +47 -47
  127. package/dist/collection/stories/Templates/sentenceMatch/sentenceMatch.stories.js +29 -29
  128. package/dist/collection/stories/Templates/sequenceBox/sequenceBox1.stories.js +64 -64
  129. package/dist/collection/stories/Templates/sequenceBox/sequenceBox2.stories.js +62 -62
  130. package/dist/collection/stories/Templates/shapePair/shape-pair.stories.js +106 -106
  131. package/dist/collection/stories/Templates/shapeTractor/shape-tractor.stories.js +50 -50
  132. package/dist/collection/stories/Templates/spellDoor/spellDoor.stories.js +41 -41
  133. package/dist/collection/stories/Templates/storyTale/storyTale.stories.js +39 -39
  134. package/dist/collection/stories/Templates/substraction/substractionWithimg.stories.js +62 -62
  135. package/dist/collection/stories/Templates/substraction/substractionWithoutImg.stories.js +42 -42
  136. package/dist/collection/stories/Templates/sumTogether/sumTogether.stories.js +50 -50
  137. package/dist/collection/stories/Templates/tenBox/tenBox.stories.js +88 -88
  138. package/dist/collection/stories/Templates/total/total.stories.js +28 -28
  139. package/dist/collection/stories/Templates/wordBuilding/wordBuildingwithimg.stories.js +35 -35
  140. package/dist/collection/stories/Templates/wordBuilding/wordBuildingwithoutimg.stories.js +34 -34
  141. package/dist/collection/stories/Templates/writeCard/writeCard.stories.js +31 -31
  142. package/dist/collection/stories/Templates/writeLetter/writeLetter.stories.js +58 -58
  143. package/dist/collection/stories/Templates/writeNumber/writeNumber.stories.js +44 -44
  144. package/dist/collection/stories/Templates/writeSet/writeSet.stories.js +31 -31
  145. package/dist/collection/stories/Templates/writeWord/writeWord.stories.js +34 -34
  146. package/dist/collection/stories/components/flash-card.stories.js +48 -48
  147. package/dist/collection/stories/components/keyboard.stories.js +10 -10
  148. package/dist/collection/stories/components/slider.stories.js +4 -4
  149. package/dist/collection/stories/components/trace.stories.js +5 -5
  150. package/dist/collection/utils/audioPlayer.js +10 -3
  151. package/dist/collection/utils/constants.js +6 -0
  152. package/dist/collection/utils/utils.js +109 -14
  153. package/dist/collection/utils/utilsHandlers/dragDropHandler.js +8 -8
  154. package/dist/collection/utils/utilsHandlers/highlightHandler.js +54 -54
  155. package/dist/collection/utils/utilsHandlers/slideHandler.js +58 -19
  156. package/dist/collection/utils/utilsHandlers/sortHandler.js +10 -10
  157. package/dist/components/index.js +1 -1
  158. package/dist/components/lido-avatar.js +1 -1
  159. package/dist/components/lido-balance.js +1 -1
  160. package/dist/components/lido-calculator.js +1 -1
  161. package/dist/components/lido-canvas.js +1 -1
  162. package/dist/components/lido-cell.js +1 -1
  163. package/dist/components/lido-col.js +1 -1
  164. package/dist/components/lido-container.js +1 -1
  165. package/dist/components/lido-flash-card.js +1 -1
  166. package/dist/components/lido-float.js +1 -1
  167. package/dist/components/lido-home.js +1 -1
  168. package/dist/components/lido-image.js +1 -1
  169. package/dist/components/lido-keyboard.js +1 -1
  170. package/dist/components/lido-math-matrix.js +1 -1
  171. package/dist/components/lido-pos.js +1 -1
  172. package/dist/components/lido-random.js +1 -1
  173. package/dist/components/lido-root.js +1 -1
  174. package/dist/components/lido-row.js +1 -1
  175. package/dist/components/lido-shape.js +1 -1
  176. package/dist/components/lido-slide-fill.js +1 -1
  177. package/dist/components/lido-text.js +1 -1
  178. package/dist/components/lido-trace.js +1 -1
  179. package/dist/components/lido-wrap.js +1 -1
  180. package/dist/components/p-B4iWvszS.js +1 -0
  181. package/dist/components/{p-C5jvgiPE.js → p-BA-XmR9g.js} +1 -1
  182. package/dist/components/p-BJt-z8VW.js +1 -0
  183. package/dist/components/{p-CTlcpv4a.js → p-BfwUqpXc.js} +1 -1
  184. package/dist/components/{p-DNo3iX_r.js → p-BiBt9LGP.js} +1 -1
  185. package/dist/components/{p-DG0KR2iN.js → p-BlN0IsR4.js} +1 -1
  186. package/dist/components/{p-CFPSty2U.js → p-BpVpANK9.js} +1 -1
  187. package/dist/components/{p-CgsPIpg0.js → p-Bw-OC9iR.js} +1 -1
  188. package/dist/components/p-C2J7-bcH.js +1 -0
  189. package/dist/components/{p-CFWohOId.js → p-CEmofYPx.js} +1 -1
  190. package/dist/components/{p-C5WmmkI6.js → p-CPYnt0P-.js} +1 -1
  191. package/dist/components/{p-CsDu4kiC.js → p-ChfVUoX4.js} +1 -1
  192. package/dist/components/p-CnQ-4EIw.js +1 -0
  193. package/dist/components/{p-CXHPZN3m.js → p-CyGxEcn7.js} +1 -1
  194. package/dist/components/{p-C-pHQRbp.js → p-D1cBkIab.js} +1 -1
  195. package/dist/components/p-DP6jQ5ML.js +1 -0
  196. package/dist/components/{p-Bv1hunWk.js → p-DV-k1ulI.js} +1 -1
  197. package/dist/components/p-Qhj9-H6e.js +12 -0
  198. package/dist/components/{p-Bh_vemY3.js → p-hUfX1As2.js} +1 -1
  199. package/dist/components/p-leIEepjl.js +1 -0
  200. package/dist/components/{p-B8nzzM8c.js → p-s4oGlKg6.js} +1 -1
  201. package/dist/components/{p-C70ykycD.js → p-useuhkjH.js} +1 -1
  202. package/dist/esm/{decode-BxzUG5XP.js → decode-DhjaTUf2.js} +1 -1
  203. package/dist/esm/{index-C_uxZLF-.js → index-Bc6Y7rds.js} +235 -88
  204. package/dist/esm/{index-mMpK8062.js → index-Dvjbti-h.js} +1 -1
  205. package/dist/esm/index.js +2 -2
  206. package/dist/esm/lido-avatar_22.entry.js +214 -53
  207. package/dist/esm/lido-player.js +3 -3
  208. package/dist/esm/loader.js +3 -3
  209. package/dist/lido-player/assets/Shadow.svg +9 -9
  210. package/dist/lido-player/assets/Tracing-hand.svg +8 -8
  211. package/dist/lido-player/index.esm.js +1 -1
  212. package/dist/lido-player/lido-avatar.css +4 -4
  213. package/dist/lido-player/lido-avatar.tsx +214 -214
  214. package/dist/lido-player/lido-player.css +7 -7
  215. package/dist/lido-player/lido-player.esm.js +1 -1
  216. package/dist/lido-player/{p-CsCr7DlS.js → p-CORilAH-.js} +1 -1
  217. package/dist/lido-player/p-D66K5DXn.js +1 -0
  218. package/dist/lido-player/p-Dvjbti-h.js +2 -0
  219. package/dist/lido-player/p-ca195982.entry.js +12 -0
  220. package/dist/lido-player/readme.md +49 -49
  221. package/dist/types/components/container/lido-container.d.ts +7 -0
  222. package/dist/types/components/flashCard/lido-flash-card.d.ts +2 -0
  223. package/dist/types/components.d.ts +1 -0
  224. package/dist/types/types/json.d.ts +3 -3
  225. package/dist/types/utils/audioPlayer.d.ts +1 -1
  226. package/dist/types/utils/constants.d.ts +2 -0
  227. package/dist/types/utils/utils.d.ts +11 -0
  228. package/dist/types/utils/utilsHandlers/slideHandler.d.ts +1 -1
  229. package/package.json +73 -73
  230. package/readme.md +113 -113
  231. package/dist/components/p-CgBwmr9A.js +0 -12
  232. package/dist/components/p-Ckb8QhUV.js +0 -1
  233. package/dist/components/p-DDwqmTYM.js +0 -1
  234. package/dist/components/p-DLyacZap.js +0 -1
  235. package/dist/components/p-DONbWJGn.js +0 -1
  236. package/dist/components/p-DXy70SGv.js +0 -1
  237. package/dist/components/p-Gwko4CTL.js +0 -1
  238. package/dist/lido-player/p-00993d1a.entry.js +0 -12
  239. package/dist/lido-player/p-mMpK8062.js +0 -2
  240. package/dist/lido-player/p-v3GBrpv9.js +0 -1
@@ -78,7 +78,7 @@ export class LidoCol {
78
78
  };
79
79
  }
80
80
  render() {
81
- return (h(Host, { key: 'b2ecb19a78feed7275d9e996255db4144d5e0153', id: this.id, class: "lido-col", type: this.type, "tab-index": this.tabIndex, value: this.value, style: this.style, minDrops: this.minDrops, maxDrops: this.maxDrops, "aria-label": this.ariaLabel, "aria-hidden": this.ariaHidden, audio: this.audio, onTouch: this.onTouch, onCorrect: this.onCorrect, onInCorrect: this.onInCorrect, onEntry: this.onEntry }, h("slot", { key: '2d285d2c1557647e05abb470490da6c7c735a39d' })));
81
+ return (h(Host, { key: '334206d6054442fec787cfb479a68ae164404730', id: this.id, class: "lido-col", type: this.type, "tab-index": this.tabIndex, value: this.value, style: this.style, minDrops: this.minDrops, maxDrops: this.maxDrops, "aria-label": this.ariaLabel, "aria-hidden": this.ariaHidden, audio: this.audio, onTouch: this.onTouch, onCorrect: this.onCorrect, onInCorrect: this.onInCorrect, onEntry: this.onEntry }, h("slot", { key: '590cd219bc5a02e6b96eafe108fb8b310daf941d' })));
82
82
  }
83
83
  static get is() { return "lido-col"; }
84
84
  static get originalStyleUrls() {
@@ -467,7 +467,7 @@ export class LidoCol {
467
467
  "optional": false,
468
468
  "docs": {
469
469
  "tags": [],
470
- "text": "The number of child elements that should be displayed inside the row.\nThis value is dynamically adjusted based on `minLength` and `maxLength`."
470
+ "text": "The number of child elements that should be displayed inside the row.\r\nThis value is dynamically adjusted based on `minLength` and `maxLength`."
471
471
  },
472
472
  "getter": false,
473
473
  "setter": false,
@@ -486,7 +486,7 @@ export class LidoCol {
486
486
  "optional": false,
487
487
  "docs": {
488
488
  "tags": [],
489
- "text": "The minimum number of child elements that must be displayed inside the row.\nIf `childElementsLength` is less than this value, additional elements may be shown to meet this minimum."
489
+ "text": "The minimum number of child elements that must be displayed inside the row.\r\nIf `childElementsLength` is less than this value, additional elements may be shown to meet this minimum."
490
490
  },
491
491
  "getter": false,
492
492
  "setter": false,
@@ -505,7 +505,7 @@ export class LidoCol {
505
505
  "optional": false,
506
506
  "docs": {
507
507
  "tags": [],
508
- "text": "The maximum number of child elements that can be displayed inside the row.\nIf `childElementsLength` exceeds this value, excess elements will be hidden."
508
+ "text": "The maximum number of child elements that can be displayed inside the row.\r\nIf `childElementsLength` exceeds this value, excess elements will be hidden."
509
509
  },
510
510
  "getter": false,
511
511
  "setter": false,
@@ -562,7 +562,7 @@ export class LidoCol {
562
562
  "optional": true,
563
563
  "docs": {
564
564
  "tags": [],
565
- "text": "Applies a CSS box-shadow to the component.\nAccepts any valid CSS box-shadow value.\nExample: \"0px 4px 10px rgba(0, 0, 0, 0.1)\""
565
+ "text": "Applies a CSS box-shadow to the component.\r\nAccepts any valid CSS box-shadow value.\r\nExample: \"0px 4px 10px rgba(0, 0, 0, 0.1)\""
566
566
  },
567
567
  "getter": false,
568
568
  "setter": false,
@@ -621,7 +621,7 @@ export class LidoCol {
621
621
  "optional": false,
622
622
  "docs": {
623
623
  "tags": [],
624
- "text": "CSS margin value applied to each child element inside the container.\nAccepts standard CSS margin formats (e.g., '10px', '5px 10px', etc.)."
624
+ "text": "CSS margin value applied to each child element inside the container.\r\nAccepts standard CSS margin formats (e.g., '10px', '5px 10px', etc.)."
625
625
  },
626
626
  "getter": false,
627
627
  "setter": false,
@@ -1,10 +1,34 @@
1
- .lido-container {
2
- position: relative;
3
- height: 100%;
4
- width: 100%;
5
- background-color: var(--bgColor, transparent);
6
- display: flex;
7
- flex-direction: column;
8
- justify-content: center;
9
- align-items: center;
10
- }
1
+ .lido-container {
2
+ position: relative;
3
+ height: 100%;
4
+ width: 100%;
5
+ background-color: var(--bgColor, transparent);
6
+ display: flex;
7
+ flex-direction: column;
8
+ justify-content: center;
9
+ align-items: center;
10
+ }
11
+
12
+ /* Reuse the Flash Card attention treatment for generated Write Card arrows. */
13
+ lido-container[template-id="writeCard"] #arrow {
14
+ box-sizing: border-box;
15
+ border: 10px solid transparent;
16
+ box-shadow: 0px 8px 0px 0px #8b310f;
17
+ animation: flash-card-next-attention 1.4s ease-in-out infinite;
18
+ }
19
+
20
+ lido-container[template-id="writeCard"] #arrow.fading {
21
+ opacity: 1 !important;
22
+ }
23
+
24
+ @keyframes flash-card-next-attention {
25
+ 0%,
26
+ 100% {
27
+ border-color: #ffc34d;
28
+ filter: drop-shadow(0 0 0 rgba(255, 195, 77, 0));
29
+ }
30
+ 50% {
31
+ border-color: #fff1a8;
32
+ filter: drop-shadow(0 0 10px rgba(255, 195, 77, 0.95));
33
+ }
34
+ }
@@ -1,5 +1,5 @@
1
1
  import { Host, h } from "@stencil/core";
2
- import { convertUrlToRelative, initEventsForElement, calculateScale } from "../../utils/utils";
2
+ import { convertUrlToRelative, initEventsForElement, calculateScale, initializePlayModeDragDropElements } from "../../utils/utils";
3
3
  import i18next from "../../utils/i18n";
4
4
  import { highlightElement } from "../../utils/utilsHandlers/highlightHandler";
5
5
  import { LIDO_INTERACTION_CLEANUP_EVENT, TemplateID } from "../../utils/constants";
@@ -169,6 +169,33 @@ export class LidoContainer {
169
169
  this.speakFlag = false;
170
170
  this.handleWindowResize = () => this.scaleContainer(this.el);
171
171
  this.handleWindowLoad = () => this.scaleContainer(this.el);
172
+ this.shouldInitializePlayModeDragDrop = false;
173
+ this.isWriteCardContainer = () => this.templateId === 'writeCard';
174
+ this.syncWriteCardArrowHighlight = () => {
175
+ if (!this.isWriteCardContainer())
176
+ return;
177
+ const arrow = this.el.querySelector('#arrow');
178
+ if (!arrow)
179
+ return;
180
+ const style = window.getComputedStyle(arrow);
181
+ const hidden = style.display === 'none' ||
182
+ style.visibility === 'hidden' ||
183
+ style.opacity === '0';
184
+ arrow.classList.toggle('flash-card-next-glowing', !hidden);
185
+ };
186
+ this.observeWriteCardArrow = () => {
187
+ var _a;
188
+ if (!this.isWriteCardContainer())
189
+ return;
190
+ (_a = this.writeCardArrowObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
191
+ this.writeCardArrowObserver = new MutationObserver(() => this.syncWriteCardArrowHighlight());
192
+ this.writeCardArrowObserver.observe(this.el, {
193
+ subtree: true,
194
+ attributes: true,
195
+ attributeFilter: ['class', 'style', 'visible'],
196
+ });
197
+ this.syncWriteCardArrowHighlight();
198
+ };
172
199
  }
173
200
  cleanupInteractionHandlers() {
174
201
  this.el.querySelectorAll('[type="drag"], [type="slide"], [move="true"]').forEach(element => {
@@ -179,6 +206,17 @@ export class LidoContainer {
179
206
  const langToApply = newLang || this.resolveLanguage();
180
207
  this.updateChildTextLanguage(langToApply);
181
208
  }
209
+ canplayChanged(newValue, oldValue) {
210
+ if (this.templateId !== 'foodJar' || !newValue || oldValue !== false)
211
+ return;
212
+ this.shouldInitializePlayModeDragDrop = true;
213
+ }
214
+ componentDidRender() {
215
+ if (!this.shouldInitializePlayModeDragDrop || !this.canplay)
216
+ return;
217
+ this.shouldInitializePlayModeDragDrop = false;
218
+ void initializePlayModeDragDropElements(this.el);
219
+ }
182
220
  componentWillLoad() {
183
221
  const langToApply = this.resolveLanguage();
184
222
  this.updateChildTextLanguage(langToApply);
@@ -414,10 +452,12 @@ export class LidoContainer {
414
452
  setTimeout(() => {
415
453
  this.el.setAttribute("onEntry", `${this.templateId}.speak='${!this.speakFlag}'; ` + this.el.getAttribute("onEntry"));
416
454
  initEventsForElement(this.el, this.type);
455
+ this.observeWriteCardArrow();
417
456
  }, 100);
418
457
  }
419
458
  else {
420
459
  initEventsForElement(this.el, this.type);
460
+ this.observeWriteCardArrow();
421
461
  }
422
462
  if (this.customStyle) {
423
463
  const styleElement = document.createElement('style');
@@ -433,9 +473,12 @@ export class LidoContainer {
433
473
  Timer.getI().start();
434
474
  }
435
475
  disconnectedCallback() {
476
+ var _a;
436
477
  this.cleanupInteractionHandlers();
437
478
  window.removeEventListener('resize', this.handleWindowResize);
438
479
  window.removeEventListener('load', this.handleWindowLoad);
480
+ (_a = this.writeCardArrowObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
481
+ this.writeCardArrowObserver = undefined;
439
482
  document.body.style.backgroundColor = '';
440
483
  document.body.style.backgroundImage = '';
441
484
  resetFloatState();
@@ -452,7 +495,7 @@ export class LidoContainer {
452
495
  margin: this.margin,
453
496
  userSelect: 'none', // Prevent any field selection
454
497
  };
455
- return (h(Host, { key: '9dd374c6cdfcc88a5b18e7dc7fec527c853a4719', id: "lido-container", Lang: this.Lang, "tab-index": 0, class: "lido-container", objective: this.objective, baseUrl: this.baseUrl, style: style, "aria-label": this.ariaLabel, "aria-hidden": this.ariaHidden, onTouch: this.onTouch, onInCorrect: this.onInCorrect, onCorrect: this.onCorrect, onEntry: this.onEntry, "show-check": `${this.showCheck}`, "is-continue-on-correct": `${this.isContinueOnCorrect}`, "is-allow-only-correct": `${this.isAllowOnlyCorrect}`, canplay: `${this.canplay}`, appendToDropOnCompletion: `${this.appendToDropOnCompletion}`, "show-prev-button": `${this.showPrevButton}`, "show-next-button": `${this.showNextButton}`, "show-drop-border": `${this.showDropBorder}`, "bg-image": this.bgImage, "exit-button-url": this.exitButtonUrl, "prev-button-url": this.prevButtonUrl, "next-button-url": this.nextButtonUrl, "speaker-button-url": this.speakerButtonUrl, "disable-speak": `${this.disableSpeak}`, "template-id": this.templateId, audio: this.audio, "highlight-word-by-word": `${this.highlightWordByWord}` }, h("lido-text", { key: '8295782a74ce6ef8ca9a623de8a28b539d9f6d4f', visible: "false", id: this.templateId, audio: "", string: this.instructName }), h("slot", { key: 'eb3c995b777986e07dcb6aa935ef38d41aa1e7e7' })));
498
+ return (h(Host, { key: '1ec8ce95f69ad27bc534b5cb5b3ccc19e8e1880d', id: "lido-container", Lang: this.Lang, "tab-index": 0, class: "lido-container", objective: this.objective, baseUrl: this.baseUrl, style: style, "aria-label": this.ariaLabel, "aria-hidden": this.ariaHidden, onTouch: this.onTouch, onInCorrect: this.onInCorrect, onCorrect: this.onCorrect, onEntry: this.onEntry, "show-check": `${this.showCheck}`, "is-continue-on-correct": `${this.isContinueOnCorrect}`, "is-allow-only-correct": `${this.isAllowOnlyCorrect}`, canplay: `${this.canplay}`, appendToDropOnCompletion: `${this.appendToDropOnCompletion}`, "show-prev-button": `${this.showPrevButton}`, "show-next-button": `${this.showNextButton}`, "show-drop-border": `${this.showDropBorder}`, "bg-image": this.bgImage, "exit-button-url": this.exitButtonUrl, "prev-button-url": this.prevButtonUrl, "next-button-url": this.nextButtonUrl, "speaker-button-url": this.speakerButtonUrl, "disable-speak": `${this.disableSpeak}`, "template-id": this.templateId, audio: this.audio, "highlight-word-by-word": `${this.highlightWordByWord}` }, h("lido-text", { key: '4124095c478efa28590e9dc40a7e87831bf719fb', visible: "false", id: this.templateId, audio: "", string: this.instructName }), h("slot", { key: 'c078309c288e41c03828c3768d6033d2fae981cd' })));
456
499
  }
457
500
  static get is() { return "lido-container"; }
458
501
  static get originalStyleUrls() {
@@ -579,7 +622,7 @@ export class LidoContainer {
579
622
  "optional": false,
580
623
  "docs": {
581
624
  "tags": [],
582
- "text": "Custom CSS styles to be applied to the container.\nAllows for dynamic styling through inline styles or class names."
625
+ "text": "Custom CSS styles to be applied to the container.\r\nAllows for dynamic styling through inline styles or class names."
583
626
  },
584
627
  "getter": false,
585
628
  "setter": false,
@@ -1019,7 +1062,7 @@ export class LidoContainer {
1019
1062
  "optional": false,
1020
1063
  "docs": {
1021
1064
  "tags": [],
1022
- "text": "Determines if the activity should proceed automatically only after a correct response.\nAcceptable values: \"true\" or \"false\". Defaults to \"false\"."
1065
+ "text": "Determines if the activity should proceed automatically only after a correct response.\r\nAcceptable values: \"true\" or \"false\". Defaults to \"false\"."
1023
1066
  },
1024
1067
  "getter": false,
1025
1068
  "setter": false,
@@ -1059,7 +1102,7 @@ export class LidoContainer {
1059
1102
  "optional": false,
1060
1103
  "docs": {
1061
1104
  "tags": [],
1062
- "text": "CSS margin value applied to each child element inside the container.\nAccepts standard CSS margin formats (e.g., '10px', '5px 10px', etc.)."
1105
+ "text": "CSS margin value applied to each child element inside the container.\r\nAccepts standard CSS margin formats (e.g., '10px', '5px 10px', etc.)."
1063
1106
  },
1064
1107
  "getter": false,
1065
1108
  "setter": false,
@@ -1079,7 +1122,7 @@ export class LidoContainer {
1079
1122
  "optional": false,
1080
1123
  "docs": {
1081
1124
  "tags": [],
1082
- "text": "Custom URL for the Exit button icon.\nFalls back to the default icon if not provided or invalid."
1125
+ "text": "Custom URL for the Exit button icon.\r\nFalls back to the default icon if not provided or invalid."
1083
1126
  },
1084
1127
  "getter": false,
1085
1128
  "setter": false,
@@ -1098,7 +1141,7 @@ export class LidoContainer {
1098
1141
  "optional": false,
1099
1142
  "docs": {
1100
1143
  "tags": [],
1101
- "text": "Custom URL for the Previous button icon.\nFalls back to the default icon if not provided or invalid."
1144
+ "text": "Custom URL for the Previous button icon.\r\nFalls back to the default icon if not provided or invalid."
1102
1145
  },
1103
1146
  "getter": false,
1104
1147
  "setter": false,
@@ -1117,7 +1160,7 @@ export class LidoContainer {
1117
1160
  "optional": false,
1118
1161
  "docs": {
1119
1162
  "tags": [],
1120
- "text": "Custom URL for the Next button icon.\nFalls back to the default icon if not provided or invalid."
1163
+ "text": "Custom URL for the Next button icon.\r\nFalls back to the default icon if not provided or invalid."
1121
1164
  },
1122
1165
  "getter": false,
1123
1166
  "setter": false,
@@ -1136,7 +1179,7 @@ export class LidoContainer {
1136
1179
  "optional": false,
1137
1180
  "docs": {
1138
1181
  "tags": [],
1139
- "text": "Custom URL for the Speaker button icon.\nFalls back to the default icon if not provided or invalid."
1182
+ "text": "Custom URL for the Speaker button icon.\r\nFalls back to the default icon if not provided or invalid."
1140
1183
  },
1141
1184
  "getter": false,
1142
1185
  "setter": false,
@@ -1276,6 +1319,9 @@ export class LidoContainer {
1276
1319
  return [{
1277
1320
  "propName": "Lang",
1278
1321
  "methodName": "languageChanged"
1322
+ }, {
1323
+ "propName": "canplay",
1324
+ "methodName": "canplayChanged"
1279
1325
  }];
1280
1326
  }
1281
1327
  }
@@ -1,72 +1,72 @@
1
-
2
-
3
- .card {
4
- position: relative;
5
- width: 100%;
6
- height: 100%;
7
- transform-style: preserve-3d;
8
- transition: transform 0.6s ease;
9
- cursor: pointer;
10
- }
11
-
12
- .card.flipped {
13
- transform: rotateY(180deg);
14
- }
15
-
16
- .card-face {
17
- position: absolute;
18
- width: 100%;
19
- height: 100%;
20
- backface-visibility: hidden;
21
- display: flex;
22
- align-items: center;
23
- justify-content: center;
24
- }
25
-
26
- .card-back {
27
- transform: rotateY(180deg);
28
- }
29
-
30
- /* Flash Card's local next button is positioned against the 1600x900 Lido
31
- canvas, rather than against the viewport or the global navigation bar. */
32
- lido-container[template-id="flashcardtemplate"] #arrow {
33
- position: absolute !important;
34
- left: auto !important;
35
- top: 50% !important;
36
- right: 13.3% !important;
37
- transform: translateY(-50%);
38
- z-index: 4 !important;
39
- overflow: visible;
40
- box-sizing: border-box;
41
- border: 10px solid transparent;
42
- box-shadow: 0px 8px 0px 0px #8b310f !important;
43
- }
44
-
45
- lido-container[template-id="flashcardtemplate"] #arrow.flash-card-next-glowing {
46
- animation: flash-card-next-attention 1.4s ease-in-out infinite;
47
- }
48
-
49
- @keyframes flash-card-next-attention {
50
- 0%,
51
- 100% {
52
- border-color: #ffc34d;
53
- filter: drop-shadow(0 0 0 rgba(255, 195, 77, 0));
54
- }
55
- 50% {
56
- border-color: #fff1a8;
57
- filter: drop-shadow(0 0 10px rgba(255, 195, 77, 0.95));
58
- }
59
- }
60
-
61
- /* Match the shared top Next arrow's raised press behavior without changing
62
- the Flash Card arrow's existing size or right-side positioning. */
63
- lido-container[template-id="flashcardtemplate"] #arrow:active {
64
- transform: translateY(calc(-50% + 8px)) !important;
65
- box-shadow: 0px 0px 0px 0px !important;
66
- }
67
-
68
- @media (orientation: portrait) {
69
- lido-container[template-id="flashcardtemplate"] #arrow {
70
- right: -4.3% !important;
71
- }
72
- }
1
+
2
+
3
+ .card {
4
+ position: relative;
5
+ width: 100%;
6
+ height: 100%;
7
+ transform-style: preserve-3d;
8
+ transition: transform 0.6s ease;
9
+ cursor: pointer;
10
+ }
11
+
12
+ .card.flipped {
13
+ transform: rotateY(180deg);
14
+ }
15
+
16
+ .card-face {
17
+ position: absolute;
18
+ width: 100%;
19
+ height: 100%;
20
+ backface-visibility: hidden;
21
+ display: flex;
22
+ align-items: center;
23
+ justify-content: center;
24
+ }
25
+
26
+ .card-back {
27
+ transform: rotateY(180deg);
28
+ }
29
+
30
+ /* Flash Card's local next button is positioned against the 1600x900 Lido
31
+ canvas, rather than against the viewport or the global navigation bar. */
32
+ lido-container[template-id="flashcardtemplate"] #arrow {
33
+ position: absolute !important;
34
+ left: auto !important;
35
+ top: 50% !important;
36
+ right: 13.3% !important;
37
+ transform: translateY(-50%);
38
+ z-index: 4 !important;
39
+ overflow: visible;
40
+ box-sizing: border-box;
41
+ border: 10px solid transparent;
42
+ box-shadow: 0px 8px 0px 0px #8b310f !important;
43
+ }
44
+
45
+ lido-container[template-id="flashcardtemplate"] #arrow.flash-card-next-glowing {
46
+ animation: flash-card-next-attention 1.4s ease-in-out infinite;
47
+ }
48
+
49
+ @keyframes flash-card-next-attention {
50
+ 0%,
51
+ 100% {
52
+ border-color: #ffc34d;
53
+ filter: drop-shadow(0 0 0 rgba(255, 195, 77, 0));
54
+ }
55
+ 50% {
56
+ border-color: #fff1a8;
57
+ filter: drop-shadow(0 0 10px rgba(255, 195, 77, 0.95));
58
+ }
59
+ }
60
+
61
+ /* Match the shared top Next arrow's raised press behavior without changing
62
+ the Flash Card arrow's existing size or right-side positioning. */
63
+ lido-container[template-id="flashcardtemplate"] #arrow:active {
64
+ transform: translateY(calc(-50% + 8px)) !important;
65
+ box-shadow: 0px 0px 0px 0px !important;
66
+ }
67
+
68
+ @media (orientation: portrait) {
69
+ lido-container[template-id="flashcardtemplate"] #arrow {
70
+ right: -4.3% !important;
71
+ }
72
+ }
@@ -4,8 +4,9 @@
4
4
  * controllable `flipped` prop.
5
5
  * ------------------------------------------------------------------*/
6
6
  import { Host, h } from "@stencil/core";
7
- import { parseProp, initEventsForElement, setVisibilityWithDelay, executeActions } from "../../utils/utils";
7
+ import { parseProp, initEventsForElement, setVisibilityWithDelay, executeActions, getGoodJobAudio, shouldPlayGoodJobAudio } from "../../utils/utils";
8
8
  import { AudioPlayer } from "../../utils/audioPlayer";
9
+ import { TemplateID } from "../../utils/constants";
9
10
  export class LidoFlash {
10
11
  constructor() {
11
12
  /* ---------- Generic Lido props (mirrors lido‑row) ---------- */
@@ -88,6 +89,7 @@ export class LidoFlash {
88
89
  this.narrationHandled = false;
89
90
  this.instructionDone = false;
90
91
  this.instructionStarted = false;
92
+ this.shouldPlayTemplateInstruction = true;
91
93
  this.onAudioStarted = (event) => {
92
94
  var _a;
93
95
  const target = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.target;
@@ -113,7 +115,7 @@ export class LidoFlash {
113
115
  arrow.classList.add('flash-card-next-glowing');
114
116
  };
115
117
  this.onAudioEnded = (event) => {
116
- var _a, _b, _c, _d;
118
+ var _a, _b, _c;
117
119
  const target = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.target;
118
120
  const instruction = this.instructionText();
119
121
  if (!target || (target !== instruction && target.id !== 'lido-avatar' && !this.el.contains(target)))
@@ -150,7 +152,6 @@ export class LidoFlash {
150
152
  if (playbackContext !== this.goodJobPlaybackContext || playbackId !== this.goodJobPlaybackId)
151
153
  return;
152
154
  this.goodJobPlaybackId = undefined;
153
- (_d = this.nextArrow()) === null || _d === void 0 ? void 0 : _d.classList.remove('flash-card-next-glowing');
154
155
  executeActions("this.avatarAnimate='Idle'", target);
155
156
  }
156
157
  };
@@ -221,11 +222,19 @@ export class LidoFlash {
221
222
  (_a = this.nextArrow()) === null || _a === void 0 ? void 0 : _a.classList.remove('flash-card-next-glowing');
222
223
  };
223
224
  this.speakFront = () => {
224
- var _a;
225
+ var _a, _b;
225
226
  const text = this.frontText();
226
227
  if (this.instructionDone && !this.flipped && text && ((_a = text.textContent) === null || _a === void 0 ? void 0 : _a.trim())) {
227
228
  this.startNarration(text);
228
229
  }
230
+ else if (this.instructionDone && !this.flipped && (!text || !((_b = text.textContent) === null || _b === void 0 ? void 0 : _b.trim()))) {
231
+ if (this.autoFlipTimer)
232
+ window.clearTimeout(this.autoFlipTimer);
233
+ this.autoFlipTimer = window.setTimeout(() => {
234
+ if (!this.flipped)
235
+ this.handleFlip();
236
+ }, this.autoFlipAfter);
237
+ }
229
238
  };
230
239
  this.clearNarrationTimers = () => {
231
240
  if (this.narrationGraceTimer)
@@ -286,16 +295,20 @@ export class LidoFlash {
286
295
  if (!arrow.getAttribute('onTouch'))
287
296
  arrow.setAttribute('onTouch', "this.nextBtn='true';");
288
297
  const mascot = container.querySelector('#lido-avatar');
289
- const scaffoldAudio = arrow.getAttribute('audio');
290
- if (mascot && scaffoldAudio) {
298
+ const originalAudio = (mascot === null || mascot === void 0 ? void 0 : mascot.getAttribute('audio')) || undefined;
299
+ const scaffoldAudio = getGoodJobAudio(arrow) || originalAudio;
300
+ const shouldPlayGoodJob = shouldPlayGoodJobAudio(arrow);
301
+ if (mascot && scaffoldAudio && shouldPlayGoodJob) {
291
302
  mascot.setAttribute('audio', scaffoldAudio);
292
303
  }
293
304
  this.setArrowVisible(true);
294
- if (mascot) {
305
+ // Keep the next action highlighted after mascot audio ends.
306
+ arrow.classList.add('flash-card-next-glowing');
307
+ if (mascot && shouldPlayGoodJob) {
295
308
  this.goodJobPlaybackContext = {};
296
309
  this.goodJobPlaybackId = undefined;
297
310
  executeActions("this.avatarAnimate='Idle speak'", mascot);
298
- AudioPlayer.getI().play(mascot, true, this.goodJobPlaybackContext);
311
+ AudioPlayer.getI().play(mascot, true, this.goodJobPlaybackContext, originalAudio);
299
312
  }
300
313
  };
301
314
  this.setArrowVisible = (visible) => {
@@ -336,7 +349,7 @@ export class LidoFlash {
336
349
  window.addEventListener('load', this.updateStyles);
337
350
  }
338
351
  componentDidLoad() {
339
- var _a;
352
+ var _a, _b;
340
353
  setVisibilityWithDelay(this.el, this.delayVisible);
341
354
  initEventsForElement(this.el, this.type);
342
355
  window.addEventListener('lidoAudioStarted', this.onAudioStarted);
@@ -344,9 +357,17 @@ export class LidoFlash {
344
357
  window.addEventListener('lidoAudioEnded', this.onAudioEnded);
345
358
  const container = this.el.closest('lido-container');
346
359
  if ((container === null || container === void 0 ? void 0 : container.getAttribute('template-id')) === 'flashcardtemplate') {
347
- (_a = container.querySelector('#lido-avatar')) === null || _a === void 0 ? void 0 : _a.setAttribute('disable-speak', 'true');
360
+ const home = container.closest('lido-home');
361
+ const playedTemplates = ((_a = home === null || home === void 0 ? void 0 : home.getAttribute(TemplateID)) === null || _a === void 0 ? void 0 : _a.split(',').map(value => value.trim()).filter(Boolean)) || [];
362
+ this.shouldPlayTemplateInstruction = !playedTemplates.includes('flashcardtemplate');
363
+ (_b = container.querySelector('#lido-avatar')) === null || _b === void 0 ? void 0 : _b.setAttribute('disable-speak', 'true');
348
364
  this.instructionStartTimer = window.setTimeout(() => {
349
365
  if (!this.instructionStarted && !this.instructionDone) {
366
+ if (!this.shouldPlayTemplateInstruction) {
367
+ this.instructionDone = true;
368
+ this.speakFront();
369
+ return;
370
+ }
350
371
  const instruction = this.instructionText();
351
372
  if (instruction)
352
373
  this.startNarration(instruction);
@@ -369,14 +390,37 @@ export class LidoFlash {
369
390
  window.removeEventListener('resize', this.updateStyles);
370
391
  window.removeEventListener('load', this.updateStyles);
371
392
  }
393
+ async replayGoodJobAudio() {
394
+ const container = this.el.closest('lido-container');
395
+ if ((container === null || container === void 0 ? void 0 : container.getAttribute('template-id')) !== 'flashcardtemplate')
396
+ return;
397
+ const arrow = this.nextArrow();
398
+ const mascot = container.querySelector('#lido-avatar');
399
+ if (!arrow || !mascot)
400
+ return;
401
+ const arrowVisible = arrow.getAttribute('visible') === 'true'
402
+ || arrow.style.visibility === 'visible';
403
+ if (!arrowVisible)
404
+ return;
405
+ const originalAudio = mascot.getAttribute('audio') || undefined;
406
+ const localizedAudio = getGoodJobAudio(arrow);
407
+ const replayAudio = localizedAudio || originalAudio;
408
+ if (!replayAudio)
409
+ return;
410
+ mascot.setAttribute('audio', replayAudio);
411
+ this.goodJobPlaybackContext = {};
412
+ this.goodJobPlaybackId = undefined;
413
+ executeActions("this.avatarAnimate='Idle speak'", mascot);
414
+ await AudioPlayer.getI().play(mascot, true, this.goodJobPlaybackContext, originalAudio);
415
+ }
372
416
  /* ---------- Render ---------- */
373
417
  render() {
374
- return (h(Host, { key: '9098ad4c1f41ac70e6737438209f2f3027153b3b', value: this.value, "tab-index": this.tabIndex, style: this.style, "aria-label": this.ariaLabel, "aria-hidden": this.ariaHidden, audio: this.audio, onTouch: this.onTouch, onCorrect: this.onCorrect, onInCorrect: this.onInCorrect, onEntry: this.onEntry, type: this.type, onClick: (event) => {
418
+ return (h(Host, { key: 'b6012ba4855d142b6fdbad9dcfd7251bfcbb932b', value: this.value, "tab-index": this.tabIndex, style: this.style, "aria-label": this.ariaLabel, "aria-hidden": this.ariaHidden, audio: this.audio, onTouch: this.onTouch, onCorrect: this.onCorrect, onInCorrect: this.onInCorrect, onEntry: this.onEntry, type: this.type, onClick: (event) => {
375
419
  var _a, _b;
376
420
  if ((_b = (_a = event.target) === null || _a === void 0 ? void 0 : _a.closest) === null || _b === void 0 ? void 0 : _b.call(_a, '#lido-avatar'))
377
421
  return;
378
422
  this.handleFlip();
379
- }, "disable-speak": this.disableSpeak }, h("div", { key: 'b235e008f35e29db21991d76bd83fccac471ba75', class: `card ${this.flipped ? 'flipped' : ''}` }, h("div", { key: '7b2306efdc5a4dac6edfe5004ae34ef486b73dd5', class: "card-face card-front" }, this.front != null ? this.front : h("slot", { name: "front" })), h("div", { key: '3d164fa2faa72b7ffcbaf20482bfea2148aeaaf4', class: "card-face card-back" }, this.back != null ? this.back : h("slot", { name: "back" })))));
423
+ }, "disable-speak": this.disableSpeak }, h("div", { key: 'fecb100c8ac0f227d8bd685d02f8314e9018fe02', class: `card ${this.flipped ? 'flipped' : ''}` }, h("div", { key: 'e89512323ad8eb884548a1dead734f635c096c8f', class: "card-face card-front" }, this.front != null ? this.front : h("slot", { name: "front" })), h("div", { key: '82820aaf5b5febcf8247f96faca59976b8fade8e', class: "card-face card-back" }, this.back != null ? this.back : h("slot", { name: "back" })))));
380
424
  }
381
425
  static get is() { return "lido-flash-card"; }
382
426
  static get originalStyleUrls() {
@@ -743,7 +787,7 @@ export class LidoFlash {
743
787
  "optional": false,
744
788
  "docs": {
745
789
  "tags": [],
746
- "text": "The number of child elements that should be displayed inside the row.\nThis value is dynamically adjusted based on `minLength` and `maxLength`."
790
+ "text": "The number of child elements that should be displayed inside the row.\r\nThis value is dynamically adjusted based on `minLength` and `maxLength`."
747
791
  },
748
792
  "getter": false,
749
793
  "setter": false,
@@ -819,7 +863,7 @@ export class LidoFlash {
819
863
  "optional": false,
820
864
  "docs": {
821
865
  "tags": [],
822
- "text": "Whether the card is flipped (back side visible).\n`mutable` lets the component toggle itself on click;\n`reflect` keeps the `<lido-flash-card flipped>` attribute in sync."
866
+ "text": "Whether the card is flipped (back side visible).\r\n`mutable` lets the component toggle itself on click;\r\n`reflect` keeps the `<lido-flash-card flipped>` attribute in sync."
823
867
  },
824
868
  "getter": false,
825
869
  "setter": false,
@@ -859,7 +903,7 @@ export class LidoFlash {
859
903
  "optional": false,
860
904
  "docs": {
861
905
  "tags": [],
862
- "text": "CSS margin value applied to each child element inside the container.\nAccepts standard CSS margin formats (e.g., '10px', '5px 10px', etc.)."
906
+ "text": "CSS margin value applied to each child element inside the container.\r\nAccepts standard CSS margin formats (e.g., '10px', '5px 10px', etc.)."
863
907
  },
864
908
  "getter": false,
865
909
  "setter": false,
@@ -914,6 +958,31 @@ export class LidoFlash {
914
958
  "style": {}
915
959
  };
916
960
  }
961
+ static get methods() {
962
+ return {
963
+ "replayGoodJobAudio": {
964
+ "complexType": {
965
+ "signature": "() => Promise<void>",
966
+ "parameters": [],
967
+ "references": {
968
+ "Promise": {
969
+ "location": "global",
970
+ "id": "global::Promise"
971
+ },
972
+ "HTMLElement": {
973
+ "location": "global",
974
+ "id": "global::HTMLElement"
975
+ }
976
+ },
977
+ "return": "Promise<void>"
978
+ },
979
+ "docs": {
980
+ "text": "",
981
+ "tags": []
982
+ }
983
+ }
984
+ };
985
+ }
917
986
  static get elementRef() { return "el"; }
918
987
  static get watchers() {
919
988
  return [{