@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
package/dist/index.js CHANGED
@@ -103,7 +103,6 @@ const $2793f2455cec0982$var$initialState = {
103
103
  retorikEvent: undefined,
104
104
  displayAgent: true,
105
105
  activityToSend: undefined,
106
- currentNewsActivity: undefined,
107
106
  retorikNewsEnded: false,
108
107
  userIsTyping: false,
109
108
  userIsSwiping: false,
@@ -189,11 +188,6 @@ const $2793f2455cec0982$var$createUtilsStore = ()=>(0, $dWhh5$zustand.createStor
189
188
  activityToSend: value
190
189
  });
191
190
  },
192
- setCurrentNewsActivity: (value)=>{
193
- set({
194
- currentNewsActivity: value
195
- });
196
- },
197
191
  setRetorikNewsEnded: (value)=>{
198
192
  set({
199
193
  retorikNewsEnded: value
@@ -351,6 +345,7 @@ $parcel$export(module.exports, "Source3DEngine", () => $71c613e2e831c34c$export$
351
345
  $parcel$export(module.exports, "UIPart", () => $71c613e2e831c34c$export$63fc5f52b5b4da1e);
352
346
  $parcel$export(module.exports, "TextFrom", () => $71c613e2e831c34c$export$b685c7d489184507);
353
347
  $parcel$export(module.exports, "Theme", () => $71c613e2e831c34c$export$14faa19a0f3bbeb2);
348
+ $parcel$export(module.exports, "TraceType", () => $71c613e2e831c34c$export$d4b4ca0ba30ae29c);
354
349
  var $71c613e2e831c34c$export$e4a712fff93fb00f = /*#__PURE__*/ function(ActionType) {
355
350
  ActionType["message"] = "message";
356
351
  ActionType["event"] = "event";
@@ -392,13 +387,17 @@ var $71c613e2e831c34c$export$22b261e08140d6b2 = /*#__PURE__*/ function(CategoryI
392
387
  return CategoryId;
393
388
  }($71c613e2e831c34c$export$22b261e08140d6b2 || {});
394
389
  var $71c613e2e831c34c$export$ddddf2c97763af65 = /*#__PURE__*/ function(CloseButtonCause) {
395
- CloseButtonCause[CloseButtonCause["none"] = 0] = "none";
396
- CloseButtonCause[CloseButtonCause["detailedpoi"] = 1] = "detailedpoi";
397
- CloseButtonCause[CloseButtonCause["list"] = 2] = "list";
398
- CloseButtonCause[CloseButtonCause["subview"] = 3] = "subview";
399
- CloseButtonCause[CloseButtonCause["dashboard"] = 4] = "dashboard";
400
- CloseButtonCause[CloseButtonCause["fullscreenimage"] = 5] = "fullscreenimage";
401
- CloseButtonCause[CloseButtonCause["news"] = 6] = "news";
390
+ CloseButtonCause["none"] = "None";
391
+ CloseButtonCause["detailedpoi"] = "Detailed";
392
+ CloseButtonCause["list"] = "List";
393
+ CloseButtonCause["history"] = "History";
394
+ CloseButtonCause["languages"] = "Languages";
395
+ CloseButtonCause["weather"] = "Weather";
396
+ CloseButtonCause["emergency"] = "Emergency";
397
+ CloseButtonCause["map"] = "Map";
398
+ CloseButtonCause["dashboard"] = "Dashboard";
399
+ CloseButtonCause["fullscreenimage"] = "FullscreenImage";
400
+ CloseButtonCause["news"] = "News";
402
401
  return CloseButtonCause;
403
402
  }($71c613e2e831c34c$export$ddddf2c97763af65 || {});
404
403
  var $71c613e2e831c34c$export$a31c5a03aaeee5f = /*#__PURE__*/ function(ContainerParent) {
@@ -576,6 +575,12 @@ var $71c613e2e831c34c$export$14faa19a0f3bbeb2 = /*#__PURE__*/ function(Theme) {
576
575
  Theme["auto"] = "auto";
577
576
  return Theme;
578
577
  }($71c613e2e831c34c$export$14faa19a0f3bbeb2 || {});
578
+ var $71c613e2e831c34c$export$d4b4ca0ba30ae29c = /*#__PURE__*/ function(TraceType) {
579
+ TraceType["message"] = "directlineMessage";
580
+ TraceType["utteranceStart"] = "utteranceStart";
581
+ TraceType["utteranceEnd"] = "utteranceEnd";
582
+ return TraceType;
583
+ }($71c613e2e831c34c$export$d4b4ca0ba30ae29c || {});
579
584
 
580
585
  });
581
586
 
@@ -2078,9 +2083,6 @@ const $df401eb9a10f9e0e$var$initialState = {
2078
2083
  visemeData: [],
2079
2084
  singleVisemeAdded: null,
2080
2085
  multiVisemesAdded: [],
2081
- currentReplyToId: undefined,
2082
- currentPlaying: undefined,
2083
- endedActivities: [],
2084
2086
  currentOrLastPlayedActivity: undefined,
2085
2087
  isMicrophoneAllowed: false,
2086
2088
  showMicrophoneModal: false,
@@ -2089,9 +2091,6 @@ const $df401eb9a10f9e0e$var$initialState = {
2089
2091
  lastRecognitionInterim: '',
2090
2092
  streamingReplyToId: null,
2091
2093
  streamingQueue: [],
2092
- streamingQueueForText: [],
2093
- currentStreaming: null,
2094
- streamingQueueFullLength: 0,
2095
2094
  streamingReplyToIdToIgnore: null,
2096
2095
  speechRecognitionDynamicGrammars: [],
2097
2096
  externalTextToSpeech: undefined
@@ -2228,22 +2227,6 @@ const $df401eb9a10f9e0e$var$createSpeechStore = (setRetorikEvent, getListStatus,
2228
2227
  if (getListStatus() !== (0, $7WHA7.ListStatus).opened) setListStatus((0, $7WHA7.ListStatus).available);
2229
2228
  }
2230
2229
  },
2231
- setCurrentReplyToId: (value)=>{
2232
- set({
2233
- currentReplyToId: value
2234
- });
2235
- },
2236
- setCurrentPlaying: (value)=>{
2237
- set({
2238
- currentPlaying: value
2239
- });
2240
- value && get().actions.setCurrentOrLastPlayedActivity(value);
2241
- },
2242
- setEndedActivities: (value)=>{
2243
- set({
2244
- endedActivities: value
2245
- });
2246
- },
2247
2230
  setIsMicrophoneAllowed: (value)=>{
2248
2231
  set({
2249
2232
  isMicrophoneAllowed: value
@@ -2305,72 +2288,45 @@ const $df401eb9a10f9e0e$var$createSpeechStore = (setRetorikEvent, getListStatus,
2305
2288
  streamingReplyToId: value
2306
2289
  });
2307
2290
  },
2308
- setStreamingQueue: (value)=>{
2309
- set({
2310
- streamingQueue: value,
2311
- streamingQueueForText: value
2312
- });
2313
- },
2314
2291
  addToStreamingQueue: (value)=>{
2315
- if (value.replyToId && value.replyToId !== get().streamingReplyToIdToIgnore) {
2316
- // Set replyToId and new queue if replyToId is different from the current one
2317
- if (get().streamingReplyToId !== value.replyToId) set({
2318
- streamingQueueFullLength: 0,
2319
- streamingReplyToId: value.replyToId,
2320
- streamingQueue: [
2321
- value
2322
- ],
2323
- streamingQueueForText: [
2324
- value
2325
- ]
2326
- });
2327
- else set({
2328
- streamingQueue: [
2329
- ...get().streamingQueue,
2330
- value
2331
- ],
2332
- streamingQueueForText: [
2333
- ...get().streamingQueueForText,
2334
- value
2335
- ]
2336
- });
2337
- }
2292
+ if (value.replyToId) {
2293
+ if (value.replyToId !== get().streamingReplyToIdToIgnore) {
2294
+ // Set replyToId and new queue if replyToId is different from the current one
2295
+ if (get().streamingReplyToId !== value.replyToId) set({
2296
+ streamingReplyToId: value.replyToId,
2297
+ streamingQueue: [
2298
+ value
2299
+ ]
2300
+ });
2301
+ else set({
2302
+ streamingQueue: [
2303
+ ...get().streamingQueue,
2304
+ value
2305
+ ]
2306
+ });
2307
+ }
2308
+ } else set({
2309
+ streamingQueue: [
2310
+ ...get().streamingQueue,
2311
+ value
2312
+ ]
2313
+ });
2338
2314
  },
2339
- removeFirstFromStreamingQueue: ()=>{
2340
- if (get().streamingQueue.length) {
2341
- const tempStreamingQueue = get().streamingQueue.slice();
2342
- tempStreamingQueue.splice(0, 1);
2343
- set({
2344
- streamingQueue: tempStreamingQueue
2345
- });
2346
- }
2315
+ // 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)
2316
+ removeFirstFromStreamingQueue: (twice)=>{
2317
+ set((state)=>({
2318
+ streamingQueue: state.streamingQueue.slice(twice ? 2 : 1)
2319
+ }));
2347
2320
  },
2348
2321
  killCurrentStreaming: ()=>{
2349
2322
  set({
2350
- streamingReplyToId: null,
2351
- streamingQueue: [],
2352
- streamingQueueForText: [],
2353
- currentStreaming: null,
2354
- streamingQueueFullLength: 0,
2355
- streamingReplyToIdToIgnore: get().streamingReplyToId
2323
+ streamingReplyToIdToIgnore: get().streamingReplyToId,
2324
+ streamingQueue: []
2356
2325
  });
2357
2326
  },
2358
2327
  checkActivityReplyToId: (replyToId)=>{
2359
2328
  get().streamingReplyToId !== replyToId && get().actions.killCurrentStreaming();
2360
2329
  },
2361
- setCurrentStreaming: (value)=>{
2362
- set({
2363
- currentStreaming: value
2364
- });
2365
- },
2366
- setStreamingQueueFullLength: (value, replyToId)=>{
2367
- if (replyToId) replyToId === get().streamingReplyToId && set({
2368
- streamingQueueFullLength: value
2369
- });
2370
- else set({
2371
- streamingQueueFullLength: value
2372
- });
2373
- },
2374
2330
  addSpeechRecognitionDynamicGrammar: (value)=>{
2375
2331
  const currentGrammars = get().speechRecognitionDynamicGrammars;
2376
2332
  // For each value, verifiy if it doesn't exist in the array yet
@@ -2790,7 +2746,7 @@ const $8fc061e3e1dc64cb$var$initialState = {
2790
2746
  queueLock: false
2791
2747
  };
2792
2748
  const $8fc061e3e1dc64cb$var$regexDataCommand = /(\{data-command=")[\p{L}\p{N}\p{Po}\p{Pd}\p{Pc}\s\u0027\u2019]+("\})(<br\s\/>)?/gu;
2793
- const $8fc061e3e1dc64cb$var$createActivityStore = (localeRef, isUsedOnBorneRef, inputHintBehaviourRef, setCurrentId, setRestoreInputsState, addToStreamingQueue, setStreamingQueueFullLength, setMode, unlockClickedButton, setSubmitDelayBeforeSendingMessage, setIsWaitingForResponse, setSendBoxPlaceHolder)=>{
2749
+ const $8fc061e3e1dc64cb$var$createActivityStore = (localeRef, isUsedOnBorneRef, inputHintBehaviourRef, setCurrentId, setRestoreInputsState, addToStreamingQueue, setMode, unlockClickedButton, setSubmitDelayBeforeSendingMessage, setIsWaitingForResponse, setSendBoxPlaceHolder)=>{
2794
2750
  return (0, $dWhh5$zustand.createStore)((set, get)=>{
2795
2751
  return {
2796
2752
  ...$8fc061e3e1dc64cb$var$initialState,
@@ -2855,7 +2811,7 @@ const $8fc061e3e1dc64cb$var$createActivityStore = (localeRef, isUsedOnBorneRef,
2855
2811
  currentActivity.type === 'message' ? await get().actions.processAddBotMessage(currentActivity) : await get().actions.processAddBotEvent(currentActivity);
2856
2812
  // Remove the first element from the queue (the one that got processed above) and process the queue once again
2857
2813
  set({
2858
- queue: get().queue.slice().splice(1)
2814
+ queue: get().queue.slice(1)
2859
2815
  });
2860
2816
  get().actions.processQueue();
2861
2817
  } else set({
@@ -2863,12 +2819,11 @@ const $8fc061e3e1dc64cb$var$createActivityStore = (localeRef, isUsedOnBorneRef,
2863
2819
  });
2864
2820
  },
2865
2821
  processAddBotMessage: async (value)=>{
2866
- var _value_value;
2867
2822
  setCurrentId(undefined);
2868
2823
  const processedActivity = await get().actions.processBotMessageActivity(value);
2869
- // If this activity is the one concluding a streaming, let's set the amount of streams previously generated
2870
- if (!get().retrievingConversation && ((_value_value = value.value) === null || _value_value === void 0 ? void 0 : _value_value.streamingCount)) setStreamingQueueFullLength(value.value.streamingCount, value.replyToId);
2871
2824
  const tempActivity = get().retrievingConversation ? undefined : processedActivity;
2825
+ // Add this activity to the streaming queue if we are not in conversation retrieval process
2826
+ !get().retrievingConversation && addToStreamingQueue(processedActivity);
2872
2827
  set({
2873
2828
  activities: [
2874
2829
  ...get().activities,
@@ -2910,6 +2865,29 @@ const $8fc061e3e1dc64cb$var$createActivityStore = (localeRef, isUsedOnBorneRef,
2910
2865
  }
2911
2866
  },
2912
2867
  processAddBotEvent: async (value)=>{
2868
+ var _value_name, _value_text;
2869
+ const streamingMap = new Map(get().botStreamingActivities);
2870
+ // Deal with streaming activities
2871
+ if (((_value_name = value.name) === null || _value_name === void 0 ? void 0 : _value_name.toLowerCase()) === 'davi.streammessageactivity') // Add this activity to the streaming queue if we are not in conversation retrieval process
2872
+ {
2873
+ if (((_value_text = value.text) === null || _value_text === void 0 ? void 0 : _value_text.trim().length) && !get().retrievingConversation) {
2874
+ // Create speak field from the text one
2875
+ const processedText = (0, $pFs7y.processMarkdownAndSpeechMarkdown)(value.text, true);
2876
+ value.speak = processedText.text;
2877
+ value.htmlText = processedText.htmlText;
2878
+ addToStreamingQueue(value);
2879
+ // Set data in the Map for text display
2880
+ if (value.replyToId) {
2881
+ const currentStreamingData = streamingMap.get(value.replyToId);
2882
+ currentStreamingData ? streamingMap.set(value.replyToId, [
2883
+ ...currentStreamingData,
2884
+ value
2885
+ ]) : streamingMap.set(value.replyToId, [
2886
+ value
2887
+ ]);
2888
+ }
2889
+ }
2890
+ }
2913
2891
  set({
2914
2892
  activities: [
2915
2893
  ...get().activities,
@@ -2927,38 +2905,16 @@ const $8fc061e3e1dc64cb$var$createActivityStore = (localeRef, isUsedOnBorneRef,
2927
2905
  ],
2928
2906
  lastBotEventActivity: value,
2929
2907
  lastEventActivity: value,
2908
+ botStreamingActivities: streamingMap,
2930
2909
  watermark: get().watermark + 1
2931
2910
  });
2932
2911
  Promise.resolve();
2933
2912
  },
2934
2913
  addBotEvent: async (value)=>{
2935
2914
  if (get().actions.checkCurrentConversationId(value.id)) {
2936
- var _value_name, _value_text, _value_name1;
2937
- if (((_value_name = value.name) === null || _value_name === void 0 ? void 0 : _value_name.toLowerCase()) === 'davi.streammessageactivity') {
2938
- if (((_value_text = value.text) === null || _value_text === void 0 ? void 0 : _value_text.trim().length) && !get().retrievingConversation) {
2939
- setIsWaitingForResponse(false);
2940
- // Create speak field from the text one
2941
- const processedText = (0, $pFs7y.processMarkdownAndSpeechMarkdown)(value.text, true);
2942
- value.speak = processedText.text;
2943
- value.htmlText = processedText.htmlText;
2944
- addToStreamingQueue(value);
2945
- if (value.replyToId) {
2946
- const currentStreamingMap = new Map(get().botStreamingActivities);
2947
- const currentStreamingData = currentStreamingMap.get(value.replyToId);
2948
- currentStreamingData ? currentStreamingMap.set(value.replyToId, [
2949
- ...currentStreamingData,
2950
- value
2951
- ]) : currentStreamingMap.set(value.replyToId, [
2952
- value
2953
- ]);
2954
- set({
2955
- botStreamingActivities: currentStreamingMap,
2956
- watermark: get().watermark + 1
2957
- });
2958
- }
2959
- unlockClickedButton();
2960
- }
2961
- } else if (((_value_name1 = value.name) === null || _value_name1 === void 0 ? void 0 : _value_name1.toLowerCase()) === 'switchtotextmode') {
2915
+ var _value_name;
2916
+ //
2917
+ if (((_value_name = value.name) === null || _value_name === void 0 ? void 0 : _value_name.toLowerCase()) === 'switchtotextmode') {
2962
2918
  setMode((0, $7WHA7.Mode).text);
2963
2919
  set({
2964
2920
  watermark: get().watermark + 1
@@ -3233,10 +3189,10 @@ const $8fc061e3e1dc64cb$var$ActivityProvider = ({ children: children })=>{
3233
3189
  const isUsedOnBorneRef = (0, $dWhh5$react.useRef)(false);
3234
3190
  const inputHintBehaviourRef = (0, $dWhh5$react.useRef)(undefined);
3235
3191
  const { setCurrentId: setCurrentId, setRestoreInputsState: setRestoreInputsState } = (0, $8AvjS.useAdaptiveCardStore)((state)=>state.actions);
3236
- const { addToStreamingQueue: addToStreamingQueue, setStreamingQueueFullLength: setStreamingQueueFullLength, setMode: setMode } = (0, $jgaO0.useSpeechStore)((state)=>state.actions);
3192
+ const { addToStreamingQueue: addToStreamingQueue, setMode: setMode } = (0, $jgaO0.useSpeechStore)((state)=>state.actions);
3237
3193
  const unlockClickedButton = (0, $7eio0.useUtilsStore)((state)=>state.actions.unlockClickedButton);
3238
3194
  const { setSubmitDelayBeforeSendingMessage: setSubmitDelayBeforeSendingMessage, setIsWaitingForResponse: setIsWaitingForResponse, setSendBoxPlaceHolder: setSendBoxPlaceHolder } = (0, $6EkQS.useRetorikStore)((state)=>state.actions);
3239
- const [store] = (0, $dWhh5$react.useState)(()=>$8fc061e3e1dc64cb$var$createActivityStore(localeRef, isUsedOnBorneRef, inputHintBehaviourRef, setCurrentId, setRestoreInputsState, addToStreamingQueue, setStreamingQueueFullLength, setMode, unlockClickedButton, setSubmitDelayBeforeSendingMessage, setIsWaitingForResponse, setSendBoxPlaceHolder));
3195
+ const [store] = (0, $dWhh5$react.useState)(()=>$8fc061e3e1dc64cb$var$createActivityStore(localeRef, isUsedOnBorneRef, inputHintBehaviourRef, setCurrentId, setRestoreInputsState, addToStreamingQueue, setMode, unlockClickedButton, setSubmitDelayBeforeSendingMessage, setIsWaitingForResponse, setSendBoxPlaceHolder));
3240
3196
  (0, $dWhh5$react.useEffect)(()=>{
3241
3197
  localeRef.current = locale;
3242
3198
  }, [
@@ -4164,7 +4120,7 @@ const $328a7f03b0982320$var$createDirectlineStore = (modeRef, recognitionStateRe
4164
4120
  if (get().actions.checkIfHandlerAbortsActivity((0, $3DDGn.LegacyDirectLineActivityType).SEND_MESSAGE, tempActivity)) return;
4165
4121
  (_get_directLine = get().directLine) === null || _get_directLine === void 0 ? void 0 : _get_directLine.postActivity(tempActivity).subscribe();
4166
4122
  },
4167
- sendEvent: (name, value)=>{
4123
+ sendEvent: (name, value, callback)=>{
4168
4124
  var _get_directLine;
4169
4125
  if (get().conversationPaused) return;
4170
4126
  !name.toLowerCase().includes('davi.closewindow') && !$328a7f03b0982320$var$eventsWithoutCancel.includes(name.toLowerCase()) && get().actions.checkMicrophoneAndCancel();
@@ -4184,7 +4140,10 @@ const $328a7f03b0982320$var$createDirectlineStore = (modeRef, recognitionStateRe
4184
4140
  // Check if the event should be stopped in the external activity handler if there is one
4185
4141
  if (get().actions.checkIfHandlerAbortsActivity((0, $3DDGn.LegacyDirectLineActivityType).POST_ACTIVITY, tempEvent)) return;
4186
4142
  if (get().actions.checkIfHandlerAbortsActivity((0, $3DDGn.LegacyDirectLineActivityType).SEND_EVENT, tempEvent)) return;
4187
- (_get_directLine = get().directLine) === null || _get_directLine === void 0 ? void 0 : _get_directLine.postActivity(tempEvent).subscribe();
4143
+ (_get_directLine = get().directLine) === null || _get_directLine === void 0 ? void 0 : _get_directLine.postActivity(tempEvent).subscribe({
4144
+ error: (error)=>console.log('Retorik Framework > error while sending event : ', error),
4145
+ complete: ()=>callback === null || callback === void 0 ? void 0 : callback()
4146
+ });
4188
4147
  },
4189
4148
  sendTyping: ()=>{
4190
4149
  var _get_directLine;
@@ -4392,7 +4351,7 @@ var $c8770452d727244a$export$2e2bcd8739ae039 = $c8770452d727244a$var$activityMid
4392
4351
  });
4393
4352
 
4394
4353
  parcelRegister("93cl9", function(module, exports) {
4395
- 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}}");
4354
+ 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}}");
4396
4355
 
4397
4356
  });
4398
4357
 
@@ -5506,23 +5465,24 @@ const $071bb34c9db044ce$var$SendActivityEventListener = ({ isRetorikNews: isReto
5506
5465
  document.removeEventListener('retorikSetVisibility', handleEvents);
5507
5466
  };
5508
5467
  }, []);
5509
- (0, $dWhh5$react.useEffect)(()=>{
5510
- if (isRetorikNews || hasConversationCookie) setUserAlreadySet(true);
5511
- else if (!userAlreadySet && appAvailable && !displayGDPR && characterLoaded) {
5512
- setUserAlreadySet(true);
5513
- // Send mandatory events : setUser to start conversation, Davi.GDPRConsent for GDPR module
5514
- sendEvent('setUser', {
5468
+ /**
5469
+ * Send mandatory events : setUser to start conversation, Davi.GDPRConsent for GDPR module
5470
+ */ const sendMandatoryEvents = async ()=>{
5471
+ sendEvent('Davi.GDPRConsent', {
5472
+ userConsent: userConsent
5473
+ }, ()=>sendEvent('setUser', {
5515
5474
  user: {
5516
5475
  ...userData,
5517
5476
  gdprConsent: true
5518
5477
  },
5519
5478
  skipWelcome: !!skipWelcome
5520
- });
5521
- setTimeout(()=>{
5522
- sendEvent('Davi.GDPRConsent', {
5523
- userConsent: userConsent
5524
- });
5525
- }, 100);
5479
+ }));
5480
+ };
5481
+ (0, $dWhh5$react.useEffect)(()=>{
5482
+ if (isRetorikNews || hasConversationCookie) setUserAlreadySet(true);
5483
+ else if (!userAlreadySet && appAvailable && !displayGDPR && characterLoaded) {
5484
+ setUserAlreadySet(true);
5485
+ sendMandatoryEvents();
5526
5486
  }
5527
5487
  }, [
5528
5488
  appAvailable,
@@ -6876,15 +6836,12 @@ $parcel$export(module.exports, "default", () => $f30fe7aba51bf78e$export$2e2bcd8
6876
6836
 
6877
6837
  var $kUiCn = parcelRequire("kUiCn");
6878
6838
 
6879
- var $6Q0mk = parcelRequire("6Q0mk");
6880
-
6881
6839
  var $9CCS6 = parcelRequire("9CCS6");
6882
6840
 
6883
6841
  var $isGku = parcelRequire("isGku");
6884
6842
 
6885
6843
  var $2sEP7 = parcelRequire("2sEP7");
6886
6844
  const $f30fe7aba51bf78e$var$Background = ({ config: config, videoLoop: videoLoop, videoMuted: videoMuted, onVideoEnded: onVideoEnded, onVideoCanPlay: onVideoCanPlay })=>{
6887
- const isRTL = (0, $6Q0mk.useLocaleStore)((state)=>state.isRTL);
6888
6845
  const webcamRotation = (0, $kUiCn.useViewStore)((state)=>state.configurations).webcamRotation;
6889
6846
  const imageRef = (0, $dWhh5$react.useRef)(null);
6890
6847
  const dimensions = (0, $9CCS6.default)(imageRef);
@@ -6936,12 +6893,7 @@ const $f30fe7aba51bf78e$var$Background = ({ config: config, videoLoop: videoLoop
6936
6893
  ref: imageRef,
6937
6894
  src: config.image,
6938
6895
  alt: "background image",
6939
- className: "rf-col-span-full rf-row-span-full rf-w-full rf-h-full rf-object-cover rf-filter rf-blur-background",
6940
- style: {
6941
- ...isRTL ? {
6942
- transform: 'scaleX(-1)'
6943
- } : {}
6944
- }
6896
+ className: "rf-col-span-full rf-row-span-full rf-w-full rf-h-full rf-object-cover rf-filter rf-blur-background"
6945
6897
  }),
6946
6898
  config.style === 'video' && config.video && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $isGku.default), {
6947
6899
  source: config.video,
@@ -7134,7 +7086,7 @@ const $de01a0272b83cb88$var$CloseButton = ({ onClick: onClick, label: label, cla
7134
7086
  return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("button", {
7135
7087
  "aria-label": label || translation.common.close,
7136
7088
  onClick: onClick,
7137
- 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`,
7089
+ className: `${className} rf-absolute rf-flex rf-flex-col rf-items-center rf-right-0 rf-top-0 rf-p-2`,
7138
7090
  children: [
7139
7091
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $6FBQK.default), {
7140
7092
  className: "rf-h-6 rf-w-6"
@@ -7395,7 +7347,7 @@ var $6EkQS = parcelRequire("6EkQS");
7395
7347
  const $e126bc061f6f032b$var$FullScreenRemote = ({ className: className, background: background, onClick: onClick, animation: animation, children: children })=>{
7396
7348
  const useOldRemote = (0, $6EkQS.useRetorikStore)((state)=>state.configuration.useOldRemote);
7397
7349
  return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $dWhh5$reactspringweb.animated).div, {
7398
- className: `${useOldRemote ? (className === null || className === void 0 ? void 0 : 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}`,
7350
+ className: `${useOldRemote ? (className === null || className === void 0 ? void 0 : 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}`,
7399
7351
  style: {
7400
7352
  background: background || '',
7401
7353
  outline: '1px solid transparent',
@@ -7677,7 +7629,6 @@ const $7a4829033e41af4d$var$springEnterDuration = 1500;
7677
7629
  const $7a4829033e41af4d$var$springLeaveDuration = 2500;
7678
7630
  const $7a4829033e41af4d$var$List = ({ activity: activity, onClose: onClose })=>{
7679
7631
  var _content_channelData, _content_suggestedActions_actions, _content_suggestedActions, _content_channelData1, _content_suggestedActions_actions1, _content_suggestedActions1;
7680
- const isRTL = (0, $6Q0mk.useLocaleStore)((state)=>state.isRTL);
7681
7632
  const mode = (0, $jgaO0.useSpeechStore)((state)=>state.mode);
7682
7633
  const useOldRemote = (0, $6EkQS.useRetorikStore)((state)=>state.configuration.useOldRemote);
7683
7634
  const isMobile = (0, $kUiCn.useViewStore)((state)=>state.isMobile);
@@ -7710,7 +7661,7 @@ const $7a4829033e41af4d$var$List = ({ activity: activity, onClose: onClose })=>{
7710
7661
  setListStatus((0, $7WHA7.ListStatus).opened);
7711
7662
  api.start({
7712
7663
  from: {
7713
- transform: isRTL ? 'translateX(100%)' : 'translateX(-100%)'
7664
+ transform: 'translateX(-100%)'
7714
7665
  },
7715
7666
  to: {
7716
7667
  transform: 'translateX(0%)'
@@ -7728,7 +7679,7 @@ const $7a4829033e41af4d$var$List = ({ activity: activity, onClose: onClose })=>{
7728
7679
  transform: 'translateX(0%)'
7729
7680
  },
7730
7681
  to: {
7731
- transform: isRTL ? 'translateX(100%)' : 'translateX(-100%)'
7682
+ transform: 'translateX(-100%)'
7732
7683
  },
7733
7684
  config: {
7734
7685
  duration: $7a4829033e41af4d$var$springLeaveDuration,
@@ -7738,8 +7689,7 @@ const $7a4829033e41af4d$var$List = ({ activity: activity, onClose: onClose })=>{
7738
7689
  if (timerRef) {
7739
7690
  timerRef.current && clearTimeout(timerRef.current);
7740
7691
  timerRef.current = setTimeout(()=>{
7741
- sendEvent('Davi.CloseWindow', null);
7742
- sendEvent('Davi.CloseWindowList', null);
7692
+ sendEvent('Davi.CloseWindow', null, ()=>sendEvent('Davi.CloseWindowList', null));
7743
7693
  onClose === null || onClose === void 0 ? void 0 : onClose();
7744
7694
  setContent(undefined);
7745
7695
  }, $7a4829033e41af4d$var$springLeaveDuration);
@@ -7799,7 +7749,6 @@ const $7a4829033e41af4d$var$List = ({ activity: activity, onClose: onClose })=>{
7799
7749
  (0, $dWhh5$react.useEffect)(()=>{
7800
7750
  handleOpen();
7801
7751
  return ()=>{
7802
- console.log('in return');
7803
7752
  setListStatus((0, $7WHA7.ListStatus).closed);
7804
7753
  (timerRef === null || timerRef === void 0 ? void 0 : timerRef.current) && clearTimeout(timerRef.current);
7805
7754
  };
@@ -7827,7 +7776,7 @@ const $7a4829033e41af4d$var$List = ({ activity: activity, onClose: onClose })=>{
7827
7776
  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]`,
7828
7777
  children: [
7829
7778
  content.text && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $lpNaX.default), {
7830
- 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",
7779
+ className: "rf-ml-2 rf-mt-8 large:rf-ml-0 large:rf-mt-0",
7831
7780
  title: (0, $9JtA7.capitalizeFirstLetter)(content.text, locale),
7832
7781
  numberOfResults: ((_content_channelData = content.channelData) === null || _content_channelData === void 0 ? void 0 : _content_channelData.numberOfResults) || 0
7833
7782
  }),
@@ -7888,10 +7837,10 @@ const $5bc6fe51bef2c22d$var$Title = ({ className: className, title: title, numbe
7888
7837
  children: title
7889
7838
  }),
7890
7839
  numberOfResults !== undefined && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
7891
- className: "rf-text-gray large:ltr:rf-ml-4 large:rtl:rf-mr-4",
7840
+ className: "rf-text-gray large:rf-ml-4",
7892
7841
  children: [
7893
7842
  numberOfResults,
7894
- ' ',
7843
+ " ",
7895
7844
  numberOfResults > 1 ? translation.common.results : translation.common.result
7896
7845
  ]
7897
7846
  })
@@ -7981,7 +7930,7 @@ const $c969b5c19dfc0002$var$ChosenItem = ({ className: className, filterItem: fi
7981
7930
  ]),
7982
7931
  children: [
7983
7932
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
7984
- className: "ltr:rf-mr-2 rtl:rf-ml-2 large:ltr:rf-mr-3 large:rtl:rf-ml-3",
7933
+ className: "rf-mr-2 large:rf-mr-3",
7985
7934
  children: parent.id === 'Event.DateRange' ? `${filterItem.name.substring(8, 10)}/${filterItem.name.substring(5, 7)}/${filterItem.name.substring(0, 4)}` : (0, $9JtA7.capitalizeFirstLetter)(filterItem.name, locale)
7986
7935
  }),
7987
7936
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $6FBQK.default), {
@@ -8032,18 +7981,18 @@ const $bf3385ff4ec0cb17$var$FilterItem = ({ className: className, identifier: id
8032
7981
  className: "rf-relative rf-mt-1",
8033
7982
  children: [
8034
7983
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
8035
- 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}`,
7984
+ 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}`,
8036
7985
  onClick: (e)=>handleOpen(e),
8037
7986
  children: [
8038
7987
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
8039
- className: "ltr:rf-mr-3 rtl:rf-ml-3",
7988
+ className: "rf-mr-3",
8040
7989
  children: (0, $9JtA7.capitalizeFirstLetter)(filter.title, locale)
8041
7990
  }),
8042
7991
  opened ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $lCcoT.default), {}) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $4tTc6.default), {})
8043
7992
  ]
8044
7993
  }),
8045
7994
  opened && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
8046
- 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",
7995
+ 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",
8047
7996
  style: {
8048
7997
  transform: filter.id === 'Event.DateRange' && !isMobile ? 'translate(-20%, -20%) scale(0.6, 0.6)' : ''
8049
7998
  },
@@ -9519,7 +9468,7 @@ const $9414f5da5cffd1d7$var$MobileFilterPage = ({ close: close, resetFilters: re
9519
9468
  className: "rf-flex rf-items-center",
9520
9469
  children: [
9521
9470
  filter.id !== 'Event.DateRange' && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
9522
- className: "rf-text-sm rf-text-gray ltr:rf-mr-5 rtl:rf-ml-5",
9471
+ className: "rf-text-sm rf-text-gray rf-mr-5",
9523
9472
  onClick: ()=>handleSelectAllAndOpen(filter),
9524
9473
  children: (0, $9JtA7.capitalizeFirstLetter)(translation.common.all, locale)
9525
9474
  }),
@@ -9550,6 +9499,7 @@ parcelRequire("g8vvH");
9550
9499
  var $8hLdy = parcelRequire("8hLdy");
9551
9500
  const $b8175b375cd08833$var$MobileUpperBand = ({ title: title, handleReset: handleReset, handleReturn: handleReturn })=>{
9552
9501
  const translation = (0, $6Q0mk.useLocaleStore)((state)=>state.currentTranslations);
9502
+ const isRTL = (0, $6Q0mk.useLocaleStore)((state)=>state.isRTL);
9553
9503
  return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
9554
9504
  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",
9555
9505
  children: [
@@ -9561,13 +9511,13 @@ const $b8175b375cd08833$var$MobileUpperBand = ({ title: title, handleReset: hand
9561
9511
  className: "rf-w-8"
9562
9512
  }),
9563
9513
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
9564
- className: "ltr:rf-ml-1 rtl:rf-mr-1",
9514
+ className: "rf-ml-1",
9565
9515
  children: title
9566
9516
  })
9567
9517
  ]
9568
9518
  }),
9569
9519
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
9570
- className: "ltr:rf-text-xsm rtl:rf-text-arabic rf-uppercase rf-text-secondary rf-underline",
9520
+ className: `${isRTL ? 'rf-text-arabic' : 'rf-text-xsm'} rf-uppercase rf-text-secondary rf-underline`,
9571
9521
  onClick: handleReset,
9572
9522
  children: translation.template.reset
9573
9523
  })
@@ -9704,24 +9654,18 @@ $parcel$export(module.exports, "default", () => $a0e7200eb5fb20c5$export$2e2bcd8
9704
9654
  var $9JtA7 = parcelRequire("9JtA7");
9705
9655
  parcelRequire("g8vvH");
9706
9656
  var $8hLdy = parcelRequire("8hLdy");
9707
- var $9GBKn = parcelRequire("9GBKn");
9708
-
9709
- var $6Q0mk = parcelRequire("6Q0mk");
9710
9657
  const $a0e7200eb5fb20c5$var$BackButton = ({ title: title, className: className, handleBack: handleBack })=>{
9711
- const isRTL = (0, $6Q0mk.useLocaleStore)((state)=>state.isRTL);
9712
9658
  return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("button", {
9713
9659
  className: `rf-flex rf-flex-row rf-items-center ${className}`,
9714
9660
  onClick: handleBack,
9715
9661
  "aria-label": title,
9716
9662
  "data-map": "fermer",
9717
9663
  children: [
9718
- isRTL ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $9GBKn.default), {
9719
- className: "rf-w-8"
9720
- }) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $8hLdy.default), {
9664
+ /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $8hLdy.default), {
9721
9665
  className: "rf-w-8"
9722
9666
  }),
9723
9667
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
9724
- className: "ltr:rf-ml-1 rtl:rf-mr-1",
9668
+ className: "rf-ml-1",
9725
9669
  children: (0, $9JtA7.capitalizeFirstLetter)(title)
9726
9670
  })
9727
9671
  ]
@@ -9851,7 +9795,7 @@ const $e30af8373281dae5$var$AbsoluteLargeClosingButton = ({ dashboardVisible: da
9851
9795
  onClick();
9852
9796
  };
9853
9797
  return isMobile ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {}) : useOldRemote ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
9854
- 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'}`,
9798
+ className: `rf-absolute ${hidden && 'rf-hidden'} rf-w-24 rf-flex rf-justify-center rf-right-0 ${zIndexClassname || 'rf-z-ui'}`,
9855
9799
  style: {
9856
9800
  top: hideMenu ? `calc(${top} - 6rem)` : top
9857
9801
  },
@@ -9921,6 +9865,7 @@ var $6FBQK = parcelRequire("6FBQK");
9921
9865
  const $579744d25642d716$var$DashboardButton = ({ dashboardVisible: dashboardVisible, onClick: onClick })=>{
9922
9866
  const translation = (0, $6Q0mk.useLocaleStore)((state)=>state.currentTranslations);
9923
9867
  const locale = (0, $6Q0mk.useLocaleStore)((state)=>state.locale);
9868
+ const isRTL = (0, $6Q0mk.useLocaleStore)((state)=>state.isRTL);
9924
9869
  const [label, setLabel] = (0, $dWhh5$react.useState)('');
9925
9870
  (0, $dWhh5$react.useEffect)(()=>{
9926
9871
  setLabel(dashboardVisible ? translation.common.close : translation.common.menu);
@@ -9928,7 +9873,7 @@ const $579744d25642d716$var$DashboardButton = ({ dashboardVisible: dashboardVisi
9928
9873
  locale
9929
9874
  ]);
9930
9875
  return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("button", {
9931
- 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]",
9876
+ 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]`,
9932
9877
  "aria-label": label,
9933
9878
  // data-map used in interactive map to use this button externaly
9934
9879
  "data-map": dashboardVisible ? 'fermer' : 'dashboard',
@@ -10171,7 +10116,7 @@ const $85e61aba8b9a5198$var$Logo = ({ className: className })=>{
10171
10116
  const configuration = (0, $6EkQS.useRetorikStore)((state)=>state.configuration);
10172
10117
  return ((_configuration_logo = configuration.logo) === null || _configuration_logo === void 0 ? void 0 : _configuration_logo.src) ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
10173
10118
  id: "retorik-customer-logo",
10174
- className: className || 'rf-absolute rf-m-4 large:rf-m-8 rf-top-0 ltr:rf-left-0 rtl:rf-right-0',
10119
+ className: className || 'rf-absolute rf-m-4 large:rf-m-8 rf-top-0 rf-left-0',
10175
10120
  children: /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("img", {
10176
10121
  src: configuration.logo.src,
10177
10122
  alt: "Logo",
@@ -10308,6 +10253,7 @@ function $4a98cd521d2d07ef$var$instanceOfCustomMenuDisplayGeneratorProps(object)
10308
10253
  const $4a98cd521d2d07ef$var$DisplayGenerator = (props)=>{
10309
10254
  const translation = (0, $6Q0mk.useLocaleStore)((state)=>state.currentTranslations);
10310
10255
  const locale = (0, $6Q0mk.useLocaleStore)((state)=>state.locale);
10256
+ const isRTL = (0, $6Q0mk.useLocaleStore)((state)=>state.isRTL);
10311
10257
  const isMobile = (0, $kUiCn.useViewStore)((state)=>state.isMobile);
10312
10258
  const themeColors = (0, $kUiCn.useViewStore)((state)=>state.themeColors);
10313
10259
  const setRoute = (0, $kUiCn.useViewStore)((state)=>state.actions.setRoute);
@@ -10387,7 +10333,7 @@ const $4a98cd521d2d07ef$var$DisplayGenerator = (props)=>{
10387
10333
  color: colorButtonHandle
10388
10334
  }),
10389
10335
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
10390
- className: "ltr:rf-ml-4 rtl:rf-mr-4 rf-font-bold",
10336
+ className: "rf-ml-4 rf-font-bold",
10391
10337
  children: (0, $9JtA7.capitalizeFirstLetter)(label, locale)
10392
10338
  })
10393
10339
  ]
@@ -10408,7 +10354,7 @@ const $4a98cd521d2d07ef$var$DisplayGenerator = (props)=>{
10408
10354
  color: colorButtonHandle
10409
10355
  }),
10410
10356
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
10411
- className: "rf-uppercase rf-text-[#575F6B] ltr:rf-text-xs rtl:rf-text-arabic large-vertical:rf-text-basecustomuppercase",
10357
+ className: `rf-uppercase rf-text-[#575F6B] ${isRTL ? 'rf-text-arabic' : 'rf-text-xs'} large-vertical:rf-text-basecustomuppercase`,
10412
10358
  children: label
10413
10359
  })
10414
10360
  ]
@@ -11076,6 +11022,7 @@ function $a16df460e030efa9$var$instanceOfCustomMenuDisplayGeneratorProps(object)
11076
11022
  const $a16df460e030efa9$var$DisplaySubGenerator = (props)=>{
11077
11023
  const translation = (0, $6Q0mk.useLocaleStore)((state)=>state.currentTranslations);
11078
11024
  const locale = (0, $6Q0mk.useLocaleStore)((state)=>state.locale);
11025
+ const isRTL = (0, $6Q0mk.useLocaleStore)((state)=>state.isRTL);
11079
11026
  const isMobile = (0, $kUiCn.useViewStore)((state)=>state.isMobile);
11080
11027
  const { setCurrentCustomView: setCurrentCustomView, setCurrentSubView: setCurrentSubView } = (0, $7eio0.useUtilsStore)((state)=>state.actions);
11081
11028
  const [label, setLabel] = (0, $dWhh5$react.useState)('');
@@ -11135,7 +11082,7 @@ const $a16df460e030efa9$var$DisplaySubGenerator = (props)=>{
11135
11082
  className: "rf-h-8 rf-w-8 rf-flex"
11136
11083
  }),
11137
11084
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
11138
- className: "rf-uppercase rf-text-[#575F6B] ltr:rf-text-xs rtl:rf-text-arabic",
11085
+ className: `rf-uppercase rf-text-[#575F6B] ${isRTL ? 'rf-text-arabic' : 'rf-text-xs'}`,
11139
11086
  children: label
11140
11087
  })
11141
11088
  ]
@@ -11232,7 +11179,7 @@ const $eba1371e77343bf7$var$ParameterButton = ({ title: title, color: color, ico
11232
11179
  className: "rf-flex rf-flex-row rf-items-center",
11233
11180
  children: [
11234
11181
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
11235
- className: "ltr:rf-mr-3 rtl:rf-ml-3 rf-text-lightgray rf-normal-case",
11182
+ className: "rf-mr-3 rf-text-lightgray rf-normal-case",
11236
11183
  children: (0, (/*@__PURE__*/$parcel$interopDefault($exo5b)))[locale]
11237
11184
  }),
11238
11185
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $a4tZ1.default), {
@@ -11262,7 +11209,7 @@ const $eba1371e77343bf7$var$ParameterButton = ({ title: title, color: color, ico
11262
11209
  color: color
11263
11210
  }) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {}),
11264
11211
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
11265
- className: "ltr:rf-ml-1 rtl:rf-mr-1 rf-uppercase",
11212
+ className: "rf-ml-1 rf-uppercase",
11266
11213
  children: title
11267
11214
  })
11268
11215
  ]
@@ -11304,6 +11251,7 @@ var $5Hlko = parcelRequire("5Hlko");
11304
11251
  const $f19fa486c3780055$var$LanguageButton = ()=>{
11305
11252
  const translation = (0, $6Q0mk.useLocaleStore)((state)=>state.currentTranslations);
11306
11253
  const locale = (0, $6Q0mk.useLocaleStore)((state)=>state.locale);
11254
+ const isRTL = (0, $6Q0mk.useLocaleStore)((state)=>state.isRTL);
11307
11255
  const supported = (0, $6Q0mk.useLocaleStore)((state)=>state.supported);
11308
11256
  const isMobile = (0, $kUiCn.useViewStore)((state)=>state.isMobile);
11309
11257
  const themeColors = (0, $kUiCn.useViewStore)((state)=>state.themeColors);
@@ -11351,7 +11299,7 @@ const $f19fa486c3780055$var$LanguageButton = ()=>{
11351
11299
  color: currentSubView === (0, $7WHA7.CurrentSubView).languages ? themeColors.secondary : '#A4A7AF',
11352
11300
  onClick: (e)=>handleClick(e)
11353
11301
  }) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("button", {
11354
- 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",
11302
+ 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",
11355
11303
  style: {
11356
11304
  bottom: bottom,
11357
11305
  background: 'linear-gradient(#F8F8FC, #EDEEF3)'
@@ -11359,14 +11307,14 @@ const $f19fa486c3780055$var$LanguageButton = ()=>{
11359
11307
  onClick: handleClick,
11360
11308
  children: [
11361
11309
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
11362
- className: "rf-h-8 ltr:rf-mr-2 rtl:rf-ml-2",
11310
+ className: "rf-h-8 rf-mr-2",
11363
11311
  children: /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("img", {
11364
11312
  className: "rf-h-full",
11365
11313
  src: `https://flagsapi.com/${mainLocale}/flat/64.png`
11366
11314
  })
11367
11315
  }),
11368
11316
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
11369
- className: "rf-flex rf-flex-col rf-items-start ltr:rf-text-xsm rtl:rf-text-arabic",
11317
+ className: `rf-flex rf-flex-col rf-items-start ${isRTL ? 'rf-text-arabic' : 'rf-text-xsm'}`,
11370
11318
  children: [
11371
11319
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
11372
11320
  className: "rf-text-trueblack",
@@ -12237,7 +12185,7 @@ const $a0c42cb8428afc95$var$ListContainer = ({ hasFilterOrSuggestedAction: hasFi
12237
12185
  direction: "top",
12238
12186
  display: !!((numberOfDisplayed === null || numberOfDisplayed === void 0 ? void 0 : numberOfDisplayed.current) && numberOfDisplayed.current > currentPagination),
12239
12187
  scrollHandler: ()=>scrollToRef(),
12240
- 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"
12188
+ 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"
12241
12189
  })
12242
12190
  ]
12243
12191
  }) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {});
@@ -12923,14 +12871,14 @@ const $0c620924e8f94c0c$var$ClassicButton = ({ url: url, text: text, description
12923
12871
  href: url,
12924
12872
  target: "_blank",
12925
12873
  rel: "noopener noreferrer",
12926
- className: "rf-card-button rf-flex ltr:rf-flex-row rtl:rf-flex-row-reverse rf-items-center",
12874
+ className: "rf-card-button rf-flex rf-items-center",
12927
12875
  children: [
12928
12876
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
12929
12877
  className: "rf-h-6 rf-w-6",
12930
12878
  children: download ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $9zvhm.default), {}) : isRTL ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $8hLdy.default), {}) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $9GBKn.default), {})
12931
12879
  }),
12932
12880
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
12933
- className: "ltr:rf-ml-2 rtl:rf-mr-2 rf-truncate",
12881
+ className: `${isRTL ? 'rf-mr-2' : 'rf-ml-2'} rf-truncate`,
12934
12882
  children: text || ''
12935
12883
  })
12936
12884
  ]
@@ -12984,7 +12932,7 @@ const $1da9b465d48442d4$var$BorderlessButton = ({ url: url, text: text, download
12984
12932
  })
12985
12933
  }),
12986
12934
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
12987
- className: "ltr:rf-ml-4 rtl:rf-mr-4",
12935
+ className: `${isRTL ? 'rf-mr-4' : 'rf-ml-4'}`,
12988
12936
  children: text || ''
12989
12937
  })
12990
12938
  ]
@@ -13448,6 +13396,7 @@ parcelRequire("60kUR");
13448
13396
  var $318SX = parcelRequire("318SX");
13449
13397
  const $cd5d3a6d052e0c77$var$SuggestionAttachment = ({ suggestions: suggestions, title: title, description: description, height: height, history: history, showTutorial: showTutorial })=>{
13450
13398
  const translation = (0, $6Q0mk.useLocaleStore)((state)=>state.currentTranslations);
13399
+ const isRTL = (0, $6Q0mk.useLocaleStore)((state)=>state.isRTL);
13451
13400
  const configuration = (0, $6EkQS.useRetorikStore)((state)=>state.configuration);
13452
13401
  const themeColors = (0, $kUiCn.useViewStore)((state)=>state.themeColors);
13453
13402
  const onTutorialClick = ()=>{
@@ -13463,11 +13412,11 @@ const $cd5d3a6d052e0c77$var$SuggestionAttachment = ({ suggestions: suggestions,
13463
13412
  children: [
13464
13413
  title && // Title on the left if there is a description, middle otherwise
13465
13414
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
13466
- className: `rf-w-full ${description ? 'rf-text-left' : 'rf-text-center'} rf-title-size-auto ${configuration.isUsedOnBorne ? 'rf-truncate' : 'rf-line-clamp-2'}`,
13415
+ className: `rf-w-full ${description ? '' : 'rf-text-center'} rf-title-size-auto ${configuration.isUsedOnBorne ? 'rf-truncate' : 'rf-line-clamp-2'}`,
13467
13416
  children: (0, $9JtA7.capitalizeFirstLetter)(title)
13468
13417
  }),
13469
13418
  description && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
13470
- className: "rf-text-left rf-w-full",
13419
+ className: "rf-w-full",
13471
13420
  children: description
13472
13421
  }),
13473
13422
  suggestions === null || suggestions === void 0 ? void 0 : suggestions.map((data, key)=>{
@@ -13481,15 +13430,15 @@ const $cd5d3a6d052e0c77$var$SuggestionAttachment = ({ suggestions: suggestions,
13481
13430
  }, key);
13482
13431
  }),
13483
13432
  showTutorial && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
13484
- className: "rf-text-left rf-w-full rf-flex rf-items-end rf-italic",
13433
+ className: "rf-w-full rf-flex rf-items-end rf-italic",
13485
13434
  children: [
13486
13435
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $318SX.default), {
13487
- className: "ltr:rf-pr-2 rtl:rf-pl-2 rf-h-6",
13436
+ className: `${isRTL ? 'rf-pl-2' : 'rf-pr-2'} rf-h-6`,
13488
13437
  color: themeColors.card.button.text.default
13489
13438
  }),
13490
13439
  `${translation.common.needhelp} ${translation.suggestion.consult}`,
13491
13440
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("span", {
13492
- className: "ltr:rf-pl-1 rtl:rf-pr-1 rf-underline rf-cursor-pointer",
13441
+ className: `${isRTL ? 'rf-pr-1' : 'rf-pl-1'} rf-underline rf-cursor-pointer`,
13493
13442
  onClick: onTutorialClick,
13494
13443
  children: translation.suggestion.thetutorial
13495
13444
  })
@@ -13575,7 +13524,7 @@ const $393a464021f33e39$var$BorderlessButtonMessage = ({ text: text, differentTe
13575
13524
  })
13576
13525
  }),
