@gamelearn/arcade-components 1.16.1 → 1.17.0

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.
@@ -15,6 +15,8 @@ var _useEkho = _interopRequireDefault(require("../../../helpers/useEkho"));
15
15
 
16
16
  var _Slide = _interopRequireDefault(require("./Slide"));
17
17
 
18
+ var _LangIsRtl = _interopRequireDefault(require("../../../helpers/LangIsRtl"));
19
+
18
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
21
 
20
22
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -131,6 +133,7 @@ var ComicComponent = function ComicComponent(_ref) {
131
133
  }, [automatic, goToNextSlide, slideCount, slides, start, stop]);
132
134
  if (!(slides !== null && slides !== void 0 && slides.length)) return null;
133
135
  return /*#__PURE__*/_react.default.createElement("div", {
136
+ dir: (0, _LangIsRtl.default)() ? 'rtl' : 'auto',
134
137
  className: "comic component growIn-animation"
135
138
  }, /*#__PURE__*/_react.default.createElement("div", {
136
139
  className: "comic--slider"
@@ -146,14 +149,14 @@ var ComicComponent = function ComicComponent(_ref) {
146
149
  onClick: handleManualBack,
147
150
  "data-testid": "btn-bck"
148
151
  }, /*#__PURE__*/_react.default.createElement("span", {
149
- className: "icon-back"
152
+ className: (0, _LangIsRtl.default)() ? 'icon-next' : 'icon-back'
150
153
  })), slideCount + 1 < slides.length && /*#__PURE__*/_react.default.createElement("button", {
151
154
  type: "button",
152
155
  className: "comic-control comic-control--right gat--btn__round",
153
156
  "data-testid": "btn-nxt",
154
157
  onClick: handleManualNext
155
158
  }, /*#__PURE__*/_react.default.createElement("span", {
156
- className: "icon-next"
159
+ className: (0, _LangIsRtl.default)() ? 'icon-back' : 'icon-next'
157
160
  })), slideCount + 1 >= slides.length && /*#__PURE__*/_react.default.createElement("div", {
158
161
  className: "position--absolute top right"
159
162
  }, /*#__PURE__*/_react.default.createElement("button", {
@@ -19,6 +19,8 @@ var _useEkho = _interopRequireDefault(require("../../../helpers/useEkho"));
19
19
 
20
20
  var _useTimeout2 = _interopRequireDefault(require("../../../helpers/useTimeout"));
21
21
 
22
+ var _LangIsRtl = _interopRequireDefault(require("../../../helpers/LangIsRtl"));
23
+
22
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
25
 
24
26
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -332,7 +334,8 @@ var ConversationProViewer = function ConversationProViewer(_ref) {
332
334
  backgroundImage: "url(\"".concat(backgroundImage, "\")")
333
335
  } : null
334
336
  }, /*#__PURE__*/_react.default.createElement(_SlotList.default, listProps), /*#__PURE__*/_react.default.createElement("div", {
335
- className: "conversation--body"
337
+ className: "conversation--body",
338
+ dir: "auto"
336
339
  }, currentMessage ? /*#__PURE__*/_react.default.createElement(_Message.default, {
337
340
  current: currentMessage,
338
341
  translate: translate
@@ -344,13 +347,13 @@ var ConversationProViewer = function ConversationProViewer(_ref) {
344
347
  type: "button",
345
348
  onClick: manualClickBack
346
349
  }, /*#__PURE__*/_react.default.createElement("span", {
347
- className: "icon-back"
350
+ className: (0, _LangIsRtl.default)() ? 'icon-next' : 'icon-back'
348
351
  })), /*#__PURE__*/_react.default.createElement("button", {
349
352
  className: "gat--btn__round",
350
353
  type: "button",
351
354
  onClick: manualClickNext
352
355
  }, /*#__PURE__*/_react.default.createElement("span", {
353
- className: "icon-next"
356
+ className: (0, _LangIsRtl.default)() ? 'icon-back' : 'icon-next'
354
357
  }))))));
355
358
  };
356
359
 
@@ -11,6 +11,8 @@ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _Options = _interopRequireDefault(require("./Options"));
13
13
 
14
+ var _LangIsRtl = _interopRequireDefault(require("../../../helpers/LangIsRtl"));
15
+
14
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
17
 
16
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -82,7 +84,8 @@ var DecisionBody = function DecisionBody(_ref) {
82
84
  }, question)) : /*#__PURE__*/_react.default.createElement("span", {
83
85
  className: "popup--info__title"
84
86
  }, question)), /*#__PURE__*/_react.default.createElement("div", {
85
- className: "popup__questions"
87
+ className: "popup__questions",
88
+ dir: "auto"
86
89
  }, /*#__PURE__*/_react.default.createElement(_Options.default, optionsProps)), /*#__PURE__*/_react.default.createElement("div", {
87
90
  className: "popup--buttons"
88
91
  }, required ? /*#__PURE__*/_react.default.createElement("button", {
@@ -102,6 +105,7 @@ var DecisionBody = function DecisionBody(_ref) {
102
105
 
103
106
  var ComplexDecision = function ComplexDecision() {
104
107
  return /*#__PURE__*/_react.default.createElement("div", {
108
+ dir: "auto",
105
109
  className: "conversation--body ".concat(inScene ? 'conversation--body--inScene' : '')
106
110
  }, /*#__PURE__*/_react.default.createElement("div", {
107
111
  className: "conversation--message"
@@ -113,7 +117,7 @@ var DecisionBody = function DecisionBody(_ref) {
113
117
  className: "gat--btn__round disabled",
114
118
  type: "button"
115
119
  }, /*#__PURE__*/_react.default.createElement("span", {
116
- className: "icon-back"
120
+ className: (0, _LangIsRtl.default)() ? 'icon-next' : 'icon-back'
117
121
  })), /*#__PURE__*/_react.default.createElement("button", {
118
122
  className: "gat--btn__round ".concat(canNext ? '' : 'disabled'),
119
123
  type: "button",
@@ -121,7 +125,7 @@ var DecisionBody = function DecisionBody(_ref) {
121
125
  return canNext && onNext(selectedChoice);
122
126
  }
123
127
  }, /*#__PURE__*/_react.default.createElement("span", {
124
- className: "icon-next"
128
+ className: (0, _LangIsRtl.default)() ? 'icon-back' : 'icon-next'
125
129
  }))));
126
130
  };
127
131
 
@@ -35,7 +35,8 @@ var FeedBack = function FeedBack(_ref) {
35
35
  return /*#__PURE__*/_react.default.createElement(Wrapper, null, choice.feedback ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
36
36
  className: "conversation--feedback__title"
37
37
  }, "Feedback"), /*#__PURE__*/_react.default.createElement("div", {
38
- className: "conversation--feedback__text"
38
+ className: "conversation--feedback__text",
39
+ dir: "auto"
39
40
  }, choice.right ? /*#__PURE__*/_react.default.createElement("span", {
40
41
  className: "icon-check-circle-black color--success"
41
42
  }) : /*#__PURE__*/_react.default.createElement("span", {
@@ -29,6 +29,8 @@ var _useTimeout2 = _interopRequireDefault(require("../../../helpers/useTimeout")
29
29
 
30
30
  var _useEkho = _interopRequireDefault(require("../../../helpers/useEkho"));
31
31
 
32
+ var _LangIsRtl = _interopRequireDefault(require("../../../helpers/LangIsRtl"));
33
+
32
34
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
35
 
34
36
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -622,6 +624,7 @@ var DialogComponent = function DialogComponent(_ref) {
622
624
  return [0, 0];
623
625
  }
624
626
  }, /*#__PURE__*/_react.default.createElement("div", {
627
+ dir: (0, _LangIsRtl.default)() ? 'rtl' : 'ltr',
625
628
  className: "dialog-component-controls"
626
629
  }, /*#__PURE__*/_react.default.createElement("button", {
627
630
  disabled: line <= 0 || (lastLine === null || lastLine === void 0 ? void 0 : lastLine.decision) || isBranched,
@@ -629,13 +632,13 @@ var DialogComponent = function DialogComponent(_ref) {
629
632
  onClick: manualBackLine,
630
633
  className: "gat--btn__round ".concat(line <= 0 || lastLine !== null && lastLine !== void 0 && lastLine.decision || isBranched ? 'disabled' : '')
631
634
  }, /*#__PURE__*/_react.default.createElement("span", {
632
- className: "icon-back"
635
+ className: (0, _LangIsRtl.default)() ? 'icon-next' : 'icon-back'
633
636
  })), /*#__PURE__*/_react.default.createElement("button", {
634
637
  className: "gat--btn__round",
635
638
  type: "button",
636
639
  onClick: manualNextLine
637
640
  }, /*#__PURE__*/_react.default.createElement("span", {
638
- className: "icon-next"
641
+ className: (0, _LangIsRtl.default)() ? 'icon-back' : 'icon-next'
639
642
  })))) : null);
640
643
  };
641
644
 
@@ -28,6 +28,7 @@ var SpeechBubbleComponent = /*#__PURE__*/_react.default.forwardRef(function (_re
28
28
  };
29
29
 
30
30
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
31
+ dir: "auto",
31
32
  ref: ref,
32
33
  className: "\n speech-bubble\n ".concat(message.left && message.inScene ? 'speech-bubble--arrow-left' : '', "\n ").concat(!message.left && message.inScene ? 'speech-bubble--arrow-right' : '', "\n ").concat(message.top && message.inScene ? 'arrow-top' : '', "\n ").concat(message.thinkful || message.voiceOver ? 'speech-bubble--italic' : '', "\n ")
33
34
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -20,6 +20,7 @@ var Tooltip = function Tooltip(_ref) {
20
20
  };
21
21
 
22
22
  return /*#__PURE__*/_react.default.createElement("div", {
23
+ dir: "auto",
23
24
  className: "puzzle-frame__info--tooltip"
24
25
  }, translate('puzzles.counterTooltip'));
25
26
  };
@@ -164,9 +164,10 @@ var HangedPuzzleComponent = function HangedPuzzleComponent(_ref4) {
164
164
  };
165
165
  });
166
166
  var extraPool = [];
167
+ var analysis = (0, _utils.analyzeChars)(answerPanel);
167
168
 
168
169
  while (extraPool.length < MAX_EXTRA_LETTERS) {
169
- var char = (0, _utils.makeChar)();
170
+ var char = (0, _utils.makeChar)(analysis);
170
171
  extraPool = [].concat(_toConsumableArray(extraPool), [{
171
172
  char: char
172
173
  }]);
@@ -3,11 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.sortChar = exports.restrictCharacters = exports.makeChar = void 0;
7
-
8
- var _LangIsRtl = _interopRequireDefault(require("../../helpers/LangIsRtl"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
+ exports.sortChar = exports.restrictCharacters = exports.makeChar = exports.analyzeChars = void 0;
7
+ var ARABIC = /[\u0600-\u06FF]/;
11
8
 
12
9
  var restrictCharacters = function restrictCharacters(char, operator) {
13
10
  var restrictedChar = false;
@@ -39,10 +36,49 @@ var sortChar = function sortChar(a, b) {
39
36
 
40
37
  exports.sortChar = sortChar;
41
38
 
42
- var makeChar = function makeChar() {
43
- var characters = (0, _LangIsRtl.default)() ? 'شزذيثبلاهتنمورخحضثقسفعدصطغظ' : 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
44
- var charactersLength = characters.length;
45
- return characters.charAt(Math.floor(Math.random() * charactersLength));
39
+ var analyzeChars = function analyzeChars(letters) {
40
+ var result = {
41
+ anyArabic: false,
42
+ anyNumber: false,
43
+ anyWestern: false
44
+ };
45
+
46
+ for (var i = 0; i < letters.length; i += 1) {
47
+ var ascii = letters[i].charCodeAt(0);
48
+
49
+ if (ascii >= 65 && ascii <= 90) {
50
+ result.anyWestern = true;
51
+ } else if (ascii >= 48 && ascii <= 57) {
52
+ result.anyNumber = true;
53
+ } else if (ARABIC.test(letters[i])) {
54
+ result.anyArabic = true;
55
+ }
56
+ }
57
+
58
+ return result;
59
+ };
60
+
61
+ exports.analyzeChars = analyzeChars;
62
+
63
+ var makeChar = function makeChar(analysis) {
64
+ var arabic = 'شزذيثبلاهتنمورخحضثقسفعدصطغظ';
65
+ var western = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
66
+ var numbers = '0123456789';
67
+ var characters = '';
68
+
69
+ if (analysis.anyWestern) {
70
+ characters += western;
71
+ }
72
+
73
+ if (analysis.anyNumber) {
74
+ characters += numbers;
75
+ }
76
+
77
+ if (analysis.anyArabic) {
78
+ characters += arabic;
79
+ }
80
+
81
+ return characters.charAt(Math.floor(Math.random() * characters.length));
46
82
  };
47
83
 
48
84
  exports.makeChar = makeChar;
@@ -70,7 +70,8 @@ var InventoryItem = function InventoryItem(_ref) {
70
70
  };
71
71
 
72
72
  return /*#__PURE__*/_react.default.createElement("div", {
73
- className: "inventory--layer__info"
73
+ className: "inventory--layer__info",
74
+ dir: "auto"
74
75
  }, /*#__PURE__*/_react.default.createElement("div", {
75
76
  className: "inventory--layer__info--popup fadeIn--animation"
76
77
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -124,7 +124,8 @@ var LecturesComponent = function LecturesComponent(_ref) {
124
124
  }, /*#__PURE__*/_react.default.createElement("div", {
125
125
  className: "readings--title"
126
126
  }, name), /*#__PURE__*/_react.default.createElement("div", {
127
- className: "readings--text"
127
+ className: "readings--text",
128
+ dir: "auto"
128
129
  }, currentLecture ? (0, _htmlReactParser.default)(currentLecture) : null), !viewed ? /*#__PURE__*/_react.default.createElement(_LectureButtons.default, {
129
130
  goToLecture: goToLecture,
130
131
  close: close,
@@ -13,6 +13,10 @@ var _reactPdf = require("react-pdf");
13
13
 
14
14
  var _deviceDetection = require("../../../helpers/deviceDetection");
15
15
 
16
+ var _LangIsRtl = _interopRequireDefault(require("../../../helpers/LangIsRtl"));
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
16
20
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
21
 
18
22
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -161,7 +165,8 @@ var PdfVisor = function PdfVisor(_ref) {
161
165
  };
162
166
 
163
167
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
164
- className: "pdf-box"
168
+ className: "pdf-box",
169
+ dir: (0, _LangIsRtl.default)() ? 'rtl' : 'auto'
165
170
  }, /*#__PURE__*/_react.default.createElement("div", {
166
171
  className: "pdf-box__scrollwrap"
167
172
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -184,7 +189,7 @@ var PdfVisor = function PdfVisor(_ref) {
184
189
  return turnPage(-1);
185
190
  }
186
191
  }, /*#__PURE__*/_react.default.createElement("span", {
187
- className: "icon-back"
192
+ className: (0, _LangIsRtl.default)() ? 'icon-next' : 'icon-back'
188
193
  })), /*#__PURE__*/_react.default.createElement("button", {
189
194
  className: "pdf-box__arrow pdf-box__arrow--right gat--btn__round ".concat(currentPage === pages ? 'pdf-box__arrow--hidden' : ''),
190
195
  type: "button",
@@ -193,7 +198,7 @@ var PdfVisor = function PdfVisor(_ref) {
193
198
  return turnPage(1);
194
199
  }
195
200
  }, /*#__PURE__*/_react.default.createElement("span", {
196
- className: "icon-next"
201
+ className: (0, _LangIsRtl.default)() ? 'icon-back' : 'icon-next'
197
202
  })))));
198
203
  };
199
204
 
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@gamelearn/arcade-components",
3
3
  "author": "Gamelearn",
4
4
  "license": "unlicense",
5
- "version": "1.16.1",
5
+ "version": "1.17.0",
6
6
  "main": "dist/index.js",
7
7
  "files": [
8
8
  "dist",
@@ -13,7 +13,7 @@
13
13
  "url": "https://github.com/gamelearn/arcade-components"
14
14
  },
15
15
  "dependencies": {
16
- "@gamelearn/arcade-styles": "0.11.4",
16
+ "@gamelearn/arcade-styles": "0.11.7",
17
17
  "@gamelearn/arcade-three-core": "1.1.15",
18
18
  "@react-three/drei": "8.8.1",
19
19
  "@react-three/fiber": "7.0.25",