lido-player 0.0.2-alpha-49 → 0.0.2-alpha-43-dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/dist/cjs/{index-fe562525.js → index-6a69c33a.js} +36 -3
  2. package/dist/cjs/index.cjs.js +2 -2
  3. package/dist/cjs/{lido-avatar_19.cjs.entry.js → lido-avatar_21.cjs.entry.js} +431 -180
  4. package/dist/cjs/lido-player.cjs.js +2 -2
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/{utils-96ce5641.js → utils-079a5e7d.js} +1032 -165
  7. package/dist/collection/collection-manifest.json +2 -0
  8. package/dist/collection/components/calculator/lido-calculator.css +87 -0
  9. package/dist/collection/components/calculator/lido-calculator.js +321 -0
  10. package/dist/collection/components/cell/lido-cell.js +1 -1
  11. package/dist/collection/components/column/lido-col.js +1 -1
  12. package/dist/collection/components/container/lido-container.js +20 -1
  13. package/dist/collection/components/flashCard/lido-flash-card.js +1 -1
  14. package/dist/collection/components/float/lido-float.js +1 -1
  15. package/dist/collection/components/home/lido-home.js +9 -29
  16. package/dist/collection/components/keyboard/lido-keyboard.js +2 -2
  17. package/dist/collection/components/mathMatrix/lido-math-matrix.css +10 -2
  18. package/dist/collection/components/mathMatrix/lido-math-matrix.js +226 -20
  19. package/dist/collection/components/position/lido-pos.js +1 -1
  20. package/dist/collection/components/random/lido-random.js +1 -1
  21. package/dist/collection/components/row/lido-row.js +1 -1
  22. package/dist/collection/components/scale/lido-balance.css +114 -0
  23. package/dist/collection/components/scale/lido-balance.js +549 -0
  24. package/dist/collection/components/shape/lido-shape.js +1 -1
  25. package/dist/collection/components/slideFill/lido-slide-fill.js +1 -1
  26. package/dist/collection/components/text/lido-text.js +1 -1
  27. package/dist/collection/components/trace/lido-trace.js +49 -128
  28. package/dist/collection/components/wrap/lido-wrap.js +1 -1
  29. package/dist/collection/css/animation.css +21 -0
  30. package/dist/collection/css/index.css +45 -0
  31. package/dist/collection/stories/Templates/Fill-Up/fill-up.stories.js +24 -25
  32. package/dist/collection/stories/Templates/RocketGame/rocketGame.stories.js +0 -3
  33. package/dist/collection/stories/Templates/balancing/balancing.stories.js +67 -0
  34. package/dist/collection/stories/Templates/checker-block/checkerBlock.stories.js +156 -0
  35. package/dist/collection/stories/Templates/checkerBlock/checkerBlock.stories.js +49 -0
  36. package/dist/collection/stories/Templates/fillAnswer/fill-answer.stories.js +66 -0
  37. package/dist/collection/stories/Templates/foodJar/food-jar.stories.js +65 -0
  38. package/dist/collection/stories/Templates/matchBox/matchBox.stories.js +105 -0
  39. package/dist/collection/stories/Templates/matchBox/matchBox2.stories.js +92 -0
  40. package/dist/collection/stories/Templates/matchingCard/matching-card.stories.js +47 -0
  41. package/dist/collection/stories/Templates/multiplyBeeds/multiplyBeeds.stories.js +59 -0
  42. package/dist/collection/stories/Templates/nimbleTable/nimbleTable.stories.js +93 -0
  43. package/dist/collection/stories/Templates/numberBoardTwo/numberBoardTwo.stories.js +100 -0
  44. package/dist/collection/stories/Templates/numberPair/numberPair.stories.js +212 -0
  45. package/dist/collection/stories/Templates/order-tractor/order-tractor-ascending-order.stories.js +6 -7
  46. package/dist/collection/stories/Templates/order-tractor/order-tractor.stories.js +6 -7
  47. package/dist/collection/stories/Templates/questionBoard/questionBoard.stories.js +158 -0
  48. package/dist/collection/stories/Templates/sequenceBox/sequenceBox1.stories.js +102 -0
  49. package/dist/collection/stories/Templates/sequenceBox/sequenceBox2.stories.js +94 -0
  50. package/dist/collection/stories/Templates/shapePair/shape-pair.stories.js +184 -0
  51. package/dist/collection/stories/Templates/shapeTractor/shape-tractor.stories.js +213 -0
  52. package/dist/collection/stories/Templates/sumTogether/sumTogether.stories.js +109 -0
  53. package/dist/collection/stories/Templates/total/total.stories.js +59 -0
  54. package/dist/collection/stories/Templates/writeNumber/writeNumber.stories.js +96 -0
  55. package/dist/collection/stories/Templates/writeSet/writeSet.stories.js +55 -0
  56. package/dist/collection/stories/Templates/writeWord/writeWord.stories.js +5 -6
  57. package/dist/collection/utils/utils.js +439 -81
  58. package/dist/collection/utils/utilsHandlers/clickHandler.js +21 -25
  59. package/dist/collection/utils/utilsHandlers/dragDropHandler.js +95 -42
  60. package/dist/collection/utils/utilsHandlers/lidoBalanceHandler.js +67 -0
  61. package/dist/collection/utils/utilsHandlers/lidoCalculatorHandler.js +94 -0
  62. package/dist/collection/utils/utilsHandlers/matrixHandler.js +298 -0
  63. package/dist/collection/utils/utilsHandlers/slideHandler.js +4 -2
  64. package/dist/collection/utils/utilsHandlers/sortHandler.js +21 -12
  65. package/dist/components/index.js +1 -1
  66. package/dist/components/lido-avatar.js +1 -1
  67. package/dist/components/lido-balance.d.ts +11 -0
  68. package/dist/components/lido-balance.js +6 -0
  69. package/dist/components/lido-calculator.d.ts +11 -0
  70. package/dist/components/lido-calculator.js +6 -0
  71. package/dist/components/lido-cell.js +1 -1
  72. package/dist/components/lido-col.js +1 -1
  73. package/dist/components/lido-container.js +1 -1
  74. package/dist/components/lido-flash-card.js +1 -1
  75. package/dist/components/lido-float.js +1 -1
  76. package/dist/components/lido-home.js +1 -1
  77. package/dist/components/lido-image.js +1 -1
  78. package/dist/components/lido-keyboard.js +1 -1
  79. package/dist/components/lido-math-matrix.js +1 -1
  80. package/dist/components/lido-pos.js +1 -1
  81. package/dist/components/lido-random.js +1 -1
  82. package/dist/components/lido-root.js +32 -20
  83. package/dist/components/lido-row.js +1 -1
  84. package/dist/components/lido-shape.js +1 -1
  85. package/dist/components/lido-slide-fill.js +1 -1
  86. package/dist/components/lido-text.js +1 -1
  87. package/dist/components/lido-trace.js +1 -1
  88. package/dist/components/lido-wrap.js +1 -1
  89. package/dist/components/p-08d0deab.js +254 -0
  90. package/dist/components/{p-b5b6ad27.js → p-15971ede.js} +1 -1
  91. package/dist/components/{p-0bf92c7f.js → p-1fbdb431.js} +2 -2
  92. package/dist/components/{p-b43ce4e1.js → p-29bdd953.js} +2 -2
  93. package/dist/components/{p-b8af26e6.js → p-322acda6.js} +40 -48
  94. package/dist/components/{p-51943db6.js → p-3f406017.js} +2 -2
  95. package/dist/components/p-44808985.js +186 -0
  96. package/dist/components/{p-4cabbf28.js → p-52844fa4.js} +2 -2
  97. package/dist/components/{p-4882df37.js → p-73e31a86.js} +2 -2
  98. package/dist/components/{p-af54a485.js → p-74849cdd.js} +4 -4
  99. package/dist/components/{p-9c56f378.js → p-7f7e5672.js} +2 -2
  100. package/dist/components/{p-4dbae73b.js → p-835b973d.js} +2 -2
  101. package/dist/components/{p-b55af747.js → p-90465904.js} +50 -129
  102. package/dist/components/{p-cae021c6.js → p-904711c8.js} +2 -2
  103. package/dist/components/{p-e735dce9.js → p-9be56729.js} +5 -3
  104. package/dist/components/{p-cac6c8bf.js → p-afbc196f.js} +2 -2
  105. package/dist/components/{p-cfa2aec8.js → p-bed94c37.js} +1047 -164
  106. package/dist/components/{p-7f11a624.js → p-cbac3cbc.js} +1 -1
  107. package/dist/components/{p-61d97438.js → p-d37ab4dc.js} +2 -2
  108. package/dist/components/p-e36ddcc1.js +166 -0
  109. package/dist/components/{p-03e4cafe.js → p-e4e42677.js} +2 -2
  110. package/dist/esm/{index-f47852d4.js → index-170e58c7.js} +36 -4
  111. package/dist/esm/index.js +2 -2
  112. package/dist/esm/{lido-avatar_19.entry.js → lido-avatar_21.entry.js} +430 -181
  113. package/dist/esm/lido-player.js +3 -3
  114. package/dist/esm/loader.js +3 -3
  115. package/dist/esm/{utils-9ce243d8.js → utils-5df09162.js} +1031 -164
  116. package/dist/lido-player/index.esm.js +1 -1
  117. package/dist/lido-player/lido-player.css +1 -1
  118. package/dist/lido-player/lido-player.esm.js +1 -1
  119. package/dist/lido-player/p-137c99ce.js +2 -0
  120. package/dist/lido-player/p-7556e652.js +9 -0
  121. package/dist/lido-player/p-eb956325.entry.js +1 -0
  122. package/dist/types/components/calculator/lido-calculator.d.ts +40 -0
  123. package/dist/types/components/container/lido-container.d.ts +4 -0
  124. package/dist/types/components/home/lido-home.d.ts +0 -1
  125. package/dist/types/components/mathMatrix/lido-math-matrix.d.ts +24 -4
  126. package/dist/types/components/scale/lido-balance.d.ts +160 -0
  127. package/dist/types/components/trace/lido-trace.d.ts +0 -1
  128. package/dist/types/components.d.ts +342 -14
  129. package/dist/types/stories/Templates/balancing/balancing.stories.d.ts +4 -0
  130. package/dist/types/stories/Templates/checker-block/checkerBlock.stories.d.ts +4 -0
  131. package/dist/types/stories/Templates/checkerBlock/checkerBlock.stories.d.ts +4 -0
  132. package/dist/types/stories/Templates/fillAnswer/fill-answer.stories.d.ts +4 -0
  133. package/dist/types/stories/Templates/foodJar/food-jar.stories.d.ts +4 -0
  134. package/dist/types/stories/Templates/matchBox/matchBox.stories.d.ts +4 -0
  135. package/dist/types/stories/Templates/matchBox/matchBox2.stories.d.ts +4 -0
  136. package/dist/types/stories/Templates/matchingCard/matching-card.stories.d.ts +4 -0
  137. package/dist/types/stories/Templates/multiplyBeeds/multiplyBeeds.stories.d.ts +9 -0
  138. package/dist/types/stories/Templates/nimbleTable/nimbleTable.stories.d.ts +4 -0
  139. package/dist/types/stories/Templates/numberBoardTwo/numberBoardTwo.stories.d.ts +4 -0
  140. package/dist/types/stories/Templates/numberPair/numberPair.stories.d.ts +4 -0
  141. package/dist/types/stories/Templates/questionBoard/questionBoard.stories.d.ts +15 -0
  142. package/dist/types/stories/Templates/sequenceBox/sequenceBox1.stories.d.ts +11 -0
  143. package/dist/types/stories/Templates/sequenceBox/sequenceBox2.stories.d.ts +11 -0
  144. package/dist/types/stories/Templates/shapePair/shape-pair.stories.d.ts +4 -0
  145. package/dist/types/stories/Templates/shapeTractor/shape-tractor.stories.d.ts +12 -0
  146. package/dist/types/stories/Templates/sumTogether/sumTogether.stories.d.ts +11 -0
  147. package/dist/types/stories/Templates/total/total.stories.d.ts +4 -0
  148. package/dist/types/stories/Templates/writeNumber/writeNumber.stories.d.ts +13 -0
  149. package/dist/types/stories/Templates/writeSet/writeSet.stories.d.ts +4 -0
  150. package/dist/types/utils/utils.d.ts +8 -2
  151. package/dist/types/utils/utilsHandlers/dragDropHandler.d.ts +4 -0
  152. package/dist/types/utils/utilsHandlers/lidoBalanceHandler.d.ts +2 -0
  153. package/dist/types/utils/utilsHandlers/lidoCalculatorHandler.d.ts +1 -0
  154. package/dist/types/utils/utilsHandlers/matrixHandler.d.ts +1 -0
  155. package/package.json +1 -1
  156. package/dist/components/p-a8ab771b.js +0 -160
  157. package/dist/lido-player/p-90212aa9.js +0 -9
  158. package/dist/lido-player/p-d3911ee1.entry.js +0 -1
  159. package/dist/lido-player/p-ddf627b0.js +0 -2
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "entries": [
3
3
  "components/avatar/lido-avatar.js",
4
+ "components/calculator/lido-calculator.js",
4
5
  "components/cell/lido-cell.js",
5
6
  "components/column/lido-col.js",
6
7
  "components/container/lido-container.js",
@@ -14,6 +15,7 @@
14
15
  "components/random/lido-random.js",
15
16
  "components/root/lido-root.js",
16
17
  "components/row/lido-row.js",
18
+ "components/scale/lido-balance.js",
17
19
  "components/shape/lido-shape.js",
18
20
  "components/slideFill/lido-slide-fill.js",
19
21
  "components/text/lido-text.js",
@@ -0,0 +1,87 @@
1
+ #lidoCalculator {
2
+ border-radius: 19px;
3
+ border: 5px solid #029A9A;
4
+ position: relative;
5
+ display: flex;
6
+ flex-direction: column;
7
+ padding: 2%;
8
+ box-sizing: border-box;
9
+ }
10
+ .lido-calculator-btn-special{
11
+ background-color:#014D4D !important;
12
+ --btn-shadow-color: #0a2f2f !important;
13
+ }
14
+
15
+ .lido-calculator-btn-default {
16
+ background-color: #029A9A !important;
17
+ color: #000;
18
+ --btn-shadow-color: #0f4242 !important ;
19
+ }
20
+
21
+ #lido-calculator-penIcon {
22
+ --btn-bg-color: #FB7038 !important;
23
+ --btn-shadow-px: 0 8px 0 !important;
24
+ --btn-shadow-color: #D74B12 !important;
25
+ border-radius: 5px !important;
26
+ }
27
+
28
+ .lido-calculator-displayParent{
29
+ width: 89%;
30
+ height: 107px;
31
+ background-color: rgb(68, 186, 186);;
32
+ border-radius: 5px;
33
+ margin: 14px auto 17px auto;
34
+ overflow: hidden;
35
+ display: flex;
36
+ align-items: end;
37
+ }
38
+
39
+ .lido-calculator-display {
40
+ width: 97%;
41
+ height: 94px;
42
+ background: #029A9A;
43
+ color: #fff;
44
+ text-align: right;
45
+ display: flex;
46
+ justify-content: flex-end;
47
+ align-items: center;
48
+ font-size: 72px;
49
+ font-weight: 700;
50
+ font-family: 'Baloo Bhai 2', serif;
51
+ border-radius: 5px 0px 0px 5px;
52
+ box-sizing: border-box;
53
+ margin: 0 0px -6px auto;
54
+ }
55
+
56
+ .lido-calculator-buttons {
57
+ flex: 1;
58
+ display: grid;
59
+ grid-template-columns: repeat(3, 1fr);
60
+ grid-auto-rows: 1fr;
61
+ gap: 0%;
62
+ width: 100%;
63
+ justify-items: center;
64
+ align-items: center;
65
+ position: relative;
66
+ top: -1%;
67
+ }
68
+ .lido-calculator-buttons lido-text {
69
+ display: flex !important;
70
+ justify-content: center;
71
+ align-items: center;
72
+ width: 96px !important;
73
+ height: 80px !important;
74
+ font-size: 72px !important;
75
+ font-weight: 700 !important;
76
+ color: #fff;
77
+ border-radius: 5px !important;
78
+ cursor: pointer;
79
+ text-align: center;
80
+ line-height: 1;
81
+ box-sizing: border-box;
82
+ transition: transform 0.1s;
83
+ }
84
+ .lido-calculator-buttons lido-text:active {
85
+ transform: scale(0.95);
86
+ }
87
+
@@ -0,0 +1,321 @@
1
+ import { h, Host } from "@stencil/core";
2
+ import { executeActions, equationCheck, storingEachActivityScore } from "../../utils/utils";
3
+ import { NextContainerKey } from "../../utils/constants";
4
+ export class LidoCalculator {
5
+ constructor() {
6
+ this.userAnswers = []; // store all calculator inputs
7
+ this.width = '479px';
8
+ this.visible = false;
9
+ this.height = '711px';
10
+ this.objective = '';
11
+ this.onEntry = '';
12
+ this.x = '0px';
13
+ this.y = '0px';
14
+ this.bgColor = '#60DADA';
15
+ this.penIcon = "https://aeakbcdznktpsbrfsgys.supabase.co/storage/v1/object/public/template-assets/calculator/Pen--Streamline-Solar%201.svg";
16
+ this.displayValue = '';
17
+ this.style = {};
18
+ }
19
+ updateValueAttr() {
20
+ this.el.setAttribute('value', this.displayValue);
21
+ }
22
+ componentWillLoad() {
23
+ if (!this.objective) {
24
+ const container = this.el.closest('lido-container');
25
+ if (container) {
26
+ this.objective = (container.getAttribute('objective') || '').replace('=', '').trim();
27
+ }
28
+ }
29
+ this.updateValueAttr();
30
+ }
31
+ handleClick(value) {
32
+ const MAX_LENGTH = 10;
33
+ if (value === 'OK') {
34
+ this.verifyAnswer();
35
+ }
36
+ else if (value === '←') {
37
+ this.displayValue = this.displayValue.slice(0, -1);
38
+ }
39
+ else {
40
+ if (this.displayValue.length < MAX_LENGTH) {
41
+ this.displayValue += value;
42
+ }
43
+ }
44
+ this.updateValueAttr();
45
+ }
46
+ async verifyAnswer() {
47
+ const userInput = this.displayValue.trim();
48
+ if (!userInput)
49
+ return;
50
+ let isCorrect = false;
51
+ const container = this.el.closest('lido-container');
52
+ if (!container)
53
+ return;
54
+ if (this.objective && this.objective.length === 1) {
55
+ isCorrect = userInput === this.objective;
56
+ }
57
+ // --- Multiple Objectives ---
58
+ else if (this.objective && this.objective.includes(',')) {
59
+ const isContinueOnCorrect = container.getAttribute('is-continue-on-correct') === 'true';
60
+ const objectives = this.objective.split(',').map(obj => obj.trim());
61
+ const currentIndex = this.userAnswers.length;
62
+ // Compare current input with corresponding objective
63
+ if (currentIndex < objectives.length && Number(userInput) === Number(objectives[currentIndex])) {
64
+ isCorrect = true;
65
+ }
66
+ else {
67
+ isCorrect = false;
68
+ }
69
+ // Store behavior based on mode
70
+ if (isContinueOnCorrect) {
71
+ // PRACTICE MODE → store only correct answers
72
+ if (isCorrect) {
73
+ this.userAnswers.push(Number(userInput));
74
+ }
75
+ }
76
+ else {
77
+ // TEST MODE → store all user inputs
78
+ this.userAnswers.push(Number(userInput));
79
+ }
80
+ }
81
+ else if (this.objective === '') {
82
+ const equationAttr = container.getAttribute('equationCheck') || '';
83
+ if (!equationAttr)
84
+ return;
85
+ try {
86
+ const calculatedValue = equationCheck(equationAttr);
87
+ isCorrect = Number(calculatedValue) === Number(userInput.trim());
88
+ console.log('Equation check:', calculatedValue, userInput, isCorrect);
89
+ }
90
+ catch (err) {
91
+ console.error('Error evaluating equation:', err);
92
+ isCorrect = false;
93
+ }
94
+ }
95
+ this.onOk.emit(isCorrect);
96
+ if (isCorrect) {
97
+ this.displayValue = "";
98
+ storingEachActivityScore(isCorrect);
99
+ const onCorrect = (container === null || container === void 0 ? void 0 : container.getAttribute('onCorrect')) || '';
100
+ await executeActions(onCorrect, container);
101
+ if (this.objective.length === 0) {
102
+ window.dispatchEvent(new CustomEvent(NextContainerKey));
103
+ }
104
+ }
105
+ else {
106
+ this.displayValue = "";
107
+ storingEachActivityScore(isCorrect);
108
+ const onInCorrect = (container === null || container === void 0 ? void 0 : container.getAttribute('onInCorrect')) || '';
109
+ await executeActions(onInCorrect, container);
110
+ }
111
+ }
112
+ render() {
113
+ const numbers = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '←', '0', 'OK'];
114
+ return (h(Host, { key: '61d14ce0ff858db8ff04b502c0d303f18f5552b8', onEntry: this.onEntry, id: "lidoCalculator", style: { width: this.width, height: this.height, backgroundColor: this.bgColor, left: this.x, top: this.y } }, h("lido-cell", { key: '86318d0fb2a707af14fca1b1a615536e7bcdb9a3', visible: "true", height: "94px", width: "60px" }, h("lido-text", { key: 'd552cf17bedcbb321af0c7fb5fc0b44c89be4561', visible: "true", id: "lido-calculator-penIcon", type: "click", height: "80px", x: "176%", width: "96px", onEntry: "this.position='relative';", class: "top-icon" }, h("img", { key: '46f9003a72906617169fb76b19a208e6f6cbb0bc', src: this.penIcon, alt: "pen", style: { width: '100%', height: '100%' } }))), h("div", { key: 'a7ffc6dbdaabfa944e115eeecf08cc53808c0234', class: "lido-calculator-displayParent" }, h("div", { key: '27926d1370cbdd4423404ad1f78b1ade381288d9', class: "lido-calculator-display" }, this.displayValue)), h("div", { key: '58288a987ea3090da498fff03220d4d4b24aa7c5', class: "lido-calculator-buttons" }, numbers.map((num, i) => (h("lido-text", { id: `btn-${i}`, string: num, visible: "true", type: "click", class: {
115
+ 'lido-calculator-btn-special': num === '←' || num === 'OK',
116
+ 'lido-calculator-btn-default': num !== '←' && num !== 'OK'
117
+ }, onClick: () => this.handleClick(num) }))))));
118
+ }
119
+ static get is() { return "lido-calculator"; }
120
+ static get originalStyleUrls() {
121
+ return {
122
+ "$": ["lido-calculator.css"]
123
+ };
124
+ }
125
+ static get styleUrls() {
126
+ return {
127
+ "$": ["lido-calculator.css"]
128
+ };
129
+ }
130
+ static get properties() {
131
+ return {
132
+ "width": {
133
+ "type": "string",
134
+ "mutable": false,
135
+ "complexType": {
136
+ "original": "string",
137
+ "resolved": "string",
138
+ "references": {}
139
+ },
140
+ "required": false,
141
+ "optional": false,
142
+ "docs": {
143
+ "tags": [],
144
+ "text": "Width of the calculator component (default: '479px')"
145
+ },
146
+ "attribute": "width",
147
+ "reflect": false,
148
+ "defaultValue": "'479px'"
149
+ },
150
+ "visible": {
151
+ "type": "any",
152
+ "mutable": false,
153
+ "complexType": {
154
+ "original": "boolean | string",
155
+ "resolved": "boolean | string",
156
+ "references": {}
157
+ },
158
+ "required": false,
159
+ "optional": false,
160
+ "docs": {
161
+ "tags": [],
162
+ "text": "Controls component visibility.\nAccepts boolean (`true`/`false`) or string (\"true\"/\"false\")."
163
+ },
164
+ "attribute": "visible",
165
+ "reflect": false,
166
+ "defaultValue": "false"
167
+ },
168
+ "height": {
169
+ "type": "string",
170
+ "mutable": false,
171
+ "complexType": {
172
+ "original": "string",
173
+ "resolved": "string",
174
+ "references": {}
175
+ },
176
+ "required": false,
177
+ "optional": false,
178
+ "docs": {
179
+ "tags": [],
180
+ "text": "Height of the calculator component (default: '711px')"
181
+ },
182
+ "attribute": "height",
183
+ "reflect": false,
184
+ "defaultValue": "'711px'"
185
+ },
186
+ "objective": {
187
+ "type": "string",
188
+ "mutable": false,
189
+ "complexType": {
190
+ "original": "string",
191
+ "resolved": "string",
192
+ "references": {}
193
+ },
194
+ "required": false,
195
+ "optional": false,
196
+ "docs": {
197
+ "tags": [],
198
+ "text": "Objective or identifier for activity-based logic or validation"
199
+ },
200
+ "attribute": "objective",
201
+ "reflect": false,
202
+ "defaultValue": "''"
203
+ },
204
+ "onEntry": {
205
+ "type": "string",
206
+ "mutable": false,
207
+ "complexType": {
208
+ "original": "string",
209
+ "resolved": "string",
210
+ "references": {}
211
+ },
212
+ "required": false,
213
+ "optional": false,
214
+ "docs": {
215
+ "tags": [],
216
+ "text": "Code or actions to execute when the component is first rendered"
217
+ },
218
+ "attribute": "on-entry",
219
+ "reflect": false,
220
+ "defaultValue": "''"
221
+ },
222
+ "x": {
223
+ "type": "string",
224
+ "mutable": false,
225
+ "complexType": {
226
+ "original": "string",
227
+ "resolved": "string",
228
+ "references": {}
229
+ },
230
+ "required": false,
231
+ "optional": false,
232
+ "docs": {
233
+ "tags": [],
234
+ "text": "X-position of the calculator (can be px, %, etc.)"
235
+ },
236
+ "attribute": "x",
237
+ "reflect": false,
238
+ "defaultValue": "'0px'"
239
+ },
240
+ "y": {
241
+ "type": "string",
242
+ "mutable": false,
243
+ "complexType": {
244
+ "original": "string",
245
+ "resolved": "string",
246
+ "references": {}
247
+ },
248
+ "required": false,
249
+ "optional": false,
250
+ "docs": {
251
+ "tags": [],
252
+ "text": "Y-position of the calculator (can be px, %, etc.)"
253
+ },
254
+ "attribute": "y",
255
+ "reflect": false,
256
+ "defaultValue": "'0px'"
257
+ },
258
+ "bgColor": {
259
+ "type": "string",
260
+ "mutable": false,
261
+ "complexType": {
262
+ "original": "string",
263
+ "resolved": "string",
264
+ "references": {}
265
+ },
266
+ "required": false,
267
+ "optional": false,
268
+ "docs": {
269
+ "tags": [],
270
+ "text": "Background color for the calculator container"
271
+ },
272
+ "attribute": "bg-color",
273
+ "reflect": false,
274
+ "defaultValue": "'#60DADA'"
275
+ },
276
+ "penIcon": {
277
+ "type": "string",
278
+ "mutable": false,
279
+ "complexType": {
280
+ "original": "string",
281
+ "resolved": "string",
282
+ "references": {}
283
+ },
284
+ "required": false,
285
+ "optional": false,
286
+ "docs": {
287
+ "tags": [],
288
+ "text": "Icon URL for the pen image shown on the calculator UI"
289
+ },
290
+ "attribute": "pen-icon",
291
+ "reflect": false,
292
+ "defaultValue": "\"https://aeakbcdznktpsbrfsgys.supabase.co/storage/v1/object/public/template-assets/calculator/Pen--Streamline-Solar%201.svg\""
293
+ }
294
+ };
295
+ }
296
+ static get states() {
297
+ return {
298
+ "displayValue": {},
299
+ "style": {}
300
+ };
301
+ }
302
+ static get events() {
303
+ return [{
304
+ "method": "onOk",
305
+ "name": "onOk",
306
+ "bubbles": true,
307
+ "cancelable": true,
308
+ "composed": true,
309
+ "docs": {
310
+ "tags": [],
311
+ "text": "Event emitted when user confirms or completes an action (e.g., pressing OK)"
312
+ },
313
+ "complexType": {
314
+ "original": "boolean",
315
+ "resolved": "boolean",
316
+ "references": {}
317
+ }
318
+ }];
319
+ }
320
+ static get elementRef() { return "el"; }
321
+ }
@@ -131,7 +131,7 @@ export class LidoCell {
131
131
  this.el.className = `lido-${parseProp(this.layout, orientation)}`;
132
132
  }