13577
13526
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
13578
- className: "ltr:rf-ml-4 rtl:rf-mr-4",
13527
+ className: `${isRTL ? 'rf-mr-4' : 'rf-ml-4'}`,
13579
13528
  children: text || ''
13580
13529
  })
13581
13530
  ]
@@ -13746,7 +13695,7 @@ const $b87ff253ef2ab899$var$GridAttachment = ({ index: index, text: text, textCo
13746
13695
  })
13747
13696
  }),
13748
13697
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
13749
- 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`,
13698
+ 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`,
13750
13699
  children: /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("p", {
13751
13700
  className: `${maxHeight} rf-overflow-y-clip`,
13752
13701
  dangerouslySetInnerHTML: {
@@ -14168,12 +14117,12 @@ const $361cae4f0d767c3c$var$SuggestionsItem = ({ className: className, title: ti
14168
14117
  const locale = (0, $6Q0mk.useLocaleStore)((state)=>state.locale);
14169
14118
  return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("button", {
14170
14119
  onClick: ()=>handleClick(value),
14171
- 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}`,
14120
+ 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}`,
14172
14121
  "aria-label": title,
14173
14122
  children: [
14174
14123
  (0, $9JtA7.capitalizeFirstLetter)(title, locale),
14175
14124
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
14176
- className: "ltr:rf-ml-6 rtl:rf-mr-6 rf-text-gray",
14125
+ className: "rf-ml-6 rf-text-gray",
14177
14126
  children: results || 0
14178
14127
  })
14179
14128
  ]
@@ -14264,7 +14213,7 @@ const $0641c78f051b69fe$var$SubMenuClosing = ({ className: className, background
14264
14213
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $hqoZC.default), {
14265
14214
  title: backIsConversation ? translation.menu.backconversation : isMobile ? translation.common.back : translation.menu.backconversation,
14266
14215
  handleBack: handleClose,
14267
- 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`
14216
+ 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`
14268
14217
  }),
14269
14218
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
14270
14219
  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}`,
@@ -14377,7 +14326,7 @@ const $00bf5808b0b2c911$var$SingleCardContainer = ({ attachment: attachment, his
14377
14326
  triggerScroll === null || triggerScroll === void 0 ? void 0 : triggerScroll();
14378
14327
  }, []);
14379
14328
  return attachment.contentType.includes('.card') ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $4tQkO.default), {
14380
- 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',
14329
+ 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',
14381
14330
  children: (0, $45y1L.default)({
14382
14331
  attachment: attachment,
14383
14332
  history: history
@@ -14400,8 +14349,11 @@ $parcel$export(module.exports, "default", () => $2a0863637e76884f$export$2e2bcd8
14400
14349
 
14401
14350
 
14402
14351
 
14352
+ var $6Q0mk = parcelRequire("6Q0mk");
14353
+
14403
14354
  var $5mkso = parcelRequire("5mkso");
14404
14355
  const $2a0863637e76884f$var$Card = ({ children: children, className: className, shadow: shadow = false })=>{
14356
+ const isRTL = (0, $6Q0mk.useLocaleStore)((state)=>state.isRTL);
14405
14357
  const [scrollButtonDisplay, setScrollButtonDisplay] = (0, $dWhh5$react.useState)(false);
14406
14358
  const [scrollButtonDirection, setScrollButtonDirection] = (0, $dWhh5$react.useState)('bottom');
14407
14359
  const botEndRef = (0, $dWhh5$react.useRef)(null);
@@ -14464,6 +14416,7 @@ const $2a0863637e76884f$var$Card = ({ children: children, className: className,
14464
14416
  return ()=>timer && clearTimeout(timer);
14465
14417
  }, []);
14466
14418
  return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
14419
+ dir: isRTL ? 'rtl' : 'ltr',
14467
14420
  className: `rf-relative rf-max-h-full rf-flex rf-flex-col rf-text-size-auto rf-unselectable ${className}`,
14468
14421
  draggable: true,
14469
14422
  onDragStart: handleDragStart,
@@ -14613,8 +14566,6 @@ var $7eio0 = parcelRequire("7eio0");
14613
14566
 
14614
14567
  var $kUiCn = parcelRequire("kUiCn");
14615
14568
 
14616
- var $6Q0mk = parcelRequire("6Q0mk");
14617
-
14618
14569
  var $9CCS6 = parcelRequire("9CCS6");
14619
14570
 
14620
14571
  var $7WHA7 = parcelRequire("7WHA7");
@@ -14632,7 +14583,6 @@ const $872024d5c381e99a$var$widthCoefficients = {
14632
14583
  const $872024d5c381e99a$var$defaultTransitionDuration = '300ms';
14633
14584
  const $872024d5c381e99a$var$velocityBreakpoint = 0.5;
14634
14585
  const $872024d5c381e99a$var$Carousel = /*#__PURE__*/ (0, ($parcel$interopDefault($dWhh5$react))).forwardRef(({ direction: direction, history: history, draft: draft, grid: grid, gridTitle: gridTitle, forcedCurrentCard: forcedCurrentCard, setCarouselCardWidth: setCarouselCardWidth, setForcedCurrentCardInCarousel: setForcedCurrentCardInCarousel, children: children }, ref)=>{
14635
- const isRTL = (0, $6Q0mk.useLocaleStore)((state)=>state.isRTL);
14636
14586
  const mode = (0, $jgaO0.useSpeechStore)((state)=>state.mode);
14637
14587
  const forceMobileView = (0, $6EkQS.useRetorikStore)((state)=>state.configuration.forceMobileView);
14638
14588
  const currentDeviceType = (0, $kUiCn.useViewStore)((state)=>state.currentDeviceType);
@@ -14756,32 +14706,26 @@ const $872024d5c381e99a$var$Carousel = /*#__PURE__*/ (0, ($parcel$interopDefault
14756
14706
  * On currentCard, cardWidth, cardHeight, currentPadding states change :
14757
14707
  * - set translation state depending on the direction
14758
14708
  */ (0, $dWhh5$react.useEffect)(()=>{
14759
- 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))`);
14709
+ 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))`);
14760
14710
  }, [
14761
14711
  currentCard,
14762
14712
  cardWidth,
14763
14713
  cardHeight,
14764
- currentPadding,
14765
- isRTL
14714
+ currentPadding
14766
14715
  ]);
14767
14716
  /**
14768
14717
  * On wheeling state change :
14769
14718
  * - 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)
14770
14719
  */ (0, $dWhh5$react.useEffect)(()=>{
14771
- if (wheeling) {
14772
- const leftSwipe = isRTL ? onSwipeRight : onSwipeLeft;
14773
- const rightSwipe = isRTL ? onSwipeLeft : onSwipeRight;
14774
- wheeling > 0 ? leftSwipe(1000, 1000) : rightSwipe(1000, 1000);
14775
- }
14720
+ if (wheeling) wheeling > 0 ? onSwipeLeft(1000, 1000) : onSwipeRight(1000, 1000);
14776
14721
  }, [
14777
- wheeling,
14778
- isRTL
14722
+ wheeling
14779
14723
  ]);
14780
14724
  /**
14781
14725
  * On call :
14782
14726
  * - set translation to its initial state
14783
14727
  */ const resetPosition = ()=>{
14784
- if (cardWidth !== undefined && currentPadding !== undefined) setTranslation(`translateX(calc(${isRTL ? '' : '-'}${currentCard * cardWidth}px - ${currentCard * gap}rem ${isRTL ? '-' : '+'} ${currentPadding}px))`);
14728
+ if (cardWidth !== undefined && currentPadding !== undefined) setTranslation(`translateX(calc(-${currentCard * cardWidth}px - ${currentCard * gap}rem + ${currentPadding}px))`);
14785
14729
  };
14786
14730
  /**
14787
14731
  * On call :
@@ -14790,11 +14734,11 @@ const $872024d5c381e99a$var$Carousel = /*#__PURE__*/ (0, ($parcel$interopDefault
14790
14734
  */ const bounce = (left)=>{
14791
14735
  if (!cardWidth || currentPadding === undefined) return;
14792
14736
  setTransitionDuration($872024d5c381e99a$var$defaultTransitionDuration);
14793
- const direction = left ? isRTL ? '+' : '-' : isRTL ? '-' : '+';
14794
- setTranslation(`translateX(calc(${isRTL ? '' : '-'}${currentCard * cardWidth}px - ${currentCard * gap}rem ${isRTL ? '-' : '+'} ${currentPadding}px ${direction} ${cardWidth / 10}px))`);
14737
+ const direction = left ? '-' : '+';
14738
+ setTranslation(`translateX(calc(-${currentCard * cardWidth}px - ${currentCard * gap}rem + ${currentPadding}px ${direction} ${cardWidth / 10}px))`);
14795
14739
  if (timerRef && timerRef.current !== null) clearTimeout(timerRef.current);
14796
14740
  timerRef.current = setTimeout(()=>{
14797
- setTranslation(`translateX(calc(${isRTL ? '' : '-'}${currentCard * cardWidth}px - ${currentCard * gap}rem ${isRTL ? '-' : '+'} ${currentPadding}px))`);
14741
+ setTranslation(`translateX(calc(-${currentCard * cardWidth}px - ${currentCard * gap}rem + ${currentPadding}px))`);
14798
14742
  }, 300);
14799
14743
  };
14800
14744
  /**
@@ -14848,12 +14792,11 @@ const $872024d5c381e99a$var$Carousel = /*#__PURE__*/ (0, ($parcel$interopDefault
14848
14792
  const available = currentCard === 0 || currentCard === nbCards - 1 ? checkSwipingAvailable(distance, gap) : true;
14849
14793
  if (cardWidth !== undefined) {
14850
14794
  setTransitionDuration('0ms');
14851
- const effectiveDistance = isRTL ? -distance : distance;
14852
14795
  if (available) {
14853
- if (currentCard !== undefined && cardHeight !== undefined && currentPadding !== undefined) setTranslation(`translateX(calc(${isRTL ? '' : '-'}${currentCard * cardWidth}px - ${currentCard * gap}rem ${isRTL ? '-' : '+'} ${currentPadding}px - ${effectiveDistance}px))`);
14796
+ if (currentCard !== undefined && cardHeight !== undefined && currentPadding !== undefined) setTranslation(`translateX(calc(-${currentCard * cardWidth}px - ${currentCard * gap}rem + ${currentPadding}px - ${distance}px))`);
14854
14797
  } else {
14855
14798
  const bounceLimit = cardWidth / 3;
14856
- 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))`);
14799
+ if (Math.abs(distance) <= bounceLimit / 2) setTranslation(`translateX(calc(-${currentCard * cardWidth}px - ${currentCard * gap}rem + ${currentPadding}px - ${distance * (1 - Math.abs(distance) / bounceLimit)}px))`);
14857
14800
  }
