@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.
Files changed (48) hide show
  1. package/dist/{AttachmentDetail.1e06c2a5.js → AttachmentDetail.0a576bf3.js} +12 -13
  2. package/dist/AttachmentDetail.0a576bf3.js.map +1 -0
  3. package/dist/{AttachmentDetail.c6c297df.js → AttachmentDetail.c4286a45.js} +12 -13
  4. package/dist/AttachmentDetail.c4286a45.js.map +1 -0
  5. package/dist/{CustomView.90d2a13d.js → CustomView.913a9f32.js} +6 -7
  6. package/dist/CustomView.913a9f32.js.map +1 -0
  7. package/dist/{CustomView.080c8028.js → CustomView.edf84de1.js} +6 -7
  8. package/dist/CustomView.edf84de1.js.map +1 -0
  9. package/dist/{Emergency.a21f837c.js → Emergency.0cf005ce.js} +2 -3
  10. package/dist/Emergency.0cf005ce.js.map +1 -0
  11. package/dist/{Emergency.423214ad.js → Emergency.897ee3c7.js} +2 -3
  12. package/dist/Emergency.897ee3c7.js.map +1 -0
  13. package/dist/{HistoryList.5fd6aa12.js → HistoryList.03a56119.js} +3 -7
  14. package/dist/HistoryList.03a56119.js.map +1 -0
  15. package/dist/{HistoryList.50ff0fd9.js → HistoryList.4c303dc6.js} +3 -7
  16. package/dist/HistoryList.4c303dc6.js.map +1 -0
  17. package/dist/{LanguageChoice.61e36c1d.js → LanguageChoice.623ee802.js} +2 -5
  18. package/dist/LanguageChoice.623ee802.js.map +1 -0
  19. package/dist/{LanguageChoice.1579b654.js → LanguageChoice.ff0cd04c.js} +2 -5
  20. package/dist/LanguageChoice.ff0cd04c.js.map +1 -0
  21. package/dist/{NewsContainer.932174e9.js → NewsContainer.a91d9131.js} +17 -14
  22. package/dist/NewsContainer.a91d9131.js.map +1 -0
  23. package/dist/{NewsContainer.67f04b19.js → NewsContainer.f0d2ee9c.js} +17 -14
  24. package/dist/NewsContainer.f0d2ee9c.js.map +1 -0
  25. package/dist/{Weather.661c2cac.js → Weather.99917b66.js} +2 -3
  26. package/dist/Weather.99917b66.js.map +1 -0
  27. package/dist/{Weather.fb22fba3.js → Weather.cf58823d.js} +2 -3
  28. package/dist/Weather.cf58823d.js.map +1 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +500 -689
  31. package/dist/index.js.map +1 -1
  32. package/dist/index.modern.js +485 -682
  33. package/dist/index.modern.js.map +1 -1
  34. package/package.json +1 -1
  35. package/dist/AttachmentDetail.1e06c2a5.js.map +0 -1
  36. package/dist/AttachmentDetail.c6c297df.js.map +0 -1
  37. package/dist/CustomView.080c8028.js.map +0 -1
  38. package/dist/CustomView.90d2a13d.js.map +0 -1
  39. package/dist/Emergency.423214ad.js.map +0 -1
  40. package/dist/Emergency.a21f837c.js.map +0 -1
  41. package/dist/HistoryList.50ff0fd9.js.map +0 -1
  42. package/dist/HistoryList.5fd6aa12.js.map +0 -1
  43. package/dist/LanguageChoice.1579b654.js.map +0 -1
  44. package/dist/LanguageChoice.61e36c1d.js.map +0 -1
  45. package/dist/NewsContainer.67f04b19.js.map +0 -1
  46. package/dist/NewsContainer.932174e9.js.map +0 -1
  47. package/dist/Weather.661c2cac.js.map +0 -1
  48. package/dist/Weather.fb22fba3.js.map +0 -1
