lido-player 0.0.2-beta-19-dev → 0.0.2-beta-22-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.
- package/LICENSE +21 -21
- package/dist/cjs/{decode-Bny56MQ9.js → decode-Cr5DANqc.js} +1 -1
- package/dist/cjs/{index-BY9fvbr8.js → index-0BvcfeCt.js} +144 -68
- package/dist/cjs/{index-DjsCseV8.js → index-DnaH8sO-.js} +20 -67
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/lido-avatar_22.cjs.entry.js +279 -66
- package/dist/cjs/lido-player.cjs.js +3 -3
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/avatar/lido-avatar.css +4 -4
- package/dist/collection/components/avatar/lido-avatar.js +1 -1
- package/dist/collection/components/avatar/lido-avatar.tsx +207 -207
- package/dist/collection/components/avatar/readme.md +49 -49
- package/dist/collection/components/calculator/lido-calculator.css +89 -89
- package/dist/collection/components/calculator/lido-calculator.js +2 -2
- package/dist/collection/components/canvas/lido-canvas.css +33 -33
- package/dist/collection/components/canvas/lido-canvas.js +1 -1
- package/dist/collection/components/cell/lido-cell.css +100 -100
- package/dist/collection/components/cell/lido-cell.js +12 -12
- package/dist/collection/components/column/lido-col.css +19 -19
- package/dist/collection/components/column/lido-col.js +6 -6
- package/dist/collection/components/container/lido-container.css +10 -10
- package/dist/collection/components/container/lido-container.js +8 -8
- package/dist/collection/components/flashCard/lido-flash-card.css +46 -28
- package/dist/collection/components/flashCard/lido-flash-card.js +131 -14
- package/dist/collection/components/float/lido-float.css +30 -30
- package/dist/collection/components/float/lido-float.js +2 -2
- package/dist/collection/components/home/lido-home.css +309 -309
- package/dist/collection/components/home/lido-home.js +9 -6
- package/dist/collection/components/image/lido-image.css +17 -17
- package/dist/collection/components/image/lido-image.js +6 -6
- package/dist/collection/components/keyboard/lido-keyboard.css +38 -38
- package/dist/collection/components/keyboard/lido-keyboard.js +3 -3
- package/dist/collection/components/mathMatrix/lido-math-matrix.css +56 -56
- package/dist/collection/components/mathMatrix/lido-math-matrix.js +1 -1
- package/dist/collection/components/position/lido-pos.css +16 -16
- package/dist/collection/components/position/lido-pos.js +2 -2
- package/dist/collection/components/random/lido-random.css +8 -8
- package/dist/collection/components/random/lido-random.js +2 -2
- package/dist/collection/components/root/lido-root.js +5 -5
- package/dist/collection/components/row/lido-row.css +10 -10
- package/dist/collection/components/row/lido-row.js +6 -6
- package/dist/collection/components/scale/assets/Shadow.svg +9 -9
- package/dist/collection/components/scale/lido-balance.css +174 -145
- package/dist/collection/components/scale/lido-balance.js +54 -14
- package/dist/collection/components/shape/lido-shape.css +216 -216
- package/dist/collection/components/shape/lido-shape.js +6 -6
- package/dist/collection/components/slideFill/lido-slide-fill.css +3 -3
- package/dist/collection/components/slideFill/lido-slide-fill.js +13 -13
- package/dist/collection/components/text/lido-text.css +53 -53
- package/dist/collection/components/text/lido-text.js +5 -5
- package/dist/collection/components/trace/assets/Tracing-hand.svg +8 -8
- package/dist/collection/components/trace/lido-trace.css +97 -97
- package/dist/collection/components/trace/lido-trace.js +119 -23
- package/dist/collection/components/wrap/lido-wrap.css +18 -18
- package/dist/collection/components/wrap/lido-wrap.js +6 -6
- package/dist/collection/css/animation.css +211 -211
- package/dist/collection/css/index.css +323 -323
- package/dist/collection/stories/Templates/Fill-Up/fill-up.stories.js +61 -61
- package/dist/collection/stories/Templates/LetterPairing/LetterPairing.stories.js +123 -123
- package/dist/collection/stories/Templates/RocketGame/rocketGame.stories.js +48 -48
- package/dist/collection/stories/Templates/Tag/tagGame.stories.js +39 -39
- package/dist/collection/stories/Templates/arrangeLetters/arrangeLetters.stories.js +44 -44
- package/dist/collection/stories/Templates/balancing/balancing.stories.js +35 -35
- package/dist/collection/stories/Templates/balloonPop/balloonPop.stories.js +38 -38
- package/dist/collection/stories/Templates/blender/blender.stories.js +59 -59
- package/dist/collection/stories/Templates/bubbleType/bubbleType.stories.js +42 -42
- package/dist/collection/stories/Templates/calculator/calculator.stories.js +28 -28
- package/dist/collection/stories/Templates/categorize/categorize.stories.js +37 -37
- package/dist/collection/stories/Templates/categorize2/categorize2.stories.js +67 -67
- package/dist/collection/stories/Templates/checker-block/checkerBlock.stories.js +29 -29
- package/dist/collection/stories/Templates/checkerBlock/checkerBlock.stories.js +13 -13
- package/dist/collection/stories/Templates/create-sentence/createSentence.stories.js +74 -74
- package/dist/collection/stories/Templates/dragAndDrop/drag-drop.stories.js +69 -69
- package/dist/collection/stories/Templates/fillAnswer/fill-answer.stories.js +43 -43
- package/dist/collection/stories/Templates/fillBlank/fill-blank.stories.js +282 -282
- package/dist/collection/stories/Templates/foodJar/food-jar.stories.js +35 -35
- package/dist/collection/stories/Templates/grid/grid.stories.js +118 -118
- package/dist/collection/stories/Templates/gridGame/grid-game.stories.js +57 -57
- package/dist/collection/stories/Templates/imageMatch/imageMatch.stories.js +44 -44
- package/dist/collection/stories/Templates/jumpSentence/jumpSentence.stories.js +41 -41
- package/dist/collection/stories/Templates/letterboard/letterboard.stories.js +183 -183
- package/dist/collection/stories/Templates/makeSentence/make-sentence.stories.js +36 -36
- package/dist/collection/stories/Templates/matchBox/matchBox.stories.js +69 -69
- package/dist/collection/stories/Templates/matchBox/matchBox2.stories.js +84 -84
- package/dist/collection/stories/Templates/matchingCard/matching-card.stories.js +31 -31
- package/dist/collection/stories/Templates/multipleOption/mcqWithQuestionImage.stories.js +112 -112
- package/dist/collection/stories/Templates/multipleOption/multiple-option.stories.js +47 -47
- package/dist/collection/stories/Templates/multiplyBeeds/multiplyBeeds.stories.js +57 -57
- package/dist/collection/stories/Templates/nimbleTable/nimbleTable.stories.js +53 -53
- package/dist/collection/stories/Templates/numberBoard/numberBoard.stories.js +46 -46
- package/dist/collection/stories/Templates/numberBoardTwo/numberBoardTwo.stories.js +45 -45
- package/dist/collection/stories/Templates/numberIdentification/numberIdentificationimageTotext.stories.js +56 -56
- package/dist/collection/stories/Templates/numberIdentification/numberIdentificationtextTotext.stories.js +53 -53
- package/dist/collection/stories/Templates/numberPair/numberPair.stories.js +127 -127
- package/dist/collection/stories/Templates/openwindow/openwindow.stories.js +47 -47
- package/dist/collection/stories/Templates/openwindow/openwindow2.stories.js +38 -38
- package/dist/collection/stories/Templates/order-tractor/order-tractor-ascending-order.stories.js +97 -97
- package/dist/collection/stories/Templates/order-tractor/order-tractor.stories.js +90 -90
- package/dist/collection/stories/Templates/palEgmaCalculateSum/palEgmaMultiOption.stories.js +63 -63
- package/dist/collection/stories/Templates/palEgmaCalculateSum/palEgmaSumTogether.stories.js +45 -45
- package/dist/collection/stories/Templates/palEgmaPatternMatching/palEgmaPatternMatching.stories.js +63 -63
- package/dist/collection/stories/Templates/palEgmaWordProblem/palEgmaWordProblem.stories.js +79 -79
- package/dist/collection/stories/Templates/palEgraInventedSpelling/pal_egra_invented_spelling_schema.stories.js +32 -32
- package/dist/collection/stories/Templates/palEgraMCQWithImage/palEgraMCQWithImage.stories.js +42 -42
- package/dist/collection/stories/Templates/palEgraOptionWithAudio/palEgraOptionWithAudio.stories.js +63 -63
- package/dist/collection/stories/Templates/palEgraStoryMaking/pal_egra_story_making.stories.js +44 -44
- package/dist/collection/stories/Templates/palEgraTemplate1/palEgraLetterIdentification.stories.js +34 -34
- package/dist/collection/stories/Templates/palEgraWordMatch/palEgraWordMatch.stories.js +52 -52
- package/dist/collection/stories/Templates/palEgra_OddOneOut/palEgra_oddOneOut.stories.js +33 -33
- package/dist/collection/stories/Templates/palEgra_arrange_pictures/palEgra_arrange_pictures.stories.js +40 -40
- package/dist/collection/stories/Templates/palEgra_build_word/palEgra_build_word.stories.js +48 -48
- package/dist/collection/stories/Templates/palEgra_word_formation/palEgra_WordFormation.stories.js +48 -48
- package/dist/collection/stories/Templates/palStorytale/palStorytale.stories.js +18 -18
- package/dist/collection/stories/Templates/phonic-tractor/phonic-tractor.stories.js +44 -44
- package/dist/collection/stories/Templates/pictureClues/pictureClues.stories.js +34 -34
- package/dist/collection/stories/Templates/pictureWordMatch/pictureWordMatch1.stories.js +36 -36
- package/dist/collection/stories/Templates/pictureWordMatch/pictureWordMatch2.stories.js +30 -30
- package/dist/collection/stories/Templates/picturemeaning/pictureMeaningCocos.stories.js +20 -20
- package/dist/collection/stories/Templates/puzzleGame/puzzleGame.stories.js +17 -17
- package/dist/collection/stories/Templates/questionBoard/questionBoard.stories.js +58 -58
- package/dist/collection/stories/Templates/quizLiteracy/quizLiteracy.stories.js +50 -50
- package/dist/collection/stories/Templates/quizLiteracy/quizLiteracyImageWithText.stories.js +36 -36
- package/dist/collection/stories/Templates/quizLiteracy/quizLiteracyImageWord.stories.js +43 -43
- package/dist/collection/stories/Templates/quizMaths/quizMaths.stories.js +631 -631
- package/dist/collection/stories/Templates/reorder/reorder.stories.js +63 -63
- package/dist/collection/stories/Templates/rowBlocks/rowBlocks.stories.js +47 -47
- package/dist/collection/stories/Templates/sentenceMatch/sentenceMatch.stories.js +29 -29
- package/dist/collection/stories/Templates/sequenceBox/sequenceBox1.stories.js +64 -64
- package/dist/collection/stories/Templates/sequenceBox/sequenceBox2.stories.js +62 -62
- package/dist/collection/stories/Templates/shapePair/shape-pair.stories.js +106 -106
- package/dist/collection/stories/Templates/shapeTractor/shape-tractor.stories.js +50 -50
- package/dist/collection/stories/Templates/spellDoor/spellDoor.stories.js +41 -41
- package/dist/collection/stories/Templates/storyTale/storyTale.stories.js +39 -39
- package/dist/collection/stories/Templates/substraction/substractionWithimg.stories.js +62 -62
- package/dist/collection/stories/Templates/substraction/substractionWithoutImg.stories.js +42 -42
- package/dist/collection/stories/Templates/sumTogether/sumTogether.stories.js +50 -50
- package/dist/collection/stories/Templates/tenBox/tenBox.stories.js +88 -88
- package/dist/collection/stories/Templates/total/total.stories.js +28 -28
- package/dist/collection/stories/Templates/wordBuilding/wordBuildingwithimg.stories.js +35 -35
- package/dist/collection/stories/Templates/wordBuilding/wordBuildingwithoutimg.stories.js +34 -34
- package/dist/collection/stories/Templates/writeCard/writeCard.stories.js +31 -31
- package/dist/collection/stories/Templates/writeLetter/writeLetter.stories.js +58 -58
- package/dist/collection/stories/Templates/writeNumber/writeNumber.stories.js +44 -44
- package/dist/collection/stories/Templates/writeSet/writeSet.stories.js +31 -31
- package/dist/collection/stories/Templates/writeWord/writeWord.stories.js +34 -34
- package/dist/collection/stories/components/flash-card.stories.js +48 -48
- package/dist/collection/stories/components/keyboard.stories.js +10 -10
- package/dist/collection/stories/components/slider.stories.js +4 -4
- package/dist/collection/stories/components/trace.stories.js +5 -5
- package/dist/collection/utils/audioPlayer.js +9 -12
- package/dist/collection/utils/utils.js +24 -8
- package/dist/collection/utils/utilsHandlers/dragDropHandler.js +16 -10
- package/dist/collection/utils/utilsHandlers/highlightHandler.js +54 -54
- package/dist/collection/utils/utilsHandlers/lidoBalanceHandler.js +58 -1
- package/dist/collection/utils/utilsHandlers/sortHandler.js +10 -10
- package/dist/components/index.js +1 -1
- package/dist/components/lido-avatar.js +1 -1
- package/dist/components/lido-balance.js +1 -1
- package/dist/components/lido-calculator.js +1 -1
- package/dist/components/lido-canvas.js +1 -1
- package/dist/components/lido-cell.js +1 -1
- package/dist/components/lido-col.js +1 -1
- package/dist/components/lido-container.js +1 -1
- package/dist/components/lido-flash-card.js +1 -1
- package/dist/components/lido-float.js +1 -1
- package/dist/components/lido-home.js +1 -1
- package/dist/components/lido-keyboard.js +1 -1
- package/dist/components/lido-math-matrix.js +1 -1
- package/dist/components/lido-pos.js +1 -1
- package/dist/components/lido-random.js +1 -1
- package/dist/components/lido-root.js +1 -1
- package/dist/components/lido-row.js +1 -1
- package/dist/components/lido-shape.js +1 -1
- package/dist/components/lido-slide-fill.js +1 -1
- package/dist/components/lido-text.js +1 -1
- package/dist/components/lido-trace.js +1 -1
- package/dist/components/lido-wrap.js +1 -1
- package/dist/components/{p-BOQDbCrm.js → p-BJiyBHYT.js} +1 -1
- package/dist/components/p-BUfCIPRa.js +1 -0
- package/dist/components/{p-CTlcpv4a.js → p-BfwUqpXc.js} +1 -1
- package/dist/components/p-BiBt9LGP.js +1 -0
- package/dist/components/{p-CgsPIpg0.js → p-Bw-OC9iR.js} +1 -1
- package/dist/components/{p-B4YAipq-.js → p-CFzvgrMa.js} +1 -1
- package/dist/components/{p-C5WmmkI6.js → p-CPYnt0P-.js} +1 -1
- package/dist/components/{p-CCR42e0i.js → p-ChfVUoX4.js} +1 -1
- package/dist/components/{p-CWwymnbk.js → p-CkxAm8rY.js} +2 -2
- package/dist/components/{p-BeRr8u5m.js → p-CwDTdXe5.js} +1 -1
- package/dist/components/{p-CXHPZN3m.js → p-CyGxEcn7.js} +1 -1
- package/dist/components/{p-BJMjg5wu.js → p-D2GhaM-T.js} +1 -1
- package/dist/components/{p-BBHM059l.js → p-DDS30M3y.js} +1 -1
- package/dist/components/p-DP6jQ5ML.js +1 -0
- package/dist/components/{p-CljvnHkI.js → p-DZRNZCPt.js} +1 -1
- package/dist/components/p-DbR5sNOj.js +1 -0
- package/dist/components/{p-B8nzzM8c.js → p-DdQ1eqJr.js} +1 -1
- package/dist/components/p-leIEepjl.js +1 -0
- package/dist/components/p-u3czV7QM.js +1 -0
- package/dist/components/{p-C70ykycD.js → p-useuhkjH.js} +1 -1
- package/dist/esm/{decode-Buyq-Iy5.js → decode-DkSXjv7K.js} +1 -1
- package/dist/esm/{index-CQXciux9.js → index-D9-TTsdZ.js} +144 -68
- package/dist/esm/{index-DQZfuGjI.js → index-Dvjbti-h.js} +20 -67
- package/dist/esm/index.js +2 -2
- package/dist/esm/lido-avatar_22.entry.js +279 -66
- package/dist/esm/lido-player.js +4 -4
- package/dist/esm/loader.js +3 -3
- package/dist/lido-player/assets/Shadow.svg +9 -9
- package/dist/lido-player/assets/Tracing-hand.svg +8 -8
- package/dist/lido-player/index.esm.js +1 -1
- package/dist/lido-player/lido-avatar.css +4 -4
- package/dist/lido-player/lido-avatar.tsx +207 -207
- package/dist/lido-player/lido-player.css +7 -7
- package/dist/lido-player/lido-player.esm.js +1 -1
- package/dist/lido-player/p-35fa0b8b.entry.js +12 -0
- package/dist/lido-player/p-D2iINRNN.js +1 -0
- package/dist/lido-player/{p-CFtq4Thh.js → p-Dc8j8Hxw.js} +1 -1
- package/dist/lido-player/p-Dvjbti-h.js +2 -0
- package/dist/lido-player/readme.md +49 -49
- package/dist/types/components/flashCard/lido-flash-card.d.ts +10 -0
- package/dist/types/components/scale/lido-balance.d.ts +5 -0
- package/dist/types/components/trace/lido-trace.d.ts +9 -1
- package/dist/types/components.d.ts +10 -0
- package/dist/types/stencil-public-runtime.d.ts +55 -73
- package/dist/types/types/json.d.ts +3 -3
- package/dist/types/utils/audioPlayer.d.ts +1 -1
- package/dist/types/utils/utilsHandlers/lidoBalanceHandler.d.ts +10 -0
- package/loader/index.d.ts +1 -1
- package/package.json +74 -74
- package/readme.md +113 -113
- package/dist/components/p-BfqihbR6.js +0 -1
- package/dist/components/p-CwIlwnQk.js +0 -1
- package/dist/components/p-DLyacZap.js +0 -1
- package/dist/components/p-DONbWJGn.js +0 -1
- package/dist/components/p-DVTigdH_.js +0 -1
- package/dist/components/p-DYFVwyRr.js +0 -1
- package/dist/lido-player/p-37736e11.entry.js +0 -12
- package/dist/lido-player/p-3Ry570XH.js +0 -1
- package/dist/lido-player/p-DQZfuGjI.js +0 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
4
|
-
var index$1 = require('./index-
|
|
3
|
+
var index = require('./index-DnaH8sO-.js');
|
|
4
|
+
var index$1 = require('./index-0BvcfeCt.js');
|
|
5
5
|
|
|
6
6
|
var rive$1 = {exports: {}};
|
|
7
7
|
|
|
@@ -8160,7 +8160,7 @@ const LidoAvatar = class {
|
|
|
8160
8160
|
display: this.visible ? 'flex' : 'none',
|
|
8161
8161
|
zIndex: this.z,
|
|
8162
8162
|
};
|
|
8163
|
-
return (index.h(index.Host, { key: '
|
|
8163
|
+
return (index.h(index.Host, { key: '14599bbd626e766d35b9611f80dd401ee76717b4', id: this.id, type: this.type, "tab-index": this.tabIndex, value: this.value, style: style, "aria-label": this.ariaLabel, "aria-hidden": this.ariaHidden, audio: this.audio, onTouch: this.onTouch, onCorrect: this.onCorrect, onInCorrect: this.onInCorrect, onEntry: this.onEntry, src: this.src }, index.h("canvas", { key: '6f128e61bee6797c0cf83c15b3fd3ba4d1d7b1ea', class: "lido-canvas" })));
|
|
8164
8164
|
}
|
|
8165
8165
|
static get assetsDirs() { return ["."]; }
|
|
8166
8166
|
get el() { return index.getElement(this); }
|
|
@@ -8168,7 +8168,7 @@ const LidoAvatar = class {
|
|
|
8168
8168
|
LidoAvatar.RIVE_WASM_URL = 'https://unpkg.com/@rive-app/canvas@2.32.0/rive.wasm';
|
|
8169
8169
|
LidoAvatar.style = lidoAvatarCss();
|
|
8170
8170
|
|
|
8171
|
-
const lidoBalanceCss = () => `#lido-balance{position:relative;height:500px;width:1205px;top:20%;left:-91px;z-index:0}.lido-balance-symbol{position:absolute;top:64%;left:50%;transform:translate(-50%, -50%);font-size:5vw;font-weight:bold;color:black;pointer-events:none;z-index:999}@media (orientation: portrait){.lido-balance-shadow{height:100px;position:absolute;top:80%;left:28%}}@media (orientation: landscape){.lido-balance-shadow{height:100px;position:absolute;top:90%;left:33%}}@media (orientation: portrait){#pivotimg{position:absolute;height:auto;width:23%;bottom:18%;left:38%;z-index:100}}#pivotimg::after{content:"";position:absolute;bottom:-30px;left:50%;transform:translateX(-50%);width:120%;height:60px;background-image:var(--lido-balance-shadow-url);background-size:contain;background-repeat:no-repeat;background-position:center;pointer-events:none;z-index:10}@media (orientation: landscape){#pivotimg{position:absolute;height:auto;width:23%;bottom:8%;left:38%;z-index:100}}.lido-balance .pivot svg{width:100%;height:auto}#scaleimg{position:absolute;width:73%;height:auto;top:61%;left:14%;z-index:90}.lido-balance .scale svg{width:100%;height:auto}@media (orientation: landscape){#handlerimg{position:absolute;width:35%;height:auto;top:49%;left:2%}}@media (orientation:portrait ){#handlerimg{position:absolute;width:35%;height:auto;top:53%;left:2%}}.lido-balance .handler svg{width:100%;height:auto;fill:brown}@media (orientation: landscape){#handimg{position:absolute;width:35%;height:auto;top:49%;right:2%}}@media (orientation:portrait){#handimg{position:absolute;width:35%;height:auto;top:53%;right:2%}}.lido-balance .hand svg{width:100%;height:auto;fill:brown}.pivot svg path:nth-of-type(1){fill:brown}.pivot svg path[d^="M78.9414"]{fill:white}`;
|
|
8171
|
+
const lidoBalanceCss = () => `#lido-balance{position:relative;height:500px;width:1205px;top:20%;left:-91px;z-index:0}.lido-balance-symbol{position:absolute;top:64%;left:50%;transform:translate(-50%, -50%);font-size:5vw;font-weight:bold;color:black;pointer-events:none;z-index:999}@media (orientation: portrait){.lido-balance-shadow{height:100px;position:absolute;top:80%;left:28%}}.balance-plate-feedback{position:absolute;top:52%;width:34%;height:12px;border-radius:0 0 8px 8px;opacity:0.95;box-shadow:0 9px 10px -2px rgba(70, 0, 0, 0.6);pointer-events:none;z-index:95}.balance-plate-feedback[aria-hidden='true']{display:none}.balance-plate-feedback.left{left:2.5%}.balance-plate-feedback.right{right:2.5%}.balance-plate-feedback::after{content:'';position:absolute;top:100%;left:4%;width:92%;height:11px;border-radius:0 0 8px 8px;background:inherit;opacity:0.75;filter:blur(5px);pointer-events:none}@media (orientation: landscape){.lido-balance-shadow{height:100px;position:absolute;top:90%;left:33%}}@media (orientation: portrait){#pivotimg{position:absolute;height:auto;width:23%;bottom:18%;left:38%;z-index:100}}#pivotimg::after{content:"";position:absolute;bottom:-30px;left:50%;transform:translateX(-50%);width:120%;height:60px;background-image:var(--lido-balance-shadow-url);background-size:contain;background-repeat:no-repeat;background-position:center;pointer-events:none;z-index:10}@media (orientation: landscape){#pivotimg{position:absolute;height:auto;width:23%;bottom:8%;left:38%;z-index:100}}.lido-balance .pivot svg{width:100%;height:auto}#scaleimg{position:absolute;width:73%;height:auto;top:61%;left:14%;z-index:90}.lido-balance .scale svg{width:100%;height:auto}@media (orientation: landscape){#handlerimg{position:absolute;width:35%;height:auto;top:49%;left:2%}}@media (orientation:portrait ){#handlerimg{position:absolute;width:35%;height:auto;top:53%;left:2%}}.lido-balance .handler svg{width:100%;height:auto;fill:brown}@media (orientation: landscape){#handimg{position:absolute;width:35%;height:auto;top:49%;right:2%}}@media (orientation:portrait){#handimg{position:absolute;width:35%;height:auto;top:53%;right:2%}}.lido-balance .hand svg{width:100%;height:auto;fill:brown}.pivot svg path:nth-of-type(1){fill:brown}.pivot svg path[d^="M78.9414"]{fill:white}`;
|
|
8172
8172
|
|
|
8173
8173
|
const LidoBalance = class {
|
|
8174
8174
|
constructor(hostRef) {
|
|
@@ -8286,6 +8286,7 @@ const LidoBalance = class {
|
|
|
8286
8286
|
* Current computed value of the right side of the balance.
|
|
8287
8287
|
*/
|
|
8288
8288
|
this.rightVal = 0;
|
|
8289
|
+
this.feedbackColor = '';
|
|
8289
8290
|
this.currentAngle = 0;
|
|
8290
8291
|
}
|
|
8291
8292
|
async revealSymbol() {
|
|
@@ -8294,12 +8295,24 @@ const LidoBalance = class {
|
|
|
8294
8295
|
async hideSymbol() {
|
|
8295
8296
|
this.showSymbol = false;
|
|
8296
8297
|
}
|
|
8298
|
+
async setFeedbackColor(color = '') {
|
|
8299
|
+
this.feedbackColor = color;
|
|
8300
|
+
}
|
|
8297
8301
|
async componentWillLoad() {
|
|
8302
|
+
this.initializeInitialSymbol();
|
|
8298
8303
|
this.updateStyles();
|
|
8299
8304
|
this.pivotSvg = await this.fetchAndApplyFill(index$1.convertUrlToRelative(this.pivotimage));
|
|
8300
8305
|
this.scaleSvg = await this.fetchAndApplyFill(index$1.convertUrlToRelative(this.scaleimage));
|
|
8301
8306
|
this.handlerSvg = await this.fetchAndApplyFill(index$1.convertUrlToRelative(this.handlerimage));
|
|
8302
8307
|
}
|
|
8308
|
+
initializeInitialSymbol() {
|
|
8309
|
+
var _a, _b;
|
|
8310
|
+
const container = (_a = this.el) === null || _a === void 0 ? void 0 : _a.closest('lido-container');
|
|
8311
|
+
const objective = (_b = container === null || container === void 0 ? void 0 : container.getAttribute('objective')) === null || _b === void 0 ? void 0 : _b.trim();
|
|
8312
|
+
if (objective === '>' || objective === '<' || objective === '=')
|
|
8313
|
+
this.balanceSymbol = objective;
|
|
8314
|
+
this.showSymbol = true;
|
|
8315
|
+
}
|
|
8303
8316
|
componentDidLoad() {
|
|
8304
8317
|
this.animateBalance();
|
|
8305
8318
|
this.leftParentEl = document.getElementById("leftparent");
|
|
@@ -8364,6 +8377,11 @@ const LidoBalance = class {
|
|
|
8364
8377
|
const offset = (this.currentAngle / this.maxTilt) * maxOffset;
|
|
8365
8378
|
this.leftHandleEl.style.transform = `translateY(${-offset}px)`;
|
|
8366
8379
|
this.rightHandleEl.style.transform = `translateY(${offset}px)`;
|
|
8380
|
+
const feedbackOffset = (this.currentAngle / this.maxTilt) * maxOffset;
|
|
8381
|
+
if (this.leftFeedbackEl)
|
|
8382
|
+
this.leftFeedbackEl.style.transform = `translateY(${-feedbackOffset}px)`;
|
|
8383
|
+
if (this.rightFeedbackEl)
|
|
8384
|
+
this.rightFeedbackEl.style.transform = `translateY(${feedbackOffset}px)`;
|
|
8367
8385
|
}
|
|
8368
8386
|
this.animationFrameId = requestAnimationFrame(rotate);
|
|
8369
8387
|
};
|
|
@@ -8384,7 +8402,7 @@ const LidoBalance = class {
|
|
|
8384
8402
|
};
|
|
8385
8403
|
}
|
|
8386
8404
|
render() {
|
|
8387
|
-
return (index.h(index.Host, { key: '
|
|
8405
|
+
return (index.h(index.Host, { key: 'b455b2b5d330a2125f7fb8b4e2165d2e6e6bc1a0', id: "lido-balance", "bg-color": "red", onEntry: this.onEntry, class: "lido-balance", tilt: this.tilt.toString(), style: this.style, operation: this.operation.toString(), "pivot-image": this.pivotSvg, "scale-image": this.scaleSvg, "handler-image": this.handlerSvg }, index.h("div", { key: '657f471d397dd7e3476d5b6e35ee4495c8f2db4c', innerHTML: this.pivotSvg, id: "pivotimg", class: "pivot" }), index.h("div", { key: '7b91e1919db1fdbcddf79f43a9ad51695b7c806f', innerHTML: this.scaleSvg, id: "scaleimg", class: "scale", ref: (el) => (this.scaleEl = el) }), index.h("div", { key: '137a1440d55776d0771d8cd71741202c224896db', innerHTML: this.handlerSvg, id: "handlerimg", class: "handler", ref: (el) => (this.leftHandleEl = el) }), index.h("div", { key: 'd6e0deae63a4e219757240e585d582fb5a72a071', innerHTML: this.handlerSvg, id: "handimg", class: "hand", ref: (el) => (this.rightHandleEl = el) }), index.h("div", { key: 'ef51f98937cf10c017c8289359c92c24e7316a16', class: "balance-plate-feedback left", ref: (el) => (this.leftFeedbackEl = el), style: { backgroundColor: this.feedbackColor }, "aria-hidden": !this.feedbackColor }), index.h("div", { key: 'f21aade8543977b657a4d2fbcd623cf8769459a0', class: "balance-plate-feedback right", ref: (el) => (this.rightFeedbackEl = el), style: { backgroundColor: this.feedbackColor }, "aria-hidden": !this.feedbackColor }), index.h("div", { key: '0470afcef443dbeb69a7d651220d5ff50be3836e', id: "balanceSymbol", class: "lido-balance-symbol", "aria-hidden": !this.showSymbol }, this.showSymbol ? this.balanceSymbol : '')));
|
|
8388
8406
|
}
|
|
8389
8407
|
static get assetsDirs() { return ["assets"]; }
|
|
8390
8408
|
get el() { return index.getElement(this); }
|
|
@@ -8577,7 +8595,7 @@ const LidoCalculator = class {
|
|
|
8577
8595
|
}
|
|
8578
8596
|
render() {
|
|
8579
8597
|
const numbers = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '←', '0', 'OK'];
|
|
8580
|
-
return (index.h(index.Host, { key: '
|
|
8598
|
+
return (index.h(index.Host, { key: 'e8249dda090212d327b68b47d42a123de6a890c9', onEntry: this.onEntry, id: "lidoCalculator", style: { width: this.width, height: this.height, backgroundColor: this.bgColor, left: this.x, top: this.y } }, index.h("lido-cell", { key: '54d093a3dd6a6e5850c881d224290bd6cf9c3690', visible: "true", height: "94px", width: "60px" }, index.h("lido-text", { key: '7145c80b2477493a8a87f6d098164293732861bf', visible: "true", id: "lido-calculator-penIcon", type: "click", height: "80px", x: "204%", width: "89px", onEntry: "this.position='relative';", class: "top-icon" }, index.h("img", { key: '7242feedd5172b555df683c747bbef778a9cdcd7', src: index$1.convertUrlToRelative(this.penIcon), alt: "pen", style: { width: '100%', height: '100%' } }))), index.h("div", { key: '6145a4f89da352c3576e6d51a1e260e335778fbb', class: "lido-calculator-displayParent" }, index.h("div", { key: '04e07b724d912d43b08c7a1e15c605d0fd30c7be', class: "lido-calculator-display" }, this.displayValue)), index.h("div", { key: '19839d02863ca1e27fddb4093f191171e237f143', class: "lido-calculator-buttons" }, numbers.map((num, i) => (index.h("lido-text", { id: `btn-${i}`, string: num, visible: "true", type: "click", class: {
|
|
8581
8599
|
'lido-calculator-btn-special': num === '←' || num === 'OK',
|
|
8582
8600
|
'lido-calculator-btn-default': num !== '←' && num !== 'OK'
|
|
8583
8601
|
}, onClick: () => this.handleClick(num) }))))));
|
|
@@ -8691,7 +8709,7 @@ const LidoCanvas = class {
|
|
|
8691
8709
|
this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
|
|
8692
8710
|
}
|
|
8693
8711
|
render() {
|
|
8694
|
-
return (index.h(index.Host, { key: '
|
|
8712
|
+
return (index.h(index.Host, { key: '6bb47f06656ce667d23236e9f3c3a8f383885a43', id: "lido-canvas", class: "lido-canvas", style: this.style }, index.h("button", { key: 'fd0d1217bda63071fbf6496c2538c2a944b14181', id: "lido-exit-button", onClick: () => this.clearCanvas() }), index.h("canvas", { key: 'ed0333972bb7ce0fc4e14c81bb466ea895ce65e0', id: "lido-canvas" })));
|
|
8695
8713
|
}
|
|
8696
8714
|
get el() { return index.getElement(this); }
|
|
8697
8715
|
};
|
|
@@ -8950,7 +8968,7 @@ const LidoCell = class {
|
|
|
8950
8968
|
this.el.className = `lido-${index$1.parseProp(this.layout, orientation)}`;
|
|
8951
8969
|
}
|
|
8952
8970
|
render() {
|
|
8953
|
-
return (index.h(index.Host, { key: '
|
|
8971
|
+
return (index.h(index.Host, { key: '73bdf9dd33fdd8322c35465de011697da112193a', id: this.id, class: "lido-cell", value: this.value, type: this.type, "tab-index": this.tabIndex, 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, "flex-direction": this.flexDirection, "disable-speak": this.disableSpeak }, index.h("slot", { key: '6e9d4507b36716f04853d39ef66015441782aa88' })));
|
|
8954
8972
|
}
|
|
8955
8973
|
get el() { return index.getElement(this); }
|
|
8956
8974
|
};
|
|
@@ -9028,7 +9046,7 @@ const LidoCol = class {
|
|
|
9028
9046
|
};
|
|
9029
9047
|
}
|
|
9030
9048
|
render() {
|
|
9031
|
-
return (index.h(index.Host, { key: '
|
|
9049
|
+
return (index.h(index.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 }, index.h("slot", { key: '590cd219bc5a02e6b96eafe108fb8b310daf941d' })));
|
|
9032
9050
|
}
|
|
9033
9051
|
get el() { return index.getElement(this); }
|
|
9034
9052
|
};
|
|
@@ -12354,7 +12372,7 @@ const LidoContainer = class {
|
|
|
12354
12372
|
margin: this.margin,
|
|
12355
12373
|
userSelect: 'none', // Prevent any field selection
|
|
12356
12374
|
};
|
|
12357
|
-
return (index.h(index.Host, { key: '
|
|
12375
|
+
return (index.h(index.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}` }, index.h("lido-text", { key: '86fd014a61ba9cba6d67e2d921b2d8a8a289dbc7', visible: "false", id: this.templateId, audio: "", string: this.instructName }), index.h("slot", { key: 'c3128ea2164892757b32cb076d717436947f9a4c' })));
|
|
12358
12376
|
}
|
|
12359
12377
|
get el() { return index.getElement(this); }
|
|
12360
12378
|
static get watchers() { return {
|
|
@@ -12365,7 +12383,7 @@ const LidoContainer = class {
|
|
|
12365
12383
|
};
|
|
12366
12384
|
LidoContainer.style = lidoContainerCss();
|
|
12367
12385
|
|
|
12368
|
-
const lidoFlashCardCss = () => `.card{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform 0.6s ease;cursor:pointer}.card.flipped{transform:rotateY(180deg)}.card-face{position:absolute;width:100%;height:100%;backface-visibility:hidden;display:flex;align-items:center;justify-content:center}.card-back{transform:rotateY(180deg)}`;
|
|
12386
|
+
const lidoFlashCardCss = () => `.card{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform 0.6s ease;cursor:pointer}.card.flipped{transform:rotateY(180deg)}.card-face{position:absolute;width:100%;height:100%;backface-visibility:hidden;display:flex;align-items:center;justify-content:center}.card-back{transform:rotateY(180deg)}lido-container[template-id="flashcardtemplate"] #arrow{position:absolute !important;left:auto !important;top:50% !important;right:13.3% !important;transform:translateY(-50%);z-index:4 !important;overflow:visible}@media (orientation: portrait){lido-container[template-id="flashcardtemplate"] #arrow{right:-4.3% !important}}`;
|
|
12369
12387
|
|
|
12370
12388
|
const LidoFlash = class {
|
|
12371
12389
|
constructor(hostRef) {
|
|
@@ -12445,6 +12463,38 @@ const LidoFlash = class {
|
|
|
12445
12463
|
* `reflect` keeps the `<lido-flash-card flipped>` attribute in sync.
|
|
12446
12464
|
*/
|
|
12447
12465
|
this.flipped = false;
|
|
12466
|
+
this.autoFlipAfter = 4500;
|
|
12467
|
+
this.instructionDone = false;
|
|
12468
|
+
this.onAudioEnded = (event) => {
|
|
12469
|
+
var _a;
|
|
12470
|
+
const target = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.target;
|
|
12471
|
+
const instruction = this.instructionText();
|
|
12472
|
+
if (!target || (target !== instruction && target.id !== 'lido-avatar' && !this.el.contains(target)))
|
|
12473
|
+
return;
|
|
12474
|
+
if (target === this.instructionText()) {
|
|
12475
|
+
this.instructionDone = true;
|
|
12476
|
+
window.setTimeout(() => {
|
|
12477
|
+
this.speakFront();
|
|
12478
|
+
}, 1200);
|
|
12479
|
+
}
|
|
12480
|
+
else if (target === this.frontText()) {
|
|
12481
|
+
if (this.flipped)
|
|
12482
|
+
return;
|
|
12483
|
+
if (this.autoFlipTimer)
|
|
12484
|
+
window.clearTimeout(this.autoFlipTimer);
|
|
12485
|
+
this.autoFlipTimer = window.setTimeout(() => {
|
|
12486
|
+
if (!this.flipped)
|
|
12487
|
+
this.handleFlip();
|
|
12488
|
+
}, this.autoFlipAfter);
|
|
12489
|
+
}
|
|
12490
|
+
else if (target === this.backText()) {
|
|
12491
|
+
if (this.flipped)
|
|
12492
|
+
this.showArrow();
|
|
12493
|
+
}
|
|
12494
|
+
else if (target.id === 'lido-avatar') {
|
|
12495
|
+
index$1.executeActions("this.avatarAnimate='Idle'", target);
|
|
12496
|
+
}
|
|
12497
|
+
};
|
|
12448
12498
|
/**
|
|
12449
12499
|
* CSS margin value applied to each child element inside the container.
|
|
12450
12500
|
* Accepts standard CSS margin formats (e.g., '10px', '5px 10px', etc.).
|
|
@@ -12477,7 +12527,76 @@ const LidoFlash = class {
|
|
|
12477
12527
|
};
|
|
12478
12528
|
/** Toggle the card when it is clicked. */
|
|
12479
12529
|
this.handleFlip = () => {
|
|
12530
|
+
var _a;
|
|
12531
|
+
if (this.autoFlipTimer)
|
|
12532
|
+
window.clearTimeout(this.autoFlipTimer);
|
|
12533
|
+
index$1.AudioPlayer.getI().stop();
|
|
12534
|
+
const goingBack = !this.flipped;
|
|
12480
12535
|
this.flipped = !this.flipped;
|
|
12536
|
+
this.setArrowVisible(false);
|
|
12537
|
+
if (goingBack) {
|
|
12538
|
+
const text = this.backText();
|
|
12539
|
+
if (text && ((_a = text.textContent) === null || _a === void 0 ? void 0 : _a.trim()))
|
|
12540
|
+
index$1.executeActions("this.speak='true'", text);
|
|
12541
|
+
else
|
|
12542
|
+
this.showArrow();
|
|
12543
|
+
}
|
|
12544
|
+
else {
|
|
12545
|
+
this.speakFront();
|
|
12546
|
+
}
|
|
12547
|
+
};
|
|
12548
|
+
this.instructionText = () => { var _a; return document.getElementById(((_a = this.el.closest('lido-container')) === null || _a === void 0 ? void 0 : _a.getAttribute('template-id')) || ''); };
|
|
12549
|
+
this.frontText = () => this.el.querySelector('.card-front lido-text');
|
|
12550
|
+
this.backText = () => this.el.querySelector('.card-back lido-text');
|
|
12551
|
+
this.speakFront = () => {
|
|
12552
|
+
var _a;
|
|
12553
|
+
const text = this.frontText();
|
|
12554
|
+
if (this.instructionDone && !this.flipped && text && ((_a = text.textContent) === null || _a === void 0 ? void 0 : _a.trim())) {
|
|
12555
|
+
index$1.executeActions("this.speak='true'", text);
|
|
12556
|
+
}
|
|
12557
|
+
};
|
|
12558
|
+
this.showArrow = () => {
|
|
12559
|
+
if (!this.flipped)
|
|
12560
|
+
return;
|
|
12561
|
+
const arrow = document.getElementById('arrow');
|
|
12562
|
+
if (!arrow)
|
|
12563
|
+
return;
|
|
12564
|
+
// Existing ZIPs may not have the newer template onTouch action. Reuse
|
|
12565
|
+
// the same direct nextBtn action as the shared home arrow for them.
|
|
12566
|
+
if (!arrow.getAttribute('onTouch'))
|
|
12567
|
+
arrow.setAttribute('onTouch', "this.nextBtn='true';");
|
|
12568
|
+
const mascot = document.getElementById('lido-avatar');
|
|
12569
|
+
const scaffoldAudio = arrow.getAttribute('audio');
|
|
12570
|
+
if (mascot && scaffoldAudio) {
|
|
12571
|
+
mascot.setAttribute('audio', scaffoldAudio);
|
|
12572
|
+
arrow.removeAttribute('audio');
|
|
12573
|
+
}
|
|
12574
|
+
this.setArrowVisible(true);
|
|
12575
|
+
if (mascot) {
|
|
12576
|
+
index$1.executeActions("this.avatarAnimate='Idle speak'", mascot);
|
|
12577
|
+
index$1.AudioPlayer.getI().play(mascot, true);
|
|
12578
|
+
}
|
|
12579
|
+
};
|
|
12580
|
+
this.setArrowVisible = (visible) => {
|
|
12581
|
+
const arrow = document.getElementById('arrow');
|
|
12582
|
+
if (!arrow)
|
|
12583
|
+
return;
|
|
12584
|
+
arrow.visible = visible;
|
|
12585
|
+
arrow.setAttribute('visible', String(visible));
|
|
12586
|
+
// lido-cell's visible prop is a non-reflected string prop; keep the
|
|
12587
|
+
// rendered host in sync as well so an attribute update cannot leave its
|
|
12588
|
+
// previous inline display:none in place.
|
|
12589
|
+
arrow.style.display = visible ? 'block' : 'none';
|
|
12590
|
+
arrow.style.visibility = visible ? 'visible' : 'hidden';
|
|
12591
|
+
arrow.style.opacity = visible ? '1' : '0';
|
|
12592
|
+
const arrowImage = arrow.querySelector('lido-image');
|
|
12593
|
+
if (arrowImage) {
|
|
12594
|
+
arrowImage.style.display = visible ? 'flex' : 'none';
|
|
12595
|
+
arrowImage.style.visibility = visible ? 'visible' : 'hidden';
|
|
12596
|
+
arrowImage.style.opacity = visible ? '1' : '0';
|
|
12597
|
+
}
|
|
12598
|
+
if (typeof arrow.updateStyles === 'function')
|
|
12599
|
+
arrow.updateStyles();
|
|
12481
12600
|
};
|
|
12482
12601
|
}
|
|
12483
12602
|
/* ---------- Watches ---------- */
|
|
@@ -12493,25 +12612,20 @@ const LidoFlash = class {
|
|
|
12493
12612
|
}
|
|
12494
12613
|
componentDidLoad() {
|
|
12495
12614
|
index$1.setVisibilityWithDelay(this.el, this.delayVisible);
|
|
12496
|
-
const card = this.el.querySelector('.card');
|
|
12497
|
-
if (card) {
|
|
12498
|
-
setTimeout(() => {
|
|
12499
|
-
card.classList.add('flipped');
|
|
12500
|
-
setTimeout(() => {
|
|
12501
|
-
card.classList.remove('flipped');
|
|
12502
|
-
}, 500);
|
|
12503
|
-
}, 500);
|
|
12504
|
-
}
|
|
12505
12615
|
index$1.initEventsForElement(this.el, this.type);
|
|
12616
|
+
window.addEventListener('lidoAudioEnded', this.onAudioEnded);
|
|
12506
12617
|
// handlingChildElements(this.el, this.minLength, this.maxLength, this.childElementsLength, 'inline-block');
|
|
12507
12618
|
}
|
|
12508
12619
|
disconnectedCallback() {
|
|
12620
|
+
window.removeEventListener('lidoAudioEnded', this.onAudioEnded);
|
|
12621
|
+
if (this.autoFlipTimer)
|
|
12622
|
+
window.clearTimeout(this.autoFlipTimer);
|
|
12509
12623
|
window.removeEventListener('resize', this.updateStyles);
|
|
12510
12624
|
window.removeEventListener('load', this.updateStyles);
|
|
12511
12625
|
}
|
|
12512
12626
|
/* ---------- Render ---------- */
|
|
12513
12627
|
render() {
|
|
12514
|
-
return (index.h(index.Host, { key: '
|
|
12628
|
+
return (index.h(index.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 }, index.h("div", { key: 'db3d4fce4f9f54437485ab1274b1f9bd3b3486bc', class: `card ${this.flipped ? 'flipped' : ''}` }, index.h("div", { key: 'd37770b0b08eac533265d7f8049c598df047aa37', class: "card-face card-front" }, this.front != null ? this.front : index.h("slot", { name: "front" })), index.h("div", { key: '2f8431017cfed9f9adb679442be833a65704d41e', class: "card-face card-back" }, this.back != null ? this.back : index.h("slot", { name: "back" })))));
|
|
12515
12629
|
}
|
|
12516
12630
|
get el() { return index.getElement(this); }
|
|
12517
12631
|
static get watchers() { return {
|
|
@@ -12608,7 +12722,7 @@ const LidoFloat = class {
|
|
|
12608
12722
|
};
|
|
12609
12723
|
}
|
|
12610
12724
|
render() {
|
|
12611
|
-
return (index.h(index.Host, { key: '
|
|
12725
|
+
return (index.h(index.Host, { key: 'c461f1142dd6addd9ceb41ade183b044b875681f', class: "lido-float", "float-direction": this.floatDirection, id: this.id, "tab-index": this.tabIndex, style: this.style, onEntry: this.onEntry }, index.h("slot", { key: '240439bfda6a9e4e2d67e6ae2b5c878d99e632b3' })));
|
|
12612
12726
|
}
|
|
12613
12727
|
get el() { return index.getElement(this); }
|
|
12614
12728
|
};
|
|
@@ -12646,9 +12760,9 @@ function requireJszip_min () {
|
|
|
12646
12760
|
var jszip_minExports = requireJszip_min();
|
|
12647
12761
|
var JSZip = /*@__PURE__*/index$1.getDefaultExportFromCjs(jszip_minExports);
|
|
12648
12762
|
|
|
12649
|
-
const indexCss = () => `@font-face{font-family:'Baloo Bhai 2';font-style:normal;font-weight:400 800;font-display:swap;src:url('../assets/offline-assets/fonts/Baloo-Bhai-2/Baloo-Bhai-2-Variable.woff2') format('woff2')}body{overflow:hidden;background-position:center;background-size:cover;background-repeat:no-repeat;height:100vh}*{user-select:none}.lido-disable-check-button{pointer-events:none;background-color:#9393935c !important;color:white}.lido-element-selected{border:2px solid;background-color:#ffdf7d !important}.diagonal-target,.diagonal-drop *{transform:scale(0.8) !important;opacity:1 !important}.cloned-element{display:flex !important;position:absolute !important;filter:grayscale(100%);pointer-events:none}.removeShadow{box-shadow:0px 0px 0px 0px #ff8900 !important}.highlight-element{border:2px solid white;box-shadow:rgb(243, 77, 8) 0px 0px 40px !important}.drop-element.empty{border:4px dashed #f34d08 !important}.drop-element.filled{border:'none' !important}.drag-element{box-shadow:0px 15px 11px rgba(43, 0, 0, 0.3) !important}.drag-element.dropped{box-shadow:none !important}.click-element{background-color:var(--btn-bg-color, rgba(255, 172, 76, 1)) !important;box-shadow:var(--btn-shadow-px) var(--btn-shadow-color, rgba(225, 121, 76, 1)) !important;cursor:pointer;transition:box-shadow 0.1s ease-out, transform 0.2s ease-out;}.click-element:active{box-shadow:0px 0px 0px var(--btn-shadow-color, rgba(225, 121, 76, 1)) !important;transform:translateY(var(--btn-active));}.click-element:focus{outline:2px solid dodgerblue;outline-offset:3px}.after-drop-popup-container{width:200%;height:200%;background-color:rgba(0, 0, 0, 0.8);position:absolute;display:flex;flex-direction:row-reverse;align-items:center;justify-content:center !important;gap:80px}.after-drop-popup-drag-element{scale:1.5;border-radius:8px;transform:none !important;position:unset !important}.after-drop-popup-drop-element{scale:1.5;border:unset;border-radius:8px;transform:none !important;position:unset !important}@keyframes zoomFadeIn{0%{transform:scale(0.6);opacity:0}100%{transform:scale(1);opacity:1}}.zoom-fade-in{animation:zoomFadeIn 0.8s ease-out forwards}@keyframes zoomFadeOut{0%{transform:scale(1);opacity:1}100%{transform:scale(0.6);opacity:0}}.zoom-fade-out{animation:zoomFadeOut 0.8s ease-in forwards}.slide-numbers{width:70px;height:70px;border:1px solid #f57139;background-color:white;font-weight:500;color:#f57139;font-size:44px;border-radius:40px;display:flex;align-items:center;justify-content:center;font-family:'Baloo Bhai 2', serif}.slide-numbers-bottom{position:absolute;display:flex;justify-content:space-around;align-items:center;bottom:-25px;width:100%;height:50px}.slide-numbers-left{position:absolute;display:flex;flex-direction:column;justify-content:space-around;height:100%;width:50px;left:-25px;bottom:0px}.lido-speak-icon{width:56px;height:56px;position:absolute;top:-25px;right:-25px;z-index:10;background-color:white;border:4px solid #F34D08;border-radius:16px;box-shadow:0px 4px 0px 0px #F34D08;background-size:contain;background-repeat:no-repeat;cursor:pointer}.lido-speak-icon:active{transform:translateY(8px);box-shadow:0px 0px 0px 0px !important}.lido-strong-shake{animation:strongShake 0.3s ease}.lido-scaled-shake{animation:scaledShake 0.6s ease-in-out}.lido-horizontal-shake{animation:horizontalShake 0.6s ease-in-out;border-radius:20px}.lido-vertical-shake{animation:verticalShake 0.6s ease-in-out;border-radius:20px}.lido-diagonal-shake{animation:diagonalShake 0.5s ease-in-out;border-radius:20px;will-change:transform}.lido-glow{animation:glowPulse 1s infinite alternate;transition:opacity 0.5s ease-in-out}.lido-box-highlight{animation:topToPlace 0.3s linear}.lido-display-hiddenvalue{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:80px;font-weight:1000;color:brown;-webkit-text-stroke:2px white;font-family:'Baloo Bhai 2', sans-serif;pointer-events:none}.lido-image-colorize{position:relative;display:inline-block}.lido-image-colorize::after{content:'';position:absolute;inset:0;background:var(--tint-color);mix-blend-mode:multiply;opacity:0.8;pointer-events:none;mask-image:var(--mask-url);mask-size:cover;mask-repeat:no-repeat;mask-position:center}.lido-tts-highlight-overlay{position:fixed;left:0;top:0;pointer-events:none;z-index:9999;background:linear-gradient(
|
|
12763
|
+
const indexCss = () => `@font-face{font-family:'Baloo Bhai 2';font-style:normal;font-weight:400 800;font-display:swap;src:url('../assets/offline-assets/fonts/Baloo-Bhai-2/Baloo-Bhai-2-Variable.woff2') format('woff2')}body{overflow:hidden;background-position:center;background-size:cover;background-repeat:no-repeat;height:100vh}*{user-select:none}.lido-disable-check-button{pointer-events:none;background-color:#9393935c !important;color:white}.lido-element-selected{border:2px solid;background-color:#ffdf7d !important}.diagonal-target,.diagonal-drop *{transform:scale(0.8) !important;opacity:1 !important}.cloned-element{display:flex !important;position:absolute !important;filter:grayscale(100%);pointer-events:none}.removeShadow{box-shadow:0px 0px 0px 0px #ff8900 !important}.highlight-element{border:2px solid white;box-shadow:rgb(243, 77, 8) 0px 0px 40px !important}.drop-element.empty{border:4px dashed #f34d08 !important}.drop-element.filled{border:'none' !important}.drag-element{box-shadow:0px 15px 11px rgba(43, 0, 0, 0.3) !important}.drag-element.dropped{box-shadow:none !important}.click-element{background-color:var(--btn-bg-color, rgba(255, 172, 76, 1)) !important;box-shadow:var(--btn-shadow-px) var(--btn-shadow-color, rgba(225, 121, 76, 1)) !important;cursor:pointer;transition:box-shadow 0.1s ease-out, transform 0.2s ease-out;}.click-element:active{box-shadow:0px 0px 0px var(--btn-shadow-color, rgba(225, 121, 76, 1)) !important;transform:translateY(var(--btn-active));}.click-element:focus{outline:2px solid dodgerblue;outline-offset:3px}.after-drop-popup-container{width:200%;height:200%;background-color:rgba(0, 0, 0, 0.8);position:absolute;display:flex;flex-direction:row-reverse;align-items:center;justify-content:center !important;gap:80px}.after-drop-popup-drag-element{scale:1.5;border-radius:8px;transform:none !important;position:unset !important}.after-drop-popup-drop-element{scale:1.5;border:unset;border-radius:8px;transform:none !important;position:unset !important}@keyframes zoomFadeIn{0%{transform:scale(0.6);opacity:0}100%{transform:scale(1);opacity:1}}.zoom-fade-in{animation:zoomFadeIn 0.8s ease-out forwards}@keyframes zoomFadeOut{0%{transform:scale(1);opacity:1}100%{transform:scale(0.6);opacity:0}}.zoom-fade-out{animation:zoomFadeOut 0.8s ease-in forwards}.slide-numbers{width:70px;height:70px;border:1px solid #f57139;background-color:white;font-weight:500;color:#f57139;font-size:44px;border-radius:40px;display:flex;align-items:center;justify-content:center;font-family:'Baloo Bhai 2', serif}.slide-numbers-bottom{position:absolute;display:flex;justify-content:space-around;align-items:center;bottom:-25px;width:100%;height:50px}.slide-numbers-left{position:absolute;display:flex;flex-direction:column;justify-content:space-around;height:100%;width:50px;left:-25px;bottom:0px}.lido-speak-icon{width:56px;height:56px;position:absolute;top:-25px;right:-25px;z-index:10;background-color:white;border:4px solid #F34D08;border-radius:16px;box-shadow:0px 4px 0px 0px #F34D08;background-size:contain;background-repeat:no-repeat;cursor:pointer}.lido-speak-icon:active{transform:translateY(8px);box-shadow:0px 0px 0px 0px !important}.lido-strong-shake{animation:strongShake 0.3s ease}.lido-scaled-shake{animation:scaledShake 0.6s ease-in-out}.lido-horizontal-shake{animation:horizontalShake 0.6s ease-in-out;border-radius:20px}.lido-vertical-shake{animation:verticalShake 0.6s ease-in-out;border-radius:20px}.lido-diagonal-shake{animation:diagonalShake 0.5s ease-in-out;border-radius:20px;will-change:transform}.lido-glow{animation:glowPulse 1s infinite alternate;transition:opacity 0.5s ease-in-out}.lido-box-highlight{animation:topToPlace 0.3s linear}.lido-display-hiddenvalue{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:80px;font-weight:1000;color:brown;-webkit-text-stroke:2px white;font-family:'Baloo Bhai 2', sans-serif;pointer-events:none}.lido-image-colorize{position:relative;display:inline-block}.lido-image-colorize::after{content:'';position:absolute;inset:0;background:var(--tint-color);mix-blend-mode:multiply;opacity:0.8;pointer-events:none;mask-image:var(--mask-url);mask-size:cover;mask-repeat:no-repeat;mask-position:center}.lido-tts-highlight-overlay{position:fixed;left:0;top:0;pointer-events:none;z-index:9999;background:linear-gradient( 180deg, rgba(255, 235, 59, 0.95), rgba(255, 214, 0, 0.95) );border-radius:6px;box-shadow:0 2px 6px rgba(0, 0, 0, 0.18), inset 0 -1px 0 rgba(255, 255, 255, 0.25);transition:width 25ms ease-out, height 25ms ease-out, opacity 80ms ease-out;opacity:0.95;will-change:transform, width, height;contain:layout paint style}.category-dropped-onCorrect{box-shadow:rgba(129, 193, 39, 1) 0px 8px 8px 0px !important}.category-dropped-onInCorrect{box-shadow:rgba(255, 4, 16, 1) 0px 8px 8px 0px !important}`;
|
|
12650
12764
|
|
|
12651
|
-
const animationCss = () => `@keyframes rightToPlace{from{transform:translateX(2000px)}to{transform:translateX(0)}}@keyframes topToPlace{from{transform:translateY(-1000px)}to{transform:translateY(0)}}@keyframes bottomToPlace{from{transform:translateY(1000px)}to{transform:translateY(0)}}@keyframes placeToLeft{from{}to{transform:translateX(-2000px)}}@keyframes placeToRight{from{}to{transform:translateX(2000px)}}@keyframes leftToPlace{from{transform:translateX(-2000px)}to{transform:translateX(0)}}@keyframes shake{0%{transform:translateX(0)}10%{transform:translateX(-5px)}20%{transform:translateX(5px)}30%{transform:translateX(-5px)}40%{transform:translateX(5px)}50%{transform:translateX(-5px)}60%{transform:translateX(5px)}70%{transform:translateX(-5px)}80%{transform:translateX(5px)}90%{transform:translateX(-5px)}100%{transform:translateX(0)}}@keyframes fallAndBounce{0%{transform:translateY(-1000px)}25%{transform:translateY(0px)}50%{transform:translateY(-200px)}75%{transform:translateY(0)}90%{transform:translateY(-100px)}100%{transform:translateY(0)}}@keyframes placeToDown{0%{transform:translateY(0)}100%{transform:translateY(1000px)}}@keyframes strongShake{0%{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-6px)}80%{transform:translateX(6px)}100%{transform:translateX(0)}}@keyframes scaledShake{0%{transform:scale(1) translateX(0);box-shadow:0 0 0 transparent}20%{transform:scale(1.10) translateX(-12px);box-shadow:0 0 10px red}40%{transform:scale(1.10) translateX(12px);box-shadow:0 0 12px red}60%{transform:scale(1.10) translateX(-8px);box-shadow:0 0 10px red}80%{transform:scale(1.10) translateX(8px);box-shadow:0 0 12px red}100%{transform:scale(1) translateX(0);box-shadow:none}}@keyframes horizontalShake{0%{transform:scale(1) translateX(0);background-color:transparent}20%{transform:translateX(-20px);background-color:rgba(255, 0, 0, 0.2)}40%{transform:translateX(20px);background-color:rgba(255, 0, 0, 0.4)}60%{transform:translateX(-10px);background-color:rgba(255, 0, 0, 0.3)}80%{transform:translateX(10px);background-color:rgba(255, 0, 0, 0.2)}100%{transform:translateX(0);background-color:transparent}}@keyframes verticalShake{0%{transform:translateY(0);background-color:transparent}20%{transform:translateY(-20px);background-color:rgba(255, 0, 0, 0.2)}40%{transform:translateY(0);background-color:rgba(255, 0, 0, 0.4)}60%{transform:translateY(20px);background-color:rgba(255, 0, 0, 0.2)}80%{transform:translateY(0);background-color:rgba(255, 0, 0, 0.1)}100%{transform:translateY(0);background-color:transparent}}@keyframes diagonalShake{0%{transform:translate(0, 0);background-color:transparent}25%{transform:translate(20px, -20px);background-color:rgba(255, 0, 0, 0.2)}50%{transform:translate(-20px, 20px);background-color:rgba(255, 0, 0, 0.3)}75%{transform:translate(10px, -10px);background-color:rgba(255, 0, 0, 0.2)}100%{transform:translate(0, 0);background-color:transparent}}@keyframes glowPulse{0%{filter:drop-shadow(0 0 5px yellow)
|
|
12765
|
+
const animationCss = () => `@keyframes rightToPlace{from{transform:translateX(2000px)}to{transform:translateX(0)}}@keyframes topToPlace{from{transform:translateY(-1000px)}to{transform:translateY(0)}}@keyframes bottomToPlace{from{transform:translateY(1000px)}to{transform:translateY(0)}}@keyframes placeToLeft{from{}to{transform:translateX(-2000px)}}@keyframes placeToRight{from{}to{transform:translateX(2000px)}}@keyframes leftToPlace{from{transform:translateX(-2000px)}to{transform:translateX(0)}}@keyframes shake{0%{transform:translateX(0)}10%{transform:translateX(-5px)}20%{transform:translateX(5px)}30%{transform:translateX(-5px)}40%{transform:translateX(5px)}50%{transform:translateX(-5px)}60%{transform:translateX(5px)}70%{transform:translateX(-5px)}80%{transform:translateX(5px)}90%{transform:translateX(-5px)}100%{transform:translateX(0)}}@keyframes fallAndBounce{0%{transform:translateY(-1000px)}25%{transform:translateY(0px)}50%{transform:translateY(-200px)}75%{transform:translateY(0)}90%{transform:translateY(-100px)}100%{transform:translateY(0)}}@keyframes placeToDown{0%{transform:translateY(0)}100%{transform:translateY(1000px)}}@keyframes strongShake{0%{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-6px)}80%{transform:translateX(6px)}100%{transform:translateX(0)}}@keyframes scaledShake{0%{transform:scale(1) translateX(0);box-shadow:0 0 0 transparent}20%{transform:scale(1.10) translateX(-12px);box-shadow:0 0 10px red}40%{transform:scale(1.10) translateX(12px);box-shadow:0 0 12px red}60%{transform:scale(1.10) translateX(-8px);box-shadow:0 0 10px red}80%{transform:scale(1.10) translateX(8px);box-shadow:0 0 12px red}100%{transform:scale(1) translateX(0);box-shadow:none}}@keyframes horizontalShake{0%{transform:scale(1) translateX(0);background-color:transparent}20%{transform:translateX(-20px);background-color:rgba(255, 0, 0, 0.2)}40%{transform:translateX(20px);background-color:rgba(255, 0, 0, 0.4)}60%{transform:translateX(-10px);background-color:rgba(255, 0, 0, 0.3)}80%{transform:translateX(10px);background-color:rgba(255, 0, 0, 0.2)}100%{transform:translateX(0);background-color:transparent}}@keyframes verticalShake{0%{transform:translateY(0);background-color:transparent}20%{transform:translateY(-20px);background-color:rgba(255, 0, 0, 0.2)}40%{transform:translateY(0);background-color:rgba(255, 0, 0, 0.4)}60%{transform:translateY(20px);background-color:rgba(255, 0, 0, 0.2)}80%{transform:translateY(0);background-color:rgba(255, 0, 0, 0.1)}100%{transform:translateY(0);background-color:transparent}}@keyframes diagonalShake{0%{transform:translate(0, 0);background-color:transparent}25%{transform:translate(20px, -20px);background-color:rgba(255, 0, 0, 0.2)}50%{transform:translate(-20px, 20px);background-color:rgba(255, 0, 0, 0.3)}75%{transform:translate(10px, -10px);background-color:rgba(255, 0, 0, 0.2)}100%{transform:translate(0, 0);background-color:transparent}}@keyframes glowPulse{0%{filter:drop-shadow(0 0 5px yellow) drop-shadow(0 0 10px yellow) drop-shadow(0 0 20px yellow) drop-shadow(0 0 30px orange)}50%{filter:drop-shadow(0 0 10px yellow) drop-shadow(0 0 20px yellow) drop-shadow(0 0 40px yellow) drop-shadow(0 0 50px orange)}100%{filter:drop-shadow(0 0 5px yellow) drop-shadow(0 0 10px yellow) drop-shadow(0 0 20px yellow) drop-shadow(0 0 30px orange)}}@keyframes trace-animation{0%{}100%{width:var(--trace-width, 100px);height:var(--trace-height, 100px)}}`;
|
|
12652
12766
|
|
|
12653
12767
|
const lidoHomeCss = () => `.lido-snackbar{visibility:visible;min-width:250px;background-color:#333;color:#fff;text-align:center;border-radius:2px;padding:16px;position:fixed;z-index:1;bottom:30px;left:50%;transform:translateX(-50%);font-size:17px}.lido-dot-container{display:flex;justify-content:space-between;align-items:center;visibility:hidden;position:absolute;left:50%;padding:0 5px;z-index:1;width:100vw;max-width:100vw;box-sizing:border-box;height:0px}.lido-dot{height:18px;width:18px;margin:0 4px;background-color:#bbb;border-radius:50%;display:inline-block;transition:background-color 0.3s;cursor:pointer;z-index:1}.lido-btn-dot-container{flex-shrink:1;flex-grow:1;display:flex;justify-content:center;align-items:center;text-align:center;z-index:1;min-width:0;height:0px}.lido-dot.completed{background-color:grey}.lido-dot.current{background-color:green}.lido-dot:not(.completed):not(.current){background-color:#bbb}#lido-arrow-left,#lido-arrow-right{width:88px;height:88px;display:flex;align-items:center;justify-content:center;border-radius:12px;z-index:1000;box-shadow:0px 8px 0px 0px #8b310f;background-color:#f34d08;cursor:pointer;visibility:hidden;flex-shrink:0}#lido-arrow-left:active,#lido-arrow-right:active{transform:translateY(8px);box-shadow:0px 0px 0px 0px}.navbar{display:flex;justify-content:center}.lido-exit-button,#main-audio{width:80px;height:80px;z-index:1000;cursor:pointer;background-color:white;display:flex;align-items:center;justify-content:center;border:4px solid #f34d08;border-radius:16px;box-shadow:0px 8px #f34d08;flex-shrink:0;}#main-audio:active,.popup-button:active,.lido-exit-button:active{margin-bottom:-8px;box-shadow:0px 0px 0px 0px !important}.lido-alert-popup{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0, 0, 0, 0.5);display:flex;align-items:center;justify-content:center;z-index:1000}@media (max-width: 768px){#lido-arrow-left,#lido-arrow-right{width:70px;height:70px;margin:0 8px}.lido-exit-button,#main-audio{width:65px;height:65px;margin:0 8px}.lido-dot{height:16px;width:16px;margin:0 2.5px}}@media (max-width: 480px){#lido-arrow-left,#lido-arrow-right{width:74px;height:74px;margin:0px 5px}.lido-exit-button,#main-audio{width:65px;height:65px;margin:0px 5px}.lido-dot{height:15px;width:15px;margin:0 1.5px}.lido-dot-container{padding:0 3px}}@media (max-width: 375px){#lido-arrow-left,#lido-arrow-right{width:70px;height:70px;margin:0px 3px}.lido-exit-button,#main-audio{width:70px;height:70px;margin:0px 3px}.lido-dot{height:14px;width:14px;margin:0 1px}.lido-dot-container{padding:0 2px}}@media (max-width: 320px){#lido-arrow-left,#lido-arrow-right,.lido-exit-button,#main-audio{width:70px;height:70px;margin:0px 2px}.lido-dot{height:12px;width:12px;margin:0 0.5px}.lido-dot-container{padding:0 2px}}@media (max-width: 900px) and (orientation: landscape){#lido-arrow-left,#lido-arrow-right{width:70px;height:70px;margin:0px 5px}.lido-exit-button,#main-audio{width:70px;height:70px;margin:0px 5px}.lido-dot{height:14px;width:14px;margin:0 1px}.lido-dot-container{padding:0 5px}}.popup-exit-text{white-space:nowrap;font-size:22px;font-weight:600;margin-top:-8%}.lido-alert-parent{z-index:10000 !important;position:absolute;top:0;left:0}.popup-button{width:80px;height:80px;z-index:1000;cursor:pointer;display:flex;align-items:center;justify-content:center;border:4px solid #F34D08;border-radius:16px;box-shadow:0 8px 0 #F34D08}.nav-for-lanai{position:absolute;top:0%;left:0%;max-width:none;width:100%;height:auto;visibility:visible}`;
|
|
12654
12768
|
|
|
@@ -12862,6 +12976,10 @@ const LidoHome = class {
|
|
|
12862
12976
|
* between containers and parses the XML data into containers.
|
|
12863
12977
|
*/
|
|
12864
12978
|
async componentWillLoad() {
|
|
12979
|
+
// Publish the current player's common-audio path before parsing XML so
|
|
12980
|
+
// child lido-text components cannot resolve auto-audio against the
|
|
12981
|
+
// previous player's global path.
|
|
12982
|
+
this.publishCommonAudioPath(this.commonAudioPath);
|
|
12865
12983
|
this.navBarIcons = {
|
|
12866
12984
|
exit: this.exitButtonUrl || index$1.exitUrl,
|
|
12867
12985
|
prev: this.prevButtonUrl || index$1.prevUrl,
|
|
@@ -12954,7 +13072,7 @@ const LidoHome = class {
|
|
|
12954
13072
|
}
|
|
12955
13073
|
// Pure-JS fallback (no wasm asset required)
|
|
12956
13074
|
try {
|
|
12957
|
-
const brotliDecodeModule = await Promise.resolve().then(function () { return require('./decode-
|
|
13075
|
+
const brotliDecodeModule = await Promise.resolve().then(function () { return require('./decode-Cr5DANqc.js'); }).then(function (n) { return n.decode; });
|
|
12958
13076
|
const brotliDecompressBuffer = brotliDecodeModule.BrotliDecompressBuffer || ((_a = brotliDecodeModule.default) === null || _a === void 0 ? void 0 : _a.BrotliDecompressBuffer);
|
|
12959
13077
|
if (typeof brotliDecompressBuffer !== 'function') {
|
|
12960
13078
|
throw new Error('BrotliDecompressBuffer function not found in brotli/dec/decode');
|
|
@@ -13027,7 +13145,6 @@ const LidoHome = class {
|
|
|
13027
13145
|
return `${this.baseUrl.replace(/\/+$/, '')}/${path}`;
|
|
13028
13146
|
}
|
|
13029
13147
|
componentDidLoad() {
|
|
13030
|
-
this.publishCommonAudioPath(this.commonAudioPath);
|
|
13031
13148
|
setTimeout(() => {
|
|
13032
13149
|
this.showDotsandbtn = true;
|
|
13033
13150
|
}, 10);
|
|
@@ -16689,10 +16806,10 @@ const LidoKeyboard = class {
|
|
|
16689
16806
|
const keysArray = this.keys.split(',').map(k => k.trim());
|
|
16690
16807
|
const container = document.getElementById(index$1.LidoContainer);
|
|
16691
16808
|
const showCheck = container.getAttribute('show-check') === 'true';
|
|
16692
|
-
return (index.h(index.Host, { key: '
|
|
16809
|
+
return (index.h(index.Host, { key: '4de3b75fa2905744ad610d147d9b4fe9912dd732', class: "lido-keyboard", style: { width: this.style.width, height: this.style.height, position: 'relative', margin: this.style.margin, zIndex: this.z } }, this.keyboardInput && (index.h("div", { key: '7b5d293c52747700cde9c1069cfbbdae065e64f9', class: "input-area" }, index.h("input", { key: '03a91cd87e6bb4f09bf698087258426dd9232f67', type: "text", value: this.inputString, class: "input-area", readonly: true }), index.h("lido-text", { key: 'd30e033a055df52b30b2f2775c2b3410ee37df63', visible: showCheck ? 'true' : 'false', string: "<<", "bg-color": "black", "font-color": "white", "border-radius": "20px", "font-size": "30px", width: "100px", height: "70px", type: "click", onClick: () => {
|
|
16693
16810
|
this.inputString = this.inputString.slice(0, -1);
|
|
16694
16811
|
this.inputValidation(event);
|
|
16695
|
-
} }), index.h("lido-text", { key: '
|
|
16812
|
+
} }), index.h("lido-text", { key: '70d78aed7dedbe7d03a05c13c4c320029280bb03', visible: showCheck ? 'true' : 'false', id: "lido-checkButton", string: "Enter", "bg-color": "green", "font-color": "white", "border-radius": "20px", "font-size": "30px", width: "150px", height: "70px", type: "click" }))), this.letterLength && (index.h("lido-text", { key: '19306cd12bd98dc8dc7b54b20bad3f2f0318116f', visible: "true", string: `${this.numberOfClick}/${this.letterLength}`, "font-size": "60px", "font-color": "white", onEntry: "this.position='absolute'; this.right='0'; this.fontWeight='800';", x: "unset" })), index.h("div", { key: '826900d6ba26175eb45d2e7e4c02fccce2004db3', class: "keyboard-wrapper", style: {
|
|
16696
16813
|
display: 'flex',
|
|
16697
16814
|
flexWrap: 'wrap',
|
|
16698
16815
|
justifyContent: 'center',
|
|
@@ -16927,7 +17044,7 @@ const LidoMathMatrix = class {
|
|
|
16927
17044
|
render() {
|
|
16928
17045
|
let slotNumber = 1;
|
|
16929
17046
|
const slotData = this.getSlotData();
|
|
16930
|
-
return (index.h(index.Host, { key: '
|
|
17047
|
+
return (index.h(index.Host, { key: '8a17727416da00fda95c401c3a005cdea1e732d0', class: "math-matrix", style: {
|
|
16931
17048
|
height: this.style.height,
|
|
16932
17049
|
width: this.style.width,
|
|
16933
17050
|
z: this.style.z,
|
|
@@ -17074,7 +17191,7 @@ const LidoPos = class {
|
|
|
17074
17191
|
};
|
|
17075
17192
|
}
|
|
17076
17193
|
render() {
|
|
17077
|
-
return (index.h(index.Host, { key: '
|
|
17194
|
+
return (index.h(index.Host, { key: 'cfd38900b31991e89c21a099fc4f91f77663ae94', id: this.id, class: "lido-pos", type: this.type, "tab-index": this.tabIndex, style: this.style, "aria-label": this.ariaLabel, "aria-hidden": this.ariaHidden, minDrops: this.minDrops, maxDrops: this.maxDrops, value: this.value, audio: this.audio, onTouch: this.onTouch, onCorrect: this.onCorrect, onInCorrect: this.onInCorrect, onEntry: this.onEntry }, index.h("slot", { key: '73f7bfe2d8214693d6f40a4dab6d735906ad4eaa' })));
|
|
17078
17195
|
}
|
|
17079
17196
|
get el() { return index.getElement(this); }
|
|
17080
17197
|
};
|
|
@@ -17218,7 +17335,7 @@ const LidoRandom = class {
|
|
|
17218
17335
|
backgroundColor: this.bgColor,
|
|
17219
17336
|
margin: this.margin,
|
|
17220
17337
|
};
|
|
17221
|
-
return (index.h(index.Host, { key: '
|
|
17338
|
+
return (index.h(index.Host, { key: 'a4cec45d407b57833a4296a20230717534adf39b', class: "lido-random", type: this.type, "tab-index": this.tabIndex, value: this.value, style: style, "aria-label": this.ariaLabel, "aria-hidden": this.ariaHidden, audio: this.audio, onTouch: this.onTouch, onCorrect: this.onCorrect, minDrops: this.minDrops, maxDrops: this.maxDrops, onInCorrect: this.onInCorrect, onEntry: this.onEntry }, index.h("slot", { key: 'b80726b68b7f1c009f35352b9d05cd573159f87b' })));
|
|
17222
17339
|
}
|
|
17223
17340
|
get el() { return index.getElement(this); }
|
|
17224
17341
|
};
|
|
@@ -17389,13 +17506,13 @@ const LidoRow = class {
|
|
|
17389
17506
|
};
|
|
17390
17507
|
}
|
|
17391
17508
|
render() {
|
|
17392
|
-
return (index.h(index.Host, { key: '
|
|
17509
|
+
return (index.h(index.Host, { key: 'c69aea0b1b11d9aec167d1a4376f68073f91ca81', class: "lido-row", type: this.type, "tab-index": this.tabIndex, value: this.value, style: this.style, "aria-label": this.ariaLabel, "aria-hidden": this.ariaHidden, minDrops: this.minDrops, maxDrops: this.maxDrops, audio: this.audio, onTouch: this.onTouch, onCorrect: this.onCorrect, onInCorrect: this.onInCorrect, onEntry: this.onEntry, "disable-speak": this.disableSpeak }, index.h("slot", { key: '8756ee0447057cddb949e23decbde5fe4d1d25c8' })));
|
|
17393
17510
|
}
|
|
17394
17511
|
get el() { return index.getElement(this); }
|
|
17395
17512
|
};
|
|
17396
17513
|
LidoRow.style = lidoRowCss();
|
|
17397
17514
|
|
|
17398
|
-
const lidoShapeCss = () => `.lido-shape{position:absolute;top:var(--y);left:var(--x);display:var(--display);z-index:var(--z);justify-content:center;align-items:center}.lido-rectangle{border-radius:0}.lido-circle{width:var(--width);height:var(--width);border-radius:50%;background-color:var(--bgColor)}.lido-ellipse{width:var(--width);height:var(--height);border-radius:50%;background-color:var(--bgColor)}.lido-triangle{width:var(--triangleWidth);height:var(--triangleHeight);background-color:var(--bgColor);clip-path:polygon(50% 0%, 100% 100%, 0% 100%)}.lido-rightTriangle{width:var(--triangleWidth);height:var(--triangleHeight);background-color:var(--bgColor);clip-path:polygon(100% 0%, 100% 100%, 0% 100%)}.lido-leftTriangle{width:var(--triangleWidth);height:var(--triangleHeight);background-color:var(--triangleBgColor);clip-path:polygon(0% 0%, 100% 100%, 0% 100%)}.lido-parallelogram{width:var(--paralleWidth);height:var(--paralleHeight);transform:skew(20deg)}.lido-trapezium{width:var(--trapeziumWidth);height:var(--trapeziumHeight);background-color:var(--bgColor);clip-path:polygon(
|
|
17515
|
+
const lidoShapeCss = () => `.lido-shape{position:absolute;top:var(--y);left:var(--x);display:var(--display);z-index:var(--z);justify-content:center;align-items:center}.lido-rectangle{border-radius:0}.lido-circle{width:var(--width);height:var(--width);border-radius:50%;background-color:var(--bgColor)}.lido-ellipse{width:var(--width);height:var(--height);border-radius:50%;background-color:var(--bgColor)}.lido-triangle{width:var(--triangleWidth);height:var(--triangleHeight);background-color:var(--bgColor);clip-path:polygon(50% 0%, 100% 100%, 0% 100%)}.lido-rightTriangle{width:var(--triangleWidth);height:var(--triangleHeight);background-color:var(--bgColor);clip-path:polygon(100% 0%, 100% 100%, 0% 100%)}.lido-leftTriangle{width:var(--triangleWidth);height:var(--triangleHeight);background-color:var(--triangleBgColor);clip-path:polygon(0% 0%, 100% 100%, 0% 100%)}.lido-parallelogram{width:var(--paralleWidth);height:var(--paralleHeight);transform:skew(20deg)}.lido-trapezium{width:var(--trapeziumWidth);height:var(--trapeziumHeight);background-color:var(--bgColor);clip-path:polygon( 20% 0%, 80% 0%, 100% 100%, 0% 100% )}.lido-hexagon{width:var(--hexagonWidth);height:var(--hexagonHeight);background-color:var(--bgColor);clip-path:polygon( 25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50% )}.lido-cone{width:var(--coneWidth);height:var(--coneHeight);background-color:var(--bgColor);clip-path:polygon( 15% 10%, 25% 4%, 35% 1%, 50% 0%, 65% 1%, 75% 4%, 85% 10%, 50% 100% )}.lido-star{width:var(--starWidth);height:var(--starHeight);background-color:var(--starBgColor);clip-path:polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%)}.lido-pentagon{width:var(--pentagonWidth);height:var(--pentagonHeight);background-color:var(--pentagonBgColor);clip-path:polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%)}.lido-heptagon{width:var(--heptagonWidth);height:var(--heptagonHeight);background-color:var(--heptagonBgColor);clip-path:polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%)}.lido-octagon{width:var(--octagonWidth);height:var(--octagonHeight);background-color:var(--octagonBgColor);clip-path:polygon(25% 0%, 75% 0%, 100% 25%, 100% 75%, 75% 100%, 25% 100%, 0% 75%, 0% 25%)}.lido-rhombus{width:var(--rhombusWidth);height:var(--rhombusHeight);background-color:var(--rhombusBgColor);clip-path:polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%)}.lido-heart{height:var(--heartHeight);width:var(--heartWidth);border-image:radial-gradient(var(--heartBgColor) 69%, #0000 70%) 84.5%/50%;clip-path:polygon(-41% 0, 50% 91%, 141% 0)}.cube{width:100%;height:100%;position:relative;transform-style:preserve-3d;transform:rotateX(-20deg) rotateY(45deg)}.face{position:absolute;width:var(--face-width,150px);height:var(--face-width,150px);background:var(--face-bg-color,150px);box-shadow:inset -20px -20px 40px rgba(0,0,0,0.3)}.front{transform:rotateY( 0deg) translateZ(var(--face-translate, 75px))}.back{transform:rotateY(180deg) translateZ(var(--face-translate, 75px))}.right{transform:rotateY( 90deg) translateZ(var(--face-translate, 75px))}.left{transform:rotateY(-90deg) translateZ(var(--face-translate, 75px))}.top{transform:rotateX( 90deg) translateZ(var(--face-translate, 75px))}.bottom{transform:rotateX(-90deg) translateZ(var(--face-translate, 75px))}.lido-cylinder{width:var(--width);height:var(--height);border-radius:100% / 80px;background:radial-gradient(50% 40px at 50% 40px, #0003 99.99%, #0000 0), radial-gradient(50% 40px at 50% calc(100% - 40px), #fff3 99.99%, #0000 0), red}.lido-sphere{position:relative;width:var(--width);height:var(--width);border-radius:50%;background:radial-gradient(circle at 30% 18%, #22d4ff 0%, #18c2f4 9%, rgba(24, 194, 244, 0.2) 18%, transparent 30%), radial-gradient(circle at 36% 26%, #0f8fff 0%, #0b67e6 30%, #083fbe 62%, #120084 100%);box-shadow:inset -22px -26px 40px rgba(5, 0, 70, 0.38), inset 14px 14px 24px rgba(255, 255, 255, 0.05), 0 4px 2px rgba(0, 0, 0, 0.78);overflow:visible}.lido-sphere::after{content:'';position:absolute;top:50%;left:50%;width:100%;height:16%;border-radius:50%;border-top:2px dashed rgba(0, 0, 0, 0.65);border-bottom:3px solid rgba(0, 0, 0, 0.85);box-sizing:border-box;transform:translate(-50%, -50%);pointer-events:none}`;
|
|
17399
17516
|
|
|
17400
17517
|
const LidoShape = class {
|
|
17401
17518
|
constructor(hostRef) {
|
|
@@ -17547,8 +17664,8 @@ const LidoShape = class {
|
|
|
17547
17664
|
backgroundColor: this.shapeType !== 'polygon' ? this.bgColor : 'transparent', // Apply background only if not a polygon
|
|
17548
17665
|
margin: this.margin,
|
|
17549
17666
|
};
|
|
17550
|
-
return (index.h(index.Host, { key: '
|
|
17551
|
-
index.h("div", { key: '
|
|
17667
|
+
return (index.h(index.Host, { key: '90b323eacac8b702168f612f79000da757109ec1', class: `lido-shape ${this.shapeType}`, value: this.value, type: this.type, "tab-index": this.tabIndex, style: style, "aria-label": this.ariaLabel, "aria-hidden": this.ariaHidden, audio: this.audio, minDrops: this.minDrops, maxDrops: this.maxDrops, onTouch: this.onTouch, onCorrect: this.onCorrect, onInCorrect: this.onInCorrect, onEntry: this.onEntry, "disable-speak": this.disableSpeak }, this.shapeType === "lido-cube" &&
|
|
17668
|
+
index.h("div", { key: '16b4a96f302cd6b1c80023a29253e85fe0937622', class: "cube" }, index.h("div", { key: '9ce4dfa0021b463aa5dba4c0651d144f844c2db0', class: "face top" }), index.h("div", { key: 'f10410ef05cbde0a024ccbdbfb4fb7099c1bd9d3', class: "face bottom" }), index.h("div", { key: '2a08b1857613efd1db596d72a9324ac5b3379628', class: "face left" }), index.h("div", { key: '4922b4b63dc9538e68d143109bfa12782382ee48', class: "face right" }), index.h("div", { key: '983bc6815a3b5e6023d76394e0bdeb12c493b771', class: "face front" }), index.h("div", { key: 'eab0224f427b8a345d3c3285d8d2828b39871eaa', class: "face back" }))));
|
|
17552
17669
|
}
|
|
17553
17670
|
get el() { return index.getElement(this); }
|
|
17554
17671
|
};
|
|
@@ -17643,13 +17760,13 @@ const LidoSlideFill = class {
|
|
|
17643
17760
|
const id = pathIndex === 1 ? 'glassPath' : pathIndex === 2 ? 'rulerPath' : `path${pathIndex}`;
|
|
17644
17761
|
return `<path id="${id}"${attrs}>`;
|
|
17645
17762
|
});
|
|
17646
|
-
const clipPathDef = `
|
|
17647
|
-
<clipPath id="clipGlass">
|
|
17648
|
-
<use xlink:href="#glassPath" />
|
|
17649
|
-
</clipPath>
|
|
17763
|
+
const clipPathDef = `
|
|
17764
|
+
<clipPath id="clipGlass">
|
|
17765
|
+
<use xlink:href="#glassPath" />
|
|
17766
|
+
</clipPath>
|
|
17650
17767
|
`;
|
|
17651
|
-
svgText = svgText.replace(/<svg([^>]*)>/, `<svg class="lido-slide-svg"$1>
|
|
17652
|
-
${clipPathDef}
|
|
17768
|
+
svgText = svgText.replace(/<svg([^>]*)>/, `<svg class="lido-slide-svg"$1>
|
|
17769
|
+
${clipPathDef}
|
|
17653
17770
|
`);
|
|
17654
17771
|
svgText = svgText.replace(/<rect([^>]*)\/?>/, `<rect id="fillArea" $1 clip-path="url(#clipGlass)" />`);
|
|
17655
17772
|
this.svgContent = svgText;
|
|
@@ -17774,7 +17891,7 @@ const LidoSlideFill = class {
|
|
|
17774
17891
|
}
|
|
17775
17892
|
}
|
|
17776
17893
|
render() {
|
|
17777
|
-
return (index.h(index.Host, { key: '
|
|
17894
|
+
return (index.h(index.Host, { key: 'df8a5474f641fec4d842013a04ef9e3d422a8ab2', id: this.id, class: "lido-slide-fill", src: this.src, fill: this.fill, fillDirection: this.fillDirection, slider: this.slider, style: this.style, min: this.min, max: this.max, division: this.division, numberType: this.numberType, onEntry: this.onEntry, type: this.type, "disable-speak": this.disableSpeak }, index.h("div", { key: 'e7b6bcc17f8caea30b074f24596b6b044833d170', innerHTML: this.svgContent, class: "lido-svg-element" })));
|
|
17778
17895
|
}
|
|
17779
17896
|
get el() { return index.getElement(this); }
|
|
17780
17897
|
static get watchers() { return {
|
|
@@ -18063,7 +18180,7 @@ const LidoText = class {
|
|
|
18063
18180
|
}
|
|
18064
18181
|
render() {
|
|
18065
18182
|
const displayText = instance.t(this.string).replace(/_phonics?/gi, '');
|
|
18066
|
-
return (index.h(index.Host, { key: '
|
|
18183
|
+
return (index.h(index.Host, { key: 'ecef6ae20a67e2296570fe3a65cc5c99f96a1f7c', class: "lido-text", value: this.value, "required-drops": this.requiredDrops, type: this.type, "tab-index": this.tabIndex, audio: this.audio, onTouch: this.onTouch, onCorrect: this.onCorrect, onInCorrect: this.onInCorrect, onEntry: this.onEntry, minDrops: this.minDrops, maxDrops: this.maxDrops, id: this.id, style: this.style, "aria-label": this.ariaLabel, "aria-hidden": this.ariaHidden, move: this.move, "span-type": this.spanType, "disable-speak": `${this.disableSpeak}` }, this.spanType !== '' ? index.h("div", { class: "lido-text-content" }, " ", displayText) : displayText));
|
|
18067
18184
|
}
|
|
18068
18185
|
get el() { return index.getElement(this); }
|
|
18069
18186
|
};
|
|
@@ -18181,6 +18298,7 @@ const LidoTrace = class {
|
|
|
18181
18298
|
this.fileIndex = -1;
|
|
18182
18299
|
this.isDragging = false;
|
|
18183
18300
|
this.activePointerId = null;
|
|
18301
|
+
this.activeTraceState = null;
|
|
18184
18302
|
// Counter for throttling free trace updates
|
|
18185
18303
|
// This is only an internal counter. Keeping it out of @State prevents a
|
|
18186
18304
|
// Stencil component re-render while the user is dragging.
|
|
@@ -18195,6 +18313,7 @@ const LidoTrace = class {
|
|
|
18195
18313
|
// Handle the pointermove event with optimizations
|
|
18196
18314
|
// Update the path trace as the red circle moves
|
|
18197
18315
|
async initializeSVG() {
|
|
18316
|
+
this.cleanupTraceState(this.activeTraceState);
|
|
18198
18317
|
let state = {
|
|
18199
18318
|
fileIndex: -1,
|
|
18200
18319
|
currentPathIndex: 0,
|
|
@@ -18217,7 +18336,10 @@ const LidoTrace = class {
|
|
|
18217
18336
|
dragOffset: null,
|
|
18218
18337
|
isCompletingPath: false,
|
|
18219
18338
|
touchProximityThreshold: null,
|
|
18339
|
+
pointerTransform: null,
|
|
18340
|
+
pointerRect: null,
|
|
18220
18341
|
};
|
|
18342
|
+
this.activeTraceState = state;
|
|
18221
18343
|
const url = this.svgUrls[this.currentSvgIndex];
|
|
18222
18344
|
if (!url || url.trim() === '') {
|
|
18223
18345
|
console.error('No SVG URL provided or index out of bounds.');
|
|
@@ -18244,6 +18366,27 @@ const LidoTrace = class {
|
|
|
18244
18366
|
disconnectedCallback() {
|
|
18245
18367
|
window.removeEventListener('resize', this.handleWindowResize);
|
|
18246
18368
|
window.removeEventListener('load', this.handleWindowLoad);
|
|
18369
|
+
this.cleanupTraceState(this.activeTraceState);
|
|
18370
|
+
this.activeTraceState = null;
|
|
18371
|
+
}
|
|
18372
|
+
/** Release listeners, pending frames, timers, and cached SVG geometry. */
|
|
18373
|
+
cleanupTraceState(state) {
|
|
18374
|
+
var _a;
|
|
18375
|
+
if (!state)
|
|
18376
|
+
return;
|
|
18377
|
+
(_a = state.cleanup) === null || _a === void 0 ? void 0 : _a.call(state);
|
|
18378
|
+
if (state.rafId)
|
|
18379
|
+
cancelAnimationFrame(state.rafId);
|
|
18380
|
+
state.rafId = null;
|
|
18381
|
+
state.pointerMoveEvent = null;
|
|
18382
|
+
state.pathSamples = [];
|
|
18383
|
+
state.paths = [];
|
|
18384
|
+
state.svg = null;
|
|
18385
|
+
if (this.idleTimer !== null) {
|
|
18386
|
+
clearTimeout(this.idleTimer);
|
|
18387
|
+
this.idleTimer = null;
|
|
18388
|
+
}
|
|
18389
|
+
this.hideFingerHint();
|
|
18247
18390
|
}
|
|
18248
18391
|
/** ───────────────────────────────────────────────────────────
|
|
18249
18392
|
* Idle‑timer helpers
|
|
@@ -18442,6 +18585,18 @@ const LidoTrace = class {
|
|
|
18442
18585
|
path._lidoTraceStart = path.getPointAtLength(0);
|
|
18443
18586
|
path._lidoTraceEnd = path.getPointAtLength(pathLength);
|
|
18444
18587
|
path._lidoTraceIsClosed = this.getDistanceSquared(path._lidoTraceStart, path._lidoTraceEnd) < 200;
|
|
18588
|
+
// Index the path once. Repeated getPointAtLength calls are expensive on
|
|
18589
|
+
// low-end SVG implementations and used to dominate every pointer frame.
|
|
18590
|
+
const sampleCount = 192;
|
|
18591
|
+
const sampleStep = pathLength / sampleCount || 1;
|
|
18592
|
+
const samples = [];
|
|
18593
|
+
for (let sampleIndex = 0; sampleIndex <= sampleCount; sampleIndex++) {
|
|
18594
|
+
const length = Math.min(pathLength, sampleIndex * sampleStep);
|
|
18595
|
+
const point = path.getPointAtLength(length);
|
|
18596
|
+
samples.push({ x: point.x, y: point.y, length });
|
|
18597
|
+
}
|
|
18598
|
+
path._lidoTraceSamples = samples;
|
|
18599
|
+
path._lidoTraceSampleStep = sampleStep;
|
|
18445
18600
|
// /** give every path an id so <mpath> can follow it */
|
|
18446
18601
|
path.setAttribute('id', 'lido-path-' + index); // ← NEW
|
|
18447
18602
|
// Create green path for tracing effect
|
|
@@ -18476,7 +18631,7 @@ const LidoTrace = class {
|
|
|
18476
18631
|
state.flowMarkers = this.createFlowMarkersForPath(path);
|
|
18477
18632
|
}
|
|
18478
18633
|
});
|
|
18479
|
-
state.totalPathLength = state.paths[state.currentPathIndex].
|
|
18634
|
+
state.totalPathLength = state.paths[state.currentPathIndex]._lidoTraceLength;
|
|
18480
18635
|
}
|
|
18481
18636
|
// Set up the draggable circle at the start of the first path
|
|
18482
18637
|
setupDraggableCircle(state) {
|
|
@@ -18501,10 +18656,14 @@ const LidoTrace = class {
|
|
|
18501
18656
|
return;
|
|
18502
18657
|
state.svg.style.touchAction = 'none';
|
|
18503
18658
|
state.circle.style.touchAction = 'none';
|
|
18504
|
-
//
|
|
18505
|
-
|
|
18659
|
+
// Keep named handlers so the detached SVG can be fully released when the
|
|
18660
|
+
// next trace starts. Anonymous handlers here previously retained every
|
|
18661
|
+
// completed trace for the lifetime of the page.
|
|
18662
|
+
const onPointerDown = (evt) => {
|
|
18506
18663
|
evt.preventDefault(); // Prevent default actions like text selection
|
|
18507
|
-
|
|
18664
|
+
state.pointerRect = state.svg.getBoundingClientRect();
|
|
18665
|
+
state.pointerTransform = this.getSvgViewBoxTransform(state.svg, state.pointerRect);
|
|
18666
|
+
const pointerPos = this.getPointerPosition(evt, state.svg, state.pointerTransform, state.pointerRect);
|
|
18508
18667
|
const circlePos = {
|
|
18509
18668
|
x: parseFloat(state.circle.getAttribute('cx')),
|
|
18510
18669
|
y: parseFloat(state.circle.getAttribute('cy')),
|
|
@@ -18529,9 +18688,9 @@ const LidoTrace = class {
|
|
|
18529
18688
|
}
|
|
18530
18689
|
this.hideFingerHint(); // ← NEW
|
|
18531
18690
|
this.resetIdleTimer(state); // ← NEW
|
|
18532
|
-
}
|
|
18691
|
+
};
|
|
18533
18692
|
// Handle pointermove on the SVG to update the circle position
|
|
18534
|
-
|
|
18693
|
+
const onPointerMove = (evt) => {
|
|
18535
18694
|
if (!state.isDragging || evt.pointerId !== state.activePointerId)
|
|
18536
18695
|
return;
|
|
18537
18696
|
evt.preventDefault();
|
|
@@ -18542,7 +18701,7 @@ const LidoTrace = class {
|
|
|
18542
18701
|
state.rafId = null;
|
|
18543
18702
|
});
|
|
18544
18703
|
}
|
|
18545
|
-
}
|
|
18704
|
+
};
|
|
18546
18705
|
// Handle pointerup and pointercancel on the SVG to stop dragging
|
|
18547
18706
|
const endDrag = (evt) => {
|
|
18548
18707
|
if (evt.pointerId === state.activePointerId) {
|
|
@@ -18554,12 +18713,25 @@ const LidoTrace = class {
|
|
|
18554
18713
|
this.resetIdleTimer(state); // ← NEW
|
|
18555
18714
|
}
|
|
18556
18715
|
};
|
|
18557
|
-
(
|
|
18558
|
-
(
|
|
18716
|
+
(_a = state.svg) === null || _a === void 0 ? void 0 : _a.addEventListener('pointerup', endDrag);
|
|
18717
|
+
(_b = state.svg) === null || _b === void 0 ? void 0 : _b.addEventListener('pointercancel', endDrag);
|
|
18559
18718
|
// Optional: Prevent context menu on long press
|
|
18560
|
-
|
|
18719
|
+
const onContextMenu = (evt) => {
|
|
18561
18720
|
evt.preventDefault();
|
|
18562
|
-
}
|
|
18721
|
+
};
|
|
18722
|
+
state.circle.addEventListener('pointerdown', onPointerDown, { passive: false });
|
|
18723
|
+
(_c = state.svg) === null || _c === void 0 ? void 0 : _c.addEventListener('pointermove', onPointerMove);
|
|
18724
|
+
(_d = state.svg) === null || _d === void 0 ? void 0 : _d.addEventListener('contextmenu', onContextMenu);
|
|
18725
|
+
state.cleanup = () => {
|
|
18726
|
+
var _a, _b, _c, _d, _e;
|
|
18727
|
+
(_a = state.circle) === null || _a === void 0 ? void 0 : _a.removeEventListener('pointerdown', onPointerDown);
|
|
18728
|
+
(_b = state.svg) === null || _b === void 0 ? void 0 : _b.removeEventListener('pointermove', onPointerMove);
|
|
18729
|
+
(_c = state.svg) === null || _c === void 0 ? void 0 : _c.removeEventListener('pointerup', endDrag);
|
|
18730
|
+
(_d = state.svg) === null || _d === void 0 ? void 0 : _d.removeEventListener('pointercancel', endDrag);
|
|
18731
|
+
(_e = state.svg) === null || _e === void 0 ? void 0 : _e.removeEventListener('contextmenu', onContextMenu);
|
|
18732
|
+
state.isDragging = false;
|
|
18733
|
+
state.activePointerId = null;
|
|
18734
|
+
};
|
|
18563
18735
|
}
|
|
18564
18736
|
// Modified handlePointerMove function
|
|
18565
18737
|
async handlePointerMove(state) {
|
|
@@ -18572,7 +18744,7 @@ const LidoTrace = class {
|
|
|
18572
18744
|
return;
|
|
18573
18745
|
this.hideFingerHint(); // user is active, remove hint
|
|
18574
18746
|
const evt = state.pointerMoveEvent;
|
|
18575
|
-
const rawPointerPos = this.getPointerPosition(evt, state.svg);
|
|
18747
|
+
const rawPointerPos = this.getPointerPosition(evt, state.svg, state.pointerTransform, state.pointerRect);
|
|
18576
18748
|
const pointerPos = state.dragOffset
|
|
18577
18749
|
? {
|
|
18578
18750
|
x: rawPointerPos.x - state.dragOffset.x,
|
|
@@ -18604,9 +18776,16 @@ const LidoTrace = class {
|
|
|
18604
18776
|
const proximitySquared = proximityThreshold * proximityThreshold;
|
|
18605
18777
|
// Calculate the distance between the pointer and the draggable circle
|
|
18606
18778
|
const distanceSquared = this.getDistanceSquared(pointerPos, circlePos);
|
|
18607
|
-
//
|
|
18608
|
-
|
|
18609
|
-
|
|
18779
|
+
// The red circle can lag behind a touch pointer when a lower-end device
|
|
18780
|
+
// drops frames. Do not reject the touch solely because it has moved ahead
|
|
18781
|
+
// of the circle: the path-distance check below still ensures the pointer
|
|
18782
|
+
// remains on the trace. This prevents long, narrow curves from becoming
|
|
18783
|
+
// stuck halfway through a stroke.
|
|
18784
|
+
const pointerLeadThreshold = evt.pointerType === 'touch'
|
|
18785
|
+
? Math.max(proximityThreshold * 4, 180)
|
|
18786
|
+
: Math.max(proximityThreshold * 2, 120);
|
|
18787
|
+
if (distanceSquared > pointerLeadThreshold * pointerLeadThreshold) {
|
|
18788
|
+
return;
|
|
18610
18789
|
}
|
|
18611
18790
|
const isFreeTraceMode = state.mode === index$1.TraceMode.FreeTrace || state.mode === index$1.TraceMode.BlindFreeTrace;
|
|
18612
18791
|
const closestPoint = this.getClosestPointOnPath(currentPath, pointerPos, isFreeTraceMode ? undefined : state.lastLength);
|
|
@@ -18682,7 +18861,7 @@ const LidoTrace = class {
|
|
|
18682
18861
|
// In normal modes, allow movement and drawing only within the general proximity threshold
|
|
18683
18862
|
const BACKWARD_TOLERANCE = 20; // allow slight backward movement
|
|
18684
18863
|
const MAX_FORWARD_JUMP = 80; // prevent jumping to wrong segment
|
|
18685
|
-
const RECOVERY_FORWARD_JUMP = Math.min(320, Math.max(160, state.totalPathLength * 0.45)); // recover on long strokes without skipping short paths
|
|
18864
|
+
const RECOVERY_FORWARD_JUMP = Math.min(evt.pointerType === 'touch' ? 480 : 320, Math.max(evt.pointerType === 'touch' ? 220 : 160, state.totalPathLength * 0.45)); // recover on long strokes without skipping short paths
|
|
18686
18865
|
const RECOVERY_END_BUFFER = Math.min(60, Math.max(24, state.totalPathLength * 0.12)); // don't let recovery auto-finish the last part
|
|
18687
18866
|
const RECOVERY_POINTER_MOVE_THRESHOLD = 8; // only recover after a meaningful drag, not during slow tracing
|
|
18688
18867
|
let guidedClosestPoint = closestPoint;
|
|
@@ -18836,9 +19015,9 @@ const LidoTrace = class {
|
|
|
18836
19015
|
index$1.triggerNextContainer();
|
|
18837
19016
|
}
|
|
18838
19017
|
// Get the pointer position relative to the SVG
|
|
18839
|
-
getPointerPosition(evt, svg) {
|
|
19018
|
+
getPointerPosition(evt, svg, cachedTransform, cachedRect) {
|
|
18840
19019
|
var _a;
|
|
18841
|
-
const viewBoxPoint = this.getPointerPositionFromViewBox(evt, svg);
|
|
19020
|
+
const viewBoxPoint = this.getPointerPositionFromViewBox(evt, svg, cachedTransform, cachedRect);
|
|
18842
19021
|
if (viewBoxPoint)
|
|
18843
19022
|
return viewBoxPoint;
|
|
18844
19023
|
const svgPoint = svg.createSVGPoint();
|
|
@@ -18847,13 +19026,13 @@ const LidoTrace = class {
|
|
|
18847
19026
|
const ctm = (_a = svg.getScreenCTM()) === null || _a === void 0 ? void 0 : _a.inverse();
|
|
18848
19027
|
return ctm ? svgPoint.matrixTransform(ctm) : { x: evt.clientX, y: evt.clientY };
|
|
18849
19028
|
}
|
|
18850
|
-
getPointerPositionFromViewBox(evt, svg) {
|
|
18851
|
-
const rect = svg.getBoundingClientRect();
|
|
19029
|
+
getPointerPositionFromViewBox(evt, svg, cachedTransform, cachedRect) {
|
|
19030
|
+
const rect = cachedRect || svg.getBoundingClientRect();
|
|
18852
19031
|
const viewBox = svg.viewBox.baseVal;
|
|
18853
19032
|
if (!rect.width || !rect.height || !viewBox.width || !viewBox.height) {
|
|
18854
19033
|
return null;
|
|
18855
19034
|
}
|
|
18856
|
-
const { offsetX, offsetY, scaleX, scaleY } = this.getSvgViewBoxTransform(svg, rect);
|
|
19035
|
+
const { offsetX, offsetY, scaleX, scaleY } = cachedTransform || this.getSvgViewBoxTransform(svg, rect);
|
|
18857
19036
|
return {
|
|
18858
19037
|
x: viewBox.x + (evt.clientX - rect.left - offsetX) / scaleX,
|
|
18859
19038
|
y: viewBox.y + (evt.clientY - rect.top - offsetY) / scaleY,
|
|
@@ -18913,6 +19092,40 @@ const LidoTrace = class {
|
|
|
18913
19092
|
getClosestPointOnPath(pathNode, point, lastLength) {
|
|
18914
19093
|
var _a;
|
|
18915
19094
|
const pathLength = (_a = pathNode._lidoTraceLength) !== null && _a !== void 0 ? _a : pathNode.getTotalLength();
|
|
19095
|
+
const samples = pathNode._lidoTraceSamples;
|
|
19096
|
+
const sampleStep = pathNode._lidoTraceSampleStep;
|
|
19097
|
+
if ((samples === null || samples === void 0 ? void 0 : samples.length) && sampleStep) {
|
|
19098
|
+
const searchWindow = lastLength === undefined ? pathLength : 150;
|
|
19099
|
+
const searchStart = lastLength === undefined ? 0 : Math.max(0, lastLength - searchWindow);
|
|
19100
|
+
const searchEnd = lastLength === undefined ? pathLength : Math.min(pathLength, lastLength + searchWindow);
|
|
19101
|
+
let nearest = samples[Math.max(0, Math.min(samples.length - 1, Math.round((lastLength || 0) / sampleStep)))];
|
|
19102
|
+
let nearestDistance = Infinity;
|
|
19103
|
+
for (const sample of samples) {
|
|
19104
|
+
if (sample.length < searchStart || sample.length > searchEnd)
|
|
19105
|
+
continue;
|
|
19106
|
+
const distance = this.getDistanceSquared(point, sample);
|
|
19107
|
+
if (distance < nearestDistance) {
|
|
19108
|
+
nearestDistance = distance;
|
|
19109
|
+
nearest = sample;
|
|
19110
|
+
}
|
|
19111
|
+
}
|
|
19112
|
+
// Refine only around the cached winner. This keeps the path accurate
|
|
19113
|
+
// while reducing hot-path geometry calls from roughly 50 to a handful.
|
|
19114
|
+
const refinementStep = 6;
|
|
19115
|
+
const refineStart = Math.max(searchStart, nearest.length - sampleStep);
|
|
19116
|
+
const refineEnd = Math.min(searchEnd, nearest.length + sampleStep);
|
|
19117
|
+
let closestPoint = Object.assign({}, nearest);
|
|
19118
|
+
let minDistanceSquared = nearestDistance;
|
|
19119
|
+
for (let length = refineStart; length <= refineEnd; length += refinementStep) {
|
|
19120
|
+
const candidate = pathNode.getPointAtLength(length);
|
|
19121
|
+
const distance = this.getDistanceSquared(point, candidate);
|
|
19122
|
+
if (distance < minDistanceSquared) {
|
|
19123
|
+
minDistanceSquared = distance;
|
|
19124
|
+
closestPoint = { x: candidate.x, y: candidate.y, length };
|
|
19125
|
+
}
|
|
19126
|
+
}
|
|
19127
|
+
return closestPoint;
|
|
19128
|
+
}
|
|
18916
19129
|
let closestPoint = { x: 0, y: 0, length: 0 };
|
|
18917
19130
|
let minDistanceSquared = Infinity;
|
|
18918
19131
|
const coarseStep = 40;
|
|
@@ -19105,7 +19318,7 @@ const LidoTrace = class {
|
|
|
19105
19318
|
};
|
|
19106
19319
|
}
|
|
19107
19320
|
render() {
|
|
19108
|
-
return (index.h(index.Host, { key: '
|
|
19321
|
+
return (index.h(index.Host, { key: 'fecd265e2c8a5f7d391fe99e35739f76759da5b6', class: "lido-trace", id: this.id, audio: this.audio, onCorrect: this.onCorrect, onInCorrect: this.onInCorrect, style: this.style, "aria-label": this.ariaLabel, "aria-hidden": this.ariaHidden, tabindex: this.tabIndex, "disable-speak": this.disableSpeak }, index.h("div", { key: '677681edfa9da3e7f8bea5f79d62900322262460', style: this.style, id: "lido-svgContainer" })));
|
|
19109
19322
|
}
|
|
19110
19323
|
static get assetsDirs() { return ["assets"]; }
|
|
19111
19324
|
get el() { return index.getElement(this); }
|
|
@@ -19191,7 +19404,7 @@ const LidoWrap = class {
|
|
|
19191
19404
|
};
|
|
19192
19405
|
}
|
|
19193
19406
|
render() {
|
|
19194
|
-
return (index.h(index.Host, { key: '
|
|
19407
|
+
return (index.h(index.Host, { key: '8d8ea2a16213d6a54c947d2fa20dd094024d30d1', class: "lido-wrap", value: this.value, type: this.type, "tab-index": this.tabIndex, style: this.style, "aria-label": this.ariaLabel, "aria-hidden": this.ariaHidden, audio: this.audio, minDrops: this.minDrops, maxDrops: this.maxDrops, onTouch: this.onTouch, onCorrect: this.onCorrect, onInCorrect: this.onInCorrect, onEntry: this.onEntry, disableSpeak: this.disableSpeak }, index.h("slot", { key: 'f42ddae95ef36fe6e7a42d2ccfcb58bf09243b08' })));
|
|
19195
19408
|
}
|
|
19196
19409
|
get el() { return index.getElement(this); }
|
|
19197
19410
|
};
|