14858
14801
  }
14859
14802
  };
@@ -14910,16 +14853,13 @@ const $872024d5c381e99a$var$Carousel = /*#__PURE__*/ (0, ($parcel$interopDefault
14910
14853
  setWheeling(delta > 0 ? Date.now() : -Date.now());
14911
14854
  }
14912
14855
  };
14913
- const titleStyle = isRTL ? {
14914
- paddingRight: currentPadding
14915
- } : {
14916
- paddingLeft: currentPadding
14917
- };
14918
14856
  return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {
14919
14857
  children: [
14920
14858
  gridTitle && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
14921
- className: `rf-w-full ltr:rf-text-left rtl:rf-text-right rf-title-large-size-auto ${mode === (0, $7WHA7.Mode).vocal ? 'rf-text-truewhite rf-text-shadow-black' : 'rf-text-textModePanelConversationBot'}`,
14922
- style: titleStyle,
14859
+ className: `rf-w-full rf-text-left rf-title-large-size-auto ${mode === (0, $7WHA7.Mode).vocal ? 'rf-text-truewhite rf-text-shadow-black' : 'rf-text-textModePanelConversationBot'}`,
14860
+ style: {
14861
+ paddingLeft: currentPadding
14862
+ },
14923
14863
  children: gridTitle
14924
14864
  }),