@@ -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, osVersion as $bZRJW$osVersion, browserVersion as $bZRJW$browserVersion, isMobile as $bZRJW$isMobile} from "react-device-detect";
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[CloseButtonCause["none"] = 0] = "none";
383
- CloseButtonCause[CloseButtonCause["detailedpoi"] = 1] = "detailedpoi";
384
- CloseButtonCause[CloseButtonCause["list"] = 2] = "list";
385
- CloseButtonCause[CloseButtonCause["subview"] = 3] = "subview";
386
- CloseButtonCause[CloseButtonCause["dashboard"] = 4] = "dashboard";
387
- CloseButtonCause[CloseButtonCause["fullscreenimage"] = 5] = "fullscreenimage";
388
- CloseButtonCause[CloseButtonCause["news"] = 6] = "news";
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 && value.replyToId !== get().streamingReplyToIdToIgnore) {
2298
- // Set replyToId and new queue if replyToId is different from the current one
2299
- if (get().streamingReplyToId !== value.replyToId) set({
2300
- streamingQueueFullLength: 0,
2301
- streamingReplyToId: value.replyToId,
2302
- streamingQueue: [
2303
- value
2304
- ],
2305
- streamingQueueForText: [
2306
- value
2307
- ]
2308
- });
2309
- else set({
2310
- streamingQueue: [
2311
- ...get().streamingQueue,
2312
- value
2313
- ],
2314
- streamingQueueForText: [
2315
- ...get().streamingQueueForText,
2316
- value
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
- removeFirstFromStreamingQueue: ()=>{
2322
- if (get().streamingQueue.length) {
2323
- const tempStreamingQueue = get().streamingQueue.slice();
2324
- tempStreamingQueue.splice(0, 1);
2325
- set({
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
- streamingReplyToId: null,
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, setStreamingQueueFullLength, setMode, unlockClickedButton, setSubmitDelayBeforeSendingMessage, setIsWaitingForResponse, setSendBoxPlaceHolder)=>{
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().splice(1)
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
- if (value.name?.toLowerCase() === 'davi.streammessageactivity') {
2918
- if (value.text?.trim().length && !get().retrievingConversation) {
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, setStreamingQueueFullLength: setStreamingQueueFullLength, setMode: setMode } = (0, $i1rfm.useSpeechStore)((state)=>state.actions);
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, setStreamingQueueFullLength, setMode, unlockClickedButton, setSubmitDelayBeforeSendingMessage, setIsWaitingForResponse, setSendBoxPlaceHolder));
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.3\",\"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}}");
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
- (0, $bZRJW$useEffect)(()=>{
5470
- if (isRetorikNews || hasConversationCookie) setUserAlreadySet(true);
5471
- else if (!userAlreadySet && appAvailable && !displayGDPR && characterLoaded) {
5472
- setUserAlreadySet(true);
5473
- // Send mandatory events : setUser to start conversation, Davi.GDPRConsent for GDPR module
5474
- sendEvent('setUser', {
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
- setTimeout(()=>{
5482
- sendEvent('Davi.GDPRConsent', {
5483
- userConsent: userConsent
5484
- });
5485
- }, 100);
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 ltr:rf-right-0 rtl:rf-left-0 rf-top-0 rf-p-2`,
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:ltr:rf-mr-30 large:rtl:rf-ml-30 rf-col-span-full rf-row-span-full ${className}`,
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: isRTL ? 'translateX(100%)' : 'translateX(-100%)'
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: isRTL ? 'translateX(100%)' : 'translateX(-100%)'
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: "ltr:rf-ml-2 rtl:rf-mr-2 rf-mt-8 large:ltr:rf-ml-0 large:rtl:rf-mr-0 large:rf-mt-0",
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:ltr:rf-ml-4 large:rtl:rf-mr-4",
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: "ltr:rf-mr-2 rtl:rf-ml-2 large:ltr:rf-mr-3 large:rtl:rf-ml-3",
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 ltr:rf-mr-4 rtl:rf-ml-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}`,
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: "ltr:rf-mr-3 rtl:rf-ml-3",
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 ltr:rf-left-0 rtl:rf-right-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",
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 ltr:rf-mr-5 rtl:rf-ml-5",
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: "ltr:rf-ml-1 rtl:rf-mr-1",
9470
+ className: "rf-ml-1",
9521
9471
  children: title
9522
9472
  })
9523
9473
  ]
9524
9474
  }),
9525
9475
  /*#__PURE__*/ (0, $bZRJW$jsx)("div", {
9526
- className: "ltr:rf-text-xsm rtl:rf-text-arabic rf-uppercase rf-text-secondary rf-underline",
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
- isRTL ? /*#__PURE__*/ (0, $bZRJW$jsx)((0, $4Hqlr.default), {
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: "ltr:rf-ml-1 rtl:rf-mr-1",
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 ltr:rf-right-0 rtl:rf-left-0 ${zIndexClassname || 'rf-z-ui'}`,
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: "rf-w-18 rf-h-18 rf-mb-6 rf-flex rf-flex-col rf-justify-center rf-items-center rf-bg-truewhite ltr:rf-text-xsm rtl:rf-text-arabic rf-text-trueblack rf-border rf-border-menuBorder rf-rounded-half hover:rf-cursor-pointer rf-shadow-[0_3px_6px_#606267]",
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 ltr:rf-left-0 rtl:rf-right-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: "ltr:rf-ml-4 rtl:rf-mr-4 rf-font-bold",
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: "rf-uppercase rf-text-[#575F6B] ltr:rf-text-xs rtl:rf-text-arabic large-vertical:rf-text-basecustomuppercase",
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: "rf-uppercase rf-text-[#575F6B] ltr:rf-text-xs rtl:rf-text-arabic",
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: "ltr:rf-mr-3 rtl:rf-ml-3 rf-text-lightgray rf-normal-case",
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: "ltr:rf-ml-1 rtl:rf-mr-1 rf-uppercase",
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 ltr:rf-right-0 rtl:rf-left-0 rf-px-2 rf-flex rf-flex-row rf-items-center ltr:rf-rounded-l-lg rtl:rf-rounded-r-lg",
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 ltr:rf-mr-2 rtl:rf-ml-2",
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: "rf-flex rf-flex-col rf-items-start ltr:rf-text-xsm rtl:rf-text-arabic",
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 ltr:rf-right-3 rtl:rf-left-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"
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 ltr:rf-flex-row rtl:rf-flex-row-reverse rf-items-center",
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: "ltr:rf-ml-2 rtl:rf-mr-2 rf-truncate",
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: "ltr:rf-ml-4 rtl:rf-mr-4",
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 ? 'rf-text-left' : 'rf-text-center'} rf-title-size-auto ${configuration.isUsedOnBorne ? 'rf-truncate' : 'rf-line-clamp-2'}`,
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-text-left rf-w-full",
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-text-left rf-w-full rf-flex rf-items-end rf-italic",
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: "ltr:rf-pr-2 rtl:rf-pl-2 rf-h-6",
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: "ltr:rf-pl-1 rtl:rf-pr-1 rf-underline rf-cursor-pointer",
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: "ltr:rf-ml-4 rtl:rf-mr-4",
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 ltr:rf-text-left rtl:rf-text-right rf-overflow-y-hidden`,
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 ltr:rf-mr-4 rtl:rf-ml-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}`,
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: "ltr:rf-ml-6 rtl:rf-mr-6 rf-text-gray",
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:ltr:rf-left-4 large:rtl:rf-right-4 large:rf-top-8 rf-text-size-auto`
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:ltr:rf-ml-1/5 landscape-retorik:rtl:rf-mr-1/5 large-vertical:rf-w-3/5 large-vertical:rf-min-w-3/5 rf-max-h-full',
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(${isRTL ? '' : '-'}${currentCard * cardWidth}px - ${currentCard * gap}rem ${isRTL ? '-' : '+'} ${currentPadding}px))`);
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(${isRTL ? '' : '-'}${currentCard * cardWidth}px - ${currentCard * gap}rem ${isRTL ? '-' : '+'} ${currentPadding}px))`);
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 ? isRTL ? '+' : '-' : isRTL ? '-' : '+';
14725
- setTranslation(`translateX(calc(${isRTL ? '' : '-'}${currentCard * cardWidth}px - ${currentCard * gap}rem ${isRTL ? '-' : '+'} ${currentPadding}px ${direction} ${cardWidth / 10}px))`);
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(${isRTL ? '' : '-'}${currentCard * cardWidth}px - ${currentCard * gap}rem ${isRTL ? '-' : '+'} ${currentPadding}px))`);
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(${isRTL ? '' : '-'}${currentCard * cardWidth}px - ${currentCard * gap}rem ${isRTL ? '-' : '+'} ${currentPadding}px - ${effectiveDistance}px))`);
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(${isRTL ? '' : '-'}${currentCard * cardWidth}px - ${currentCard * gap}rem ${isRTL ? '-' : '+'} ${currentPadding}px - ${effectiveDistance * (1 - Math.abs(distance) / bounceLimit)}px))`);
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 ltr:rf-text-left rtl:rf-text-right rf-title-large-size-auto ${mode === (0, $4ucVo.Mode).vocal ? 'rf-text-truewhite rf-text-shadow-black' : 'rf-text-textModePanelConversationBot'}`,
14853
- style: titleStyle,
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: isRTL ? onSwipeRight : onSwipeLeft,
14873
- onSwipeRight: isRTL ? onSwipeLeft : 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 ? isRTL ? 'rf-opacity-gradient-r-thin' : 'rf-opacity-gradient-l-thin' : isRTL ? 'rf-opacity-gradient-r' : 'rf-opacity-gradient-l' : '',
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
- 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:ltr:rf-pr-40 landscape-retorik:rtl:rf-pl-40 landscape-retorik:ltr:rf-pl-1/5 landscape-retorik:rtl:rf-pr-1/5 large-vertical:rf-w-3/5'} vertical:rf-items-center`,
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 ltr:rf-text-left rtl:rf-text-right rf-title-large-size-auto ${history ? 'rf-text-textModePanelConversationBot' : 'rf-text-truewhite rf-text-shadow-black'}`,
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.5fd6aa12.js").then(()=>parcelRequire('2IZpO'));
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.61e36c1d.js").then(()=>parcelRequire('4HBCW'));
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.c6c297df.js").then(()=>parcelRequire('8QAGm'));
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.fb22fba3.js").then(()=>parcelRequire('2pbjN'));
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.90d2a13d.js").then(()=>parcelRequire('5s7df'));
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.a21f837c.js").then(()=>parcelRequire('4zoun'));
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 ltr:rf-right-6 large-vertical:ltr:rf-right-9 rtl:rf-left-6 large-vertical:rtl:rf-left-9",
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
- setCurrentSubView(currentSubView === (0, $4ucVo.CurrentSubView).history ? (0, $4ucVo.CurrentSubView).none : (0, $4ucVo.CurrentSubView).history);
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
- setCurrentSubView(currentSubView === (0, $4ucVo.CurrentSubView).languages ? (0, $4ucVo.CurrentSubView).none : (0, $4ucVo.CurrentSubView).languages);
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).subview:
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: "rf-absolute ltr:rf-right-12 rtl:rf-left-12 rf-h-full rf-w-8 rf-flex rf-justify-center rf-items-center",
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: "rf-absolute ltr:rf-right-2 rtl:rf-left-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",
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) setShowCloseButton((0, $4ucVo.CloseButtonCause).subview);
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 ? 'rtl:rf-left-9 ltr:rf-right-9' : 'rtl:rf-left-4 ltr:rf-right-4'} landscape-retorik:-rf-mt-4 landscape-retorik:ltr:rf-pl-[calc(50%-2.5rem)] landscape-retorik:rtl:rf-pr-[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`,
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: !!showCloseButton
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
- if (useContinuousRecognition) setText(textUndefined ? undefined : `<p>${translation.microphone.trigger}${isMobile ? ' ' : '<br />'}<strong>\xab ${agentData?.name} \xbb</strong></p>`);
17137
- else setText(textUndefined ? undefined : `<p>${translation.microphone.triggerwithoutname}</p>`);
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
- isRTL ? /*#__PURE__*/ (0, $bZRJW$jsx)((0, $4Hqlr.default), {
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: "ltr:rf-ml-1 rtl:rf-mr-1",
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: "ltr:rf-ml-4 rtl:rf-mr-4 rf-font-bold",
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: "rf-uppercase rf-text-[#575F6B] ltr:rf-text-xs rtl:rf-text-arabic large-vertical:rf-text-basecustomuppercase",
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: "rf-uppercase rf-text-[#575F6B] ltr:rf-text-xs rtl:rf-text-arabic",
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: "ltr:rf-mr-3 rtl:rf-ml-3 rf-text-lightgray rf-normal-case",
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: "ltr:rf-ml-1 rtl:rf-mr-1 rf-uppercase",
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.67f04b19.js").then(()=>parcelRequire('dUXW6'));
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 && display.length > 0 ? split ? /*#__PURE__*/ (0, $bZRJW$jsxs)("div", {
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: "rf-absolute rf-top-[0.125rem] -ltr:rf-left-6 rtl:rf-right-6 rf-h-4"
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: "ltr:rf-ml-4 rtl:rf-mr-4",
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 ? '' : 'ltr:rf-pl-6 rtl:rf-pr-6 large:ltr:rf-pl-12 large:rtl-pr-12'}`,
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 [lastUserActivityData, setLastUserActivityData] = (0, $bZRJW$useState)();
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
- applyCustomAttributesOnSpan: (span)=>span.setAttributes({
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 (lastUserActivityData) {
22515
- const temp = botStreamingActivities.get(lastUserActivityData.id);
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))) setLastUserActivityData({
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 (lastUserActivityData && (activity.type === 'message' || activity.name?.toLocaleLowerCase() === 'davi.streammessageactivity') && activity.label?.toLowerCase() !== 'davi.bringupmessage' && activity.replyToId === lastUserActivityData.id) {
22543
- sendTrace(lastUserActivityData.time);
22544
- setLastUserActivityData(undefined);
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 = (beginningTimer)=>{
22548
- if (tracer) {
22549
- const span = tracer.startSpan('directlineMessage', {
22550
- startTime: beginningTimer
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(getCommonAttributes());
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
- sendErrorTrace: sendErrorTrace,
22575
- sendTrace: sendTrace
22561
+ sendTrace: sendTrace,
22562
+ sendErrorTrace: sendErrorTrace
22576
22563
  }), [
22577
22564
  enabled,
22578
22565
  tracer
22579
22566
  ]);
22580
- return /*#__PURE__*/ (0, $bZRJW$jsx)((0, $bZRJW$react).Fragment, {
22581
- children: /*#__PURE__*/ (0, $bZRJW$jsx)($4551c1f557108aed$export$7b6b7bc4acb29126.Provider, {
22582
- value: value,
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:ltr:rf-ml-1/5 landscape-retorik:rtl:rf-mr-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
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:ltr:rf-ml-1/5 landscape-retorik:rtl:rf-mr-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
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
- return /*#__PURE__*/ (0, $bZRJW$jsx)("a", {
23955
- href: "https://davi.ai/retorik",
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] 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",
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: "ltr:rf-ml-4 rtl:rf-mr-4 rf-mb-4 rf-h-14"
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
- 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'} ${from === (0, $4ucVo.TextFrom).user ? 'landscape-retorik:ltr:rf-mr-40 landscape-retorik:rtl:rf-ml-40 large-vertical:ltr:rf-mr-1/5 large-vertical:rtl:rf-ml-1/5 rf-self-end rf-text-textModePanelConversationUser rf-bg-textModePanelBackgroundUser rf-border rf-border-textModePanelBackgroundUser ltr:rf-rounded-tl-4 rtl:rf-rounded-tr-4' : 'landscape-retorik:ltr:rf-ml-1/5 landscape-retorik:rtl:rf-mr-1/5 large-vertical:ltr:rf-ml-1/5 large-vertical:rtl:rf-mr-1/5 rf-text-textModePanelConversationBot rf-bg-textModePanelBackgroundBot rf-border rf-border-textModePanelBackgroundBot ltr:rf-rounded-tr-4 rtl:rf-rounded-tl-4'} rf-rounded-b-4 rf-animate-slideBottom rf-flex rf-flex-col rf-text-size-auto rf-shadow-[0_3px_6px_#00000029]`,
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 nexxt one to prevent re-renders, in order to display waiting dots
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 activcity didn't have any
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 && (tempDisplayData[lastStreamingIndex].canBeEnded = true);
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.canBeEnded && endedActivities.includes(data.activity.id),
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 ltr:rf-right-6 rtl:rf-left-6 rf-w-9 rf-h-9 rf-cursor-pointer rf-bg-[#00000050] rf-p-[7px_12px] rf-rounded-[20px] rf-flex"
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 ltr:rf-rounded-l-lg rtl:rf-rounded-r-lg rf-shadow-[0_3px_6px_#606267]",
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: "rf-absolute rf-z-ui rf-hidden large:rf-flex rf-flex-col rf-items-center rf-justify-start rf-w-24 ltr:rf-right-0 rtl:rf-left-0 ltr:rf-text-xsm rtl:rf-text-arabic rf-text-trueblack",
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 ltr:rf-left-4 rtl:rf-right-4 rf-text-size-auto"
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
- dir: isRTL ? 'rtl' : 'ltr',
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 [nextUtteranceData, setNextUtteranceData] = (0, $bZRJW$useState)(null);
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 && ponyfill.speechSynthesis.cancel();
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) : setNextUtteranceData(null);
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
- setNextUtteranceData(data?.byteLength ? {
26794
- speechData: data,
26795
- boundaries: nextUtteranceBoundariesRef.current,
26796
- visemes: nextUtteranceVisemesRef.current
26797
- } : null);
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 && setNextUtteranceData(null);
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 (ponyfill && audioRef?.current) {
26810
- if (nextUtteranceData) {
26811
- boundaryRef.current = nextUtteranceData.boundaries;
26812
- setBoundaryData(nextUtteranceData.boundaries);
26813
- setVisemeData(nextUtteranceData.visemes);
26814
- processData(nextUtteranceData.speechData, true);
26815
- } else // Play utterance whether by asking for a speech synthesis, or by retrieving data fro indexeddb
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
- if (nextUtterance?.text && ponyfill) {
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, '').substring(0, 50)}`);
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?.speechSynthesis.synthesizeAndGetArrayData(utt, processData);
26840
- } else ponyfill?.speechSynthesis.synthesizeAndGetArrayData(utt, processData);
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, '').substring(0, 50)}`,
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 && onEnd();
26837
+ onEnd?.();
26876
26838
  resetData();
26877
26839
  } else setLoaderClosed(true);
26878
26840
  };
26879
26841
  const handleError = (error)=>{
26880
- console.log('Error : ', error);
26881
- onError && 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 (ponyfill && audioRef.current) {
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, setCurrentPlaying: setCurrentPlaying, setCurrentReplyToId: setCurrentReplyToId, setEndedActivities: setEndedActivities, setBoundaryData: setBoundaryData, removeFirstFromStreamingQueue: removeFirstFromStreamingQueue, setCurrentStreaming: setCurrentStreaming, killCurrentStreaming: killCurrentStreaming, askPermission: askPermission, toggleMicrophone: toggleMicrophone } = (0, $i1rfm.useSpeechStore)((state)=>state.actions);
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 queuedActivitiesRef = (0, $bZRJW$useRef)([]);
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
- queuedActivitiesRef.current = [];
27031
- tempCurrentStreamingRef.current = null;
27032
- streamingRelatedMessageRef.current = null;
27033
- currentPlayingRef.current = null;
27034
- isSpeaking.current = false;
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, setCurrent = 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
- const checkDictateState = ()=>{
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 ViewContext's route state change :
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 RetorikContext's appAvailable state change :
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
- if (appAvailable && queuedActivitiesRef.current?.length) {
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
- * - check if the ponyfill is created and the voices loaded
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
- setUtterance(checkReplacementLocaleAndGetUtterance({
27024
+ const activity = {
27211
27025
  speak: externalTextToSpeech,
27212
27026
  locale: locale
27213
- }, false, false));
27214
- isSpeaking.current = true;
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
- * On call :
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
- setCurrentPlaying(currentActivityRef.current);
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 (streamingReplyToId && streamingQueue.length) {
27238
- const tempActivity = streamingQueue[0];
27239
- if (tempActivity.text) {
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
- const handleUtteranceEnd = ()=>{
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) setRetorikNewsEnded(true);
27250
- else if (cancelRef.current) resetData();
27251
- else handleEnded();
27065
+ if (isNewsViewRef.current) {
27066
+ setRetorikNewsEnded(true);
27067
+ currentActivityRef.current = null;
27068
+ } else handleEnded();
27252
27069
  };
27253
- /**
27254
- * On call :
27255
- * - update the states related to the ende activity
27256
- * - check if the end of the utterance was called by a cancel or not
27257
- * - if it wasn't a cancel, deal with the queue
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
- setCurrentPlaying(undefined);
27269
- if (streamingQueue.length) {
27270
- futureUtterance = checkReplacementLocaleAndGetUtterance(streamingQueue[0], false);
27271
- tempCurrentStreamingRef.current = streamingQueue[0].text || null;
27272
- removeFirstFromStreamingQueue();
27273
- } else {
27274
- // Launch next activity in the queue and remove it from the queue
27275
- if (queuedActivitiesRef.current?.length) {
27276
- futureUtterance = checkReplacementLocaleAndGetUtterance(queuedActivitiesRef.current[0]);
27277
- queuedActivitiesRef.current.splice(0, 1);
27278
- // If a streaming-related message activity is stored, set it as ended and flush it
27279
- if (streamingRelatedMessageRef.current) {
27280
- addEndedActivity(streamingRelatedMessageRef.current.id);
27281
- streamingRelatedMessageRef.current = null;
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 if (streamingRelatedMessageRef.current) {
27284
- // Streaming-related message activity stored
27285
- streamingRelatedMessageRef.current.inputHint === 'expectingInput' && checkDictateState();
27286
- addEndedActivity(streamingRelatedMessageRef.current.id);
27287
- streamingRelatedMessageRef.current = null;
27288
- } else currentPlayingRef?.current?.inputHint === 'expectingInput' && checkDictateState();
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
- * If the previous audio stream ends before the next one is received, we relaunch the new stream as soon as it arrives.
27107
+ * Wait for app loading and voice selection to begin playing speech
27296
27108
  */ (0, $bZRJW$useEffect)(()=>{
27297
- if (!isSpeaking.current) {
27298
- let futureUtterance = null;
27299
- setCurrentPlaying(undefined);
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 streamingQueueFullLength = (0, $i1rfm.useSpeechStore)((state)=>state.streamingQueueFullLength);
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
- !(streamingQueue.length && streamingQueueFullLength === 0) && (!loaderClosed || lastRecognitionInterim !== '' || userIsTyping || userIsSwiping || speaking || currentSubView !== (0, $4ucVo.CurrentSubView).none || route === (0, $4ucVo.Routes).News || retorikEvent === (0, $4ucVo.RetorikEvent).DetailViewOpen || listStatus === (0, $4ucVo.ListStatus).opened);
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
- lastRecognitionInterim,
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:ltr:-rf-translate-x-1/4 landscape-retorik:rtl:rf-translate-x-1/4'} rf-row-span-full rf-self-end rf-h-full`,
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 ltr:rf-right-0 rtl:rf-left-0 rf-top-0 rf-p-1 rf-bg-truewhite rf-border rf-border-trueblack rf-rounded-lg",
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"