lido-player 0.0.2-beta-22-dev → 0.0.2-beta-24-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 (235) hide show
  1. package/LICENSE +21 -21
  2. package/dist/cjs/{decode-Cr5DANqc.js → decode-B7mZm_nK.js} +1 -1
  3. package/dist/cjs/{index-0BvcfeCt.js → index-BCRDjbaz.js} +276 -98
  4. package/dist/cjs/{index-DnaH8sO-.js → index-DBCFoh1I.js} +1 -1
  5. package/dist/cjs/index.cjs.js +2 -2
  6. package/dist/cjs/lido-avatar_22.cjs.entry.js +231 -59
  7. package/dist/cjs/lido-player.cjs.js +1 -1
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/collection/components/avatar/lido-avatar.css +4 -4
  10. package/dist/collection/components/avatar/lido-avatar.js +9 -2
  11. package/dist/collection/components/avatar/lido-avatar.tsx +214 -207
  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 +39 -8
  23. package/dist/collection/components/flashCard/lido-flash-card.css +72 -46
  24. package/dist/collection/components/flashCard/lido-flash-card.js +156 -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 +5 -5
  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 +5 -5
  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 +7 -14
  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 +631 -631
  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 -4
  151. package/dist/collection/utils/utils.js +70 -14
  152. package/dist/collection/utils/utilsHandlers/clickHandler.js +4 -3
  153. package/dist/collection/utils/utilsHandlers/dragDropHandler.js +137 -28
  154. package/dist/collection/utils/utilsHandlers/highlightHandler.js +56 -56
  155. package/dist/collection/utils/utilsHandlers/slideHandler.js +17 -8
  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-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-B-mIxynb.js +1 -0
  180. package/dist/components/{p-DdQ1eqJr.js → p-B8nzzM8c.js} +1 -1
  181. package/dist/components/{p-D2GhaM-T.js → p-Bv1hunWk.js} +1 -1
  182. package/dist/components/{p-DDS30M3y.js → p-C-pHQRbp.js} +1 -1
  183. package/dist/components/{p-CPYnt0P-.js → p-C5WmmkI6.js} +1 -1
  184. package/dist/components/{p-useuhkjH.js → p-C70ykycD.js} +1 -1
  185. package/dist/components/{p-CFzvgrMa.js → p-CFPSty2U.js} +1 -1
  186. package/dist/components/p-CFWohOId.js +1 -0
  187. package/dist/components/{p-BfwUqpXc.js → p-CTlcpv4a.js} +1 -1
  188. package/dist/components/{p-CyGxEcn7.js → p-CXHPZN3m.js} +1 -1
  189. package/dist/components/{p-Bw-OC9iR.js → p-CgsPIpg0.js} +1 -1
  190. package/dist/components/{p-ChfVUoX4.js → p-CsDu4kiC.js} +1 -1
  191. package/dist/components/{p-CwDTdXe5.js → p-DG0KR2iN.js} +1 -1
  192. package/dist/components/p-DLyacZap.js +1 -0
  193. package/dist/components/{p-BiBt9LGP.js → p-DNo3iX_r.js} +1 -1
  194. package/dist/components/p-DONbWJGn.js +1 -0
  195. package/dist/components/p-DXy70SGv.js +1 -0
  196. package/dist/components/{p-CkxAm8rY.js → p-DfjbSSI2.js} +2 -2
  197. package/dist/components/{p-BJiyBHYT.js → p-Gwko4CTL.js} +1 -1
  198. package/dist/components/p-uuyVO2B1.js +1 -0
  199. package/dist/esm/{decode-DkSXjv7K.js → decode-CyhHNDvT.js} +1 -1
  200. package/dist/esm/{index-D9-TTsdZ.js → index-CndbFQ5I.js} +276 -98
  201. package/dist/esm/{index-Dvjbti-h.js → index-mMpK8062.js} +1 -1
  202. package/dist/esm/index.js +2 -2
  203. package/dist/esm/lido-avatar_22.entry.js +231 -59
  204. package/dist/esm/lido-player.js +2 -2
  205. package/dist/esm/loader.js +2 -2
  206. package/dist/lido-player/assets/Shadow.svg +9 -9
  207. package/dist/lido-player/assets/Tracing-hand.svg +8 -8
  208. package/dist/lido-player/index.esm.js +1 -1
  209. package/dist/lido-player/lido-avatar.css +4 -4
  210. package/dist/lido-player/lido-avatar.tsx +214 -207
  211. package/dist/lido-player/lido-player.css +7 -7
  212. package/dist/lido-player/lido-player.esm.js +1 -1
  213. package/dist/lido-player/p-77iyGppv.js +1 -0
  214. package/dist/lido-player/p-d760e67b.entry.js +12 -0
  215. package/dist/lido-player/{p-Dc8j8Hxw.js → p-etMb7U6W.js} +1 -1
  216. package/dist/lido-player/p-mMpK8062.js +2 -0
  217. package/dist/lido-player/readme.md +49 -49
  218. package/dist/types/components/container/lido-container.d.ts +4 -0
  219. package/dist/types/components/flashCard/lido-flash-card.d.ts +17 -0
  220. package/dist/types/types/json.d.ts +3 -3
  221. package/dist/types/utils/audioPlayer.d.ts +2 -1
  222. package/dist/types/utils/utils.d.ts +5 -1
  223. package/dist/types/utils/utilsHandlers/clickHandler.d.ts +1 -0
  224. package/dist/types/utils/utilsHandlers/slideHandler.d.ts +1 -1
  225. package/package.json +73 -74
  226. package/readme.md +113 -113
  227. package/dist/components/p-BUfCIPRa.js +0 -1
  228. package/dist/components/p-DP6jQ5ML.js +0 -1
  229. package/dist/components/p-DZRNZCPt.js +0 -1
  230. package/dist/components/p-DbR5sNOj.js +0 -1
  231. package/dist/components/p-leIEepjl.js +0 -1
  232. package/dist/components/p-u3czV7QM.js +0 -1
  233. package/dist/lido-player/p-35fa0b8b.entry.js +0 -12
  234. package/dist/lido-player/p-D2iINRNN.js +0 -1
  235. package/dist/lido-player/p-Dvjbti-h.js +0 -2