14925
14865
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)((0, $dWhh5$reactspringweb.animated).div, {
@@ -14938,11 +14878,11 @@ const $872024d5c381e99a$var$Carousel = /*#__PURE__*/ (0, ($parcel$interopDefault
14938
14878
  children: /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $k6WCU.default), {
14939
14879
  direction: direction || 'horizontal',
14940
14880
  onSwiping: onSwiping,
14941
- onSwipeLeft: isRTL ? onSwipeRight : onSwipeLeft,
14942
- onSwipeRight: isRTL ? onSwipeLeft : onSwipeRight,
14881
+ onSwipeLeft: onSwipeLeft,
14882
+ onSwipeRight: onSwipeRight,
14943
14883
  onSwipeTop: onSwipeTop,
14944
14884
  onSwipeBottom: onSwipeBottom,
14945
- 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' : '',
14885
+ className: direction === 'vertical' ? 'rf-flex rf-justify-center' : !isMobile ? history ? 'rf-opacity-gradient-l-thin' : 'rf-opacity-gradient-l' : '',
14946
14886
  children: /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
14947
14887
  ref: ref,
14948
14888
  className: `rf-relative ${direction === 'vertical' ? 'rf-h-max' : 'rf-w-max'} ${enableTranslation ? '' : 'rf-m-auto'} rf-transition-transform`,
@@ -15164,6 +15104,7 @@ const $f0e30ad3081b61d6$var$Grid = ({ title: title, history: history, qrCodeData
15164
15104
  const mode = (0, $jgaO0.useSpeechStore)((state)=>state.mode);
15165
15105
  const configuration = (0, $6EkQS.useRetorikStore)((state)=>state.configuration);
15166
15106
  const translation = (0, $6Q0mk.useLocaleStore)((state)=>state.currentTranslations);
15107
+ const isRTL = (0, $6Q0mk.useLocaleStore)((state)=>state.isRTL);
15167
15108
  const clickedOnUI = (0, $7eio0.useUtilsStore)((state)=>state.clickedOnUI);
15168
15109
  const setClickedOnUI = (0, $7eio0.useUtilsStore)((state)=>state.actions.setClickedOnUI);
15169
15110
  const useOldRemote = (0, $6EkQS.useRetorikStore)((state)=>state.configuration.useOldRemote);
@@ -15310,10 +15251,11 @@ const $f0e30ad3081b61d6$var$Grid = ({ title: title, history: history, qrCodeData
15310
15251
  };
15311
15252
  return nbCards ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
15312
15253
  id: "retorik-grid",
15313
- 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`,
15254
+ dir: isRTL ? 'rtl' : 'ltr',
15255
+ 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`,
15314
15256
  children: [
15315
15257
  title && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
15316
- 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'}`,
15258
+ 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'}`,
15317
15259
  children: title
15318
15260
  }),
15319
15261
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
@@ -15367,17 +15309,17 @@ var $f0e30ad3081b61d6$export$2e2bcd8739ae039 = $f0e30ad3081b61d6$var$Grid;
15367
15309
 
15368
15310
 
15369
15311
  parcelRegister("daT1M", function(module, exports) {
15370
- module.exports = Promise.resolve(require("./HistoryList.50ff0fd9.js")).then(()=>parcelRequire('1TROp'));
15312
+ module.exports = Promise.resolve(require("./HistoryList.4c303dc6.js")).then(()=>parcelRequire('1TROp'));
15371
15313
 
15372
15314
  });
15373
15315
 
15374
15316
  parcelRegister("8A8vC", function(module, exports) {
15375
- module.exports = Promise.resolve(require("./LanguageChoice.1579b654.js")).then(()=>parcelRequire('cMcsq'));
15317
+ module.exports = Promise.resolve(require("./LanguageChoice.ff0cd04c.js")).then(()=>parcelRequire('cMcsq'));
15376
15318
 
15377
15319
  });
15378
15320
 
15379
15321
  parcelRegister("ahTaB", function(module, exports) {
15380
- module.exports = Promise.resolve(require("./AttachmentDetail.1e06c2a5.js")).then(()=>parcelRequire('27nhc'));
15322
+ module.exports = Promise.resolve(require("./AttachmentDetail.0a576bf3.js")).then(()=>parcelRequire('27nhc'));
15381
15323
 
15382
15324
  });
15383
15325
 
@@ -15387,17 +15329,17 @@ module.exports = Promise.resolve(require("./FullScreenImage.9a9b978e.js")).then(
15387
15329
  });
15388
15330
 
15389
15331
  parcelRegister("jQXZd", function(module, exports) {
15390
- module.exports = Promise.resolve(require("./Weather.661c2cac.js")).then(()=>parcelRequire('j5z2A'));
15332
+ module.exports = Promise.resolve(require("./Weather.99917b66.js")).then(()=>parcelRequire('j5z2A'));
15391
15333
 
15392
15334
  });
15393
15335
 
15394
15336
  parcelRegister("kVj24", function(module, exports) {
15395
- module.exports = Promise.resolve(require("./CustomView.080c8028.js")).then(()=>parcelRequire('h8y4X'));
15337
+ module.exports = Promise.resolve(require("./CustomView.edf84de1.js")).then(()=>parcelRequire('h8y4X'));
15396
15338
 
15397
15339
  });
15398
15340
 
15399
15341
  parcelRegister("2J06a", function(module, exports) {
15400
- module.exports = Promise.resolve(require("./Emergency.423214ad.js")).then(()=>parcelRequire('5Osom'));
15342
+ module.exports = Promise.resolve(require("./Emergency.897ee3c7.js")).then(()=>parcelRequire('5Osom'));
15401
15343
 
15402
15344
  });
15403
15345
 
@@ -15586,7 +15528,7 @@ const $6ec4b578ee34ee4b$var$Remote = ({ hideMenu: hideMenu = false, setTopOfRemo
15586
15528
  };
15587
15529
  return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
15588
15530
  id: "retorik-framework-remote",
15589
- 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",
15531
+ 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",
15590
15532
  style: {
15591
15533
  top: absoluteVerticalTop,
15592
15534
  bottom: absoluteVerticalBottom
@@ -15668,10 +15610,16 @@ const $354469513bda8262$var$RemoteButton = ({ type: type, backgroundColor: backg
15668
15610
  const { toggleMuted: toggleMuted, setActiveRecognitionState: setActiveRecognitionState, setMode: setMode } = (0, $jgaO0.useSpeechStore)((state)=>state.actions);
15669
15611
  const { toggleSubtitles: toggleSubtitles, setCanFocusSendBox: setCanFocusSendBox } = (0, $6EkQS.useRetorikStore)((state)=>state.actions);
15670
15612
  const sendEvent = (0, $6QoTL.useDirectlineStore)((state)=>state.actions.sendEvent);
15613
+ const currentSubViewRef = (0, $dWhh5$react.useRef)((0, $7WHA7.CurrentSubView).none);
15671
15614
  const [icon, setIcon] = (0, $dWhh5$react.useState)();
15672
15615
  const [label, setLabel] = (0, $dWhh5$react.useState)();
15673
15616
  const [hover, setHover] = (0, $dWhh5$react.useState)(false);
15674
15617
  const [backgroundColorHover, setBackgroundColorHover] = (0, $dWhh5$react.useState)(undefined);
15618
+ (0, $dWhh5$react.useEffect)(()=>{
15619
+ currentSubViewRef.current = currentSubView;
15620
+ }, [
15621
+ currentSubView
15622
+ ]);
15675
15623
  (0, $dWhh5$react.useEffect)(()=>{
15676
15624
  setBackgroundColorHover(backgroundColor === null || backgroundColor === void 0 ? void 0 : backgroundColor.replace('99', 'E6'));
15677
15625
  }, [
@@ -15767,14 +15715,20 @@ const $354469513bda8262$var$RemoteButton = ({ type: type, backgroundColor: backg
15767
15715
  const handleClick = ()=>{
15768
15716
  switch(type){
15769
15717
  case (0, $7WHA7.RemoteButtonType).history:
15770
- setCurrentSubView(currentSubView === (0, $7WHA7.CurrentSubView).history ? (0, $7WHA7.CurrentSubView).none : (0, $7WHA7.CurrentSubView).history);
15718
+ if (currentSubViewRef.current === (0, $7WHA7.CurrentSubView).history) {
15719
+ setCurrentSubView((0, $7WHA7.CurrentSubView).none);
15720
+ sendEvent('Davi.CloseWindow', null, ()=>sendEvent('Davi.CloseWindowHistory', null));
15721
+ } else setCurrentSubView((0, $7WHA7.CurrentSubView).history);
15771
15722
  break;
15772
15723
  case (0, $7WHA7.RemoteButtonType).home:
15773
15724
  setCurrentSubView((0, $7WHA7.CurrentSubView).none);
15774
15725
  sendEvent('showHome');
15775
15726
  break;
15776
15727
  case (0, $7WHA7.RemoteButtonType).language:
15777
- setCurrentSubView(currentSubView === (0, $7WHA7.CurrentSubView).languages ? (0, $7WHA7.CurrentSubView).none : (0, $7WHA7.CurrentSubView).languages);
15728
+ if (currentSubViewRef.current === (0, $7WHA7.CurrentSubView).languages) {
15729
+ setCurrentSubView((0, $7WHA7.CurrentSubView).none);
15730
+ sendEvent('Davi.CloseWindow', null, ()=>sendEvent('Davi.CloseWindowLanguages', null));
15731
+ } else setCurrentSubView((0, $7WHA7.CurrentSubView).languages);
15778
15732
  break;
15779
15733
  case (0, $7WHA7.RemoteButtonType).menu:
15780
15734
  toggleDashboard();
@@ -15804,8 +15758,13 @@ const $354469513bda8262$var$RemoteButton = ({ type: type, backgroundColor: backg
15804
15758
  case (0, $7WHA7.CloseButtonCause).list:
15805
15759
  setCloseList(Date.now());
15806
15760
  break;
15807
- case (0, $7WHA7.CloseButtonCause).subview:
15761
+ case (0, $7WHA7.CloseButtonCause).emergency:
15762
+ case (0, $7WHA7.CloseButtonCause).history:
15763
+ case (0, $7WHA7.CloseButtonCause).languages:
15764
+ case (0, $7WHA7.CloseButtonCause).weather:
15765
+ case (0, $7WHA7.CloseButtonCause).map:
15808
15766
  setCurrentSubView((0, $7WHA7.CurrentSubView).none);
15767
+ sendEvent('Davi.CloseWindow', null, ()=>sendEvent(`Davi.CloseWindow${cause}`, null));
15809
15768
  break;
15810
15769
  case (0, $7WHA7.CloseButtonCause).news:
15811
15770
  setRoute((0, $7WHA7.Routes).Home);
@@ -16474,6 +16433,7 @@ const $b3293ae5ea012219$var$SendTextBox = ({ className: className })=>{
16474
16433
  };
16475
16434
  return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
16476
16435
  id: "retorik-send-textbox",
16436
+ dir: isRTL ? 'rtl' : 'ltr',
16477
16437
  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}`,
16478
16438
  children: [
16479
16439
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("textarea", {
@@ -16490,7 +16450,7 @@ const $b3293ae5ea012219$var$SendTextBox = ({ className: className })=>{
16490
16450
  }
16491
16451
  }),
16492
16452
  !isMobile && !disabledSpeechMode && !useOldRemote && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("button", {
16493
- 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",
16453
+ className: `rf-absolute ${isRTL ? 'rf-left-12' : 'rf-right-12'} rf-h-full rf-w-8 rf-flex rf-justify-center rf-items-center`,
16494
16454
  onClick: handleClick,
16495
16455
  children: /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $yLuO1.default), {
16496
16456
  className: "rf-h-4 large-vertical:rf-h-5",
@@ -16498,7 +16458,7 @@ const $b3293ae5ea012219$var$SendTextBox = ({ className: className })=>{
16498
16458
  })
16499
16459
  }),
16500
16460
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("button", {
16501
- 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",
16461
+ 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`,
16502
16462
  onClick: handleSend,
16503
16463
  children: isRTL ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $4UCKa.default), {
16504
16464
  className: "rf-w-5",
@@ -16751,7 +16711,20 @@ const $18d4a37a7fa81be4$var$MicrophoneAndSwitch = ({ top: top })=>{
16751
16711
  if (!isLandscape && (currentSubView !== (0, $7WHA7.CurrentSubView).none || dashboardOpened || retorikEvent === (0, $7WHA7.RetorikEvent).DetailViewOpen || listStatus === (0, $7WHA7.ListStatus).opened || route === (0, $7WHA7.Routes).News || fullScreenImage)) {
16752
16712
  if (retorikEvent === (0, $7WHA7.RetorikEvent).DetailViewOpen && currentSubView === (0, $7WHA7.CurrentSubView).none) setShowCloseButton((0, $7WHA7.CloseButtonCause).detailedpoi);
16753
16713
  else if (listStatus === (0, $7WHA7.ListStatus).opened) setShowCloseButton((0, $7WHA7.CloseButtonCause).list);
16754
- else if (currentSubView !== (0, $7WHA7.CurrentSubView).none) setShowCloseButton((0, $7WHA7.CloseButtonCause).subview);
16714
+ else if (currentSubView !== (0, $7WHA7.CurrentSubView).none) switch(currentSubView){
16715
+ case (0, $7WHA7.CurrentSubView).emergency:
16716
+ setShowCloseButton((0, $7WHA7.CloseButtonCause).emergency);
16717
+ break;
16718
+ case (0, $7WHA7.CurrentSubView).history:
16719
+ setShowCloseButton((0, $7WHA7.CloseButtonCause).history);
16720
+ break;
16721
+ case (0, $7WHA7.CurrentSubView).languages:
16722
+ setShowCloseButton((0, $7WHA7.CloseButtonCause).languages);
16723
+ break;
16724
+ case (0, $7WHA7.CurrentSubView).weather:
16725
+ setShowCloseButton((0, $7WHA7.CloseButtonCause).weather);
16726
+ break;
16727
+ }
16755
16728
  else if (dashboardOpened) setShowCloseButton((0, $7WHA7.CloseButtonCause).dashboard);
16756
16729
  else if (route === (0, $7WHA7.Routes).News) setShowCloseButton((0, $7WHA7.CloseButtonCause).news);
16757
16730
  else if (fullScreenImage) setShowCloseButton((0, $7WHA7.CloseButtonCause).fullscreenimage);
@@ -16774,16 +16747,16 @@ const $18d4a37a7fa81be4$var$MicrophoneAndSwitch = ({ top: top })=>{
16774
16747
  ]);
16775
16748
  return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
16776
16749
  id: "retorik-microphone-container",
16777
- 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`,
16750
+ className: `large-vertical:rf-absolute rf-w-fit ${showCloseButton !== (0, $7WHA7.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`,
16778
16751
  style: {
16779
16752
  bottom: bottomForBorne
16780
16753
  },
16781
16754
  children: [
16782
16755
  mode === (0, $7WHA7.Mode).vocal && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $8AU2L.default), {
16783
- hidden: !!showCloseButton
16756
+ hidden: showCloseButton !== (0, $7WHA7.CloseButtonCause).none
16784
16757
  }),
16785
- (showCloseButton || mode === (0, $7WHA7.Mode).vocal) && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $iMnE7.default), {
16786
- type: showCloseButton ? (0, $7WHA7.RemoteButtonType).close : (0, $7WHA7.RemoteButtonType).text,
16758
+ (showCloseButton !== (0, $7WHA7.CloseButtonCause).none || mode === (0, $7WHA7.Mode).vocal) && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $iMnE7.default), {
16759
+ type: showCloseButton !== (0, $7WHA7.CloseButtonCause).none ? (0, $7WHA7.RemoteButtonType).close : (0, $7WHA7.RemoteButtonType).text,
16787
16760
  backgroundColor: "#FFF",
16788
16761
  cause: showCloseButton
16789
16762
  })
@@ -17184,6 +17157,11 @@ const $b8818a8d75b2cc14$var$MicrophoneTextBubble = ({ showLoader: showLoader })=
17184
17157
  const [text, setText] = (0, $dWhh5$react.useState)();
17185
17158
  const [textUndefined, setTextUndefined] = (0, $dWhh5$react.useState)(false);
17186
17159
  const timerRef = (0, $dWhh5$react.useRef)(null);
17160
+ (0, $dWhh5$react.useEffect)(()=>{
17161
+ return ()=>{
17162
+ timerRef.current && clearTimeout(timerRef.current);
17163
+ };
17164
+ }, []);
17187
17165
  (0, $dWhh5$react.useEffect)(()=>{
17188
17166
  setTextUndefined(speaking || showLoader || !botAnswerEnded || currentSubView !== (0, $7WHA7.CurrentSubView).none || dashboardOpened || retorikEvent === (0, $7WHA7.RetorikEvent).DetailViewOpen || listStatus === (0, $7WHA7.ListStatus).opened);
17189
17167
  }, [
@@ -17213,8 +17191,12 @@ const $b8818a8d75b2cc14$var$MicrophoneTextBubble = ({ showLoader: showLoader })=
17213
17191
  setText(isMobile || isLandscape && lastRecognitionInterim ? undefined : translation.microphone.listening);
17214
17192
  break;
17215
17193
  case (0, $7WHA7.RecognitionState).Closed:
17216
- if (useContinuousRecognition) setText(textUndefined ? undefined : `<p>${translation.microphone.trigger}${isMobile ? ' ' : '<br />'}<strong>\xab ${agentData === null || agentData === void 0 ? void 0 : agentData.name} \xbb</strong></p>`);
17217
- else setText(textUndefined ? undefined : `<p>${translation.microphone.triggerwithoutname}</p>`);
17194
+ let text = undefined;
17195
+ if (!textUndefined) text = useContinuousRecognition ? `<p>${translation.microphone.trigger}${isMobile ? ' ' : '<br />'}<strong>\xab ${agentData === null || agentData === void 0 ? void 0 : agentData.name} \xbb</strong></p>` : `<p>${translation.microphone.triggerwithoutname}</p>`;
17196
+ // Show the button only 1.5s after, to prevents it from appearing à fraction of second between several texts
17197
+ timerRef.current = setTimeout(()=>{
17198
+ setText(text);
17199
+ }, 1500);
17218
17200
  break;
17219
17201
  case (0, $7WHA7.RecognitionState).Initializing:
17220
17202
  case (0, $7WHA7.RecognitionState).Closing:
@@ -17429,24 +17411,18 @@ $parcel$export(module.exports, "default", () => $edf407019e6638b3$export$2e2bcd8
17429
17411
  var $9JtA7 = parcelRequire("9JtA7");
17430
17412
  parcelRequire("g8vvH");
17431
17413
  var $8hLdy = parcelRequire("8hLdy");
17432
- var $9GBKn = parcelRequire("9GBKn");
17433
-
17434
- var $6Q0mk = parcelRequire("6Q0mk");
17435
17414
  const $edf407019e6638b3$var$BackButton = ({ title: title, className: className, handleBack: handleBack })=>{
17436
- const isRTL = (0, $6Q0mk.useLocaleStore)((state)=>state.isRTL);
17437
17415
  return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("button", {
17438
17416
  className: `rf-flex rf-flex-row rf-items-center ${className}`,
17439
17417
  onClick: handleBack,
17440
17418
  "aria-label": title,
17441
17419
  "data-map": "fermer",
17442
17420
  children: [
17443
- isRTL ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $9GBKn.default), {
17444
- className: "rf-w-8"
17445
- }) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $8hLdy.default), {
17421
+ /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $8hLdy.default), {
17446
17422
  className: "rf-w-8"
17447
17423
  }),
17448
17424
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
17449
- className: "ltr:rf-ml-1 rtl:rf-mr-1",
17425
+ className: "rf-ml-1",
17450
17426
  children: (0, $9JtA7.capitalizeFirstLetter)(title)
17451
17427
  })
17452
17428
  ]
@@ -17678,6 +17654,7 @@ function $c2cf23236f794ed3$var$instanceOfCustomMenuDisplayGeneratorProps(object)
17678
17654
  const $c2cf23236f794ed3$var$DisplayGenerator = (props)=>{
17679
17655
  const translation = (0, $6Q0mk.useLocaleStore)((state)=>state.currentTranslations);
17680
17656
  const locale = (0, $6Q0mk.useLocaleStore)((state)=>state.locale);
17657
+ const isRTL = (0, $6Q0mk.useLocaleStore)((state)=>state.isRTL);
17681
17658
  const isMobile = (0, $kUiCn.useViewStore)((state)=>state.isMobile);
17682
17659
  const themeColors = (0, $kUiCn.useViewStore)((state)=>state.themeColors);
17683
17660
  const setRoute = (0, $kUiCn.useViewStore)((state)=>state.actions.setRoute);
@@ -17757,7 +17734,7 @@ const $c2cf23236f794ed3$var$DisplayGenerator = (props)=>{
17757
17734
  color: colorButtonHandle
17758
17735
  }),
17759
17736
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
17760
- className: "ltr:rf-ml-4 rtl:rf-mr-4 rf-font-bold",
17737
+ className: "rf-ml-4 rf-font-bold",
17761
17738
  children: (0, $9JtA7.capitalizeFirstLetter)(label, locale)
17762
17739
  })
17763
17740
  ]
@@ -17778,7 +17755,7 @@ const $c2cf23236f794ed3$var$DisplayGenerator = (props)=>{
17778
17755
  color: colorButtonHandle
17779
17756
  }),
17780
17757
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
17781
- className: "rf-uppercase rf-text-[#575F6B] ltr:rf-text-xs rtl:rf-text-arabic large-vertical:rf-text-basecustomuppercase",
17758
+ className: `rf-uppercase rf-text-[#575F6B] ${isRTL ? 'rf-text-arabic' : 'rf-text-xs'} large-vertical:rf-text-basecustomuppercase`,
17782
17759
  children: label
17783
17760
  })
17784
17761
  ]
@@ -17935,6 +17912,7 @@ function $3919bd42dc5f6fe9$var$instanceOfCustomMenuDisplayGeneratorProps(object)
17935
17912
  const $3919bd42dc5f6fe9$var$DisplaySubGenerator = (props)=>{
17936
17913
  const translation = (0, $6Q0mk.useLocaleStore)((state)=>state.currentTranslations);
17937
17914
  const locale = (0, $6Q0mk.useLocaleStore)((state)=>state.locale);
17915
+ const isRTL = (0, $6Q0mk.useLocaleStore)((state)=>state.isRTL);
17938
17916
  const isMobile = (0, $kUiCn.useViewStore)((state)=>state.isMobile);
17939
17917
  const { setCurrentSubView: setCurrentSubView, setCurrentCustomView: setCurrentCustomView } = (0, $7eio0.useUtilsStore)((state)=>state.actions);
17940
17918
  const [label, setLabel] = (0, $dWhh5$react.useState)('');
@@ -17994,7 +17972,7 @@ const $3919bd42dc5f6fe9$var$DisplaySubGenerator = (props)=>{
17994
17972
  className: "rf-h-8 rf-w-8 rf-flex"
17995
17973
  }),
17996
17974
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
17997
- className: "rf-uppercase rf-text-[#575F6B] ltr:rf-text-xs rtl:rf-text-arabic",
17975
+ className: `rf-uppercase rf-text-[#575F6B] ${isRTL ? 'rf-text-arabic' : 'rf-text-xs'}`,
17998
17976
  children: label
17999
17977
  })
18000
17978
  ]
@@ -18165,7 +18143,7 @@ const $6c55d8a0c55d15f9$var$ParameterButton = ({ title: title, color: color, ico
18165
18143
  className: "rf-flex rf-flex-row rf-items-center",
18166
18144
  children: [
18167
18145
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
18168
- className: "ltr:rf-mr-3 rtl:rf-ml-3 rf-text-lightgray rf-normal-case",
18146
+ className: "rf-mr-3 rf-text-lightgray rf-normal-case",
18169
18147
  children: (0, (/*@__PURE__*/$parcel$interopDefault($exo5b)))[locale]
18170
18148
  }),
18171
18149
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $a4tZ1.default), {
@@ -18195,7 +18173,7 @@ const $6c55d8a0c55d15f9$var$ParameterButton = ({ title: title, color: color, ico
18195
18173
  color: color
18196
18174
  }) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {}),
18197
18175
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
18198
- className: "ltr:rf-ml-1 rtl:rf-mr-1 rf-uppercase",
18176
+ className: "rf-ml-1 rf-uppercase",
18199
18177
  children: title
18200
18178
  })
18201
18179
  ]
@@ -18866,7 +18844,7 @@ var $341aa389b3b9926d$export$2e2bcd8739ae039 = $341aa389b3b9926d$var$DashboardIt
18866
18844
 
18867
18845
 
18868
18846
  parcelRegister("ffoK4", function(module, exports) {
18869
- module.exports = Promise.resolve(require("./NewsContainer.932174e9.js")).then(()=>parcelRequire('dKdsa'));
18847
+ module.exports = Promise.resolve(require("./NewsContainer.a91d9131.js")).then(()=>parcelRequire('dKdsa'));
18870
18848
 
18871
18849
  });
18872
18850
 
@@ -19286,7 +19264,7 @@ var $kUiCn = parcelRequire("kUiCn");
19286
19264
 
19287
19265
  var $6EkQS = parcelRequire("6EkQS");
19288
19266
  var $203b743475f656c9$exports = {};
19289
- $203b743475f656c9$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 -moz-tab-size: 4;\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, ::-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 -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\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 -webkit-appearance: none;\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 -webkit-appearance: none;\n appearance: none;\n margin: 0;\n}\n\n.rf-checkbox-custom {\n -webkit-appearance: none;\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 -webkit-appearance: none;\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 -webkit-appearance: none;\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";
19267
+ $203b743475f656c9$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 -moz-tab-size: 4;\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, ::-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 -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\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 -webkit-appearance: none;\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 -webkit-appearance: none;\n appearance: none;\n margin: 0;\n}\n\n.rf-checkbox-custom {\n -webkit-appearance: none;\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 -webkit-appearance: none;\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 -webkit-appearance: none;\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";
19290
19268
 
19291
19269
 
19292
19270
  var $70dd93cce82a6912$exports = {};
@@ -20909,7 +20887,7 @@ const $742ec75d795207eb$var$Checkbox = ({ id: id, choices: choices, split: split
20909
20887
  setChosen(tempChosen);
20910
20888
  }
20911
20889
  };
20912
- return display && display.length > 0 ? split ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
20890
+ return (display === null || display === void 0 ? void 0 : display.length) ? split ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
20913
20891
  className: "rf-w-full rf-mt-4 rf-flex rf-flex-row rf-text-size-auto rf-text-white",
20914
20892
  children: [
20915
20893
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
@@ -22166,7 +22144,7 @@ const $ca0c07c153e8e8ae$var$ActionButton = ({ text: text, fullWidth: fullWidth,
22166
22144
  className: "rf-relative rf-text-center rf-mx-8 rf-mt-2 rf-italic",
22167
22145
  children: [
22168
22146
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $318SX.default), {
22169
- className: "rf-absolute rf-top-[0.125rem] -ltr:rf-left-6 rtl:rf-right-6 rf-h-4"
22147
+ className: `rf-absolute rf-top-[0.125rem] ${isRTL ? 'rf-right-6' : '-rf-left-6'} rf-h-4`
22170
22148
  }),
22171
22149
  (0, $b5mHp.getTextToDisplayOnLink)({
22172
22150
  translation: translation,
@@ -22216,7 +22194,7 @@ const $ca0c07c153e8e8ae$var$ActionButton = ({ text: text, fullWidth: fullWidth,
22216
22194
  })
22217
22195
  }),
22218
22196
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
22219
- className: "ltr:rf-ml-4 rtl:rf-mr-4",
22197
+ className: `${isRTL ? 'rf-mr-4' : 'rf-ml-4'}`,
22220
22198
  children: (0, $9JtA7.capitalizeFirstLetter)(text, locale)
22221
22199
  })
22222
22200
  ]
@@ -22224,7 +22202,7 @@ const $ca0c07c153e8e8ae$var$ActionButton = ({ text: text, fullWidth: fullWidth,
22224
22202
  className: `rf-relative ${currentSubView !== (0, $7WHA7.CurrentSubView).history ? clicked ? 'rf-card-button-clicked' : adaptiveStyle === (0, $dWhh5$adaptivecards.ActionStyle).Positive ? 'rf-card-button-positive' : adaptiveStyle === (0, $dWhh5$adaptivecards.ActionStyle).Destructive ? 'rf-card-button-destructive' : 'rf-card-button' : 'rf-card-button-history'} rf-mt-2 ${fullWidth ? 'rf-text-center' : 'rf-text-left'} ${style}`,
22225
22203
  onClick: handleClick,
22226
22204
  children: clicked && !urlToOpen ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
22227
- 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'}`,
22205
+ 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'}`,
22228
22206
  style: {
22229
22207
  ...animationColor
22230
22208
  },
@@ -22521,7 +22499,6 @@ const $85d8b0d1ec40dae5$export$6108075486421829 = ()=>{
22521
22499
 
22522
22500
 
22523
22501
 
22524
-
22525
22502
  var $6EkQS = parcelRequire("6EkQS");
22526
22503
 
22527
22504
  var $6QoTL = parcelRequire("6QoTL");
@@ -22530,6 +22507,8 @@ var $e53vj = parcelRequire("e53vj");
22530
22507
 
22531
22508
  var $7sZDv = parcelRequire("7sZDv");
22532
22509
 
22510
+ var $7WHA7 = parcelRequire("7WHA7");
22511
+
22533
22512
  var $93cl9 = parcelRequire("93cl9");
22534
22513
  const $6be7f5aa73e32bf5$var$TelemetryContextDefaultValues = {
22535
22514
  enabled: true,
@@ -22543,19 +22522,41 @@ function $6be7f5aa73e32bf5$export$a15d15518a3ec33d() {
22543
22522
  }
22544
22523
  function $6be7f5aa73e32bf5$export$bb3ea6dd2428edb6({ enabled: enabled, children: children }) {
22545
22524
  const userId = (0, $6QoTL.useDirectlineStore)((state)=>state.userId);
22525
+ const conversationId = (0, $e53vj.useActivityStore)((state)=>state.conversationId);
22546
22526
  const addressData = (0, $6EkQS.useRetorikStore)((state)=>state.addressData);
22547
22527
  const lastActivity = (0, $e53vj.useActivityStore)((state)=>state.lastActivity);
22548
22528
  const botStreamingActivities = (0, $e53vj.useActivityStore)((state)=>state.botStreamingActivities);
22549
- const [lastUserActivityData, setLastUserActivityData] = (0, $dWhh5$react.useState)();
22529
+ const lastUserActivityRef = (0, $dWhh5$react.useRef)(null);
22550
22530
  const tracer = (0, $dWhh5$react.useMemo)(()=>{
22551
- if (enabled && userId) {
22531
+ if (enabled && userId && conversationId) {
22552
22532
  const exporter = new (0, $dWhh5$opentelemetryexportertraceotlphttp.OTLPTraceExporter)({
22553
22533
  url: (0, $7sZDv.telemetryAddress),
22554
22534
  headers: {},
22555
22535
  concurrencyLimit: 1
22556
22536
  });
22537
+ let serviceNamespace = '';
22538
+ switch(addressData.prefix){
22539
+ case 'dev':
22540
+ serviceNamespace = 'retorik-dev';
22541
+ break;
22542
+ case 'staging':
22543
+ case 'preview':
22544
+ serviceNamespace = 'retorik-preview';
22545
+ break;
22546
+ case 'experimental':
22547
+ serviceNamespace = 'retorik-experimental';
22548
+ break;
22549
+ default:
22550
+ serviceNamespace = 'retorik-prod';
22551
+ break;
22552
+ }
22553
+ // Create resource with custom parameters used globally in uptrace
22557
22554
  const resource = (0, $dWhh5$opentelemetryresources.defaultResource)().merge((0, $dWhh5$opentelemetryresources.resourceFromAttributes)({
22558
- [(0, $dWhh5$opentelemetrysemanticconventions.ATTR_SERVICE_NAME)]: 'retorik-framework'
22555
+ [(0, $dWhh5$opentelemetrysemanticconventions.ATTR_SERVICE_NAME)]: 'retorik-framework',
22556
+ ['davi.retorik.activity.conversation.id']: conversationId,
22557
+ ['service_namespace']: serviceNamespace,
22558
+ ['retorik_framework_version']: (0, $93cl9.version),
22559
+ ['user_id']: userId
22559
22560
  }));
22560
22561
  const processor = new (0, $dWhh5$opentelemetrysdktraceweb.BatchSpanProcessor)(exporter);
22561
22562
  const provider = new (0, $dWhh5$opentelemetrysdktraceweb.WebTracerProvider)({
@@ -22568,28 +22569,8 @@ function $6be7f5aa73e32bf5$export$bb3ea6dd2428edb6({ enabled: enabled, children:
22568
22569
  // Add common attributes to each span for better tracing
22569
22570
  (0, $dWhh5$opentelemetryinstrumentation.registerInstrumentations)({
22570
22571
  instrumentations: [
22571
- new (0, $dWhh5$opentelemetryinstrumentationfetch.FetchInstrumentation)({
22572
- applyCustomAttributesOnSpan: (span)=>span.setAttributes({
22573
- ...getCommonAttributes(),
22574
- user_id: userId
22575
- })
22576
- }),
22577
- new (0, $dWhh5$opentelemetryinstrumentationdocumentload.DocumentLoadInstrumentation)({
22578
- applyCustomAttributesOnSpan: {
22579
- documentLoad: (span)=>span.setAttributes({
22580
- ...getCommonAttributes(),
22581
- user_id: userId
22582
- }),
22583
- documentFetch: (span)=>span.setAttributes({
22584
- ...getCommonAttributes(),
22585
- user_id: userId
22586
- }),
22587
- resourceFetch: (span)=>span.setAttributes({
22588
- ...getCommonAttributes(),
22589
- user_id: userId
22590
- })
22591
- }
22592
- })
22572
+ new (0, $dWhh5$opentelemetryinstrumentationfetch.FetchInstrumentation)(),
22573
+ new (0, $dWhh5$opentelemetryinstrumentationdocumentload.DocumentLoadInstrumentation)()
22593
22574
  ]
22594
22575
  });
22595
22576
  return (0, ($parcel$interopDefault($dWhh5$opentelemetryapi))).trace.getTracer('retorik-framework');
@@ -22597,7 +22578,10 @@ function $6be7f5aa73e32bf5$export$bb3ea6dd2428edb6({ enabled: enabled, children:
22597
22578
  return undefined;
22598
22579
  }, [
22599
22580
  enabled,
22600
- userId
22581
+ userId,
22582
+ conversationId,
22583
+ addressData,
22584
+ (0, $93cl9.version)
22601
22585
  ]);
22602
22586
  (0, $dWhh5$react.useEffect)(()=>{
22603
22587
  if (lastActivity) lastActivity.from.role === 'user' ? handleUserActivity(lastActivity) : handleBotActivity(lastActivity);
@@ -22605,52 +22589,56 @@ function $6be7f5aa73e32bf5$export$bb3ea6dd2428edb6({ enabled: enabled, children:
22605
22589
  lastActivity
22606
22590
  ]);
22607
22591
  (0, $dWhh5$react.useEffect)(()=>{
22608
- if (lastUserActivityData) {
22609
- const temp = botStreamingActivities.get(lastUserActivityData.id);
22592
+ if (lastUserActivityRef.current) {
22593
+ const temp = botStreamingActivities.get(lastUserActivityRef.current.id);
22610
22594
  (temp === null || temp === void 0 ? void 0 : temp.length) === 1 && handleBotActivity(temp[0]);
22611
22595
  }
22612
22596
  }, [
22613
- botStreamingActivities,
22614
- lastUserActivityData
22597
+ botStreamingActivities
22615
22598
  ]);
22616
- const getCommonAttributes = ()=>{
22617
- let tenant = '';
22618
- if (addressData.tenant) tenant = addressData.prefix ? `${addressData.tenant} (${addressData.prefix})` : addressData.tenant;
22619
- return {
22620
- tenant: tenant,
22621
- current_URL: window.location.toString(),
22622
- os: `${0, $dWhh5$reactdevicedetect.osName} ${0, $dWhh5$reactdevicedetect.osVersion}`,
22623
- browser: `${0, $dWhh5$reactdevicedetect.browserName} ${0, $dWhh5$reactdevicedetect.browserVersion}`,
22624
- retorik_framework_version: (0, $93cl9.version)
22625
- };
22626
- };
22627
22599
  const handleUserActivity = (activity)=>{
22628
22600
  // Only handle message activites and event activities waiting for an answer, nothing for typing ones
22629
22601
  if (activity.type === 'message' || activity.type === 'event' && !(0, $7sZDv.nonResponseInducingEvents).find((eventName)=>{
22630
22602
  var _activity_name;
22631
22603
  return (_activity_name = activity.name) === null || _activity_name === void 0 ? void 0 : _activity_name.toLowerCase().includes(eventName);
22632
- })) setLastUserActivityData({
22604
+ })) lastUserActivityRef.current = {
22633
22605
  id: activity.id,
22634
22606
  time: Date.now()
22635
- });
22607
+ };
22636
22608
  };
22637
22609
  const handleBotActivity = (activity)=>{
22638
22610
  var _activity_name, _activity_label;
22639
22611
  // Do nothing for bring-up messages and non-streaming events
22640
- if (lastUserActivityData && (activity.type === 'message' || ((_activity_name = activity.name) === null || _activity_name === void 0 ? void 0 : _activity_name.toLocaleLowerCase()) === 'davi.streammessageactivity') && ((_activity_label = activity.label) === null || _activity_label === void 0 ? void 0 : _activity_label.toLowerCase()) !== 'davi.bringupmessage' && activity.replyToId === lastUserActivityData.id) {
22641
- sendTrace(lastUserActivityData.time);
22642
- setLastUserActivityData(undefined);
22612
+ if (lastUserActivityRef.current && (activity.type === 'message' || ((_activity_name = activity.name) === null || _activity_name === void 0 ? void 0 : _activity_name.toLocaleLowerCase()) === 'davi.streammessageactivity') && ((_activity_label = activity.label) === null || _activity_label === void 0 ? void 0 : _activity_label.toLowerCase()) !== 'davi.bringupmessage' && activity.replyToId === lastUserActivityRef.current.id) {
22613
+ sendTrace((0, $7WHA7.TraceType).message, {
22614
+ activityId: activity.id,
22615
+ userActivity: lastUserActivityRef.current
22616
+ });
22617
+ lastUserActivityRef.current = null;
22643
22618
  }
22644
22619
  };
22645
- const sendTrace = (beginningTimer)=>{
22646
- if (tracer) {
22647
- const span = tracer.startSpan('directlineMessage', {
22648
- startTime: beginningTimer
22649
- });
22620
+ const sendTrace = (type, data)=>{
22621
+ if (tracer && type) {
22622
+ const parameters = (data === null || data === void 0 ? void 0 : data.activityId) ? {
22623
+ 'davi.retorik.activity.id': data.activityId
22624
+ } : {};
22625
+ let startTime = 0;
22626
+ switch(type){
22627
+ case (0, $7WHA7.TraceType).message:
22628
+ if (data === null || data === void 0 ? void 0 : data.userActivity) startTime = data === null || data === void 0 ? void 0 : data.userActivity.time;
22629
+ break;
22630
+ case (0, $7WHA7.TraceType).utteranceStart:
22631
+ case (0, $7WHA7.TraceType).utteranceEnd:
22632
+ parameters.text = data === null || data === void 0 ? void 0 : data.text;
22633
+ break;
22634
+ }
22635
+ const span = tracer.startSpan(type, startTime ? {
22636
+ startTime: startTime
22637
+ } : undefined);
22650
22638
  span.setStatus({
22651
22639
  code: (0, $dWhh5$opentelemetryapi.SpanStatusCode).OK
22652
22640
  });
22653
- span.setAttributes(getCommonAttributes());
22641
+ span.setAttributes(parameters);
22654
22642
  span.end();
22655
22643
  }
22656
22644
  };
@@ -22662,24 +22650,21 @@ function $6be7f5aa73e32bf5$export$bb3ea6dd2428edb6({ enabled: enabled, children:
22662
22650
  code: (0, $dWhh5$opentelemetryapi.SpanStatusCode).ERROR,
22663
22651
  message: `${error.message}`
22664
22652
  });
22665
- span.setAttributes(getCommonAttributes());
22666
22653
  span.end();
22667
22654
  }
22668
22655
  };
22669
22656
  const value = (0, $dWhh5$react.useMemo)(()=>({
22670
22657
  enabled: enabled,
22671
22658
  tracer: tracer,
22672
- sendErrorTrace: sendErrorTrace,
22673
- sendTrace: sendTrace
22659
+ sendTrace: sendTrace,
22660
+ sendErrorTrace: sendErrorTrace
22674
22661
  }), [
22675
22662
  enabled,
22676
22663
  tracer
22677
22664
  ]);
22678
- return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {
22679
- children: /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)($6be7f5aa73e32bf5$export$7b6b7bc4acb29126.Provider, {
22680
- value: value,
22681
- children: children
22682
- })
22665
+ return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)($6be7f5aa73e32bf5$export$7b6b7bc4acb29126.Provider, {
22666
+ value: value,
22667
+ children: children
22683
22668
  });
22684
22669
  }
22685
22670
 
@@ -23667,7 +23652,7 @@ const $21be82c8ba5b2ec0$var$UserRequest = ()=>{
23667
23652
  ]);
23668
23653
  return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
23669
23654
  id: "retorik-userRequest",
23670
- 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
23655
+ 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
23671
23656
  ${mode === (0, $7WHA7.Mode).text && 'landscape-retorik:rf-justify-start'}
23672
23657
  ${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`,
23673
23658
  style: {
@@ -23743,7 +23728,7 @@ const $6af0aee9119363c4$var$UserRequest = ()=>{
23743
23728
  ]);
23744
23729
  return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
23745
23730
  id: "retorik-userRequest",
23746
- 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
23731
+ 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
23747
23732
  ${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`,
23748
23733
  style: {
23749
23734
  gridRow: `${gridRowStart} / span ${gridRowSpan}`,
@@ -24058,17 +24043,25 @@ var $5f568a67e3f1c45c$export$2e2bcd8739ae039 = $5f568a67e3f1c45c$var$BotResponse
24058
24043
 
24059
24044
 
24060
24045
 
24046
+
24047
+ var $6EkQS = parcelRequire("6EkQS");
24061
24048
  parcelRequire("60kUR");
24062
24049
  var $6tJr6 = parcelRequire("6tJr6");
24063
24050
  const $190fac2b3b90e52b$var$RetorikLogo = ()=>{
24064
- return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("a", {
24065
- href: "https://davi.ai/retorik",
24051
+ const isUsedOnBorne = (0, $6EkQS.useRetorikStore)((state)=>state.configuration.isUsedOnBorne);
24052
+ return isUsedOnBorne ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
24053
+ 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",
24054
+ children: /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $6tJr6.default), {
24055
+ className: "ltr:rf-ml-4 rtl:rf-mr-4 rf-mb-4 rf-h-14"
24056
+ })
24057
+ }) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("a", {
24058
+ href: "https://davi.ai",
24066
24059
  title: "Retorik by Davi",
24067
24060
  target: "_blank",
24068
24061
  rel: "noreferrer",
24069
- 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",
24062
+ 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",
24070
24063
  children: /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $6tJr6.default), {
24071
- className: "ltr:rf-ml-4 rtl:rf-mr-4 rf-mb-4 rf-h-14"
24064
+ className: "rf-ml-4 rf-mb-4 rf-h-14"
24072
24065
  })
24073
24066
  });
24074
24067
  };
@@ -24331,8 +24324,6 @@ var $6EkQS = parcelRequire("6EkQS");
24331
24324
 
24332
24325
  var $e53vj = parcelRequire("e53vj");
24333
24326
 
24334
- var $jgaO0 = parcelRequire("jgaO0");
24335
-
24336
24327
 
24337
24328
  var $pFs7y = parcelRequire("pFs7y");
24338
24329
 
@@ -24344,6 +24335,8 @@ var $eXl5q = parcelRequire("eXl5q");
24344
24335
 
24345
24336
  var $kUiCn = parcelRequire("kUiCn");
24346
24337
 
24338
+ var $6Q0mk = parcelRequire("6Q0mk");
24339
+
24347
24340
  var $7WHA7 = parcelRequire("7WHA7");
24348
24341
 
24349
24342
  var $lr5yz = parcelRequire("lr5yz");
@@ -24351,6 +24344,7 @@ const $2fc1133047fd6846$var$interval = 45;
24351
24344
  const $2fc1133047fd6846$var$splitRegex = new RegExp(/<[^<>]+>/g);
24352
24345
  const $2fc1133047fd6846$var$TextBubble = ({ from: from, id: id, text: text, htmlText: htmlText, showWaitingDots: showWaitingDots, isWaitingDots: isWaitingDots, triggerScroll: triggerScroll, onEnded: onEnded, canBeEnded: canBeEnded, isEnded: isEnded })=>{
24353
24346
  const isMobile = (0, $kUiCn.useViewStore)((state)=>state.isMobile);
24347
+ const isRTL = (0, $6Q0mk.useLocaleStore)((state)=>state.isRTL);
24354
24348
  const [currentHtmlText, setCurrentHtmlText] = (0, $dWhh5$react.useState)('');
24355
24349
  const [ended, setEnded] = (0, $dWhh5$react.useState)(isEnded);
24356
24350
  const intervalRef = (0, $dWhh5$react.useRef)(null);
@@ -24421,7 +24415,8 @@ const $2fc1133047fd6846$var$TextBubble = ({ from: from, id: id, text: text, html
24421
24415
  };
24422
24416
  return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
24423
24417
  id: from === (0, $7WHA7.TextFrom).user ? `retorik-userQuestion-${id}` : `retorik-botResponse-${id}`,
24424
- 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, $7WHA7.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]`,
24418
+ dir: isRTL ? 'rtl' : 'ltr',
24419
+ 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, $7WHA7.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, $7WHA7.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]`,
24425
24420
  children: isWaitingDots ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
24426
24421
  className: "rf-w-8 rf-loader-bouncing-bot"
24427
24422
  }) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {
@@ -24449,8 +24444,6 @@ const $a2a195f52aaf1332$var$DisplayStandard = ({ currentQuestionId: currentQuest
24449
24444
  const endedActivities = (0, $e53vj.useActivityStore)((state)=>state.endedActivities);
24450
24445
  const watermark = (0, $e53vj.useActivityStore)((state)=>state.watermark);
24451
24446
  const forceMobileView = (0, $6EkQS.useRetorikStore)((state)=>state.configuration.forceMobileView);
24452
- const cancel = (0, $jgaO0.useSpeechStore)((state)=>state.cancel);
24453
- const addEndedActivity = (0, $e53vj.useActivityStore)((state)=>state.actions.addEndedActivity);
24454
24447
  const [displayData, setDisplayData] = (0, $dWhh5$react.useState)([]);
24455
24448
  const [currentDisplayDataIndex, setCurrentDisplayDataIndex] = (0, $dWhh5$react.useState)(0);
24456
24449
  const [ended, setEnded] = (0, $dWhh5$react.useState)(!activities.length || endedActivities.includes((_activities_ = activities[activities.length - 1]) === null || _activities_ === void 0 ? void 0 : _activities_.id));
@@ -24466,7 +24459,7 @@ const $a2a195f52aaf1332$var$DisplayStandard = ({ currentQuestionId: currentQuest
24466
24459
  ]);
24467
24460
  (0, $dWhh5$react.useEffect)(()=>{
24468
24461
  if (isWaitingForResponse) {
24469
- // Create temporary activity with the id of the nexxt one to prevent re-renders, in order to display waiting dots
24462
+ // Create temporary activity with the id of the next one to prevent re-renders, in order to display waiting dots
24470
24463
  const nextActivityId = `${currentQuestionId.slice(0, currentQuestionId.length - watermark.toString().length)}${watermark.toString()}`;
24471
24464
  const tempActivity = {
24472
24465
  id: nextActivityId,
@@ -24481,36 +24474,14 @@ const $a2a195f52aaf1332$var$DisplayStandard = ({ currentQuestionId: currentQuest
24481
24474
  activity: tempActivity,
24482
24475
  type: (0, $7WHA7.DisplayDataTypes).text,
24483
24476
  isWaitingDots: true,
24484
- canBeEnded: true
24477
+ canBeEnded: true,
24478
+ isEnded: false
24485
24479
  }
24486
24480
  ]);
24487
24481
  }
24488
24482
  }, [
24489
24483
  isWaitingForResponse
24490
24484
  ]);
24491
- (0, $dWhh5$react.useEffect)(()=>{
24492
- if (cancel) {
24493
- activities.forEach((activity)=>{
24494
- addEndedActivity(activity.id);
24495
- });
24496
- displayData.forEach((data)=>{
24497
- addEndedActivity(data.activity.id);
24498
- });
24499
- }
24500
- }, [
24501
- cancel
24502
- ]);
24503
- (0, $dWhh5$react.useEffect)(()=>{
24504
- // End all current activities on component unmount
24505
- return ()=>{
24506
- activitiesRef.current.forEach((activity)=>{
24507
- addEndedActivity(activity.id);
24508
- });
24509
- displayDataRef.current.forEach((data)=>{
24510
- addEndedActivity(data.activity.id);
24511
- });
24512
- };
24513
- }, []);
24514
24485
  (0, $dWhh5$react.useEffect)(()=>{
24515
24486
  activitiesRef.current = [
24516
24487
  ...activities
@@ -24523,7 +24494,7 @@ const $a2a195f52aaf1332$var$DisplayStandard = ({ currentQuestionId: currentQuest
24523
24494
  activities.forEach((activity, index)=>{
24524
24495
  var _activity_attachments, _activity_name, _activity_value;
24525
24496
  let splitTextDataToAdd = [];
24526
- // Check the attachments, special case if this is the message activity after streaming : show attachments if the first streaming activcity didn't have any
24497
+ // Check the attachments, special case if this is the message activity after streaming : show attachments if the first streaming activity didn't have any
24527
24498
  let attachments = [];
24528
24499
  if ((_activity_attachments = activity.attachments) === null || _activity_attachments === void 0 ? void 0 : _activity_attachments.length) {
24529
24500
  var _activity_name1, _activity_value1;
@@ -24533,14 +24504,16 @@ const $a2a195f52aaf1332$var$DisplayStandard = ({ currentQuestionId: currentQuest
24533
24504
  {
24534
24505
  type: (0, $7WHA7.DisplayDataTypes).attachment,
24535
24506
  activity: activity,
24536
- canBeEnded: true
24507
+ canBeEnded: true,
24508
+ isEnded: true
24537
24509
  }
24538
24510
  ];
24539
24511
  } else if (!(((_activity_value1 = activity.value) === null || _activity_value1 === void 0 ? void 0 : _activity_value1.streamingCount) && streamingActivityHasAttachment) && !(0, $1a0bdae30bc87d45$export$7c55936a30618336)(activity)) attachments = [
24540
24512
  {
24541
24513
  type: (0, $7WHA7.DisplayDataTypes).attachment,
24542
24514
  activity: activity,
24543
- canBeEnded: true
24515
+ canBeEnded: true,
24516
+ isEnded: true
24544
24517
  }
24545
24518
  ];
24546
24519
  }
@@ -24559,14 +24532,20 @@ const $a2a195f52aaf1332$var$DisplayStandard = ({ currentQuestionId: currentQuest
24559
24532
  ...currentFirstStreamingActivity,
24560
24533
  htmlText: (0, $pFs7y.processMarkdownAndSpeechMarkdown)(streamingTexts.join(''), false).htmlText
24561
24534
  },
24562
- canBeEnded: false
24535
+ canBeEnded: false,
24536
+ isEnded: false
24563
24537
  }
24564
24538
  ];
24565
24539
  }
24566
24540
  } else if ((_activity_value = activity.value) === null || _activity_value === void 0 ? void 0 : _activity_value.streamingCount) {
24567
24541
  if (tempDisplayData.length) {
24568
24542
  const lastStreamingIndex = tempDisplayData.findLastIndex((d)=>d.type === (0, $7WHA7.DisplayDataTypes).text);
24569
- lastStreamingIndex !== -1 && (tempDisplayData[lastStreamingIndex].canBeEnded = true);
24543
+ if (lastStreamingIndex !== -1) {
24544
+ // Set canBeEnded for the previous streaming
24545
+ tempDisplayData[lastStreamingIndex].canBeEnded = true;
24546
+ // Set previous streaming ended if this activity is ended in speech synthesis
24547
+ tempDisplayData[lastStreamingIndex].isEnded = endedActivities.includes(activity.id);
24548
+ }
24570
24549
  }
24571
24550
  // Reset streaming data if the message containing all streaming data is received
24572
24551
  currentFirstStreamingActivity = undefined;
@@ -24581,7 +24560,8 @@ const $a2a195f52aaf1332$var$DisplayStandard = ({ currentQuestionId: currentQuest
24581
24560
  {
24582
24561
  type: (0, $7WHA7.DisplayDataTypes).text,
24583
24562
  activity: activity,
24584
- canBeEnded: true
24563
+ canBeEnded: true,
24564
+ isEnded: endedActivities.includes(activity.id)
24585
24565
  }
24586
24566
  ];
24587
24567
  }
@@ -24603,7 +24583,8 @@ const $a2a195f52aaf1332$var$DisplayStandard = ({ currentQuestionId: currentQuest
24603
24583
  }
24604
24584
  }, [
24605
24585
  currentQuestionId,
24606
- activities.length
24586
+ activities.length,
24587
+ endedActivities
24607
24588
  ]);
24608
24589
  (0, $dWhh5$react.useEffect)(()=>{
24609
24590
  displayDataRef.current = [
@@ -24626,8 +24607,6 @@ const $a2a195f52aaf1332$var$DisplayStandard = ({ currentQuestionId: currentQuest
24626
24607
  ended
24627
24608
  ]);
24628
24609
  const handleEnded = ()=>{
24629
- var _displayData_currentDisplayDataIndex_activity, _displayData_currentDisplayDataIndex;
24630
- addEndedActivity((_displayData_currentDisplayDataIndex = displayData[currentDisplayDataIndex]) === null || _displayData_currentDisplayDataIndex === void 0 ? void 0 : (_displayData_currentDisplayDataIndex_activity = _displayData_currentDisplayDataIndex.activity) === null || _displayData_currentDisplayDataIndex_activity === void 0 ? void 0 : _displayData_currentDisplayDataIndex_activity.id);
24631
24610
  setCurrentDisplayDataIndex((current)=>current + 1);
24632
24611
  !ended && triggerScroll();
24633
24612
  };
@@ -24649,7 +24628,7 @@ const $a2a195f52aaf1332$var$DisplayStandard = ({ currentQuestionId: currentQuest
24649
24628
  triggerScroll: triggerScroll,
24650
24629
  onEnded: handleEnded,
24651
24630
  canBeEnded: data.canBeEnded,
24652
- isEnded: data.canBeEnded && endedActivities.includes(data.activity.id),
24631
+ isEnded: data.isEnded,
24653
24632
  isWaitingDots: data.isWaitingDots
24654
24633
  }, `${data.activity.id}-${key}`);
24655
24634
  }
@@ -24817,7 +24796,7 @@ const $7df5d708684c32ba$var$ConversationPanelMobile = ({ activities: activities,
24817
24796
  direction: scrollButtonDirection,
24818
24797
  display: scrollButtonDisplay && open,
24819
24798
  scrollHandler: scrollHandler,
24820
- 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"
24799
+ 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"
24821
24800
  }),
24822
24801
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
24823
24802
  className: "rf-h-max rf-w-full rf-py-4 rf-flex rf-flex-col rf-gap-3",
@@ -25120,6 +25099,8 @@ var $7eio0 = parcelRequire("7eio0");
25120
25099
 
25121
25100
  var $6EkQS = parcelRequire("6EkQS");
25122
25101
 
25102
+ var $6Q0mk = parcelRequire("6Q0mk");
25103
+
25123
25104
  var $7WHA7 = parcelRequire("7WHA7");
25124
25105
  parcelRequire("7v7LH");
25125
25106
  var $a6hpb = parcelRequire("a6hpb");
@@ -25210,7 +25191,7 @@ const $3a6f407e42297873$var$Remote = ()=>{
25210
25191
  const configuration = (0, $6EkQS.useRetorikStore)((state)=>state.configuration);
25211
25192
  return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
25212
25193
  id: "retorik-framework-remote",
25213
- 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]",
25194
+ 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]",
25214
25195
  style: {
25215
25196
  background: 'linear-gradient(#F8F8FC, #EDEEF3)'
25216
25197
  },
@@ -25239,6 +25220,7 @@ const $81e653c6b570247f$var$RemoteContainer = ({ hideMenu: hideMenu = false })=>
25239
25220
  const top = (0, $4yOCX.default)();
25240
25221
  const menu = (0, $6EkQS.useRetorikStore)((state)=>state.configuration.menu);
25241
25222
  const dashboardOpened = (0, $7eio0.useUtilsStore)((state)=>state.dashboardOpened);
25223
+ const isRTL = (0, $6Q0mk.useLocaleStore)((state)=>state.isRTL);
25242
25224
  const { setCurrentSubView: setCurrentSubView, setDashboardOpened: setDashboardOpened, setClickedOnUI: setClickedOnUI } = (0, $7eio0.useUtilsStore)((state)=>state.actions);
25243
25225
  /**
25244
25226
  * On call :
@@ -25257,7 +25239,7 @@ const $81e653c6b570247f$var$RemoteContainer = ({ hideMenu: hideMenu = false })=>
25257
25239
  return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {
25258
25240
  children: [
25259
25241
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
25260
- 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",
25242
+ 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`,
25261
25243
  style: {
25262
25244
  top: top
25263
25245
  },
@@ -25842,8 +25824,7 @@ const $3b4c49538547c1bc$var$WarningBeforeNewsView = ()=>{
25842
25824
  const sendEvent = (0, $6QoTL.useDirectlineStore)((state)=>state.actions.sendEvent);
25843
25825
  const [waiting, setWaiting] = (0, $dWhh5$react.useState)(true);
25844
25826
  const handleClick = (goHome)=>{
25845
- sendEvent('Davi.CloseWindow', null);
25846
- sendEvent('Davi.CloseWindowNewsSoundActivated', null);
25827
+ sendEvent('Davi.CloseWindow', null, ()=>sendEvent('Davi.CloseWindowNewsSoundActivated', null));
25847
25828
  goHome ? setRoute((0, $7WHA7.Routes).Home) : setWaiting(false);
25848
25829
  };
25849
25830
  return waiting ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
@@ -25852,7 +25833,7 @@ const $3b4c49538547c1bc$var$WarningBeforeNewsView = ()=>{
25852
25833
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $hqoZC.default), {
25853
25834
  title: translation.common.back,
25854
25835
  handleBack: ()=>handleClick(true),
25855
- className: "rf-absolute rf-top-4 ltr:rf-left-4 rtl:rf-right-4 rf-text-size-auto"
25836
+ className: "rf-absolute rf-top-4 rf-left-4 rf-text-size-auto"
25856
25837
  }),
25857
25838
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("p", {
25858
25839
  className: "rf-px-4 rf-text-center",
@@ -25919,8 +25900,6 @@ var $6EkQS = parcelRequire("6EkQS");
25919
25900
 
25920
25901
  var $7eio0 = parcelRequire("7eio0");
25921
25902
 
25922
- var $6Q0mk = parcelRequire("6Q0mk");
25923
-
25924
25903
  var $9CCS6 = parcelRequire("9CCS6");
25925
25904
 
25926
25905
  var $hLdi9 = parcelRequire("hLdi9");
@@ -25952,7 +25931,6 @@ var $9ccee10030bde87b$export$2e2bcd8739ae039 = $9ccee10030bde87b$var$ModalFullsc
25952
25931
 
25953
25932
 
25954
25933
  const $9242b50f1c1199a7$var$Container = ({ fullSize: fullSize, width: width, height: height, children: children, parent: parent })=>{
25955
- const isRTL = (0, $6Q0mk.useLocaleStore)((state)=>state.isRTL);
25956
25934
  const themeColors = (0, $kUiCn.useViewStore)((state)=>state.themeColors);
25957
25935
  const currentDeviceType = (0, $kUiCn.useViewStore)((state)=>state.currentDeviceType);
25958
25936
  const isTactile = (0, $kUiCn.useViewStore)((state)=>state.isTactile);
@@ -26122,8 +26100,7 @@ const $9242b50f1c1199a7$var$Container = ({ fullSize: fullSize, width: width, hei
26122
26100
  id: "retorik-container",
26123
26101
  ref: container,
26124
26102
  tabIndex: -1,
26125
- dir: isRTL ? 'rtl' : 'ltr',
26126
- 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`,
26103
+ 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`,
26127
26104
  style: {
26128
26105
  ...widthStyle,
26129
26106
  ...heightStyle,
@@ -26214,30 +26191,8 @@ var $6EkQS = parcelRequire("6EkQS");
26214
26191
 
26215
26192
  var $6QoTL = parcelRequire("6QoTL");
26216
26193
 
26217
- var $7WHA7 = parcelRequire("7WHA7");
26218
- /* Return codes:
26219
- 0 => do nothing
26220
- 1 => add to queue
26221
- 2 => stop current activity + change to the one tested
26222
- */ const $549323f244f4782c$var$checkLastbotActivity = (lastbotActivity, currentPlaying, currentReplyToId, queuedActivities, endedActivities)=>{
26223
- // Check if the activity is the one currently being played
26224
- if (lastbotActivity.id === currentPlaying.id) return 0;
26225
- // Check if the activity has already been ended
26226
- if (endedActivities.includes(lastbotActivity.id)) return 0;
26227
- // Check if the activity has the same replyToId than the one currently being played
26228
- if (lastbotActivity.replyToId === currentReplyToId) {
26229
- // Check if the activity is already in the queue
26230
- let count = 0;
26231
- if (queuedActivities.length > 0) queuedActivities.forEach((activity)=>{
26232
- if (activity.id === lastbotActivity.id) count++;
26233
- });
26234
- if (count === 0) return 1;
26235
- else return 0;
26236
- } else return 2;
26237
- };
26238
- var $549323f244f4782c$export$2e2bcd8739ae039 = $549323f244f4782c$var$checkLastbotActivity;
26239
-
26240
26194
 
26195
+ var $7WHA7 = parcelRequire("7WHA7");
26241
26196
 
26242
26197
 
26243
26198
 
@@ -26832,7 +26787,8 @@ const $d31b268c3b702355$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
26832
26787
  const microphoneCloseAudioRef = (0, $dWhh5$react.useRef)(null);
26833
26788
  const [DBReady, setDBReady] = (0, $dWhh5$react.useState)(false);
26834
26789
  const [playingBlob, setPlayingBlob] = (0, $dWhh5$react.useState)(false);
26835
- const [nextUtteranceData, setNextUtteranceData] = (0, $dWhh5$react.useState)(null);
26790
+ const nextUtteranceDataRef = (0, $dWhh5$react.useRef)(null);
26791
+ const nextUtteranceTextRef = (0, $dWhh5$react.useRef)(null);
26836
26792
  const nextUtteranceBoundariesRef = (0, $dWhh5$react.useRef)([]);
26837
26793
  const nextUtteranceVisemesRef = (0, $dWhh5$react.useRef)([]);
26838
26794
  const emptyTextUtteranceRef = (0, $dWhh5$react.useRef)(null);
@@ -26847,7 +26803,7 @@ const $d31b268c3b702355$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
26847
26803
  if (appAvailable || loaderClosed) {
26848
26804
  var _audioRef_current;
26849
26805
  // Cancel synthesis if using synthesizer
26850
- if (!playingBlob) ponyfill && ponyfill.speechSynthesis.cancel();
26806
+ if (!playingBlob) ponyfill.speechSynthesis.cancel();
26851
26807
  resetNextUtteranceData();
26852
26808
  if (audioRef.current && !((_audioRef_current = audioRef.current) === null || _audioRef_current === void 0 ? void 0 : _audioRef_current.paused)) {
26853
26809
  audioRef.current.pause();
@@ -26857,7 +26813,7 @@ const $d31b268c3b702355$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
26857
26813
  };
26858
26814
  const attachEvents = (tempUtterance, isMainUtterance)=>{
26859
26815
  tempUtterance.onerror = (event)=>{
26860
- isMainUtterance ? handleError(event) : setNextUtteranceData(null);
26816
+ isMainUtterance ? handleError(event) : nextUtteranceDataRef.current = null;
26861
26817
  };
26862
26818
  tempUtterance.onsynthesiscompleted = ()=>{
26863
26819
  const endBoundary = {
@@ -26908,7 +26864,6 @@ const $d31b268c3b702355$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
26908
26864
  };
26909
26865
  tempUtterance.onviseme = (event)=>{
26910
26866
  if (isMainUtterance) {
26911
- // Do nothing ATM
26912
26867
  // Update the boundaryData state with the new data.
26913
26868
  addViseme(event);
26914
26869
  const tempVisemes = (visemeRef === null || visemeRef === void 0 ? void 0 : visemeRef.current) || [];
@@ -26924,29 +26879,34 @@ const $d31b268c3b702355$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
26924
26879
  return tempUtterance;
26925
26880
  };
26926
26881
  const processNextData = (data)=>{
26927
- setNextUtteranceData((data === null || data === void 0 ? void 0 : data.byteLength) ? {
26928
- speechData: data,
26929
- boundaries: nextUtteranceBoundariesRef.current,
26930
- visemes: nextUtteranceVisemesRef.current
26931
- } : null);
26882
+ nextUtteranceDataRef.current = (data === null || data === void 0 ? void 0 : data.byteLength) && nextUtteranceTextRef.current ? {
26883
+ text: nextUtteranceTextRef.current,
26884
+ data: {
26885
+ speechData: data,
26886
+ boundaries: nextUtteranceBoundariesRef.current,
26887
+ visemes: nextUtteranceVisemesRef.current
26888
+ }
26889
+ } : null;
26932
26890
  // Reset boundary / viseme data
26933
26891
  resetNextUtteranceData(true);
26934
26892
  };
26935
26893
  const resetNextUtteranceData = (keepArrayBufferData)=>{
26936
- !keepArrayBufferData && setNextUtteranceData(null);
26894
+ !keepArrayBufferData && (nextUtteranceDataRef.current = null);
26895
+ nextUtteranceTextRef.current = null;
26937
26896
  nextUtteranceBoundariesRef.current = [];
26938
26897
  nextUtteranceVisemesRef.current = [];
26939
26898
  };
26940
26899
  (0, $dWhh5$react.useEffect)(()=>{
26941
26900
  if (utterance) {
26942
26901
  if (utterance.text) {
26943
- if (ponyfill && (audioRef === null || audioRef === void 0 ? void 0 : audioRef.current)) {
26944
- if (nextUtteranceData) {
26945
- boundaryRef.current = nextUtteranceData.boundaries;
26946
- setBoundaryData(nextUtteranceData.boundaries);
26947
- setVisemeData(nextUtteranceData.visemes);
26948
- processData(nextUtteranceData.speechData, true);
26949
- } else // Play utterance whether by asking for a speech synthesis, or by retrieving data fro indexeddb
26902
+ if (audioRef === null || audioRef === void 0 ? void 0 : audioRef.current) {
26903
+ var _nextUtteranceDataRef_current;
26904
+ if (((_nextUtteranceDataRef_current = nextUtteranceDataRef.current) === null || _nextUtteranceDataRef_current === void 0 ? void 0 : _nextUtteranceDataRef_current.text) === utterance.text && nextUtteranceDataRef.current.data) {
26905
+ boundaryRef.current = nextUtteranceDataRef.current.data.boundaries;
26906
+ setBoundaryData(nextUtteranceDataRef.current.data.boundaries);
26907
+ setVisemeData(nextUtteranceDataRef.current.data.visemes);
26908
+ processData(nextUtteranceDataRef.current.data.speechData, true);
26909
+ } else // Play utterance whether by asking for a speech synthesis, or by retrieving data from indexedDB
26950
26910
  playUtterance(attachEvents(utterance, true));
26951
26911
  } else stopCurrentPlaying();
26952
26912
  } else handleEmptyTextUtterance();
@@ -26955,8 +26915,10 @@ const $d31b268c3b702355$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
26955
26915
  utterance
26956
26916
  ]);
26957
26917
  (0, $dWhh5$react.useEffect)(()=>{
26958
- if ((nextUtterance === null || nextUtterance === void 0 ? void 0 : nextUtterance.text) && ponyfill) {
26918
+ // If there are data in nextUtteranceTextRef, this means the previous synthesis data retrieval is not finished, so we don't begin a new one
26919
+ if ((nextUtterance === null || nextUtterance === void 0 ? void 0 : nextUtterance.text) && !nextUtteranceTextRef.current) {
26959
26920
  const tempUtterance = attachEvents(nextUtterance);
26921
+ nextUtteranceTextRef.current = nextUtterance.text;
26960
26922
  ponyfill.speechSynthesis.synthesizeAndGetArrayData(tempUtterance, processNextData);
26961
26923
  } else resetNextUtteranceData();
26962
26924
  }, [
@@ -26964,14 +26926,14 @@ const $d31b268c3b702355$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
26964
26926
  ]);
26965
26927
  const playUtterance = async (utt)=>{
26966
26928
  if (DBReady && enableSpeechCaching !== false && utt) {
26967
- const dataFromIndexedDB = await $d31b268c3b702355$var$DBManager.getSpeechData(`${locale}.${voice === null || voice === void 0 ? void 0 : voice.name}.${utt.text.replace($d31b268c3b702355$var$tagsRemoverRegex, '').substring(0, 50)}`);
26929
+ const dataFromIndexedDB = await $d31b268c3b702355$var$DBManager.getSpeechData(`${locale}.${voice === null || voice === void 0 ? void 0 : voice.name}.${utt.text.replace($d31b268c3b702355$var$tagsRemoverRegex, '')}`);
26968
26930
  if (dataFromIndexedDB) {
26969
26931
  boundaryRef.current = dataFromIndexedDB.boundaries;
26970
26932
  setBoundaryData(dataFromIndexedDB.boundaries);
26971
26933
  setVisemeData(dataFromIndexedDB.visemes || []);
26972
26934
  processData(dataFromIndexedDB.value, true);
26973
- } else ponyfill === null || ponyfill === void 0 ? void 0 : ponyfill.speechSynthesis.synthesizeAndGetArrayData(utt, processData);
26974
- } else ponyfill === null || ponyfill === void 0 ? void 0 : ponyfill.speechSynthesis.synthesizeAndGetArrayData(utt, processData);
26935
+ } else ponyfill.speechSynthesis.synthesizeAndGetArrayData(utt, processData);
26936
+ } else ponyfill.speechSynthesis.synthesizeAndGetArrayData(utt, processData);
26975
26937
  };
26976
26938
  const processData = (data, alreadyExistsInDB)=>{
26977
26939
  if (data === null || data === void 0 ? void 0 : data.byteLength) {
@@ -26981,7 +26943,7 @@ const $d31b268c3b702355$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
26981
26943
  type: 'audio/mp3'
26982
26944
  });
26983
26945
  enableSpeechCaching !== false && !alreadyExistsInDB && DBReady && (boundaryRef === null || boundaryRef === void 0 ? void 0 : boundaryRef.current) && utterance && $d31b268c3b702355$var$DBManager.addSpeechData({
26984
- id: `${locale}.${voice === null || voice === void 0 ? void 0 : voice.name}.${utterance.text.replace($d31b268c3b702355$var$tagsRemoverRegex, '').substring(0, 50)}`,
26946
+ id: `${locale}.${voice === null || voice === void 0 ? void 0 : voice.name}.${utterance.text.replace($d31b268c3b702355$var$tagsRemoverRegex, '')}`,
26985
26947
  value: data,
26986
26948
  boundaries: boundaryRef.current,
26987
26949
  visemes: visemeRef.current || []
@@ -27006,13 +26968,13 @@ const $d31b268c3b702355$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
27006
26968
  };
27007
26969
  const handleEnd = ()=>{
27008
26970
  if (appAvailable || loaderClosed) {
27009
- onEnd && onEnd();
26971
+ onEnd === null || onEnd === void 0 ? void 0 : onEnd();
27010
26972
  resetData();
27011
26973
  } else setLoaderClosed(true);
27012
26974
  };
27013
26975
  const handleError = (error)=>{
27014
- console.log('Error : ', error);
27015
- onError && onError();
26976
+ console.log('Retorik Framework > speech synthesis error ', error);
26977
+ onError === null || onError === void 0 ? void 0 : onError();
27016
26978
  resetData();
27017
26979
  };
27018
26980
  const handleEmptyTextUtterance = ()=>{
@@ -27027,7 +26989,7 @@ const $d31b268c3b702355$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
27027
26989
  * - play 1 second muted sound to prime audio output
27028
26990
  * - MANDATORY FOR SAFARI IN VOCAL MODE
27029
26991
  */ const primeRetorikSpeech = ()=>{
27030
- if (ponyfill && audioRef.current) {
26992
+ if (audioRef.current) {
27031
26993
  audioRef.current.play().catch((e)=>console.warn(e));
27032
26994
  (speechRecognitionAudioRef === null || speechRecognitionAudioRef === void 0 ? void 0 : speechRecognitionAudioRef.current) && speechRecognitionAudioRef.current.play().catch((e)=>console.warn(e));
27033
26995
  // Send animation start event to secure animation not playing on safari if permissions are not sufficient
@@ -27038,13 +27000,6 @@ const $d31b268c3b702355$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
27038
27000
  * Play sound on speech recognition activation if it isn't disabled in configuration
27039
27001
  */ (0, $dWhh5$react.useEffect)(()=>{
27040
27002
  var _speechRecognitionAudioRef_current;
27041
- // if (
27042
- // !!speechRecognitionOptions?.enableActivationSound &&
27043
- // activeRecognitionState === RecognitionState.Listening
27044
- // ) {
27045
- // speechRecognitionAudioRef?.current &&
27046
- // speechRecognitionAudioRef.current.play().catch((e) => console.warn(e))
27047
- // }
27048
27003
  if (useOldRemote) {
27049
27004
  if (!!(speechRecognitionOptions === null || speechRecognitionOptions === void 0 ? void 0 : speechRecognitionOptions.enableActivationSound) && activeRecognitionState === (0, $7WHA7.RecognitionState).Listening) speechRecognitionAudioRef === null || speechRecognitionAudioRef === void 0 ? void 0 : (_speechRecognitionAudioRef_current = speechRecognitionAudioRef.current) === null || _speechRecognitionAudioRef_current === void 0 ? void 0 : _speechRecognitionAudioRef_current.play().catch((e)=>console.warn(e));
27050
27005
  } else if (!!(speechRecognitionOptions === null || speechRecognitionOptions === void 0 ? void 0 : speechRecognitionOptions.enableActivationSound)) switch(activeRecognitionState){
@@ -27103,11 +27058,7 @@ var $d31b268c3b702355$export$2e2bcd8739ae039 = $d31b268c3b702355$var$RetorikSpee
27103
27058
 
27104
27059
  const $ad561f5c61e38c20$var$SynthesisManager = ({ ponyfill: ponyfill, isRetorikNews: isRetorikNews })=>{
27105
27060
  const cancel = (0, $jgaO0.useSpeechStore)((state)=>state.cancel);
27106
- const streamingReplyToId = (0, $jgaO0.useSpeechStore)((state)=>state.streamingReplyToId);
27107
27061
  const streamingQueue = (0, $jgaO0.useSpeechStore)((state)=>state.streamingQueue);
27108
- const currentPlaying = (0, $jgaO0.useSpeechStore)((state)=>state.currentPlaying);
27109
- const currentReplyToId = (0, $jgaO0.useSpeechStore)((state)=>state.currentReplyToId);
27110
- const endedActivities = (0, $jgaO0.useSpeechStore)((state)=>state.endedActivities);
27111
27062
  const voice = (0, $jgaO0.useSpeechStore)((state)=>state.voice);
27112
27063
  const customVoice = (0, $jgaO0.useSpeechStore)((state)=>state.customVoice);
27113
27064
  const activeRecognitionState = (0, $jgaO0.useSpeechStore)((state)=>state.activeRecognitionState);
@@ -27120,24 +27071,18 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ ponyfill: ponyfill, isRetorikN
27120
27071
  const appAvailable = (0, $6EkQS.useRetorikStore)((state)=>state.appAvailable);
27121
27072
  const preventExpectedInputHint = (0, $6EkQS.useRetorikStore)((state)=>state.configuration.preventExpectedInputHint);
27122
27073
  const speechSynthesisOptions = (0, $6EkQS.useRetorikStore)((state)=>state.configuration.speechSynthesisOptions);
27123
- const currentNewsActivity = (0, $7eio0.useUtilsStore)((state)=>state.currentNewsActivity);
27124
- const lastBotActivity = (0, $e53vj.useActivityStore)((state)=>state.lastBotMessageActivity);
27125
27074
  const checkReplacementLocale = (0, $6Q0mk.useLocaleStore)((state)=>state.actions.checkReplacementLocale);
27126
27075
  const setRetorikNewsEnded = (0, $7eio0.useUtilsStore)((state)=>state.actions.setRetorikNewsEnded);
27127
- const { resetCancelCurrentUtterance: resetCancelCurrentUtterance, setSpeaking: setSpeaking, setCurrentPlaying: setCurrentPlaying, setCurrentReplyToId: setCurrentReplyToId, setEndedActivities: setEndedActivities, setBoundaryData: setBoundaryData, removeFirstFromStreamingQueue: removeFirstFromStreamingQueue, setCurrentStreaming: setCurrentStreaming, killCurrentStreaming: killCurrentStreaming, askPermission: askPermission, toggleMicrophone: toggleMicrophone } = (0, $jgaO0.useSpeechStore)((state)=>state.actions);
27076
+ const { setCurrentOrLastPlayedActivity: setCurrentOrLastPlayedActivity, resetCancelCurrentUtterance: resetCancelCurrentUtterance, setSpeaking: setSpeaking, setBoundaryData: setBoundaryData, removeFirstFromStreamingQueue: removeFirstFromStreamingQueue, killCurrentStreaming: killCurrentStreaming, askPermission: askPermission, toggleMicrophone: toggleMicrophone } = (0, $jgaO0.useSpeechStore)((state)=>state.actions);
27128
27077
  const addEndedActivity = (0, $e53vj.useActivityStore)((state)=>state.actions.addEndedActivity);
27129
27078
  const dispatchMarkActivity = (0, $6QoTL.useDirectlineStore)((state)=>state.actions.dispatchMarkActivity);
27079
+ const sendTrace = (0, $6be7f5aa73e32bf5$export$a15d15518a3ec33d)().sendTrace;
27130
27080
  const [utterance, setUtterance] = (0, $dWhh5$react.useState)(null);
27131
27081
  const [nextUtterance, setNextUtterance] = (0, $dWhh5$react.useState)(null);
27132
- const cancelRef = (0, $dWhh5$react.useRef)(false);
27133
- const isSpeaking = (0, $dWhh5$react.useRef)(false);
27134
27082
  const isNewsViewRef = (0, $dWhh5$react.useRef)(!!isRetorikNews);
27135
27083
  const lastListTextPlayedRef = (0, $dWhh5$react.useRef)('');
27136
- const queuedActivitiesRef = (0, $dWhh5$react.useRef)([]);
27084
+ const streamingQueueRef = (0, $dWhh5$react.useRef)([]);
27137
27085
  const currentActivityRef = (0, $dWhh5$react.useRef)(null);
27138
- const currentPlayingRef = (0, $dWhh5$react.useRef)(null);
27139
- const tempCurrentStreamingRef = (0, $dWhh5$react.useRef)(null);
27140
- const streamingRelatedMessageRef = (0, $dWhh5$react.useRef)(null);
27141
27086
  /**
27142
27087
  * Check activity locale in case of voice change during the speech, to keep the language defined in activity
27143
27088
  * instead of switching languages between answers that are written in the same language
@@ -27164,17 +27109,21 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ ponyfill: ponyfill, isRetorikN
27164
27109
  return (0, $285c8810199513ef$export$f969af62bba9a48b)(params, speechSynthesisOptions === null || speechSynthesisOptions === void 0 ? void 0 : speechSynthesisOptions.sayAs);
27165
27110
  };
27166
27111
  const resetData = ()=>{
27167
- queuedActivitiesRef.current = [];
27168
- tempCurrentStreamingRef.current = null;
27169
- streamingRelatedMessageRef.current = null;
27170
- currentPlayingRef.current = null;
27171
- isSpeaking.current = false;
27112
+ var // Set all activities currently in the queue as ended
27113
+ _streamingQueueRef_current;
27114
+ (_streamingQueueRef_current = streamingQueueRef.current) === null || _streamingQueueRef_current === void 0 ? void 0 : _streamingQueueRef_current.forEach((activity)=>{
27115
+ addEndedActivity(activity.id);
27116
+ });
27117
+ streamingQueueRef.current = [];
27118
+ killCurrentStreaming();
27119
+ currentActivityRef.current = null;
27172
27120
  setUtterance(null);
27173
27121
  setNextUtterance(null);
27174
27122
  resetCancelCurrentUtterance();
27123
+ setSpeaking(false);
27124
+ setBoundaryData([]);
27175
27125
  };
27176
- const checkReplacementLocaleAndGetUtterance = (activity, checkReplacement = true, setCurrent = true)=>{
27177
- setCurrent && (currentActivityRef.current = activity);
27126
+ const checkReplacementLocaleAndGetUtterance = (activity, checkReplacement = true)=>{
27178
27127
  const replacementLocale = checkReplacement ? checkReplacementLocale(activity.locale || locale) : locale;
27179
27128
  const params = {
27180
27129
  activity: activity,
@@ -27183,176 +27132,39 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ ponyfill: ponyfill, isRetorikN
27183
27132
  };
27184
27133
  return checkActivityAndCreateUtterance(params);
27185
27134
  };
27186
- const checkDictateState = ()=>{
27135
+ /**
27136
+ * Check if the microphone can be opened automatically
27137
+ */ const checkDictateState = ()=>{
27187
27138
  if (!preventExpectedInputHint && mode === (0, $7WHA7.Mode).vocal && activeRecognitionState === (0, $7WHA7.RecognitionState).Closed) {
27188
27139
  if (!isMicrophoneAllowed) askPermission();
27189
27140
  else toggleMicrophone(true);
27190
27141
  }
27191
27142
  };
27192
- (0, $dWhh5$react.useEffect)(()=>{
27193
- if (isNewsViewRef.current) {
27194
- if (currentNewsActivity) {
27195
- setUtterance(checkReplacementLocaleAndGetUtterance(currentNewsActivity));
27196
- isSpeaking.current = true;
27197
- } else {
27198
- setUtterance(null);
27199
- isSpeaking.current = false;
27200
- }
27201
- }
27202
- }, [
27203
- currentNewsActivity,
27204
- ponyfill
27205
- ]);
27206
27143
  /**
27207
- * On ViewContext's route state change :
27208
- * - when we toggle from a view to another, we reset the data related to speech
27144
+ * On route change, reset all data and check if we are on the news view
27209
27145
  */ (0, $dWhh5$react.useEffect)(()=>{
27210
- setSpeaking(false);
27211
- setBoundaryData([]);
27212
- const ended = [
27213
- ...endedActivities
27214
- ];
27215
- if (currentPlaying) {
27216
- // Add played activity id to context's endedActivities
27217
- ended.length > 10 && ended.splice(0, 1);
27218
- if (currentPlaying.id) {
27219
- ended.push(currentPlaying.id);
27220
- addEndedActivity(currentPlaying.id);
27221
- }
27222
- setEndedActivities(ended);
27223
- }
27224
- setCurrentPlaying(undefined);
27225
27146
  resetData();
27226
27147
  if (!isRetorikNews) isNewsViewRef.current = route === (0, $7WHA7.Routes).News;
27227
27148
  }, [
27228
27149
  route
27229
27150
  ]);
27230
27151
  /**
27231
- * On RetorikContext's appAvailable state change :
27232
- * - appAvailable is set to true after the user interacted with the loader and every needed element is loaded
27233
- * - no utterance is created while appAvailable isn't true
27234
- * - if during the waiting time, some activities were queued, when appAvailable comes to true, let's begin creating the utterances and playing them
27152
+ * On cancel call, reset all data and kill current streaming
27235
27153
  */ (0, $dWhh5$react.useEffect)(()=>{
27236
- var _queuedActivitiesRef_current;
27237
- if (appAvailable && ((_queuedActivitiesRef_current = queuedActivitiesRef.current) === null || _queuedActivitiesRef_current === void 0 ? void 0 : _queuedActivitiesRef_current.length)) {
27238
- setUtterance(checkReplacementLocaleAndGetUtterance(queuedActivitiesRef.current[0]));
27239
- queuedActivitiesRef.current.splice(0, 1);
27240
- isSpeaking.current = true;
27241
- }
27242
- }, [
27243
- appAvailable
27244
- ]);
27245
- /**
27246
- * On speechCancelStore's cancel state change :
27247
- * - if there is currently no utterance being played, reset cancel state to false
27248
- * - if an utterance is being played, set it to null to stop playing and prevent data in queue from being played
27249
- * - setting an utterance to null will trigger the handleUtteranceEnded method automatically
27250
- */ (0, $dWhh5$react.useEffect)(()=>{
27251
- cancelRef.current = cancel;
27252
- if (cancel) {
27253
- utterance ? setUtterance(null) : resetCancelCurrentUtterance();
27254
- isSpeaking.current = false;
27255
- setNextUtterance(null);
27256
- killCurrentStreaming();
27257
- }
27154
+ cancel && resetData();
27258
27155
  }, [
27259
27156
  cancel
27260
27157
  ]);
27261
27158
  /**
27262
- * - check if the ponyfill is created and the voices loaded
27263
- * - if the activity doesn't have a replyToId value, put it in the queue (used for reminder process)
27264
- * - if the app is not available yet, put the activity in the queue if it is not yet inside
27265
- * - NB: an activity can be received once from the directline, but can be found several times in the activities in the botframework
27266
- * this is because it is processed multiple times if there is something to speak (channelDate empty, then channelData with {speak: true})
27267
- * - 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)
27268
- * - if an utterance has to be created, create it and set the utterance state
27159
+ * Play external speech immediately but don't add it to the history
27269
27160
  */ (0, $dWhh5$react.useEffect)(()=>{
27270
- if (voice && (lastBotActivity === null || lastBotActivity === void 0 ? void 0 : lastBotActivity.id)) {
27271
- let createNewUtterance = false;
27272
- if (!lastBotActivity.replyToId) {
27273
- var _queuedActivitiesRef_current;
27274
- if (isNewsViewRef.current) ;
27275
- else if (currentPlaying || ((_queuedActivitiesRef_current = queuedActivitiesRef.current) === null || _queuedActivitiesRef_current === void 0 ? void 0 : _queuedActivitiesRef_current.length)) queuedActivitiesRef.current = [
27276
- ...queuedActivitiesRef.current,
27277
- lastBotActivity
27278
- ];
27279
- else if (endedActivities.length === 0 || endedActivities[endedActivities.length - 1] !== lastBotActivity.id) createNewUtterance = true;
27280
- } else if (lastBotActivity.replyToId === streamingReplyToId) {
27281
- var _lastBotActivity_value;
27282
- if ((_lastBotActivity_value = lastBotActivity.value) === null || _lastBotActivity_value === void 0 ? void 0 : _lastBotActivity_value.streamingId) {
27283
- setCurrentPlaying(lastBotActivity);
27284
- currentPlayingRef.current = lastBotActivity;
27285
- // Keep the message related to playing streaming activities to deal with when streaming is ended
27286
- streamingRelatedMessageRef.current = lastBotActivity;
27287
- } else queuedActivitiesRef.current = [
27288
- ...queuedActivitiesRef.current,
27289
- lastBotActivity
27290
- ];
27291
- } else if (!appAvailable) {
27292
- if (!currentReplyToId) {
27293
- setCurrentReplyToId(lastBotActivity.replyToId);
27294
- queuedActivitiesRef.current = [
27295
- lastBotActivity
27296
- ];
27297
- } else {
27298
- var _queuedActivitiesRef_current1;
27299
- if (currentReplyToId === lastBotActivity.replyToId) {
27300
- if (!((_queuedActivitiesRef_current1 = queuedActivitiesRef.current) === null || _queuedActivitiesRef_current1 === void 0 ? void 0 : _queuedActivitiesRef_current1.find((act)=>act.id === lastBotActivity.id))) queuedActivitiesRef.current = [
27301
- ...queuedActivitiesRef.current,
27302
- lastBotActivity
27303
- ];
27304
- } else {
27305
- setCurrentReplyToId(lastBotActivity.replyToId);
27306
- queuedActivitiesRef.current = [
27307
- lastBotActivity
27308
- ];
27309
- }
27310
- }
27311
- } else if (currentActivityRef === null || currentActivityRef === void 0 ? void 0 : currentActivityRef.current) switch((0, $549323f244f4782c$export$2e2bcd8739ae039)(lastBotActivity, currentActivityRef.current, currentReplyToId, queuedActivitiesRef.current, endedActivities)){
27312
- case 0:
27313
- break;
27314
- case 1:
27315
- // Add the activity to the queue
27316
- queuedActivitiesRef.current.push(lastBotActivity);
27317
- break;
27318
- case 2:
27319
- // Stop current activity and play the new one
27320
- queuedActivitiesRef.current = [];
27321
- createNewUtterance = true;
27322
- break;
27323
- }
27324
- else createNewUtterance = !endedActivities.includes(lastBotActivity.id);
27325
- if (createNewUtterance) {
27326
- setCurrentReplyToId(lastBotActivity.replyToId || 'customReplyToIdIfNotPresent');
27327
- setUtterance(checkReplacementLocaleAndGetUtterance(lastBotActivity));
27328
- isSpeaking.current = true;
27329
- }
27330
- }
27331
- }, [
27332
- lastBotActivity,
27333
- ponyfill,
27334
- voice
27335
- ]);
27336
- (0, $dWhh5$react.useEffect)(()=>{
27337
- if (streamingReplyToId && streamingQueue.length) {
27338
- setUtterance(checkReplacementLocaleAndGetUtterance(streamingQueue[0], false, false));
27339
- isSpeaking.current = true;
27340
- setCurrentPlaying(undefined);
27341
- currentPlayingRef.current = null;
27342
- currentActivityRef.current = null;
27343
- tempCurrentStreamingRef.current = streamingQueue[0].text || null;
27344
- removeFirstFromStreamingQueue();
27345
- }
27346
- }, [
27347
- streamingReplyToId
27348
- ]);
27349
- (0, $dWhh5$react.useEffect)(()=>{
27350
27161
  if (externalTextToSpeech) {
27351
- setUtterance(checkReplacementLocaleAndGetUtterance({
27162
+ const activity = {
27352
27163
  speak: externalTextToSpeech,
27353
27164
  locale: locale
27354
- }, false, false));
27355
- isSpeaking.current = true;
27165
+ };
27166
+ currentActivityRef.current = activity;
27167
+ setUtterance(checkReplacementLocaleAndGetUtterance(activity, false));
27356
27168
  }
27357
27169
  }, [
27358
27170
  externalTextToSpeech
@@ -27362,93 +27174,88 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ ponyfill: ponyfill, isRetorikN
27362
27174
  document.dispatchEvent(speechEvent);
27363
27175
  };
27364
27176
  /**
27365
- * On call :
27366
- * - set speaking state to true
27367
- * - clear timerref timeout
27368
- * - set currentPlaying and currentReplyToId states after a small delay to prevent make sure that the display will happen after the speech has begun
27177
+ * Called when utterance's "start" event is fired
27369
27178
  */ const handleUtteranceStart = ()=>{
27179
+ var _currentActivityRef_current, _currentActivityRef_current1, _currentActivityRef_current2, _streamingQueueRef_current__value;
27180
+ sendTrace((0, $7WHA7.TraceType).utteranceStart, {
27181
+ activityId: (_currentActivityRef_current = currentActivityRef.current) === null || _currentActivityRef_current === void 0 ? void 0 : _currentActivityRef_current.id,
27182
+ text: ((_currentActivityRef_current1 = currentActivityRef.current) === null || _currentActivityRef_current1 === void 0 ? void 0 : _currentActivityRef_current1.speak) || ((_currentActivityRef_current2 = currentActivityRef.current) === null || _currentActivityRef_current2 === void 0 ? void 0 : _currentActivityRef_current2.text)
27183
+ });
27370
27184
  setSpeaking(true);
27371
27185
  if (!isNewsViewRef.current && (currentActivityRef === null || currentActivityRef === void 0 ? void 0 : currentActivityRef.current)) {
27372
- setCurrentPlaying(currentActivityRef.current);
27373
- currentPlayingRef.current = currentActivityRef.current;
27186
+ setCurrentOrLastPlayedActivity(currentActivityRef.current);
27374
27187
  currentActivityRef.current.id && dispatchMarkActivity(currentActivityRef.current.id, true);
27375
27188
  }
27376
27189
  dispatchSpeechEvent(true);
27377
27190
  // Set next utterance to prepare synthesis data in order to improve fluidity
27378
- if (streamingReplyToId && streamingQueue.length) {
27379
- const tempActivity = streamingQueue[0];
27380
- if (tempActivity.text) {
27381
- const tempUtterance = checkReplacementLocaleAndGetUtterance(streamingQueue[0], false, false);
27382
- tempUtterance.text !== (nextUtterance === null || nextUtterance === void 0 ? void 0 : nextUtterance.text) ? setNextUtterance(tempUtterance) : setNextUtterance(null);
27383
- } else setNextUtterance(null);
27191
+ if (streamingQueueRef.current.length && !((_streamingQueueRef_current__value = streamingQueueRef.current[0].value) === null || _streamingQueueRef_current__value === void 0 ? void 0 : _streamingQueueRef_current__value.streamingCount)) {
27192
+ const utt = checkReplacementLocaleAndGetUtterance(streamingQueueRef.current[0], false);
27193
+ setNextUtterance((current)=>utt.text === (current === null || current === void 0 ? void 0 : current.text) ? null : utt);
27384
27194
  } else setNextUtterance(null);
27385
- setCurrentStreaming(tempCurrentStreamingRef === null || tempCurrentStreamingRef === void 0 ? void 0 : tempCurrentStreamingRef.current);
27386
27195
  };
27387
- const handleUtteranceEnd = ()=>{
27196
+ /**
27197
+ * Called when utterance's "end" event is fired
27198
+ */ const handleUtteranceEnd = ()=>{
27199
+ var _currentActivityRef_current;
27200
+ sendTrace((0, $7WHA7.TraceType).utteranceEnd, {
27201
+ activityId: (_currentActivityRef_current = currentActivityRef.current) === null || _currentActivityRef_current === void 0 ? void 0 : _currentActivityRef_current.id
27202
+ });
27388
27203
  setSpeaking(false);
27389
27204
  dispatchSpeechEvent(false);
27390
- if (isNewsViewRef.current) setRetorikNewsEnded(true);
27391
- else if (cancelRef.current) resetData();
27392
- else handleEnded();
27205
+ if (isNewsViewRef.current) {
27206
+ setRetorikNewsEnded(true);
27207
+ currentActivityRef.current = null;
27208
+ } else handleEnded();
27393
27209
  };
27394
- /**
27395
- * On call :
27396
- * - update the states related to the ende activity
27397
- * - check if the end of the utterance was called by a cancel or not
27398
- * - if it wasn't a cancel, deal with the queue
27399
- * - if this was the last activity of the queue, check if the microphone has to be opened automatically (inputHint = expectingInput)
27400
- */ const handleEnded = ()=>{
27401
- let futureUtterance = null;
27402
- if (currentPlayingRef === null || currentPlayingRef === void 0 ? void 0 : currentPlayingRef.current) // Add played activity id to context's endedActivities
27403
- {
27404
- if (currentPlayingRef.current.id) {
27405
- addEndedActivity(currentPlayingRef.current.id);
27406
- dispatchMarkActivity(currentPlayingRef.current.id, false);
27407
- }
27210
+ const handleEnded = ()=>{
27211
+ var _currentActivityRef_current, _streamingQueueRef_current;
27212
+ // Add played activity id to context's endedActivities
27213
+ if ((_currentActivityRef_current = currentActivityRef.current) === null || _currentActivityRef_current === void 0 ? void 0 : _currentActivityRef_current.id) {
27214
+ addEndedActivity(currentActivityRef.current.id);
27215
+ dispatchMarkActivity(currentActivityRef.current.id, false);
27408
27216
  }
27409
- setCurrentPlaying(undefined);
27410
- if (streamingQueue.length) {
27411
- futureUtterance = checkReplacementLocaleAndGetUtterance(streamingQueue[0], false);
27412
- tempCurrentStreamingRef.current = streamingQueue[0].text || null;
27413
- removeFirstFromStreamingQueue();
27414
- } else {
27415
- var _queuedActivitiesRef_current, _currentPlayingRef_current;
27416
- // Launch next activity in the queue and remove it from the queue
27417
- if ((_queuedActivitiesRef_current = queuedActivitiesRef.current) === null || _queuedActivitiesRef_current === void 0 ? void 0 : _queuedActivitiesRef_current.length) {
27418
- futureUtterance = checkReplacementLocaleAndGetUtterance(queuedActivitiesRef.current[0]);
27419
- queuedActivitiesRef.current.splice(0, 1);
27420
- // If a streaming-related message activity is stored, set it as ended and flush it
27421
- if (streamingRelatedMessageRef.current) {
27422
- addEndedActivity(streamingRelatedMessageRef.current.id);
27423
- streamingRelatedMessageRef.current = null;
27217
+ if ((_streamingQueueRef_current = streamingQueueRef.current) === null || _streamingQueueRef_current === void 0 ? void 0 : _streamingQueueRef_current.length) {
27218
+ var _streamingQueueRef_current__value;
27219
+ // Check if this is the message sent after streaming activities
27220
+ if ((_streamingQueueRef_current__value = streamingQueueRef.current[0].value) === null || _streamingQueueRef_current__value === void 0 ? void 0 : _streamingQueueRef_current__value.streamingCount) {
27221
+ var _streamingQueueRef_current1;
27222
+ addEndedActivity(streamingQueueRef.current[0].id);
27223
+ // If there is another activity after this message, play it. If not, let's check if the microphone should be opened
27224
+ if (((_streamingQueueRef_current1 = streamingQueueRef.current) === null || _streamingQueueRef_current1 === void 0 ? void 0 : _streamingQueueRef_current1.length) > 1) {
27225
+ const utt = checkReplacementLocaleAndGetUtterance(streamingQueueRef.current[1]);
27226
+ currentActivityRef.current = streamingQueueRef.current[1];
27227
+ setUtterance(utt);
27228
+ removeFirstFromStreamingQueue(true);
27229
+ } else {
27230
+ streamingQueueRef.current[0].inputHint === 'expectingInput' && checkDictateState();
27231
+ currentActivityRef.current = null;
27232
+ setUtterance(null);
27233
+ setNextUtterance(null);
27234
+ removeFirstFromStreamingQueue();
27424
27235
  }
27425
- } else if (streamingRelatedMessageRef.current) {
27426
- // Streaming-related message activity stored
27427
- streamingRelatedMessageRef.current.inputHint === 'expectingInput' && checkDictateState();
27428
- addEndedActivity(streamingRelatedMessageRef.current.id);
27429
- streamingRelatedMessageRef.current = null;
27430
- } else (currentPlayingRef === null || currentPlayingRef === void 0 ? void 0 : (_currentPlayingRef_current = currentPlayingRef.current) === null || _currentPlayingRef_current === void 0 ? void 0 : _currentPlayingRef_current.inputHint) === 'expectingInput' && checkDictateState();
27236
+ } else {
27237
+ const utt = checkReplacementLocaleAndGetUtterance(streamingQueueRef.current[0]);
27238
+ currentActivityRef.current = streamingQueueRef.current[0];
27239
+ setUtterance(utt);
27240
+ removeFirstFromStreamingQueue();
27241
+ }
27242
+ } else {
27243
+ var _currentActivityRef_current1;
27244
+ ((_currentActivityRef_current1 = currentActivityRef.current) === null || _currentActivityRef_current1 === void 0 ? void 0 : _currentActivityRef_current1.inputHint) === 'expectingInput' && checkDictateState();
27245
+ currentActivityRef.current = null;
27246
+ setUtterance(null);
27247
+ setNextUtterance(null);
27431
27248
  }
27432
- currentPlayingRef.current = null;
27433
- setUtterance(futureUtterance);
27434
- isSpeaking.current = !!futureUtterance;
27435
27249
  };
27436
27250
  /**
27437
- * If the previous audio stream ends before the next one is received, we relaunch the new stream as soon as it arrives.
27251
+ * Wait for app loading and voice selection to begin playing speech
27438
27252
  */ (0, $dWhh5$react.useEffect)(()=>{
27439
- if (!isSpeaking.current) {
27440
- let futureUtterance = null;
27441
- setCurrentPlaying(undefined);
27442
- if (streamingQueue.length) {
27443
- futureUtterance = checkReplacementLocaleAndGetUtterance(streamingQueue[0], false, false);
27444
- tempCurrentStreamingRef.current = streamingQueue[0].text || null;
27445
- removeFirstFromStreamingQueue();
27446
- }
27447
- currentPlayingRef.current = null;
27448
- setUtterance(futureUtterance);
27449
- isSpeaking.current = !!futureUtterance;
27450
- }
27253
+ // Set ref from the state to use in events
27254
+ streamingQueueRef.current = streamingQueue;
27255
+ if (appAvailable && voice && streamingQueue.length && !currentActivityRef.current) handleEnded();
27451
27256
  }, [
27257
+ appAvailable,
27258
+ voice,
27452
27259
  streamingQueue
27453
27260
  ]);
27454
27261
  return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $d31b268c3b702355$export$2e2bcd8739ae039), {
@@ -27966,8 +27773,7 @@ const $4b02e31a53a4d2e7$var$typingTimer = 2000;
27966
27773
  const $4b02e31a53a4d2e7$var$SendTypingIndicator = ({ isRetorikNews: isRetorikNews })=>{
27967
27774
  const speaking = (0, $jgaO0.useSpeechStore)((state)=>state.speaking);
27968
27775
  const streamingQueue = (0, $jgaO0.useSpeechStore)((state)=>state.streamingQueue);
27969
- const streamingQueueFullLength = (0, $jgaO0.useSpeechStore)((state)=>state.streamingQueueFullLength);
27970
- const lastRecognitionInterim = (0, $jgaO0.useSpeechStore)((state)=>state.lastRecognitionInterim);
27776
+ const activeRecognitionState = (0, $jgaO0.useSpeechStore)((state)=>state.activeRecognitionState);
27971
27777
  const route = (0, $kUiCn.useViewStore)((state)=>state.route);
27972
27778
  const loaderClosed = (0, $6EkQS.useRetorikStore)((state)=>state.loaderClosed);
27973
27779
  const appAvailable = (0, $6EkQS.useRetorikStore)((state)=>state.appAvailable);
@@ -27980,17 +27786,24 @@ const $4b02e31a53a4d2e7$var$SendTypingIndicator = ({ isRetorikNews: isRetorikNew
27980
27786
  const sendTyping = (0, $6QoTL.useDirectlineStore)((state)=>state.actions.sendTyping);
27981
27787
  const dataRef = (0, $dWhh5$react.useRef)(false);
27982
27788
  (0, $dWhh5$react.useEffect)(()=>{
27789
+ // Don't send typing activity when we are receiving streaming events
27790
+ const isReceivingStreamingData = !!streamingQueue.length && !!streamingQueue.find((activity)=>{
27791
+ var _activity_name;
27792
+ return ((_activity_name = activity.name) === null || _activity_name === void 0 ? void 0 : _activity_name.toLowerCase()) === 'davi.streammessageactivity';
27793
+ }) && !streamingQueue.find((activity)=>{
27794
+ var _activity_value;
27795
+ return (_activity_value = activity.value) === null || _activity_value === void 0 ? void 0 : _activity_value.streamingCount;
27796
+ });
27983
27797
  dataRef.current = !isWaitingForResponse && // Don't send typing activity when we are receiving streaming events
27984
- !(streamingQueue.length && streamingQueueFullLength === 0) && (!loaderClosed || lastRecognitionInterim !== '' || userIsTyping || userIsSwiping || speaking || currentSubView !== (0, $7WHA7.CurrentSubView).none || route === (0, $7WHA7.Routes).News || retorikEvent === (0, $7WHA7.RetorikEvent).DetailViewOpen || listStatus === (0, $7WHA7.ListStatus).opened);
27798
+ !isReceivingStreamingData && (!loaderClosed || activeRecognitionState !== (0, $7WHA7.RecognitionState).Closed || userIsTyping || userIsSwiping || speaking || currentSubView !== (0, $7WHA7.CurrentSubView).none || route === (0, $7WHA7.Routes).News || retorikEvent === (0, $7WHA7.RetorikEvent).DetailViewOpen || listStatus === (0, $7WHA7.ListStatus).opened);
27985
27799
  }, [
27986
27800
  appAvailable,
27987
27801
  loaderClosed,
27988
- lastRecognitionInterim,
27802
+ activeRecognitionState,
27989
27803
  userIsTyping,
27990
27804
  userIsSwiping,
27991
27805
  speaking,
27992
27806
  streamingQueue,
27993
- streamingQueueFullLength,
27994
27807
  currentSubView,
27995
27808
  route,
27996
27809
  retorikEvent,
@@ -28277,7 +28090,7 @@ const $8f73b7a6f73661a7$var$ChatbotAndSubtitlesContainer = ({ centered: centered
28277
28090
  children: [
28278
28091
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
28279
28092
  id: "retorik-animation-container",
28280
- 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`,
28093
+ 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`,
28281
28094
  style: {
28282
28095
  visibility: visible ? 'visible' : 'hidden',
28283
28096
  gridRow: `${gridRowStart} / span ${gridRowSpan}`
@@ -28762,7 +28575,6 @@ var $6FBQK = parcelRequire("6FBQK");
28762
28575
 
28763
28576
  const $5f80e5f73a172bb5$var$LayoutHandler = (props)=>{
28764
28577
  var _props_widgetConfig, _props_widgetConfig_button, _props_widgetConfig1, _props_widgetConfig_button_text, _props_widgetConfig_button1, _props_widgetConfig2, _props_widgetConfig_button_background, _props_widgetConfig_button2, _props_widgetConfig3, _props_widgetConfig_button_border, _props_widgetConfig_button3, _props_widgetConfig4, _props_widgetConfig_button_border1, _props_widgetConfig_button4, _props_widgetConfig5, _props_widgetConfig_button_border2, _props_widgetConfig_button5, _props_widgetConfig6, _props_widgetConfig_button_position, _props_widgetConfig_button6, _props_widgetConfig7, _props_widgetConfig_button_position1, _props_widgetConfig_button7, _props_widgetConfig8, _props_widgetConfig_button_position2, _props_widgetConfig_button8, _props_widgetConfig9, _props_widgetConfig_button_position3, _props_widgetConfig_button9, _props_widgetConfig10, _props_widgetConfig_button_position4, _props_widgetConfig_button10, _props_widgetConfig11, _props_widgetConfig_button_position5, _props_widgetConfig_button11, _props_widgetConfig12, _props_widgetConfig_button_position6, _props_widgetConfig_button12, _props_widgetConfig13, _props_widgetConfig_button_position7, _props_widgetConfig_button13, _props_widgetConfig14, _props_widgetConfig_button_position8, _props_widgetConfig_button14, _props_widgetConfig15, _props_widgetConfig_button_position9, _props_widgetConfig_button15, _props_widgetConfig16, _props_widgetConfig_button_position10, _props_widgetConfig_button16, _props_widgetConfig17, _props_widgetConfig_button_position11, _props_widgetConfig_button17, _props_widgetConfig18, _props_widgetConfig_button_image, _props_widgetConfig_button18, _props_widgetConfig19, _props_widgetConfig_button_image1, _props_widgetConfig_button19, _props_widgetConfig20, _props_widgetConfig_button20, _props_widgetConfig21, _props_widgetConfig_button21, _props_widgetConfig22, _props_widgetConfig_button_text1, _props_widgetConfig_button22, _props_widgetConfig23, _props_widgetConfig_button_text2, _props_widgetConfig_button23, _props_widgetConfig24, _props_widgetConfig_button_image2, _props_widgetConfig_button24, _props_widgetConfig25, _props_widgetConfig_button_image3, _props_widgetConfig_button25, _props_widgetConfig26, _props_widgetConfig_button26, _props_widgetConfig27, _props_widgetConfig_button27, _props_widgetConfig28;
28765
- const isRTL = (0, $6Q0mk.useLocaleStore)((state)=>state.isRTL);
28766
28578
  const translation = (0, $6Q0mk.useLocaleStore)((state)=>state.currentTranslations);
28767
28579
  const currentLayout = (0, $6EkQS.useRetorikStore)((state)=>state.currentLayout);
28768
28580
  const displayChangeLayoutButton = (0, $6EkQS.useRetorikStore)((state)=>state.configuration).allowSwitchLayout;
@@ -28870,7 +28682,6 @@ const $5f80e5f73a172bb5$var$LayoutHandler = (props)=>{
28870
28682
  ]
28871
28683
  }),
28872
28684
  loaded && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
28873
- dir: isRTL ? 'rtl' : 'ltr',
28874
28685
  className: `${currentLayout === (0, $7WHA7.ContainerParent).widget ? 'rf-fixed rf-pt-8 rf-height-fill-available rf-transition-all rf-overflow-hidden rf-max-w-[100vw]' : ''}`,
28875
28686
  style: currentLayout === (0, $7WHA7.ContainerParent).widget ? {
28876
28687
  ...frameStyle,
@@ -28894,7 +28705,7 @@ const $5f80e5f73a172bb5$var$LayoutHandler = (props)=>{
28894
28705
  /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("button", {
28895
28706
  onClick: toggleWidget,
28896
28707
  "aria-label": "Close",
28897
- 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",
28708
+ 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",
28898
28709
  children: /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $6FBQK.default), {
28899
28710
  className: "rf-h-4 rf-w-4",
28900
28711
  color: "#000000"