133
133
  render() {
134
- return (h(Host, { key: '8c2593f5b6493530e0ab725b7f9f543f884d086d', 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 }, h("slot", { key: '1497f2f179a474a4a2a8944d03c0841d055b1b6d' })));
134
+ return (h(Host, { key: '00183a8d67c4c64eae2d2bb2e3db5def7ffe3caf', 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 }, h("slot", { key: '33fbb691c5c8f015bc9c6cf1e86c237758f126c3' })));
135
135
  }
136
136
  static get is() { return "lido-cell"; }
137
137
  static get originalStyleUrls() {
@@ -84,7 +84,7 @@ export class LidoCol {
84
84
  };
85
85
  }
86
86
  render() {
87
- return (h(Host, { key: '753487ca4817b020aaf7e34dadff00a61c826dfc', id: this.id, class: "lido-col", type: this.type, "tab-index": this.tabIndex, value: this.value, style: this.style, minDrops: this.minDrops, maxDrops: this.maxDrops, "aria-label": this.ariaLabel, "aria-hidden": this.ariaHidden, audio: this.audio, onTouch: this.onTouch, onCorrect: this.onCorrect, onInCorrect: this.onInCorrect, onEntry: this.onEntry }, h("slot", { key: 'a9d9f0f2c30dc02e6468e597b5a02e032d786538' })));
87
+ return (h(Host, { key: '1cf21bb1e817c9078213312aa7165423eaf54ea7', id: this.id, class: "lido-col", type: this.type, "tab-index": this.tabIndex, value: this.value, style: this.style, minDrops: this.minDrops, maxDrops: this.maxDrops, "aria-label": this.ariaLabel, "aria-hidden": this.ariaHidden, audio: this.audio, onTouch: this.onTouch, onCorrect: this.onCorrect, onInCorrect: this.onInCorrect, onEntry: this.onEntry }, h("slot", { key: 'c3bc168ccccacf1425b5d93853bc27ab2962436f' })));
88
88
  }
