@davi-ai/retorik-framework 3.2.3 → 3.2.5
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/dist/{AttachmentDetail.1e06c2a5.js → AttachmentDetail.0a576bf3.js} +12 -13
- package/dist/AttachmentDetail.0a576bf3.js.map +1 -0
- package/dist/{AttachmentDetail.c6c297df.js → AttachmentDetail.c4286a45.js} +12 -13
- package/dist/AttachmentDetail.c4286a45.js.map +1 -0
- package/dist/{CustomView.90d2a13d.js → CustomView.913a9f32.js} +6 -7
- package/dist/CustomView.913a9f32.js.map +1 -0
- package/dist/{CustomView.080c8028.js → CustomView.edf84de1.js} +6 -7
- package/dist/CustomView.edf84de1.js.map +1 -0
- package/dist/{Emergency.a21f837c.js → Emergency.0cf005ce.js} +2 -3
- package/dist/Emergency.0cf005ce.js.map +1 -0
- package/dist/{Emergency.423214ad.js → Emergency.897ee3c7.js} +2 -3
- package/dist/Emergency.897ee3c7.js.map +1 -0
- package/dist/{HistoryList.5fd6aa12.js → HistoryList.03a56119.js} +3 -7
- package/dist/HistoryList.03a56119.js.map +1 -0
- package/dist/{HistoryList.50ff0fd9.js → HistoryList.4c303dc6.js} +3 -7
- package/dist/HistoryList.4c303dc6.js.map +1 -0
- package/dist/{LanguageChoice.61e36c1d.js → LanguageChoice.623ee802.js} +2 -5
- package/dist/LanguageChoice.623ee802.js.map +1 -0
- package/dist/{LanguageChoice.1579b654.js → LanguageChoice.ff0cd04c.js} +2 -5
- package/dist/LanguageChoice.ff0cd04c.js.map +1 -0
- package/dist/{NewsContainer.932174e9.js → NewsContainer.a91d9131.js} +17 -14
- package/dist/NewsContainer.a91d9131.js.map +1 -0
- package/dist/{NewsContainer.67f04b19.js → NewsContainer.f0d2ee9c.js} +17 -14
- package/dist/NewsContainer.f0d2ee9c.js.map +1 -0
- package/dist/{Weather.661c2cac.js → Weather.99917b66.js} +2 -3
- package/dist/Weather.99917b66.js.map +1 -0
- package/dist/{Weather.fb22fba3.js → Weather.cf58823d.js} +2 -3
- package/dist/Weather.cf58823d.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +500 -689
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +485 -682
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
- package/dist/AttachmentDetail.1e06c2a5.js.map +0 -1
- package/dist/AttachmentDetail.c6c297df.js.map +0 -1
- package/dist/CustomView.080c8028.js.map +0 -1
- package/dist/CustomView.90d2a13d.js.map +0 -1
- package/dist/Emergency.423214ad.js.map +0 -1
- package/dist/Emergency.a21f837c.js.map +0 -1
- package/dist/HistoryList.50ff0fd9.js.map +0 -1
- package/dist/HistoryList.5fd6aa12.js.map +0 -1
- package/dist/LanguageChoice.1579b654.js.map +0 -1
- package/dist/LanguageChoice.61e36c1d.js.map +0 -1
- package/dist/NewsContainer.67f04b19.js.map +0 -1
- package/dist/NewsContainer.932174e9.js.map +0 -1
- package/dist/Weather.661c2cac.js.map +0 -1
- package/dist/Weather.fb22fba3.js.map +0 -1
package/dist/index.modern.js
CHANGED
|
@@ -10,7 +10,7 @@ import {ConnectionStatus as $bZRJW$ConnectionStatus, DirectLine as $bZRJW$Direct
|
|
|
10
10
|
import {Document as $bZRJW$Document, Page as $bZRJW$Page, pdfjs as $bZRJW$pdfjs} from "react-pdf";
|
|
11
11
|
import {animated as $bZRJW$animated, useSpring as $bZRJW$useSpring, easings as $bZRJW$easings} from "@react-spring/web";
|
|
12
12
|
import {Player as $bZRJW$Player} from "@lottiefiles/react-lottie-player";
|
|
13
|
-
import {browserName as $bZRJW$browserName, BrowserTypes as $bZRJW$BrowserTypes, osName as $bZRJW$osName, OsTypes as $bZRJW$OsTypes,
|
|
13
|
+
import {browserName as $bZRJW$browserName, BrowserTypes as $bZRJW$BrowserTypes, osName as $bZRJW$osName, OsTypes as $bZRJW$OsTypes, isMobile as $bZRJW$isMobile} from "react-device-detect";
|
|
14
14
|
import {presets as $d70757f720801c36$re_export$presets} from "@davi-ai/react-bodyengine-three";
|
|
15
15
|
import {createRoot as $bZRJW$createRoot} from "react-dom/client";
|
|
16
16
|
import $bZRJW$reactshadow from "react-shadow";
|
|
@@ -90,7 +90,6 @@ const $920719987d28bd50$var$initialState = {
|
|
|
90
90
|
retorikEvent: undefined,
|
|
91
91
|
displayAgent: true,
|
|
92
92
|
activityToSend: undefined,
|
|
93
|
-
currentNewsActivity: undefined,
|
|
94
93
|
retorikNewsEnded: false,
|
|
95
94
|
userIsTyping: false,
|
|
96
95
|
userIsSwiping: false,
|
|
@@ -176,11 +175,6 @@ const $920719987d28bd50$var$createUtilsStore = ()=>(0, $bZRJW$createStore)((set,
|
|
|
176
175
|
activityToSend: value
|
|
177
176
|
});
|
|
178
177
|
},
|
|
179
|
-
setCurrentNewsActivity: (value)=>{
|
|
180
|
-
set({
|
|
181
|
-
currentNewsActivity: value
|
|
182
|
-
});
|
|
183
|
-
},
|
|
184
178
|
setRetorikNewsEnded: (value)=>{
|
|
185
179
|
set({
|
|
186
180
|
retorikNewsEnded: value
|
|
@@ -338,6 +332,7 @@ $parcel$export(module.exports, "Source3DEngine", () => $179a76b9823b36f3$export$
|
|
|
338
332
|
$parcel$export(module.exports, "UIPart", () => $179a76b9823b36f3$export$63fc5f52b5b4da1e);
|
|
339
333
|
$parcel$export(module.exports, "TextFrom", () => $179a76b9823b36f3$export$b685c7d489184507);
|
|
340
334
|
$parcel$export(module.exports, "Theme", () => $179a76b9823b36f3$export$14faa19a0f3bbeb2);
|
|
335
|
+
$parcel$export(module.exports, "TraceType", () => $179a76b9823b36f3$export$d4b4ca0ba30ae29c);
|
|
341
336
|
var $179a76b9823b36f3$export$e4a712fff93fb00f = /*#__PURE__*/ function(ActionType) {
|
|
342
337
|
ActionType["message"] = "message";
|
|
343
338
|
ActionType["event"] = "event";
|
|
@@ -379,13 +374,17 @@ var $179a76b9823b36f3$export$22b261e08140d6b2 = /*#__PURE__*/ function(CategoryI
|
|
|
379
374
|
return CategoryId;
|
|
380
375
|
}($179a76b9823b36f3$export$22b261e08140d6b2 || {});
|
|
381
376
|
var $179a76b9823b36f3$export$ddddf2c97763af65 = /*#__PURE__*/ function(CloseButtonCause) {
|
|
382
|
-
CloseButtonCause[
|
|
383
|
-
CloseButtonCause[
|
|
384
|
-
CloseButtonCause[
|
|
385
|
-
CloseButtonCause[
|
|
386
|
-
CloseButtonCause[
|
|
387
|
-
CloseButtonCause[
|
|
388
|
-
CloseButtonCause[
|
|
377
|
+
CloseButtonCause["none"] = "None";
|
|
378
|
+
CloseButtonCause["detailedpoi"] = "Detailed";
|
|
379
|
+
CloseButtonCause["list"] = "List";
|
|
380
|
+
CloseButtonCause["history"] = "History";
|
|
381
|
+
CloseButtonCause["languages"] = "Languages";
|
|
382
|
+
CloseButtonCause["weather"] = "Weather";
|
|
383
|
+
CloseButtonCause["emergency"] = "Emergency";
|
|
384
|
+
CloseButtonCause["map"] = "Map";
|
|
385
|
+
CloseButtonCause["dashboard"] = "Dashboard";
|
|
386
|
+
CloseButtonCause["fullscreenimage"] = "FullscreenImage";
|
|
387
|
+
CloseButtonCause["news"] = "News";
|
|
389
388
|
return CloseButtonCause;
|
|
390
389
|
}($179a76b9823b36f3$export$ddddf2c97763af65 || {});
|
|
391
390
|
var $179a76b9823b36f3$export$a31c5a03aaeee5f = /*#__PURE__*/ function(ContainerParent) {
|
|
@@ -563,6 +562,12 @@ var $179a76b9823b36f3$export$14faa19a0f3bbeb2 = /*#__PURE__*/ function(Theme) {
|
|
|
563
562
|
Theme["auto"] = "auto";
|
|
564
563
|
return Theme;
|
|
565
564
|
}($179a76b9823b36f3$export$14faa19a0f3bbeb2 || {});
|
|
565
|
+
var $179a76b9823b36f3$export$d4b4ca0ba30ae29c = /*#__PURE__*/ function(TraceType) {
|
|
566
|
+
TraceType["message"] = "directlineMessage";
|
|
567
|
+
TraceType["utteranceStart"] = "utteranceStart";
|
|
568
|
+
TraceType["utteranceEnd"] = "utteranceEnd";
|
|
569
|
+
return TraceType;
|
|
570
|
+
}($179a76b9823b36f3$export$d4b4ca0ba30ae29c || {});
|
|
566
571
|
|
|
567
572
|
});
|
|
568
573
|
|
|
@@ -2061,9 +2066,6 @@ const $244e94971d503466$var$initialState = {
|
|
|
2061
2066
|
visemeData: [],
|
|
2062
2067
|
singleVisemeAdded: null,
|
|
2063
2068
|
multiVisemesAdded: [],
|
|
2064
|
-
currentReplyToId: undefined,
|
|
2065
|
-
currentPlaying: undefined,
|
|
2066
|
-
endedActivities: [],
|
|
2067
2069
|
currentOrLastPlayedActivity: undefined,
|
|
2068
2070
|
isMicrophoneAllowed: false,
|
|
2069
2071
|
showMicrophoneModal: false,
|
|
@@ -2072,9 +2074,6 @@ const $244e94971d503466$var$initialState = {
|
|
|
2072
2074
|
lastRecognitionInterim: '',
|
|
2073
2075
|
streamingReplyToId: null,
|
|
2074
2076
|
streamingQueue: [],
|
|
2075
|
-
streamingQueueForText: [],
|
|
2076
|
-
currentStreaming: null,
|
|
2077
|
-
streamingQueueFullLength: 0,
|
|
2078
2077
|
streamingReplyToIdToIgnore: null,
|
|
2079
2078
|
speechRecognitionDynamicGrammars: [],
|
|
2080
2079
|
externalTextToSpeech: undefined
|
|
@@ -2210,22 +2209,6 @@ const $244e94971d503466$var$createSpeechStore = (setRetorikEvent, getListStatus,
|
|
|
2210
2209
|
if (getListStatus() !== (0, $4ucVo.ListStatus).opened) setListStatus((0, $4ucVo.ListStatus).available);
|
|
2211
2210
|
}
|
|
2212
2211
|
},
|
|
2213
|
-
setCurrentReplyToId: (value)=>{
|
|
2214
|
-
set({
|
|
2215
|
-
currentReplyToId: value
|
|
2216
|
-
});
|
|
2217
|
-
},
|
|
2218
|
-
setCurrentPlaying: (value)=>{
|
|
2219
|
-
set({
|
|
2220
|
-
currentPlaying: value
|
|
2221
|
-
});
|
|
2222
|
-
value && get().actions.setCurrentOrLastPlayedActivity(value);
|
|
2223
|
-
},
|
|
2224
|
-
setEndedActivities: (value)=>{
|
|
2225
|
-
set({
|
|
2226
|
-
endedActivities: value
|
|
2227
|
-
});
|
|
2228
|
-
},
|
|
2229
2212
|
setIsMicrophoneAllowed: (value)=>{
|
|
2230
2213
|
set({
|
|
2231
2214
|
isMicrophoneAllowed: value
|
|
@@ -2287,72 +2270,45 @@ const $244e94971d503466$var$createSpeechStore = (setRetorikEvent, getListStatus,
|
|
|
2287
2270
|
streamingReplyToId: value
|
|
2288
2271
|
});
|
|
2289
2272
|
},
|
|
2290
|
-
setStreamingQueue: (value)=>{
|
|
2291
|
-
set({
|
|
2292
|
-
streamingQueue: value,
|
|
2293
|
-
streamingQueueForText: value
|
|
2294
|
-
});
|
|
2295
|
-
},
|
|
2296
2273
|
addToStreamingQueue: (value)=>{
|
|
2297
|
-
if (value.replyToId
|
|
2298
|
-
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
|
|
2302
|
-
|
|
2303
|
-
|
|
2304
|
-
|
|
2305
|
-
|
|
2306
|
-
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2318
|
-
|
|
2319
|
-
}
|
|
2274
|
+
if (value.replyToId) {
|
|
2275
|
+
if (value.replyToId !== get().streamingReplyToIdToIgnore) {
|
|
2276
|
+
// Set replyToId and new queue if replyToId is different from the current one
|
|
2277
|
+
if (get().streamingReplyToId !== value.replyToId) set({
|
|
2278
|
+
streamingReplyToId: value.replyToId,
|
|
2279
|
+
streamingQueue: [
|
|
2280
|
+
value
|
|
2281
|
+
]
|
|
2282
|
+
});
|
|
2283
|
+
else set({
|
|
2284
|
+
streamingQueue: [
|
|
2285
|
+
...get().streamingQueue,
|
|
2286
|
+
value
|
|
2287
|
+
]
|
|
2288
|
+
});
|
|
2289
|
+
}
|
|
2290
|
+
} else set({
|
|
2291
|
+
streamingQueue: [
|
|
2292
|
+
...get().streamingQueue,
|
|
2293
|
+
value
|
|
2294
|
+
]
|
|
2295
|
+
});
|
|
2320
2296
|
},
|
|
2321
|
-
|
|
2322
|
-
|
|
2323
|
-
|
|
2324
|
-
|
|
2325
|
-
|
|
2326
|
-
streamingQueue: tempStreamingQueue
|
|
2327
|
-
});
|
|
2328
|
-
}
|
|
2297
|
+
// If "twice" parameter is true, let's remove 2 elements instead of one (used with the message at the end of a streaming that should not be spoken)
|
|
2298
|
+
removeFirstFromStreamingQueue: (twice)=>{
|
|
2299
|
+
set((state)=>({
|
|
2300
|
+
streamingQueue: state.streamingQueue.slice(twice ? 2 : 1)
|
|
2301
|
+
}));
|
|
2329
2302
|
},
|
|
2330
2303
|
killCurrentStreaming: ()=>{
|
|
2331
2304
|
set({
|
|
2332
|
-
|
|
2333
|
-
streamingQueue: []
|
|
2334
|
-
streamingQueueForText: [],
|
|
2335
|
-
currentStreaming: null,
|
|
2336
|
-
streamingQueueFullLength: 0,
|
|
2337
|
-
streamingReplyToIdToIgnore: get().streamingReplyToId
|
|
2305
|
+
streamingReplyToIdToIgnore: get().streamingReplyToId,
|
|
2306
|
+
streamingQueue: []
|
|
2338
2307
|
});
|
|
2339
2308
|
},
|
|
2340
2309
|
checkActivityReplyToId: (replyToId)=>{
|
|
2341
2310
|
get().streamingReplyToId !== replyToId && get().actions.killCurrentStreaming();
|
|
2342
2311
|
},
|
|
2343
|
-
setCurrentStreaming: (value)=>{
|
|
2344
|
-
set({
|
|
2345
|
-
currentStreaming: value
|
|
2346
|
-
});
|
|
2347
|
-
},
|
|
2348
|
-
setStreamingQueueFullLength: (value, replyToId)=>{
|
|
2349
|
-
if (replyToId) replyToId === get().streamingReplyToId && set({
|
|
2350
|
-
streamingQueueFullLength: value
|
|
2351
|
-
});
|
|
2352
|
-
else set({
|
|
2353
|
-
streamingQueueFullLength: value
|
|
2354
|
-
});
|
|
2355
|
-
},
|
|
2356
2312
|
addSpeechRecognitionDynamicGrammar: (value)=>{
|
|
2357
2313
|
const currentGrammars = get().speechRecognitionDynamicGrammars;
|
|
2358
2314
|
// For each value, verifiy if it doesn't exist in the array yet
|
|
@@ -2772,7 +2728,7 @@ const $1cd684302a8789ac$var$initialState = {
|
|
|
2772
2728
|
queueLock: false
|
|
2773
2729
|
};
|
|
2774
2730
|
const $1cd684302a8789ac$var$regexDataCommand = /(\{data-command=")[\p{L}\p{N}\p{Po}\p{Pd}\p{Pc}\s\u0027\u2019]+("\})(<br\s\/>)?/gu;
|
|
2775
|
-
const $1cd684302a8789ac$var$createActivityStore = (localeRef, isUsedOnBorneRef, inputHintBehaviourRef, setCurrentId, setRestoreInputsState, addToStreamingQueue,
|
|
2731
|
+
const $1cd684302a8789ac$var$createActivityStore = (localeRef, isUsedOnBorneRef, inputHintBehaviourRef, setCurrentId, setRestoreInputsState, addToStreamingQueue, setMode, unlockClickedButton, setSubmitDelayBeforeSendingMessage, setIsWaitingForResponse, setSendBoxPlaceHolder)=>{
|
|
2776
2732
|
return (0, $bZRJW$createStore)((set, get)=>{
|
|
2777
2733
|
return {
|
|
2778
2734
|
...$1cd684302a8789ac$var$initialState,
|
|
@@ -2837,7 +2793,7 @@ const $1cd684302a8789ac$var$createActivityStore = (localeRef, isUsedOnBorneRef,
|
|
|
2837
2793
|
currentActivity.type === 'message' ? await get().actions.processAddBotMessage(currentActivity) : await get().actions.processAddBotEvent(currentActivity);
|
|
2838
2794
|
// Remove the first element from the queue (the one that got processed above) and process the queue once again
|
|
2839
2795
|
set({
|
|
2840
|
-
queue: get().queue.slice(
|
|
2796
|
+
queue: get().queue.slice(1)
|
|
2841
2797
|
});
|
|
2842
2798
|
get().actions.processQueue();
|
|
2843
2799
|
} else set({
|
|
@@ -2847,9 +2803,9 @@ const $1cd684302a8789ac$var$createActivityStore = (localeRef, isUsedOnBorneRef,
|
|
|
2847
2803
|
processAddBotMessage: async (value)=>{
|
|
2848
2804
|
setCurrentId(undefined);
|
|
2849
2805
|
const processedActivity = await get().actions.processBotMessageActivity(value);
|
|
2850
|
-
// If this activity is the one concluding a streaming, let's set the amount of streams previously generated
|
|
2851
|
-
if (!get().retrievingConversation && value.value?.streamingCount) setStreamingQueueFullLength(value.value.streamingCount, value.replyToId);
|
|
2852
2806
|
const tempActivity = get().retrievingConversation ? undefined : processedActivity;
|
|
2807
|
+
// Add this activity to the streaming queue if we are not in conversation retrieval process
|
|
2808
|
+
!get().retrievingConversation && addToStreamingQueue(processedActivity);
|
|
2853
2809
|
set({
|
|
2854
2810
|
activities: [
|
|
2855
2811
|
...get().activities,
|
|
@@ -2891,6 +2847,28 @@ const $1cd684302a8789ac$var$createActivityStore = (localeRef, isUsedOnBorneRef,
|
|
|
2891
2847
|
}
|
|
2892
2848
|
},
|
|
2893
2849
|
processAddBotEvent: async (value)=>{
|
|
2850
|
+
const streamingMap = new Map(get().botStreamingActivities);
|
|
2851
|
+
// Deal with streaming activities
|
|
2852
|
+
if (value.name?.toLowerCase() === 'davi.streammessageactivity') // Add this activity to the streaming queue if we are not in conversation retrieval process
|
|
2853
|
+
{
|
|
2854
|
+
if (value.text?.trim().length && !get().retrievingConversation) {
|
|
2855
|
+
// Create speak field from the text one
|
|
2856
|
+
const processedText = (0, $dklvz.processMarkdownAndSpeechMarkdown)(value.text, true);
|
|
2857
|
+
value.speak = processedText.text;
|
|
2858
|
+
value.htmlText = processedText.htmlText;
|
|
2859
|
+
addToStreamingQueue(value);
|
|
2860
|
+
// Set data in the Map for text display
|
|
2861
|
+
if (value.replyToId) {
|
|
2862
|
+
const currentStreamingData = streamingMap.get(value.replyToId);
|
|
2863
|
+
currentStreamingData ? streamingMap.set(value.replyToId, [
|
|
2864
|
+
...currentStreamingData,
|
|
2865
|
+
value
|
|
2866
|
+
]) : streamingMap.set(value.replyToId, [
|
|
2867
|
+
value
|
|
2868
|
+
]);
|
|
2869
|
+
}
|
|
2870
|
+
}
|
|
2871
|
+
}
|
|
2894
2872
|
set({
|
|
2895
2873
|
activities: [
|
|
2896
2874
|
...get().activities,
|
|
@@ -2908,37 +2886,15 @@ const $1cd684302a8789ac$var$createActivityStore = (localeRef, isUsedOnBorneRef,
|
|
|
2908
2886
|
],
|
|
2909
2887
|
lastBotEventActivity: value,
|
|
2910
2888
|
lastEventActivity: value,
|
|
2889
|
+
botStreamingActivities: streamingMap,
|
|
2911
2890
|
watermark: get().watermark + 1
|
|
2912
2891
|
});
|
|
2913
2892
|
Promise.resolve();
|
|
2914
2893
|
},
|
|
2915
2894
|
addBotEvent: async (value)=>{
|
|
2916
2895
|
if (get().actions.checkCurrentConversationId(value.id)) {
|
|
2917
|
-
|
|
2918
|
-
|
|
2919
|
-
setIsWaitingForResponse(false);
|
|
2920
|
-
// Create speak field from the text one
|
|
2921
|
-
const processedText = (0, $dklvz.processMarkdownAndSpeechMarkdown)(value.text, true);
|
|
2922
|
-
value.speak = processedText.text;
|
|
2923
|
-
value.htmlText = processedText.htmlText;
|
|
2924
|
-
addToStreamingQueue(value);
|
|
2925
|
-
if (value.replyToId) {
|
|
2926
|
-
const currentStreamingMap = new Map(get().botStreamingActivities);
|
|
2927
|
-
const currentStreamingData = currentStreamingMap.get(value.replyToId);
|
|
2928
|
-
currentStreamingData ? currentStreamingMap.set(value.replyToId, [
|
|
2929
|
-
...currentStreamingData,
|
|
2930
|
-
value
|
|
2931
|
-
]) : currentStreamingMap.set(value.replyToId, [
|
|
2932
|
-
value
|
|
2933
|
-
]);
|
|
2934
|
-
set({
|
|
2935
|
-
botStreamingActivities: currentStreamingMap,
|
|
2936
|
-
watermark: get().watermark + 1
|
|
2937
|
-
});
|
|
2938
|
-
}
|
|
2939
|
-
unlockClickedButton();
|
|
2940
|
-
}
|
|
2941
|
-
} else if (value.name?.toLowerCase() === 'switchtotextmode') {
|
|
2896
|
+
//
|
|
2897
|
+
if (value.name?.toLowerCase() === 'switchtotextmode') {
|
|
2942
2898
|
setMode((0, $4ucVo.Mode).text);
|
|
2943
2899
|
set({
|
|
2944
2900
|
watermark: get().watermark + 1
|
|
@@ -3203,10 +3159,10 @@ const $1cd684302a8789ac$var$ActivityProvider = ({ children: children })=>{
|
|
|
3203
3159
|
const isUsedOnBorneRef = (0, $bZRJW$useRef)(false);
|
|
3204
3160
|
const inputHintBehaviourRef = (0, $bZRJW$useRef)(undefined);
|
|
3205
3161
|
const { setCurrentId: setCurrentId, setRestoreInputsState: setRestoreInputsState } = (0, $jubFc.useAdaptiveCardStore)((state)=>state.actions);
|
|
3206
|
-
const { addToStreamingQueue: addToStreamingQueue,
|
|
3162
|
+
const { addToStreamingQueue: addToStreamingQueue, setMode: setMode } = (0, $i1rfm.useSpeechStore)((state)=>state.actions);
|
|
3207
3163
|
const unlockClickedButton = (0, $j67YK.useUtilsStore)((state)=>state.actions.unlockClickedButton);
|
|
3208
3164
|
const { setSubmitDelayBeforeSendingMessage: setSubmitDelayBeforeSendingMessage, setIsWaitingForResponse: setIsWaitingForResponse, setSendBoxPlaceHolder: setSendBoxPlaceHolder } = (0, $1x02c.useRetorikStore)((state)=>state.actions);
|
|
3209
|
-
const [store] = (0, $bZRJW$useState)(()=>$1cd684302a8789ac$var$createActivityStore(localeRef, isUsedOnBorneRef, inputHintBehaviourRef, setCurrentId, setRestoreInputsState, addToStreamingQueue,
|
|
3165
|
+
const [store] = (0, $bZRJW$useState)(()=>$1cd684302a8789ac$var$createActivityStore(localeRef, isUsedOnBorneRef, inputHintBehaviourRef, setCurrentId, setRestoreInputsState, addToStreamingQueue, setMode, unlockClickedButton, setSubmitDelayBeforeSendingMessage, setIsWaitingForResponse, setSendBoxPlaceHolder));
|
|
3210
3166
|
(0, $bZRJW$useEffect)(()=>{
|
|
3211
3167
|
localeRef.current = locale;
|
|
3212
3168
|
}, [
|
|
@@ -4127,7 +4083,7 @@ const $ca466c72d380f23a$var$createDirectlineStore = (modeRef, recognitionStateRe
|
|
|
4127
4083
|
if (get().actions.checkIfHandlerAbortsActivity((0, $1ZPEZ.LegacyDirectLineActivityType).SEND_MESSAGE, tempActivity)) return;
|
|
4128
4084
|
get().directLine?.postActivity(tempActivity).subscribe();
|
|
4129
4085
|
},
|
|
4130
|
-
sendEvent: (name, value)=>{
|
|
4086
|
+
sendEvent: (name, value, callback)=>{
|
|
4131
4087
|
if (get().conversationPaused) return;
|
|
4132
4088
|
!name.toLowerCase().includes('davi.closewindow') && !$ca466c72d380f23a$var$eventsWithoutCancel.includes(name.toLowerCase()) && get().actions.checkMicrophoneAndCancel();
|
|
4133
4089
|
const locale = checkDumpedLocaleFallback();
|
|
@@ -4146,7 +4102,10 @@ const $ca466c72d380f23a$var$createDirectlineStore = (modeRef, recognitionStateRe
|
|
|
4146
4102
|
// Check if the event should be stopped in the external activity handler if there is one
|
|
4147
4103
|
if (get().actions.checkIfHandlerAbortsActivity((0, $1ZPEZ.LegacyDirectLineActivityType).POST_ACTIVITY, tempEvent)) return;
|
|
4148
4104
|
if (get().actions.checkIfHandlerAbortsActivity((0, $1ZPEZ.LegacyDirectLineActivityType).SEND_EVENT, tempEvent)) return;
|
|
4149
|
-
get().directLine?.postActivity(tempEvent).subscribe(
|
|
4105
|
+
get().directLine?.postActivity(tempEvent).subscribe({
|
|
4106
|
+
error: (error)=>console.log('Retorik Framework > error while sending event : ', error),
|
|
4107
|
+
complete: ()=>callback?.()
|
|
4108
|
+
});
|
|
4150
4109
|
},
|
|
4151
4110
|
sendTyping: ()=>{
|
|
4152
4111
|
if (get().conversationPaused) return;
|
|
@@ -4352,7 +4311,7 @@ var $c54ebc4ba0100ff1$export$2e2bcd8739ae039 = $c54ebc4ba0100ff1$var$activityMid
|
|
|
4352
4311
|
});
|
|
4353
4312
|
|
|
4354
4313
|
parcelRegister("iT1WI", function(module, exports) {
|
|
4355
|
-
module.exports = JSON.parse("{\"name\":\"@davi-ai/retorik-framework\",\"version\":\"3.2.
|
|
4314
|
+
module.exports = JSON.parse("{\"name\":\"@davi-ai/retorik-framework\",\"version\":\"3.2.5\",\"description\":\"Retorik Framework package\",\"author\":\"DAVI\",\"license\":\"MIT\",\"repository\":\"none\",\"main\":\"dist/index.js\",\"module\":\"dist/index.modern.js\",\"types\":\"dist/index.d.ts\",\"source\":\"src/index.tsx\",\"standalone\":\"standalone/index.js\",\"targets\":{\"standalone\":{\"context\":\"browser\",\"outputFormat\":\"esmodule\",\"distDir\":\"standalone\"},\"module\":{\"context\":\"browser\",\"outputFormat\":\"esmodule\",\"distDir\":\"dist\"}},\"engines\":{\"node\":\">=10\"},\"scripts\":{\"build\":\"parcel build\",\"start\":\"parcel watch\",\"test\":\"jest --env=jsdom --reporters=jest-junit\",\"test-console\":\"jest --env=jsdom\",\"test-update-snapshots\":\"jest --env=jsdom --updateSnapshot\",\"test-coverage-console\":\"jest --env=jsdom --reporters=jest-junit --coverage\",\"test-coverage\":\"jest --env=jsdom --reporters=jest-junit --coverage --coverageReporters=cobertura\",\"report\":\"npx parcel build src/index.tsx --reporter @parcel/reporter-bundle-analyzer\",\"credentials\":\"vsts-npm-auth -config .npmrc\"},\"peerDependencies\":{\"react\":\"18.3.1\",\"react-dom\":\"18.3.1\"},\"devDependencies\":{\"@babel/core\":\"^7.19.1\",\"@babel/plugin-proposal-decorators\":\"^7.24.7\",\"@babel/plugin-proposal-private-property-in-object\":\"^7.21.11\",\"@babel/preset-env\":\"^7.25.4\",\"@babel/preset-react\":\"^7.24.7\",\"@babel/preset-typescript\":\"^7.24.7\",\"@babel/runtime\":\"^7.23.8\",\"@parcel/packager-ts\":\"^2.13.2\",\"@parcel/reporter-bundle-analyzer\":\"^2.13.2\",\"@parcel/reporter-sourcemap-visualiser\":\"^2.13.2\",\"@parcel/transformer-inline-string\":\"^2.13.2\",\"@parcel/transformer-typescript-types\":\"^2.13.2\",\"@parcel/validator-eslint\":\"^2.13.2\",\"@parcel/validator-typescript\":\"^2.13.2\",\"@testing-library/dom\":\"^10.4.0\",\"@testing-library/jest-dom\":\"6.5.0\",\"@testing-library/react\":\"16.0.1\",\"@testing-library/react-hooks\":\"8.0.1\",\"@testing-library/user-event\":\"14.5.2\",\"@types/jest\":\"^27.5.1\",\"@types/leaflet\":\"^1.8.0\",\"@types/node\":\"^12.12.38\",\"@types/react\":\"18.3.12\",\"@types/react-dom\":\"18.3.1\",\"@types/testing-library__jest-dom\":\"^5.14.5\",\"@types/testing-library__react\":\"latest\",\"@typescript-eslint/eslint-plugin\":\"^8.19.0\",\"@typescript-eslint/parser\":\"^8.19.0\",\"autoprefixer\":\"^10.4.7\",\"babel-eslint\":\"^10.0.3\",\"babel-jest\":\"^29.7.0\",\"babel-loader\":\"^8.2.5\",\"buffer\":\"^5.7.1\",\"canvas\":\"^2.9.0\",\"cross-env\":\"^7.0.2\",\"crypto-browserify\":\"^3.12.0\",\"eslint\":\"^9.16.0\",\"eslint-config-prettier\":\"^9.1.0\",\"eslint-config-standard\":\"^17.1.0\",\"eslint-config-standard-react\":\"^13.0.0\",\"eslint-plugin-import\":\"^2.31.0\",\"eslint-plugin-node\":\"^11.1.0\",\"eslint-plugin-prettier\":\"^5.2.1\",\"eslint-plugin-promise\":\"^7.2.1\",\"eslint-plugin-react\":\"^7.37.2\",\"https-browserify\":\"^1.0.0\",\"jest\":\"^29.7.0\",\"jest-environment-jsdom\":\"^29.7.0\",\"jest-junit\":\"16.0.0\",\"npm-run-all\":\"^4.1.5\",\"parcel\":\"^2.13.2\",\"postcss\":\"^8.4.14\",\"postcss-url\":\"^10.1.3\",\"prettier\":\"^2.0.4\",\"process\":\"^0.11.10\",\"punycode\":\"^1.4.1\",\"querystring-es3\":\"^0.2.1\",\"react\":\"^18\",\"react-docgen-typescript-plugin\":\"^1.0.5\",\"react-dom\":\"18.3.1\",\"react-test-renderer\":\"^18.3.1\",\"resize-observer-polyfill\":\"^1.5.1\",\"stream-browserify\":\"^3.0.0\",\"stream-http\":\"^3.2.0\",\"string_decoder\":\"^1.3.0\",\"tailwindcss\":\"^3.1.0\",\"typescript\":\"5.3.2\",\"url\":\"^0.11.0\",\"util\":\"^0.12.4\"},\"files\":[\"dist\"],\"dependencies\":{\"@davi-ai/body-engine-sprite\":\"3.0.0\",\"@davi-ai/react-bodyengine-three\":\"1.0.6\",\"@davi-ai/retorik-weather\":\"2.0.0\",\"@davi-ai/speechmarkdown-davi-js\":\"2.0.1\",\"@davi-ai/web-speech-cognitive-services-davi\":\"2.0.10\",\"@lottiefiles/react-lottie-player\":\"^3.4.1\",\"@opentelemetry/api\":\"^1.9.0\",\"@opentelemetry/exporter-trace-otlp-http\":\"^0.200.0\",\"@opentelemetry/instrumentation\":\"^0.200.0\",\"@opentelemetry/instrumentation-document-load\":\"^0.45.0\",\"@opentelemetry/instrumentation-fetch\":\"^0.200.0\",\"@opentelemetry/resources\":\"^2.0.0\",\"@opentelemetry/sdk-trace-web\":\"^2.0.0\",\"@opentelemetry/semantic-conventions\":\"^1.32.0\",\"@react-spring/types\":\"^9.7.3\",\"@react-spring/web\":\"^9.7.3\",\"@swc/helpers\":\"^0.5.0\",\"@types/geojson\":\"^7946.0.10\",\"@types/jsdom\":\"^16.2.14\",\"@use-gesture/react\":\"^10.2.15\",\"adaptivecards\":\"3.0.1\",\"botframework-directlinejs\":\"^0.15.5\",\"classnames\":\"^2.3.1\",\"detect-gpu\":\"^5.0.70\",\"leaflet\":\"^1.9.2\",\"markdown-it\":\"14.1.0\",\"pdfjs-dist\":\"3.11.174\",\"postcss-copy\":\"^7.1.0\",\"qrcode\":\"^1.5.1\",\"react-device-detect\":\"^2.2.3\",\"react-error-boundary\":\"^4.0.10\",\"react-leaflet\":\"^4.1.0\",\"react-pdf\":\"7.7.1\",\"react-shadow\":\"^20.5.0\",\"swiper\":\"^8.4.5\",\"zustand\":\"^5.0.3\"},\"overrides\":{\"@davi-ai/web-speech-cognitive-services-davi\":\"$@davi-ai/web-speech-cognitive-services-davi\",\"zustand\":\"$zustand\"},\"@parcel/resolver-default\":{\"packageExports\":true}}");
|
|
4356
4315
|
|
|
4357
4316
|
});
|
|
4358
4317
|
|
|
@@ -5466,23 +5425,24 @@ const $04f538c5adcaba69$var$SendActivityEventListener = ({ isRetorikNews: isReto
|
|
|
5466
5425
|
document.removeEventListener('retorikSetVisibility', handleEvents);
|
|
5467
5426
|
};
|
|
5468
5427
|
}, []);
|
|
5469
|
-
|
|
5470
|
-
|
|
5471
|
-
|
|
5472
|
-
|
|
5473
|
-
|
|
5474
|
-
|
|
5428
|
+
/**
|
|
5429
|
+
* Send mandatory events : setUser to start conversation, Davi.GDPRConsent for GDPR module
|
|
5430
|
+
*/ const sendMandatoryEvents = async ()=>{
|
|
5431
|
+
sendEvent('Davi.GDPRConsent', {
|
|
5432
|
+
userConsent: userConsent
|
|
5433
|
+
}, ()=>sendEvent('setUser', {
|
|
5475
5434
|
user: {
|
|
5476
5435
|
...userData,
|
|
5477
5436
|
gdprConsent: true
|
|
5478
5437
|
},
|
|
5479
5438
|
skipWelcome: !!skipWelcome
|
|
5480
|
-
});
|
|
5481
|
-
|
|
5482
|
-
|
|
5483
|
-
|
|
5484
|
-
|
|
5485
|
-
|
|
5439
|
+
}));
|
|
5440
|
+
};
|
|
5441
|
+
(0, $bZRJW$useEffect)(()=>{
|
|
5442
|
+
if (isRetorikNews || hasConversationCookie) setUserAlreadySet(true);
|
|
5443
|
+
else if (!userAlreadySet && appAvailable && !displayGDPR && characterLoaded) {
|
|
5444
|
+
setUserAlreadySet(true);
|
|
5445
|
+
sendMandatoryEvents();
|
|
5486
5446
|
}
|
|
5487
5447
|
}, [
|
|
5488
5448
|
appAvailable,
|
|
@@ -6836,15 +6796,12 @@ $parcel$export(module.exports, "default", () => $d15919a4100e497f$export$2e2bcd8
|
|
|
6836
6796
|
|
|
6837
6797
|
var $1Qww3 = parcelRequire("1Qww3");
|
|
6838
6798
|
|
|
6839
|
-
var $2fuDN = parcelRequire("2fuDN");
|
|
6840
|
-
|
|
6841
6799
|
var $cU5vf = parcelRequire("cU5vf");
|
|
6842
6800
|
|
|
6843
6801
|
var $aYFLf = parcelRequire("aYFLf");
|
|
6844
6802
|
|
|
6845
6803
|
var $isz9d = parcelRequire("isz9d");
|
|
6846
6804
|
const $d15919a4100e497f$var$Background = ({ config: config, videoLoop: videoLoop, videoMuted: videoMuted, onVideoEnded: onVideoEnded, onVideoCanPlay: onVideoCanPlay })=>{
|
|
6847
|
-
const isRTL = (0, $2fuDN.useLocaleStore)((state)=>state.isRTL);
|
|
6848
6805
|
const webcamRotation = (0, $1Qww3.useViewStore)((state)=>state.configurations).webcamRotation;
|
|
6849
6806
|
const imageRef = (0, $bZRJW$useRef)(null);
|
|
6850
6807
|
const dimensions = (0, $cU5vf.default)(imageRef);
|
|
@@ -6896,12 +6853,7 @@ const $d15919a4100e497f$var$Background = ({ config: config, videoLoop: videoLoop
|
|
|
6896
6853
|
ref: imageRef,
|
|
6897
6854
|
src: config.image,
|
|
6898
6855
|
alt: "background image",
|
|
6899
|
-
className: "rf-col-span-full rf-row-span-full rf-w-full rf-h-full rf-object-cover rf-filter rf-blur-background"
|
|
6900
|
-
style: {
|
|
6901
|
-
...isRTL ? {
|
|
6902
|
-
transform: 'scaleX(-1)'
|
|
6903
|
-
} : {}
|
|
6904
|
-
}
|
|
6856
|
+
className: "rf-col-span-full rf-row-span-full rf-w-full rf-h-full rf-object-cover rf-filter rf-blur-background"
|
|
6905
6857
|
}),
|
|
6906
6858
|
config.style === 'video' && config.video && /*#__PURE__*/ (0, $bZRJW$jsx)((0, $aYFLf.default), {
|
|
6907
6859
|
source: config.video,
|
|
@@ -7094,7 +7046,7 @@ const $be2786c491557492$var$CloseButton = ({ onClick: onClick, label: label, cla
|
|
|
7094
7046
|
return /*#__PURE__*/ (0, $bZRJW$jsxs)("button", {
|
|
7095
7047
|
"aria-label": label || translation.common.close,
|
|
7096
7048
|
onClick: onClick,
|
|
7097
|
-
className: `${className} rf-absolute rf-flex rf-flex-col rf-items-center
|
|
7049
|
+
className: `${className} rf-absolute rf-flex rf-flex-col rf-items-center rf-right-0 rf-top-0 rf-p-2`,
|
|
7098
7050
|
children: [
|
|
7099
7051
|
/*#__PURE__*/ (0, $bZRJW$jsx)((0, $awh9M.default), {
|
|
7100
7052
|
className: "rf-h-6 rf-w-6"
|
|
@@ -7355,7 +7307,7 @@ var $1x02c = parcelRequire("1x02c");
|
|
|
7355
7307
|
const $62c9543e6a54a221$var$FullScreenRemote = ({ className: className, background: background, onClick: onClick, animation: animation, children: children })=>{
|
|
7356
7308
|
const useOldRemote = (0, $1x02c.useRetorikStore)((state)=>state.configuration.useOldRemote);
|
|
7357
7309
|
return /*#__PURE__*/ (0, $bZRJW$jsx)((0, $bZRJW$animated).div, {
|
|
7358
|
-
className: `${useOldRemote ? className?.includes('rf-z-') ? '' : 'rf-z-util' : 'rf-z-[15]'} rf-relative rf-overflow-y-scroll rf-scrollbar-hidden rf-text-black rf-text-size-auto rf-bg-templateBackground large:
|
|
7310
|
+
className: `${useOldRemote ? className?.includes('rf-z-') ? '' : 'rf-z-util' : 'rf-z-[15]'} rf-relative rf-overflow-y-scroll rf-scrollbar-hidden rf-text-black rf-text-size-auto rf-bg-templateBackground large:rf-mr-30 rf-col-span-full rf-row-span-full ${className}`,
|
|
7359
7311
|
style: {
|
|
7360
7312
|
background: background || '',
|
|
7361
7313
|
outline: '1px solid transparent',
|
|
@@ -7634,7 +7586,6 @@ var $8KJP1 = parcelRequire("8KJP1");
|
|
|
7634
7586
|
const $2ec58e0e10234435$var$springEnterDuration = 1500;
|
|
7635
7587
|
const $2ec58e0e10234435$var$springLeaveDuration = 2500;
|
|
7636
7588
|
const $2ec58e0e10234435$var$List = ({ activity: activity, onClose: onClose })=>{
|
|
7637
|
-
const isRTL = (0, $2fuDN.useLocaleStore)((state)=>state.isRTL);
|
|
7638
7589
|
const mode = (0, $i1rfm.useSpeechStore)((state)=>state.mode);
|
|
7639
7590
|
const useOldRemote = (0, $1x02c.useRetorikStore)((state)=>state.configuration.useOldRemote);
|
|
7640
7591
|
const isMobile = (0, $1Qww3.useViewStore)((state)=>state.isMobile);
|
|
@@ -7667,7 +7618,7 @@ const $2ec58e0e10234435$var$List = ({ activity: activity, onClose: onClose })=>{
|
|
|
7667
7618
|
setListStatus((0, $4ucVo.ListStatus).opened);
|
|
7668
7619
|
api.start({
|
|
7669
7620
|
from: {
|
|
7670
|
-
transform:
|
|
7621
|
+
transform: 'translateX(-100%)'
|
|
7671
7622
|
},
|
|
7672
7623
|
to: {
|
|
7673
7624
|
transform: 'translateX(0%)'
|
|
@@ -7685,7 +7636,7 @@ const $2ec58e0e10234435$var$List = ({ activity: activity, onClose: onClose })=>{
|
|
|
7685
7636
|
transform: 'translateX(0%)'
|
|
7686
7637
|
},
|
|
7687
7638
|
to: {
|
|
7688
|
-
transform:
|
|
7639
|
+
transform: 'translateX(-100%)'
|
|
7689
7640
|
},
|
|
7690
7641
|
config: {
|
|
7691
7642
|
duration: $2ec58e0e10234435$var$springLeaveDuration,
|
|
@@ -7695,8 +7646,7 @@ const $2ec58e0e10234435$var$List = ({ activity: activity, onClose: onClose })=>{
|
|
|
7695
7646
|
if (timerRef) {
|
|
7696
7647
|
timerRef.current && clearTimeout(timerRef.current);
|
|
7697
7648
|
timerRef.current = setTimeout(()=>{
|
|
7698
|
-
sendEvent('Davi.CloseWindow', null);
|
|
7699
|
-
sendEvent('Davi.CloseWindowList', null);
|
|
7649
|
+
sendEvent('Davi.CloseWindow', null, ()=>sendEvent('Davi.CloseWindowList', null));
|
|
7700
7650
|
onClose?.();
|
|
7701
7651
|
setContent(undefined);
|
|
7702
7652
|
}, $2ec58e0e10234435$var$springLeaveDuration);
|
|
@@ -7756,7 +7706,6 @@ const $2ec58e0e10234435$var$List = ({ activity: activity, onClose: onClose })=>{
|
|
|
7756
7706
|
(0, $bZRJW$useEffect)(()=>{
|
|
7757
7707
|
handleOpen();
|
|
7758
7708
|
return ()=>{
|
|
7759
|
-
console.log('in return');
|
|
7760
7709
|
setListStatus((0, $4ucVo.ListStatus).closed);
|
|
7761
7710
|
timerRef?.current && clearTimeout(timerRef.current);
|
|
7762
7711
|
};
|
|
@@ -7784,7 +7733,7 @@ const $2ec58e0e10234435$var$List = ({ activity: activity, onClose: onClose })=>{
|
|
|
7784
7733
|
className: `${mobileFiltersOpened ? 'rf-hidden' : 'rf-flex'} rf-flex-col rf-items-start large:rf-pt-16 large:rf-h-full large-vertical:rf-pt-[20vh]`,
|
|
7785
7734
|
children: [
|
|
7786
7735
|
content.text && /*#__PURE__*/ (0, $bZRJW$jsx)((0, $1t2sy.default), {
|
|
7787
|
-
className: "
|
|
7736
|
+
className: "rf-ml-2 rf-mt-8 large:rf-ml-0 large:rf-mt-0",
|
|
7788
7737
|
title: (0, $7pypd.capitalizeFirstLetter)(content.text, locale),
|
|
7789
7738
|
numberOfResults: content.channelData?.numberOfResults || 0
|
|
7790
7739
|
}),
|
|
@@ -7845,10 +7794,10 @@ const $639b803f36b25cd8$var$Title = ({ className: className, title: title, numbe
|
|
|
7845
7794
|
children: title
|
|
7846
7795
|
}),
|
|
7847
7796
|
numberOfResults !== undefined && /*#__PURE__*/ (0, $bZRJW$jsxs)("div", {
|
|
7848
|
-
className: "rf-text-gray large:
|
|
7797
|
+
className: "rf-text-gray large:rf-ml-4",
|
|
7849
7798
|
children: [
|
|
7850
7799
|
numberOfResults,
|
|
7851
|
-
|
|
7800
|
+
" ",
|
|
7852
7801
|
numberOfResults > 1 ? translation.common.results : translation.common.result
|
|
7853
7802
|
]
|
|
7854
7803
|
})
|
|
@@ -7938,7 +7887,7 @@ const $07bfabc563cc37ce$var$ChosenItem = ({ className: className, filterItem: fi
|
|
|
7938
7887
|
]),
|
|
7939
7888
|
children: [
|
|
7940
7889
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
7941
|
-
className: "
|
|
7890
|
+
className: "rf-mr-2 large:rf-mr-3",
|
|
7942
7891
|
children: parent.id === 'Event.DateRange' ? `${filterItem.name.substring(8, 10)}/${filterItem.name.substring(5, 7)}/${filterItem.name.substring(0, 4)}` : (0, $7pypd.capitalizeFirstLetter)(filterItem.name, locale)
|
|
7943
7892
|
}),
|
|
7944
7893
|
/*#__PURE__*/ (0, $bZRJW$jsx)((0, $awh9M.default), {
|
|
@@ -7989,18 +7938,18 @@ const $a763dc4397f46467$var$FilterItem = ({ className: className, identifier: id
|
|
|
7989
7938
|
className: "rf-relative rf-mt-1",
|
|
7990
7939
|
children: [
|
|
7991
7940
|
/*#__PURE__*/ (0, $bZRJW$jsxs)("div", {
|
|
7992
|
-
className: `rf-px-4 rf-py-3
|
|
7941
|
+
className: `rf-px-4 rf-py-3 rf-mr-4 large-vertical:rf-py-4 ${style} rf-border rf-rounded-lg hover:rf-cursor-pointer rf-flex rf-flex-row rf-items-center rf-justify-center ${className}`,
|
|
7993
7942
|
onClick: (e)=>handleOpen(e),
|
|
7994
7943
|
children: [
|
|
7995
7944
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
7996
|
-
className: "
|
|
7945
|
+
className: "rf-mr-3",
|
|
7997
7946
|
children: (0, $7pypd.capitalizeFirstLetter)(filter.title, locale)
|
|
7998
7947
|
}),
|
|
7999
7948
|
opened ? /*#__PURE__*/ (0, $bZRJW$jsx)((0, $9a1BG.default), {}) : /*#__PURE__*/ (0, $bZRJW$jsx)((0, $8ccv9.default), {})
|
|
8000
7949
|
]
|
|
8001
7950
|
}),
|
|
8002
7951
|
opened && /*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
8003
|
-
className: "rf-absolute
|
|
7952
|
+
className: "rf-absolute rf-left-0 rf-top-110 rf-z-util rf-w-max rf-py-1 rf-px-4 rf-text-black rf-border rf-rounded-lg rf-border-black rf-bg-truewhite rf-flex rf-flex-col rf-items-center rf-justify-center",
|
|
8004
7953
|
style: {
|
|
8005
7954
|
transform: filter.id === 'Event.DateRange' && !isMobile ? 'translate(-20%, -20%) scale(0.6, 0.6)' : ''
|
|
8006
7955
|
},
|
|
@@ -9475,7 +9424,7 @@ const $21e6929845cbc712$var$MobileFilterPage = ({ close: close, resetFilters: re
|
|
|
9475
9424
|
className: "rf-flex rf-items-center",
|
|
9476
9425
|
children: [
|
|
9477
9426
|
filter.id !== 'Event.DateRange' && /*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
9478
|
-
className: "rf-text-sm rf-text-gray
|
|
9427
|
+
className: "rf-text-sm rf-text-gray rf-mr-5",
|
|
9479
9428
|
onClick: ()=>handleSelectAllAndOpen(filter),
|
|
9480
9429
|
children: (0, $7pypd.capitalizeFirstLetter)(translation.common.all, locale)
|
|
9481
9430
|
}),
|
|
@@ -9506,6 +9455,7 @@ parcelRequire("7b1UX");
|
|
|
9506
9455
|
var $5AMhU = parcelRequire("5AMhU");
|
|
9507
9456
|
const $845f9e0eac8addde$var$MobileUpperBand = ({ title: title, handleReset: handleReset, handleReturn: handleReturn })=>{
|
|
9508
9457
|
const translation = (0, $2fuDN.useLocaleStore)((state)=>state.currentTranslations);
|
|
9458
|
+
const isRTL = (0, $2fuDN.useLocaleStore)((state)=>state.isRTL);
|
|
9509
9459
|
return /*#__PURE__*/ (0, $bZRJW$jsxs)("div", {
|
|
9510
9460
|
className: "rf-w-full rf-py-4 rf-px-4 rf-flex rf-justify-between rf-items-center rf-border-b rf-border-b-black",
|
|
9511
9461
|
children: [
|
|
@@ -9517,13 +9467,13 @@ const $845f9e0eac8addde$var$MobileUpperBand = ({ title: title, handleReset: hand
|
|
|
9517
9467
|
className: "rf-w-8"
|
|
9518
9468
|
}),
|
|
9519
9469
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
9520
|
-
className: "
|
|
9470
|
+
className: "rf-ml-1",
|
|
9521
9471
|
children: title
|
|
9522
9472
|
})
|
|
9523
9473
|
]
|
|
9524
9474
|
}),
|
|
9525
9475
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
9526
|
-
className:
|
|
9476
|
+
className: `${isRTL ? 'rf-text-arabic' : 'rf-text-xsm'} rf-uppercase rf-text-secondary rf-underline`,
|
|
9527
9477
|
onClick: handleReset,
|
|
9528
9478
|
children: translation.template.reset
|
|
9529
9479
|
})
|
|
@@ -9660,24 +9610,18 @@ $parcel$export(module.exports, "default", () => $dac2275350fba77b$export$2e2bcd8
|
|
|
9660
9610
|
var $7pypd = parcelRequire("7pypd");
|
|
9661
9611
|
parcelRequire("7b1UX");
|
|
9662
9612
|
var $5AMhU = parcelRequire("5AMhU");
|
|
9663
|
-
var $4Hqlr = parcelRequire("4Hqlr");
|
|
9664
|
-
|
|
9665
|
-
var $2fuDN = parcelRequire("2fuDN");
|
|
9666
9613
|
const $dac2275350fba77b$var$BackButton = ({ title: title, className: className, handleBack: handleBack })=>{
|
|
9667
|
-
const isRTL = (0, $2fuDN.useLocaleStore)((state)=>state.isRTL);
|
|
9668
9614
|
return /*#__PURE__*/ (0, $bZRJW$jsxs)("button", {
|
|
9669
9615
|
className: `rf-flex rf-flex-row rf-items-center ${className}`,
|
|
9670
9616
|
onClick: handleBack,
|
|
9671
9617
|
"aria-label": title,
|
|
9672
9618
|
"data-map": "fermer",
|
|
9673
9619
|
children: [
|
|
9674
|
-
|
|
9675
|
-
className: "rf-w-8"
|
|
9676
|
-
}) : /*#__PURE__*/ (0, $bZRJW$jsx)((0, $5AMhU.default), {
|
|
9620
|
+
/*#__PURE__*/ (0, $bZRJW$jsx)((0, $5AMhU.default), {
|
|
9677
9621
|
className: "rf-w-8"
|
|
9678
9622
|
}),
|
|
9679
9623
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
9680
|
-
className: "
|
|
9624
|
+
className: "rf-ml-1",
|
|
9681
9625
|
children: (0, $7pypd.capitalizeFirstLetter)(title)
|
|
9682
9626
|
})
|
|
9683
9627
|
]
|
|
@@ -9807,7 +9751,7 @@ const $82acedcc07951f36$var$AbsoluteLargeClosingButton = ({ dashboardVisible: da
|
|
|
9807
9751
|
onClick();
|
|
9808
9752
|
};
|
|
9809
9753
|
return isMobile ? /*#__PURE__*/ (0, $bZRJW$jsx)((0, $bZRJW$react).Fragment, {}) : useOldRemote ? /*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
9810
|
-
className: `rf-absolute ${hidden && 'rf-hidden'} rf-w-24 rf-flex rf-justify-center
|
|
9754
|
+
className: `rf-absolute ${hidden && 'rf-hidden'} rf-w-24 rf-flex rf-justify-center rf-right-0 ${zIndexClassname || 'rf-z-ui'}`,
|
|
9811
9755
|
style: {
|
|
9812
9756
|
top: hideMenu ? `calc(${top} - 6rem)` : top
|
|
9813
9757
|
},
|
|
@@ -9875,6 +9819,7 @@ var $awh9M = parcelRequire("awh9M");
|
|
|
9875
9819
|
const $b1ebb9bae475d3c9$var$DashboardButton = ({ dashboardVisible: dashboardVisible, onClick: onClick })=>{
|
|
9876
9820
|
const translation = (0, $2fuDN.useLocaleStore)((state)=>state.currentTranslations);
|
|
9877
9821
|
const locale = (0, $2fuDN.useLocaleStore)((state)=>state.locale);
|
|
9822
|
+
const isRTL = (0, $2fuDN.useLocaleStore)((state)=>state.isRTL);
|
|
9878
9823
|
const [label, setLabel] = (0, $bZRJW$useState)('');
|
|
9879
9824
|
(0, $bZRJW$useEffect)(()=>{
|
|
9880
9825
|
setLabel(dashboardVisible ? translation.common.close : translation.common.menu);
|
|
@@ -9882,7 +9827,7 @@ const $b1ebb9bae475d3c9$var$DashboardButton = ({ dashboardVisible: dashboardVisi
|
|
|
9882
9827
|
locale
|
|
9883
9828
|
]);
|
|
9884
9829
|
return /*#__PURE__*/ (0, $bZRJW$jsxs)("button", {
|
|
9885
|
-
className:
|
|
9830
|
+
className: `rf-w-18 rf-h-18 rf-mb-6 rf-flex rf-flex-col rf-justify-center rf-items-center rf-bg-truewhite ${isRTL ? 'rf-text-arabic' : 'rf-text-xsm'} rf-text-trueblack rf-border rf-border-menuBorder rf-rounded-half hover:rf-cursor-pointer rf-shadow-[0_3px_6px_#606267]`,
|
|
9886
9831
|
"aria-label": label,
|
|
9887
9832
|
// data-map used in interactive map to use this button externaly
|
|
9888
9833
|
"data-map": dashboardVisible ? 'fermer' : 'dashboard',
|
|
@@ -10124,7 +10069,7 @@ const $191cbcfd81dc7add$var$Logo = ({ className: className })=>{
|
|
|
10124
10069
|
const configuration = (0, $1x02c.useRetorikStore)((state)=>state.configuration);
|
|
10125
10070
|
return configuration.logo?.src ? /*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
10126
10071
|
id: "retorik-customer-logo",
|
|
10127
|
-
className: className || 'rf-absolute rf-m-4 large:rf-m-8 rf-top-0
|
|
10072
|
+
className: className || 'rf-absolute rf-m-4 large:rf-m-8 rf-top-0 rf-left-0',
|
|
10128
10073
|
children: /*#__PURE__*/ (0, $bZRJW$jsx)("img", {
|
|
10129
10074
|
src: configuration.logo.src,
|
|
10130
10075
|
alt: "Logo",
|
|
@@ -10261,6 +10206,7 @@ function $f48c640446d42682$var$instanceOfCustomMenuDisplayGeneratorProps(object)
|
|
|
10261
10206
|
const $f48c640446d42682$var$DisplayGenerator = (props)=>{
|
|
10262
10207
|
const translation = (0, $2fuDN.useLocaleStore)((state)=>state.currentTranslations);
|
|
10263
10208
|
const locale = (0, $2fuDN.useLocaleStore)((state)=>state.locale);
|
|
10209
|
+
const isRTL = (0, $2fuDN.useLocaleStore)((state)=>state.isRTL);
|
|
10264
10210
|
const isMobile = (0, $1Qww3.useViewStore)((state)=>state.isMobile);
|
|
10265
10211
|
const themeColors = (0, $1Qww3.useViewStore)((state)=>state.themeColors);
|
|
10266
10212
|
const setRoute = (0, $1Qww3.useViewStore)((state)=>state.actions.setRoute);
|
|
@@ -10340,7 +10286,7 @@ const $f48c640446d42682$var$DisplayGenerator = (props)=>{
|
|
|
10340
10286
|
color: colorButtonHandle
|
|
10341
10287
|
}),
|
|
10342
10288
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
10343
|
-
className: "
|
|
10289
|
+
className: "rf-ml-4 rf-font-bold",
|
|
10344
10290
|
children: (0, $7pypd.capitalizeFirstLetter)(label, locale)
|
|
10345
10291
|
})
|
|
10346
10292
|
]
|
|
@@ -10361,7 +10307,7 @@ const $f48c640446d42682$var$DisplayGenerator = (props)=>{
|
|
|
10361
10307
|
color: colorButtonHandle
|
|
10362
10308
|
}),
|
|
10363
10309
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
10364
|
-
className:
|
|
10310
|
+
className: `rf-uppercase rf-text-[#575F6B] ${isRTL ? 'rf-text-arabic' : 'rf-text-xs'} large-vertical:rf-text-basecustomuppercase`,
|
|
10365
10311
|
children: label
|
|
10366
10312
|
})
|
|
10367
10313
|
]
|
|
@@ -11029,6 +10975,7 @@ function $7144545accc7269e$var$instanceOfCustomMenuDisplayGeneratorProps(object)
|
|
|
11029
10975
|
const $7144545accc7269e$var$DisplaySubGenerator = (props)=>{
|
|
11030
10976
|
const translation = (0, $2fuDN.useLocaleStore)((state)=>state.currentTranslations);
|
|
11031
10977
|
const locale = (0, $2fuDN.useLocaleStore)((state)=>state.locale);
|
|
10978
|
+
const isRTL = (0, $2fuDN.useLocaleStore)((state)=>state.isRTL);
|
|
11032
10979
|
const isMobile = (0, $1Qww3.useViewStore)((state)=>state.isMobile);
|
|
11033
10980
|
const { setCurrentCustomView: setCurrentCustomView, setCurrentSubView: setCurrentSubView } = (0, $j67YK.useUtilsStore)((state)=>state.actions);
|
|
11034
10981
|
const [label, setLabel] = (0, $bZRJW$useState)('');
|
|
@@ -11088,7 +11035,7 @@ const $7144545accc7269e$var$DisplaySubGenerator = (props)=>{
|
|
|
11088
11035
|
className: "rf-h-8 rf-w-8 rf-flex"
|
|
11089
11036
|
}),
|
|
11090
11037
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
11091
|
-
className:
|
|
11038
|
+
className: `rf-uppercase rf-text-[#575F6B] ${isRTL ? 'rf-text-arabic' : 'rf-text-xs'}`,
|
|
11092
11039
|
children: label
|
|
11093
11040
|
})
|
|
11094
11041
|
]
|
|
@@ -11185,7 +11132,7 @@ const $51b46ba4dcc48c83$var$ParameterButton = ({ title: title, color: color, ico
|
|
|
11185
11132
|
className: "rf-flex rf-flex-row rf-items-center",
|
|
11186
11133
|
children: [
|
|
11187
11134
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
11188
|
-
className: "
|
|
11135
|
+
className: "rf-mr-3 rf-text-lightgray rf-normal-case",
|
|
11189
11136
|
children: (0, (/*@__PURE__*/$parcel$interopDefault($8dUAa)))[locale]
|
|
11190
11137
|
}),
|
|
11191
11138
|
/*#__PURE__*/ (0, $bZRJW$jsx)((0, $pEipO.default), {
|
|
@@ -11215,7 +11162,7 @@ const $51b46ba4dcc48c83$var$ParameterButton = ({ title: title, color: color, ico
|
|
|
11215
11162
|
color: color
|
|
11216
11163
|
}) : /*#__PURE__*/ (0, $bZRJW$jsx)((0, $bZRJW$react).Fragment, {}),
|
|
11217
11164
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
11218
|
-
className: "
|
|
11165
|
+
className: "rf-ml-1 rf-uppercase",
|
|
11219
11166
|
children: title
|
|
11220
11167
|
})
|
|
11221
11168
|
]
|
|
@@ -11257,6 +11204,7 @@ var $8mS4T = parcelRequire("8mS4T");
|
|
|
11257
11204
|
const $c3ffc5389c8d4942$var$LanguageButton = ()=>{
|
|
11258
11205
|
const translation = (0, $2fuDN.useLocaleStore)((state)=>state.currentTranslations);
|
|
11259
11206
|
const locale = (0, $2fuDN.useLocaleStore)((state)=>state.locale);
|
|
11207
|
+
const isRTL = (0, $2fuDN.useLocaleStore)((state)=>state.isRTL);
|
|
11260
11208
|
const supported = (0, $2fuDN.useLocaleStore)((state)=>state.supported);
|
|
11261
11209
|
const isMobile = (0, $1Qww3.useViewStore)((state)=>state.isMobile);
|
|
11262
11210
|
const themeColors = (0, $1Qww3.useViewStore)((state)=>state.themeColors);
|
|
@@ -11301,7 +11249,7 @@ const $c3ffc5389c8d4942$var$LanguageButton = ()=>{
|
|
|
11301
11249
|
color: currentSubView === (0, $4ucVo.CurrentSubView).languages ? themeColors.secondary : '#A4A7AF',
|
|
11302
11250
|
onClick: (e)=>handleClick(e)
|
|
11303
11251
|
}) : /*#__PURE__*/ (0, $bZRJW$jsxs)("button", {
|
|
11304
|
-
className: "rf-absolute rf-z-ui rf-min-w-24
|
|
11252
|
+
className: "rf-absolute rf-z-ui rf-min-w-24 rf-right-0 rf-px-2 rf-flex rf-flex-row rf-items-center rf-rounded-l-lg",
|
|
11305
11253
|
style: {
|
|
11306
11254
|
bottom: bottom,
|
|
11307
11255
|
background: 'linear-gradient(#F8F8FC, #EDEEF3)'
|
|
@@ -11309,14 +11257,14 @@ const $c3ffc5389c8d4942$var$LanguageButton = ()=>{
|
|
|
11309
11257
|
onClick: handleClick,
|
|
11310
11258
|
children: [
|
|
11311
11259
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
11312
|
-
className: "rf-h-8
|
|
11260
|
+
className: "rf-h-8 rf-mr-2",
|
|
11313
11261
|
children: /*#__PURE__*/ (0, $bZRJW$jsx)("img", {
|
|
11314
11262
|
className: "rf-h-full",
|
|
11315
11263
|
src: `https://flagsapi.com/${mainLocale}/flat/64.png`
|
|
11316
11264
|
})
|
|
11317
11265
|
}),
|
|
11318
11266
|
/*#__PURE__*/ (0, $bZRJW$jsxs)("div", {
|
|
11319
|
-
className:
|
|
11267
|
+
className: `rf-flex rf-flex-col rf-items-start ${isRTL ? 'rf-text-arabic' : 'rf-text-xsm'}`,
|
|
11320
11268
|
children: [
|
|
11321
11269
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
11322
11270
|
className: "rf-text-trueblack",
|
|
@@ -12183,7 +12131,7 @@ const $612dea69c431d413$var$ListContainer = ({ hasFilterOrSuggestedAction: hasFi
|
|
|
12183
12131
|
direction: "top",
|
|
12184
12132
|
display: !!(numberOfDisplayed?.current && numberOfDisplayed.current > currentPagination),
|
|
12185
12133
|
scrollHandler: ()=>scrollToRef(),
|
|
12186
|
-
className: "rf-absolute rf-bottom-1/4
|
|
12134
|
+
className: "rf-absolute rf-bottom-1/4 rf-right-3 rf-z-ui rf-w-9 rf-h-9 rf-cursor-pointer rf-bg-[#00000050] rf-p-[7px_12px] rf-rounded-[20px] rf-flex"
|
|
12187
12135
|
})
|
|
12188
12136
|
]
|
|
12189
12137
|
}) : /*#__PURE__*/ (0, $bZRJW$jsx)((0, $bZRJW$react).Fragment, {});
|
|
@@ -12865,14 +12813,14 @@ const $d1864a22a5f5cc20$var$ClassicButton = ({ url: url, text: text, description
|
|
|
12865
12813
|
href: url,
|
|
12866
12814
|
target: "_blank",
|
|
12867
12815
|
rel: "noopener noreferrer",
|
|
12868
|
-
className: "rf-card-button rf-flex
|
|
12816
|
+
className: "rf-card-button rf-flex rf-items-center",
|
|
12869
12817
|
children: [
|
|
12870
12818
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
12871
12819
|
className: "rf-h-6 rf-w-6",
|
|
12872
12820
|
children: download ? /*#__PURE__*/ (0, $bZRJW$jsx)((0, $bQZBp.default), {}) : isRTL ? /*#__PURE__*/ (0, $bZRJW$jsx)((0, $5AMhU.default), {}) : /*#__PURE__*/ (0, $bZRJW$jsx)((0, $4Hqlr.default), {})
|
|
12873
12821
|
}),
|
|
12874
12822
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
12875
|
-
className:
|
|
12823
|
+
className: `${isRTL ? 'rf-mr-2' : 'rf-ml-2'} rf-truncate`,
|
|
12876
12824
|
children: text || ''
|
|
12877
12825
|
})
|
|
12878
12826
|
]
|
|
@@ -12926,7 +12874,7 @@ const $c21552de80cae6ad$var$BorderlessButton = ({ url: url, text: text, download
|
|
|
12926
12874
|
})
|
|
12927
12875
|
}),
|
|
12928
12876
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
12929
|
-
className:
|
|
12877
|
+
className: `${isRTL ? 'rf-mr-4' : 'rf-ml-4'}`,
|
|
12930
12878
|
children: text || ''
|
|
12931
12879
|
})
|
|
12932
12880
|
]
|
|
@@ -13390,6 +13338,7 @@ parcelRequire("SZcIF");
|
|
|
13390
13338
|
var $aJKB3 = parcelRequire("aJKB3");
|
|
13391
13339
|
const $d9ae9dff2dc9b518$var$SuggestionAttachment = ({ suggestions: suggestions, title: title, description: description, height: height, history: history, showTutorial: showTutorial })=>{
|
|
13392
13340
|
const translation = (0, $2fuDN.useLocaleStore)((state)=>state.currentTranslations);
|
|
13341
|
+
const isRTL = (0, $2fuDN.useLocaleStore)((state)=>state.isRTL);
|
|
13393
13342
|
const configuration = (0, $1x02c.useRetorikStore)((state)=>state.configuration);
|
|
13394
13343
|
const themeColors = (0, $1Qww3.useViewStore)((state)=>state.themeColors);
|
|
13395
13344
|
const onTutorialClick = ()=>{
|
|
@@ -13405,11 +13354,11 @@ const $d9ae9dff2dc9b518$var$SuggestionAttachment = ({ suggestions: suggestions,
|
|
|
13405
13354
|
children: [
|
|
13406
13355
|
title && // Title on the left if there is a description, middle otherwise
|
|
13407
13356
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
13408
|
-
className: `rf-w-full ${description ? '
|
|
13357
|
+
className: `rf-w-full ${description ? '' : 'rf-text-center'} rf-title-size-auto ${configuration.isUsedOnBorne ? 'rf-truncate' : 'rf-line-clamp-2'}`,
|
|
13409
13358
|
children: (0, $7pypd.capitalizeFirstLetter)(title)
|
|
13410
13359
|
}),
|
|
13411
13360
|
description && /*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
13412
|
-
className: "rf-
|
|
13361
|
+
className: "rf-w-full",
|
|
13413
13362
|
children: description
|
|
13414
13363
|
}),
|
|
13415
13364
|
suggestions?.map((data, key)=>{
|
|
@@ -13423,15 +13372,15 @@ const $d9ae9dff2dc9b518$var$SuggestionAttachment = ({ suggestions: suggestions,
|
|
|
13423
13372
|
}, key);
|
|
13424
13373
|
}),
|
|
13425
13374
|
showTutorial && /*#__PURE__*/ (0, $bZRJW$jsxs)("div", {
|
|
13426
|
-
className: "rf-
|
|
13375
|
+
className: "rf-w-full rf-flex rf-items-end rf-italic",
|
|
13427
13376
|
children: [
|
|
13428
13377
|
/*#__PURE__*/ (0, $bZRJW$jsx)((0, $aJKB3.default), {
|
|
13429
|
-
className:
|
|
13378
|
+
className: `${isRTL ? 'rf-pl-2' : 'rf-pr-2'} rf-h-6`,
|
|
13430
13379
|
color: themeColors.card.button.text.default
|
|
13431
13380
|
}),
|
|
13432
13381
|
`${translation.common.needhelp} ${translation.suggestion.consult}`,
|
|
13433
13382
|
/*#__PURE__*/ (0, $bZRJW$jsx)("span", {
|
|
13434
|
-
className:
|
|
13383
|
+
className: `${isRTL ? 'rf-pr-1' : 'rf-pl-1'} rf-underline rf-cursor-pointer`,
|
|
13435
13384
|
onClick: onTutorialClick,
|
|
13436
13385
|
children: translation.suggestion.thetutorial
|
|
13437
13386
|
})
|
|
@@ -13517,7 +13466,7 @@ const $40e461106cbc7ca0$var$BorderlessButtonMessage = ({ text: text, differentTe
|
|
|
13517
13466
|
})
|
|
13518
13467
|
}),
|
|
13519
13468
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
13520
|
-
className:
|
|
13469
|
+
className: `${isRTL ? 'rf-mr-4' : 'rf-ml-4'}`,
|
|
13521
13470
|
children: text || ''
|
|
13522
13471
|
})
|
|
13523
13472
|
]
|
|
@@ -13685,7 +13634,7 @@ const $762a878636021049$var$GridAttachment = ({ index: index, text: text, textCo
|
|
|
13685
13634
|
})
|
|
13686
13635
|
}),
|
|
13687
13636
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
13688
|
-
className: `rf-flex rf-min-h-8 large:rf-min-h-[2.3rem] ${lineClamp} rf-items-start rf-text-small-size-auto
|
|
13637
|
+
className: `rf-flex rf-min-h-8 large:rf-min-h-[2.3rem] ${lineClamp} rf-items-start rf-text-small-size-auto rf-overflow-y-hidden`,
|
|
13689
13638
|
children: /*#__PURE__*/ (0, $bZRJW$jsx)("p", {
|
|
13690
13639
|
className: `${maxHeight} rf-overflow-y-clip`,
|
|
13691
13640
|
dangerouslySetInnerHTML: {
|
|
@@ -14106,12 +14055,12 @@ const $768ba3709c161186$var$SuggestionsItem = ({ className: className, title: ti
|
|
|
14106
14055
|
const locale = (0, $2fuDN.useLocaleStore)((state)=>state.locale);
|
|
14107
14056
|
return /*#__PURE__*/ (0, $bZRJW$jsxs)("button", {
|
|
14108
14057
|
onClick: ()=>handleClick(value),
|
|
14109
|
-
className: `rf-h-fit rf-px-4 rf-py-3
|
|
14058
|
+
className: `rf-h-fit rf-px-4 rf-py-3 rf-mr-4 rf-mb-4 large-vertical:rf-py-4 rf-border rf-rounded-lg rf-bg-templateBackground rf-text-black rf-border-black hover:rf-cursor-pointer rf-flex rf-flex-row rf-items-center rf-justify-center ${className}`,
|
|
14110
14059
|
"aria-label": title,
|
|
14111
14060
|
children: [
|
|
14112
14061
|
(0, $7pypd.capitalizeFirstLetter)(title, locale),
|
|
14113
14062
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
14114
|
-
className: "
|
|
14063
|
+
className: "rf-ml-6 rf-text-gray",
|
|
14115
14064
|
children: results || 0
|
|
14116
14065
|
})
|
|
14117
14066
|
]
|
|
@@ -14202,7 +14151,7 @@ const $50630363f33e0940$var$SubMenuClosing = ({ className: className, background
|
|
|
14202
14151
|
/*#__PURE__*/ (0, $bZRJW$jsx)((0, $3y61A.default), {
|
|
14203
14152
|
title: backIsConversation ? translation.menu.backconversation : isMobile ? translation.common.back : translation.menu.backconversation,
|
|
14204
14153
|
handleBack: handleClose,
|
|
14205
|
-
className: `rf-relative large:rf-absolute ${useOldRemote ? 'large-tactile:rf-hidden' : 'large-vertical:rf-hidden'} rf-pb-6 large:
|
|
14154
|
+
className: `rf-relative large:rf-absolute ${useOldRemote ? 'large-tactile:rf-hidden' : 'large-vertical:rf-hidden'} rf-pb-6 large:rf-left-4 large:rf-top-8 rf-text-size-auto`
|
|
14206
14155
|
}),
|
|
14207
14156
|
/*#__PURE__*/ (0, $bZRJW$jsxs)("div", {
|
|
14208
14157
|
className: `rf-w-full large:rf-w-fit large:rf-max-w-full large-vertical:rf-max-w-2/3 large:rf-px-6 rf-flex rf-flex-col large-vertical:rf-text-size-auto rf-overflow-y-scroll rf-scrollbar-hidden ${className}`,
|
|
@@ -14313,7 +14262,7 @@ const $67ce0e678b71b513$var$SingleCardContainer = ({ attachment: attachment, his
|
|
|
14313
14262
|
triggerScroll?.();
|
|
14314
14263
|
}, []);
|
|
14315
14264
|
return attachment.contentType.includes('.card') ? /*#__PURE__*/ (0, $bZRJW$jsx)((0, $iPLKi.default), {
|
|
14316
|
-
className: history ? 'rf-w-full' : 'rf-w-full rf-min-w-full landscape-retorik:rf-w-[48%] landscape-retorik:rf-min-w-[48%] landscape-retorik:
|
|
14265
|
+
className: history ? 'rf-w-full' : 'rf-w-full rf-min-w-full landscape-retorik:rf-w-[48%] landscape-retorik:rf-min-w-[48%] landscape-retorik:rf-ml-1/5 large-vertical:rf-w-3/5 large-vertical:rf-min-w-3/5 rf-max-h-full',
|
|
14317
14266
|
children: (0, $3fJQe.default)({
|
|
14318
14267
|
attachment: attachment,
|
|
14319
14268
|
history: history
|
|
@@ -14336,8 +14285,11 @@ $parcel$export(module.exports, "default", () => $4479e13de3bb7205$export$2e2bcd8
|
|
|
14336
14285
|
|
|
14337
14286
|
|
|
14338
14287
|
|
|
14288
|
+
var $2fuDN = parcelRequire("2fuDN");
|
|
14289
|
+
|
|
14339
14290
|
var $l2u1n = parcelRequire("l2u1n");
|
|
14340
14291
|
const $4479e13de3bb7205$var$Card = ({ children: children, className: className, shadow: shadow = false })=>{
|
|
14292
|
+
const isRTL = (0, $2fuDN.useLocaleStore)((state)=>state.isRTL);
|
|
14341
14293
|
const [scrollButtonDisplay, setScrollButtonDisplay] = (0, $bZRJW$useState)(false);
|
|
14342
14294
|
const [scrollButtonDirection, setScrollButtonDirection] = (0, $bZRJW$useState)('bottom');
|
|
14343
14295
|
const botEndRef = (0, $bZRJW$useRef)(null);
|
|
@@ -14397,6 +14349,7 @@ const $4479e13de3bb7205$var$Card = ({ children: children, className: className,
|
|
|
14397
14349
|
return ()=>timer && clearTimeout(timer);
|
|
14398
14350
|
}, []);
|
|
14399
14351
|
return /*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
14352
|
+
dir: isRTL ? 'rtl' : 'ltr',
|
|
14400
14353
|
className: `rf-relative rf-max-h-full rf-flex rf-flex-col rf-text-size-auto rf-unselectable ${className}`,
|
|
14401
14354
|
draggable: true,
|
|
14402
14355
|
onDragStart: handleDragStart,
|
|
@@ -14544,8 +14497,6 @@ var $j67YK = parcelRequire("j67YK");
|
|
|
14544
14497
|
|
|
14545
14498
|
var $1Qww3 = parcelRequire("1Qww3");
|
|
14546
14499
|
|
|
14547
|
-
var $2fuDN = parcelRequire("2fuDN");
|
|
14548
|
-
|
|
14549
14500
|
var $cU5vf = parcelRequire("cU5vf");
|
|
14550
14501
|
|
|
14551
14502
|
var $4ucVo = parcelRequire("4ucVo");
|
|
@@ -14563,7 +14514,6 @@ const $78df6258e38451c4$var$widthCoefficients = {
|
|
|
14563
14514
|
const $78df6258e38451c4$var$defaultTransitionDuration = '300ms';
|
|
14564
14515
|
const $78df6258e38451c4$var$velocityBreakpoint = 0.5;
|
|
14565
14516
|
const $78df6258e38451c4$var$Carousel = /*#__PURE__*/ (0, $bZRJW$react).forwardRef(({ direction: direction, history: history, draft: draft, grid: grid, gridTitle: gridTitle, forcedCurrentCard: forcedCurrentCard, setCarouselCardWidth: setCarouselCardWidth, setForcedCurrentCardInCarousel: setForcedCurrentCardInCarousel, children: children }, ref)=>{
|
|
14566
|
-
const isRTL = (0, $2fuDN.useLocaleStore)((state)=>state.isRTL);
|
|
14567
14517
|
const mode = (0, $i1rfm.useSpeechStore)((state)=>state.mode);
|
|
14568
14518
|
const forceMobileView = (0, $1x02c.useRetorikStore)((state)=>state.configuration.forceMobileView);
|
|
14569
14519
|
const currentDeviceType = (0, $1Qww3.useViewStore)((state)=>state.currentDeviceType);
|
|
@@ -14687,32 +14637,26 @@ const $78df6258e38451c4$var$Carousel = /*#__PURE__*/ (0, $bZRJW$react).forwardRe
|
|
|
14687
14637
|
* On currentCard, cardWidth, cardHeight, currentPadding states change :
|
|
14688
14638
|
* - set translation state depending on the direction
|
|
14689
14639
|
*/ (0, $bZRJW$useEffect)(()=>{
|
|
14690
|
-
if (currentCard !== undefined && cardWidth !== undefined && cardHeight !== undefined && currentPadding !== undefined) direction === 'vertical' ? setTranslation(`translateY(calc(-${currentCard * cardHeight}px - ${currentCard * gap}rem))`) : setTranslation(`translateX(calc(
|
|
14640
|
+
if (currentCard !== undefined && cardWidth !== undefined && cardHeight !== undefined && currentPadding !== undefined) direction === 'vertical' ? setTranslation(`translateY(calc(-${currentCard * cardHeight}px - ${currentCard * gap}rem))`) : setTranslation(`translateX(calc(-${currentCard * cardWidth}px - ${currentCard * gap}rem + ${currentPadding}px))`);
|
|
14691
14641
|
}, [
|
|
14692
14642
|
currentCard,
|
|
14693
14643
|
cardWidth,
|
|
14694
14644
|
cardHeight,
|
|
14695
|
-
currentPadding
|
|
14696
|
-
isRTL
|
|
14645
|
+
currentPadding
|
|
14697
14646
|
]);
|
|
14698
14647
|
/**
|
|
14699
14648
|
* On wheeling state change :
|
|
14700
14649
|
* - call either onSwipeRight or onSwipeLeft (with high values to enter the right part of the if condition), depending on the wheeling value (positive or negative)
|
|
14701
14650
|
*/ (0, $bZRJW$useEffect)(()=>{
|
|
14702
|
-
if (wheeling)
|
|
14703
|
-
const leftSwipe = isRTL ? onSwipeRight : onSwipeLeft;
|
|
14704
|
-
const rightSwipe = isRTL ? onSwipeLeft : onSwipeRight;
|
|
14705
|
-
wheeling > 0 ? leftSwipe(1000, 1000) : rightSwipe(1000, 1000);
|
|
14706
|
-
}
|
|
14651
|
+
if (wheeling) wheeling > 0 ? onSwipeLeft(1000, 1000) : onSwipeRight(1000, 1000);
|
|
14707
14652
|
}, [
|
|
14708
|
-
wheeling
|
|
14709
|
-
isRTL
|
|
14653
|
+
wheeling
|
|
14710
14654
|
]);
|
|
14711
14655
|
/**
|
|
14712
14656
|
* On call :
|
|
14713
14657
|
* - set translation to its initial state
|
|
14714
14658
|
*/ const resetPosition = ()=>{
|
|
14715
|
-
if (cardWidth !== undefined && currentPadding !== undefined) setTranslation(`translateX(calc(
|
|
14659
|
+
if (cardWidth !== undefined && currentPadding !== undefined) setTranslation(`translateX(calc(-${currentCard * cardWidth}px - ${currentCard * gap}rem + ${currentPadding}px))`);
|
|
14716
14660
|
};
|
|
14717
14661
|
/**
|
|
14718
14662
|
* On call :
|
|
@@ -14721,11 +14665,11 @@ const $78df6258e38451c4$var$Carousel = /*#__PURE__*/ (0, $bZRJW$react).forwardRe
|
|
|
14721
14665
|
*/ const bounce = (left)=>{
|
|
14722
14666
|
if (!cardWidth || currentPadding === undefined) return;
|
|
14723
14667
|
setTransitionDuration($78df6258e38451c4$var$defaultTransitionDuration);
|
|
14724
|
-
const direction = left ?
|
|
14725
|
-
setTranslation(`translateX(calc(
|
|
14668
|
+
const direction = left ? '-' : '+';
|
|
14669
|
+
setTranslation(`translateX(calc(-${currentCard * cardWidth}px - ${currentCard * gap}rem + ${currentPadding}px ${direction} ${cardWidth / 10}px))`);
|
|
14726
14670
|
if (timerRef && timerRef.current !== null) clearTimeout(timerRef.current);
|
|
14727
14671
|
timerRef.current = setTimeout(()=>{
|
|
14728
|
-
setTranslation(`translateX(calc(
|
|
14672
|
+
setTranslation(`translateX(calc(-${currentCard * cardWidth}px - ${currentCard * gap}rem + ${currentPadding}px))`);
|
|
14729
14673
|
}, 300);
|
|
14730
14674
|
};
|
|
14731
14675
|
/**
|
|
@@ -14779,12 +14723,11 @@ const $78df6258e38451c4$var$Carousel = /*#__PURE__*/ (0, $bZRJW$react).forwardRe
|
|
|
14779
14723
|
const available = currentCard === 0 || currentCard === nbCards - 1 ? checkSwipingAvailable(distance, gap) : true;
|
|
14780
14724
|
if (cardWidth !== undefined) {
|
|
14781
14725
|
setTransitionDuration('0ms');
|
|
14782
|
-
const effectiveDistance = isRTL ? -distance : distance;
|
|
14783
14726
|
if (available) {
|
|
14784
|
-
if (currentCard !== undefined && cardHeight !== undefined && currentPadding !== undefined) setTranslation(`translateX(calc(
|
|
14727
|
+
if (currentCard !== undefined && cardHeight !== undefined && currentPadding !== undefined) setTranslation(`translateX(calc(-${currentCard * cardWidth}px - ${currentCard * gap}rem + ${currentPadding}px - ${distance}px))`);
|
|
14785
14728
|
} else {
|
|
14786
14729
|
const bounceLimit = cardWidth / 3;
|
|
14787
|
-
if (Math.abs(distance) <= bounceLimit / 2) setTranslation(`translateX(calc(
|
|
14730
|
+
if (Math.abs(distance) <= bounceLimit / 2) setTranslation(`translateX(calc(-${currentCard * cardWidth}px - ${currentCard * gap}rem + ${currentPadding}px - ${distance * (1 - Math.abs(distance) / bounceLimit)}px))`);
|
|
14788
14731
|
}
|
|
14789
14732
|
}
|
|
14790
14733
|
};
|
|
@@ -14841,16 +14784,13 @@ const $78df6258e38451c4$var$Carousel = /*#__PURE__*/ (0, $bZRJW$react).forwardRe
|
|
|
14841
14784
|
setWheeling(delta > 0 ? Date.now() : -Date.now());
|
|
14842
14785
|
}
|
|
14843
14786
|
};
|
|
14844
|
-
const titleStyle = isRTL ? {
|
|
14845
|
-
paddingRight: currentPadding
|
|
14846
|
-
} : {
|
|
14847
|
-
paddingLeft: currentPadding
|
|
14848
|
-
};
|
|
14849
14787
|
return /*#__PURE__*/ (0, $bZRJW$jsxs)((0, $bZRJW$react).Fragment, {
|
|
14850
14788
|
children: [
|
|
14851
14789
|
gridTitle && /*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
14852
|
-
className: `rf-w-full
|
|
14853
|
-
style:
|
|
14790
|
+
className: `rf-w-full rf-text-left rf-title-large-size-auto ${mode === (0, $4ucVo.Mode).vocal ? 'rf-text-truewhite rf-text-shadow-black' : 'rf-text-textModePanelConversationBot'}`,
|
|
14791
|
+
style: {
|
|
14792
|
+
paddingLeft: currentPadding
|
|
14793
|
+
},
|
|
14854
14794
|
children: gridTitle
|
|
14855
14795
|
}),
|
|
14856
14796
|
/*#__PURE__*/ (0, $bZRJW$jsxs)((0, $bZRJW$animated).div, {
|
|
@@ -14869,11 +14809,11 @@ const $78df6258e38451c4$var$Carousel = /*#__PURE__*/ (0, $bZRJW$react).forwardRe
|
|
|
14869
14809
|
children: /*#__PURE__*/ (0, $bZRJW$jsx)((0, $da6v2.default), {
|
|
14870
14810
|
direction: direction || 'horizontal',
|
|
14871
14811
|
onSwiping: onSwiping,
|
|
14872
|
-
onSwipeLeft:
|
|
14873
|
-
onSwipeRight:
|
|
14812
|
+
onSwipeLeft: onSwipeLeft,
|
|
14813
|
+
onSwipeRight: onSwipeRight,
|
|
14874
14814
|
onSwipeTop: onSwipeTop,
|
|
14875
14815
|
onSwipeBottom: onSwipeBottom,
|
|
14876
|
-
className: direction === 'vertical' ? 'rf-flex rf-justify-center' : !isMobile ? history ?
|
|
14816
|
+
className: direction === 'vertical' ? 'rf-flex rf-justify-center' : !isMobile ? history ? 'rf-opacity-gradient-l-thin' : 'rf-opacity-gradient-l' : '',
|
|
14877
14817
|
children: /*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
14878
14818
|
ref: ref,
|
|
14879
14819
|
className: `rf-relative ${direction === 'vertical' ? 'rf-h-max' : 'rf-w-max'} ${enableTranslation ? '' : 'rf-m-auto'} rf-transition-transform`,
|
|
@@ -15094,6 +15034,7 @@ const $2ebe7b2fda999dc7$var$Grid = ({ title: title, history: history, qrCodeData
|
|
|
15094
15034
|
const mode = (0, $i1rfm.useSpeechStore)((state)=>state.mode);
|
|
15095
15035
|
const configuration = (0, $1x02c.useRetorikStore)((state)=>state.configuration);
|
|
15096
15036
|
const translation = (0, $2fuDN.useLocaleStore)((state)=>state.currentTranslations);
|
|
15037
|
+
const isRTL = (0, $2fuDN.useLocaleStore)((state)=>state.isRTL);
|
|
15097
15038
|
const clickedOnUI = (0, $j67YK.useUtilsStore)((state)=>state.clickedOnUI);
|
|
15098
15039
|
const setClickedOnUI = (0, $j67YK.useUtilsStore)((state)=>state.actions.setClickedOnUI);
|
|
15099
15040
|
const useOldRemote = (0, $1x02c.useRetorikStore)((state)=>state.configuration.useOldRemote);
|
|
@@ -15238,10 +15179,11 @@ const $2ebe7b2fda999dc7$var$Grid = ({ title: title, history: history, qrCodeData
|
|
|
15238
15179
|
};
|
|
15239
15180
|
return nbCards ? /*#__PURE__*/ (0, $bZRJW$jsxs)("div", {
|
|
15240
15181
|
id: "retorik-grid",
|
|
15241
|
-
|
|
15182
|
+
dir: isRTL ? 'rtl' : 'ltr',
|
|
15183
|
+
className: `rf-w-full rf-flex rf-flex-col rf-gap-4 vertical:rf-w-9/10 ${history ? 'large-vertical:rf-w-full' : 'landscape-retorik:rf-pr-40 landscape-retorik:rf-pl-1/5 large-vertical:rf-w-3/5'} vertical:rf-items-center`,
|
|
15242
15184
|
children: [
|
|
15243
15185
|
title && /*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
15244
|
-
className: `rf-w-full
|
|
15186
|
+
className: `rf-w-full ${isRTL ? 'rf-text-right' : 'rf-text-left'} rf-title-large-size-auto ${history ? 'rf-text-textModePanelConversationBot' : 'rf-text-truewhite rf-text-shadow-black'}`,
|
|
15245
15187
|
children: title
|
|
15246
15188
|
}),
|
|
15247
15189
|
/*#__PURE__*/ (0, $bZRJW$jsxs)("div", {
|
|
@@ -15295,17 +15237,17 @@ var $2ebe7b2fda999dc7$export$2e2bcd8739ae039 = $2ebe7b2fda999dc7$var$Grid;
|
|
|
15295
15237
|
|
|
15296
15238
|
|
|
15297
15239
|
parcelRegister("6EXzm", function(module, exports) {
|
|
15298
|
-
module.exports = import("./HistoryList.
|
|
15240
|
+
module.exports = import("./HistoryList.03a56119.js").then(()=>parcelRequire('2IZpO'));
|
|
15299
15241
|
|
|
15300
15242
|
});
|
|
15301
15243
|
|
|
15302
15244
|
parcelRegister("rAdI8", function(module, exports) {
|
|
15303
|
-
module.exports = import("./LanguageChoice.
|
|
15245
|
+
module.exports = import("./LanguageChoice.623ee802.js").then(()=>parcelRequire('4HBCW'));
|
|
15304
15246
|
|
|
15305
15247
|
});
|
|
15306
15248
|
|
|
15307
15249
|
parcelRegister("8y5Zs", function(module, exports) {
|
|
15308
|
-
module.exports = import("./AttachmentDetail.
|
|
15250
|
+
module.exports = import("./AttachmentDetail.c4286a45.js").then(()=>parcelRequire('8QAGm'));
|
|
15309
15251
|
|
|
15310
15252
|
});
|
|
15311
15253
|
|
|
@@ -15315,17 +15257,17 @@ module.exports = import("./FullScreenImage.1fe27198.js").then(()=>parcelRequire(
|
|
|
15315
15257
|
});
|
|
15316
15258
|
|
|
15317
15259
|
parcelRegister("5Lxsr", function(module, exports) {
|
|
15318
|
-
module.exports = import("./Weather.
|
|
15260
|
+
module.exports = import("./Weather.cf58823d.js").then(()=>parcelRequire('2pbjN'));
|
|
15319
15261
|
|
|
15320
15262
|
});
|
|
15321
15263
|
|
|
15322
15264
|
parcelRegister("4tkZ7", function(module, exports) {
|
|
15323
|
-
module.exports = import("./CustomView.
|
|
15265
|
+
module.exports = import("./CustomView.913a9f32.js").then(()=>parcelRequire('5s7df'));
|
|
15324
15266
|
|
|
15325
15267
|
});
|
|
15326
15268
|
|
|
15327
15269
|
parcelRegister("i6zhG", function(module, exports) {
|
|
15328
|
-
module.exports = import("./Emergency.
|
|
15270
|
+
module.exports = import("./Emergency.0cf005ce.js").then(()=>parcelRequire('4zoun'));
|
|
15329
15271
|
|
|
15330
15272
|
});
|
|
15331
15273
|
|
|
@@ -15509,7 +15451,7 @@ const $569292ddf809d7fd$var$Remote = ({ hideMenu: hideMenu = false, setTopOfRemo
|
|
|
15509
15451
|
};
|
|
15510
15452
|
return /*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
15511
15453
|
id: "retorik-framework-remote",
|
|
15512
|
-
className: "rf-absolute rf-z-[10] rf-flex rf-flex-col rf-justify-center rf-items-center rf-gap-2
|
|
15454
|
+
className: "rf-absolute rf-z-[10] rf-flex rf-flex-col rf-justify-center rf-items-center rf-gap-2 rf-right-6 large-vertical:rf-right-9",
|
|
15513
15455
|
style: {
|
|
15514
15456
|
top: absoluteVerticalTop,
|
|
15515
15457
|
bottom: absoluteVerticalBottom
|
|
@@ -15591,10 +15533,16 @@ const $3a6716bf6d00a1ec$var$RemoteButton = ({ type: type, backgroundColor: backg
|
|
|
15591
15533
|
const { toggleMuted: toggleMuted, setActiveRecognitionState: setActiveRecognitionState, setMode: setMode } = (0, $i1rfm.useSpeechStore)((state)=>state.actions);
|
|
15592
15534
|
const { toggleSubtitles: toggleSubtitles, setCanFocusSendBox: setCanFocusSendBox } = (0, $1x02c.useRetorikStore)((state)=>state.actions);
|
|
15593
15535
|
const sendEvent = (0, $aNpqK.useDirectlineStore)((state)=>state.actions.sendEvent);
|
|
15536
|
+
const currentSubViewRef = (0, $bZRJW$useRef)((0, $4ucVo.CurrentSubView).none);
|
|
15594
15537
|
const [icon, setIcon] = (0, $bZRJW$useState)();
|
|
15595
15538
|
const [label, setLabel] = (0, $bZRJW$useState)();
|
|
15596
15539
|
const [hover, setHover] = (0, $bZRJW$useState)(false);
|
|
15597
15540
|
const [backgroundColorHover, setBackgroundColorHover] = (0, $bZRJW$useState)(undefined);
|
|
15541
|
+
(0, $bZRJW$useEffect)(()=>{
|
|
15542
|
+
currentSubViewRef.current = currentSubView;
|
|
15543
|
+
}, [
|
|
15544
|
+
currentSubView
|
|
15545
|
+
]);
|
|
15598
15546
|
(0, $bZRJW$useEffect)(()=>{
|
|
15599
15547
|
setBackgroundColorHover(backgroundColor?.replace('99', 'E6'));
|
|
15600
15548
|
}, [
|
|
@@ -15690,14 +15638,20 @@ const $3a6716bf6d00a1ec$var$RemoteButton = ({ type: type, backgroundColor: backg
|
|
|
15690
15638
|
const handleClick = ()=>{
|
|
15691
15639
|
switch(type){
|
|
15692
15640
|
case (0, $4ucVo.RemoteButtonType).history:
|
|
15693
|
-
|
|
15641
|
+
if (currentSubViewRef.current === (0, $4ucVo.CurrentSubView).history) {
|
|
15642
|
+
setCurrentSubView((0, $4ucVo.CurrentSubView).none);
|
|
15643
|
+
sendEvent('Davi.CloseWindow', null, ()=>sendEvent('Davi.CloseWindowHistory', null));
|
|
15644
|
+
} else setCurrentSubView((0, $4ucVo.CurrentSubView).history);
|
|
15694
15645
|
break;
|
|
15695
15646
|
case (0, $4ucVo.RemoteButtonType).home:
|
|
15696
15647
|
setCurrentSubView((0, $4ucVo.CurrentSubView).none);
|
|
15697
15648
|
sendEvent('showHome');
|
|
15698
15649
|
break;
|
|
15699
15650
|
case (0, $4ucVo.RemoteButtonType).language:
|
|
15700
|
-
|
|
15651
|
+
if (currentSubViewRef.current === (0, $4ucVo.CurrentSubView).languages) {
|
|
15652
|
+
setCurrentSubView((0, $4ucVo.CurrentSubView).none);
|
|
15653
|
+
sendEvent('Davi.CloseWindow', null, ()=>sendEvent('Davi.CloseWindowLanguages', null));
|
|
15654
|
+
} else setCurrentSubView((0, $4ucVo.CurrentSubView).languages);
|
|
15701
15655
|
break;
|
|
15702
15656
|
case (0, $4ucVo.RemoteButtonType).menu:
|
|
15703
15657
|
toggleDashboard();
|
|
@@ -15727,8 +15681,13 @@ const $3a6716bf6d00a1ec$var$RemoteButton = ({ type: type, backgroundColor: backg
|
|
|
15727
15681
|
case (0, $4ucVo.CloseButtonCause).list:
|
|
15728
15682
|
setCloseList(Date.now());
|
|
15729
15683
|
break;
|
|
15730
|
-
case (0, $4ucVo.CloseButtonCause).
|
|
15684
|
+
case (0, $4ucVo.CloseButtonCause).emergency:
|
|
15685
|
+
case (0, $4ucVo.CloseButtonCause).history:
|
|
15686
|
+
case (0, $4ucVo.CloseButtonCause).languages:
|
|
15687
|
+
case (0, $4ucVo.CloseButtonCause).weather:
|
|
15688
|
+
case (0, $4ucVo.CloseButtonCause).map:
|
|
15731
15689
|
setCurrentSubView((0, $4ucVo.CurrentSubView).none);
|
|
15690
|
+
sendEvent('Davi.CloseWindow', null, ()=>sendEvent(`Davi.CloseWindow${cause}`, null));
|
|
15732
15691
|
break;
|
|
15733
15692
|
case (0, $4ucVo.CloseButtonCause).news:
|
|
15734
15693
|
setRoute((0, $4ucVo.Routes).Home);
|
|
@@ -16394,6 +16353,7 @@ const $fce269aaea66ffb1$var$SendTextBox = ({ className: className })=>{
|
|
|
16394
16353
|
};
|
|
16395
16354
|
return /*#__PURE__*/ (0, $bZRJW$jsxs)("div", {
|
|
16396
16355
|
id: "retorik-send-textbox",
|
|
16356
|
+
dir: isRTL ? 'rtl' : 'ltr',
|
|
16397
16357
|
className: `rf-relative rf-min-h-12 rf-px-4 rf-text-base rf-pt-3 rf-pb-3 rf-flex rf-items-center rf-border rf-border-textBoxBorder rf-rounded-8 rf-bg-truewhite rf-shadow-[inset_0_0_6px_#0000003B] ${className}`,
|
|
16398
16358
|
children: [
|
|
16399
16359
|
/*#__PURE__*/ (0, $bZRJW$jsx)("textarea", {
|
|
@@ -16410,7 +16370,7 @@ const $fce269aaea66ffb1$var$SendTextBox = ({ className: className })=>{
|
|
|
16410
16370
|
}
|
|
16411
16371
|
}),
|
|
16412
16372
|
!isMobile && !disabledSpeechMode && !useOldRemote && /*#__PURE__*/ (0, $bZRJW$jsx)("button", {
|
|
16413
|
-
className:
|
|
16373
|
+
className: `rf-absolute ${isRTL ? 'rf-left-12' : 'rf-right-12'} rf-h-full rf-w-8 rf-flex rf-justify-center rf-items-center`,
|
|
16414
16374
|
onClick: handleClick,
|
|
16415
16375
|
children: /*#__PURE__*/ (0, $bZRJW$jsx)((0, $gFvkh.default), {
|
|
16416
16376
|
className: "rf-h-4 large-vertical:rf-h-5",
|
|
@@ -16418,7 +16378,7 @@ const $fce269aaea66ffb1$var$SendTextBox = ({ className: className })=>{
|
|
|
16418
16378
|
})
|
|
16419
16379
|
}),
|
|
16420
16380
|
/*#__PURE__*/ (0, $bZRJW$jsx)("button", {
|
|
16421
|
-
className:
|
|
16381
|
+
className: `rf-absolute ${isRTL ? 'rf-left-2' : 'rf-right-2'} rf-h-8 rf-w-8 rf-pt-1 rf-pr-1 rf-flex rf-justify-center rf-items-center rf-border rf-border-secondary rf-bg-secondary rf-rounded-half`,
|
|
16422
16382
|
onClick: handleSend,
|
|
16423
16383
|
children: isRTL ? /*#__PURE__*/ (0, $bZRJW$jsx)((0, $25i5U.default), {
|
|
16424
16384
|
className: "rf-w-5",
|
|
@@ -16671,7 +16631,20 @@ const $5b6c388e7918885b$var$MicrophoneAndSwitch = ({ top: top })=>{
|
|
|
16671
16631
|
if (!isLandscape && (currentSubView !== (0, $4ucVo.CurrentSubView).none || dashboardOpened || retorikEvent === (0, $4ucVo.RetorikEvent).DetailViewOpen || listStatus === (0, $4ucVo.ListStatus).opened || route === (0, $4ucVo.Routes).News || fullScreenImage)) {
|
|
16672
16632
|
if (retorikEvent === (0, $4ucVo.RetorikEvent).DetailViewOpen && currentSubView === (0, $4ucVo.CurrentSubView).none) setShowCloseButton((0, $4ucVo.CloseButtonCause).detailedpoi);
|
|
16673
16633
|
else if (listStatus === (0, $4ucVo.ListStatus).opened) setShowCloseButton((0, $4ucVo.CloseButtonCause).list);
|
|
16674
|
-
else if (currentSubView !== (0, $4ucVo.CurrentSubView).none)
|
|
16634
|
+
else if (currentSubView !== (0, $4ucVo.CurrentSubView).none) switch(currentSubView){
|
|
16635
|
+
case (0, $4ucVo.CurrentSubView).emergency:
|
|
16636
|
+
setShowCloseButton((0, $4ucVo.CloseButtonCause).emergency);
|
|
16637
|
+
break;
|
|
16638
|
+
case (0, $4ucVo.CurrentSubView).history:
|
|
16639
|
+
setShowCloseButton((0, $4ucVo.CloseButtonCause).history);
|
|
16640
|
+
break;
|
|
16641
|
+
case (0, $4ucVo.CurrentSubView).languages:
|
|
16642
|
+
setShowCloseButton((0, $4ucVo.CloseButtonCause).languages);
|
|
16643
|
+
break;
|
|
16644
|
+
case (0, $4ucVo.CurrentSubView).weather:
|
|
16645
|
+
setShowCloseButton((0, $4ucVo.CloseButtonCause).weather);
|
|
16646
|
+
break;
|
|
16647
|
+
}
|
|
16675
16648
|
else if (dashboardOpened) setShowCloseButton((0, $4ucVo.CloseButtonCause).dashboard);
|
|
16676
16649
|
else if (route === (0, $4ucVo.Routes).News) setShowCloseButton((0, $4ucVo.CloseButtonCause).news);
|
|
16677
16650
|
else if (fullScreenImage) setShowCloseButton((0, $4ucVo.CloseButtonCause).fullscreenimage);
|
|
@@ -16694,16 +16667,16 @@ const $5b6c388e7918885b$var$MicrophoneAndSwitch = ({ top: top })=>{
|
|
|
16694
16667
|
]);
|
|
16695
16668
|
return /*#__PURE__*/ (0, $bZRJW$jsxs)("div", {
|
|
16696
16669
|
id: "retorik-microphone-container",
|
|
16697
|
-
className: `large-vertical:rf-absolute rf-w-fit ${showCloseButton ? '
|
|
16670
|
+
className: `large-vertical:rf-absolute rf-w-fit ${showCloseButton !== (0, $4ucVo.CloseButtonCause).none ? 'rf-right-9' : 'rf-right-4'} landscape-retorik:-rf-mt-4 landscape-retorik:rf-pl-[calc(50%-2.5rem)] rf-flex rf-flex-row large-vertical:rf-flex-col rf-justify-center rf-items-center rf-gap-6 large-vertical:rf-gap-4`,
|
|
16698
16671
|
style: {
|
|
16699
16672
|
bottom: bottomForBorne
|
|
16700
16673
|
},
|
|
16701
16674
|
children: [
|
|
16702
16675
|
mode === (0, $4ucVo.Mode).vocal && /*#__PURE__*/ (0, $bZRJW$jsx)((0, $1HgaM.default), {
|
|
16703
|
-
hidden:
|
|
16676
|
+
hidden: showCloseButton !== (0, $4ucVo.CloseButtonCause).none
|
|
16704
16677
|
}),
|
|
16705
|
-
(showCloseButton || mode === (0, $4ucVo.Mode).vocal) && /*#__PURE__*/ (0, $bZRJW$jsx)((0, $2nNEz.default), {
|
|
16706
|
-
type: showCloseButton ? (0, $4ucVo.RemoteButtonType).close : (0, $4ucVo.RemoteButtonType).text,
|
|
16678
|
+
(showCloseButton !== (0, $4ucVo.CloseButtonCause).none || mode === (0, $4ucVo.Mode).vocal) && /*#__PURE__*/ (0, $bZRJW$jsx)((0, $2nNEz.default), {
|
|
16679
|
+
type: showCloseButton !== (0, $4ucVo.CloseButtonCause).none ? (0, $4ucVo.RemoteButtonType).close : (0, $4ucVo.RemoteButtonType).text,
|
|
16707
16680
|
backgroundColor: "#FFF",
|
|
16708
16681
|
cause: showCloseButton
|
|
16709
16682
|
})
|
|
@@ -17104,6 +17077,11 @@ const $64c0a3f23b72e5d5$var$MicrophoneTextBubble = ({ showLoader: showLoader })=
|
|
|
17104
17077
|
const [text, setText] = (0, $bZRJW$useState)();
|
|
17105
17078
|
const [textUndefined, setTextUndefined] = (0, $bZRJW$useState)(false);
|
|
17106
17079
|
const timerRef = (0, $bZRJW$useRef)(null);
|
|
17080
|
+
(0, $bZRJW$useEffect)(()=>{
|
|
17081
|
+
return ()=>{
|
|
17082
|
+
timerRef.current && clearTimeout(timerRef.current);
|
|
17083
|
+
};
|
|
17084
|
+
}, []);
|
|
17107
17085
|
(0, $bZRJW$useEffect)(()=>{
|
|
17108
17086
|
setTextUndefined(speaking || showLoader || !botAnswerEnded || currentSubView !== (0, $4ucVo.CurrentSubView).none || dashboardOpened || retorikEvent === (0, $4ucVo.RetorikEvent).DetailViewOpen || listStatus === (0, $4ucVo.ListStatus).opened);
|
|
17109
17087
|
}, [
|
|
@@ -17133,8 +17111,12 @@ const $64c0a3f23b72e5d5$var$MicrophoneTextBubble = ({ showLoader: showLoader })=
|
|
|
17133
17111
|
setText(isMobile || isLandscape && lastRecognitionInterim ? undefined : translation.microphone.listening);
|
|
17134
17112
|
break;
|
|
17135
17113
|
case (0, $4ucVo.RecognitionState).Closed:
|
|
17136
|
-
|
|
17137
|
-
|
|
17114
|
+
let text = undefined;
|
|
17115
|
+
if (!textUndefined) text = useContinuousRecognition ? `<p>${translation.microphone.trigger}${isMobile ? ' ' : '<br />'}<strong>\xab ${agentData?.name} \xbb</strong></p>` : `<p>${translation.microphone.triggerwithoutname}</p>`;
|
|
17116
|
+
// Show the button only 1.5s after, to prevents it from appearing à fraction of second between several texts
|
|
17117
|
+
timerRef.current = setTimeout(()=>{
|
|
17118
|
+
setText(text);
|
|
17119
|
+
}, 1500);
|
|
17138
17120
|
break;
|
|
17139
17121
|
case (0, $4ucVo.RecognitionState).Initializing:
|
|
17140
17122
|
case (0, $4ucVo.RecognitionState).Closing:
|
|
@@ -17346,24 +17328,18 @@ $parcel$export(module.exports, "default", () => $85e43d60223ffda1$export$2e2bcd8
|
|
|
17346
17328
|
var $7pypd = parcelRequire("7pypd");
|
|
17347
17329
|
parcelRequire("7b1UX");
|
|
17348
17330
|
var $5AMhU = parcelRequire("5AMhU");
|
|
17349
|
-
var $4Hqlr = parcelRequire("4Hqlr");
|
|
17350
|
-
|
|
17351
|
-
var $2fuDN = parcelRequire("2fuDN");
|
|
17352
17331
|
const $85e43d60223ffda1$var$BackButton = ({ title: title, className: className, handleBack: handleBack })=>{
|
|
17353
|
-
const isRTL = (0, $2fuDN.useLocaleStore)((state)=>state.isRTL);
|
|
17354
17332
|
return /*#__PURE__*/ (0, $bZRJW$jsxs)("button", {
|
|
17355
17333
|
className: `rf-flex rf-flex-row rf-items-center ${className}`,
|
|
17356
17334
|
onClick: handleBack,
|
|
17357
17335
|
"aria-label": title,
|
|
17358
17336
|
"data-map": "fermer",
|
|
17359
17337
|
children: [
|
|
17360
|
-
|
|
17361
|
-
className: "rf-w-8"
|
|
17362
|
-
}) : /*#__PURE__*/ (0, $bZRJW$jsx)((0, $5AMhU.default), {
|
|
17338
|
+
/*#__PURE__*/ (0, $bZRJW$jsx)((0, $5AMhU.default), {
|
|
17363
17339
|
className: "rf-w-8"
|
|
17364
17340
|
}),
|
|
17365
17341
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
17366
|
-
className: "
|
|
17342
|
+
className: "rf-ml-1",
|
|
17367
17343
|
children: (0, $7pypd.capitalizeFirstLetter)(title)
|
|
17368
17344
|
})
|
|
17369
17345
|
]
|
|
@@ -17595,6 +17571,7 @@ function $bae994eb4501db3d$var$instanceOfCustomMenuDisplayGeneratorProps(object)
|
|
|
17595
17571
|
const $bae994eb4501db3d$var$DisplayGenerator = (props)=>{
|
|
17596
17572
|
const translation = (0, $2fuDN.useLocaleStore)((state)=>state.currentTranslations);
|
|
17597
17573
|
const locale = (0, $2fuDN.useLocaleStore)((state)=>state.locale);
|
|
17574
|
+
const isRTL = (0, $2fuDN.useLocaleStore)((state)=>state.isRTL);
|
|
17598
17575
|
const isMobile = (0, $1Qww3.useViewStore)((state)=>state.isMobile);
|
|
17599
17576
|
const themeColors = (0, $1Qww3.useViewStore)((state)=>state.themeColors);
|
|
17600
17577
|
const setRoute = (0, $1Qww3.useViewStore)((state)=>state.actions.setRoute);
|
|
@@ -17674,7 +17651,7 @@ const $bae994eb4501db3d$var$DisplayGenerator = (props)=>{
|
|
|
17674
17651
|
color: colorButtonHandle
|
|
17675
17652
|
}),
|
|
17676
17653
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
17677
|
-
className: "
|
|
17654
|
+
className: "rf-ml-4 rf-font-bold",
|
|
17678
17655
|
children: (0, $7pypd.capitalizeFirstLetter)(label, locale)
|
|
17679
17656
|
})
|
|
17680
17657
|
]
|
|
@@ -17695,7 +17672,7 @@ const $bae994eb4501db3d$var$DisplayGenerator = (props)=>{
|
|
|
17695
17672
|
color: colorButtonHandle
|
|
17696
17673
|
}),
|
|
17697
17674
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
17698
|
-
className:
|
|
17675
|
+
className: `rf-uppercase rf-text-[#575F6B] ${isRTL ? 'rf-text-arabic' : 'rf-text-xs'} large-vertical:rf-text-basecustomuppercase`,
|
|
17699
17676
|
children: label
|
|
17700
17677
|
})
|
|
17701
17678
|
]
|
|
@@ -17852,6 +17829,7 @@ function $b007ca2bcccb20e9$var$instanceOfCustomMenuDisplayGeneratorProps(object)
|
|
|
17852
17829
|
const $b007ca2bcccb20e9$var$DisplaySubGenerator = (props)=>{
|
|
17853
17830
|
const translation = (0, $2fuDN.useLocaleStore)((state)=>state.currentTranslations);
|
|
17854
17831
|
const locale = (0, $2fuDN.useLocaleStore)((state)=>state.locale);
|
|
17832
|
+
const isRTL = (0, $2fuDN.useLocaleStore)((state)=>state.isRTL);
|
|
17855
17833
|
const isMobile = (0, $1Qww3.useViewStore)((state)=>state.isMobile);
|
|
17856
17834
|
const { setCurrentSubView: setCurrentSubView, setCurrentCustomView: setCurrentCustomView } = (0, $j67YK.useUtilsStore)((state)=>state.actions);
|
|
17857
17835
|
const [label, setLabel] = (0, $bZRJW$useState)('');
|
|
@@ -17911,7 +17889,7 @@ const $b007ca2bcccb20e9$var$DisplaySubGenerator = (props)=>{
|
|
|
17911
17889
|
className: "rf-h-8 rf-w-8 rf-flex"
|
|
17912
17890
|
}),
|
|
17913
17891
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
17914
|
-
className:
|
|
17892
|
+
className: `rf-uppercase rf-text-[#575F6B] ${isRTL ? 'rf-text-arabic' : 'rf-text-xs'}`,
|
|
17915
17893
|
children: label
|
|
17916
17894
|
})
|
|
17917
17895
|
]
|
|
@@ -18082,7 +18060,7 @@ const $6647afb6d8a992a1$var$ParameterButton = ({ title: title, color: color, ico
|
|
|
18082
18060
|
className: "rf-flex rf-flex-row rf-items-center",
|
|
18083
18061
|
children: [
|
|
18084
18062
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
18085
|
-
className: "
|
|
18063
|
+
className: "rf-mr-3 rf-text-lightgray rf-normal-case",
|
|
18086
18064
|
children: (0, (/*@__PURE__*/$parcel$interopDefault($8dUAa)))[locale]
|
|
18087
18065
|
}),
|
|
18088
18066
|
/*#__PURE__*/ (0, $bZRJW$jsx)((0, $pEipO.default), {
|
|
@@ -18112,7 +18090,7 @@ const $6647afb6d8a992a1$var$ParameterButton = ({ title: title, color: color, ico
|
|
|
18112
18090
|
color: color
|
|
18113
18091
|
}) : /*#__PURE__*/ (0, $bZRJW$jsx)((0, $bZRJW$react).Fragment, {}),
|
|
18114
18092
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
18115
|
-
className: "
|
|
18093
|
+
className: "rf-ml-1 rf-uppercase",
|
|
18116
18094
|
children: title
|
|
18117
18095
|
})
|
|
18118
18096
|
]
|
|
@@ -18774,7 +18752,7 @@ var $af2bd3eba7cc813c$export$2e2bcd8739ae039 = $af2bd3eba7cc813c$var$DashboardIt
|
|
|
18774
18752
|
|
|
18775
18753
|
|
|
18776
18754
|
parcelRegister("lNCSW", function(module, exports) {
|
|
18777
|
-
module.exports = import("./NewsContainer.
|
|
18755
|
+
module.exports = import("./NewsContainer.f0d2ee9c.js").then(()=>parcelRequire('dUXW6'));
|
|
18778
18756
|
|
|
18779
18757
|
});
|
|
18780
18758
|
|
|
@@ -19125,7 +19103,7 @@ var $1Qww3 = parcelRequire("1Qww3");
|
|
|
19125
19103
|
|
|
19126
19104
|
var $1x02c = parcelRequire("1x02c");
|
|
19127
19105
|
var $4b50e1d502fb5483$exports = {};
|
|
19128
|
-
$4b50e1d502fb5483$exports = "*, :before, :after, ::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #3b82f680;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n*, :before, :after {\n box-sizing: border-box;\n border: 0 solid;\n}\n\n:before, :after {\n --tw-content: \"\";\n}\n\nhtml, :host {\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-feature-settings: normal;\n font-variation-settings: normal;\n -webkit-tap-highlight-color: transparent;\n font-family: Calibri, sans-serif;\n line-height: 1.5;\n}\n\nbody {\n line-height: inherit;\n margin: 0;\n}\n\nhr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n}\n\nabbr:where([title]) {\n text-decoration: underline dotted;\n}\n\nh1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\nb, strong {\n font-weight: bolder;\n}\n\ncode, kbd, samp, pre {\n font-feature-settings: normal;\n font-variation-settings: normal;\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace;\n font-size: 1em;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub, sup {\n vertical-align: baseline;\n font-size: 75%;\n line-height: 0;\n position: relative;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\ntable {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n}\n\nbutton, input, optgroup, select, textarea {\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n font-family: inherit;\n font-size: 100%;\n font-weight: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n color: inherit;\n margin: 0;\n padding: 0;\n}\n\nbutton, select {\n text-transform: none;\n}\n\nbutton, input:where([type=\"button\"]), input:where([type=\"reset\"]), input:where([type=\"submit\"]) {\n -webkit-appearance: button;\n background-color: #0000;\n background-image: none;\n}\n\n:-moz-focusring {\n outline: auto;\n}\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n::-webkit-inner-spin-button {\n height: auto;\n}\n\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n}\n\nsummary {\n display: list-item;\n}\n\nblockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol, ul, menu {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\ndialog {\n padding: 0;\n}\n\ntextarea {\n resize: vertical;\n}\n\ninput::placeholder, textarea::placeholder {\n opacity: 1;\n color: #9ca3af;\n}\n\nbutton, [role=\"button\"] {\n cursor: pointer;\n}\n\n:disabled {\n cursor: default;\n}\n\nimg, svg, video, canvas, audio, iframe, embed, object {\n vertical-align: middle;\n display: block;\n}\n\nimg, video {\n max-width: 100%;\n height: auto;\n}\n\n[hidden]:where(:not([hidden=\"until-found\"])) {\n display: none;\n}\n\n.rf-pointer-events-none {\n pointer-events: none;\n}\n\n.rf-pointer-events-auto {\n pointer-events: auto;\n}\n\n.rf-visible {\n visibility: visible;\n}\n\n.rf-invisible {\n visibility: hidden;\n}\n\n.rf-fixed {\n position: fixed;\n}\n\n.rf-absolute {\n position: absolute;\n}\n\n.rf-relative {\n position: relative;\n}\n\n.-rf-left-6 {\n left: -1.5rem;\n}\n\n.-rf-top-2 {\n top: -.5rem;\n}\n\n.-rf-top-4 {\n top: -1rem;\n}\n\n.-rf-top-6 {\n top: -1.5rem;\n}\n\n.-rf-top-\\[1\\.15rem\\] {\n top: -1.15rem;\n}\n\n.rf-bottom-0 {\n bottom: 0;\n}\n\n.rf-bottom-1 {\n bottom: .25rem;\n}\n\n.rf-bottom-1\\/4 {\n bottom: 25%;\n}\n\n.rf-bottom-10 {\n bottom: 2.5rem;\n}\n\n.rf-bottom-2 {\n bottom: .5rem;\n}\n\n.rf-bottom-4 {\n bottom: 1rem;\n}\n\n.rf-bottom-8 {\n bottom: 2rem;\n}\n\n.rf-bottom-\\[calc\\(100\\%\\+2rem\\)\\] {\n bottom: calc(100% + 2rem);\n}\n\n.rf-left-0 {\n left: 0;\n}\n\n.rf-left-1 {\n left: .25rem;\n}\n\n.rf-left-1\\/2 {\n left: 50%;\n}\n\n.rf-left-2 {\n left: .5rem;\n}\n\n.rf-left-4 {\n left: 1rem;\n}\n\n.rf-left-8 {\n left: 2rem;\n}\n\n.rf-left-\\[calc\\(100\\%\\+1rem\\)\\] {\n left: calc(100% + 1rem);\n}\n\n.rf-left-\\[calc\\(50\\%-3rem\\)\\] {\n left: calc(50% - 3rem);\n}\n\n.rf-right-0 {\n right: 0;\n}\n\n.rf-right-1 {\n right: .25rem;\n}\n\n.rf-right-10 {\n right: 2.5rem;\n}\n\n.rf-right-12 {\n right: 3rem;\n}\n\n.rf-right-2 {\n right: .5rem;\n}\n\n.rf-right-4 {\n right: 1rem;\n}\n\n.rf-right-6 {\n right: 1.5rem;\n}\n\n.rf-right-8 {\n right: 2rem;\n}\n\n.rf-right-\\[calc\\(100\\%\\+1rem\\)\\] {\n right: calc(100% + 1rem);\n}\n\n.rf-top-0 {\n top: 0;\n}\n\n.rf-top-1 {\n top: .25rem;\n}\n\n.rf-top-1\\/2 {\n top: 50%;\n}\n\n.rf-top-1\\/3 {\n top: 33.3333%;\n}\n\n.rf-top-110 {\n top: 110%;\n}\n\n.rf-top-2 {\n top: .5rem;\n}\n\n.rf-top-4 {\n top: 1rem;\n}\n\n.rf-top-8 {\n top: 2rem;\n}\n\n.rf-top-\\[0\\.125rem\\] {\n top: .125rem;\n}\n\n.rf-top-\\[calc\\(100\\%\\+1rem\\)\\] {\n top: calc(100% + 1rem);\n}\n\n.rf-top-\\[calc\\(50\\%-3rem\\)\\] {\n top: calc(50% - 3rem);\n}\n\n.rf-z-\\[10\\] {\n z-index: 10;\n}\n\n.rf-z-\\[15\\] {\n z-index: 15;\n}\n\n.rf-z-\\[1\\] {\n z-index: 1;\n}\n\n.rf-z-\\[20\\] {\n z-index: 20;\n}\n\n.rf-z-\\[25\\] {\n z-index: 25;\n}\n\n.rf-z-\\[2\\] {\n z-index: 2;\n}\n\n.rf-z-\\[5\\] {\n z-index: 5;\n}\n\n.rf-z-agent {\n z-index: 1;\n}\n\n.rf-z-background {\n z-index: 0;\n}\n\n.rf-z-chatbot {\n z-index: 10;\n}\n\n.rf-z-detailedPOI {\n z-index: 31;\n}\n\n.rf-z-dropdown {\n z-index: 30;\n}\n\n.rf-z-exitwidget {\n z-index: 55;\n}\n\n.rf-z-list {\n z-index: 30;\n}\n\n.rf-z-menu {\n z-index: 40;\n}\n\n.rf-z-modal {\n z-index: 50;\n}\n\n.rf-z-overlay {\n z-index: 40;\n}\n\n.rf-z-ui {\n z-index: 20;\n}\n\n.rf-z-util {\n z-index: 2;\n}\n\n.rf-col-span-2 {\n grid-column: span 2 / span 2;\n}\n\n.rf-col-span-3 {\n grid-column: span 3 / span 3;\n}\n\n.rf-col-span-4 {\n grid-column: span 4 / span 4;\n}\n\n.rf-col-span-full {\n grid-column: 1 / -1;\n}\n\n.rf-col-start-1 {\n grid-column-start: 1;\n}\n\n.rf-col-start-3 {\n grid-column-start: 3;\n}\n\n.rf-col-start-4 {\n grid-column-start: 4;\n}\n\n.rf-col-start-5 {\n grid-column-start: 5;\n}\n\n.rf-col-end-13 {\n grid-column-end: 13;\n}\n\n.rf-col-end-2 {\n grid-column-end: 2;\n}\n\n.rf-col-end-9 {\n grid-column-end: 9;\n}\n\n.rf-row-span-1 {\n grid-row: span 1 / span 1;\n}\n\n.rf-row-span-2 {\n grid-row: span 2 / span 2;\n}\n\n.rf-row-span-full {\n grid-row: 1 / -1;\n}\n\n.rf-row-start-1 {\n grid-row-start: 1;\n}\n\n.rf-row-start-12 {\n grid-row-start: 12;\n}\n\n.rf-row-end-13 {\n grid-row-end: 13;\n}\n\n.rf-row-end-3 {\n grid-row-end: 3;\n}\n\n.rf-float-right {\n float: right;\n}\n\n.rf-m-0 {\n margin: 0;\n}\n\n.rf-m-4 {\n margin: 1rem;\n}\n\n.rf-m-auto {\n margin: auto;\n}\n\n.-rf-mx-6 {\n margin-left: -1.5rem;\n margin-right: -1.5rem;\n}\n\n.-rf-mx-8 {\n margin-left: -2rem;\n margin-right: -2rem;\n}\n\n.rf-mx-0 {\n margin-left: 0;\n margin-right: 0;\n}\n\n.rf-mx-2 {\n margin-left: .5rem;\n margin-right: .5rem;\n}\n\n.rf-mx-3 {\n margin-left: .75rem;\n margin-right: .75rem;\n}\n\n.rf-mx-4 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n\n.rf-mx-8 {\n margin-left: 2rem;\n margin-right: 2rem;\n}\n\n.rf-mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n.rf-my-1 {\n margin-top: .25rem;\n margin-bottom: .25rem;\n}\n\n.rf-my-2 {\n margin-top: .5rem;\n margin-bottom: .5rem;\n}\n\n.rf-my-4 {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n\n.rf-my-auto {\n margin-top: auto;\n margin-bottom: auto;\n}\n\n.-rf-mb-4 {\n margin-bottom: -1rem;\n}\n\n.rf-mb-0 {\n margin-bottom: 0;\n}\n\n.rf-mb-1 {\n margin-bottom: .25rem;\n}\n\n.rf-mb-12 {\n margin-bottom: 3rem;\n}\n\n.rf-mb-16 {\n margin-bottom: 4rem;\n}\n\n.rf-mb-2 {\n margin-bottom: .5rem;\n}\n\n.rf-mb-26 {\n margin-bottom: 6.5rem;\n}\n\n.rf-mb-28 {\n margin-bottom: 7rem;\n}\n\n.rf-mb-3 {\n margin-bottom: .75rem;\n}\n\n.rf-mb-30 {\n margin-bottom: 7.5rem;\n}\n\n.rf-mb-4 {\n margin-bottom: 1rem;\n}\n\n.rf-mb-5 {\n margin-bottom: 1.25rem;\n}\n\n.rf-mb-6 {\n margin-bottom: 1.5rem;\n}\n\n.rf-mb-8 {\n margin-bottom: 2rem;\n}\n\n.rf-ml-1 {\n margin-left: .25rem;\n}\n\n.rf-ml-2 {\n margin-left: .5rem;\n}\n\n.rf-mr-2 {\n margin-right: .5rem;\n}\n\n.rf-mr-4 {\n margin-right: 1rem;\n}\n\n.rf-mt-1 {\n margin-top: .25rem;\n}\n\n.rf-mt-10 {\n margin-top: 2.5rem;\n}\n\n.rf-mt-2 {\n margin-top: .5rem;\n}\n\n.rf-mt-4 {\n margin-top: 1rem;\n}\n\n.rf-mt-5 {\n margin-top: 1.25rem;\n}\n\n.rf-mt-8 {\n margin-top: 2rem;\n}\n\n.rf-mt-\\[0\\.2rem\\] {\n margin-top: .2rem;\n}\n\n.rf-mt-auto {\n margin-top: auto;\n}\n\n.rf-box-border {\n box-sizing: border-box;\n}\n\n.rf-line-clamp-1 {\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-2 {\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-inline {\n display: inline;\n}\n\n.rf-flex {\n display: flex;\n}\n\n.rf-grid {\n display: grid;\n}\n\n.rf-hidden {\n display: none;\n}\n\n.rf-aspect-\\[4\\/3\\] {\n aspect-ratio: 4 / 3;\n}\n\n.rf-aspect-square {\n aspect-ratio: 1;\n}\n\n.rf-aspect-video {\n aspect-ratio: 16 / 9;\n}\n\n.rf-h-0 {\n height: 0;\n}\n\n.rf-h-1\\/2 {\n height: 50%;\n}\n\n.rf-h-1\\/3 {\n height: 33.3333%;\n}\n\n.rf-h-10 {\n height: 2.5rem;\n}\n\n.rf-h-12 {\n height: 3rem;\n}\n\n.rf-h-14 {\n height: 3.5rem;\n}\n\n.rf-h-16 {\n height: 4rem;\n}\n\n.rf-h-18 {\n height: 4.5rem;\n}\n\n.rf-h-2 {\n height: .5rem;\n}\n\n.rf-h-2\\/3 {\n height: 66.6667%;\n}\n\n.rf-h-2\\/5 {\n height: 40%;\n}\n\n.rf-h-24 {\n height: 6rem;\n}\n\n.rf-h-3 {\n height: .75rem;\n}\n\n.rf-h-3\\/10 {\n height: 30%;\n}\n\n.rf-h-32 {\n height: 8rem;\n}\n\n.rf-h-36 {\n height: 9rem;\n}\n\n.rf-h-4 {\n height: 1rem;\n}\n\n.rf-h-48 {\n height: 12rem;\n}\n\n.rf-h-5 {\n height: 1.25rem;\n}\n\n.rf-h-6 {\n height: 1.5rem;\n}\n\n.rf-h-7 {\n height: 1.75rem;\n}\n\n.rf-h-8 {\n height: 2rem;\n}\n\n.rf-h-9 {\n height: 2.25rem;\n}\n\n.rf-h-\\[0\\.875rem\\] {\n height: .875rem;\n}\n\n.rf-h-\\[1\\.25rem\\] {\n height: 1.25rem;\n}\n\n.rf-h-\\[35\\%\\] {\n height: 35%;\n}\n\n.rf-h-\\[50\\%\\] {\n height: 50%;\n}\n\n.rf-h-\\[calc\\(50vw-3rem\\)\\] {\n height: calc(50vw - 3rem);\n}\n\n.rf-h-fit {\n height: fit-content;\n}\n\n.rf-h-full {\n height: 100%;\n}\n\n.rf-h-max {\n height: max-content;\n}\n\n.rf-h-screen {\n height: 100vh;\n}\n\n.rf-max-h-12 {\n max-height: 3rem;\n}\n\n.rf-max-h-16 {\n max-height: 4rem;\n}\n\n.rf-max-h-20 {\n max-height: 5rem;\n}\n\n.rf-max-h-28 {\n max-height: 7rem;\n}\n\n.rf-max-h-4\\/5 {\n max-height: 80%;\n}\n\n.rf-max-h-48 {\n max-height: 12rem;\n}\n\n.rf-max-h-6 {\n max-height: 1.5rem;\n}\n\n.rf-max-h-8 {\n max-height: 2rem;\n}\n\n.rf-max-h-full {\n max-height: 100%;\n}\n\n.rf-max-h-qrcode {\n max-height: 120px;\n}\n\n.rf-max-h-qrcodelarge {\n max-height: 200px;\n}\n\n.rf-max-h-screen {\n max-height: 100vh;\n}\n\n.rf-min-h-12 {\n min-height: 3rem;\n}\n\n.rf-min-h-14 {\n min-height: 3.5rem;\n}\n\n.rf-min-h-16 {\n min-height: 4rem;\n}\n\n.rf-min-h-2\\/5 {\n min-height: 40%;\n}\n\n.rf-min-h-6 {\n min-height: 1.5rem;\n}\n\n.rf-min-h-8 {\n min-height: 2rem;\n}\n\n.rf-min-h-9 {\n min-height: 2.25rem;\n}\n\n.rf-min-h-full {\n min-height: 100%;\n}\n\n.rf-min-h-inherit {\n min-height: inherit;\n}\n\n.rf-w-0 {\n width: 0;\n}\n\n.rf-w-1\\/2 {\n width: 50%;\n}\n\n.rf-w-1\\/3 {\n width: 33.3333%;\n}\n\n.rf-w-1\\/4 {\n width: 25%;\n}\n\n.rf-w-10 {\n width: 2.5rem;\n}\n\n.rf-w-12 {\n width: 3rem;\n}\n\n.rf-w-16 {\n width: 4rem;\n}\n\n.rf-w-18 {\n width: 4.5rem;\n}\n\n.rf-w-2 {\n width: .5rem;\n}\n\n.rf-w-2\\/3 {\n width: 66.6667%;\n}\n\n.rf-w-20 {\n width: 5rem;\n}\n\n.rf-w-24 {\n width: 6rem;\n}\n\n.rf-w-3 {\n width: .75rem;\n}\n\n.rf-w-3\\/20 {\n width: 15%;\n}\n\n.rf-w-3\\/4 {\n width: 75%;\n}\n\n.rf-w-3\\/5 {\n width: 60%;\n}\n\n.rf-w-32 {\n width: 8rem;\n}\n\n.rf-w-36 {\n width: 9rem;\n}\n\n.rf-w-4 {\n width: 1rem;\n}\n\n.rf-w-48 {\n width: 12rem;\n}\n\n.rf-w-5 {\n width: 1.25rem;\n}\n\n.rf-w-6 {\n width: 1.5rem;\n}\n\n.rf-w-7 {\n width: 1.75rem;\n}\n\n.rf-w-8 {\n width: 2rem;\n}\n\n.rf-w-9 {\n width: 2.25rem;\n}\n\n.rf-w-\\[45\\%\\] {\n width: 45%;\n}\n\n.rf-w-\\[90\\%\\] {\n width: 90%;\n}\n\n.rf-w-\\[calc\\(100\\%-3rem\\)\\] {\n width: calc(100% - 3rem);\n}\n\n.rf-w-fit {\n width: fit-content;\n}\n\n.rf-w-full {\n width: 100%;\n}\n\n.rf-w-max {\n width: max-content;\n}\n\n.rf-w-screen {\n width: 100vw;\n}\n\n.rf-min-w-12 {\n min-width: 3rem;\n}\n\n.rf-min-w-24 {\n min-width: 6rem;\n}\n\n.rf-min-w-3\\/20 {\n min-width: 15%;\n}\n\n.rf-min-w-6 {\n min-width: 1.5rem;\n}\n\n.rf-min-w-7 {\n min-width: 1.75rem;\n}\n\n.rf-min-w-\\[45\\%\\] {\n min-width: 45%;\n}\n\n.rf-min-w-full {\n min-width: 100%;\n}\n\n.rf-max-w-1\\/2 {\n max-width: 50%;\n}\n\n.rf-max-w-16 {\n max-width: 4rem;\n}\n\n.rf-max-w-3\\/20 {\n max-width: 15%;\n}\n\n.rf-max-w-6 {\n max-width: 1.5rem;\n}\n\n.rf-max-w-7\\/10 {\n max-width: 70%;\n}\n\n.rf-max-w-\\[100vw\\] {\n max-width: 100vw;\n}\n\n.rf-max-w-\\[45\\%\\] {\n max-width: 45%;\n}\n\n.rf-max-w-\\[500px\\] {\n max-width: 500px;\n}\n\n.rf-max-w-\\[75\\%\\] {\n max-width: 75%;\n}\n\n.rf-max-w-\\[calc\\(100\\%-2rem\\)\\] {\n max-width: calc(100% - 2rem);\n}\n\n.rf-max-w-full {\n max-width: 100%;\n}\n\n.rf-max-w-none {\n max-width: none;\n}\n\n.rf-flex-1 {\n flex: 1;\n}\n\n.rf-flex-\\[0_0_40\\%\\] {\n flex: 0 0 40%;\n}\n\n.rf-flex-\\[2_1_0\\%\\] {\n flex: 2;\n}\n\n.rf-flex-\\[4_1_0\\%\\] {\n flex: 4;\n}\n\n.rf-border-collapse {\n border-collapse: collapse;\n}\n\n.rf-origin-center {\n transform-origin: center;\n}\n\n.-rf-translate-x-1\\/2 {\n --tw-translate-x: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.-rf-translate-y-1\\/2 {\n --tw-translate-y: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.-rf-translate-y-full {\n --tw-translate-y: -100%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf--translate-x-1\\/2 {\n --tw-translate-x: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-translate-x-1 {\n --tw-translate-x: .25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-translate-x-5 {\n --tw-translate-x: 1.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-rotate-0 {\n --tw-rotate: 0deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-rotate-180 {\n --tw-rotate: 180deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-scale-0 {\n --tw-scale-x: 0;\n --tw-scale-y: 0;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n@keyframes rf-blink {\n 0%, 100% {\n opacity: .2;\n }\n\n 50% {\n opacity: 1;\n }\n}\n\n.rf-animate-blink {\n animation: 1.4s infinite both rf-blink;\n}\n\n@keyframes rf-fadeIn {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n.rf-animate-fadeIn {\n animation: .5s .2s backwards rf-fadeIn;\n}\n\n@keyframes rf-hScroll {\n 0% {\n transform: translateX(0);\n }\n\n 100% {\n transform: translateX(calc(-100% - 2rem));\n }\n}\n\n.rf-animate-hScroll {\n animation: 20s linear infinite rf-hScroll;\n}\n\n@keyframes rf-loader {\n 0% {\n box-shadow: 0 1.5rem 0 -1.5rem var(--rf-color-loader-animation);\n }\n\n 40% {\n box-shadow: 0 1.5rem 0 -.3rem var(--rf-color-loader-animation);\n }\n\n 80% {\n box-shadow: 0 1.5rem 0 -1.5rem var(--rf-color-loader-animation);\n }\n\n 100% {\n box-shadow: 0 1.5rem 0 -1.5rem var(--rf-color-loader-animation);\n }\n}\n\n.rf-animate-loader {\n animation: 1.8s ease-in-out -.16s infinite both rf-loader;\n}\n\n.rf-animate-loaderFadeIn {\n animation: 2s rf-fadeIn;\n}\n\n@keyframes rf-fadeOut {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n}\n\n.rf-animate-loaderFadeOut {\n animation: 1s rf-fadeOut;\n}\n\n@keyframes rf-loaderMedium {\n 0% {\n box-shadow: 0 .75rem 0 -.75rem var(--rf-color-loader-animation);\n }\n\n 40% {\n box-shadow: 0 .75rem 0 -.25rem var(--rf-color-loader-animation);\n }\n\n 80% {\n box-shadow: 0 .75rem 0 -.75rem var(--rf-color-loader-animation);\n }\n\n 100% {\n box-shadow: 0 .75rem 0 -.75rem var(--rf-color-loader-animation);\n }\n}\n\n.rf-animate-loaderMedium {\n animation: 1.8s ease-in-out -.16s infinite both rf-loaderMedium;\n}\n\n@keyframes rf-loaderMini {\n 0% {\n box-shadow: 0 .5rem 0 -.5rem var(--rf-color-loader-animation);\n }\n\n 40% {\n box-shadow: 0 .5rem 0 -.1rem var(--rf-color-loader-animation);\n }\n\n 80% {\n box-shadow: 0 .5rem 0 -.5rem var(--rf-color-loader-animation);\n }\n\n 100% {\n box-shadow: 0 .5rem 0 -.5rem var(--rf-color-loader-animation);\n }\n}\n\n.rf-animate-loaderMini {\n animation: 1.8s ease-in-out -.16s infinite both rf-loaderMini;\n}\n\n@keyframes rf-slideBottom {\n 0% {\n opacity: 0;\n transform: translateX(0)translateY(20px);\n }\n\n 100% {\n opacity: 1;\n transform: translateX(0)translateY(0);\n }\n}\n\n.rf-animate-slideBottom {\n animation: .5s .2s backwards rf-slideBottom;\n}\n\n@keyframes rf-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.rf-animate-spin {\n animation: 1s linear infinite rf-spin;\n}\n\n.rf-cursor-pointer {\n cursor: pointer;\n}\n\n.rf-select-none {\n user-select: none;\n}\n\n.rf-resize-none {\n resize: none;\n}\n\n.rf-scroll-pb-4 {\n scroll-padding-bottom: 1rem;\n}\n\n.rf-grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n\n.rf-grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n\n.rf-grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n\n.rf-grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n\n.rf-grid-cols-6 {\n grid-template-columns: repeat(6, minmax(0, 1fr));\n}\n\n.rf-grid-cols-7 {\n grid-template-columns: repeat(7, minmax(0, 1fr));\n}\n\n.rf-grid-cols-8 {\n grid-template-columns: repeat(8, minmax(0, 1fr));\n}\n\n.rf-grid-cols-\\[repeat\\(2\\,30\\%\\)\\] {\n grid-template-columns: repeat(2, 30%);\n}\n\n.rf-grid-cols-\\[repeat\\(2\\,45\\%\\)\\] {\n grid-template-columns: repeat(2, 45%);\n}\n\n.rf-grid-cols-\\[repeat\\(3\\,31\\%\\)\\] {\n grid-template-columns: repeat(3, 31%);\n}\n\n.rf-grid-cols-headerContainer {\n grid-template-columns: 5rem 1rem 1fr 1fr;\n}\n\n.rf-grid-cols-printingPreview {\n grid-template-columns: minmax(0, 1fr) 3rem;\n}\n\n.rf-grid-cols-routes {\n grid-template-columns: repeat(3, max-content);\n}\n\n.rf-grid-rows-1 {\n grid-template-rows: repeat(1, minmax(0, 1fr));\n}\n\n.rf-grid-rows-2 {\n grid-template-rows: repeat(2, minmax(0, 1fr));\n}\n\n.rf-grid-rows-3 {\n grid-template-rows: repeat(3, minmax(0, 1fr));\n}\n\n.rf-grid-rows-4 {\n grid-template-rows: repeat(4, minmax(0, 1fr));\n}\n\n.rf-grid-rows-5 {\n grid-template-rows: repeat(5, minmax(0, 1fr));\n}\n\n.rf-grid-rows-container {\n grid-template-rows: repeat(12, minmax(0, 1fr));\n}\n\n.rf-grid-rows-headerContainer {\n grid-template-rows: repeat(2, minmax(0, 1fr));\n}\n\n.rf-flex-row {\n flex-direction: row;\n}\n\n.rf-flex-col {\n flex-direction: column;\n}\n\n.rf-flex-col-reverse {\n flex-direction: column-reverse;\n}\n\n.rf-flex-wrap {\n flex-wrap: wrap;\n}\n\n.rf-flex-nowrap {\n flex-wrap: nowrap;\n}\n\n.rf-content-around {\n align-content: space-around;\n}\n\n.rf-items-start {\n align-items: flex-start;\n}\n\n.rf-items-end {\n align-items: flex-end;\n}\n\n.rf-items-center {\n align-items: center;\n}\n\n.rf-justify-start {\n justify-content: flex-start;\n}\n\n.rf-justify-end {\n justify-content: flex-end;\n}\n\n.rf-justify-center {\n justify-content: center;\n}\n\n.rf-justify-between {\n justify-content: space-between;\n}\n\n.rf-justify-around {\n justify-content: space-around;\n}\n\n.rf-justify-evenly {\n justify-content: space-evenly;\n}\n\n.rf-gap-1 {\n gap: .25rem;\n}\n\n.rf-gap-12 {\n gap: 3rem;\n}\n\n.rf-gap-2 {\n gap: .5rem;\n}\n\n.rf-gap-3 {\n gap: .75rem;\n}\n\n.rf-gap-4 {\n gap: 1rem;\n}\n\n.rf-gap-5 {\n gap: 1.25rem;\n}\n\n.rf-gap-6 {\n gap: 1.5rem;\n}\n\n.rf-gap-8 {\n gap: 2rem;\n}\n\n.rf-gap-9 {\n gap: 2.25rem;\n}\n\n.rf-gap-\\[10\\%\\] {\n gap: 10%;\n}\n\n.rf-gap-x-\\[3\\.5\\%\\] {\n column-gap: 3.5%;\n}\n\n.rf-divide-x > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-x-reverse: 0;\n border-right-width: calc(1px * var(--tw-divide-x-reverse));\n border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));\n}\n\n.rf-self-auto {\n align-self: auto;\n}\n\n.rf-self-start {\n align-self: flex-start;\n}\n\n.rf-self-end {\n align-self: flex-end;\n}\n\n.rf-self-center {\n align-self: center;\n}\n\n.rf-justify-self-start {\n justify-self: start;\n}\n\n.rf-justify-self-end {\n justify-self: end;\n}\n\n.rf-justify-self-center {\n justify-self: center;\n}\n\n.rf-overflow-hidden {\n overflow: hidden;\n}\n\n.rf-overflow-clip {\n overflow: clip;\n}\n\n.rf-overflow-y-auto {\n overflow-y: auto;\n}\n\n.rf-overflow-x-hidden {\n overflow-x: hidden;\n}\n\n.rf-overflow-y-hidden {\n overflow-y: hidden;\n}\n\n.rf-overflow-y-clip {\n overflow-y: clip;\n}\n\n.rf-overflow-x-visible {\n overflow-x: visible;\n}\n\n.rf-overflow-y-visible {\n overflow-y: visible;\n}\n\n.rf-overflow-x-scroll {\n overflow-x: scroll;\n}\n\n.rf-overflow-y-scroll {\n overflow-y: scroll;\n}\n\n.rf-truncate {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.rf-whitespace-nowrap {\n white-space: nowrap;\n}\n\n.rf-whitespace-break-spaces {\n white-space: break-spaces;\n}\n\n.rf-rounded {\n border-radius: .3125rem;\n}\n\n.rf-rounded-6 {\n border-radius: 1.5rem;\n}\n\n.rf-rounded-8 {\n border-radius: 2rem;\n}\n\n.rf-rounded-\\[20px\\] {\n border-radius: 20px;\n}\n\n.rf-rounded-half {\n border-radius: 50%;\n}\n\n.rf-rounded-lg {\n border-radius: .5rem;\n}\n\n.rf-rounded-max {\n border-radius: 100%;\n}\n\n.rf-rounded-b {\n border-bottom-right-radius: .3125rem;\n border-bottom-left-radius: .3125rem;\n}\n\n.rf-rounded-b-4 {\n border-bottom-right-radius: 1rem;\n border-bottom-left-radius: 1rem;\n}\n\n.rf-rounded-b-lg {\n border-bottom-right-radius: .5rem;\n border-bottom-left-radius: .5rem;\n}\n\n.rf-rounded-t-lg {\n border-top-left-radius: .5rem;\n border-top-right-radius: .5rem;\n}\n\n.rf-border {\n border-width: 1px;\n}\n\n.rf-border-0 {\n border-width: 0;\n}\n\n.rf-border-2 {\n border-width: 2px;\n}\n\n.rf-border-y {\n border-top-width: 1px;\n border-bottom-width: 1px;\n}\n\n.rf-border-b {\n border-bottom-width: 1px;\n}\n\n.rf-border-b-2 {\n border-bottom-width: 2px;\n}\n\n.rf-border-l {\n border-left-width: 1px;\n}\n\n.rf-border-r {\n border-right-width: 1px;\n}\n\n.rf-border-t {\n border-top-width: 1px;\n}\n\n.rf-border-t-0 {\n border-top-width: 0;\n}\n\n.rf-border-none {\n border-style: none;\n}\n\n.rf-border-\\[\\#00000029\\] {\n border-color: #00000029;\n}\n\n.rf-border-\\[\\#1999B1\\] {\n --tw-border-opacity: 1;\n border-color: rgb(25 153 177 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#325981\\] {\n --tw-border-opacity: 1;\n border-color: rgb(50 89 129 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#707070\\] {\n --tw-border-opacity: 1;\n border-color: rgb(112 112 112 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#8B8888\\] {\n --tw-border-opacity: 1;\n border-color: rgb(139 136 136 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#9FA2AA\\] {\n --tw-border-opacity: 1;\n border-color: rgb(159 162 170 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#C7C6C6\\] {\n --tw-border-opacity: 1;\n border-color: rgb(199 198 198 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#F0F0F0\\] {\n --tw-border-opacity: 1;\n border-color: rgb(240 240 240 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-black {\n border-color: var(--rf-color-black);\n}\n\n.rf-border-cardButtonBorderDefault {\n border-color: var(--rf-color-cardButtonBorderDefault);\n}\n\n.rf-border-cardButtonBorderHover {\n border-color: var(--rf-color-cardButtonBorderHover);\n}\n\n.rf-border-cardFrameBorder {\n border-color: var(--rf-color-cardFrameBorder);\n}\n\n.rf-border-formInputButtonBorderDefault {\n border-color: var(--rf-color-formInputButtonBorderDefault);\n}\n\n.rf-border-formInputButtonBorderHover {\n border-color: var(--rf-color-formInputButtonBorderHover);\n}\n\n.rf-border-formInputRadioCheckboxCheckedBorder {\n border-color: var(--rf-color-formInputRadioCheckboxCheckedBorder);\n}\n\n.rf-border-formInputRadioCheckboxUncheckedBorder {\n border-color: var(--rf-color-formInputRadioCheckboxUncheckedBorder);\n}\n\n.rf-border-gray {\n --tw-border-opacity: 1;\n border-color: rgb(128 128 128 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-lightgray {\n --tw-border-opacity: 1;\n border-color: rgb(129 129 129 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-menuBorder {\n --tw-border-opacity: 1;\n border-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-primary {\n border-color: var(--rf-color-primary);\n}\n\n.rf-border-secondary {\n border-color: var(--rf-color-secondary);\n}\n\n.rf-border-templateCheckboxBorder {\n --tw-border-opacity: 1;\n border-color: rgb(112 112 112 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-textBoxBorder {\n --tw-border-opacity: 1;\n border-color: rgb(190 190 190 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-textModePanelBackgroundBot {\n border-color: var(--rf-color-textModePanelBackgroundBot);\n}\n\n.rf-border-textModePanelBackgroundUser {\n border-color: var(--rf-color-textModePanelBackgroundUser);\n}\n\n.rf-border-trueblack {\n --tw-border-opacity: 1;\n border-color: rgb(0 0 0 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-truewhite {\n --tw-border-opacity: 1;\n border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-x-primary {\n border-left-color: var(--rf-color-primary);\n border-right-color: var(--rf-color-primary);\n}\n\n.rf-border-y-menuBorder {\n --tw-border-opacity: 1;\n border-top-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n border-bottom-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-b-\\[\\#C4C5C8\\] {\n --tw-border-opacity: 1;\n border-bottom-color: rgb(196 197 200 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-b-black {\n border-bottom-color: var(--rf-color-black);\n}\n\n.rf-border-b-menuBorder {\n --tw-border-opacity: 1;\n border-bottom-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-b-silver {\n --tw-border-opacity: 1;\n border-bottom-color: rgb(192 192 192 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-b-transparent {\n border-bottom-color: #0000;\n}\n\n.rf-border-l-menuBorder {\n --tw-border-opacity: 1;\n border-left-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-r-\\[\\#8B8888\\] {\n --tw-border-opacity: 1;\n border-right-color: rgb(139 136 136 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-r-silver {\n --tw-border-opacity: 1;\n border-right-color: rgb(192 192 192 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-t-\\[\\#8B8888\\] {\n --tw-border-opacity: 1;\n border-top-color: rgb(139 136 136 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-t-\\[\\#CBC9C9\\] {\n --tw-border-opacity: 1;\n border-top-color: rgb(203 201 201 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-t-menuBorder {\n --tw-border-opacity: 1;\n border-top-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n.rf-bg-\\[\\#00000050\\] {\n background-color: #00000050;\n}\n\n.rf-bg-\\[\\#000000B3\\] {\n background-color: #000000b3;\n}\n\n.rf-bg-\\[\\#121212F2\\] {\n background-color: #121212f2;\n}\n\n.rf-bg-\\[\\#1999B1\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(25 153 177 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-\\[\\#325981\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(50 89 129 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-\\[\\#CDE5FE\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(205 229 254 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-\\[\\#F0F0F0\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(240 240 240 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-\\[\\#F8F8F8\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(248 248 248 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-black {\n background-color: var(--rf-color-black);\n}\n\n.rf-bg-blue-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-cardButtonBackgroundDefault {\n background-color: var(--rf-color-cardButtonBackgroundDefault);\n}\n\n.rf-bg-cardButtonBackgroundHover {\n background-color: var(--rf-color-cardButtonBackgroundHover);\n}\n\n.rf-bg-cardFrameBackground {\n background-color: var(--rf-color-cardFrameBackground);\n}\n\n.rf-bg-formInputButtonBackgroundDefault {\n background-color: var(--rf-color-formInputButtonBackgroundDefault);\n}\n\n.rf-bg-formInputButtonBackgroundHover {\n background-color: var(--rf-color-formInputButtonBackgroundHover);\n}\n\n.rf-bg-formInputRadioCheckboxUncheckedBackground {\n background-color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n}\n\n.rf-bg-gray {\n --tw-bg-opacity: 1;\n background-color: rgb(128 128 128 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-primary {\n background-color: var(--rf-color-primary);\n}\n\n.rf-bg-red-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-secondary {\n background-color: var(--rf-color-secondary);\n}\n\n.rf-bg-silver {\n --tw-bg-opacity: 1;\n background-color: rgb(192 192 192 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-templateBackground {\n --tw-bg-opacity: 1;\n background-color: rgb(241 241 241 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-templateEmptyCard {\n --tw-bg-opacity: 1;\n background-color: rgb(232 231 231 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-textModePanelBackgroundBot {\n background-color: var(--rf-color-textModePanelBackgroundBot);\n}\n\n.rf-bg-textModePanelBackgroundUser {\n background-color: var(--rf-color-textModePanelBackgroundUser);\n}\n\n.rf-bg-transparent {\n background-color: #0000;\n}\n\n.rf-bg-truewhite {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-vocalModeSubtitlesBackground {\n background-color: var(--rf-color-vocalModeSubtitlesBackground);\n}\n\n.rf-bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(247 243 246 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-opacity-30 {\n --tw-bg-opacity: .3;\n}\n\n.rf-bg-opacity-50 {\n --tw-bg-opacity: .5;\n}\n\n.rf-bg-opacity-80 {\n --tw-bg-opacity: .8;\n}\n\n.rf-object-cover {\n object-fit: cover;\n}\n\n.rf-p-0 {\n padding: 0;\n}\n\n.rf-p-1 {\n padding: .25rem;\n}\n\n.rf-p-2 {\n padding: .5rem;\n}\n\n.rf-p-3 {\n padding: .75rem;\n}\n\n.rf-p-4 {\n padding: 1rem;\n}\n\n.rf-p-\\[25px\\] {\n padding: 25px;\n}\n\n.rf-p-\\[7px_12px\\] {\n padding: 7px 12px;\n}\n\n.rf-px-1 {\n padding-left: .25rem;\n padding-right: .25rem;\n}\n\n.rf-px-16 {\n padding-left: 4rem;\n padding-right: 4rem;\n}\n\n.rf-px-2 {\n padding-left: .5rem;\n padding-right: .5rem;\n}\n\n.rf-px-3 {\n padding-left: .75rem;\n padding-right: .75rem;\n}\n\n.rf-px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.rf-px-48 {\n padding-left: 12rem;\n padding-right: 12rem;\n}\n\n.rf-px-5, .rf-px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n.rf-px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n\n.rf-py-0 {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.rf-py-1 {\n padding-top: .25rem;\n padding-bottom: .25rem;\n}\n\n.rf-py-12 {\n padding-top: 3rem;\n padding-bottom: 3rem;\n}\n\n.rf-py-16 {\n padding-top: 4rem;\n padding-bottom: 4rem;\n}\n\n.rf-py-2 {\n padding-top: .5rem;\n padding-bottom: .5rem;\n}\n\n.rf-py-3 {\n padding-top: .75rem;\n padding-bottom: .75rem;\n}\n\n.rf-py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n\n.rf-py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n\n.rf-py-8 {\n padding-top: 2rem;\n padding-bottom: 2rem;\n}\n\n.rf-pb-10 {\n padding-bottom: 2.5rem;\n}\n\n.rf-pb-12 {\n padding-bottom: 3rem;\n}\n\n.rf-pb-14 {\n padding-bottom: 3.5rem;\n}\n\n.rf-pb-2 {\n padding-bottom: .5rem;\n}\n\n.rf-pb-24 {\n padding-bottom: 6rem;\n}\n\n.rf-pb-3 {\n padding-bottom: .75rem;\n}\n\n.rf-pb-4 {\n padding-bottom: 1rem;\n}\n\n.rf-pb-5, .rf-pb-6 {\n padding-bottom: 1.5rem;\n}\n\n.rf-pb-8 {\n padding-bottom: 2rem;\n}\n\n.rf-pb-\\[15vh\\] {\n padding-bottom: 15vh;\n}\n\n.rf-pl-0 {\n padding-left: 0;\n}\n\n.rf-pl-1 {\n padding-left: .25rem;\n}\n\n.rf-pl-4 {\n padding-left: 1rem;\n}\n\n.rf-pl-6 {\n padding-left: 1.5rem;\n}\n\n.rf-pl-8 {\n padding-left: 2rem;\n}\n\n.rf-pr-1 {\n padding-right: .25rem;\n}\n\n.rf-pr-4 {\n padding-right: 1rem;\n}\n\n.rf-pt-1 {\n padding-top: .25rem;\n}\n\n.rf-pt-11\\/20 {\n padding-top: 55%;\n}\n\n.rf-pt-12 {\n padding-top: 3rem;\n}\n\n.rf-pt-14 {\n padding-top: 3.5rem;\n}\n\n.rf-pt-2 {\n padding-top: .5rem;\n}\n\n.rf-pt-24 {\n padding-top: 6rem;\n}\n\n.rf-pt-3 {\n padding-top: .75rem;\n}\n\n.rf-pt-4 {\n padding-top: 1rem;\n}\n\n.rf-pt-40 {\n padding-top: 10rem;\n}\n\n.rf-pt-6 {\n padding-top: 1.5rem;\n}\n\n.rf-pt-8 {\n padding-top: 2rem;\n}\n\n.rf-pt-\\[25vh\\] {\n padding-top: 25vh;\n}\n\n.rf-pt-\\[26vh\\] {\n padding-top: 26vh;\n}\n\n.rf-text-left {\n text-align: left;\n}\n\n.rf-text-center {\n text-align: center;\n}\n\n.rf-text-justify {\n text-align: justify;\n}\n\n.rf-font-default {\n font-family: Calibri, sans-serif;\n}\n\n.rf-text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n\n.rf-text-3xl {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n\n.rf-text-4xl {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n.rf-text-5xl {\n font-size: 3rem;\n line-height: 1;\n}\n\n.rf-text-6xl {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n.rf-text-7xl {\n font-size: 4.5rem;\n line-height: 1;\n}\n\n.rf-text-8xl {\n font-size: 6rem;\n line-height: 1;\n}\n\n.rf-text-\\[0\\.5rem\\] {\n font-size: .5rem;\n}\n\n.rf-text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n\n.rf-text-basecustom {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n.rf-text-lgcustom {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n.rf-text-sm {\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n.rf-text-sm\\/4 {\n font-size: .875rem;\n line-height: 1rem;\n}\n\n.rf-text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n\n.rf-text-xs {\n font-size: .75rem;\n line-height: 1rem;\n}\n\n.rf-text-xsl {\n font-size: .7rem;\n line-height: 1rem;\n}\n\n.rf-text-xsm {\n font-size: .6rem;\n}\n\n.rf-font-bold {\n font-weight: 600;\n}\n\n.rf-font-light {\n font-weight: 200;\n}\n\n.rf-font-medium {\n font-weight: 300;\n}\n\n.rf-font-semibold {\n font-weight: 400;\n}\n\n.rf-uppercase {\n text-transform: uppercase;\n}\n\n.rf-capitalize {\n text-transform: capitalize;\n}\n\n.rf-normal-case {\n text-transform: none;\n}\n\n.rf-italic {\n font-style: italic;\n}\n\n.rf-leading-4 {\n line-height: 1rem;\n}\n\n.rf-text-\\[\\#1999B1\\] {\n --tw-text-opacity: 1;\n color: rgb(25 153 177 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-\\[\\#325981\\] {\n --tw-text-opacity: 1;\n color: rgb(50 89 129 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-\\[\\#575F6B\\] {\n --tw-text-opacity: 1;\n color: rgb(87 95 107 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-\\[\\#9A9A9A\\] {\n --tw-text-opacity: 1;\n color: rgb(154 154 154 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-\\[\\#A4A7AF\\] {\n --tw-text-opacity: 1;\n color: rgb(164 167 175 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-black {\n color: var(--rf-color-black);\n}\n\n.rf-text-cardButtonTextDefault {\n color: var(--rf-color-cardButtonTextDefault);\n}\n\n.rf-text-cardFrameText {\n color: var(--rf-color-cardFrameText);\n}\n\n.rf-text-formInputButtonTextDefault {\n color: var(--rf-color-formInputButtonTextDefault);\n}\n\n.rf-text-formInputButtonTextHover {\n color: var(--rf-color-formInputButtonTextHover);\n}\n\n.rf-text-formInputRadioCheckboxUncheckedBackground {\n color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n}\n\n.rf-text-formInputTextDefault {\n color: var(--rf-color-formInputTextDefault);\n}\n\n.rf-text-gray {\n --tw-text-opacity: 1;\n color: rgb(128 128 128 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-lightgray {\n --tw-text-opacity: 1;\n color: rgb(129 129 129 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-primary {\n color: var(--rf-color-primary);\n}\n\n.rf-text-secondary {\n color: var(--rf-color-secondary);\n}\n\n.rf-text-textModePanelConversationBot {\n color: var(--rf-color-textModePanelConversationBot);\n}\n\n.rf-text-textModePanelConversationUser {\n color: var(--rf-color-textModePanelConversationUser);\n}\n\n.rf-text-trueblack {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-truewhite {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-vocalModeSubtitlesText {\n color: var(--rf-color-vocalModeSubtitlesText);\n}\n\n.rf-text-white {\n --tw-text-opacity: 1;\n color: rgb(247 243 246 / var(--tw-text-opacity, 1));\n}\n\n.rf-underline {\n text-decoration-line: underline;\n}\n\n.rf-shadow-\\[-3px_-3px_10px_\\#00000099\\] {\n --tw-shadow: -3px -3px 10px #0009;\n --tw-shadow-colored: -3px -3px 10px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_0_15px_0_silver\\] {\n --tw-shadow: 0 0 15px 0 silver;\n --tw-shadow-colored: 0 0 15px 0 var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_0_20px_1px_\\#A4A7AF80\\] {\n --tw-shadow: 0 0 20px 1px #a4a7af80;\n --tw-shadow-colored: 0 0 20px 1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_0_3px_6px_\\#00000029\\] {\n --tw-shadow: 0 0 3px 6px #00000029;\n --tw-shadow-colored: 0 0 3px 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_3px_6px_\\#00000029\\] {\n --tw-shadow: 0 3px 6px #00000029;\n --tw-shadow-colored: 0 3px 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_3px_6px_\\#606267\\] {\n --tw-shadow: 0 3px 6px #606267;\n --tw-shadow-colored: 0 3px 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_6px_6px_\\#00000029\\] {\n --tw-shadow: 0 6px 6px #00000029;\n --tw-shadow-colored: 0 6px 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[20px_3px_20px_\\#00000029\\] {\n --tw-shadow: 20px 3px 20px #00000029;\n --tw-shadow-colored: 20px 3px 20px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[3px_3px_16px_\\#00000029\\] {\n --tw-shadow: 3px 3px 16px #00000029;\n --tw-shadow-colored: 3px 3px 16px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[3px_3px_6px_\\#00000029\\] {\n --tw-shadow: 3px 3px 6px #00000029;\n --tw-shadow-colored: 3px 3px 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[inset_0_0_6px_\\#0000003B\\] {\n --tw-shadow: inset 0 0 6px #0000003b;\n --tw-shadow-colored: inset 0 0 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[inset_0_12px_12px_-12px_\\#00000029\\,inset_0_-12px_12px_-12px_\\#00000029\\] {\n --tw-shadow: inset 0 12px 12px -12px #00000029, inset 0 -12px 12px -12px #00000029;\n --tw-shadow-colored: inset 0 12px 12px -12px var(--tw-shadow-color), inset 0 -12px 12px -12px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-outline-none {\n outline-offset: 2px;\n outline: 2px solid #0000;\n}\n\n.rf-blur-background {\n --tw-blur: blur(var(--rf-blur-background));\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.rf-filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.rf-transition-all {\n transition-property: all;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.rf-transition-transform {\n transition-property: transform;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.rf-text-shadow-black {\n text-shadow: 2px 0 5px #000, -2px 0 5px #000, 0 2px 5px #000, 0 -2px 5px #000;\n}\n\n.rf-capitalize-first:first-letter {\n text-transform: uppercase;\n}\n\nol {\n padding-left: 2rem;\n list-style-type: decimal;\n}\n\nul {\n padding-left: 2rem;\n list-style-type: disc;\n}\n\n#retorik-container.rf-portrait:not(.rf-large) .ac-image {\n max-width: 100px;\n}\n\n.rf-glass-background, #retorik-container.portrait .portrait\\:rf-glass-background {\n background-color: var(--rf-color-black);\n --tw-bg-opacity: .62;\n --tw-backdrop-blur: blur(8px);\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n}\n\n.rf-loader-bouncing-bot {\n aspect-ratio: 2;\n --_g: no-repeat radial-gradient(circle closest-side, var(--rf-color-textModePanelConversationBot) 90%, transparent);\n background: var(--_g) 0% 50%, var(--_g) 50% 50%, var(--_g) 100% 50%;\n background-size: 33.3333% 50%;\n}\n\n@keyframes rf-loaderBouncing {\n 20% {\n background-position: 0 0, 50%, 100%;\n }\n\n 40% {\n background-position: 0 100%, 50% 0, 100%;\n }\n\n 60% {\n background-position: 0%, 50% 100%, 100% 0;\n }\n\n 80% {\n background-position: 0%, 50%, 100% 100%;\n }\n}\n\n.rf-loader-bouncing-bot {\n animation: 1s linear infinite rf-loaderBouncing;\n}\n\n.rf-loader-bouncing-white {\n aspect-ratio: 2;\n --_g: no-repeat radial-gradient(circle closest-side, #fff 90%, transparent);\n background: var(--_g) 0% 50%, var(--_g) 50% 50%, var(--_g) 100% 50%;\n background-size: 33.3333% 50%;\n animation: 1s linear infinite rf-loaderBouncing;\n}\n\n@keyframes rf-loaderPulsation {\n 0% {\n transform: scale3d(1, 1, 1);\n }\n\n 50% {\n transform: scale3d(1.1, 1.1, 1);\n }\n\n 100% {\n transform: scale3d(1, 1, 1);\n }\n}\n\n.rf-loader-pulsation {\n animation: 2s cubic-bezier(.65, 0, .34, 1) infinite rf-loaderPulsation;\n}\n\n.rf-loader-pulsation:before {\n content: \"\";\n background-color: var(--rf-color-secondary);\n z-index: -1;\n border-radius: 50%;\n width: 100%;\n height: 100%;\n position: absolute;\n}\n\n@keyframes rf-loaderRipple {\n 0% {\n opacity: 1;\n transform: scale3d(.75, .75, 1);\n }\n\n 100% {\n opacity: 0;\n transform: scale3d(1.5, 1.5, 1);\n }\n}\n\n.rf-loader-pulsation:before {\n animation: 2.4s cubic-bezier(.65, 0, .34, 1) .4s infinite rf-loaderRipple;\n}\n\n.rf-loader-pulsation:after {\n content: \"\";\n background-color: var(--rf-color-secondary);\n z-index: -1;\n border-radius: 50%;\n width: 100%;\n height: 100%;\n animation: 2.4s cubic-bezier(.65, 0, .34, 1) infinite rf-loaderRipple;\n position: absolute;\n}\n\n.rf-loader:before {\n content: \"\";\n border-radius: 50%;\n width: 1.5rem;\n height: 1.5rem;\n animation: 1.8s ease-in-out -.32s infinite both rf-loader;\n display: block;\n position: absolute;\n right: 1.5rem;\n}\n\n.rf-loader:after {\n content: \"\";\n border-radius: 50%;\n width: 1.5rem;\n height: 1.5rem;\n animation: 1.8s ease-in-out infinite both rf-loader;\n display: block;\n position: absolute;\n left: 1.5rem;\n}\n\n.rf-loader-medium:before {\n content: \"\";\n border-radius: 50%;\n width: 1rem;\n height: 1rem;\n animation: 1.8s ease-in-out -.32s infinite both rf-loaderMedium;\n display: block;\n position: absolute;\n right: 1rem;\n}\n\n.rf-loader-medium:after {\n content: \"\";\n border-radius: 50%;\n width: 1rem;\n height: 1rem;\n animation: 1.8s ease-in-out infinite both rf-loaderMedium;\n display: block;\n position: absolute;\n left: 1rem;\n}\n\n.rf-loader-mini:before {\n content: \"\";\n border-radius: 50%;\n width: .5rem;\n height: .5rem;\n animation: 1.8s ease-in-out -.32s infinite both rf-loaderMini;\n display: block;\n position: absolute;\n right: .5rem;\n}\n\n.rf-loader-mini:after {\n content: \"\";\n border-radius: 50%;\n width: .5rem;\n height: .5rem;\n animation: 1.8s ease-in-out infinite both rf-loaderMini;\n display: block;\n position: absolute;\n left: .5rem;\n}\n\n.rf-loader-microphone:before, .rf-loader-microphone:after {\n content: \"\";\n --tw-border-opacity: 1;\n border: 6px solid #0000;\n border-top-color: rgb(128 128 128 / var(--tw-border-opacity, 1));\n border-radius: 100%;\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.rf-loader-microphone:before {\n z-index: 2;\n animation: 1s linear infinite rf-spin;\n}\n\n.rf-loader-microphone:after {\n --tw-border-opacity: 1;\n border-color: rgb(204 204 204 / var(--tw-border-opacity, 1));\n}\n\n.rf-loader-microphone-primary:before, .rf-loader-microphone-primary:after {\n content: \"\";\n border: 6px solid #0000;\n border-top-color: var(--rf-color-primary);\n border-radius: 100%;\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.rf-loader-microphone-primary:before {\n z-index: 2;\n animation: 1s linear infinite rf-spin;\n}\n\n.rf-loader-microphone-primary:after {\n --tw-border-opacity: 1;\n border-color: rgb(204 204 204 / var(--tw-border-opacity, 1));\n}\n\n.rf-loader-microphone-secondary:before, .rf-loader-microphone-secondary:after {\n content: \"\";\n border: 6px solid #0000;\n border-top-color: var(--rf-color-secondary);\n border-radius: 100%;\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.rf-loader-microphone-secondary:before {\n z-index: 2;\n animation: 1s linear infinite rf-spin;\n}\n\n.rf-loader-microphone-secondary:after {\n --tw-border-opacity: 1;\n border-color: rgb(204 204 204 / var(--tw-border-opacity, 1));\n}\n\n.rf-loader-counter {\n border-width: 8px;\n border-color: var(--rf-color-primary);\n border-radius: 50%;\n position: relative;\n}\n\n@keyframes rf-loaderCounter {\n 0% {\n clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0);\n }\n\n 25% {\n clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 0, 100% 0, 100% 0);\n }\n\n 50% {\n clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 100% 100%, 100% 100%);\n }\n\n 75% {\n clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%);\n }\n\n 100% {\n clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 0);\n }\n}\n\n.rf-loader-counter:before {\n border-width: 10px;\n border-color: var(--rf-color-cardFrameBackground);\n content: \"\";\n animation: rf-loaderCounter;\n animation-duration: var(--duration);\n border-radius: 50%;\n animation-timing-function: linear;\n position: absolute;\n inset: -9px;\n transform: rotate(45deg);\n}\n\n.rf-touch-action-none {\n touch-action: none;\n}\n\n.rf-unselectable {\n user-select: none;\n -webkit-touch-callout: none;\n}\n\n.rf-title-extralarge-bold-size-auto {\n font-size: 2.25rem;\n font-weight: 600;\n line-height: 2.5rem;\n}\n\n#retorik-container.rf-large .rf-title-extralarge-bold-size-auto {\n font-size: 3rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-extralarge-bold-size-auto {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n.rf-title-extralarge-size-auto {\n font-size: 2.25rem;\n font-weight: 400;\n line-height: 2.5rem;\n}\n\n#retorik-container.rf-large .rf-title-extralarge-size-auto {\n font-size: 3rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-extralarge-size-auto {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n.rf-title-large-size-auto {\n font-size: 1.5rem;\n font-weight: 400;\n line-height: 2rem;\n}\n\n#retorik-container.rf-large .rf-title-large-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-large-size-auto {\n font-size: 3rem;\n line-height: 1;\n}\n\n.rf-title-large-bold-size-auto {\n font-size: 1.875rem;\n font-weight: 600;\n line-height: 2.25rem;\n}\n\n#retorik-container.rf-large .rf-title-large-bold-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-large-bold-size-auto {\n font-size: 3rem;\n line-height: 1;\n}\n\n.rf-title-size-auto {\n font-size: 1.5rem;\n font-weight: 400;\n line-height: 2rem;\n}\n\n#retorik-container.rf-large .rf-title-size-auto {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n.rf-title-bold-size-auto {\n font-size: 1.5rem;\n font-weight: 600;\n line-height: 2rem;\n}\n\n#retorik-container.rf-large .rf-title-bold-size-auto {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-bold-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n.rf-subtitle-size-auto {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-subtitle-size-auto {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-subtitle-size-auto {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n\n.rf-text-extralarge-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n#retorik-container.rf-large .rf-text-extralarge-size-auto {\n font-size: 3rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-text-extralarge-size-auto {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n.rf-text-verylarge-size-auto {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n\n#retorik-container.rf-large .rf-text-verylarge-size-auto {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-text-verylarge-size-auto {\n font-size: 4.5rem;\n line-height: 1;\n}\n\n.rf-text-large-size-auto {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n\n#retorik-container.rf-large .rf-text-large-size-auto {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-text-large-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n.rf-text-medium-size-auto {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large .rf-text-medium-size-auto {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n.rf-text-size-auto {\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-text-size-auto {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-text-size-auto {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n.rf-text-small-size-auto {\n font-size: .875rem;\n line-height: 1rem;\n}\n\n#retorik-container.rf-large .rf-text-small-size-auto {\n font-size: 1rem;\n line-height: 1.1rem;\n}\n\n.rf-text-extra-small-size-auto {\n font-size: .6rem;\n line-height: .75rem;\n}\n\n#retorik-container.rf-large .rf-text-extra-small-size-auto {\n font-size: .875rem;\n line-height: 1rem;\n}\n\n.rf-small-size-auto {\n font-size: .6rem;\n}\n\n#retorik-container.rf-large .rf-small-size-auto {\n font-size: .75rem;\n line-height: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-small-size-auto {\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n.rf-line-clamp-unknown {\n hyphens: auto;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-1 {\n hyphens: auto;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-2 {\n hyphens: auto;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-3 {\n hyphens: auto;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-4 {\n hyphens: auto;\n -webkit-line-clamp: 4;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-5 {\n hyphens: auto;\n -webkit-line-clamp: 5;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-6 {\n hyphens: auto;\n -webkit-line-clamp: 6;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-7 {\n hyphens: auto;\n -webkit-line-clamp: 7;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-8 {\n hyphens: auto;\n -webkit-line-clamp: 8;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-9 {\n hyphens: auto;\n -webkit-line-clamp: 9;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-10 {\n hyphens: auto;\n -webkit-line-clamp: 10;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-overflow-wrap {\n overflow-wrap: anywhere;\n}\n\n.rf-height-fill-available {\n height: stretch;\n}\n\n.rf-width-fill-available {\n width: stretch;\n}\n\n.rf-animation-delay-2 {\n animation-delay: .2s;\n}\n\n.rf-animation-delay-4 {\n animation-delay: .4s;\n}\n\n.rf-scrollbar-thin {\n scrollbar-width: thin;\n scrollbar-color: var(--rf-color-secondary) transparent;\n}\n\n.rf-scrollbar-thin::-webkit-scrollbar {\n width: .2rem;\n height: .2rem;\n margin: .25rem 0;\n}\n\n.rf-scrollbar-thin::-webkit-scrollbar-thumb {\n background-color: var(--rf-color-secondary);\n border-radius: .5rem;\n}\n\n.rf-scrollbar-x-custom::-webkit-scrollbar {\n background-color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n border-radius: 2rem;\n height: .5rem;\n}\n\n.rf-scrollbar-x-custom::-webkit-scrollbar-thumb {\n background-color: var(--rf-color-primary);\n border-radius: 2rem;\n}\n\n.rf-scrollbar-hidden {\n scrollbar-width: none;\n}\n\n.rf-scrollbar-hidden::-webkit-scrollbar {\n display: none;\n}\n\n.rf-opacity-gradient-b {\n -webkit-mask-image: linear-gradient(#000 50%, #0000 100%);\n}\n\n.rf-opacity-gradient-b-thin {\n -webkit-mask-image: linear-gradient(#797676 84%, #0000 100%);\n}\n\n.rf-opacity-gradient-l {\n -webkit-mask-image: linear-gradient(to left, #000 75%, gray 80%, #0000 85%);\n}\n\n.rf-opacity-gradient-l-thin {\n -webkit-mask-image: linear-gradient(to left, #000 90%, gray 95%, #0000 100%);\n}\n\n.rf-opacity-gradient-r {\n -webkit-mask-image: linear-gradient(to right, #000 75%, gray 80%, #0000 85%);\n}\n\n.rf-opacity-gradient-r-thin {\n -webkit-mask-image: linear-gradient(to right, #000 90%, gray 95%, #0000 100%);\n}\n\n.rf-opacity-gradient-h {\n -webkit-mask-image: linear-gradient(to right, #0000 0%, 6%, #000, 94%, #0000 100%);\n}\n\n.rf-card-button {\n border-width: 1px;\n border-color: var(--rf-color-cardButtonBorderDefault);\n background-color: var(--rf-color-cardButtonBackgroundDefault);\n color: var(--rf-color-cardButtonTextDefault);\n border-radius: .3125rem;\n padding: .25rem .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-card-button {\n padding: .5rem 1rem;\n}\n\n.rf-card-button:hover {\n cursor: pointer;\n border-color: var(--rf-color-cardButtonBorderHover);\n background-color: var(--rf-color-cardButtonBackgroundHover);\n color: var(--rf-color-cardButtonTextHover);\n}\n\n.rf-card-button-clicked {\n background-color: var(--rf-color-cardButtonBackgroundDefault);\n border-width: 1px;\n border-color: #0000;\n padding-top: .25rem;\n padding-bottom: .25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-clicked {\n padding-top: .5rem;\n padding-bottom: .5rem;\n}\n\n.rf-card-button-positive {\n border-width: 1px;\n border-color: var(--rf-color-cardFrameBackground);\n background-color: var(--rf-color-cardButtonTextDefault);\n color: var(--rf-color-cardFrameBackground);\n border-radius: .3125rem;\n padding: .25rem .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-positive {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button-positive {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-card-button-positive {\n padding: .5rem 1rem;\n}\n\n.rf-card-button-positive:hover {\n cursor: pointer;\n border-color: var(--rf-color-cardButtonTextDefault);\n background-color: var(--rf-color-cardFrameBackground);\n color: var(--rf-color-cardButtonTextDefault);\n}\n\n.rf-card-button-destructive {\n --tw-border-opacity: 1;\n border-width: 1px;\n border-color: rgb(220 38 38 / var(--tw-border-opacity, 1));\n --tw-bg-opacity: 1;\n background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n border-radius: .3125rem;\n padding: .25rem .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-destructive {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button-destructive {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-card-button-destructive {\n padding: .5rem 1rem;\n}\n\n.rf-card-button-destructive:hover {\n cursor: pointer;\n --tw-border-opacity: 1;\n border-color: rgb(220 38 38 / var(--tw-border-opacity, 1));\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n --tw-text-opacity: 1;\n color: rgb(220 38 38 / var(--tw-text-opacity, 1));\n}\n\n.rf-card-button-secondary {\n border-width: 1px;\n border-color: var(--rf-color-secondary);\n color: var(--rf-color-secondary);\n background-color: #0000;\n border-radius: .3125rem;\n padding: .25rem .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-secondary {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button-secondary {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-card-button-secondary {\n padding: .5rem 1rem;\n}\n\n.rf-card-button-secondary:hover {\n cursor: pointer;\n border-color: var(--rf-color-secondary);\n background-color: var(--rf-color-secondary);\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n\n.rf-card-button-discover {\n border-width: 1px;\n border-color: var(--rf-color-cardButtonDiscoverBorderDefault);\n background-color: var(--rf-color-cardButtonDiscoverBackgroundDefault);\n color: var(--rf-color-cardButtonDiscoverTextDefault);\n border-radius: .3125rem;\n padding: .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-discover {\n padding-top: .75rem;\n padding-bottom: .75rem;\n}\n\n.rf-card-button-discover:hover {\n cursor: pointer;\n border-color: var(--rf-color-cardButtonDiscoverBorderHover);\n background-color: var(--rf-color-cardButtonDiscoverBackgroundHover);\n color: var(--rf-color-cardButtonDiscoverTextHover);\n}\n\n.rf-card-button-history {\n cursor: default;\n border-width: 1px;\n border-color: var(--rf-color-cardButtonBorderDefault);\n background-color: var(--rf-color-cardButtonBackgroundDefault);\n color: var(--rf-color-cardButtonTextDefault);\n border-radius: .3125rem;\n padding: .25rem .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-history {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button-history {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-card-button-history {\n padding: .5rem 1rem;\n}\n\n.rf-card-button-mini, .rf-card-button-mini-selected, .rf-card-button-mini-disabled {\n background-color: var(--rf-color-cardFrameBackground);\n border-width: 1px;\n border-radius: .3125rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-mini, #retorik-container.rf-large .rf-card-button-mini-selected, #retorik-container.rf-large .rf-card-button-mini-disabled {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button-mini, #retorik-container.rf-large.rf-portrait .rf-card-button-mini-selected, #retorik-container.rf-large.rf-portrait .rf-card-button-mini-disabled {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n.rf-card-button-mini {\n border-color: var(--rf-color-cardButtonBorderDefault);\n background-color: var(--rf-color-cardFrameBackground);\n color: var(--rf-color-cardButtonTextDefault);\n}\n\n.rf-card-button-mini:hover {\n cursor: pointer;\n border-color: var(--rf-color-cardButtonBorderHover);\n background-color: var(--rf-color-cardFrameBackground);\n color: var(--rf-color-cardButtonTextHover);\n}\n\n.rf-card-button-mini-selected {\n border-color: var(--rf-color-cardFrameBackground);\n background-color: var(--rf-color-cardButtonBorderDefault);\n color: var(--rf-color-cardFrameBackground);\n}\n\n.lf-player-container {\n align-items: flex-end;\n width: 100%;\n height: 100%;\n display: flex;\n overflow: hidden;\n}\n\n.rf-input-label {\n text-overflow: ellipsis;\n color: var(--rf-color-formInputTextDefault);\n margin-top: .1rem;\n margin-left: .75rem;\n overflow-x: hidden;\n}\n\n#retorik-container.rf-large .rf-input-label {\n margin-top: .25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-input-label {\n margin-top: .2rem;\n}\n\n.rf-radio-custom {\n appearance: none;\n border-width: 2px;\n border-color: var(--rf-color-formInputRadioCheckboxUncheckedBorder);\n background-color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n border-radius: 50%;\n place-content: center;\n width: 1.5rem;\n min-width: 1.5rem;\n height: 1.5rem;\n margin: 0;\n display: grid;\n}\n\n.rf-radio-custom:checked {\n border-color: var(--rf-color-formInputRadioCheckboxCheckedBorder);\n background-color: var(--rf-color-formInputRadioCheckboxCheckedBackground);\n}\n\n#retorik-container.rf-large .rf-radio-custom {\n width: 1.75rem;\n min-width: 1.75rem;\n height: 1.75rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-radio-custom {\n width: 2rem;\n min-width: 2rem;\n height: 2rem;\n}\n\n.rf-radio-custom:before {\n content: \"\";\n --tw-scale-x: 0;\n --tw-scale-y: 0;\n width: .5rem;\n height: .5rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n background-color: var(--rf-color-formInputRadioCheckboxCheckedItem);\n border-radius: 50%;\n transition-property: all;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n#retorik-container.rf-large .rf-radio-custom:before {\n width: .75rem;\n height: .75rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-radio-custom:before {\n width: 1rem;\n height: 1rem;\n}\n\n.rf-radio-custom:checked:before {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-input-hidden {\n appearance: none;\n margin: 0;\n}\n\n.rf-checkbox-custom {\n appearance: none;\n border-width: 2px;\n border-color: var(--rf-color-formInputRadioCheckboxUncheckedBorder);\n background-color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n border-radius: .3125rem;\n place-content: center;\n width: 1.5rem;\n min-width: 1.5rem;\n height: 1.5rem;\n margin: 0;\n display: grid;\n}\n\n#retorik-container.rf-large .rf-checkbox-custom {\n width: 1.75rem;\n min-width: 1.75rem;\n height: 1.75rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-checkbox-custom {\n width: 2rem;\n min-width: 2rem;\n height: 2rem;\n}\n\n.rf-checkbox-custom:checked {\n border-color: var(--rf-color-formInputRadioCheckboxCheckedBorder);\n background-color: var(--rf-color-formInputRadioCheckboxCheckedBackground);\n}\n\n.rf-toggle-custom {\n appearance: none;\n background-color: var(--rf-color-black);\n border-radius: 1.5rem;\n width: 3rem;\n min-width: 3rem;\n height: 1.5rem;\n margin: 0;\n position: relative;\n}\n\n.rf-toggle-custom:checked {\n background-color: var(--rf-color-primary);\n}\n\n#retorik-container.rf-large .rf-toggle-custom {\n border-radius: 1.75rem;\n width: 3.5rem;\n min-width: 3.5rem;\n height: 1.75rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-toggle-custom {\n border-radius: 2rem;\n width: 4rem;\n min-width: 4rem;\n height: 2rem;\n}\n\n.rf-toggle-custom:before {\n content: \"\";\n --tw-translate-x: 0px;\n width: 1rem;\n height: 1rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n border-radius: 50%;\n transition-property: all;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n position: absolute;\n top: .25rem;\n left: .25rem;\n}\n\n#retorik-container.rf-large .rf-toggle-custom:before {\n width: 1.25rem;\n height: 1.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-toggle-custom:before {\n width: 1.5rem;\n height: 1.5rem;\n}\n\n.rf-toggle-custom:checked:before {\n --tw-translate-x: 1.5rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n#retorik-container.rf-large .rf-toggle-custom:checked:before {\n --tw-translate-x: 1.75rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n#retorik-container.rf-large.rf-portrait .rf-toggle-custom:checked:before {\n --tw-translate-x: 2rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-select-custom {\n appearance: none;\n border-width: 2px;\n border-color: var(--rf-color-formInputRadioCheckboxUncheckedBorder);\n background-color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n border-radius: .3125rem;\n margin: 0;\n padding: 1rem;\n}\n\n.rf-select-custom:hover {\n cursor: pointer;\n}\n\n.rf-select-custom:focus-visible {\n border-color: var(--rf-color-formInputRadioCheckboxCheckedBorder);\n}\n\n.rf-slider-custom {\n -webkit-appearance: none;\n -moz-appearance: none;\n outline-offset: 2px;\n border-radius: .5rem;\n outline: 2px solid #0000;\n width: 100%;\n height: .25rem;\n display: block;\n position: relative;\n}\n\n.rf-slider-custom::-webkit-slider-runnable-track {\n -webkit-appearance: none;\n}\n\n.rf-slider-custom::-moz-track {\n -moz-appearance: none;\n}\n\n.rf-slider-custom::-ms-track {\n appearance: none;\n}\n\n.rf-slider-custom::-webkit-slider-thumb {\n -webkit-appearance: none;\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n border-style: none;\n border-radius: 50%;\n width: 1.5rem;\n height: 1.5rem;\n margin-top: -.2rem;\n}\n\n.rf-slider-custom::-webkit-slider-thumb:hover {\n cursor: pointer;\n}\n\n.rf-slider-custom::-moz-range-thumb {\n -webkit-appearance: none;\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n border-style: none;\n border-radius: 50%;\n width: 1.5rem;\n height: 1.5rem;\n margin-top: -.2rem;\n}\n\n.rf-slider-custom::-moz-range-thumb:hover {\n cursor: pointer;\n}\n\n.rf-slider-custom::-ms-thumb {\n appearance: none;\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n border-style: none;\n border-radius: 50%;\n width: 1.5rem;\n height: 1.5rem;\n margin-top: -.2rem;\n}\n\n.rf-slider-custom::-ms-thumb:hover {\n cursor: pointer;\n}\n\n.rf-likert-custom {\n cursor: pointer;\n outline-offset: 2px;\n -webkit-text-stroke-width: 1px;\n -webkit-text-stroke-color: white;\n background-color: #0000;\n border-style: none;\n outline: 2px solid #0000;\n}\n\n.svgButtonMenu > svg * {\n fill: var(--fill);\n}\n\n.webchat__css-custom-properties {\n width: 100%;\n height: 100%;\n}\n\n.placeholder\\:rf-text-black::placeholder {\n color: var(--rf-color-black);\n}\n\n.placeholder\\:rf-opacity-100::placeholder {\n opacity: 1;\n}\n\n.hover\\:rf-cursor-pointer:hover {\n cursor: pointer;\n}\n\n.hover\\:rf-border-truewhite:hover {\n --tw-border-opacity: 1;\n border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\n}\n\n.hover\\:rf-bg-\\[\\#1999B1\\]:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(25 153 177 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:rf-bg-formInputRadioCheckboxCheckedBackground:hover {\n background-color: var(--rf-color-formInputRadioCheckboxCheckedBackground);\n}\n\n.hover\\:rf-bg-transparent:hover {\n background-color: #0000;\n}\n\n.hover\\:rf-bg-truewhite:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:rf-text-\\[\\#1999B1\\]:hover {\n --tw-text-opacity: 1;\n color: rgb(25 153 177 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:rf-text-\\[\\#325981\\]:hover {\n --tw-text-opacity: 1;\n color: rgb(50 89 129 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:rf-text-formInputRadioCheckboxCheckedItem:hover {\n color: var(--rf-color-formInputRadioCheckboxCheckedItem);\n}\n\n.hover\\:rf-text-truewhite:hover {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:rf-shadow-\\[inset_0_0_12px_\\#00000029\\]:hover {\n --tw-shadow: inset 0 0 12px #00000029;\n --tw-shadow-colored: inset 0 0 12px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-col-span-full {\n grid-column: 1 / -1;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-col-start-1 {\n grid-column-start: 1;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-row-end-13 {\n grid-row-end: 13;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-w-5\\/6 {\n width: 83.3333%;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-w-9\\/10 {\n width: 90%;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-w-full {\n width: 100%;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-flex-col {\n flex-direction: column;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-items-center {\n align-items: center;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-overflow-x-auto {\n overflow-x: auto;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-border-r-0 {\n border-right-width: 0;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-py-1 {\n padding-top: .25rem;\n padding-bottom: .25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-absolute {\n position: absolute;\n}\n\n#retorik-container.rf-large .large\\:rf-top-8 {\n top: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-m-8 {\n margin: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-my-0 {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-my-3 {\n margin-top: .75rem;\n margin-bottom: .75rem;\n}\n\n#retorik-container.rf-large .large\\:rf-mb-0 {\n margin-bottom: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-mb-4 {\n margin-bottom: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-mb-6 {\n margin-bottom: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-ml-8 {\n margin-left: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-mt-0 {\n margin-top: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-mt-20 {\n margin-top: 5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-mt-3 {\n margin-top: .75rem;\n}\n\n#retorik-container.rf-large .large\\:rf-mt-\\[20vh\\] {\n margin-top: 20vh;\n}\n\n#retorik-container.rf-large .large\\:rf-block {\n display: block;\n}\n\n#retorik-container.rf-large .large\\:rf-flex {\n display: flex;\n}\n\n#retorik-container.rf-large .large\\:rf-hidden {\n display: none;\n}\n\n#retorik-container.rf-large .large\\:rf-aspect-video {\n aspect-ratio: 16 / 9;\n}\n\n#retorik-container.rf-large .large\\:rf-h-10 {\n height: 2.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-16 {\n height: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-20 {\n height: 5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-3\\/5 {\n height: 60%;\n}\n\n#retorik-container.rf-large .large\\:rf-h-4 {\n height: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-5 {\n height: 1.25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-6 {\n height: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-8 {\n height: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-\\[1\\.3rem\\] {\n height: 1.3rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-\\[60vh\\] {\n height: 60vh;\n}\n\n#retorik-container.rf-large .large\\:rf-h-auto {\n height: auto;\n}\n\n#retorik-container.rf-large .large\\:rf-h-full {\n height: 100%;\n}\n\n#retorik-container.rf-large .large\\:rf-max-h-28 {\n max-height: 7rem;\n}\n\n#retorik-container.rf-large .large\\:rf-max-h-\\[2\\.3rem\\] {\n max-height: 2.3rem;\n}\n\n#retorik-container.rf-large .large\\:rf-min-h-\\[2\\.3rem\\] {\n min-height: 2.3rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-1\\/8 {\n width: 12.5%;\n}\n\n#retorik-container.rf-large .large\\:rf-w-14 {\n width: 3.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-16 {\n width: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-4 {\n width: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-5 {\n width: 1.25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-6 {\n width: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-8 {\n width: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-fit {\n width: fit-content;\n}\n\n#retorik-container.rf-large .large\\:rf-w-full {\n width: 100%;\n}\n\n#retorik-container.rf-large .large\\:rf-min-w-1\\/2 {\n min-width: 50%;\n}\n\n#retorik-container.rf-large .large\\:rf-min-w-1\\/8 {\n min-width: 12.5%;\n}\n\n#retorik-container.rf-large .large\\:rf-min-w-16 {\n min-width: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-min-w-8 {\n min-width: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-max-w-1\\/8 {\n max-width: 12.5%;\n}\n\n#retorik-container.rf-large .large\\:rf-max-w-\\[12rem\\] {\n max-width: 12rem;\n}\n\n#retorik-container.rf-large .large\\:rf-max-w-full {\n max-width: 100%;\n}\n\n#retorik-container.rf-large .large\\:rf-grid-cols-5 {\n grid-template-columns: repeat(5, minmax(0, 1fr));\n}\n\n#retorik-container.rf-large .large\\:rf-flex-row {\n flex-direction: row;\n}\n\n#retorik-container.rf-large .large\\:rf-flex-col {\n flex-direction: column;\n}\n\n#retorik-container.rf-large .large\\:rf-items-baseline {\n align-items: baseline;\n}\n\n#retorik-container.rf-large .large\\:rf-justify-start {\n justify-content: flex-start;\n}\n\n#retorik-container.rf-large .large\\:rf-gap-1 {\n gap: .25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-gap-3 {\n gap: .75rem;\n}\n\n#retorik-container.rf-large .large\\:rf-gap-4 {\n gap: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-gap-6 {\n gap: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-overflow-y-scroll {\n overflow-y: scroll;\n}\n\n#retorik-container.rf-large .large\\:rf-border-t-0 {\n border-top-width: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-bg-truewhite {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n\n#retorik-container.rf-large .large\\:rf-p-4 {\n padding: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-p-\\[25px\\] {\n padding: 25px;\n}\n\n#retorik-container.rf-large .large\\:rf-p-min1 {\n padding: .1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-px-0 {\n padding-left: 0;\n padding-right: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-px-16 {\n padding-left: 4rem;\n padding-right: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-px-5, #retorik-container.rf-large .large\\:rf-px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-py-0 {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-py-1 {\n padding-top: .25rem;\n padding-bottom: .25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-py-2 {\n padding-top: .5rem;\n padding-bottom: .5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-py-3 {\n padding-top: .75rem;\n padding-bottom: .75rem;\n}\n\n#retorik-container.rf-large .large\\:rf-py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-pb-16 {\n padding-bottom: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-pl-4 {\n padding-left: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-pr-4 {\n padding-right: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-pt-16 {\n padding-top: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-text-5xl {\n font-size: 3rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large .large\\:rf-text-6xl {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large .large\\:rf-text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-text-basecustom {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large .large\\:rf-text-sm {\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-uppercase {\n text-transform: uppercase;\n}\n\n#retorik-container.rf-tactile .tactile\\:rf-h-4 {\n height: 1rem;\n}\n\n#retorik-container.rf-tactile .tactile\\:rf-h-6 {\n height: 1.5rem;\n}\n\n#retorik-container.rf-tactile .tactile\\:rf-w-6 {\n width: 1.5rem;\n}\n\n#retorik-container.rf-tactile .tactile\\:rf-pt-1\\/5 {\n padding-top: 20%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-absolute {\n position: absolute;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-left-4 {\n left: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-top-4 {\n top: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-col-start-1 {\n grid-column-start: 1;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-col-start-2 {\n grid-column-start: 2;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-col-end-8 {\n grid-column-end: 8;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-mt-4 {\n margin-top: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-mt-\\[20vh\\] {\n margin-top: 20vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-mt-\\[25vh\\] {\n margin-top: 25vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-block {\n display: block;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-hidden {\n display: none;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-1\\/2 {\n height: 50%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-14 {\n height: 3.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-24 {\n height: 6rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-5 {\n height: 1.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-6 {\n height: 1.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-\\[50vh\\] {\n height: 50vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-h-11\\/12 {\n max-height: 91.67%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-h-36 {\n max-height: 9rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-h-\\[18vh\\] {\n max-height: 18vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-h-\\[30vh\\] {\n max-height: 30vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-min-h-10 {\n min-height: 2.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-1\\/2 {\n width: 50%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-14 {\n width: 3.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-16 {\n width: 4rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-24 {\n width: 6rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-3\\/5 {\n width: 60%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-6 {\n width: 1.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-full {\n width: 100%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-min-w-14 {\n min-width: 3.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-min-w-24 {\n min-width: 6rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-min-w-3\\/5 {\n min-width: 60%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-w-2\\/3 {\n max-width: 66.67%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-w-\\[45\\%\\] {\n max-width: 45%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-w-\\[60\\%\\] {\n max-width: 60%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-flex-row {\n flex-direction: row;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-flex-col {\n flex-direction: column;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-justify-center {\n justify-content: center;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-gap-4 {\n gap: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-gap-6 {\n gap: 1.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-self-start {\n align-self: flex-start;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-border-t {\n border-top-width: 1px;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-border-t-menuBorder {\n --tw-border-opacity: 1;\n border-top-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-py-5 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-pl-0 {\n padding-left: 0;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-pt-48 {\n padding-top: 12rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-pt-8 {\n padding-top: 2rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-pt-\\[16\\.67\\%\\] {\n padding-top: 16.67%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-pt-\\[20vh\\] {\n padding-top: 20vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-text-basecustomuppercase {\n font-size: 1rem;\n line-height: 1.1rem;\n}\n\n#retorik-container.rf-large.rf-tactile .large-tactile\\:rf-mt-0 {\n margin-top: 0;\n}\n\n#retorik-container.rf-large.rf-tactile .large-tactile\\:rf-flex {\n display: flex;\n}\n\n#retorik-container.rf-large.rf-tactile .large-tactile\\:rf-hidden {\n display: none;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-col-start-3 {\n grid-column-start: 3;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-col-start-4 {\n grid-column-start: 4;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:-rf-mt-4 {\n margin-top: -1rem;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-h-full {\n height: 100%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-w-\\[48\\%\\] {\n width: 48%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-w-\\[calc\\(80\\%-10rem\\)\\] {\n width: calc(80% - 10rem);\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-min-w-\\[48\\%\\] {\n min-width: 48%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-max-w-\\[calc\\(\\(80\\%-10rem\\)\\*0\\.75\\)\\] {\n max-width: calc(60% - 7.5rem);\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-flex-col-reverse {\n flex-direction: column-reverse;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-items-start {\n align-items: flex-start;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-justify-start {\n justify-content: flex-start;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-justify-center {\n justify-content: center;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-self-end {\n align-self: flex-end;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-justify-self-start {\n justify-self: start;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-pb-2 {\n padding-bottom: .5rem;\n}\n\n#retorik-container.rf-mobile .mobile\\:rf-px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n#retorik-container.rf-tablet .tablet\\:rf-w-28 {\n width: 7rem;\n}\n\n#retorik-container.rf-tablet .tablet\\:rf-pl-12 {\n padding-left: 3rem;\n}\n\n#retorik-container.rf-tablet .tablet\\:rf-pr-24 {\n padding-right: 6rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-h-10 {\n height: 2.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-h-20 {\n height: 5rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-min-h-20 {\n min-height: 5rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-w-40 {\n width: 10rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-p-5 {\n padding: 1.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-pl-32 {\n padding-left: 8rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-pr-56 {\n padding-right: 14rem;\n}\n\n.ltr\\:rf-left-0:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n left: 0;\n}\n\n.ltr\\:rf-left-1:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n left: .25rem;\n}\n\n.ltr\\:rf-left-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n left: 1rem;\n}\n\n.ltr\\:rf-right-0:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: 0;\n}\n\n.ltr\\:rf-right-12:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: 3rem;\n}\n\n.ltr\\:rf-right-2:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: .5rem;\n}\n\n.ltr\\:rf-right-3:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: .75rem;\n}\n\n.ltr\\:rf-right-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: 1rem;\n}\n\n.ltr\\:rf-right-6:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: 1.5rem;\n}\n\n.ltr\\:rf-right-9:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: 2.25rem;\n}\n\n.ltr\\:rf-col-start-1:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n grid-column-start: 1;\n}\n\n.ltr\\:rf-ml-1:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: .25rem;\n}\n\n.ltr\\:rf-ml-2:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: .5rem;\n}\n\n.ltr\\:rf-ml-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: 1rem;\n}\n\n.ltr\\:rf-ml-6:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: 1.5rem;\n}\n\n.ltr\\:rf-mr-1:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: .25rem;\n}\n\n.ltr\\:rf-mr-2:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: .5rem;\n}\n\n.ltr\\:rf-mr-3:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: .75rem;\n}\n\n.ltr\\:rf-mr-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: 1rem;\n}\n\n.ltr\\:rf-mr-5:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: 1.25rem;\n}\n\n.ltr\\:rf-flex-row:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n flex-direction: row;\n}\n\n.ltr\\:rf-items-start:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n align-items: flex-start;\n}\n\n.ltr\\:rf-justify-start:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n justify-content: flex-start;\n}\n\n.ltr\\:rf-self-end:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n align-self: flex-end;\n}\n\n.ltr\\:rf-rounded-l-lg:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n border-top-left-radius: .5rem;\n border-bottom-left-radius: .5rem;\n}\n\n.ltr\\:rf-rounded-tl-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n border-top-left-radius: 1rem;\n}\n\n.ltr\\:rf-rounded-tr-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n border-top-right-radius: 1rem;\n}\n\n.ltr\\:rf-pl-1:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-left: .25rem;\n}\n\n.ltr\\:rf-pl-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-left: 1rem;\n}\n\n.ltr\\:rf-pl-6:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-left: 1.5rem;\n}\n\n.ltr\\:rf-pr-2:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-right: .5rem;\n}\n\n.ltr\\:rf-pr-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-right: 1rem;\n}\n\n.ltr\\:rf-text-left:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n text-align: left;\n}\n\n.ltr\\:rf-text-right:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n text-align: right;\n}\n\n.ltr\\:rf-text-xs:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n font-size: .75rem;\n line-height: 1rem;\n}\n\n.ltr\\:rf-text-xsm:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n font-size: .6rem;\n}\n\n#retorik-container.rf-large .large\\:ltr\\:rf-left-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n left: 1rem;\n}\n\n#retorik-container.rf-large .large\\:ltr\\:rf-ml-0:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: 0;\n}\n\n#retorik-container.rf-large .large\\:ltr\\:rf-ml-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: 1rem;\n}\n\n#retorik-container.rf-large .large\\:ltr\\:rf-mr-3:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: .75rem;\n}\n\n#retorik-container.rf-large .large\\:ltr\\:rf-mr-30:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: 7.5rem;\n}\n\n#retorik-container.rf-large .large\\:ltr\\:rf-pl-12:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-left: 3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:ltr\\:rf-right-9:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n right: 2.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:ltr\\:rf-ml-1\\/5:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: 20%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:ltr\\:rf-mr-1\\/5:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: 20%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:ltr\\:rf-pl-0:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-left: 0;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:ltr\\:rf-ml-1\\/5:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: 20%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:ltr\\:rf-mr-40:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-right: 10rem;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:ltr\\:-rf-translate-x-1\\/4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n --tw-translate-x: -25%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:ltr\\:rf-pl-1\\/5:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-left: 20%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:ltr\\:rf-pl-\\[calc\\(50\\%-2\\.5rem\\)\\]:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-left: calc(50% - 2.5rem);\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:ltr\\:rf-pr-40:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-right: 10rem;\n}\n\n.rtl\\:rf-left-0:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: 0;\n}\n\n.rtl\\:rf-left-12:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: 3rem;\n}\n\n.rtl\\:rf-left-2:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: .5rem;\n}\n\n.rtl\\:rf-left-3:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: .75rem;\n}\n\n.rtl\\:rf-left-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: 1rem;\n}\n\n.rtl\\:rf-left-6:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: 1.5rem;\n}\n\n.rtl\\:rf-left-9:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: 2.25rem;\n}\n\n.rtl\\:rf-right-0:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n right: 0;\n}\n\n.rtl\\:rf-right-1:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n right: .25rem;\n}\n\n.rtl\\:rf-right-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n right: 1rem;\n}\n\n.rtl\\:rf-right-6:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n right: 1.5rem;\n}\n\n.rtl\\:rf-col-end-1:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n grid-column-end: 1;\n}\n\n.rtl\\:rf-ml-1:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: .25rem;\n}\n\n.rtl\\:rf-ml-2:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: .5rem;\n}\n\n.rtl\\:rf-ml-3:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: .75rem;\n}\n\n.rtl\\:rf-ml-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: 1rem;\n}\n\n.rtl\\:rf-ml-5:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: 1.25rem;\n}\n\n.rtl\\:rf-mr-1:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: .25rem;\n}\n\n.rtl\\:rf-mr-2:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: .5rem;\n}\n\n.rtl\\:rf-mr-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: 1rem;\n}\n\n.rtl\\:rf-mr-6:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: 1.5rem;\n}\n\n.rtl\\:rf-flex-row-reverse:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n flex-direction: row-reverse;\n}\n\n.rtl\\:rf-items-end:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n align-items: flex-end;\n}\n\n.rtl\\:rf-justify-end:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n justify-content: flex-end;\n}\n\n.rtl\\:rf-self-start:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n align-self: flex-start;\n}\n\n.rtl\\:rf-rounded-r-lg:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n border-top-right-radius: .5rem;\n border-bottom-right-radius: .5rem;\n}\n\n.rtl\\:rf-rounded-tl-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n border-top-left-radius: 1rem;\n}\n\n.rtl\\:rf-rounded-tr-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n border-top-right-radius: 1rem;\n}\n\n.rtl\\:rf-pl-2:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-left: .5rem;\n}\n\n.rtl\\:rf-pl-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-left: 1rem;\n}\n\n.rtl\\:rf-pr-1:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-right: .25rem;\n}\n\n.rtl\\:rf-pr-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-right: 1rem;\n}\n\n.rtl\\:rf-pr-6:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-right: 1.5rem;\n}\n\n.rtl\\:rf-text-left:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n text-align: left;\n}\n\n.rtl\\:rf-text-right:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n text-align: right;\n}\n\n.rtl\\:rf-text-arabic:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n font-size: 1.125rem;\n line-height: 1.15rem;\n}\n\n#retorik-container.rf-large .large\\:rtl\\:rf-right-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n right: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rtl\\:rf-ml-3:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: .75rem;\n}\n\n#retorik-container.rf-large .large\\:rtl\\:rf-ml-30:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: 7.5rem;\n}\n\n#retorik-container.rf-large .large\\:rtl\\:rf-mr-0:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: 0;\n}\n\n#retorik-container.rf-large .large\\:rtl\\:rf-mr-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rtl\\:rf-left-9:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n left: 2.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rtl\\:rf-ml-1\\/5:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: 20%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rtl\\:rf-mr-1\\/5:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: 20%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rtl\\:rf-pr-0:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-right: 0;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rtl\\:rf-ml-40:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-left: 10rem;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rtl\\:rf-mr-1\\/5:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: 20%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rtl\\:rf-translate-x-1\\/4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n --tw-translate-x: 25%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rtl\\:rf-pl-40:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-left: 10rem;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rtl\\:rf-pr-1\\/5:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-right: 20%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rtl\\:rf-pr-\\[calc\\(50\\%-2\\.5rem\\)\\]:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-right: calc(50% - 2.5rem);\n}\n";
|
|
19106
|
+
$4b50e1d502fb5483$exports = "*, :before, :after, ::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #3b82f680;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n*, :before, :after {\n box-sizing: border-box;\n border: 0 solid;\n}\n\n:before, :after {\n --tw-content: \"\";\n}\n\nhtml, :host {\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-feature-settings: normal;\n font-variation-settings: normal;\n -webkit-tap-highlight-color: transparent;\n font-family: Calibri, sans-serif;\n line-height: 1.5;\n}\n\nbody {\n line-height: inherit;\n margin: 0;\n}\n\nhr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n}\n\nabbr:where([title]) {\n text-decoration: underline dotted;\n}\n\nh1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\nb, strong {\n font-weight: bolder;\n}\n\ncode, kbd, samp, pre {\n font-feature-settings: normal;\n font-variation-settings: normal;\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace;\n font-size: 1em;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub, sup {\n vertical-align: baseline;\n font-size: 75%;\n line-height: 0;\n position: relative;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\ntable {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n}\n\nbutton, input, optgroup, select, textarea {\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n font-family: inherit;\n font-size: 100%;\n font-weight: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n color: inherit;\n margin: 0;\n padding: 0;\n}\n\nbutton, select {\n text-transform: none;\n}\n\nbutton, input:where([type=\"button\"]), input:where([type=\"reset\"]), input:where([type=\"submit\"]) {\n -webkit-appearance: button;\n background-color: #0000;\n background-image: none;\n}\n\n:-moz-focusring {\n outline: auto;\n}\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n::-webkit-inner-spin-button {\n height: auto;\n}\n\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n}\n\nsummary {\n display: list-item;\n}\n\nblockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol, ul, menu {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\ndialog {\n padding: 0;\n}\n\ntextarea {\n resize: vertical;\n}\n\ninput::placeholder, textarea::placeholder {\n opacity: 1;\n color: #9ca3af;\n}\n\nbutton, [role=\"button\"] {\n cursor: pointer;\n}\n\n:disabled {\n cursor: default;\n}\n\nimg, svg, video, canvas, audio, iframe, embed, object {\n vertical-align: middle;\n display: block;\n}\n\nimg, video {\n max-width: 100%;\n height: auto;\n}\n\n[hidden]:where(:not([hidden=\"until-found\"])) {\n display: none;\n}\n\n.rf-pointer-events-none {\n pointer-events: none;\n}\n\n.rf-pointer-events-auto {\n pointer-events: auto;\n}\n\n.rf-visible {\n visibility: visible;\n}\n\n.rf-invisible {\n visibility: hidden;\n}\n\n.rf-fixed {\n position: fixed;\n}\n\n.rf-absolute {\n position: absolute;\n}\n\n.rf-relative {\n position: relative;\n}\n\n.-rf-left-6 {\n left: -1.5rem;\n}\n\n.-rf-top-2 {\n top: -.5rem;\n}\n\n.-rf-top-4 {\n top: -1rem;\n}\n\n.-rf-top-6 {\n top: -1.5rem;\n}\n\n.-rf-top-\\[1\\.15rem\\] {\n top: -1.15rem;\n}\n\n.rf-bottom-0 {\n bottom: 0;\n}\n\n.rf-bottom-1 {\n bottom: .25rem;\n}\n\n.rf-bottom-1\\/4 {\n bottom: 25%;\n}\n\n.rf-bottom-10 {\n bottom: 2.5rem;\n}\n\n.rf-bottom-2 {\n bottom: .5rem;\n}\n\n.rf-bottom-4 {\n bottom: 1rem;\n}\n\n.rf-bottom-8 {\n bottom: 2rem;\n}\n\n.rf-bottom-\\[calc\\(100\\%\\+2rem\\)\\] {\n bottom: calc(100% + 2rem);\n}\n\n.rf-left-0 {\n left: 0;\n}\n\n.rf-left-1 {\n left: .25rem;\n}\n\n.rf-left-1\\/2 {\n left: 50%;\n}\n\n.rf-left-12 {\n left: 3rem;\n}\n\n.rf-left-2 {\n left: .5rem;\n}\n\n.rf-left-4 {\n left: 1rem;\n}\n\n.rf-left-8 {\n left: 2rem;\n}\n\n.rf-left-\\[calc\\(100\\%\\+1rem\\)\\] {\n left: calc(100% + 1rem);\n}\n\n.rf-left-\\[calc\\(50\\%-3rem\\)\\] {\n left: calc(50% - 3rem);\n}\n\n.rf-right-0 {\n right: 0;\n}\n\n.rf-right-1 {\n right: .25rem;\n}\n\n.rf-right-10 {\n right: 2.5rem;\n}\n\n.rf-right-12 {\n right: 3rem;\n}\n\n.rf-right-2 {\n right: .5rem;\n}\n\n.rf-right-3 {\n right: .75rem;\n}\n\n.rf-right-4 {\n right: 1rem;\n}\n\n.rf-right-6 {\n right: 1.5rem;\n}\n\n.rf-right-8 {\n right: 2rem;\n}\n\n.rf-right-9 {\n right: 2.25rem;\n}\n\n.rf-right-\\[calc\\(100\\%\\+1rem\\)\\] {\n right: calc(100% + 1rem);\n}\n\n.rf-top-0 {\n top: 0;\n}\n\n.rf-top-1 {\n top: .25rem;\n}\n\n.rf-top-1\\/2 {\n top: 50%;\n}\n\n.rf-top-1\\/3 {\n top: 33.3333%;\n}\n\n.rf-top-110 {\n top: 110%;\n}\n\n.rf-top-2 {\n top: .5rem;\n}\n\n.rf-top-4 {\n top: 1rem;\n}\n\n.rf-top-8 {\n top: 2rem;\n}\n\n.rf-top-\\[0\\.125rem\\] {\n top: .125rem;\n}\n\n.rf-top-\\[calc\\(100\\%\\+1rem\\)\\] {\n top: calc(100% + 1rem);\n}\n\n.rf-top-\\[calc\\(50\\%-3rem\\)\\] {\n top: calc(50% - 3rem);\n}\n\n.rf-z-\\[10\\] {\n z-index: 10;\n}\n\n.rf-z-\\[15\\] {\n z-index: 15;\n}\n\n.rf-z-\\[1\\] {\n z-index: 1;\n}\n\n.rf-z-\\[20\\] {\n z-index: 20;\n}\n\n.rf-z-\\[25\\] {\n z-index: 25;\n}\n\n.rf-z-\\[2\\] {\n z-index: 2;\n}\n\n.rf-z-\\[5\\] {\n z-index: 5;\n}\n\n.rf-z-agent {\n z-index: 1;\n}\n\n.rf-z-background {\n z-index: 0;\n}\n\n.rf-z-chatbot {\n z-index: 10;\n}\n\n.rf-z-detailedPOI {\n z-index: 31;\n}\n\n.rf-z-dropdown {\n z-index: 30;\n}\n\n.rf-z-exitwidget {\n z-index: 55;\n}\n\n.rf-z-list {\n z-index: 30;\n}\n\n.rf-z-menu {\n z-index: 40;\n}\n\n.rf-z-modal {\n z-index: 50;\n}\n\n.rf-z-overlay {\n z-index: 40;\n}\n\n.rf-z-ui {\n z-index: 20;\n}\n\n.rf-z-util {\n z-index: 2;\n}\n\n.rf-col-span-2 {\n grid-column: span 2 / span 2;\n}\n\n.rf-col-span-3 {\n grid-column: span 3 / span 3;\n}\n\n.rf-col-span-4 {\n grid-column: span 4 / span 4;\n}\n\n.rf-col-span-full {\n grid-column: 1 / -1;\n}\n\n.rf-col-start-1 {\n grid-column-start: 1;\n}\n\n.rf-col-start-3 {\n grid-column-start: 3;\n}\n\n.rf-col-start-4 {\n grid-column-start: 4;\n}\n\n.rf-col-start-5 {\n grid-column-start: 5;\n}\n\n.rf-col-end-13 {\n grid-column-end: 13;\n}\n\n.rf-col-end-2 {\n grid-column-end: 2;\n}\n\n.rf-col-end-9 {\n grid-column-end: 9;\n}\n\n.rf-row-span-1 {\n grid-row: span 1 / span 1;\n}\n\n.rf-row-span-2 {\n grid-row: span 2 / span 2;\n}\n\n.rf-row-span-full {\n grid-row: 1 / -1;\n}\n\n.rf-row-start-1 {\n grid-row-start: 1;\n}\n\n.rf-row-start-12 {\n grid-row-start: 12;\n}\n\n.rf-row-end-13 {\n grid-row-end: 13;\n}\n\n.rf-row-end-3 {\n grid-row-end: 3;\n}\n\n.rf-float-right {\n float: right;\n}\n\n.rf-m-0 {\n margin: 0;\n}\n\n.rf-m-4 {\n margin: 1rem;\n}\n\n.rf-m-auto {\n margin: auto;\n}\n\n.-rf-mx-6 {\n margin-left: -1.5rem;\n margin-right: -1.5rem;\n}\n\n.-rf-mx-8 {\n margin-left: -2rem;\n margin-right: -2rem;\n}\n\n.rf-mx-0 {\n margin-left: 0;\n margin-right: 0;\n}\n\n.rf-mx-2 {\n margin-left: .5rem;\n margin-right: .5rem;\n}\n\n.rf-mx-3 {\n margin-left: .75rem;\n margin-right: .75rem;\n}\n\n.rf-mx-4 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n\n.rf-mx-8 {\n margin-left: 2rem;\n margin-right: 2rem;\n}\n\n.rf-mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n.rf-my-1 {\n margin-top: .25rem;\n margin-bottom: .25rem;\n}\n\n.rf-my-2 {\n margin-top: .5rem;\n margin-bottom: .5rem;\n}\n\n.rf-my-4 {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n\n.rf-my-auto {\n margin-top: auto;\n margin-bottom: auto;\n}\n\n.-rf-mb-4 {\n margin-bottom: -1rem;\n}\n\n.rf-mb-0 {\n margin-bottom: 0;\n}\n\n.rf-mb-1 {\n margin-bottom: .25rem;\n}\n\n.rf-mb-12 {\n margin-bottom: 3rem;\n}\n\n.rf-mb-16 {\n margin-bottom: 4rem;\n}\n\n.rf-mb-2 {\n margin-bottom: .5rem;\n}\n\n.rf-mb-26 {\n margin-bottom: 6.5rem;\n}\n\n.rf-mb-28 {\n margin-bottom: 7rem;\n}\n\n.rf-mb-3 {\n margin-bottom: .75rem;\n}\n\n.rf-mb-30 {\n margin-bottom: 7.5rem;\n}\n\n.rf-mb-4 {\n margin-bottom: 1rem;\n}\n\n.rf-mb-5 {\n margin-bottom: 1.25rem;\n}\n\n.rf-mb-6 {\n margin-bottom: 1.5rem;\n}\n\n.rf-mb-8 {\n margin-bottom: 2rem;\n}\n\n.rf-ml-1 {\n margin-left: .25rem;\n}\n\n.rf-ml-2 {\n margin-left: .5rem;\n}\n\n.rf-ml-4 {\n margin-left: 1rem;\n}\n\n.rf-ml-6 {\n margin-left: 1.5rem;\n}\n\n.rf-mr-1 {\n margin-right: .25rem;\n}\n\n.rf-mr-2 {\n margin-right: .5rem;\n}\n\n.rf-mr-3 {\n margin-right: .75rem;\n}\n\n.rf-mr-4 {\n margin-right: 1rem;\n}\n\n.rf-mr-5 {\n margin-right: 1.25rem;\n}\n\n.rf-mt-1 {\n margin-top: .25rem;\n}\n\n.rf-mt-10 {\n margin-top: 2.5rem;\n}\n\n.rf-mt-2 {\n margin-top: .5rem;\n}\n\n.rf-mt-4 {\n margin-top: 1rem;\n}\n\n.rf-mt-5 {\n margin-top: 1.25rem;\n}\n\n.rf-mt-8 {\n margin-top: 2rem;\n}\n\n.rf-mt-\\[0\\.2rem\\] {\n margin-top: .2rem;\n}\n\n.rf-mt-auto {\n margin-top: auto;\n}\n\n.rf-box-border {\n box-sizing: border-box;\n}\n\n.rf-line-clamp-1 {\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-2 {\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-inline {\n display: inline;\n}\n\n.rf-flex {\n display: flex;\n}\n\n.rf-grid {\n display: grid;\n}\n\n.rf-hidden {\n display: none;\n}\n\n.rf-aspect-\\[4\\/3\\] {\n aspect-ratio: 4 / 3;\n}\n\n.rf-aspect-square {\n aspect-ratio: 1;\n}\n\n.rf-aspect-video {\n aspect-ratio: 16 / 9;\n}\n\n.rf-h-0 {\n height: 0;\n}\n\n.rf-h-1\\/2 {\n height: 50%;\n}\n\n.rf-h-1\\/3 {\n height: 33.3333%;\n}\n\n.rf-h-10 {\n height: 2.5rem;\n}\n\n.rf-h-12 {\n height: 3rem;\n}\n\n.rf-h-14 {\n height: 3.5rem;\n}\n\n.rf-h-16 {\n height: 4rem;\n}\n\n.rf-h-18 {\n height: 4.5rem;\n}\n\n.rf-h-2 {\n height: .5rem;\n}\n\n.rf-h-2\\/3 {\n height: 66.6667%;\n}\n\n.rf-h-2\\/5 {\n height: 40%;\n}\n\n.rf-h-24 {\n height: 6rem;\n}\n\n.rf-h-3 {\n height: .75rem;\n}\n\n.rf-h-3\\/10 {\n height: 30%;\n}\n\n.rf-h-32 {\n height: 8rem;\n}\n\n.rf-h-36 {\n height: 9rem;\n}\n\n.rf-h-4 {\n height: 1rem;\n}\n\n.rf-h-48 {\n height: 12rem;\n}\n\n.rf-h-5 {\n height: 1.25rem;\n}\n\n.rf-h-6 {\n height: 1.5rem;\n}\n\n.rf-h-7 {\n height: 1.75rem;\n}\n\n.rf-h-8 {\n height: 2rem;\n}\n\n.rf-h-9 {\n height: 2.25rem;\n}\n\n.rf-h-\\[0\\.875rem\\] {\n height: .875rem;\n}\n\n.rf-h-\\[1\\.25rem\\] {\n height: 1.25rem;\n}\n\n.rf-h-\\[35\\%\\] {\n height: 35%;\n}\n\n.rf-h-\\[50\\%\\] {\n height: 50%;\n}\n\n.rf-h-\\[calc\\(50vw-3rem\\)\\] {\n height: calc(50vw - 3rem);\n}\n\n.rf-h-fit {\n height: fit-content;\n}\n\n.rf-h-full {\n height: 100%;\n}\n\n.rf-h-max {\n height: max-content;\n}\n\n.rf-h-screen {\n height: 100vh;\n}\n\n.rf-max-h-12 {\n max-height: 3rem;\n}\n\n.rf-max-h-16 {\n max-height: 4rem;\n}\n\n.rf-max-h-20 {\n max-height: 5rem;\n}\n\n.rf-max-h-28 {\n max-height: 7rem;\n}\n\n.rf-max-h-4\\/5 {\n max-height: 80%;\n}\n\n.rf-max-h-48 {\n max-height: 12rem;\n}\n\n.rf-max-h-6 {\n max-height: 1.5rem;\n}\n\n.rf-max-h-8 {\n max-height: 2rem;\n}\n\n.rf-max-h-full {\n max-height: 100%;\n}\n\n.rf-max-h-qrcode {\n max-height: 120px;\n}\n\n.rf-max-h-qrcodelarge {\n max-height: 200px;\n}\n\n.rf-max-h-screen {\n max-height: 100vh;\n}\n\n.rf-min-h-12 {\n min-height: 3rem;\n}\n\n.rf-min-h-14 {\n min-height: 3.5rem;\n}\n\n.rf-min-h-16 {\n min-height: 4rem;\n}\n\n.rf-min-h-2\\/5 {\n min-height: 40%;\n}\n\n.rf-min-h-6 {\n min-height: 1.5rem;\n}\n\n.rf-min-h-8 {\n min-height: 2rem;\n}\n\n.rf-min-h-9 {\n min-height: 2.25rem;\n}\n\n.rf-min-h-full {\n min-height: 100%;\n}\n\n.rf-min-h-inherit {\n min-height: inherit;\n}\n\n.rf-w-0 {\n width: 0;\n}\n\n.rf-w-1\\/2 {\n width: 50%;\n}\n\n.rf-w-1\\/3 {\n width: 33.3333%;\n}\n\n.rf-w-1\\/4 {\n width: 25%;\n}\n\n.rf-w-10 {\n width: 2.5rem;\n}\n\n.rf-w-12 {\n width: 3rem;\n}\n\n.rf-w-16 {\n width: 4rem;\n}\n\n.rf-w-18 {\n width: 4.5rem;\n}\n\n.rf-w-2 {\n width: .5rem;\n}\n\n.rf-w-2\\/3 {\n width: 66.6667%;\n}\n\n.rf-w-20 {\n width: 5rem;\n}\n\n.rf-w-24 {\n width: 6rem;\n}\n\n.rf-w-3 {\n width: .75rem;\n}\n\n.rf-w-3\\/20 {\n width: 15%;\n}\n\n.rf-w-3\\/4 {\n width: 75%;\n}\n\n.rf-w-3\\/5 {\n width: 60%;\n}\n\n.rf-w-32 {\n width: 8rem;\n}\n\n.rf-w-36 {\n width: 9rem;\n}\n\n.rf-w-4 {\n width: 1rem;\n}\n\n.rf-w-48 {\n width: 12rem;\n}\n\n.rf-w-5 {\n width: 1.25rem;\n}\n\n.rf-w-6 {\n width: 1.5rem;\n}\n\n.rf-w-7 {\n width: 1.75rem;\n}\n\n.rf-w-8 {\n width: 2rem;\n}\n\n.rf-w-9 {\n width: 2.25rem;\n}\n\n.rf-w-\\[45\\%\\] {\n width: 45%;\n}\n\n.rf-w-\\[90\\%\\] {\n width: 90%;\n}\n\n.rf-w-\\[calc\\(100\\%-3rem\\)\\] {\n width: calc(100% - 3rem);\n}\n\n.rf-w-fit {\n width: fit-content;\n}\n\n.rf-w-full {\n width: 100%;\n}\n\n.rf-w-max {\n width: max-content;\n}\n\n.rf-w-screen {\n width: 100vw;\n}\n\n.rf-min-w-12 {\n min-width: 3rem;\n}\n\n.rf-min-w-24 {\n min-width: 6rem;\n}\n\n.rf-min-w-3\\/20 {\n min-width: 15%;\n}\n\n.rf-min-w-6 {\n min-width: 1.5rem;\n}\n\n.rf-min-w-7 {\n min-width: 1.75rem;\n}\n\n.rf-min-w-\\[45\\%\\] {\n min-width: 45%;\n}\n\n.rf-min-w-full {\n min-width: 100%;\n}\n\n.rf-max-w-1\\/2 {\n max-width: 50%;\n}\n\n.rf-max-w-16 {\n max-width: 4rem;\n}\n\n.rf-max-w-3\\/20 {\n max-width: 15%;\n}\n\n.rf-max-w-6 {\n max-width: 1.5rem;\n}\n\n.rf-max-w-7\\/10 {\n max-width: 70%;\n}\n\n.rf-max-w-\\[100vw\\] {\n max-width: 100vw;\n}\n\n.rf-max-w-\\[45\\%\\] {\n max-width: 45%;\n}\n\n.rf-max-w-\\[500px\\] {\n max-width: 500px;\n}\n\n.rf-max-w-\\[75\\%\\] {\n max-width: 75%;\n}\n\n.rf-max-w-\\[calc\\(100\\%-2rem\\)\\] {\n max-width: calc(100% - 2rem);\n}\n\n.rf-max-w-full {\n max-width: 100%;\n}\n\n.rf-max-w-none {\n max-width: none;\n}\n\n.rf-flex-1 {\n flex: 1;\n}\n\n.rf-flex-\\[0_0_40\\%\\] {\n flex: 0 0 40%;\n}\n\n.rf-flex-\\[2_1_0\\%\\] {\n flex: 2;\n}\n\n.rf-flex-\\[4_1_0\\%\\] {\n flex: 4;\n}\n\n.rf-border-collapse {\n border-collapse: collapse;\n}\n\n.rf-origin-center {\n transform-origin: center;\n}\n\n.-rf-translate-x-1\\/2 {\n --tw-translate-x: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.-rf-translate-y-1\\/2 {\n --tw-translate-y: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.-rf-translate-y-full {\n --tw-translate-y: -100%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf--translate-x-1\\/2 {\n --tw-translate-x: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-translate-x-1 {\n --tw-translate-x: .25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-translate-x-5 {\n --tw-translate-x: 1.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-rotate-0 {\n --tw-rotate: 0deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-rotate-180 {\n --tw-rotate: 180deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-scale-0 {\n --tw-scale-x: 0;\n --tw-scale-y: 0;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n@keyframes rf-blink {\n 0%, 100% {\n opacity: .2;\n }\n\n 50% {\n opacity: 1;\n }\n}\n\n.rf-animate-blink {\n animation: 1.4s infinite both rf-blink;\n}\n\n@keyframes rf-fadeIn {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n.rf-animate-fadeIn {\n animation: .5s .2s backwards rf-fadeIn;\n}\n\n@keyframes rf-hScroll {\n 0% {\n transform: translateX(0);\n }\n\n 100% {\n transform: translateX(calc(-100% - 2rem));\n }\n}\n\n.rf-animate-hScroll {\n animation: 20s linear infinite rf-hScroll;\n}\n\n@keyframes rf-loader {\n 0% {\n box-shadow: 0 1.5rem 0 -1.5rem var(--rf-color-loader-animation);\n }\n\n 40% {\n box-shadow: 0 1.5rem 0 -.3rem var(--rf-color-loader-animation);\n }\n\n 80% {\n box-shadow: 0 1.5rem 0 -1.5rem var(--rf-color-loader-animation);\n }\n\n 100% {\n box-shadow: 0 1.5rem 0 -1.5rem var(--rf-color-loader-animation);\n }\n}\n\n.rf-animate-loader {\n animation: 1.8s ease-in-out -.16s infinite both rf-loader;\n}\n\n.rf-animate-loaderFadeIn {\n animation: 2s rf-fadeIn;\n}\n\n@keyframes rf-fadeOut {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n}\n\n.rf-animate-loaderFadeOut {\n animation: 1s rf-fadeOut;\n}\n\n@keyframes rf-loaderMedium {\n 0% {\n box-shadow: 0 .75rem 0 -.75rem var(--rf-color-loader-animation);\n }\n\n 40% {\n box-shadow: 0 .75rem 0 -.25rem var(--rf-color-loader-animation);\n }\n\n 80% {\n box-shadow: 0 .75rem 0 -.75rem var(--rf-color-loader-animation);\n }\n\n 100% {\n box-shadow: 0 .75rem 0 -.75rem var(--rf-color-loader-animation);\n }\n}\n\n.rf-animate-loaderMedium {\n animation: 1.8s ease-in-out -.16s infinite both rf-loaderMedium;\n}\n\n@keyframes rf-loaderMini {\n 0% {\n box-shadow: 0 .5rem 0 -.5rem var(--rf-color-loader-animation);\n }\n\n 40% {\n box-shadow: 0 .5rem 0 -.1rem var(--rf-color-loader-animation);\n }\n\n 80% {\n box-shadow: 0 .5rem 0 -.5rem var(--rf-color-loader-animation);\n }\n\n 100% {\n box-shadow: 0 .5rem 0 -.5rem var(--rf-color-loader-animation);\n }\n}\n\n.rf-animate-loaderMini {\n animation: 1.8s ease-in-out -.16s infinite both rf-loaderMini;\n}\n\n@keyframes rf-slideBottom {\n 0% {\n opacity: 0;\n transform: translateX(0)translateY(20px);\n }\n\n 100% {\n opacity: 1;\n transform: translateX(0)translateY(0);\n }\n}\n\n.rf-animate-slideBottom {\n animation: .5s .2s backwards rf-slideBottom;\n}\n\n@keyframes rf-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.rf-animate-spin {\n animation: 1s linear infinite rf-spin;\n}\n\n.rf-cursor-pointer {\n cursor: pointer;\n}\n\n.rf-select-none {\n user-select: none;\n}\n\n.rf-resize-none {\n resize: none;\n}\n\n.rf-scroll-pb-4 {\n scroll-padding-bottom: 1rem;\n}\n\n.rf-grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n\n.rf-grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n\n.rf-grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n\n.rf-grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n\n.rf-grid-cols-6 {\n grid-template-columns: repeat(6, minmax(0, 1fr));\n}\n\n.rf-grid-cols-7 {\n grid-template-columns: repeat(7, minmax(0, 1fr));\n}\n\n.rf-grid-cols-8 {\n grid-template-columns: repeat(8, minmax(0, 1fr));\n}\n\n.rf-grid-cols-\\[repeat\\(2\\,30\\%\\)\\] {\n grid-template-columns: repeat(2, 30%);\n}\n\n.rf-grid-cols-\\[repeat\\(2\\,45\\%\\)\\] {\n grid-template-columns: repeat(2, 45%);\n}\n\n.rf-grid-cols-\\[repeat\\(3\\,31\\%\\)\\] {\n grid-template-columns: repeat(3, 31%);\n}\n\n.rf-grid-cols-headerContainer {\n grid-template-columns: 5rem 1rem 1fr 1fr;\n}\n\n.rf-grid-cols-printingPreview {\n grid-template-columns: minmax(0, 1fr) 3rem;\n}\n\n.rf-grid-cols-routes {\n grid-template-columns: repeat(3, max-content);\n}\n\n.rf-grid-rows-1 {\n grid-template-rows: repeat(1, minmax(0, 1fr));\n}\n\n.rf-grid-rows-2 {\n grid-template-rows: repeat(2, minmax(0, 1fr));\n}\n\n.rf-grid-rows-3 {\n grid-template-rows: repeat(3, minmax(0, 1fr));\n}\n\n.rf-grid-rows-4 {\n grid-template-rows: repeat(4, minmax(0, 1fr));\n}\n\n.rf-grid-rows-5 {\n grid-template-rows: repeat(5, minmax(0, 1fr));\n}\n\n.rf-grid-rows-container {\n grid-template-rows: repeat(12, minmax(0, 1fr));\n}\n\n.rf-grid-rows-headerContainer {\n grid-template-rows: repeat(2, minmax(0, 1fr));\n}\n\n.rf-flex-row {\n flex-direction: row;\n}\n\n.rf-flex-col {\n flex-direction: column;\n}\n\n.rf-flex-col-reverse {\n flex-direction: column-reverse;\n}\n\n.rf-flex-wrap {\n flex-wrap: wrap;\n}\n\n.rf-flex-nowrap {\n flex-wrap: nowrap;\n}\n\n.rf-content-around {\n align-content: space-around;\n}\n\n.rf-items-start {\n align-items: flex-start;\n}\n\n.rf-items-end {\n align-items: flex-end;\n}\n\n.rf-items-center {\n align-items: center;\n}\n\n.rf-justify-start {\n justify-content: flex-start;\n}\n\n.rf-justify-end {\n justify-content: flex-end;\n}\n\n.rf-justify-center {\n justify-content: center;\n}\n\n.rf-justify-between {\n justify-content: space-between;\n}\n\n.rf-justify-around {\n justify-content: space-around;\n}\n\n.rf-justify-evenly {\n justify-content: space-evenly;\n}\n\n.rf-gap-1 {\n gap: .25rem;\n}\n\n.rf-gap-12 {\n gap: 3rem;\n}\n\n.rf-gap-2 {\n gap: .5rem;\n}\n\n.rf-gap-3 {\n gap: .75rem;\n}\n\n.rf-gap-4 {\n gap: 1rem;\n}\n\n.rf-gap-5 {\n gap: 1.25rem;\n}\n\n.rf-gap-6 {\n gap: 1.5rem;\n}\n\n.rf-gap-8 {\n gap: 2rem;\n}\n\n.rf-gap-9 {\n gap: 2.25rem;\n}\n\n.rf-gap-\\[10\\%\\] {\n gap: 10%;\n}\n\n.rf-gap-x-\\[3\\.5\\%\\] {\n column-gap: 3.5%;\n}\n\n.rf-divide-x > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-x-reverse: 0;\n border-right-width: calc(1px * var(--tw-divide-x-reverse));\n border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));\n}\n\n.rf-self-auto {\n align-self: auto;\n}\n\n.rf-self-start {\n align-self: flex-start;\n}\n\n.rf-self-end {\n align-self: flex-end;\n}\n\n.rf-self-center {\n align-self: center;\n}\n\n.rf-justify-self-start {\n justify-self: start;\n}\n\n.rf-justify-self-end {\n justify-self: end;\n}\n\n.rf-justify-self-center {\n justify-self: center;\n}\n\n.rf-overflow-hidden {\n overflow: hidden;\n}\n\n.rf-overflow-clip {\n overflow: clip;\n}\n\n.rf-overflow-y-auto {\n overflow-y: auto;\n}\n\n.rf-overflow-x-hidden {\n overflow-x: hidden;\n}\n\n.rf-overflow-y-hidden {\n overflow-y: hidden;\n}\n\n.rf-overflow-y-clip {\n overflow-y: clip;\n}\n\n.rf-overflow-x-visible {\n overflow-x: visible;\n}\n\n.rf-overflow-y-visible {\n overflow-y: visible;\n}\n\n.rf-overflow-x-scroll {\n overflow-x: scroll;\n}\n\n.rf-overflow-y-scroll {\n overflow-y: scroll;\n}\n\n.rf-truncate {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.rf-whitespace-nowrap {\n white-space: nowrap;\n}\n\n.rf-whitespace-break-spaces {\n white-space: break-spaces;\n}\n\n.rf-rounded {\n border-radius: .3125rem;\n}\n\n.rf-rounded-6 {\n border-radius: 1.5rem;\n}\n\n.rf-rounded-8 {\n border-radius: 2rem;\n}\n\n.rf-rounded-\\[20px\\] {\n border-radius: 20px;\n}\n\n.rf-rounded-half {\n border-radius: 50%;\n}\n\n.rf-rounded-lg {\n border-radius: .5rem;\n}\n\n.rf-rounded-max {\n border-radius: 100%;\n}\n\n.rf-rounded-b {\n border-bottom-right-radius: .3125rem;\n border-bottom-left-radius: .3125rem;\n}\n\n.rf-rounded-b-4 {\n border-bottom-right-radius: 1rem;\n border-bottom-left-radius: 1rem;\n}\n\n.rf-rounded-b-lg {\n border-bottom-right-radius: .5rem;\n border-bottom-left-radius: .5rem;\n}\n\n.rf-rounded-l-lg {\n border-top-left-radius: .5rem;\n border-bottom-left-radius: .5rem;\n}\n\n.rf-rounded-t-lg {\n border-top-left-radius: .5rem;\n border-top-right-radius: .5rem;\n}\n\n.rf-rounded-tl-4 {\n border-top-left-radius: 1rem;\n}\n\n.rf-rounded-tr-4 {\n border-top-right-radius: 1rem;\n}\n\n.rf-border {\n border-width: 1px;\n}\n\n.rf-border-0 {\n border-width: 0;\n}\n\n.rf-border-2 {\n border-width: 2px;\n}\n\n.rf-border-y {\n border-top-width: 1px;\n border-bottom-width: 1px;\n}\n\n.rf-border-b {\n border-bottom-width: 1px;\n}\n\n.rf-border-b-2 {\n border-bottom-width: 2px;\n}\n\n.rf-border-l {\n border-left-width: 1px;\n}\n\n.rf-border-r {\n border-right-width: 1px;\n}\n\n.rf-border-t {\n border-top-width: 1px;\n}\n\n.rf-border-t-0 {\n border-top-width: 0;\n}\n\n.rf-border-none {\n border-style: none;\n}\n\n.rf-border-\\[\\#00000029\\] {\n border-color: #00000029;\n}\n\n.rf-border-\\[\\#1999B1\\] {\n --tw-border-opacity: 1;\n border-color: rgb(25 153 177 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#325981\\] {\n --tw-border-opacity: 1;\n border-color: rgb(50 89 129 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#707070\\] {\n --tw-border-opacity: 1;\n border-color: rgb(112 112 112 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#8B8888\\] {\n --tw-border-opacity: 1;\n border-color: rgb(139 136 136 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#9FA2AA\\] {\n --tw-border-opacity: 1;\n border-color: rgb(159 162 170 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#C7C6C6\\] {\n --tw-border-opacity: 1;\n border-color: rgb(199 198 198 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-\\[\\#F0F0F0\\] {\n --tw-border-opacity: 1;\n border-color: rgb(240 240 240 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-black {\n border-color: var(--rf-color-black);\n}\n\n.rf-border-cardButtonBorderDefault {\n border-color: var(--rf-color-cardButtonBorderDefault);\n}\n\n.rf-border-cardButtonBorderHover {\n border-color: var(--rf-color-cardButtonBorderHover);\n}\n\n.rf-border-cardFrameBorder {\n border-color: var(--rf-color-cardFrameBorder);\n}\n\n.rf-border-formInputButtonBorderDefault {\n border-color: var(--rf-color-formInputButtonBorderDefault);\n}\n\n.rf-border-formInputButtonBorderHover {\n border-color: var(--rf-color-formInputButtonBorderHover);\n}\n\n.rf-border-formInputRadioCheckboxCheckedBorder {\n border-color: var(--rf-color-formInputRadioCheckboxCheckedBorder);\n}\n\n.rf-border-formInputRadioCheckboxUncheckedBorder {\n border-color: var(--rf-color-formInputRadioCheckboxUncheckedBorder);\n}\n\n.rf-border-gray {\n --tw-border-opacity: 1;\n border-color: rgb(128 128 128 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-lightgray {\n --tw-border-opacity: 1;\n border-color: rgb(129 129 129 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-menuBorder {\n --tw-border-opacity: 1;\n border-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-primary {\n border-color: var(--rf-color-primary);\n}\n\n.rf-border-secondary {\n border-color: var(--rf-color-secondary);\n}\n\n.rf-border-templateCheckboxBorder {\n --tw-border-opacity: 1;\n border-color: rgb(112 112 112 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-textBoxBorder {\n --tw-border-opacity: 1;\n border-color: rgb(190 190 190 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-textModePanelBackgroundBot {\n border-color: var(--rf-color-textModePanelBackgroundBot);\n}\n\n.rf-border-textModePanelBackgroundUser {\n border-color: var(--rf-color-textModePanelBackgroundUser);\n}\n\n.rf-border-trueblack {\n --tw-border-opacity: 1;\n border-color: rgb(0 0 0 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-truewhite {\n --tw-border-opacity: 1;\n border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-x-primary {\n border-left-color: var(--rf-color-primary);\n border-right-color: var(--rf-color-primary);\n}\n\n.rf-border-y-menuBorder {\n --tw-border-opacity: 1;\n border-top-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n border-bottom-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-b-\\[\\#C4C5C8\\] {\n --tw-border-opacity: 1;\n border-bottom-color: rgb(196 197 200 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-b-black {\n border-bottom-color: var(--rf-color-black);\n}\n\n.rf-border-b-menuBorder {\n --tw-border-opacity: 1;\n border-bottom-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-b-silver {\n --tw-border-opacity: 1;\n border-bottom-color: rgb(192 192 192 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-b-transparent {\n border-bottom-color: #0000;\n}\n\n.rf-border-l-menuBorder {\n --tw-border-opacity: 1;\n border-left-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-r-\\[\\#8B8888\\] {\n --tw-border-opacity: 1;\n border-right-color: rgb(139 136 136 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-r-silver {\n --tw-border-opacity: 1;\n border-right-color: rgb(192 192 192 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-t-\\[\\#8B8888\\] {\n --tw-border-opacity: 1;\n border-top-color: rgb(139 136 136 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-t-\\[\\#CBC9C9\\] {\n --tw-border-opacity: 1;\n border-top-color: rgb(203 201 201 / var(--tw-border-opacity, 1));\n}\n\n.rf-border-t-menuBorder {\n --tw-border-opacity: 1;\n border-top-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n.rf-bg-\\[\\#00000050\\] {\n background-color: #00000050;\n}\n\n.rf-bg-\\[\\#000000B3\\] {\n background-color: #000000b3;\n}\n\n.rf-bg-\\[\\#121212F2\\] {\n background-color: #121212f2;\n}\n\n.rf-bg-\\[\\#1999B1\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(25 153 177 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-\\[\\#325981\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(50 89 129 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-\\[\\#CDE5FE\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(205 229 254 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-\\[\\#F0F0F0\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(240 240 240 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-\\[\\#F8F8F8\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(248 248 248 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-black {\n background-color: var(--rf-color-black);\n}\n\n.rf-bg-blue-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-cardButtonBackgroundDefault {\n background-color: var(--rf-color-cardButtonBackgroundDefault);\n}\n\n.rf-bg-cardButtonBackgroundHover {\n background-color: var(--rf-color-cardButtonBackgroundHover);\n}\n\n.rf-bg-cardFrameBackground {\n background-color: var(--rf-color-cardFrameBackground);\n}\n\n.rf-bg-formInputButtonBackgroundDefault {\n background-color: var(--rf-color-formInputButtonBackgroundDefault);\n}\n\n.rf-bg-formInputButtonBackgroundHover {\n background-color: var(--rf-color-formInputButtonBackgroundHover);\n}\n\n.rf-bg-formInputRadioCheckboxUncheckedBackground {\n background-color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n}\n\n.rf-bg-gray {\n --tw-bg-opacity: 1;\n background-color: rgb(128 128 128 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-primary {\n background-color: var(--rf-color-primary);\n}\n\n.rf-bg-red-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-secondary {\n background-color: var(--rf-color-secondary);\n}\n\n.rf-bg-silver {\n --tw-bg-opacity: 1;\n background-color: rgb(192 192 192 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-templateBackground {\n --tw-bg-opacity: 1;\n background-color: rgb(241 241 241 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-templateEmptyCard {\n --tw-bg-opacity: 1;\n background-color: rgb(232 231 231 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-textModePanelBackgroundBot {\n background-color: var(--rf-color-textModePanelBackgroundBot);\n}\n\n.rf-bg-textModePanelBackgroundUser {\n background-color: var(--rf-color-textModePanelBackgroundUser);\n}\n\n.rf-bg-transparent {\n background-color: #0000;\n}\n\n.rf-bg-truewhite {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-vocalModeSubtitlesBackground {\n background-color: var(--rf-color-vocalModeSubtitlesBackground);\n}\n\n.rf-bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(247 243 246 / var(--tw-bg-opacity, 1));\n}\n\n.rf-bg-opacity-30 {\n --tw-bg-opacity: .3;\n}\n\n.rf-bg-opacity-50 {\n --tw-bg-opacity: .5;\n}\n\n.rf-bg-opacity-80 {\n --tw-bg-opacity: .8;\n}\n\n.rf-object-cover {\n object-fit: cover;\n}\n\n.rf-p-0 {\n padding: 0;\n}\n\n.rf-p-1 {\n padding: .25rem;\n}\n\n.rf-p-2 {\n padding: .5rem;\n}\n\n.rf-p-3 {\n padding: .75rem;\n}\n\n.rf-p-4 {\n padding: 1rem;\n}\n\n.rf-p-\\[25px\\] {\n padding: 25px;\n}\n\n.rf-p-\\[7px_12px\\] {\n padding: 7px 12px;\n}\n\n.rf-px-1 {\n padding-left: .25rem;\n padding-right: .25rem;\n}\n\n.rf-px-16 {\n padding-left: 4rem;\n padding-right: 4rem;\n}\n\n.rf-px-2 {\n padding-left: .5rem;\n padding-right: .5rem;\n}\n\n.rf-px-3 {\n padding-left: .75rem;\n padding-right: .75rem;\n}\n\n.rf-px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.rf-px-48 {\n padding-left: 12rem;\n padding-right: 12rem;\n}\n\n.rf-px-5, .rf-px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n.rf-px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n\n.rf-py-0 {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.rf-py-1 {\n padding-top: .25rem;\n padding-bottom: .25rem;\n}\n\n.rf-py-12 {\n padding-top: 3rem;\n padding-bottom: 3rem;\n}\n\n.rf-py-16 {\n padding-top: 4rem;\n padding-bottom: 4rem;\n}\n\n.rf-py-2 {\n padding-top: .5rem;\n padding-bottom: .5rem;\n}\n\n.rf-py-3 {\n padding-top: .75rem;\n padding-bottom: .75rem;\n}\n\n.rf-py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n\n.rf-py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n\n.rf-py-8 {\n padding-top: 2rem;\n padding-bottom: 2rem;\n}\n\n.rf-pb-10 {\n padding-bottom: 2.5rem;\n}\n\n.rf-pb-12 {\n padding-bottom: 3rem;\n}\n\n.rf-pb-14 {\n padding-bottom: 3.5rem;\n}\n\n.rf-pb-2 {\n padding-bottom: .5rem;\n}\n\n.rf-pb-24 {\n padding-bottom: 6rem;\n}\n\n.rf-pb-3 {\n padding-bottom: .75rem;\n}\n\n.rf-pb-4 {\n padding-bottom: 1rem;\n}\n\n.rf-pb-5, .rf-pb-6 {\n padding-bottom: 1.5rem;\n}\n\n.rf-pb-8 {\n padding-bottom: 2rem;\n}\n\n.rf-pb-\\[15vh\\] {\n padding-bottom: 15vh;\n}\n\n.rf-pl-0 {\n padding-left: 0;\n}\n\n.rf-pl-1 {\n padding-left: .25rem;\n}\n\n.rf-pl-2 {\n padding-left: .5rem;\n}\n\n.rf-pl-4 {\n padding-left: 1rem;\n}\n\n.rf-pl-6 {\n padding-left: 1.5rem;\n}\n\n.rf-pl-8 {\n padding-left: 2rem;\n}\n\n.rf-pr-1 {\n padding-right: .25rem;\n}\n\n.rf-pr-2 {\n padding-right: .5rem;\n}\n\n.rf-pr-4 {\n padding-right: 1rem;\n}\n\n.rf-pr-6 {\n padding-right: 1.5rem;\n}\n\n.rf-pt-1 {\n padding-top: .25rem;\n}\n\n.rf-pt-11\\/20 {\n padding-top: 55%;\n}\n\n.rf-pt-12 {\n padding-top: 3rem;\n}\n\n.rf-pt-14 {\n padding-top: 3.5rem;\n}\n\n.rf-pt-2 {\n padding-top: .5rem;\n}\n\n.rf-pt-24 {\n padding-top: 6rem;\n}\n\n.rf-pt-3 {\n padding-top: .75rem;\n}\n\n.rf-pt-4 {\n padding-top: 1rem;\n}\n\n.rf-pt-40 {\n padding-top: 10rem;\n}\n\n.rf-pt-6 {\n padding-top: 1.5rem;\n}\n\n.rf-pt-8 {\n padding-top: 2rem;\n}\n\n.rf-pt-\\[25vh\\] {\n padding-top: 25vh;\n}\n\n.rf-pt-\\[26vh\\] {\n padding-top: 26vh;\n}\n\n.rf-text-left {\n text-align: left;\n}\n\n.rf-text-center {\n text-align: center;\n}\n\n.rf-text-right {\n text-align: right;\n}\n\n.rf-text-justify {\n text-align: justify;\n}\n\n.rf-font-default {\n font-family: Calibri, sans-serif;\n}\n\n.rf-text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n\n.rf-text-3xl {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n\n.rf-text-4xl {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n.rf-text-5xl {\n font-size: 3rem;\n line-height: 1;\n}\n\n.rf-text-6xl {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n.rf-text-7xl {\n font-size: 4.5rem;\n line-height: 1;\n}\n\n.rf-text-8xl {\n font-size: 6rem;\n line-height: 1;\n}\n\n.rf-text-\\[0\\.5rem\\] {\n font-size: .5rem;\n}\n\n.rf-text-arabic {\n font-size: 1.125rem;\n line-height: 1.15rem;\n}\n\n.rf-text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n\n.rf-text-basecustom {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n.rf-text-lgcustom {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n.rf-text-sm {\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n.rf-text-sm\\/4 {\n font-size: .875rem;\n line-height: 1rem;\n}\n\n.rf-text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n\n.rf-text-xs {\n font-size: .75rem;\n line-height: 1rem;\n}\n\n.rf-text-xsl {\n font-size: .7rem;\n line-height: 1rem;\n}\n\n.rf-text-xsm {\n font-size: .6rem;\n}\n\n.rf-font-bold {\n font-weight: 600;\n}\n\n.rf-font-light {\n font-weight: 200;\n}\n\n.rf-font-medium {\n font-weight: 300;\n}\n\n.rf-font-semibold {\n font-weight: 400;\n}\n\n.rf-uppercase {\n text-transform: uppercase;\n}\n\n.rf-capitalize {\n text-transform: capitalize;\n}\n\n.rf-normal-case {\n text-transform: none;\n}\n\n.rf-italic {\n font-style: italic;\n}\n\n.rf-leading-4 {\n line-height: 1rem;\n}\n\n.rf-text-\\[\\#1999B1\\] {\n --tw-text-opacity: 1;\n color: rgb(25 153 177 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-\\[\\#325981\\] {\n --tw-text-opacity: 1;\n color: rgb(50 89 129 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-\\[\\#575F6B\\] {\n --tw-text-opacity: 1;\n color: rgb(87 95 107 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-\\[\\#9A9A9A\\] {\n --tw-text-opacity: 1;\n color: rgb(154 154 154 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-\\[\\#A4A7AF\\] {\n --tw-text-opacity: 1;\n color: rgb(164 167 175 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-black {\n color: var(--rf-color-black);\n}\n\n.rf-text-cardButtonTextDefault {\n color: var(--rf-color-cardButtonTextDefault);\n}\n\n.rf-text-cardFrameText {\n color: var(--rf-color-cardFrameText);\n}\n\n.rf-text-formInputButtonTextDefault {\n color: var(--rf-color-formInputButtonTextDefault);\n}\n\n.rf-text-formInputButtonTextHover {\n color: var(--rf-color-formInputButtonTextHover);\n}\n\n.rf-text-formInputRadioCheckboxUncheckedBackground {\n color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n}\n\n.rf-text-formInputTextDefault {\n color: var(--rf-color-formInputTextDefault);\n}\n\n.rf-text-gray {\n --tw-text-opacity: 1;\n color: rgb(128 128 128 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-lightgray {\n --tw-text-opacity: 1;\n color: rgb(129 129 129 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-primary {\n color: var(--rf-color-primary);\n}\n\n.rf-text-secondary {\n color: var(--rf-color-secondary);\n}\n\n.rf-text-textModePanelConversationBot {\n color: var(--rf-color-textModePanelConversationBot);\n}\n\n.rf-text-textModePanelConversationUser {\n color: var(--rf-color-textModePanelConversationUser);\n}\n\n.rf-text-trueblack {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-truewhite {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n\n.rf-text-vocalModeSubtitlesText {\n color: var(--rf-color-vocalModeSubtitlesText);\n}\n\n.rf-text-white {\n --tw-text-opacity: 1;\n color: rgb(247 243 246 / var(--tw-text-opacity, 1));\n}\n\n.rf-underline {\n text-decoration-line: underline;\n}\n\n.rf-shadow-\\[-3px_-3px_10px_\\#00000099\\] {\n --tw-shadow: -3px -3px 10px #0009;\n --tw-shadow-colored: -3px -3px 10px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_0_15px_0_silver\\] {\n --tw-shadow: 0 0 15px 0 silver;\n --tw-shadow-colored: 0 0 15px 0 var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_0_20px_1px_\\#A4A7AF80\\] {\n --tw-shadow: 0 0 20px 1px #a4a7af80;\n --tw-shadow-colored: 0 0 20px 1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_0_3px_6px_\\#00000029\\] {\n --tw-shadow: 0 0 3px 6px #00000029;\n --tw-shadow-colored: 0 0 3px 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_3px_6px_\\#00000029\\] {\n --tw-shadow: 0 3px 6px #00000029;\n --tw-shadow-colored: 0 3px 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_3px_6px_\\#606267\\] {\n --tw-shadow: 0 3px 6px #606267;\n --tw-shadow-colored: 0 3px 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[0_6px_6px_\\#00000029\\] {\n --tw-shadow: 0 6px 6px #00000029;\n --tw-shadow-colored: 0 6px 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[20px_3px_20px_\\#00000029\\] {\n --tw-shadow: 20px 3px 20px #00000029;\n --tw-shadow-colored: 20px 3px 20px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[3px_3px_16px_\\#00000029\\] {\n --tw-shadow: 3px 3px 16px #00000029;\n --tw-shadow-colored: 3px 3px 16px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[3px_3px_6px_\\#00000029\\] {\n --tw-shadow: 3px 3px 6px #00000029;\n --tw-shadow-colored: 3px 3px 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[inset_0_0_6px_\\#0000003B\\] {\n --tw-shadow: inset 0 0 6px #0000003b;\n --tw-shadow-colored: inset 0 0 6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-shadow-\\[inset_0_12px_12px_-12px_\\#00000029\\,inset_0_-12px_12px_-12px_\\#00000029\\] {\n --tw-shadow: inset 0 12px 12px -12px #00000029, inset 0 -12px 12px -12px #00000029;\n --tw-shadow-colored: inset 0 12px 12px -12px var(--tw-shadow-color), inset 0 -12px 12px -12px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.rf-outline-none {\n outline-offset: 2px;\n outline: 2px solid #0000;\n}\n\n.rf-blur-background {\n --tw-blur: blur(var(--rf-blur-background));\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.rf-filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.rf-transition-all {\n transition-property: all;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.rf-transition-transform {\n transition-property: transform;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.rf-text-shadow-black {\n text-shadow: 2px 0 5px #000, -2px 0 5px #000, 0 2px 5px #000, 0 -2px 5px #000;\n}\n\n.rf-capitalize-first:first-letter {\n text-transform: uppercase;\n}\n\nol {\n padding-left: 2rem;\n list-style-type: decimal;\n}\n\nul {\n padding-left: 2rem;\n list-style-type: disc;\n}\n\n#retorik-container.rf-portrait:not(.rf-large) .ac-image {\n max-width: 100px;\n}\n\n.rf-glass-background, #retorik-container.portrait .portrait\\:rf-glass-background {\n background-color: var(--rf-color-black);\n --tw-bg-opacity: .62;\n --tw-backdrop-blur: blur(8px);\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n}\n\n.rf-loader-bouncing-bot {\n aspect-ratio: 2;\n --_g: no-repeat radial-gradient(circle closest-side, var(--rf-color-textModePanelConversationBot) 90%, transparent);\n background: var(--_g) 0% 50%, var(--_g) 50% 50%, var(--_g) 100% 50%;\n background-size: 33.3333% 50%;\n}\n\n@keyframes rf-loaderBouncing {\n 20% {\n background-position: 0 0, 50%, 100%;\n }\n\n 40% {\n background-position: 0 100%, 50% 0, 100%;\n }\n\n 60% {\n background-position: 0%, 50% 100%, 100% 0;\n }\n\n 80% {\n background-position: 0%, 50%, 100% 100%;\n }\n}\n\n.rf-loader-bouncing-bot {\n animation: 1s linear infinite rf-loaderBouncing;\n}\n\n.rf-loader-bouncing-white {\n aspect-ratio: 2;\n --_g: no-repeat radial-gradient(circle closest-side, #fff 90%, transparent);\n background: var(--_g) 0% 50%, var(--_g) 50% 50%, var(--_g) 100% 50%;\n background-size: 33.3333% 50%;\n animation: 1s linear infinite rf-loaderBouncing;\n}\n\n@keyframes rf-loaderPulsation {\n 0% {\n transform: scale3d(1, 1, 1);\n }\n\n 50% {\n transform: scale3d(1.1, 1.1, 1);\n }\n\n 100% {\n transform: scale3d(1, 1, 1);\n }\n}\n\n.rf-loader-pulsation {\n animation: 2s cubic-bezier(.65, 0, .34, 1) infinite rf-loaderPulsation;\n}\n\n.rf-loader-pulsation:before {\n content: \"\";\n background-color: var(--rf-color-secondary);\n z-index: -1;\n border-radius: 50%;\n width: 100%;\n height: 100%;\n position: absolute;\n}\n\n@keyframes rf-loaderRipple {\n 0% {\n opacity: 1;\n transform: scale3d(.75, .75, 1);\n }\n\n 100% {\n opacity: 0;\n transform: scale3d(1.5, 1.5, 1);\n }\n}\n\n.rf-loader-pulsation:before {\n animation: 2.4s cubic-bezier(.65, 0, .34, 1) .4s infinite rf-loaderRipple;\n}\n\n.rf-loader-pulsation:after {\n content: \"\";\n background-color: var(--rf-color-secondary);\n z-index: -1;\n border-radius: 50%;\n width: 100%;\n height: 100%;\n animation: 2.4s cubic-bezier(.65, 0, .34, 1) infinite rf-loaderRipple;\n position: absolute;\n}\n\n.rf-loader:before {\n content: \"\";\n border-radius: 50%;\n width: 1.5rem;\n height: 1.5rem;\n animation: 1.8s ease-in-out -.32s infinite both rf-loader;\n display: block;\n position: absolute;\n right: 1.5rem;\n}\n\n.rf-loader:after {\n content: \"\";\n border-radius: 50%;\n width: 1.5rem;\n height: 1.5rem;\n animation: 1.8s ease-in-out infinite both rf-loader;\n display: block;\n position: absolute;\n left: 1.5rem;\n}\n\n.rf-loader-medium:before {\n content: \"\";\n border-radius: 50%;\n width: 1rem;\n height: 1rem;\n animation: 1.8s ease-in-out -.32s infinite both rf-loaderMedium;\n display: block;\n position: absolute;\n right: 1rem;\n}\n\n.rf-loader-medium:after {\n content: \"\";\n border-radius: 50%;\n width: 1rem;\n height: 1rem;\n animation: 1.8s ease-in-out infinite both rf-loaderMedium;\n display: block;\n position: absolute;\n left: 1rem;\n}\n\n.rf-loader-mini:before {\n content: \"\";\n border-radius: 50%;\n width: .5rem;\n height: .5rem;\n animation: 1.8s ease-in-out -.32s infinite both rf-loaderMini;\n display: block;\n position: absolute;\n right: .5rem;\n}\n\n.rf-loader-mini:after {\n content: \"\";\n border-radius: 50%;\n width: .5rem;\n height: .5rem;\n animation: 1.8s ease-in-out infinite both rf-loaderMini;\n display: block;\n position: absolute;\n left: .5rem;\n}\n\n.rf-loader-microphone:before, .rf-loader-microphone:after {\n content: \"\";\n --tw-border-opacity: 1;\n border: 6px solid #0000;\n border-top-color: rgb(128 128 128 / var(--tw-border-opacity, 1));\n border-radius: 100%;\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.rf-loader-microphone:before {\n z-index: 2;\n animation: 1s linear infinite rf-spin;\n}\n\n.rf-loader-microphone:after {\n --tw-border-opacity: 1;\n border-color: rgb(204 204 204 / var(--tw-border-opacity, 1));\n}\n\n.rf-loader-microphone-primary:before, .rf-loader-microphone-primary:after {\n content: \"\";\n border: 6px solid #0000;\n border-top-color: var(--rf-color-primary);\n border-radius: 100%;\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.rf-loader-microphone-primary:before {\n z-index: 2;\n animation: 1s linear infinite rf-spin;\n}\n\n.rf-loader-microphone-primary:after {\n --tw-border-opacity: 1;\n border-color: rgb(204 204 204 / var(--tw-border-opacity, 1));\n}\n\n.rf-loader-microphone-secondary:before, .rf-loader-microphone-secondary:after {\n content: \"\";\n border: 6px solid #0000;\n border-top-color: var(--rf-color-secondary);\n border-radius: 100%;\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.rf-loader-microphone-secondary:before {\n z-index: 2;\n animation: 1s linear infinite rf-spin;\n}\n\n.rf-loader-microphone-secondary:after {\n --tw-border-opacity: 1;\n border-color: rgb(204 204 204 / var(--tw-border-opacity, 1));\n}\n\n.rf-loader-counter {\n border-width: 8px;\n border-color: var(--rf-color-primary);\n border-radius: 50%;\n position: relative;\n}\n\n@keyframes rf-loaderCounter {\n 0% {\n clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0);\n }\n\n 25% {\n clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 0, 100% 0, 100% 0);\n }\n\n 50% {\n clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 100% 100%, 100% 100%);\n }\n\n 75% {\n clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%);\n }\n\n 100% {\n clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 0);\n }\n}\n\n.rf-loader-counter:before {\n border-width: 10px;\n border-color: var(--rf-color-cardFrameBackground);\n content: \"\";\n animation: rf-loaderCounter;\n animation-duration: var(--duration);\n border-radius: 50%;\n animation-timing-function: linear;\n position: absolute;\n inset: -9px;\n transform: rotate(45deg);\n}\n\n.rf-touch-action-none {\n touch-action: none;\n}\n\n.rf-unselectable {\n user-select: none;\n -webkit-touch-callout: none;\n}\n\n.rf-title-extralarge-bold-size-auto {\n font-size: 2.25rem;\n font-weight: 600;\n line-height: 2.5rem;\n}\n\n#retorik-container.rf-large .rf-title-extralarge-bold-size-auto {\n font-size: 3rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-extralarge-bold-size-auto {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n.rf-title-extralarge-size-auto {\n font-size: 2.25rem;\n font-weight: 400;\n line-height: 2.5rem;\n}\n\n#retorik-container.rf-large .rf-title-extralarge-size-auto {\n font-size: 3rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-extralarge-size-auto {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n.rf-title-large-size-auto {\n font-size: 1.5rem;\n font-weight: 400;\n line-height: 2rem;\n}\n\n#retorik-container.rf-large .rf-title-large-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-large-size-auto {\n font-size: 3rem;\n line-height: 1;\n}\n\n.rf-title-large-bold-size-auto {\n font-size: 1.875rem;\n font-weight: 600;\n line-height: 2.25rem;\n}\n\n#retorik-container.rf-large .rf-title-large-bold-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-large-bold-size-auto {\n font-size: 3rem;\n line-height: 1;\n}\n\n.rf-title-size-auto {\n font-size: 1.5rem;\n font-weight: 400;\n line-height: 2rem;\n}\n\n#retorik-container.rf-large .rf-title-size-auto {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n.rf-title-bold-size-auto {\n font-size: 1.5rem;\n font-weight: 600;\n line-height: 2rem;\n}\n\n#retorik-container.rf-large .rf-title-bold-size-auto {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-title-bold-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n.rf-subtitle-size-auto {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-subtitle-size-auto {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-subtitle-size-auto {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n\n.rf-text-extralarge-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n#retorik-container.rf-large .rf-text-extralarge-size-auto {\n font-size: 3rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-text-extralarge-size-auto {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n.rf-text-verylarge-size-auto {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n\n#retorik-container.rf-large .rf-text-verylarge-size-auto {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-text-verylarge-size-auto {\n font-size: 4.5rem;\n line-height: 1;\n}\n\n.rf-text-large-size-auto {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n\n#retorik-container.rf-large .rf-text-large-size-auto {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-text-large-size-auto {\n font-size: 2.25rem;\n line-height: 2.5rem;\n}\n\n.rf-text-medium-size-auto {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large .rf-text-medium-size-auto {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n.rf-text-size-auto {\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-text-size-auto {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-text-size-auto {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n.rf-text-small-size-auto {\n font-size: .875rem;\n line-height: 1rem;\n}\n\n#retorik-container.rf-large .rf-text-small-size-auto {\n font-size: 1rem;\n line-height: 1.1rem;\n}\n\n.rf-text-extra-small-size-auto {\n font-size: .6rem;\n line-height: .75rem;\n}\n\n#retorik-container.rf-large .rf-text-extra-small-size-auto {\n font-size: .875rem;\n line-height: 1rem;\n}\n\n.rf-small-size-auto {\n font-size: .6rem;\n}\n\n#retorik-container.rf-large .rf-small-size-auto {\n font-size: .75rem;\n line-height: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-small-size-auto {\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n.rf-line-clamp-unknown {\n hyphens: auto;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-1 {\n hyphens: auto;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-2 {\n hyphens: auto;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-3 {\n hyphens: auto;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-4 {\n hyphens: auto;\n -webkit-line-clamp: 4;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-5 {\n hyphens: auto;\n -webkit-line-clamp: 5;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-6 {\n hyphens: auto;\n -webkit-line-clamp: 6;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-7 {\n hyphens: auto;\n -webkit-line-clamp: 7;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-8 {\n hyphens: auto;\n -webkit-line-clamp: 8;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-9 {\n hyphens: auto;\n -webkit-line-clamp: 9;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-line-clamp-10 {\n hyphens: auto;\n -webkit-line-clamp: 10;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.rf-overflow-wrap {\n overflow-wrap: anywhere;\n}\n\n.rf-height-fill-available {\n height: stretch;\n}\n\n.rf-width-fill-available {\n width: stretch;\n}\n\n.rf-animation-delay-2 {\n animation-delay: .2s;\n}\n\n.rf-animation-delay-4 {\n animation-delay: .4s;\n}\n\n.rf-scrollbar-thin {\n scrollbar-width: thin;\n scrollbar-color: var(--rf-color-secondary) transparent;\n}\n\n.rf-scrollbar-thin::-webkit-scrollbar {\n width: .2rem;\n height: .2rem;\n margin: .25rem 0;\n}\n\n.rf-scrollbar-thin::-webkit-scrollbar-thumb {\n background-color: var(--rf-color-secondary);\n border-radius: .5rem;\n}\n\n.rf-scrollbar-x-custom::-webkit-scrollbar {\n background-color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n border-radius: 2rem;\n height: .5rem;\n}\n\n.rf-scrollbar-x-custom::-webkit-scrollbar-thumb {\n background-color: var(--rf-color-primary);\n border-radius: 2rem;\n}\n\n.rf-scrollbar-hidden {\n scrollbar-width: none;\n}\n\n.rf-scrollbar-hidden::-webkit-scrollbar {\n display: none;\n}\n\n.rf-opacity-gradient-b {\n -webkit-mask-image: linear-gradient(#000 50%, #0000 100%);\n}\n\n.rf-opacity-gradient-b-thin {\n -webkit-mask-image: linear-gradient(#797676 84%, #0000 100%);\n}\n\n.rf-opacity-gradient-l {\n -webkit-mask-image: linear-gradient(to left, #000 75%, gray 80%, #0000 85%);\n}\n\n.rf-opacity-gradient-l-thin {\n -webkit-mask-image: linear-gradient(to left, #000 90%, gray 95%, #0000 100%);\n}\n\n.rf-opacity-gradient-r {\n -webkit-mask-image: linear-gradient(to right, #000 75%, gray 80%, #0000 85%);\n}\n\n.rf-opacity-gradient-r-thin {\n -webkit-mask-image: linear-gradient(to right, #000 90%, gray 95%, #0000 100%);\n}\n\n.rf-opacity-gradient-h {\n -webkit-mask-image: linear-gradient(to right, #0000 0%, 6%, #000, 94%, #0000 100%);\n}\n\n.rf-card-button {\n border-width: 1px;\n border-color: var(--rf-color-cardButtonBorderDefault);\n background-color: var(--rf-color-cardButtonBackgroundDefault);\n color: var(--rf-color-cardButtonTextDefault);\n border-radius: .3125rem;\n padding: .25rem .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-card-button {\n padding: .5rem 1rem;\n}\n\n.rf-card-button:hover {\n cursor: pointer;\n border-color: var(--rf-color-cardButtonBorderHover);\n background-color: var(--rf-color-cardButtonBackgroundHover);\n color: var(--rf-color-cardButtonTextHover);\n}\n\n.rf-card-button-clicked {\n background-color: var(--rf-color-cardButtonBackgroundDefault);\n border-width: 1px;\n border-color: #0000;\n padding-top: .25rem;\n padding-bottom: .25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-clicked {\n padding-top: .5rem;\n padding-bottom: .5rem;\n}\n\n.rf-card-button-positive {\n border-width: 1px;\n border-color: var(--rf-color-cardFrameBackground);\n background-color: var(--rf-color-cardButtonTextDefault);\n color: var(--rf-color-cardFrameBackground);\n border-radius: .3125rem;\n padding: .25rem .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-positive {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button-positive {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-card-button-positive {\n padding: .5rem 1rem;\n}\n\n.rf-card-button-positive:hover {\n cursor: pointer;\n border-color: var(--rf-color-cardButtonTextDefault);\n background-color: var(--rf-color-cardFrameBackground);\n color: var(--rf-color-cardButtonTextDefault);\n}\n\n.rf-card-button-destructive {\n --tw-border-opacity: 1;\n border-width: 1px;\n border-color: rgb(220 38 38 / var(--tw-border-opacity, 1));\n --tw-bg-opacity: 1;\n background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n border-radius: .3125rem;\n padding: .25rem .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-destructive {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button-destructive {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-card-button-destructive {\n padding: .5rem 1rem;\n}\n\n.rf-card-button-destructive:hover {\n cursor: pointer;\n --tw-border-opacity: 1;\n border-color: rgb(220 38 38 / var(--tw-border-opacity, 1));\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n --tw-text-opacity: 1;\n color: rgb(220 38 38 / var(--tw-text-opacity, 1));\n}\n\n.rf-card-button-secondary {\n border-width: 1px;\n border-color: var(--rf-color-secondary);\n color: var(--rf-color-secondary);\n background-color: #0000;\n border-radius: .3125rem;\n padding: .25rem .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-secondary {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button-secondary {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-card-button-secondary {\n padding: .5rem 1rem;\n}\n\n.rf-card-button-secondary:hover {\n cursor: pointer;\n border-color: var(--rf-color-secondary);\n background-color: var(--rf-color-secondary);\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n\n.rf-card-button-discover {\n border-width: 1px;\n border-color: var(--rf-color-cardButtonDiscoverBorderDefault);\n background-color: var(--rf-color-cardButtonDiscoverBackgroundDefault);\n color: var(--rf-color-cardButtonDiscoverTextDefault);\n border-radius: .3125rem;\n padding: .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-discover {\n padding-top: .75rem;\n padding-bottom: .75rem;\n}\n\n.rf-card-button-discover:hover {\n cursor: pointer;\n border-color: var(--rf-color-cardButtonDiscoverBorderHover);\n background-color: var(--rf-color-cardButtonDiscoverBackgroundHover);\n color: var(--rf-color-cardButtonDiscoverTextHover);\n}\n\n.rf-card-button-history {\n cursor: default;\n border-width: 1px;\n border-color: var(--rf-color-cardButtonBorderDefault);\n background-color: var(--rf-color-cardButtonBackgroundDefault);\n color: var(--rf-color-cardButtonTextDefault);\n border-radius: .3125rem;\n padding: .25rem .5rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-history {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button-history {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .rf-card-button-history {\n padding: .5rem 1rem;\n}\n\n.rf-card-button-mini, .rf-card-button-mini-selected, .rf-card-button-mini-disabled {\n background-color: var(--rf-color-cardFrameBackground);\n border-width: 1px;\n border-radius: .3125rem;\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .rf-card-button-mini, #retorik-container.rf-large .rf-card-button-mini-selected, #retorik-container.rf-large .rf-card-button-mini-disabled {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-card-button-mini, #retorik-container.rf-large.rf-portrait .rf-card-button-mini-selected, #retorik-container.rf-large.rf-portrait .rf-card-button-mini-disabled {\n font-size: 1.125rem;\n line-height: 1.5rem;\n}\n\n.rf-card-button-mini {\n border-color: var(--rf-color-cardButtonBorderDefault);\n background-color: var(--rf-color-cardFrameBackground);\n color: var(--rf-color-cardButtonTextDefault);\n}\n\n.rf-card-button-mini:hover {\n cursor: pointer;\n border-color: var(--rf-color-cardButtonBorderHover);\n background-color: var(--rf-color-cardFrameBackground);\n color: var(--rf-color-cardButtonTextHover);\n}\n\n.rf-card-button-mini-selected {\n border-color: var(--rf-color-cardFrameBackground);\n background-color: var(--rf-color-cardButtonBorderDefault);\n color: var(--rf-color-cardFrameBackground);\n}\n\n.lf-player-container {\n align-items: flex-end;\n width: 100%;\n height: 100%;\n display: flex;\n overflow: hidden;\n}\n\n.rf-input-label {\n text-overflow: ellipsis;\n color: var(--rf-color-formInputTextDefault);\n margin-top: .1rem;\n margin-left: .75rem;\n overflow-x: hidden;\n}\n\n#retorik-container.rf-large .rf-input-label {\n margin-top: .25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-input-label {\n margin-top: .2rem;\n}\n\n.rf-radio-custom {\n appearance: none;\n border-width: 2px;\n border-color: var(--rf-color-formInputRadioCheckboxUncheckedBorder);\n background-color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n border-radius: 50%;\n place-content: center;\n width: 1.5rem;\n min-width: 1.5rem;\n height: 1.5rem;\n margin: 0;\n display: grid;\n}\n\n.rf-radio-custom:checked {\n border-color: var(--rf-color-formInputRadioCheckboxCheckedBorder);\n background-color: var(--rf-color-formInputRadioCheckboxCheckedBackground);\n}\n\n#retorik-container.rf-large .rf-radio-custom {\n width: 1.75rem;\n min-width: 1.75rem;\n height: 1.75rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-radio-custom {\n width: 2rem;\n min-width: 2rem;\n height: 2rem;\n}\n\n.rf-radio-custom:before {\n content: \"\";\n --tw-scale-x: 0;\n --tw-scale-y: 0;\n width: .5rem;\n height: .5rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n background-color: var(--rf-color-formInputRadioCheckboxCheckedItem);\n border-radius: 50%;\n transition-property: all;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n#retorik-container.rf-large .rf-radio-custom:before {\n width: .75rem;\n height: .75rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-radio-custom:before {\n width: 1rem;\n height: 1rem;\n}\n\n.rf-radio-custom:checked:before {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-input-hidden {\n appearance: none;\n margin: 0;\n}\n\n.rf-checkbox-custom {\n appearance: none;\n border-width: 2px;\n border-color: var(--rf-color-formInputRadioCheckboxUncheckedBorder);\n background-color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n border-radius: .3125rem;\n place-content: center;\n width: 1.5rem;\n min-width: 1.5rem;\n height: 1.5rem;\n margin: 0;\n display: grid;\n}\n\n#retorik-container.rf-large .rf-checkbox-custom {\n width: 1.75rem;\n min-width: 1.75rem;\n height: 1.75rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-checkbox-custom {\n width: 2rem;\n min-width: 2rem;\n height: 2rem;\n}\n\n.rf-checkbox-custom:checked {\n border-color: var(--rf-color-formInputRadioCheckboxCheckedBorder);\n background-color: var(--rf-color-formInputRadioCheckboxCheckedBackground);\n}\n\n.rf-toggle-custom {\n appearance: none;\n background-color: var(--rf-color-black);\n border-radius: 1.5rem;\n width: 3rem;\n min-width: 3rem;\n height: 1.5rem;\n margin: 0;\n position: relative;\n}\n\n.rf-toggle-custom:checked {\n background-color: var(--rf-color-primary);\n}\n\n#retorik-container.rf-large .rf-toggle-custom {\n border-radius: 1.75rem;\n width: 3.5rem;\n min-width: 3.5rem;\n height: 1.75rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-toggle-custom {\n border-radius: 2rem;\n width: 4rem;\n min-width: 4rem;\n height: 2rem;\n}\n\n.rf-toggle-custom:before {\n content: \"\";\n --tw-translate-x: 0px;\n width: 1rem;\n height: 1rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n border-radius: 50%;\n transition-property: all;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n position: absolute;\n top: .25rem;\n left: .25rem;\n}\n\n#retorik-container.rf-large .rf-toggle-custom:before {\n width: 1.25rem;\n height: 1.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .rf-toggle-custom:before {\n width: 1.5rem;\n height: 1.5rem;\n}\n\n.rf-toggle-custom:checked:before {\n --tw-translate-x: 1.5rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n#retorik-container.rf-large .rf-toggle-custom:checked:before {\n --tw-translate-x: 1.75rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n#retorik-container.rf-large.rf-portrait .rf-toggle-custom:checked:before {\n --tw-translate-x: 2rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.rf-select-custom {\n appearance: none;\n border-width: 2px;\n border-color: var(--rf-color-formInputRadioCheckboxUncheckedBorder);\n background-color: var(--rf-color-formInputRadioCheckboxUncheckedBackground);\n border-radius: .3125rem;\n margin: 0;\n padding: 1rem;\n}\n\n.rf-select-custom:hover {\n cursor: pointer;\n}\n\n.rf-select-custom:focus-visible {\n border-color: var(--rf-color-formInputRadioCheckboxCheckedBorder);\n}\n\n.rf-slider-custom {\n -webkit-appearance: none;\n -moz-appearance: none;\n outline-offset: 2px;\n border-radius: .5rem;\n outline: 2px solid #0000;\n width: 100%;\n height: .25rem;\n display: block;\n position: relative;\n}\n\n.rf-slider-custom::-webkit-slider-runnable-track {\n -webkit-appearance: none;\n}\n\n.rf-slider-custom::-moz-track {\n -moz-appearance: none;\n}\n\n.rf-slider-custom::-ms-track {\n appearance: none;\n}\n\n.rf-slider-custom::-webkit-slider-thumb {\n -webkit-appearance: none;\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n border-style: none;\n border-radius: 50%;\n width: 1.5rem;\n height: 1.5rem;\n margin-top: -.2rem;\n}\n\n.rf-slider-custom::-webkit-slider-thumb:hover {\n cursor: pointer;\n}\n\n.rf-slider-custom::-moz-range-thumb {\n -webkit-appearance: none;\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n border-style: none;\n border-radius: 50%;\n width: 1.5rem;\n height: 1.5rem;\n margin-top: -.2rem;\n}\n\n.rf-slider-custom::-moz-range-thumb:hover {\n cursor: pointer;\n}\n\n.rf-slider-custom::-ms-thumb {\n appearance: none;\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n border-style: none;\n border-radius: 50%;\n width: 1.5rem;\n height: 1.5rem;\n margin-top: -.2rem;\n}\n\n.rf-slider-custom::-ms-thumb:hover {\n cursor: pointer;\n}\n\n.rf-likert-custom {\n cursor: pointer;\n outline-offset: 2px;\n -webkit-text-stroke-width: 1px;\n -webkit-text-stroke-color: white;\n background-color: #0000;\n border-style: none;\n outline: 2px solid #0000;\n}\n\n.svgButtonMenu > svg * {\n fill: var(--fill);\n}\n\n.webchat__css-custom-properties {\n width: 100%;\n height: 100%;\n}\n\n.placeholder\\:rf-text-black::placeholder {\n color: var(--rf-color-black);\n}\n\n.placeholder\\:rf-opacity-100::placeholder {\n opacity: 1;\n}\n\n.hover\\:rf-cursor-pointer:hover {\n cursor: pointer;\n}\n\n.hover\\:rf-border-truewhite:hover {\n --tw-border-opacity: 1;\n border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));\n}\n\n.hover\\:rf-bg-\\[\\#1999B1\\]:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(25 153 177 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:rf-bg-formInputRadioCheckboxCheckedBackground:hover {\n background-color: var(--rf-color-formInputRadioCheckboxCheckedBackground);\n}\n\n.hover\\:rf-bg-transparent:hover {\n background-color: #0000;\n}\n\n.hover\\:rf-bg-truewhite:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:rf-text-\\[\\#1999B1\\]:hover {\n --tw-text-opacity: 1;\n color: rgb(25 153 177 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:rf-text-\\[\\#325981\\]:hover {\n --tw-text-opacity: 1;\n color: rgb(50 89 129 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:rf-text-formInputRadioCheckboxCheckedItem:hover {\n color: var(--rf-color-formInputRadioCheckboxCheckedItem);\n}\n\n.hover\\:rf-text-truewhite:hover {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:rf-shadow-\\[inset_0_0_12px_\\#00000029\\]:hover {\n --tw-shadow: inset 0 0 12px #00000029;\n --tw-shadow-colored: inset 0 0 12px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-col-span-full {\n grid-column: 1 / -1;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-col-start-1 {\n grid-column-start: 1;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-row-end-13 {\n grid-row-end: 13;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-w-5\\/6 {\n width: 83.3333%;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-w-9\\/10 {\n width: 90%;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-w-full {\n width: 100%;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-flex-col {\n flex-direction: column;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-items-center {\n align-items: center;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-overflow-x-auto {\n overflow-x: auto;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-border-r-0 {\n border-right-width: 0;\n}\n\n#retorik-container.rf-portrait .vertical\\:rf-py-1 {\n padding-top: .25rem;\n padding-bottom: .25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-absolute {\n position: absolute;\n}\n\n#retorik-container.rf-large .large\\:rf-left-4 {\n left: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-top-8 {\n top: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-m-8 {\n margin: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-my-0 {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-my-3 {\n margin-top: .75rem;\n margin-bottom: .75rem;\n}\n\n#retorik-container.rf-large .large\\:rf-mb-0 {\n margin-bottom: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-mb-4 {\n margin-bottom: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-mb-6 {\n margin-bottom: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-ml-0 {\n margin-left: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-ml-4 {\n margin-left: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-ml-8 {\n margin-left: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-mr-3 {\n margin-right: .75rem;\n}\n\n#retorik-container.rf-large .large\\:rf-mr-30 {\n margin-right: 7.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-mt-0 {\n margin-top: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-mt-20 {\n margin-top: 5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-mt-3 {\n margin-top: .75rem;\n}\n\n#retorik-container.rf-large .large\\:rf-mt-\\[20vh\\] {\n margin-top: 20vh;\n}\n\n#retorik-container.rf-large .large\\:rf-block {\n display: block;\n}\n\n#retorik-container.rf-large .large\\:rf-flex {\n display: flex;\n}\n\n#retorik-container.rf-large .large\\:rf-hidden {\n display: none;\n}\n\n#retorik-container.rf-large .large\\:rf-aspect-video {\n aspect-ratio: 16 / 9;\n}\n\n#retorik-container.rf-large .large\\:rf-h-10 {\n height: 2.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-16 {\n height: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-20 {\n height: 5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-3\\/5 {\n height: 60%;\n}\n\n#retorik-container.rf-large .large\\:rf-h-4 {\n height: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-5 {\n height: 1.25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-6 {\n height: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-8 {\n height: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-\\[1\\.3rem\\] {\n height: 1.3rem;\n}\n\n#retorik-container.rf-large .large\\:rf-h-\\[60vh\\] {\n height: 60vh;\n}\n\n#retorik-container.rf-large .large\\:rf-h-auto {\n height: auto;\n}\n\n#retorik-container.rf-large .large\\:rf-h-full {\n height: 100%;\n}\n\n#retorik-container.rf-large .large\\:rf-max-h-28 {\n max-height: 7rem;\n}\n\n#retorik-container.rf-large .large\\:rf-max-h-\\[2\\.3rem\\] {\n max-height: 2.3rem;\n}\n\n#retorik-container.rf-large .large\\:rf-min-h-\\[2\\.3rem\\] {\n min-height: 2.3rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-1\\/8 {\n width: 12.5%;\n}\n\n#retorik-container.rf-large .large\\:rf-w-14 {\n width: 3.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-16 {\n width: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-4 {\n width: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-5 {\n width: 1.25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-6 {\n width: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-8 {\n width: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-w-fit {\n width: fit-content;\n}\n\n#retorik-container.rf-large .large\\:rf-w-full {\n width: 100%;\n}\n\n#retorik-container.rf-large .large\\:rf-min-w-1\\/2 {\n min-width: 50%;\n}\n\n#retorik-container.rf-large .large\\:rf-min-w-1\\/8 {\n min-width: 12.5%;\n}\n\n#retorik-container.rf-large .large\\:rf-min-w-16 {\n min-width: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-min-w-8 {\n min-width: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-max-w-1\\/8 {\n max-width: 12.5%;\n}\n\n#retorik-container.rf-large .large\\:rf-max-w-\\[12rem\\] {\n max-width: 12rem;\n}\n\n#retorik-container.rf-large .large\\:rf-max-w-full {\n max-width: 100%;\n}\n\n#retorik-container.rf-large .large\\:rf-grid-cols-5 {\n grid-template-columns: repeat(5, minmax(0, 1fr));\n}\n\n#retorik-container.rf-large .large\\:rf-flex-row {\n flex-direction: row;\n}\n\n#retorik-container.rf-large .large\\:rf-flex-col {\n flex-direction: column;\n}\n\n#retorik-container.rf-large .large\\:rf-items-baseline {\n align-items: baseline;\n}\n\n#retorik-container.rf-large .large\\:rf-justify-start {\n justify-content: flex-start;\n}\n\n#retorik-container.rf-large .large\\:rf-gap-1 {\n gap: .25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-gap-3 {\n gap: .75rem;\n}\n\n#retorik-container.rf-large .large\\:rf-gap-4 {\n gap: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-gap-6 {\n gap: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-overflow-y-scroll {\n overflow-y: scroll;\n}\n\n#retorik-container.rf-large .large\\:rf-border-t-0 {\n border-top-width: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-bg-truewhite {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n\n#retorik-container.rf-large .large\\:rf-p-4 {\n padding: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-p-\\[25px\\] {\n padding: 25px;\n}\n\n#retorik-container.rf-large .large\\:rf-p-min1 {\n padding: .1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-px-0 {\n padding-left: 0;\n padding-right: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-px-16 {\n padding-left: 4rem;\n padding-right: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-px-5, #retorik-container.rf-large .large\\:rf-px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n\n#retorik-container.rf-large .large\\:rf-py-0 {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n#retorik-container.rf-large .large\\:rf-py-1 {\n padding-top: .25rem;\n padding-bottom: .25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-py-2 {\n padding-top: .5rem;\n padding-bottom: .5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-py-3 {\n padding-top: .75rem;\n padding-bottom: .75rem;\n}\n\n#retorik-container.rf-large .large\\:rf-py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-pb-16 {\n padding-bottom: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-pl-12 {\n padding-left: 3rem;\n}\n\n#retorik-container.rf-large .large\\:rf-pl-4 {\n padding-left: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-pr-12 {\n padding-right: 3rem;\n}\n\n#retorik-container.rf-large .large\\:rf-pr-4 {\n padding-right: 1rem;\n}\n\n#retorik-container.rf-large .large\\:rf-pt-16 {\n padding-top: 4rem;\n}\n\n#retorik-container.rf-large .large\\:rf-text-5xl {\n font-size: 3rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large .large\\:rf-text-6xl {\n font-size: 3.75rem;\n line-height: 1;\n}\n\n#retorik-container.rf-large .large\\:rf-text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n\n#retorik-container.rf-large .large\\:rf-text-basecustom {\n font-size: 1rem;\n line-height: 1.3rem;\n}\n\n#retorik-container.rf-large .large\\:rf-text-sm {\n font-size: .875rem;\n line-height: 1.25rem;\n}\n\n#retorik-container.rf-large .large\\:rf-uppercase {\n text-transform: uppercase;\n}\n\n#retorik-container.rf-tactile .tactile\\:rf-h-4 {\n height: 1rem;\n}\n\n#retorik-container.rf-tactile .tactile\\:rf-h-6 {\n height: 1.5rem;\n}\n\n#retorik-container.rf-tactile .tactile\\:rf-w-6 {\n width: 1.5rem;\n}\n\n#retorik-container.rf-tactile .tactile\\:rf-pt-1\\/5 {\n padding-top: 20%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-absolute {\n position: absolute;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-left-4 {\n left: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-right-9 {\n right: 2.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-top-4 {\n top: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-col-start-1 {\n grid-column-start: 1;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-col-start-2 {\n grid-column-start: 2;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-col-end-8 {\n grid-column-end: 8;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-ml-1\\/5 {\n margin-left: 20%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-mr-1\\/5 {\n margin-right: 20%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-mt-4 {\n margin-top: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-mt-\\[20vh\\] {\n margin-top: 20vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-mt-\\[25vh\\] {\n margin-top: 25vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-block {\n display: block;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-hidden {\n display: none;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-1\\/2 {\n height: 50%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-14 {\n height: 3.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-24 {\n height: 6rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-5 {\n height: 1.25rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-6 {\n height: 1.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-h-\\[50vh\\] {\n height: 50vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-h-11\\/12 {\n max-height: 91.67%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-h-36 {\n max-height: 9rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-h-\\[18vh\\] {\n max-height: 18vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-h-\\[30vh\\] {\n max-height: 30vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-min-h-10 {\n min-height: 2.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-1\\/2 {\n width: 50%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-14 {\n width: 3.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-16 {\n width: 4rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-24 {\n width: 6rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-3\\/5 {\n width: 60%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-6 {\n width: 1.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-w-full {\n width: 100%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-min-w-14 {\n min-width: 3.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-min-w-24 {\n min-width: 6rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-min-w-3\\/5 {\n min-width: 60%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-w-2\\/3 {\n max-width: 66.67%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-w-\\[45\\%\\] {\n max-width: 45%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-max-w-\\[60\\%\\] {\n max-width: 60%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-flex-row {\n flex-direction: row;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-flex-col {\n flex-direction: column;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-justify-center {\n justify-content: center;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-gap-4 {\n gap: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-gap-6 {\n gap: 1.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-self-start {\n align-self: flex-start;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-border-t {\n border-top-width: 1px;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-border-t-menuBorder {\n --tw-border-opacity: 1;\n border-top-color: rgb(224 225 231 / var(--tw-border-opacity, 1));\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-py-5 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-pl-0 {\n padding-left: 0;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-pt-48 {\n padding-top: 12rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-pt-8 {\n padding-top: 2rem;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-pt-\\[16\\.67\\%\\] {\n padding-top: 16.67%;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-pt-\\[20vh\\] {\n padding-top: 20vh;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-text-basecustomuppercase {\n font-size: 1rem;\n line-height: 1.1rem;\n}\n\n#retorik-container.rf-large.rf-tactile .large-tactile\\:rf-mt-0 {\n margin-top: 0;\n}\n\n#retorik-container.rf-large.rf-tactile .large-tactile\\:rf-flex {\n display: flex;\n}\n\n#retorik-container.rf-large.rf-tactile .large-tactile\\:rf-hidden {\n display: none;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-col-start-3 {\n grid-column-start: 3;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-col-start-4 {\n grid-column-start: 4;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:-rf-mt-4 {\n margin-top: -1rem;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-ml-1\\/5 {\n margin-left: 20%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-mr-40 {\n margin-right: 10rem;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-h-full {\n height: 100%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-w-\\[48\\%\\] {\n width: 48%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-w-\\[calc\\(80\\%-10rem\\)\\] {\n width: calc(80% - 10rem);\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-min-w-\\[48\\%\\] {\n min-width: 48%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-max-w-\\[calc\\(\\(80\\%-10rem\\)\\*0\\.75\\)\\] {\n max-width: calc(60% - 7.5rem);\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:-rf-translate-x-1\\/4 {\n --tw-translate-x: -25%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-flex-col-reverse {\n flex-direction: column-reverse;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-items-start {\n align-items: flex-start;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-justify-start {\n justify-content: flex-start;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-justify-center {\n justify-content: center;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-self-end {\n align-self: flex-end;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-justify-self-start {\n justify-self: start;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-pb-2 {\n padding-bottom: .5rem;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-pl-1\\/5 {\n padding-left: 20%;\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-pl-\\[calc\\(50\\%-2\\.5rem\\)\\] {\n padding-left: calc(50% - 2.5rem);\n}\n\n#retorik-container.rf-large:not(.rf-portrait) .landscape-retorik\\:rf-pr-40 {\n padding-right: 10rem;\n}\n\n#retorik-container.rf-mobile .mobile\\:rf-px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n#retorik-container.rf-tablet .tablet\\:rf-w-28 {\n width: 7rem;\n}\n\n#retorik-container.rf-tablet .tablet\\:rf-pl-12 {\n padding-left: 3rem;\n}\n\n#retorik-container.rf-tablet .tablet\\:rf-pr-24 {\n padding-right: 6rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-h-10 {\n height: 2.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-h-20 {\n height: 5rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-min-h-20 {\n min-height: 5rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-w-40 {\n width: 10rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-p-5 {\n padding: 1.5rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-pl-32 {\n padding-left: 8rem;\n}\n\n#retorik-container.rf-large.rf-portrait:not(.rf-tablet) .borne\\:rf-pr-56 {\n padding-right: 14rem;\n}\n\n.ltr\\:rf-left-1:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n left: .25rem;\n}\n\n.ltr\\:rf-col-start-1:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n grid-column-start: 1;\n}\n\n.ltr\\:rf-ml-4:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n margin-left: 1rem;\n}\n\n.ltr\\:rf-self-end:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n align-self: flex-end;\n}\n\n.ltr\\:rf-pr-2:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n padding-right: .5rem;\n}\n\n.ltr\\:rf-text-left:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n text-align: left;\n}\n\n.ltr\\:rf-text-right:where([dir=\"ltr\"], [dir=\"ltr\"] *) {\n text-align: right;\n}\n\n.rtl\\:rf-right-1:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n right: .25rem;\n}\n\n.rtl\\:rf-col-end-1:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n grid-column-end: 1;\n}\n\n.rtl\\:rf-mr-4:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n margin-right: 1rem;\n}\n\n.rtl\\:rf-self-start:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n align-self: flex-start;\n}\n\n.rtl\\:rf-pl-2:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n padding-left: .5rem;\n}\n\n.rtl\\:rf-text-left:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n text-align: left;\n}\n\n.rtl\\:rf-text-right:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n text-align: right;\n}\n";
|
|
19129
19107
|
|
|
19130
19108
|
|
|
19131
19109
|
var $3b963894676ce6b6$exports = {};
|
|
@@ -20747,7 +20725,7 @@ const $c3eed29d5a01c495$var$Checkbox = ({ id: id, choices: choices, split: split
|
|
|
20747
20725
|
setChosen(tempChosen);
|
|
20748
20726
|
}
|
|
20749
20727
|
};
|
|
20750
|
-
return display
|
|
20728
|
+
return display?.length ? split ? /*#__PURE__*/ (0, $bZRJW$jsxs)("div", {
|
|
20751
20729
|
className: "rf-w-full rf-mt-4 rf-flex rf-flex-row rf-text-size-auto rf-text-white",
|
|
20752
20730
|
children: [
|
|
20753
20731
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
@@ -22048,7 +22026,7 @@ const $5cbd372c0b8373e3$var$ActionButton = ({ text: text, fullWidth: fullWidth,
|
|
|
22048
22026
|
className: "rf-relative rf-text-center rf-mx-8 rf-mt-2 rf-italic",
|
|
22049
22027
|
children: [
|
|
22050
22028
|
/*#__PURE__*/ (0, $bZRJW$jsx)((0, $aJKB3.default), {
|
|
22051
|
-
className:
|
|
22029
|
+
className: `rf-absolute rf-top-[0.125rem] ${isRTL ? 'rf-right-6' : '-rf-left-6'} rf-h-4`
|
|
22052
22030
|
}),
|
|
22053
22031
|
(0, $3hxrI.getTextToDisplayOnLink)({
|
|
22054
22032
|
translation: translation,
|
|
@@ -22098,7 +22076,7 @@ const $5cbd372c0b8373e3$var$ActionButton = ({ text: text, fullWidth: fullWidth,
|
|
|
22098
22076
|
})
|
|
22099
22077
|
}),
|
|
22100
22078
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
22101
|
-
className:
|
|
22079
|
+
className: `${isRTL ? 'rf-mr-4' : 'rf-ml-4'}`,
|
|
22102
22080
|
children: (0, $7pypd.capitalizeFirstLetter)(text, locale)
|
|
22103
22081
|
})
|
|
22104
22082
|
]
|
|
@@ -22106,7 +22084,7 @@ const $5cbd372c0b8373e3$var$ActionButton = ({ text: text, fullWidth: fullWidth,
|
|
|
22106
22084
|
className: `rf-relative ${currentSubView !== (0, $4ucVo.CurrentSubView).history ? clicked ? 'rf-card-button-clicked' : adaptiveStyle === (0, $bZRJW$ActionStyle).Positive ? 'rf-card-button-positive' : adaptiveStyle === (0, $bZRJW$ActionStyle).Destructive ? 'rf-card-button-destructive' : 'rf-card-button' : 'rf-card-button-history'} rf-mt-2 ${fullWidth ? 'rf-text-center' : 'rf-text-left'} ${style}`,
|
|
22107
22085
|
onClick: handleClick,
|
|
22108
22086
|
children: clicked && !urlToOpen ? /*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
22109
|
-
className: `rf-w-full rf-h-[1.25rem] large:rf-h-[1.3rem] rf-flex rf-justify-center rf-items-center ${fullWidth ? '' : '
|
|
22087
|
+
className: `rf-w-full rf-h-[1.25rem] large:rf-h-[1.3rem] rf-flex rf-justify-center rf-items-center ${fullWidth ? '' : isRTL ? 'rf-pr-6 large:rf-pr-12' : 'rf-pl-6 large:rf-pl-12'}`,
|
|
22110
22088
|
style: {
|
|
22111
22089
|
...animationColor
|
|
22112
22090
|
},
|
|
@@ -22427,7 +22405,6 @@ const $74b038ce1f8fa939$export$6108075486421829 = ()=>{
|
|
|
22427
22405
|
|
|
22428
22406
|
|
|
22429
22407
|
|
|
22430
|
-
|
|
22431
22408
|
var $1x02c = parcelRequire("1x02c");
|
|
22432
22409
|
|
|
22433
22410
|
var $aNpqK = parcelRequire("aNpqK");
|
|
@@ -22436,6 +22413,8 @@ var $9GPj7 = parcelRequire("9GPj7");
|
|
|
22436
22413
|
|
|
22437
22414
|
var $cT90l = parcelRequire("cT90l");
|
|
22438
22415
|
|
|
22416
|
+
var $4ucVo = parcelRequire("4ucVo");
|
|
22417
|
+
|
|
22439
22418
|
var $iT1WI = parcelRequire("iT1WI");
|
|
22440
22419
|
const $4551c1f557108aed$var$TelemetryContextDefaultValues = {
|
|
22441
22420
|
enabled: true,
|
|
@@ -22449,19 +22428,41 @@ function $4551c1f557108aed$export$a15d15518a3ec33d() {
|
|
|
22449
22428
|
}
|
|
22450
22429
|
function $4551c1f557108aed$export$bb3ea6dd2428edb6({ enabled: enabled, children: children }) {
|
|
22451
22430
|
const userId = (0, $aNpqK.useDirectlineStore)((state)=>state.userId);
|
|
22431
|
+
const conversationId = (0, $9GPj7.useActivityStore)((state)=>state.conversationId);
|
|
22452
22432
|
const addressData = (0, $1x02c.useRetorikStore)((state)=>state.addressData);
|
|
22453
22433
|
const lastActivity = (0, $9GPj7.useActivityStore)((state)=>state.lastActivity);
|
|
22454
22434
|
const botStreamingActivities = (0, $9GPj7.useActivityStore)((state)=>state.botStreamingActivities);
|
|
22455
|
-
const
|
|
22435
|
+
const lastUserActivityRef = (0, $bZRJW$useRef)(null);
|
|
22456
22436
|
const tracer = (0, $bZRJW$useMemo)(()=>{
|
|
22457
|
-
if (enabled && userId) {
|
|
22437
|
+
if (enabled && userId && conversationId) {
|
|
22458
22438
|
const exporter = new (0, $bZRJW$OTLPTraceExporter)({
|
|
22459
22439
|
url: (0, $cT90l.telemetryAddress),
|
|
22460
22440
|
headers: {},
|
|
22461
22441
|
concurrencyLimit: 1
|
|
22462
22442
|
});
|
|
22443
|
+
let serviceNamespace = '';
|
|
22444
|
+
switch(addressData.prefix){
|
|
22445
|
+
case 'dev':
|
|
22446
|
+
serviceNamespace = 'retorik-dev';
|
|
22447
|
+
break;
|
|
22448
|
+
case 'staging':
|
|
22449
|
+
case 'preview':
|
|
22450
|
+
serviceNamespace = 'retorik-preview';
|
|
22451
|
+
break;
|
|
22452
|
+
case 'experimental':
|
|
22453
|
+
serviceNamespace = 'retorik-experimental';
|
|
22454
|
+
break;
|
|
22455
|
+
default:
|
|
22456
|
+
serviceNamespace = 'retorik-prod';
|
|
22457
|
+
break;
|
|
22458
|
+
}
|
|
22459
|
+
// Create resource with custom parameters used globally in uptrace
|
|
22463
22460
|
const resource = (0, $bZRJW$defaultResource)().merge((0, $bZRJW$resourceFromAttributes)({
|
|
22464
|
-
[(0, $bZRJW$ATTR_SERVICE_NAME)]: 'retorik-framework'
|
|
22461
|
+
[(0, $bZRJW$ATTR_SERVICE_NAME)]: 'retorik-framework',
|
|
22462
|
+
['davi.retorik.activity.conversation.id']: conversationId,
|
|
22463
|
+
['service_namespace']: serviceNamespace,
|
|
22464
|
+
['retorik_framework_version']: (0, $iT1WI.version),
|
|
22465
|
+
['user_id']: userId
|
|
22465
22466
|
}));
|
|
22466
22467
|
const processor = new (0, $bZRJW$BatchSpanProcessor)(exporter);
|
|
22467
22468
|
const provider = new (0, $bZRJW$WebTracerProvider)({
|
|
@@ -22474,28 +22475,8 @@ function $4551c1f557108aed$export$bb3ea6dd2428edb6({ enabled: enabled, children:
|
|
|
22474
22475
|
// Add common attributes to each span for better tracing
|
|
22475
22476
|
(0, $bZRJW$registerInstrumentations)({
|
|
22476
22477
|
instrumentations: [
|
|
22477
|
-
new (0, $bZRJW$FetchInstrumentation)(
|
|
22478
|
-
|
|
22479
|
-
...getCommonAttributes(),
|
|
22480
|
-
user_id: userId
|
|
22481
|
-
})
|
|
22482
|
-
}),
|
|
22483
|
-
new (0, $bZRJW$DocumentLoadInstrumentation)({
|
|
22484
|
-
applyCustomAttributesOnSpan: {
|
|
22485
|
-
documentLoad: (span)=>span.setAttributes({
|
|
22486
|
-
...getCommonAttributes(),
|
|
22487
|
-
user_id: userId
|
|
22488
|
-
}),
|
|
22489
|
-
documentFetch: (span)=>span.setAttributes({
|
|
22490
|
-
...getCommonAttributes(),
|
|
22491
|
-
user_id: userId
|
|
22492
|
-
}),
|
|
22493
|
-
resourceFetch: (span)=>span.setAttributes({
|
|
22494
|
-
...getCommonAttributes(),
|
|
22495
|
-
user_id: userId
|
|
22496
|
-
})
|
|
22497
|
-
}
|
|
22498
|
-
})
|
|
22478
|
+
new (0, $bZRJW$FetchInstrumentation)(),
|
|
22479
|
+
new (0, $bZRJW$DocumentLoadInstrumentation)()
|
|
22499
22480
|
]
|
|
22500
22481
|
});
|
|
22501
22482
|
return (0, $bZRJW$opentelemetryapi).trace.getTracer('retorik-framework');
|
|
@@ -22503,7 +22484,10 @@ function $4551c1f557108aed$export$bb3ea6dd2428edb6({ enabled: enabled, children:
|
|
|
22503
22484
|
return undefined;
|
|
22504
22485
|
}, [
|
|
22505
22486
|
enabled,
|
|
22506
|
-
userId
|
|
22487
|
+
userId,
|
|
22488
|
+
conversationId,
|
|
22489
|
+
addressData,
|
|
22490
|
+
(0, $iT1WI.version)
|
|
22507
22491
|
]);
|
|
22508
22492
|
(0, $bZRJW$useEffect)(()=>{
|
|
22509
22493
|
if (lastActivity) lastActivity.from.role === 'user' ? handleUserActivity(lastActivity) : handleBotActivity(lastActivity);
|
|
@@ -22511,48 +22495,52 @@ function $4551c1f557108aed$export$bb3ea6dd2428edb6({ enabled: enabled, children:
|
|
|
22511
22495
|
lastActivity
|
|
22512
22496
|
]);
|
|
22513
22497
|
(0, $bZRJW$useEffect)(()=>{
|
|
22514
|
-
if (
|
|
22515
|
-
const temp = botStreamingActivities.get(
|
|
22498
|
+
if (lastUserActivityRef.current) {
|
|
22499
|
+
const temp = botStreamingActivities.get(lastUserActivityRef.current.id);
|
|
22516
22500
|
temp?.length === 1 && handleBotActivity(temp[0]);
|
|
22517
22501
|
}
|
|
22518
22502
|
}, [
|
|
22519
|
-
botStreamingActivities
|
|
22520
|
-
lastUserActivityData
|
|
22503
|
+
botStreamingActivities
|
|
22521
22504
|
]);
|
|
22522
|
-
const getCommonAttributes = ()=>{
|
|
22523
|
-
let tenant = '';
|
|
22524
|
-
if (addressData.tenant) tenant = addressData.prefix ? `${addressData.tenant} (${addressData.prefix})` : addressData.tenant;
|
|
22525
|
-
return {
|
|
22526
|
-
tenant: tenant,
|
|
22527
|
-
current_URL: window.location.toString(),
|
|
22528
|
-
os: `${0, $bZRJW$osName} ${0, $bZRJW$osVersion}`,
|
|
22529
|
-
browser: `${0, $bZRJW$browserName} ${0, $bZRJW$browserVersion}`,
|
|
22530
|
-
retorik_framework_version: (0, $iT1WI.version)
|
|
22531
|
-
};
|
|
22532
|
-
};
|
|
22533
22505
|
const handleUserActivity = (activity)=>{
|
|
22534
22506
|
// Only handle message activites and event activities waiting for an answer, nothing for typing ones
|
|
22535
|
-
if (activity.type === 'message' || activity.type === 'event' && !(0, $cT90l.nonResponseInducingEvents).find((eventName)=>activity.name?.toLowerCase().includes(eventName)))
|
|
22507
|
+
if (activity.type === 'message' || activity.type === 'event' && !(0, $cT90l.nonResponseInducingEvents).find((eventName)=>activity.name?.toLowerCase().includes(eventName))) lastUserActivityRef.current = {
|
|
22536
22508
|
id: activity.id,
|
|
22537
22509
|
time: Date.now()
|
|
22538
|
-
}
|
|
22510
|
+
};
|
|
22539
22511
|
};
|
|
22540
22512
|
const handleBotActivity = (activity)=>{
|
|
22541
22513
|
// Do nothing for bring-up messages and non-streaming events
|
|
22542
|
-
if (
|
|
22543
|
-
sendTrace(
|
|
22544
|
-
|
|
22514
|
+
if (lastUserActivityRef.current && (activity.type === 'message' || activity.name?.toLocaleLowerCase() === 'davi.streammessageactivity') && activity.label?.toLowerCase() !== 'davi.bringupmessage' && activity.replyToId === lastUserActivityRef.current.id) {
|
|
22515
|
+
sendTrace((0, $4ucVo.TraceType).message, {
|
|
22516
|
+
activityId: activity.id,
|
|
22517
|
+
userActivity: lastUserActivityRef.current
|
|
22518
|
+
});
|
|
22519
|
+
lastUserActivityRef.current = null;
|
|
22545
22520
|
}
|
|
22546
22521
|
};
|
|
22547
|
-
const sendTrace = (
|
|
22548
|
-
if (tracer) {
|
|
22549
|
-
const
|
|
22550
|
-
|
|
22551
|
-
}
|
|
22522
|
+
const sendTrace = (type, data)=>{
|
|
22523
|
+
if (tracer && type) {
|
|
22524
|
+
const parameters = data?.activityId ? {
|
|
22525
|
+
'davi.retorik.activity.id': data.activityId
|
|
22526
|
+
} : {};
|
|
22527
|
+
let startTime = 0;
|
|
22528
|
+
switch(type){
|
|
22529
|
+
case (0, $4ucVo.TraceType).message:
|
|
22530
|
+
if (data?.userActivity) startTime = data?.userActivity.time;
|
|
22531
|
+
break;
|
|
22532
|
+
case (0, $4ucVo.TraceType).utteranceStart:
|
|
22533
|
+
case (0, $4ucVo.TraceType).utteranceEnd:
|
|
22534
|
+
parameters.text = data?.text;
|
|
22535
|
+
break;
|
|
22536
|
+
}
|
|
22537
|
+
const span = tracer.startSpan(type, startTime ? {
|
|
22538
|
+
startTime: startTime
|
|
22539
|
+
} : undefined);
|
|
22552
22540
|
span.setStatus({
|
|
22553
22541
|
code: (0, $bZRJW$SpanStatusCode).OK
|
|
22554
22542
|
});
|
|
22555
|
-
span.setAttributes(
|
|
22543
|
+
span.setAttributes(parameters);
|
|
22556
22544
|
span.end();
|
|
22557
22545
|
}
|
|
22558
22546
|
};
|
|
@@ -22564,24 +22552,21 @@ function $4551c1f557108aed$export$bb3ea6dd2428edb6({ enabled: enabled, children:
|
|
|
22564
22552
|
code: (0, $bZRJW$SpanStatusCode).ERROR,
|
|
22565
22553
|
message: `${error.message}`
|
|
22566
22554
|
});
|
|
22567
|
-
span.setAttributes(getCommonAttributes());
|
|
22568
22555
|
span.end();
|
|
22569
22556
|
}
|
|
22570
22557
|
};
|
|
22571
22558
|
const value = (0, $bZRJW$useMemo)(()=>({
|
|
22572
22559
|
enabled: enabled,
|
|
22573
22560
|
tracer: tracer,
|
|
22574
|
-
|
|
22575
|
-
|
|
22561
|
+
sendTrace: sendTrace,
|
|
22562
|
+
sendErrorTrace: sendErrorTrace
|
|
22576
22563
|
}), [
|
|
22577
22564
|
enabled,
|
|
22578
22565
|
tracer
|
|
22579
22566
|
]);
|
|
22580
|
-
return /*#__PURE__*/ (0, $bZRJW$jsx)(
|
|
22581
|
-
|
|
22582
|
-
|
|
22583
|
-
children: children
|
|
22584
|
-
})
|
|
22567
|
+
return /*#__PURE__*/ (0, $bZRJW$jsx)($4551c1f557108aed$export$7b6b7bc4acb29126.Provider, {
|
|
22568
|
+
value: value,
|
|
22569
|
+
children: children
|
|
22585
22570
|
});
|
|
22586
22571
|
}
|
|
22587
22572
|
|
|
@@ -23561,7 +23546,7 @@ const $ede9b93aab85f374$var$UserRequest = ()=>{
|
|
|
23561
23546
|
]);
|
|
23562
23547
|
return /*#__PURE__*/ (0, $bZRJW$jsxs)("div", {
|
|
23563
23548
|
id: "retorik-userRequest",
|
|
23564
|
-
className: `rf-relative rf-z-util rf-h-full rf-w-3/5 landscape-retorik:rf-w-[calc(80%-10rem)] landscape-retorik:
|
|
23549
|
+
className: `rf-relative rf-z-util rf-h-full rf-w-3/5 landscape-retorik:rf-w-[calc(80%-10rem)] landscape-retorik:rf-ml-1/5 rf-py-4 large-vertical:rf-py-5 rf-flex rf-flex-col rf-justify-self-center rf-justify-end landscape-retorik:rf-justify-self-start
|
|
23565
23550
|
${mode === (0, $4ucVo.Mode).text && 'landscape-retorik:rf-justify-start'}
|
|
23566
23551
|
${mediumLandscape ? 'landscape-retorik:rf-col-start-3' : 'landscape-retorik:rf-col-start-4'} large-vertical:rf-col-start-1 rf-col-span-full rf-text-size-auto rf-text-trueblack`,
|
|
23567
23552
|
style: {
|
|
@@ -23635,7 +23620,7 @@ const $034b7f2bc7345b0f$var$UserRequest = ()=>{
|
|
|
23635
23620
|
]);
|
|
23636
23621
|
return /*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
23637
23622
|
id: "retorik-userRequest",
|
|
23638
|
-
className: `rf-relative rf-z-[5] rf-h-full rf-w-3/5 landscape-retorik:rf-w-[calc(80%-10rem)] landscape-retorik:
|
|
23623
|
+
className: `rf-relative rf-z-[5] rf-h-full rf-w-3/5 landscape-retorik:rf-w-[calc(80%-10rem)] landscape-retorik:rf-ml-1/5 rf-flex rf-flex-col rf-justify-self-center rf-justify-end landscape-retorik:rf-justify-self-start landscape-retorik:rf-justify-start
|
|
23639
23624
|
${mediumLandscape ? 'landscape-retorik:rf-col-start-3' : 'landscape-retorik:rf-col-start-4'} large-vertical:rf-col-start-1 rf-col-span-full rf-text-size-auto rf-text-trueblack`,
|
|
23640
23625
|
style: {
|
|
23641
23626
|
gridRow: `${gridRowStart} / span ${gridRowSpan}`,
|
|
@@ -23948,17 +23933,25 @@ var $f39384d6255fe275$export$2e2bcd8739ae039 = $f39384d6255fe275$var$BotResponse
|
|
|
23948
23933
|
|
|
23949
23934
|
|
|
23950
23935
|
|
|
23936
|
+
|
|
23937
|
+
var $1x02c = parcelRequire("1x02c");
|
|
23951
23938
|
parcelRequire("SZcIF");
|
|
23952
23939
|
var $jwPbX = parcelRequire("jwPbX");
|
|
23953
23940
|
const $3ff23eb3a82e4cf7$var$RetorikLogo = ()=>{
|
|
23954
|
-
|
|
23955
|
-
|
|
23941
|
+
const isUsedOnBorne = (0, $1x02c.useRetorikStore)((state)=>state.configuration.isUsedOnBorne);
|
|
23942
|
+
return isUsedOnBorne ? /*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
23943
|
+
className: "rf-hidden large:rf-block rf-relative rf-z-[1] ltr:rf-col-start-1 rtl:rf-col-end-1 rf-col-span-full rf-row-start-12 rf-row-span-1 ltr:rf-self-end rtl:rf-self-start rf-justify-self-start",
|
|
23944
|
+
children: /*#__PURE__*/ (0, $bZRJW$jsx)((0, $jwPbX.default), {
|
|
23945
|
+
className: "ltr:rf-ml-4 rtl:rf-mr-4 rf-mb-4 rf-h-14"
|
|
23946
|
+
})
|
|
23947
|
+
}) : /*#__PURE__*/ (0, $bZRJW$jsx)("a", {
|
|
23948
|
+
href: "https://davi.ai",
|
|
23956
23949
|
title: "Retorik by Davi",
|
|
23957
23950
|
target: "_blank",
|
|
23958
23951
|
rel: "noreferrer",
|
|
23959
|
-
className: "rf-hidden large:rf-block rf-relative rf-z-[1]
|
|
23952
|
+
className: "rf-hidden large:rf-block rf-relative rf-z-[1] rf-col-start-1 rf-col-span-full rf-row-start-12 rf-row-span-1 rf-self-end rf-justify-self-start",
|
|
23960
23953
|
children: /*#__PURE__*/ (0, $bZRJW$jsx)((0, $jwPbX.default), {
|
|
23961
|
-
className: "
|
|
23954
|
+
className: "rf-ml-4 rf-mb-4 rf-h-14"
|
|
23962
23955
|
})
|
|
23963
23956
|
});
|
|
23964
23957
|
};
|
|
@@ -24220,8 +24213,6 @@ var $1x02c = parcelRequire("1x02c");
|
|
|
24220
24213
|
|
|
24221
24214
|
var $9GPj7 = parcelRequire("9GPj7");
|
|
24222
24215
|
|
|
24223
|
-
var $i1rfm = parcelRequire("i1rfm");
|
|
24224
|
-
|
|
24225
24216
|
|
|
24226
24217
|
var $dklvz = parcelRequire("dklvz");
|
|
24227
24218
|
|
|
@@ -24233,6 +24224,8 @@ var $1LYTj = parcelRequire("1LYTj");
|
|
|
24233
24224
|
|
|
24234
24225
|
var $1Qww3 = parcelRequire("1Qww3");
|
|
24235
24226
|
|
|
24227
|
+
var $2fuDN = parcelRequire("2fuDN");
|
|
24228
|
+
|
|
24236
24229
|
var $4ucVo = parcelRequire("4ucVo");
|
|
24237
24230
|
|
|
24238
24231
|
var $dLlm9 = parcelRequire("dLlm9");
|
|
@@ -24240,6 +24233,7 @@ const $77050b56e8d1d908$var$interval = 45;
|
|
|
24240
24233
|
const $77050b56e8d1d908$var$splitRegex = new RegExp(/<[^<>]+>/g);
|
|
24241
24234
|
const $77050b56e8d1d908$var$TextBubble = ({ from: from, id: id, text: text, htmlText: htmlText, showWaitingDots: showWaitingDots, isWaitingDots: isWaitingDots, triggerScroll: triggerScroll, onEnded: onEnded, canBeEnded: canBeEnded, isEnded: isEnded })=>{
|
|
24242
24235
|
const isMobile = (0, $1Qww3.useViewStore)((state)=>state.isMobile);
|
|
24236
|
+
const isRTL = (0, $2fuDN.useLocaleStore)((state)=>state.isRTL);
|
|
24243
24237
|
const [currentHtmlText, setCurrentHtmlText] = (0, $bZRJW$useState)('');
|
|
24244
24238
|
const [ended, setEnded] = (0, $bZRJW$useState)(isEnded);
|
|
24245
24239
|
const intervalRef = (0, $bZRJW$useRef)(null);
|
|
@@ -24310,7 +24304,8 @@ const $77050b56e8d1d908$var$TextBubble = ({ from: from, id: id, text: text, html
|
|
|
24310
24304
|
};
|
|
24311
24305
|
return /*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
24312
24306
|
id: from === (0, $4ucVo.TextFrom).user ? `retorik-userQuestion-${id}` : `retorik-botResponse-${id}`,
|
|
24313
|
-
|
|
24307
|
+
dir: isRTL ? 'rtl' : 'ltr',
|
|
24308
|
+
className: `rf-w-fit rf-min-h-9 large-vertical:rf-min-h-10 rf-px-4 rf-py-2 rf-max-w-[75%] landscape-retorik:rf-max-w-[calc((80%-10rem)*0.75)] large-vertical:rf-max-w-[45%] ${isMobile && 'rf-mx-4'} ${isRTL ? from === (0, $4ucVo.TextFrom).bot ? 'landscape-retorik:rf-mr-40 large-vertical:rf-mr-1/5 rf-self-end rf-text-textModePanelConversationBot rf-bg-textModePanelBackgroundBot rf-border rf-border-textModePanelBackgroundBot rf-rounded-tl-4' : 'landscape-retorik:rf-ml-1/5 large-vertical:rf-ml-1/5 rf-text-textModePanelConversationUser rf-bg-textModePanelBackgroundUser rf-border rf-border-textModePanelBackgroundUser rf-rounded-tr-4' : from === (0, $4ucVo.TextFrom).user ? 'landscape-retorik:rf-mr-40 large-vertical:rf-mr-1/5 rf-self-end rf-text-textModePanelConversationUser rf-bg-textModePanelBackgroundUser rf-border rf-border-textModePanelBackgroundUser rf-rounded-tl-4' : 'landscape-retorik:rf-ml-1/5 large-vertical:rf-ml-1/5 rf-text-textModePanelConversationBot rf-bg-textModePanelBackgroundBot rf-border rf-border-textModePanelBackgroundBot rf-rounded-tr-4'} rf-rounded-b-4 rf-animate-slideBottom rf-flex rf-flex-col rf-text-size-auto rf-shadow-[0_3px_6px_#00000029]`,
|
|
24314
24309
|
children: isWaitingDots ? /*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
24315
24310
|
className: "rf-w-8 rf-loader-bouncing-bot"
|
|
24316
24311
|
}) : /*#__PURE__*/ (0, $bZRJW$jsxs)((0, $bZRJW$react).Fragment, {
|
|
@@ -24337,8 +24332,6 @@ const $ec519e4becb3ec60$var$DisplayStandard = ({ currentQuestionId: currentQuest
|
|
|
24337
24332
|
const endedActivities = (0, $9GPj7.useActivityStore)((state)=>state.endedActivities);
|
|
24338
24333
|
const watermark = (0, $9GPj7.useActivityStore)((state)=>state.watermark);
|
|
24339
24334
|
const forceMobileView = (0, $1x02c.useRetorikStore)((state)=>state.configuration.forceMobileView);
|
|
24340
|
-
const cancel = (0, $i1rfm.useSpeechStore)((state)=>state.cancel);
|
|
24341
|
-
const addEndedActivity = (0, $9GPj7.useActivityStore)((state)=>state.actions.addEndedActivity);
|
|
24342
24335
|
const [displayData, setDisplayData] = (0, $bZRJW$useState)([]);
|
|
24343
24336
|
const [currentDisplayDataIndex, setCurrentDisplayDataIndex] = (0, $bZRJW$useState)(0);
|
|
24344
24337
|
const [ended, setEnded] = (0, $bZRJW$useState)(!activities.length || endedActivities.includes(activities[activities.length - 1]?.id));
|
|
@@ -24353,7 +24346,7 @@ const $ec519e4becb3ec60$var$DisplayStandard = ({ currentQuestionId: currentQuest
|
|
|
24353
24346
|
]);
|
|
24354
24347
|
(0, $bZRJW$useEffect)(()=>{
|
|
24355
24348
|
if (isWaitingForResponse) {
|
|
24356
|
-
// Create temporary activity with the id of the
|
|
24349
|
+
// Create temporary activity with the id of the next one to prevent re-renders, in order to display waiting dots
|
|
24357
24350
|
const nextActivityId = `${currentQuestionId.slice(0, currentQuestionId.length - watermark.toString().length)}${watermark.toString()}`;
|
|
24358
24351
|
const tempActivity = {
|
|
24359
24352
|
id: nextActivityId,
|
|
@@ -24368,36 +24361,14 @@ const $ec519e4becb3ec60$var$DisplayStandard = ({ currentQuestionId: currentQuest
|
|
|
24368
24361
|
activity: tempActivity,
|
|
24369
24362
|
type: (0, $4ucVo.DisplayDataTypes).text,
|
|
24370
24363
|
isWaitingDots: true,
|
|
24371
|
-
canBeEnded: true
|
|
24364
|
+
canBeEnded: true,
|
|
24365
|
+
isEnded: false
|
|
24372
24366
|
}
|
|
24373
24367
|
]);
|
|
24374
24368
|
}
|
|
24375
24369
|
}, [
|
|
24376
24370
|
isWaitingForResponse
|
|
24377
24371
|
]);
|
|
24378
|
-
(0, $bZRJW$useEffect)(()=>{
|
|
24379
|
-
if (cancel) {
|
|
24380
|
-
activities.forEach((activity)=>{
|
|
24381
|
-
addEndedActivity(activity.id);
|
|
24382
|
-
});
|
|
24383
|
-
displayData.forEach((data)=>{
|
|
24384
|
-
addEndedActivity(data.activity.id);
|
|
24385
|
-
});
|
|
24386
|
-
}
|
|
24387
|
-
}, [
|
|
24388
|
-
cancel
|
|
24389
|
-
]);
|
|
24390
|
-
(0, $bZRJW$useEffect)(()=>{
|
|
24391
|
-
// End all current activities on component unmount
|
|
24392
|
-
return ()=>{
|
|
24393
|
-
activitiesRef.current.forEach((activity)=>{
|
|
24394
|
-
addEndedActivity(activity.id);
|
|
24395
|
-
});
|
|
24396
|
-
displayDataRef.current.forEach((data)=>{
|
|
24397
|
-
addEndedActivity(data.activity.id);
|
|
24398
|
-
});
|
|
24399
|
-
};
|
|
24400
|
-
}, []);
|
|
24401
24372
|
(0, $bZRJW$useEffect)(()=>{
|
|
24402
24373
|
activitiesRef.current = [
|
|
24403
24374
|
...activities
|
|
@@ -24409,7 +24380,7 @@ const $ec519e4becb3ec60$var$DisplayStandard = ({ currentQuestionId: currentQuest
|
|
|
24409
24380
|
let streamingTexts = [];
|
|
24410
24381
|
activities.forEach((activity, index)=>{
|
|
24411
24382
|
let splitTextDataToAdd = [];
|
|
24412
|
-
// Check the attachments, special case if this is the message activity after streaming : show attachments if the first streaming
|
|
24383
|
+
// Check the attachments, special case if this is the message activity after streaming : show attachments if the first streaming activity didn't have any
|
|
24413
24384
|
let attachments = [];
|
|
24414
24385
|
if (activity.attachments?.length) {
|
|
24415
24386
|
if (activity.name?.toLowerCase() === 'davi.streammessageactivity') {
|
|
@@ -24418,14 +24389,16 @@ const $ec519e4becb3ec60$var$DisplayStandard = ({ currentQuestionId: currentQuest
|
|
|
24418
24389
|
{
|
|
24419
24390
|
type: (0, $4ucVo.DisplayDataTypes).attachment,
|
|
24420
24391
|
activity: activity,
|
|
24421
|
-
canBeEnded: true
|
|
24392
|
+
canBeEnded: true,
|
|
24393
|
+
isEnded: true
|
|
24422
24394
|
}
|
|
24423
24395
|
];
|
|
24424
24396
|
} else if (!(activity.value?.streamingCount && streamingActivityHasAttachment) && !(0, $161354704eee0a17$export$7c55936a30618336)(activity)) attachments = [
|
|
24425
24397
|
{
|
|
24426
24398
|
type: (0, $4ucVo.DisplayDataTypes).attachment,
|
|
24427
24399
|
activity: activity,
|
|
24428
|
-
canBeEnded: true
|
|
24400
|
+
canBeEnded: true,
|
|
24401
|
+
isEnded: true
|
|
24429
24402
|
}
|
|
24430
24403
|
];
|
|
24431
24404
|
}
|
|
@@ -24443,14 +24416,20 @@ const $ec519e4becb3ec60$var$DisplayStandard = ({ currentQuestionId: currentQuest
|
|
|
24443
24416
|
...currentFirstStreamingActivity,
|
|
24444
24417
|
htmlText: (0, $dklvz.processMarkdownAndSpeechMarkdown)(streamingTexts.join(''), false).htmlText
|
|
24445
24418
|
},
|
|
24446
|
-
canBeEnded: false
|
|
24419
|
+
canBeEnded: false,
|
|
24420
|
+
isEnded: false
|
|
24447
24421
|
}
|
|
24448
24422
|
];
|
|
24449
24423
|
}
|
|
24450
24424
|
} else if (activity.value?.streamingCount) {
|
|
24451
24425
|
if (tempDisplayData.length) {
|
|
24452
24426
|
const lastStreamingIndex = tempDisplayData.findLastIndex((d)=>d.type === (0, $4ucVo.DisplayDataTypes).text);
|
|
24453
|
-
lastStreamingIndex !== -1
|
|
24427
|
+
if (lastStreamingIndex !== -1) {
|
|
24428
|
+
// Set canBeEnded for the previous streaming
|
|
24429
|
+
tempDisplayData[lastStreamingIndex].canBeEnded = true;
|
|
24430
|
+
// Set previous streaming ended if this activity is ended in speech synthesis
|
|
24431
|
+
tempDisplayData[lastStreamingIndex].isEnded = endedActivities.includes(activity.id);
|
|
24432
|
+
}
|
|
24454
24433
|
}
|
|
24455
24434
|
// Reset streaming data if the message containing all streaming data is received
|
|
24456
24435
|
currentFirstStreamingActivity = undefined;
|
|
@@ -24465,7 +24444,8 @@ const $ec519e4becb3ec60$var$DisplayStandard = ({ currentQuestionId: currentQuest
|
|
|
24465
24444
|
{
|
|
24466
24445
|
type: (0, $4ucVo.DisplayDataTypes).text,
|
|
24467
24446
|
activity: activity,
|
|
24468
|
-
canBeEnded: true
|
|
24447
|
+
canBeEnded: true,
|
|
24448
|
+
isEnded: endedActivities.includes(activity.id)
|
|
24469
24449
|
}
|
|
24470
24450
|
];
|
|
24471
24451
|
}
|
|
@@ -24487,7 +24467,8 @@ const $ec519e4becb3ec60$var$DisplayStandard = ({ currentQuestionId: currentQuest
|
|
|
24487
24467
|
}
|
|
24488
24468
|
}, [
|
|
24489
24469
|
currentQuestionId,
|
|
24490
|
-
activities.length
|
|
24470
|
+
activities.length,
|
|
24471
|
+
endedActivities
|
|
24491
24472
|
]);
|
|
24492
24473
|
(0, $bZRJW$useEffect)(()=>{
|
|
24493
24474
|
displayDataRef.current = [
|
|
@@ -24510,7 +24491,6 @@ const $ec519e4becb3ec60$var$DisplayStandard = ({ currentQuestionId: currentQuest
|
|
|
24510
24491
|
ended
|
|
24511
24492
|
]);
|
|
24512
24493
|
const handleEnded = ()=>{
|
|
24513
|
-
addEndedActivity(displayData[currentDisplayDataIndex]?.activity?.id);
|
|
24514
24494
|
setCurrentDisplayDataIndex((current)=>current + 1);
|
|
24515
24495
|
!ended && triggerScroll();
|
|
24516
24496
|
};
|
|
@@ -24531,7 +24511,7 @@ const $ec519e4becb3ec60$var$DisplayStandard = ({ currentQuestionId: currentQuest
|
|
|
24531
24511
|
triggerScroll: triggerScroll,
|
|
24532
24512
|
onEnded: handleEnded,
|
|
24533
24513
|
canBeEnded: data.canBeEnded,
|
|
24534
|
-
isEnded: data.
|
|
24514
|
+
isEnded: data.isEnded,
|
|
24535
24515
|
isWaitingDots: data.isWaitingDots
|
|
24536
24516
|
}, `${data.activity.id}-${key}`);
|
|
24537
24517
|
}
|
|
@@ -24696,7 +24676,7 @@ const $ea037f590a1926c2$var$ConversationPanelMobile = ({ activities: activities,
|
|
|
24696
24676
|
direction: scrollButtonDirection,
|
|
24697
24677
|
display: scrollButtonDisplay && open,
|
|
24698
24678
|
scrollHandler: scrollHandler,
|
|
24699
|
-
className: "rf-absolute rf-z-ui rf-bottom-8
|
|
24679
|
+
className: "rf-absolute rf-z-ui rf-bottom-8 rf-right-6 rf-w-9 rf-h-9 rf-cursor-pointer rf-bg-[#00000050] rf-p-[7px_12px] rf-rounded-[20px] rf-flex"
|
|
24700
24680
|
}),
|
|
24701
24681
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
24702
24682
|
className: "rf-h-max rf-w-full rf-py-4 rf-flex rf-flex-col rf-gap-3",
|
|
@@ -24998,6 +24978,8 @@ var $j67YK = parcelRequire("j67YK");
|
|
|
24998
24978
|
|
|
24999
24979
|
var $1x02c = parcelRequire("1x02c");
|
|
25000
24980
|
|
|
24981
|
+
var $2fuDN = parcelRequire("2fuDN");
|
|
24982
|
+
|
|
25001
24983
|
var $4ucVo = parcelRequire("4ucVo");
|
|
25002
24984
|
parcelRequire("28ved");
|
|
25003
24985
|
var $7urmy = parcelRequire("7urmy");
|
|
@@ -25087,7 +25069,7 @@ const $76dadedfb60aa8b2$var$Remote = ()=>{
|
|
|
25087
25069
|
const configuration = (0, $1x02c.useRetorikStore)((state)=>state.configuration);
|
|
25088
25070
|
return /*#__PURE__*/ (0, $bZRJW$jsxs)("div", {
|
|
25089
25071
|
id: "retorik-framework-remote",
|
|
25090
|
-
className: "rf-relative rf-w-full rf-pt-3 rf-pb-4 rf-flex rf-flex-col rf-items-center
|
|
25072
|
+
className: "rf-relative rf-w-full rf-pt-3 rf-pb-4 rf-flex rf-flex-col rf-items-center rf-rounded-l-lg rf-shadow-[0_3px_6px_#606267]",
|
|
25091
25073
|
style: {
|
|
25092
25074
|
background: 'linear-gradient(#F8F8FC, #EDEEF3)'
|
|
25093
25075
|
},
|
|
@@ -25115,6 +25097,7 @@ const $654a93a312eacdf8$var$RemoteContainer = ({ hideMenu: hideMenu = false })=>
|
|
|
25115
25097
|
const top = (0, $cR4Go.default)();
|
|
25116
25098
|
const menu = (0, $1x02c.useRetorikStore)((state)=>state.configuration.menu);
|
|
25117
25099
|
const dashboardOpened = (0, $j67YK.useUtilsStore)((state)=>state.dashboardOpened);
|
|
25100
|
+
const isRTL = (0, $2fuDN.useLocaleStore)((state)=>state.isRTL);
|
|
25118
25101
|
const { setCurrentSubView: setCurrentSubView, setDashboardOpened: setDashboardOpened, setClickedOnUI: setClickedOnUI } = (0, $j67YK.useUtilsStore)((state)=>state.actions);
|
|
25119
25102
|
/**
|
|
25120
25103
|
* On call :
|
|
@@ -25133,7 +25116,7 @@ const $654a93a312eacdf8$var$RemoteContainer = ({ hideMenu: hideMenu = false })=>
|
|
|
25133
25116
|
return /*#__PURE__*/ (0, $bZRJW$jsxs)((0, $bZRJW$react).Fragment, {
|
|
25134
25117
|
children: [
|
|
25135
25118
|
/*#__PURE__*/ (0, $bZRJW$jsxs)("div", {
|
|
25136
|
-
className:
|
|
25119
|
+
className: `rf-absolute rf-z-ui rf-hidden large:rf-flex rf-flex-col rf-items-center rf-justify-start rf-w-24 rf-right-0 ${isRTL ? 'rf-text-arabic' : 'rf-text-xsm'} rf-text-trueblack`,
|
|
25137
25120
|
style: {
|
|
25138
25121
|
top: top
|
|
25139
25122
|
},
|
|
@@ -25716,8 +25699,7 @@ const $52152cf5bb15b9c1$var$WarningBeforeNewsView = ()=>{
|
|
|
25716
25699
|
const sendEvent = (0, $aNpqK.useDirectlineStore)((state)=>state.actions.sendEvent);
|
|
25717
25700
|
const [waiting, setWaiting] = (0, $bZRJW$useState)(true);
|
|
25718
25701
|
const handleClick = (goHome)=>{
|
|
25719
|
-
sendEvent('Davi.CloseWindow', null);
|
|
25720
|
-
sendEvent('Davi.CloseWindowNewsSoundActivated', null);
|
|
25702
|
+
sendEvent('Davi.CloseWindow', null, ()=>sendEvent('Davi.CloseWindowNewsSoundActivated', null));
|
|
25721
25703
|
goHome ? setRoute((0, $4ucVo.Routes).Home) : setWaiting(false);
|
|
25722
25704
|
};
|
|
25723
25705
|
return waiting ? /*#__PURE__*/ (0, $bZRJW$jsxs)("div", {
|
|
@@ -25726,7 +25708,7 @@ const $52152cf5bb15b9c1$var$WarningBeforeNewsView = ()=>{
|
|
|
25726
25708
|
/*#__PURE__*/ (0, $bZRJW$jsx)((0, $3y61A.default), {
|
|
25727
25709
|
title: translation.common.back,
|
|
25728
25710
|
handleBack: ()=>handleClick(true),
|
|
25729
|
-
className: "rf-absolute rf-top-4
|
|
25711
|
+
className: "rf-absolute rf-top-4 rf-left-4 rf-text-size-auto"
|
|
25730
25712
|
}),
|
|
25731
25713
|
/*#__PURE__*/ (0, $bZRJW$jsx)("p", {
|
|
25732
25714
|
className: "rf-px-4 rf-text-center",
|
|
@@ -25793,8 +25775,6 @@ var $1x02c = parcelRequire("1x02c");
|
|
|
25793
25775
|
|
|
25794
25776
|
var $j67YK = parcelRequire("j67YK");
|
|
25795
25777
|
|
|
25796
|
-
var $2fuDN = parcelRequire("2fuDN");
|
|
25797
|
-
|
|
25798
25778
|
var $cU5vf = parcelRequire("cU5vf");
|
|
25799
25779
|
|
|
25800
25780
|
var $cQsYs = parcelRequire("cQsYs");
|
|
@@ -25826,7 +25806,6 @@ var $4c87d36187d1110a$export$2e2bcd8739ae039 = $4c87d36187d1110a$var$ModalFullsc
|
|
|
25826
25806
|
|
|
25827
25807
|
|
|
25828
25808
|
const $5370d50645935b25$var$Container = ({ fullSize: fullSize, width: width, height: height, children: children, parent: parent })=>{
|
|
25829
|
-
const isRTL = (0, $2fuDN.useLocaleStore)((state)=>state.isRTL);
|
|
25830
25809
|
const themeColors = (0, $1Qww3.useViewStore)((state)=>state.themeColors);
|
|
25831
25810
|
const currentDeviceType = (0, $1Qww3.useViewStore)((state)=>state.currentDeviceType);
|
|
25832
25811
|
const isTactile = (0, $1Qww3.useViewStore)((state)=>state.isTactile);
|
|
@@ -25995,8 +25974,7 @@ const $5370d50645935b25$var$Container = ({ fullSize: fullSize, width: width, hei
|
|
|
25995
25974
|
id: "retorik-container",
|
|
25996
25975
|
ref: container,
|
|
25997
25976
|
tabIndex: -1,
|
|
25998
|
-
|
|
25999
|
-
className: `rf-relative ${fullSize ? 'rf-w-screen rf-h-screen' : 'rf-w-full rf-h-full'} rf-max-w-screen rf-max-h-screen rf-grid rf-grid-cols-8 rf-grid-rows-container rf-bg-transparent rf-text-trueblack rf-font-default ${portrait} ${large} ${mobile} ${tablet} ${isTactile && 'rf-tactile'} ${isRTL ? 'rf-rtl' : 'rf-ltr'} rf-overflow-hidden rf-animate-loaderFadeIn`,
|
|
25977
|
+
className: `rf-relative ${fullSize ? 'rf-w-screen rf-h-screen' : 'rf-w-full rf-h-full'} rf-max-w-screen rf-max-h-screen rf-grid rf-grid-cols-8 rf-grid-rows-container rf-bg-transparent rf-text-trueblack rf-font-default ${portrait} ${large} ${mobile} ${tablet} ${isTactile && 'rf-tactile'} rf-overflow-hidden rf-animate-loaderFadeIn`,
|
|
26000
25978
|
style: {
|
|
26001
25979
|
...widthStyle,
|
|
26002
25980
|
...heightStyle,
|
|
@@ -26084,30 +26062,8 @@ var $1x02c = parcelRequire("1x02c");
|
|
|
26084
26062
|
|
|
26085
26063
|
var $aNpqK = parcelRequire("aNpqK");
|
|
26086
26064
|
|
|
26087
|
-
var $4ucVo = parcelRequire("4ucVo");
|
|
26088
|
-
/* Return codes:
|
|
26089
|
-
0 => do nothing
|
|
26090
|
-
1 => add to queue
|
|
26091
|
-
2 => stop current activity + change to the one tested
|
|
26092
|
-
*/ const $98181c365642ebbf$var$checkLastbotActivity = (lastbotActivity, currentPlaying, currentReplyToId, queuedActivities, endedActivities)=>{
|
|
26093
|
-
// Check if the activity is the one currently being played
|
|
26094
|
-
if (lastbotActivity.id === currentPlaying.id) return 0;
|
|
26095
|
-
// Check if the activity has already been ended
|
|
26096
|
-
if (endedActivities.includes(lastbotActivity.id)) return 0;
|
|
26097
|
-
// Check if the activity has the same replyToId than the one currently being played
|
|
26098
|
-
if (lastbotActivity.replyToId === currentReplyToId) {
|
|
26099
|
-
// Check if the activity is already in the queue
|
|
26100
|
-
let count = 0;
|
|
26101
|
-
if (queuedActivities.length > 0) queuedActivities.forEach((activity)=>{
|
|
26102
|
-
if (activity.id === lastbotActivity.id) count++;
|
|
26103
|
-
});
|
|
26104
|
-
if (count === 0) return 1;
|
|
26105
|
-
else return 0;
|
|
26106
|
-
} else return 2;
|
|
26107
|
-
};
|
|
26108
|
-
var $98181c365642ebbf$export$2e2bcd8739ae039 = $98181c365642ebbf$var$checkLastbotActivity;
|
|
26109
|
-
|
|
26110
26065
|
|
|
26066
|
+
var $4ucVo = parcelRequire("4ucVo");
|
|
26111
26067
|
|
|
26112
26068
|
|
|
26113
26069
|
|
|
@@ -26699,7 +26655,8 @@ const $637384b103093c58$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
|
|
|
26699
26655
|
const microphoneCloseAudioRef = (0, $bZRJW$useRef)(null);
|
|
26700
26656
|
const [DBReady, setDBReady] = (0, $bZRJW$useState)(false);
|
|
26701
26657
|
const [playingBlob, setPlayingBlob] = (0, $bZRJW$useState)(false);
|
|
26702
|
-
const
|
|
26658
|
+
const nextUtteranceDataRef = (0, $bZRJW$useRef)(null);
|
|
26659
|
+
const nextUtteranceTextRef = (0, $bZRJW$useRef)(null);
|
|
26703
26660
|
const nextUtteranceBoundariesRef = (0, $bZRJW$useRef)([]);
|
|
26704
26661
|
const nextUtteranceVisemesRef = (0, $bZRJW$useRef)([]);
|
|
26705
26662
|
const emptyTextUtteranceRef = (0, $bZRJW$useRef)(null);
|
|
@@ -26713,7 +26670,7 @@ const $637384b103093c58$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
|
|
|
26713
26670
|
const stopCurrentPlaying = ()=>{
|
|
26714
26671
|
if (appAvailable || loaderClosed) {
|
|
26715
26672
|
// Cancel synthesis if using synthesizer
|
|
26716
|
-
if (!playingBlob) ponyfill
|
|
26673
|
+
if (!playingBlob) ponyfill.speechSynthesis.cancel();
|
|
26717
26674
|
resetNextUtteranceData();
|
|
26718
26675
|
if (audioRef.current && !audioRef.current?.paused) {
|
|
26719
26676
|
audioRef.current.pause();
|
|
@@ -26723,7 +26680,7 @@ const $637384b103093c58$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
|
|
|
26723
26680
|
};
|
|
26724
26681
|
const attachEvents = (tempUtterance, isMainUtterance)=>{
|
|
26725
26682
|
tempUtterance.onerror = (event)=>{
|
|
26726
|
-
isMainUtterance ? handleError(event) :
|
|
26683
|
+
isMainUtterance ? handleError(event) : nextUtteranceDataRef.current = null;
|
|
26727
26684
|
};
|
|
26728
26685
|
tempUtterance.onsynthesiscompleted = ()=>{
|
|
26729
26686
|
const endBoundary = {
|
|
@@ -26774,7 +26731,6 @@ const $637384b103093c58$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
|
|
|
26774
26731
|
};
|
|
26775
26732
|
tempUtterance.onviseme = (event)=>{
|
|
26776
26733
|
if (isMainUtterance) {
|
|
26777
|
-
// Do nothing ATM
|
|
26778
26734
|
// Update the boundaryData state with the new data.
|
|
26779
26735
|
addViseme(event);
|
|
26780
26736
|
const tempVisemes = visemeRef?.current || [];
|
|
@@ -26790,29 +26746,33 @@ const $637384b103093c58$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
|
|
|
26790
26746
|
return tempUtterance;
|
|
26791
26747
|
};
|
|
26792
26748
|
const processNextData = (data)=>{
|
|
26793
|
-
|
|
26794
|
-
|
|
26795
|
-
|
|
26796
|
-
|
|
26797
|
-
|
|
26749
|
+
nextUtteranceDataRef.current = data?.byteLength && nextUtteranceTextRef.current ? {
|
|
26750
|
+
text: nextUtteranceTextRef.current,
|
|
26751
|
+
data: {
|
|
26752
|
+
speechData: data,
|
|
26753
|
+
boundaries: nextUtteranceBoundariesRef.current,
|
|
26754
|
+
visemes: nextUtteranceVisemesRef.current
|
|
26755
|
+
}
|
|
26756
|
+
} : null;
|
|
26798
26757
|
// Reset boundary / viseme data
|
|
26799
26758
|
resetNextUtteranceData(true);
|
|
26800
26759
|
};
|
|
26801
26760
|
const resetNextUtteranceData = (keepArrayBufferData)=>{
|
|
26802
|
-
!keepArrayBufferData &&
|
|
26761
|
+
!keepArrayBufferData && (nextUtteranceDataRef.current = null);
|
|
26762
|
+
nextUtteranceTextRef.current = null;
|
|
26803
26763
|
nextUtteranceBoundariesRef.current = [];
|
|
26804
26764
|
nextUtteranceVisemesRef.current = [];
|
|
26805
26765
|
};
|
|
26806
26766
|
(0, $bZRJW$useEffect)(()=>{
|
|
26807
26767
|
if (utterance) {
|
|
26808
26768
|
if (utterance.text) {
|
|
26809
|
-
if (
|
|
26810
|
-
if (
|
|
26811
|
-
boundaryRef.current =
|
|
26812
|
-
setBoundaryData(
|
|
26813
|
-
setVisemeData(
|
|
26814
|
-
processData(
|
|
26815
|
-
} else // Play utterance whether by asking for a speech synthesis, or by retrieving data
|
|
26769
|
+
if (audioRef?.current) {
|
|
26770
|
+
if (nextUtteranceDataRef.current?.text === utterance.text && nextUtteranceDataRef.current.data) {
|
|
26771
|
+
boundaryRef.current = nextUtteranceDataRef.current.data.boundaries;
|
|
26772
|
+
setBoundaryData(nextUtteranceDataRef.current.data.boundaries);
|
|
26773
|
+
setVisemeData(nextUtteranceDataRef.current.data.visemes);
|
|
26774
|
+
processData(nextUtteranceDataRef.current.data.speechData, true);
|
|
26775
|
+
} else // Play utterance whether by asking for a speech synthesis, or by retrieving data from indexedDB
|
|
26816
26776
|
playUtterance(attachEvents(utterance, true));
|
|
26817
26777
|
} else stopCurrentPlaying();
|
|
26818
26778
|
} else handleEmptyTextUtterance();
|
|
@@ -26821,8 +26781,10 @@ const $637384b103093c58$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
|
|
|
26821
26781
|
utterance
|
|
26822
26782
|
]);
|
|
26823
26783
|
(0, $bZRJW$useEffect)(()=>{
|
|
26824
|
-
|
|
26784
|
+
// If there are data in nextUtteranceTextRef, this means the previous synthesis data retrieval is not finished, so we don't begin a new one
|
|
26785
|
+
if (nextUtterance?.text && !nextUtteranceTextRef.current) {
|
|
26825
26786
|
const tempUtterance = attachEvents(nextUtterance);
|
|
26787
|
+
nextUtteranceTextRef.current = nextUtterance.text;
|
|
26826
26788
|
ponyfill.speechSynthesis.synthesizeAndGetArrayData(tempUtterance, processNextData);
|
|
26827
26789
|
} else resetNextUtteranceData();
|
|
26828
26790
|
}, [
|
|
@@ -26830,14 +26792,14 @@ const $637384b103093c58$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
|
|
|
26830
26792
|
]);
|
|
26831
26793
|
const playUtterance = async (utt)=>{
|
|
26832
26794
|
if (DBReady && enableSpeechCaching !== false && utt) {
|
|
26833
|
-
const dataFromIndexedDB = await $637384b103093c58$var$DBManager.getSpeechData(`${locale}.${voice?.name}.${utt.text.replace($637384b103093c58$var$tagsRemoverRegex, '')
|
|
26795
|
+
const dataFromIndexedDB = await $637384b103093c58$var$DBManager.getSpeechData(`${locale}.${voice?.name}.${utt.text.replace($637384b103093c58$var$tagsRemoverRegex, '')}`);
|
|
26834
26796
|
if (dataFromIndexedDB) {
|
|
26835
26797
|
boundaryRef.current = dataFromIndexedDB.boundaries;
|
|
26836
26798
|
setBoundaryData(dataFromIndexedDB.boundaries);
|
|
26837
26799
|
setVisemeData(dataFromIndexedDB.visemes || []);
|
|
26838
26800
|
processData(dataFromIndexedDB.value, true);
|
|
26839
|
-
} else ponyfill
|
|
26840
|
-
} else ponyfill
|
|
26801
|
+
} else ponyfill.speechSynthesis.synthesizeAndGetArrayData(utt, processData);
|
|
26802
|
+
} else ponyfill.speechSynthesis.synthesizeAndGetArrayData(utt, processData);
|
|
26841
26803
|
};
|
|
26842
26804
|
const processData = (data, alreadyExistsInDB)=>{
|
|
26843
26805
|
if (data?.byteLength) {
|
|
@@ -26847,7 +26809,7 @@ const $637384b103093c58$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
|
|
|
26847
26809
|
type: 'audio/mp3'
|
|
26848
26810
|
});
|
|
26849
26811
|
enableSpeechCaching !== false && !alreadyExistsInDB && DBReady && boundaryRef?.current && utterance && $637384b103093c58$var$DBManager.addSpeechData({
|
|
26850
|
-
id: `${locale}.${voice?.name}.${utterance.text.replace($637384b103093c58$var$tagsRemoverRegex, '')
|
|
26812
|
+
id: `${locale}.${voice?.name}.${utterance.text.replace($637384b103093c58$var$tagsRemoverRegex, '')}`,
|
|
26851
26813
|
value: data,
|
|
26852
26814
|
boundaries: boundaryRef.current,
|
|
26853
26815
|
visemes: visemeRef.current || []
|
|
@@ -26872,13 +26834,13 @@ const $637384b103093c58$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
|
|
|
26872
26834
|
};
|
|
26873
26835
|
const handleEnd = ()=>{
|
|
26874
26836
|
if (appAvailable || loaderClosed) {
|
|
26875
|
-
onEnd
|
|
26837
|
+
onEnd?.();
|
|
26876
26838
|
resetData();
|
|
26877
26839
|
} else setLoaderClosed(true);
|
|
26878
26840
|
};
|
|
26879
26841
|
const handleError = (error)=>{
|
|
26880
|
-
console.log('
|
|
26881
|
-
onError
|
|
26842
|
+
console.log('Retorik Framework > speech synthesis error ', error);
|
|
26843
|
+
onError?.();
|
|
26882
26844
|
resetData();
|
|
26883
26845
|
};
|
|
26884
26846
|
const handleEmptyTextUtterance = ()=>{
|
|
@@ -26893,7 +26855,7 @@ const $637384b103093c58$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
|
|
|
26893
26855
|
* - play 1 second muted sound to prime audio output
|
|
26894
26856
|
* - MANDATORY FOR SAFARI IN VOCAL MODE
|
|
26895
26857
|
*/ const primeRetorikSpeech = ()=>{
|
|
26896
|
-
if (
|
|
26858
|
+
if (audioRef.current) {
|
|
26897
26859
|
audioRef.current.play().catch((e)=>console.warn(e));
|
|
26898
26860
|
speechRecognitionAudioRef?.current && speechRecognitionAudioRef.current.play().catch((e)=>console.warn(e));
|
|
26899
26861
|
// Send animation start event to secure animation not playing on safari if permissions are not sufficient
|
|
@@ -26903,13 +26865,6 @@ const $637384b103093c58$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
|
|
|
26903
26865
|
/**
|
|
26904
26866
|
* Play sound on speech recognition activation if it isn't disabled in configuration
|
|
26905
26867
|
*/ (0, $bZRJW$useEffect)(()=>{
|
|
26906
|
-
// if (
|
|
26907
|
-
// !!speechRecognitionOptions?.enableActivationSound &&
|
|
26908
|
-
// activeRecognitionState === RecognitionState.Listening
|
|
26909
|
-
// ) {
|
|
26910
|
-
// speechRecognitionAudioRef?.current &&
|
|
26911
|
-
// speechRecognitionAudioRef.current.play().catch((e) => console.warn(e))
|
|
26912
|
-
// }
|
|
26913
26868
|
if (useOldRemote) {
|
|
26914
26869
|
if (!!speechRecognitionOptions?.enableActivationSound && activeRecognitionState === (0, $4ucVo.RecognitionState).Listening) speechRecognitionAudioRef?.current?.play().catch((e)=>console.warn(e));
|
|
26915
26870
|
} else if (!!speechRecognitionOptions?.enableActivationSound) switch(activeRecognitionState){
|
|
@@ -26966,11 +26921,7 @@ var $637384b103093c58$export$2e2bcd8739ae039 = $637384b103093c58$var$RetorikSpee
|
|
|
26966
26921
|
|
|
26967
26922
|
const $0b8e5d756ffed1ac$var$SynthesisManager = ({ ponyfill: ponyfill, isRetorikNews: isRetorikNews })=>{
|
|
26968
26923
|
const cancel = (0, $i1rfm.useSpeechStore)((state)=>state.cancel);
|
|
26969
|
-
const streamingReplyToId = (0, $i1rfm.useSpeechStore)((state)=>state.streamingReplyToId);
|
|
26970
26924
|
const streamingQueue = (0, $i1rfm.useSpeechStore)((state)=>state.streamingQueue);
|
|
26971
|
-
const currentPlaying = (0, $i1rfm.useSpeechStore)((state)=>state.currentPlaying);
|
|
26972
|
-
const currentReplyToId = (0, $i1rfm.useSpeechStore)((state)=>state.currentReplyToId);
|
|
26973
|
-
const endedActivities = (0, $i1rfm.useSpeechStore)((state)=>state.endedActivities);
|
|
26974
26925
|
const voice = (0, $i1rfm.useSpeechStore)((state)=>state.voice);
|
|
26975
26926
|
const customVoice = (0, $i1rfm.useSpeechStore)((state)=>state.customVoice);
|
|
26976
26927
|
const activeRecognitionState = (0, $i1rfm.useSpeechStore)((state)=>state.activeRecognitionState);
|
|
@@ -26983,24 +26934,18 @@ const $0b8e5d756ffed1ac$var$SynthesisManager = ({ ponyfill: ponyfill, isRetorikN
|
|
|
26983
26934
|
const appAvailable = (0, $1x02c.useRetorikStore)((state)=>state.appAvailable);
|
|
26984
26935
|
const preventExpectedInputHint = (0, $1x02c.useRetorikStore)((state)=>state.configuration.preventExpectedInputHint);
|
|
26985
26936
|
const speechSynthesisOptions = (0, $1x02c.useRetorikStore)((state)=>state.configuration.speechSynthesisOptions);
|
|
26986
|
-
const currentNewsActivity = (0, $j67YK.useUtilsStore)((state)=>state.currentNewsActivity);
|
|
26987
|
-
const lastBotActivity = (0, $9GPj7.useActivityStore)((state)=>state.lastBotMessageActivity);
|
|
26988
26937
|
const checkReplacementLocale = (0, $2fuDN.useLocaleStore)((state)=>state.actions.checkReplacementLocale);
|
|
26989
26938
|
const setRetorikNewsEnded = (0, $j67YK.useUtilsStore)((state)=>state.actions.setRetorikNewsEnded);
|
|
26990
|
-
const { resetCancelCurrentUtterance: resetCancelCurrentUtterance, setSpeaking: setSpeaking,
|
|
26939
|
+
const { setCurrentOrLastPlayedActivity: setCurrentOrLastPlayedActivity, resetCancelCurrentUtterance: resetCancelCurrentUtterance, setSpeaking: setSpeaking, setBoundaryData: setBoundaryData, removeFirstFromStreamingQueue: removeFirstFromStreamingQueue, killCurrentStreaming: killCurrentStreaming, askPermission: askPermission, toggleMicrophone: toggleMicrophone } = (0, $i1rfm.useSpeechStore)((state)=>state.actions);
|
|
26991
26940
|
const addEndedActivity = (0, $9GPj7.useActivityStore)((state)=>state.actions.addEndedActivity);
|
|
26992
26941
|
const dispatchMarkActivity = (0, $aNpqK.useDirectlineStore)((state)=>state.actions.dispatchMarkActivity);
|
|
26942
|
+
const sendTrace = (0, $4551c1f557108aed$export$a15d15518a3ec33d)().sendTrace;
|
|
26993
26943
|
const [utterance, setUtterance] = (0, $bZRJW$useState)(null);
|
|
26994
26944
|
const [nextUtterance, setNextUtterance] = (0, $bZRJW$useState)(null);
|
|
26995
|
-
const cancelRef = (0, $bZRJW$useRef)(false);
|
|
26996
|
-
const isSpeaking = (0, $bZRJW$useRef)(false);
|
|
26997
26945
|
const isNewsViewRef = (0, $bZRJW$useRef)(!!isRetorikNews);
|
|
26998
26946
|
const lastListTextPlayedRef = (0, $bZRJW$useRef)('');
|
|
26999
|
-
const
|
|
26947
|
+
const streamingQueueRef = (0, $bZRJW$useRef)([]);
|
|
27000
26948
|
const currentActivityRef = (0, $bZRJW$useRef)(null);
|
|
27001
|
-
const currentPlayingRef = (0, $bZRJW$useRef)(null);
|
|
27002
|
-
const tempCurrentStreamingRef = (0, $bZRJW$useRef)(null);
|
|
27003
|
-
const streamingRelatedMessageRef = (0, $bZRJW$useRef)(null);
|
|
27004
26949
|
/**
|
|
27005
26950
|
* Check activity locale in case of voice change during the speech, to keep the language defined in activity
|
|
27006
26951
|
* instead of switching languages between answers that are written in the same language
|
|
@@ -27027,17 +26972,20 @@ const $0b8e5d756ffed1ac$var$SynthesisManager = ({ ponyfill: ponyfill, isRetorikN
|
|
|
27027
26972
|
return (0, $66dccbb634d6ce27$export$f969af62bba9a48b)(params, speechSynthesisOptions?.sayAs);
|
|
27028
26973
|
};
|
|
27029
26974
|
const resetData = ()=>{
|
|
27030
|
-
|
|
27031
|
-
|
|
27032
|
-
|
|
27033
|
-
|
|
27034
|
-
|
|
26975
|
+
// Set all activities currently in the queue as ended
|
|
26976
|
+
streamingQueueRef.current?.forEach((activity)=>{
|
|
26977
|
+
addEndedActivity(activity.id);
|
|
26978
|
+
});
|
|
26979
|
+
streamingQueueRef.current = [];
|
|
26980
|
+
killCurrentStreaming();
|
|
26981
|
+
currentActivityRef.current = null;
|
|
27035
26982
|
setUtterance(null);
|
|
27036
26983
|
setNextUtterance(null);
|
|
27037
26984
|
resetCancelCurrentUtterance();
|
|
26985
|
+
setSpeaking(false);
|
|
26986
|
+
setBoundaryData([]);
|
|
27038
26987
|
};
|
|
27039
|
-
const checkReplacementLocaleAndGetUtterance = (activity, checkReplacement = true
|
|
27040
|
-
setCurrent && (currentActivityRef.current = activity);
|
|
26988
|
+
const checkReplacementLocaleAndGetUtterance = (activity, checkReplacement = true)=>{
|
|
27041
26989
|
const replacementLocale = checkReplacement ? checkReplacementLocale(activity.locale || locale) : locale;
|
|
27042
26990
|
const params = {
|
|
27043
26991
|
activity: activity,
|
|
@@ -27046,172 +26994,39 @@ const $0b8e5d756ffed1ac$var$SynthesisManager = ({ ponyfill: ponyfill, isRetorikN
|
|
|
27046
26994
|
};
|
|
27047
26995
|
return checkActivityAndCreateUtterance(params);
|
|
27048
26996
|
};
|
|
27049
|
-
|
|
26997
|
+
/**
|
|
26998
|
+
* Check if the microphone can be opened automatically
|
|
26999
|
+
*/ const checkDictateState = ()=>{
|
|
27050
27000
|
if (!preventExpectedInputHint && mode === (0, $4ucVo.Mode).vocal && activeRecognitionState === (0, $4ucVo.RecognitionState).Closed) {
|
|
27051
27001
|
if (!isMicrophoneAllowed) askPermission();
|
|
27052
27002
|
else toggleMicrophone(true);
|
|
27053
27003
|
}
|
|
27054
27004
|
};
|
|
27055
|
-
(0, $bZRJW$useEffect)(()=>{
|
|
27056
|
-
if (isNewsViewRef.current) {
|
|
27057
|
-
if (currentNewsActivity) {
|
|
27058
|
-
setUtterance(checkReplacementLocaleAndGetUtterance(currentNewsActivity));
|
|
27059
|
-
isSpeaking.current = true;
|
|
27060
|
-
} else {
|
|
27061
|
-
setUtterance(null);
|
|
27062
|
-
isSpeaking.current = false;
|
|
27063
|
-
}
|
|
27064
|
-
}
|
|
27065
|
-
}, [
|
|
27066
|
-
currentNewsActivity,
|
|
27067
|
-
ponyfill
|
|
27068
|
-
]);
|
|
27069
27005
|
/**
|
|
27070
|
-
* On
|
|
27071
|
-
* - when we toggle from a view to another, we reset the data related to speech
|
|
27006
|
+
* On route change, reset all data and check if we are on the news view
|
|
27072
27007
|
*/ (0, $bZRJW$useEffect)(()=>{
|
|
27073
|
-
setSpeaking(false);
|
|
27074
|
-
setBoundaryData([]);
|
|
27075
|
-
const ended = [
|
|
27076
|
-
...endedActivities
|
|
27077
|
-
];
|
|
27078
|
-
if (currentPlaying) {
|
|
27079
|
-
// Add played activity id to context's endedActivities
|
|
27080
|
-
ended.length > 10 && ended.splice(0, 1);
|
|
27081
|
-
if (currentPlaying.id) {
|
|
27082
|
-
ended.push(currentPlaying.id);
|
|
27083
|
-
addEndedActivity(currentPlaying.id);
|
|
27084
|
-
}
|
|
27085
|
-
setEndedActivities(ended);
|
|
27086
|
-
}
|
|
27087
|
-
setCurrentPlaying(undefined);
|
|
27088
27008
|
resetData();
|
|
27089
27009
|
if (!isRetorikNews) isNewsViewRef.current = route === (0, $4ucVo.Routes).News;
|
|
27090
27010
|
}, [
|
|
27091
27011
|
route
|
|
27092
27012
|
]);
|
|
27093
27013
|
/**
|
|
27094
|
-
* On
|
|
27095
|
-
* - appAvailable is set to true after the user interacted with the loader and every needed element is loaded
|
|
27096
|
-
* - no utterance is created while appAvailable isn't true
|
|
27097
|
-
* - if during the waiting time, some activities were queued, when appAvailable comes to true, let's begin creating the utterances and playing them
|
|
27014
|
+
* On cancel call, reset all data and kill current streaming
|
|
27098
27015
|
*/ (0, $bZRJW$useEffect)(()=>{
|
|
27099
|
-
|
|
27100
|
-
setUtterance(checkReplacementLocaleAndGetUtterance(queuedActivitiesRef.current[0]));
|
|
27101
|
-
queuedActivitiesRef.current.splice(0, 1);
|
|
27102
|
-
isSpeaking.current = true;
|
|
27103
|
-
}
|
|
27104
|
-
}, [
|
|
27105
|
-
appAvailable
|
|
27106
|
-
]);
|
|
27107
|
-
/**
|
|
27108
|
-
* On speechCancelStore's cancel state change :
|
|
27109
|
-
* - if there is currently no utterance being played, reset cancel state to false
|
|
27110
|
-
* - if an utterance is being played, set it to null to stop playing and prevent data in queue from being played
|
|
27111
|
-
* - setting an utterance to null will trigger the handleUtteranceEnded method automatically
|
|
27112
|
-
*/ (0, $bZRJW$useEffect)(()=>{
|
|
27113
|
-
cancelRef.current = cancel;
|
|
27114
|
-
if (cancel) {
|
|
27115
|
-
utterance ? setUtterance(null) : resetCancelCurrentUtterance();
|
|
27116
|
-
isSpeaking.current = false;
|
|
27117
|
-
setNextUtterance(null);
|
|
27118
|
-
killCurrentStreaming();
|
|
27119
|
-
}
|
|
27016
|
+
cancel && resetData();
|
|
27120
27017
|
}, [
|
|
27121
27018
|
cancel
|
|
27122
27019
|
]);
|
|
27123
27020
|
/**
|
|
27124
|
-
*
|
|
27125
|
-
* - if the activity doesn't have a replyToId value, put it in the queue (used for reminder process)
|
|
27126
|
-
* - if the app is not available yet, put the activity in the queue if it is not yet inside
|
|
27127
|
-
* - NB: an activity can be received once from the directline, but can be found several times in the activities in the botframework
|
|
27128
|
-
* this is because it is processed multiple times if there is something to speak (channelDate empty, then channelData with {speak: true})
|
|
27129
|
-
* - if an utterance is being played, process the new one (do nothing / put it in the queue / stop the current one and play the new one)
|
|
27130
|
-
* - if an utterance has to be created, create it and set the utterance state
|
|
27021
|
+
* Play external speech immediately but don't add it to the history
|
|
27131
27022
|
*/ (0, $bZRJW$useEffect)(()=>{
|
|
27132
|
-
if (voice && lastBotActivity?.id) {
|
|
27133
|
-
let createNewUtterance = false;
|
|
27134
|
-
if (!lastBotActivity.replyToId) {
|
|
27135
|
-
if (isNewsViewRef.current) ;
|
|
27136
|
-
else if (currentPlaying || queuedActivitiesRef.current?.length) queuedActivitiesRef.current = [
|
|
27137
|
-
...queuedActivitiesRef.current,
|
|
27138
|
-
lastBotActivity
|
|
27139
|
-
];
|
|
27140
|
-
else if (endedActivities.length === 0 || endedActivities[endedActivities.length - 1] !== lastBotActivity.id) createNewUtterance = true;
|
|
27141
|
-
} else if (lastBotActivity.replyToId === streamingReplyToId) {
|
|
27142
|
-
if (lastBotActivity.value?.streamingId) {
|
|
27143
|
-
setCurrentPlaying(lastBotActivity);
|
|
27144
|
-
currentPlayingRef.current = lastBotActivity;
|
|
27145
|
-
// Keep the message related to playing streaming activities to deal with when streaming is ended
|
|
27146
|
-
streamingRelatedMessageRef.current = lastBotActivity;
|
|
27147
|
-
} else queuedActivitiesRef.current = [
|
|
27148
|
-
...queuedActivitiesRef.current,
|
|
27149
|
-
lastBotActivity
|
|
27150
|
-
];
|
|
27151
|
-
} else if (!appAvailable) {
|
|
27152
|
-
if (!currentReplyToId) {
|
|
27153
|
-
setCurrentReplyToId(lastBotActivity.replyToId);
|
|
27154
|
-
queuedActivitiesRef.current = [
|
|
27155
|
-
lastBotActivity
|
|
27156
|
-
];
|
|
27157
|
-
} else {
|
|
27158
|
-
if (currentReplyToId === lastBotActivity.replyToId) {
|
|
27159
|
-
if (!queuedActivitiesRef.current?.find((act)=>act.id === lastBotActivity.id)) queuedActivitiesRef.current = [
|
|
27160
|
-
...queuedActivitiesRef.current,
|
|
27161
|
-
lastBotActivity
|
|
27162
|
-
];
|
|
27163
|
-
} else {
|
|
27164
|
-
setCurrentReplyToId(lastBotActivity.replyToId);
|
|
27165
|
-
queuedActivitiesRef.current = [
|
|
27166
|
-
lastBotActivity
|
|
27167
|
-
];
|
|
27168
|
-
}
|
|
27169
|
-
}
|
|
27170
|
-
} else if (currentActivityRef?.current) switch((0, $98181c365642ebbf$export$2e2bcd8739ae039)(lastBotActivity, currentActivityRef.current, currentReplyToId, queuedActivitiesRef.current, endedActivities)){
|
|
27171
|
-
case 0:
|
|
27172
|
-
break;
|
|
27173
|
-
case 1:
|
|
27174
|
-
// Add the activity to the queue
|
|
27175
|
-
queuedActivitiesRef.current.push(lastBotActivity);
|
|
27176
|
-
break;
|
|
27177
|
-
case 2:
|
|
27178
|
-
// Stop current activity and play the new one
|
|
27179
|
-
queuedActivitiesRef.current = [];
|
|
27180
|
-
createNewUtterance = true;
|
|
27181
|
-
break;
|
|
27182
|
-
}
|
|
27183
|
-
else createNewUtterance = !endedActivities.includes(lastBotActivity.id);
|
|
27184
|
-
if (createNewUtterance) {
|
|
27185
|
-
setCurrentReplyToId(lastBotActivity.replyToId || 'customReplyToIdIfNotPresent');
|
|
27186
|
-
setUtterance(checkReplacementLocaleAndGetUtterance(lastBotActivity));
|
|
27187
|
-
isSpeaking.current = true;
|
|
27188
|
-
}
|
|
27189
|
-
}
|
|
27190
|
-
}, [
|
|
27191
|
-
lastBotActivity,
|
|
27192
|
-
ponyfill,
|
|
27193
|
-
voice
|
|
27194
|
-
]);
|
|
27195
|
-
(0, $bZRJW$useEffect)(()=>{
|
|
27196
|
-
if (streamingReplyToId && streamingQueue.length) {
|
|
27197
|
-
setUtterance(checkReplacementLocaleAndGetUtterance(streamingQueue[0], false, false));
|
|
27198
|
-
isSpeaking.current = true;
|
|
27199
|
-
setCurrentPlaying(undefined);
|
|
27200
|
-
currentPlayingRef.current = null;
|
|
27201
|
-
currentActivityRef.current = null;
|
|
27202
|
-
tempCurrentStreamingRef.current = streamingQueue[0].text || null;
|
|
27203
|
-
removeFirstFromStreamingQueue();
|
|
27204
|
-
}
|
|
27205
|
-
}, [
|
|
27206
|
-
streamingReplyToId
|
|
27207
|
-
]);
|
|
27208
|
-
(0, $bZRJW$useEffect)(()=>{
|
|
27209
27023
|
if (externalTextToSpeech) {
|
|
27210
|
-
|
|
27024
|
+
const activity = {
|
|
27211
27025
|
speak: externalTextToSpeech,
|
|
27212
27026
|
locale: locale
|
|
27213
|
-
}
|
|
27214
|
-
|
|
27027
|
+
};
|
|
27028
|
+
currentActivityRef.current = activity;
|
|
27029
|
+
setUtterance(checkReplacementLocaleAndGetUtterance(activity, false));
|
|
27215
27030
|
}
|
|
27216
27031
|
}, [
|
|
27217
27032
|
externalTextToSpeech
|
|
@@ -27221,92 +27036,82 @@ const $0b8e5d756ffed1ac$var$SynthesisManager = ({ ponyfill: ponyfill, isRetorikN
|
|
|
27221
27036
|
document.dispatchEvent(speechEvent);
|
|
27222
27037
|
};
|
|
27223
27038
|
/**
|
|
27224
|
-
*
|
|
27225
|
-
* - set speaking state to true
|
|
27226
|
-
* - clear timerref timeout
|
|
27227
|
-
* - set currentPlaying and currentReplyToId states after a small delay to prevent make sure that the display will happen after the speech has begun
|
|
27039
|
+
* Called when utterance's "start" event is fired
|
|
27228
27040
|
*/ const handleUtteranceStart = ()=>{
|
|
27041
|
+
sendTrace((0, $4ucVo.TraceType).utteranceStart, {
|
|
27042
|
+
activityId: currentActivityRef.current?.id,
|
|
27043
|
+
text: currentActivityRef.current?.speak || currentActivityRef.current?.text
|
|
27044
|
+
});
|
|
27229
27045
|
setSpeaking(true);
|
|
27230
27046
|
if (!isNewsViewRef.current && currentActivityRef?.current) {
|
|
27231
|
-
|
|
27232
|
-
currentPlayingRef.current = currentActivityRef.current;
|
|
27047
|
+
setCurrentOrLastPlayedActivity(currentActivityRef.current);
|
|
27233
27048
|
currentActivityRef.current.id && dispatchMarkActivity(currentActivityRef.current.id, true);
|
|
27234
27049
|
}
|
|
27235
27050
|
dispatchSpeechEvent(true);
|
|
27236
27051
|
// Set next utterance to prepare synthesis data in order to improve fluidity
|
|
27237
|
-
if (
|
|
27238
|
-
const
|
|
27239
|
-
|
|
27240
|
-
const tempUtterance = checkReplacementLocaleAndGetUtterance(streamingQueue[0], false, false);
|
|
27241
|
-
tempUtterance.text !== nextUtterance?.text ? setNextUtterance(tempUtterance) : setNextUtterance(null);
|
|
27242
|
-
} else setNextUtterance(null);
|
|
27052
|
+
if (streamingQueueRef.current.length && !streamingQueueRef.current[0].value?.streamingCount) {
|
|
27053
|
+
const utt = checkReplacementLocaleAndGetUtterance(streamingQueueRef.current[0], false);
|
|
27054
|
+
setNextUtterance((current)=>utt.text === current?.text ? null : utt);
|
|
27243
27055
|
} else setNextUtterance(null);
|
|
27244
|
-
setCurrentStreaming(tempCurrentStreamingRef?.current);
|
|
27245
27056
|
};
|
|
27246
|
-
|
|
27057
|
+
/**
|
|
27058
|
+
* Called when utterance's "end" event is fired
|
|
27059
|
+
*/ const handleUtteranceEnd = ()=>{
|
|
27060
|
+
sendTrace((0, $4ucVo.TraceType).utteranceEnd, {
|
|
27061
|
+
activityId: currentActivityRef.current?.id
|
|
27062
|
+
});
|
|
27247
27063
|
setSpeaking(false);
|
|
27248
27064
|
dispatchSpeechEvent(false);
|
|
27249
|
-
if (isNewsViewRef.current)
|
|
27250
|
-
|
|
27251
|
-
|
|
27065
|
+
if (isNewsViewRef.current) {
|
|
27066
|
+
setRetorikNewsEnded(true);
|
|
27067
|
+
currentActivityRef.current = null;
|
|
27068
|
+
} else handleEnded();
|
|
27252
27069
|
};
|
|
27253
|
-
|
|
27254
|
-
|
|
27255
|
-
|
|
27256
|
-
|
|
27257
|
-
|
|
27258
|
-
* - if this was the last activity of the queue, check if the microphone has to be opened automatically (inputHint = expectingInput)
|
|
27259
|
-
*/ const handleEnded = ()=>{
|
|
27260
|
-
let futureUtterance = null;
|
|
27261
|
-
if (currentPlayingRef?.current) // Add played activity id to context's endedActivities
|
|
27262
|
-
{
|
|
27263
|
-
if (currentPlayingRef.current.id) {
|
|
27264
|
-
addEndedActivity(currentPlayingRef.current.id);
|
|
27265
|
-
dispatchMarkActivity(currentPlayingRef.current.id, false);
|
|
27266
|
-
}
|
|
27070
|
+
const handleEnded = ()=>{
|
|
27071
|
+
// Add played activity id to context's endedActivities
|
|
27072
|
+
if (currentActivityRef.current?.id) {
|
|
27073
|
+
addEndedActivity(currentActivityRef.current.id);
|
|
27074
|
+
dispatchMarkActivity(currentActivityRef.current.id, false);
|
|
27267
27075
|
}
|
|
27268
|
-
|
|
27269
|
-
|
|
27270
|
-
|
|
27271
|
-
|
|
27272
|
-
|
|
27273
|
-
|
|
27274
|
-
|
|
27275
|
-
|
|
27276
|
-
|
|
27277
|
-
|
|
27278
|
-
|
|
27279
|
-
|
|
27280
|
-
|
|
27281
|
-
|
|
27076
|
+
if (streamingQueueRef.current?.length) {
|
|
27077
|
+
// Check if this is the message sent after streaming activities
|
|
27078
|
+
if (streamingQueueRef.current[0].value?.streamingCount) {
|
|
27079
|
+
addEndedActivity(streamingQueueRef.current[0].id);
|
|
27080
|
+
// If there is another activity after this message, play it. If not, let's check if the microphone should be opened
|
|
27081
|
+
if (streamingQueueRef.current?.length > 1) {
|
|
27082
|
+
const utt = checkReplacementLocaleAndGetUtterance(streamingQueueRef.current[1]);
|
|
27083
|
+
currentActivityRef.current = streamingQueueRef.current[1];
|
|
27084
|
+
setUtterance(utt);
|
|
27085
|
+
removeFirstFromStreamingQueue(true);
|
|
27086
|
+
} else {
|
|
27087
|
+
streamingQueueRef.current[0].inputHint === 'expectingInput' && checkDictateState();
|
|
27088
|
+
currentActivityRef.current = null;
|
|
27089
|
+
setUtterance(null);
|
|
27090
|
+
setNextUtterance(null);
|
|
27091
|
+
removeFirstFromStreamingQueue();
|
|
27282
27092
|
}
|
|
27283
|
-
} else
|
|
27284
|
-
|
|
27285
|
-
|
|
27286
|
-
|
|
27287
|
-
|
|
27288
|
-
}
|
|
27093
|
+
} else {
|
|
27094
|
+
const utt = checkReplacementLocaleAndGetUtterance(streamingQueueRef.current[0]);
|
|
27095
|
+
currentActivityRef.current = streamingQueueRef.current[0];
|
|
27096
|
+
setUtterance(utt);
|
|
27097
|
+
removeFirstFromStreamingQueue();
|
|
27098
|
+
}
|
|
27099
|
+
} else {
|
|
27100
|
+
currentActivityRef.current?.inputHint === 'expectingInput' && checkDictateState();
|
|
27101
|
+
currentActivityRef.current = null;
|
|
27102
|
+
setUtterance(null);
|
|
27103
|
+
setNextUtterance(null);
|
|
27289
27104
|
}
|
|
27290
|
-
currentPlayingRef.current = null;
|
|
27291
|
-
setUtterance(futureUtterance);
|
|
27292
|
-
isSpeaking.current = !!futureUtterance;
|
|
27293
27105
|
};
|
|
27294
27106
|
/**
|
|
27295
|
-
*
|
|
27107
|
+
* Wait for app loading and voice selection to begin playing speech
|
|
27296
27108
|
*/ (0, $bZRJW$useEffect)(()=>{
|
|
27297
|
-
|
|
27298
|
-
|
|
27299
|
-
|
|
27300
|
-
if (streamingQueue.length) {
|
|
27301
|
-
futureUtterance = checkReplacementLocaleAndGetUtterance(streamingQueue[0], false, false);
|
|
27302
|
-
tempCurrentStreamingRef.current = streamingQueue[0].text || null;
|
|
27303
|
-
removeFirstFromStreamingQueue();
|
|
27304
|
-
}
|
|
27305
|
-
currentPlayingRef.current = null;
|
|
27306
|
-
setUtterance(futureUtterance);
|
|
27307
|
-
isSpeaking.current = !!futureUtterance;
|
|
27308
|
-
}
|
|
27109
|
+
// Set ref from the state to use in events
|
|
27110
|
+
streamingQueueRef.current = streamingQueue;
|
|
27111
|
+
if (appAvailable && voice && streamingQueue.length && !currentActivityRef.current) handleEnded();
|
|
27309
27112
|
}, [
|
|
27113
|
+
appAvailable,
|
|
27114
|
+
voice,
|
|
27310
27115
|
streamingQueue
|
|
27311
27116
|
]);
|
|
27312
27117
|
return /*#__PURE__*/ (0, $bZRJW$jsx)((0, $637384b103093c58$export$2e2bcd8739ae039), {
|
|
@@ -27820,8 +27625,7 @@ const $9ab097b39dd0663e$var$typingTimer = 2000;
|
|
|
27820
27625
|
const $9ab097b39dd0663e$var$SendTypingIndicator = ({ isRetorikNews: isRetorikNews })=>{
|
|
27821
27626
|
const speaking = (0, $i1rfm.useSpeechStore)((state)=>state.speaking);
|
|
27822
27627
|
const streamingQueue = (0, $i1rfm.useSpeechStore)((state)=>state.streamingQueue);
|
|
27823
|
-
const
|
|
27824
|
-
const lastRecognitionInterim = (0, $i1rfm.useSpeechStore)((state)=>state.lastRecognitionInterim);
|
|
27628
|
+
const activeRecognitionState = (0, $i1rfm.useSpeechStore)((state)=>state.activeRecognitionState);
|
|
27825
27629
|
const route = (0, $1Qww3.useViewStore)((state)=>state.route);
|
|
27826
27630
|
const loaderClosed = (0, $1x02c.useRetorikStore)((state)=>state.loaderClosed);
|
|
27827
27631
|
const appAvailable = (0, $1x02c.useRetorikStore)((state)=>state.appAvailable);
|
|
@@ -27834,17 +27638,18 @@ const $9ab097b39dd0663e$var$SendTypingIndicator = ({ isRetorikNews: isRetorikNew
|
|
|
27834
27638
|
const sendTyping = (0, $aNpqK.useDirectlineStore)((state)=>state.actions.sendTyping);
|
|
27835
27639
|
const dataRef = (0, $bZRJW$useRef)(false);
|
|
27836
27640
|
(0, $bZRJW$useEffect)(()=>{
|
|
27641
|
+
// Don't send typing activity when we are receiving streaming events
|
|
27642
|
+
const isReceivingStreamingData = !!streamingQueue.length && !!streamingQueue.find((activity)=>activity.name?.toLowerCase() === 'davi.streammessageactivity') && !streamingQueue.find((activity)=>activity.value?.streamingCount);
|
|
27837
27643
|
dataRef.current = !isWaitingForResponse && // Don't send typing activity when we are receiving streaming events
|
|
27838
|
-
!
|
|
27644
|
+
!isReceivingStreamingData && (!loaderClosed || activeRecognitionState !== (0, $4ucVo.RecognitionState).Closed || userIsTyping || userIsSwiping || speaking || currentSubView !== (0, $4ucVo.CurrentSubView).none || route === (0, $4ucVo.Routes).News || retorikEvent === (0, $4ucVo.RetorikEvent).DetailViewOpen || listStatus === (0, $4ucVo.ListStatus).opened);
|
|
27839
27645
|
}, [
|
|
27840
27646
|
appAvailable,
|
|
27841
27647
|
loaderClosed,
|
|
27842
|
-
|
|
27648
|
+
activeRecognitionState,
|
|
27843
27649
|
userIsTyping,
|
|
27844
27650
|
userIsSwiping,
|
|
27845
27651
|
speaking,
|
|
27846
27652
|
streamingQueue,
|
|
27847
|
-
streamingQueueFullLength,
|
|
27848
27653
|
currentSubView,
|
|
27849
27654
|
route,
|
|
27850
27655
|
retorikEvent,
|
|
@@ -28129,7 +27934,7 @@ const $55bf4c9965ea9afa$var$ChatbotAndSubtitlesContainer = ({ centered: centered
|
|
|
28129
27934
|
children: [
|
|
28130
27935
|
/*#__PURE__*/ (0, $bZRJW$jsx)("div", {
|
|
28131
27936
|
id: "retorik-animation-container",
|
|
28132
|
-
className: `rf-relative rf-z-agent rf-col-start-1 rf-col-end-9 ${!centered && 'landscape-retorik
|
|
27937
|
+
className: `rf-relative rf-z-agent rf-col-start-1 rf-col-end-9 ${!centered && 'landscape-retorik:-rf-translate-x-1/4'} rf-row-span-full rf-self-end rf-h-full`,
|
|
28133
27938
|
style: {
|
|
28134
27939
|
visibility: visible ? 'visible' : 'hidden',
|
|
28135
27940
|
gridRow: `${gridRowStart} / span ${gridRowSpan}`
|
|
@@ -28607,7 +28412,6 @@ var $82K9w = parcelRequire("82K9w");
|
|
|
28607
28412
|
var $awh9M = parcelRequire("awh9M");
|
|
28608
28413
|
|
|
28609
28414
|
const $de4df24d97ccd581$var$LayoutHandler = (props)=>{
|
|
28610
|
-
const isRTL = (0, $2fuDN.useLocaleStore)((state)=>state.isRTL);
|
|
28611
28415
|
const translation = (0, $2fuDN.useLocaleStore)((state)=>state.currentTranslations);
|
|
28612
28416
|
const currentLayout = (0, $1x02c.useRetorikStore)((state)=>state.currentLayout);
|
|
28613
28417
|
const displayChangeLayoutButton = (0, $1x02c.useRetorikStore)((state)=>state.configuration).allowSwitchLayout;
|
|
@@ -28710,7 +28514,6 @@ const $de4df24d97ccd581$var$LayoutHandler = (props)=>{
|
|
|
28710
28514
|
]
|
|
28711
28515
|
}),
|
|
28712
28516
|
loaded && /*#__PURE__*/ (0, $bZRJW$jsxs)("div", {
|
|
28713
|
-
dir: isRTL ? 'rtl' : 'ltr',
|
|
28714
28517
|
className: `${currentLayout === (0, $4ucVo.ContainerParent).widget ? 'rf-fixed rf-pt-8 rf-height-fill-available rf-transition-all rf-overflow-hidden rf-max-w-[100vw]' : ''}`,
|
|
28715
28518
|
style: currentLayout === (0, $4ucVo.ContainerParent).widget ? {
|
|
28716
28519
|
...frameStyle,
|
|
@@ -28734,7 +28537,7 @@ const $de4df24d97ccd581$var$LayoutHandler = (props)=>{
|
|
|
28734
28537
|
/*#__PURE__*/ (0, $bZRJW$jsx)("button", {
|
|
28735
28538
|
onClick: toggleWidget,
|
|
28736
28539
|
"aria-label": "Close",
|
|
28737
|
-
className: "rf-absolute rf-z-exitwidget rf-flex
|
|
28540
|
+
className: "rf-absolute rf-z-exitwidget rf-flex rf-right-0 rf-top-0 rf-p-1 rf-bg-truewhite rf-border rf-border-trueblack rf-rounded-lg",
|
|
28738
28541
|
children: /*#__PURE__*/ (0, $bZRJW$jsx)((0, $awh9M.default), {
|
|
28739
28542
|
className: "rf-h-4 rf-w-4",
|
|
28740
28543
|
color: "#000000"
|