@@ -78,7 +78,7 @@ export class LidoCol {
78
78
  };
79
79
  }
80
80
  render() {
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' })));
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' })));
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.\r\nThis value is dynamically adjusted based on `minLength` and `maxLength`."
470
+ "text": "The number of child elements that should be displayed inside the row.\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.\r\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.\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.\r\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.\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.\r\nAccepts any valid CSS box-shadow value.\r\nExample: \"0px 4px 10px rgba(0, 0, 0, 0.1)\""
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)\""
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.\r\nAccepts standard CSS margin formats (e.g., '10px', '5px 10px', etc.)."
624
+ "text": "CSS margin value applied to each child element inside the container.\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
+ }
@@ -169,6 +169,32 @@ 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.isWriteCardContainer = () => this.templateId === 'writeCard';
173
+ this.syncWriteCardArrowHighlight = () => {
174
+ if (!this.isWriteCardContainer())
175
+ return;
176
+ const arrow = this.el.querySelector('#arrow');
177
+ if (!arrow)
178
+ return;
179
+ const style = window.getComputedStyle(arrow);
180
+ const hidden = style.display === 'none' ||
181
+ style.visibility === 'hidden' ||
182
+ style.opacity === '0';
183
+ arrow.classList.toggle('flash-card-next-glowing', !hidden);
184
+ };
185
+ this.observeWriteCardArrow = () => {
186
+ var _a;
187
+ if (!this.isWriteCardContainer())
188
+ return;
189
+ (_a = this.writeCardArrowObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
190
+ this.writeCardArrowObserver = new MutationObserver(() => this.syncWriteCardArrowHighlight());
191
+ this.writeCardArrowObserver.observe(this.el, {
192
+ subtree: true,
193
+ attributes: true,
194
+ attributeFilter: ['class', 'style', 'visible'],
195
+ });
196
+ this.syncWriteCardArrowHighlight();
197
+ };
172
198
  }