89
89
  static get is() { return "lido-col"; }
90
90
  static get originalStyleUrls() {
@@ -45,6 +45,7 @@ export class LidoContainer {
45
45
  this.showPrevButton = 'false';
46
46
  this.showNextButton = 'false';
47
47
  this.delayVisible = '';
48
+ this.disableSpeak = false;
48
49
  }
49
50
  convertToPixels(height, parentElement = document.body) {
50
51
  if (!height)
@@ -127,7 +128,7 @@ export class LidoContainer {
127
128
  userSelect: 'none', // Prevent any field selection
128
129
  };
129
130
  console.log('🚀 ~ LidoContainer ~ canplay:', this.canplay);
130
- return (h(Host, { key: '782cc0c88592899d58f942245db8e0561714d35c', id: "lido-container", "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 }, h("slot", { key: 'e23be1cba95353ad3678c2d1d41b4d23ae76f2d9' })));
131
+ return (h(Host, { key: '1f61c4443b96466e2802b5550e8d999319b41ce7', id: "lido-container", "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 }, h("slot", { key: '2df61e731d3a9de3fd9cdb23f47035ee2e35c30a' })));
131
132
  }
132
133
  static get is() { return "lido-container"; }
133
134
  static get originalStyleUrls() {
@@ -785,6 +786,24 @@ export class LidoContainer {
785
786
  "attribute": "delay-visible",
786
787
  "reflect": false,
787
788
  "defaultValue": "''"
789
+ },
790
+ "disableSpeak": {
791
+ "type": "boolean",
792
+ "mutable": false,
793
+ "complexType": {
794
+ "original": "boolean",
795
+ "resolved": "boolean",
796
+ "references": {}
797
+ },
798
+ "required": false,
799
+ "optional": false,
800
+ "docs": {
801
+ "tags": [],
802
+ "text": "When set to true, disables the speak functionality of long press for this component and its children."
803
+ },
804
+ "attribute": "disable-speak",
805
+ "reflect": false,
806
+ "defaultValue": "false"
788
807
  }
789
808
  };
790
809
  }
@@ -76,7 +76,7 @@ export class LidoFlash {
76
76
  }
77
77
  /* ---------- Render ---------- */
78
78
  render() {
79
- return (h(Host, { key: 'e0140af2e33c8cdc9d5c94743bcd83b98d0ce2f4', value: this.value, "tab-index": this.tabIndex, style: this.style, "aria-label": this.ariaLabel, "aria-hidden": this.ariaHidden, audio: this.audio, onTouch: this.onTouch, onCorrect: this.onCorrect, onInCorrect: this.onInCorrect, onEntry: this.onEntry, type: this.type, onClick: this.handleFlip, "disable-speak": this.disableSpeak }, h("div", { key: '11b7e0be1957e15ac5644b73b4ffbd00a27a93ff', class: `card ${this.flipped ? 'flipped' : ''}` }, h("div", { key: 'acd9ae1eb8b1d6ac2658dbdcb26d9d7f6549811c', class: "card-face card-front" }, this.front != null ? this.front : h("slot", { name: "front" })), h("div", { key: 'd62cbfdd84fcc6596aefe6d8d55f7e5ffeaaa5f2', class: "card-face card-back" }, this.back != null ? this.back : h("slot", { name: "back" })))));
79
+ return (h(Host, { key: 'df221d302a1e91eb995af2f70aa69957cb769ffe', value: this.value, "tab-index": this.tabIndex, style: this.style, "aria-label": this.ariaLabel, "aria-hidden": this.ariaHidden, audio: this.audio, onTouch: this.onTouch, onCorrect: this.onCorrect, onInCorrect: this.onInCorrect, onEntry: this.onEntry, type: this.type, onClick: this.handleFlip, "disable-speak": this.disableSpeak }, h("div", { key: 'd799a3525d9af4ba98d7750a3a76a313dd9cdd76', class: `card ${this.flipped ? 'flipped' : ''}` }, h("div", { key: 'fb7734ca5648e2cf8a91d551b383a5c2c3eae255', class: "card-face card-front" }, this.front != null ? this.front : h("slot", { name: "front" })), h("div", { key: '6071da403b17a079f80f0c5dd576dac7b5a2c357', class: "card-face card-back" }, this.back != null ? this.back : h("slot", { name: "back" })))));
80
80
  }
81
81
  static get is() { return "lido-flash-card"; }
82
82
  static get originalStyleUrls() {
@@ -57,7 +57,7 @@ export class LidoFloat {
57
57
  };
58
58
  }
59
59
  render() {
60
- return (h(Host, { key: '2866d98e4a22a5825c24f23324473016c5e8c33f', class: "lido-float", "float-direction": this.floatDirection, id: this.id, "tab-index": this.tabIndex, style: this.style, onEntry: this.onEntry }, h("slot", { key: 'dd0a4405b91e1ddb95e90d6dfa1e16f8ac106c58' })));
60
+ return (h(Host, { key: 'b4c271689b52272251d5623e53b67ef78389c012', class: "lido-float", "float-direction": this.floatDirection, id: this.id, "tab-index": this.tabIndex, style: this.style, onEntry: this.onEntry }, h("slot", { key: '852149328b2a8e85e84fdf9e2a4a64bb2ec8ad3a' })));
61
61
  }
62
62
  static get is() { return "lido-float"; }
63
63
  static get originalStyleUrls() {
@@ -1,7 +1,7 @@
1
1
  import { h, Host } from "@stencil/core";
2
- import { SelectedValuesKey, NextContainerKey, PrevContainerKey, LidoContainer, exitUrl, prevUrl, nextUrl, speakUrl, ActivityScoreKey, } from "../../utils/constants";
2
+ import { NextContainerKey, PrevContainerKey, LidoContainer, exitUrl, prevUrl, nextUrl, speakUrl, ActivityScoreKey, } from "../../utils/constants";
3
3
  import { dispatchActivityChangeEvent, dispatchGameCompletedEvent, dispatchGameExitEvent } from "../../utils/customEvents";
4
- import { clearLocalStorage, calculateScale, getCancelBtnPopup, setCancelBtnPopup, executeActions, triggerPrevcontainer, convertUrlToRelative, triggerNextContainer, matchStringPattern } from "../../utils/utils";
4
+ import { calculateScale, getCancelBtnPopup, setCancelBtnPopup, executeActions, triggerPrevcontainer, convertUrlToRelative } from "../../utils/utils";
5
5
  import { AudioPlayer } from "../../utils/audioPlayer";
6
6
  import { generateUUIDFallback } from "../../utils/utils";
7
7
  /**
@@ -26,7 +26,7 @@ export class LidoHome {
26
26
  if (index != undefined && index == this.currentContainerIndex)
27
27
  return;
28
28
  // Clear selected values from localStorage on container transition
29
- clearLocalStorage();
29
+ // clearmemoryStorage();
30
30
  if (index != undefined && index < this.containers.length) {
31
31
  // Move to the next container
32
32
  this.currentContainerIndex = index;
@@ -56,7 +56,7 @@ export class LidoHome {
56
56
  if (this.currentContainerIndex <= 0)
57
57
  return;
58
58
  // Clear selected values from localStorage on container transition
59
- clearLocalStorage();
59
+ // clearmemoryStorage();
60
60
  // Move to the previous container
61
61
  this.currentContainerIndex--;
62
62
  // Dispatch event to update the UI or state
@@ -98,7 +98,7 @@ export class LidoHome {
98
98
  dispatchGameExitEvent();
99
99
  AudioPlayer.getI().stop();
100
100
  localStorage.removeItem(ActivityScoreKey);
101
- clearLocalStorage();
101
+ // clearmemoryStorage();
102
102
  alertElement.remove();
103
103
  this.currentContainerIndex = 0;
104
104
  }
@@ -137,7 +137,7 @@ export class LidoHome {
137
137
  };
138
138
  if (this.currentContainerIndex === 0) {
139
139
  localStorage.removeItem(ActivityScoreKey);
140
- clearLocalStorage();
140
+ // clearmemoryStorage();
141
141
  }
142
142
  // Listen for 'NextContainerKey' event to transition between containers
143
143
  window.addEventListener(NextContainerKey, () => {
@@ -155,7 +155,7 @@ export class LidoHome {
155
155
  window.addEventListener('beforeunload', () => {
156
156
  AudioPlayer.getI().stop();
157
157
  localStorage.removeItem(ActivityScoreKey);
158
- clearLocalStorage();
158
+ // clearmemoryStorage();
159
159
  });
160
160
  }
161
161
  componentDidLoad() {
@@ -298,6 +298,8 @@ export class LidoHome {
298
298
  'lido-float': h("lido-float", Object.assign({}, props), children),
299
299
  'lido-keyboard': h("lido-keyboard", Object.assign({}, props), children),
300
300
  'lido-math-matrix': h("lido-math-matrix", Object.assign({}, props), children),
301
+ 'lido-balance': h("lido-balance", Object.assign({}, props), children),
302
+ 'lido-calculator': h("lido-calculator", Object.assign({}, props), children),
301
303
  };
302
304
  // If the tag is known, return the corresponding Stencil component, otherwise log a warning
303
305
  if (componentMapping[tagName]) {
@@ -321,16 +323,6 @@ export class LidoHome {
321
323
  });
322
324
  this.containers = containers;
323
325
  }
324
- areAllDropsFilled() {
325
- const drops = Array.from(document.querySelectorAll('[type="drop"]'));
326
- const drags = Array.from(document.querySelectorAll('[type="drag"]')).filter(drag => drag.getAttribute('drop-to'));
327
- console.log('drops', drops);
328
- console.log('drags', drags);
329
- return drops.every(drop => {
330
- const dropId = drop.id;
331
- return drags.some(drag => drag.getAttribute('drop-to') === dropId);
332
- });
333
- }
334
326
  async btnpopup() {
335
327
  setCancelBtnPopup(false);
336
328
  await AudioPlayer.getI().stop();
@@ -350,18 +342,6 @@ export class LidoHome {
350
342
  await new Promise(resolve => setTimeout(resolve, 300));
351
343
  }
352
344
  }
353
- if (this.areAllDropsFilled()) {
354
- const objectiveString = container['objective'];
355
- const objectiveArray = JSON.parse(localStorage.getItem(SelectedValuesKey) || '[]');
356
- const res = matchStringPattern(objectiveString, objectiveArray);
357
- console.log('Resultt', res);
358
- if (res) {
359
- triggerNextContainer();
360
- }
361
- }
362
- else {
363
- console.log('Not yet filled ');
364
- }
365
345
  }
366
346
  scaleNavbarContainer() {
367
347
  setTimeout(() => {
@@ -115,10 +115,10 @@ export class LidoKeyboard {
115
115
  const keysArray = this.keys.split(',').map(k => k.trim());
116
116
  const container = document.getElementById(LidoContainer);
117
117
  const showCheck = container.getAttribute('show-check') === 'true';
118
- return (h(Host, { key: 'b01d3c5bab495def25c14239a3c94e9f6af15b4f', class: "lido-keyboard", style: { width: this.style.width, height: this.style.height, position: 'relative', margin: this.style.margin, zIndex: this.z } }, this.keyboardInput && (h("div", { key: '1e475df899a9e8cead3d4ee313d6e0b09a1e766f', class: "input-area" }, h("input", { key: '1d27787a42dc81ba97d5045718d726683bf8f32a', type: "text", value: this.inputString, class: "input-area", readonly: true, onInput: (e) => (this.inputString = e.target.value) }), h("lido-text", { key: '5695c9662b22bd7c3d7c7dfc49481641e795b290', visible: showCheck ? 'true' : 'false', string: "<<", "bg-color": "black", "font-color": "white", "border-radius": "20px", "font-size": "30px", width: "100px", height: "70px", type: "click", onClick: () => {
118
+ return (h(Host, { key: 'e4cd1fc51d8d3c87ed011120f13454bbef1883b3', class: "lido-keyboard", style: { width: this.style.width, height: this.style.height, position: 'relative', margin: this.style.margin, zIndex: this.z } }, this.keyboardInput && (h("div", { key: '114224c18345951e749db6f1eba242cc1179431f', class: "input-area" }, h("input", { key: '14741df7dc29f51420c1164ddebf60fd464fade4', type: "text", value: this.inputString, class: "input-area", readonly: true, onInput: (e) => (this.inputString = e.target.value) }), h("lido-text", { key: '3bb801fbcab03b58a628c4c365f46113e9829fdc', visible: showCheck ? 'true' : 'false', string: "<<", "bg-color": "black", "font-color": "white", "border-radius": "20px", "font-size": "30px", width: "100px", height: "70px", type: "click", onClick: () => {
119
119
  this.inputString = this.inputString.slice(0, -1);
120
120
  this.inputValidation(event);
121
- } }), h("lido-text", { key: 'd1a786e8f4015c7aeaeffe7a677f1f7e106b3691', 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 && (h("lido-text", { key: 'bdd01380b832949bf2abbe4481ac000c1f3a358f', 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" })), h("div", { key: 'd54959bfe639803c7e048d5112514a7dccbf9dc4', class: "keyboard-wrapper", style: {
121
+ } }), h("lido-text", { key: '46212bcfe4e5c22744d13d8235d82bdb73bce802', 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 && (h("lido-text", { key: 'a886ac1d7ceadda37eadd4bed59bd5096d46619f', 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" })), h("div", { key: '5238d1dc1bafda2ffab63932d1f5d29ef449bf4b', class: "keyboard-wrapper", style: {
122
122
  display: 'flex',
123
123
  flexWrap: 'wrap',
124
124
  justifyContent: 'center',