173
199
  cleanupInteractionHandlers() {
174
200
  this.el.querySelectorAll('[type="drag"], [type="slide"], [move="true"]').forEach(element => {
@@ -414,10 +440,12 @@ export class LidoContainer {
414
440
  setTimeout(() => {
415
441
  this.el.setAttribute("onEntry", `${this.templateId}.speak='${!this.speakFlag}'; ` + this.el.getAttribute("onEntry"));
416
442
  initEventsForElement(this.el, this.type);
443
+ this.observeWriteCardArrow();
417
444
  }, 100);
418
445
  }
419
446
  else {
420
447
  initEventsForElement(this.el, this.type);
448
+ this.observeWriteCardArrow();
421
449
  }
422
450
  if (this.customStyle) {
423
451
  const styleElement = document.createElement('style');
@@ -433,9 +461,12 @@ export class LidoContainer {
433
461
  Timer.getI().start();
434
462
  }
435
463
  disconnectedCallback() {
464
+ var _a;
436
465
  this.cleanupInteractionHandlers();
437
466
  window.removeEventListener('resize', this.handleWindowResize);
438
467
  window.removeEventListener('load', this.handleWindowLoad);
468
+ (_a = this.writeCardArrowObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
469
+ this.writeCardArrowObserver = undefined;
439
470
  document.body.style.backgroundColor = '';
440
471
  document.body.style.backgroundImage = '';
441
472
  resetFloatState();
@@ -452,7 +483,7 @@ export class LidoContainer {
452
483
  margin: this.margin,
453
484
  userSelect: 'none', // Prevent any field selection
454
485
  };
455
- return (h(Host, { key: '1862e30fedda58726edc107f81fae1f63e96d009', 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: '86fd014a61ba9cba6d67e2d921b2d8a8a289dbc7', visible: "false", id: this.templateId, audio: "", string: this.instructName }), h("slot", { key: 'c3128ea2164892757b32cb076d717436947f9a4c' })));
486
+ return (h(Host, { key: '403faa36329230b28c8c0e3a627c20b48fc1a9d0', 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: '683740c0a8495c875c988b41b8281a362f7713b8', visible: "false", id: this.templateId, audio: "", string: this.instructName }), h("slot", { key: '743c0652d70b294513dcdb3cfdd9674b694cd2e8' })));
456
487
  }
457
488
  static get is() { return "lido-container"; }
458
489
  static get originalStyleUrls() {
@@ -579,7 +610,7 @@ export class LidoContainer {
579
610
  "optional": false,
580
611
  "docs": {
581
612
  "tags": [],
582
- "text": "Custom CSS styles to be applied to the container.\r\nAllows for dynamic styling through inline styles or class names."
613
+ "text": "Custom CSS styles to be applied to the container.\nAllows for dynamic styling through inline styles or class names."
583
614
  },
584
615
  "getter": false,
585
616
  "setter": false,
@@ -1019,7 +1050,7 @@ export class LidoContainer {
1019
1050
  "optional": false,
1020
1051
  "docs": {
1021
1052
  "tags": [],
1022
- "text": "Determines if the activity should proceed automatically only after a correct response.\r\nAcceptable values: \"true\" or \"false\". Defaults to \"false\"."
1053
+ "text": "Determines if the activity should proceed automatically only after a correct response.\nAcceptable values: \"true\" or \"false\". Defaults to \"false\"."
1023
1054
  },
1024
1055
  "getter": false,
1025
1056
  "setter": false,
@@ -1059,7 +1090,7 @@ export class LidoContainer {
1059
1090
  "optional": false,
1060
1091
  "docs": {
1061
1092
  "tags": [],
1062
- "text": "CSS margin value applied to each child element inside the container.\r\nAccepts standard CSS margin formats (e.g., '10px', '5px 10px', etc.)."
1093
+ "text": "CSS margin value applied to each child element inside the container.\nAccepts standard CSS margin formats (e.g., '10px', '5px 10px', etc.)."
1063
1094
  },
1064
1095
  "getter": false,
1065
1096
  "setter": false,
@@ -1079,7 +1110,7 @@ export class LidoContainer {
1079
1110
  "optional": false,
1080
1111
  "docs": {
1081
1112
  "tags": [],
1082
- "text": "Custom URL for the Exit button icon.\r\nFalls back to the default icon if not provided or invalid."
1113
+ "text": "Custom URL for the Exit button icon.\nFalls back to the default icon if not provided or invalid."
1083
1114
  },
1084
1115
  "getter": false,
1085
1116
  "setter": false,
@@ -1098,7 +1129,7 @@ export class LidoContainer {
1098
1129
  "optional": false,
1099
1130
  "docs": {
1100
1131
  "tags": [],
1101
- "text": "Custom URL for the Previous button icon.\r\nFalls back to the default icon if not provided or invalid."
1132
+ "text": "Custom URL for the Previous button icon.\nFalls back to the default icon if not provided or invalid."
1102
1133
  },
1103
1134
  "getter": false,
1104
1135
  "setter": false,
@@ -1117,7 +1148,7 @@ export class LidoContainer {
1117
1148
  "optional": false,
1118
1149
  "docs": {
1119
1150
  "tags": [],
1120
- "text": "Custom URL for the Next button icon.\r\nFalls back to the default icon if not provided or invalid."
1151
+ "text": "Custom URL for the Next button icon.\nFalls back to the default icon if not provided or invalid."
1121
1152
  },
1122
1153
  "getter": false,
1123
1154
  "setter": false,
@@ -1136,7 +1167,7 @@ export class LidoContainer {
1136
1167
  "optional": false,
1137
1168
  "docs": {
1138
1169
  "tags": [],
1139
- "text": "Custom URL for the Speaker button icon.\r\nFalls back to the default icon if not provided or invalid."
1170
+ "text": "Custom URL for the Speaker button icon.\nFalls back to the default icon if not provided or invalid."
1140
1171
  },
1141
1172
  "getter": false,
1142
1173
  "setter": false,
@@ -1,46 +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
- }
41
-
42
- @media (orientation: portrait) {
43
- lido-container[template-id="flashcardtemplate"] #arrow {
44
- right: -4.3% !important;
45
- }
46
- }
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
+ }
@@ -84,16 +84,49 @@ export class LidoFlash {
84
84
  */
85
85
  this.flipped = false;
86
86
  this.autoFlipAfter = 4500;
87
+ this.narrationTarget = null;
88
+ this.narrationHandled = false;
87
89
  this.instructionDone = false;
88
- this.onAudioEnded = (event) => {
90
+ this.instructionStarted = false;
91
+ this.onAudioStarted = (event) => {
89
92
  var _a;
90
93
  const target = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.target;
94
+ if (target === this.instructionText())
95
+ this.instructionStarted = true;
96
+ if (target && target === this.narrationTarget && !this.narrationHandled) {
97
+ if (this.narrationGraceTimer)
98
+ window.clearTimeout(this.narrationGraceTimer);
99
+ this.narrationGraceTimer = undefined;
100
+ }
101
+ };
102
+ this.onAudioPlaying = (event) => {
103
+ const detail = event.detail;
104
+ const target = detail === null || detail === void 0 ? void 0 : detail.target;
105
+ if ((target === null || target === void 0 ? void 0 : target.id) !== 'lido-avatar')
106
+ return;
107
+ if (detail.playbackContext !== this.goodJobPlaybackContext)
108
+ return;
109
+ const arrow = this.nextArrow();
110
+ if (!arrow || !this.flipped)
111
+ return;
112
+ this.goodJobPlaybackId = detail.playbackId;
113
+ arrow.classList.add('flash-card-next-glowing');
114
+ };
115
+ this.onAudioEnded = (event) => {
116
+ var _a, _b, _c;
117
+ const target = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.target;
91
118
  const instruction = this.instructionText();
92
119
  if (!target || (target !== instruction && target.id !== 'lido-avatar' && !this.el.contains(target)))
93
120
  return;
121
+ if (target === this.narrationTarget && !this.narrationHandled) {
122
+ this.finishNarration(target);
123
+ return;
124
+ }
125
+ if (this.narrationHandled && target === this.narrationTarget)
126
+ return;
94
127
  if (target === this.instructionText()) {
95
128
  this.instructionDone = true;
96
- window.setTimeout(() => {
129
+ this.frontStartTimer = window.setTimeout(() => {
97
130
  this.speakFront();
98
131
  }, 1200);
99
132
  }
@@ -112,6 +145,11 @@ export class LidoFlash {
112
145
  this.showArrow();
113
146
  }
114
147
  else if (target.id === 'lido-avatar') {
148
+ const playbackId = (_b = event.detail) === null || _b === void 0 ? void 0 : _b.playbackId;
149
+ const playbackContext = (_c = event.detail) === null || _c === void 0 ? void 0 : _c.playbackContext;
150
+ if (playbackContext !== this.goodJobPlaybackContext || playbackId !== this.goodJobPlaybackId)
151
+ return;
152
+ this.goodJobPlaybackId = undefined;
115
153
  executeActions("this.avatarAnimate='Idle'", target);
116
154
  }
117
155
  };
@@ -151,13 +189,15 @@ export class LidoFlash {
151
189
  if (this.autoFlipTimer)
152
190
  window.clearTimeout(this.autoFlipTimer);
153
191
  AudioPlayer.getI().stop();
192
+ this.clearNarrationTimers();
154
193
  const goingBack = !this.flipped;
155
194
  this.flipped = !this.flipped;
195
+ this.stopGoodJobGlow();
156
196
  this.setArrowVisible(false);
157
197
  if (goingBack) {
158
198
  const text = this.backText();
159
199
  if (text && ((_a = text.textContent) === null || _a === void 0 ? void 0 : _a.trim()))
160
- executeActions("this.speak='true'", text);
200
+ this.startNarration(text);
161
201
  else
162
202
  this.showArrow();
163
203
  }
@@ -165,40 +205,113 @@ export class LidoFlash {
165
205
  this.speakFront();
166
206
  }
167
207
  };
168
- this.instructionText = () => { var _a; return document.getElementById(((_a = this.el.closest('lido-container')) === null || _a === void 0 ? void 0 : _a.getAttribute('template-id')) || ''); };
208
+ this.instructionText = () => {
209
+ const container = this.el.closest('lido-container');
210
+ const id = container === null || container === void 0 ? void 0 : container.getAttribute('template-id');
211
+ return id ? container === null || container === void 0 ? void 0 : container.querySelector(`[id="${id}"]`) : null;
212
+ };
169
213
  this.frontText = () => this.el.querySelector('.card-front lido-text');
170
214
  this.backText = () => this.el.querySelector('.card-back lido-text');
171
- this.speakFront = () => {
215
+ this.nextArrow = () => { var _a; return (_a = this.el.closest('lido-container')) === null || _a === void 0 ? void 0 : _a.querySelector('#arrow'); };
216
+ this.stopGoodJobGlow = () => {
172
217
  var _a;
218
+ this.goodJobPlaybackId = undefined;
219
+ this.goodJobPlaybackContext = undefined;
220
+ (_a = this.nextArrow()) === null || _a === void 0 ? void 0 : _a.classList.remove('flash-card-next-glowing');
221
+ };
222
+ this.speakFront = () => {
223
+ var _a, _b;
173
224
  const text = this.frontText();
174
225
  if (this.instructionDone && !this.flipped && text && ((_a = text.textContent) === null || _a === void 0 ? void 0 : _a.trim())) {
175
- executeActions("this.speak='true'", text);
226
+ this.startNarration(text);
227
+ }
228
+ else if (this.instructionDone && !this.flipped && (!text || !((_b = text.textContent) === null || _b === void 0 ? void 0 : _b.trim()))) {
229
+ if (this.autoFlipTimer)
230
+ window.clearTimeout(this.autoFlipTimer);
231
+ this.autoFlipTimer = window.setTimeout(() => {
232
+ if (!this.flipped)
233
+ this.handleFlip();
234
+ }, this.autoFlipAfter);
176
235
  }
177
236
  };
237
+ this.clearNarrationTimers = () => {
238
+ if (this.narrationGraceTimer)
239
+ window.clearTimeout(this.narrationGraceTimer);
240
+ this.narrationGraceTimer = undefined;
241
+ this.narrationTarget = null;
242
+ this.narrationHandled = false;
243
+ };
244
+ this.continueAfterNarration = (target) => {
245
+ if (target === this.instructionText()) {
246
+ this.instructionDone = true;
247
+ this.frontStartTimer = window.setTimeout(() => this.speakFront(), 1200);
248
+ }
249
+ else if (target === this.frontText()) {
250
+ if (this.flipped)
251
+ return;
252
+ if (this.autoFlipTimer)
253
+ window.clearTimeout(this.autoFlipTimer);
254
+ this.autoFlipTimer = window.setTimeout(() => {
255
+ if (!this.flipped)
256
+ this.handleFlip();
257
+ }, this.autoFlipAfter);
258
+ }
259
+ else if (target === this.backText()) {
260
+ if (this.flipped)
261
+ this.showArrow();
262
+ }
263
+ };
264
+ this.finishNarration = (target) => {
265
+ if (target !== this.narrationTarget || this.narrationHandled)
266
+ return;
267
+ this.narrationHandled = true;
268
+ if (this.narrationGraceTimer)
269
+ window.clearTimeout(this.narrationGraceTimer);
270
+ this.narrationGraceTimer = undefined;
271
+ this.continueAfterNarration(target);
272
+ };
273
+ this.startNarration = (target) => {
274
+ this.clearNarrationTimers();
275
+ this.narrationTarget = target;
276
+ this.narrationGraceTimer = window.setTimeout(() => {
277
+ if (!this.narrationHandled)
278
+ this.finishNarration(target);
279
+ }, LidoFlash.narrationStartGrace);
280
+ executeActions("this.speak='true'", target);
281
+ };
178
282
  this.showArrow = () => {
179
283
  if (!this.flipped)
180
284
  return;
181
- const arrow = document.getElementById('arrow');
285
+ const container = this.el.closest('lido-container');
286
+ if ((container === null || container === void 0 ? void 0 : container.getAttribute('template-id')) !== 'flashcardtemplate')
287
+ return;
288
+ const arrow = this.nextArrow();
182
289
  if (!arrow)
183
290
  return;
184
291
  // Existing ZIPs may not have the newer template onTouch action. Reuse
185
292
  // the same direct nextBtn action as the shared home arrow for them.
186
293
  if (!arrow.getAttribute('onTouch'))
187
294
  arrow.setAttribute('onTouch', "this.nextBtn='true';");
188
- const mascot = document.getElementById('lido-avatar');
295
+ const mascot = container.querySelector('#lido-avatar');
189
296
  const scaffoldAudio = arrow.getAttribute('audio');
190
297
  if (mascot && scaffoldAudio) {
191
298
  mascot.setAttribute('audio', scaffoldAudio);
192
- arrow.removeAttribute('audio');
193
299
  }
194
300
  this.setArrowVisible(true);
301
+ // Keep the next action highlighted after mascot audio ends.
302
+ arrow.classList.add('flash-card-next-glowing');
195
303
  if (mascot) {
304
+ this.goodJobPlaybackContext = {};
305
+ this.goodJobPlaybackId = undefined;
196
306
  executeActions("this.avatarAnimate='Idle speak'", mascot);
197
- AudioPlayer.getI().play(mascot, true);
307
+ AudioPlayer.getI().play(mascot, true, this.goodJobPlaybackContext);
198
308
  }
199
309
  };
200
310
  this.setArrowVisible = (visible) => {
201
- const arrow = document.getElementById('arrow');
311
+ const container = this.el.closest('lido-container');
312
+ if ((container === null || container === void 0 ? void 0 : container.getAttribute('template-id')) !== 'flashcardtemplate')
313
+ return;
314
+ const arrow = container.querySelector('#arrow');
202
315
  if (!arrow)
203
316
  return;
204
317
  arrow.visible = visible;
@@ -209,6 +322,7 @@ export class LidoFlash {
209
322
  arrow.style.display = visible ? 'block' : 'none';
210
323
  arrow.style.visibility = visible ? 'visible' : 'hidden';
211
324
  arrow.style.opacity = visible ? '1' : '0';
325
+ arrow.style.pointerEvents = visible ? 'auto' : 'none';
212
326
  const arrowImage = arrow.querySelector('lido-image');
213
327
  if (arrowImage) {
214
328
  arrowImage.style.display = visible ? 'flex' : 'none';
@@ -231,21 +345,47 @@ export class LidoFlash {
231
345
  window.addEventListener('load', this.updateStyles);
232
346
  }
233
347
  componentDidLoad() {
348
+ var _a;
234
349
  setVisibilityWithDelay(this.el, this.delayVisible);
235
350
  initEventsForElement(this.el, this.type);
351
+ window.addEventListener('lidoAudioStarted', this.onAudioStarted);
352
+ window.addEventListener('lidoAudioPlaying', this.onAudioPlaying);
236
353
  window.addEventListener('lidoAudioEnded', this.onAudioEnded);
354
+ const container = this.el.closest('lido-container');
355
+ if ((container === null || container === void 0 ? void 0 : container.getAttribute('template-id')) === 'flashcardtemplate') {
356
+ (_a = container.querySelector('#lido-avatar')) === null || _a === void 0 ? void 0 : _a.setAttribute('disable-speak', 'true');
357
+ this.instructionStartTimer = window.setTimeout(() => {
358
+ if (!this.instructionStarted && !this.instructionDone) {
359
+ const instruction = this.instructionText();
360
+ if (instruction)
361
+ this.startNarration(instruction);
362
+ }
363
+ }, 150);
364
+ }
237
365
  // handlingChildElements(this.el, this.minLength, this.maxLength, this.childElementsLength, 'inline-block');
238
366
  }
239
367
  disconnectedCallback() {
240
368
  window.removeEventListener('lidoAudioEnded', this.onAudioEnded);
369
+ window.removeEventListener('lidoAudioPlaying', this.onAudioPlaying);
370
+ window.removeEventListener('lidoAudioStarted', this.onAudioStarted);
241
371
  if (this.autoFlipTimer)
242
372
  window.clearTimeout(this.autoFlipTimer);
373
+ if (this.instructionStartTimer)
374
+ window.clearTimeout(this.instructionStartTimer);
375
+ if (this.frontStartTimer)
376
+ window.clearTimeout(this.frontStartTimer);
377
+ this.clearNarrationTimers();
243
378
  window.removeEventListener('resize', this.updateStyles);
244
379
  window.removeEventListener('load', this.updateStyles);
245
380
  }
246
381
  /* ---------- Render ---------- */
247
382
  render() {
248
- return (h(Host, { key: '8d65b494352e0c0aefb3815c87a798967ccb65aa', 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: this.handleFlip, "disable-speak": this.disableSpeak }, h("div", { key: 'db3d4fce4f9f54437485ab1274b1f9bd3b3486bc', class: `card ${this.flipped ? 'flipped' : ''}` }, h("div", { key: 'd37770b0b08eac533265d7f8049c598df047aa37', class: "card-face card-front" }, this.front != null ? this.front : h("slot", { name: "front" })), h("div", { key: '2f8431017cfed9f9adb679442be833a65704d41e', class: "card-face card-back" }, this.back != null ? this.back : h("slot", { name: "back" })))));
383
+ return (h(Host, { key: '57b9dc5ecf618dc381a58e107fa2990b84f5517a', 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) => {
384
+ var _a, _b;
385
+ if ((_b = (_a = event.target) === null || _a === void 0 ? void 0 : _a.closest) === null || _b === void 0 ? void 0 : _b.call(_a, '#lido-avatar'))
386
+ return;
387
+ this.handleFlip();
388
+ }, "disable-speak": this.disableSpeak }, h("div", { key: '3712fc66e33323bdd55e0abb747370ee461dc808', class: `card ${this.flipped ? 'flipped' : ''}` }, h("div", { key: 'eb8af2e445393592c0e8a3e4c5934c71dcab4b4e', class: "card-face card-front" }, this.front != null ? this.front : h("slot", { name: "front" })), h("div", { key: 'efa14cc7ea506714342151b12a9724bdcdb1eba8', class: "card-face card-back" }, this.back != null ? this.back : h("slot", { name: "back" })))));
249
389
  }
250
390
  static get is() { return "lido-flash-card"; }
251
391
  static get originalStyleUrls() {
@@ -612,7 +752,7 @@ export class LidoFlash {
612
752
  "optional": false,
613
753
  "docs": {
614
754
  "tags": [],
615
- "text": "The number of child elements that should be displayed inside the row.\r\nThis value is dynamically adjusted based on `minLength` and `maxLength`."
755
+ "text": "The number of child elements that should be displayed inside the row.\nThis value is dynamically adjusted based on `minLength` and `maxLength`."
616
756
  },
617
757
  "getter": false,
618
758
  "setter": false,
@@ -688,7 +828,7 @@ export class LidoFlash {
688
828
  "optional": false,
689
829
  "docs": {
690
830
  "tags": [],
691
- "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."
831
+ "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."
692
832
  },
693
833
  "getter": false,
694
834
  "setter": false,
@@ -728,7 +868,7 @@ export class LidoFlash {
728
868
  "optional": false,
729
869
  "docs": {
730
870
  "tags": [],
731
- "text": "CSS margin value applied to each child element inside the container.\r\nAccepts standard CSS margin formats (e.g., '10px', '5px 10px', etc.)."
871
+ "text": "CSS margin value applied to each child element inside the container.\nAccepts standard CSS margin formats (e.g., '10px', '5px 10px', etc.)."
732
872
  },
733
873
  "getter": false,
734
874
  "setter": false,
@@ -791,3 +931,4 @@ export class LidoFlash {
791
931
  }];
792
932
  }
793
933
  }
934
+ LidoFlash.narrationStartGrace = 800;