@davi-ai/retorik-framework 3.0.3 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +13 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +667 -522
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +640 -497
- package/dist/index.modern.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -55,53 +55,54 @@ $parcel$export(module.exports, "default", () => $3f93eb6d5bf69cb7$export$2e2bcd8
|
|
|
55
55
|
$parcel$export(module.exports, "RetorikAgent", () => $e9118dec60074066$export$2e2bcd8739ae039);
|
|
56
56
|
$parcel$export(module.exports, "RetorikWidget", () => $09a824b6b849eeca$export$2e2bcd8739ae039);
|
|
57
57
|
$parcel$export(module.exports, "RetorikNews", () => $b2eff0b289a9ca58$export$2e2bcd8739ae039);
|
|
58
|
-
$parcel$export(module.exports, "
|
|
59
|
-
$parcel$export(module.exports, "
|
|
60
|
-
$parcel$export(module.exports, "
|
|
61
|
-
$parcel$export(module.exports, "setCurrentSubView", () => $33ea75f69090702b$export$f0c096b4ecd7115d);
|
|
62
|
-
$parcel$export(module.exports, "sendActivity", () => $33ea75f69090702b$export$d4c8c6daac289378);
|
|
63
|
-
$parcel$export(module.exports, "sendMessage", () => $33ea75f69090702b$export$465cb47180de50f0);
|
|
64
|
-
$parcel$export(module.exports, "sendEvent", () => $33ea75f69090702b$export$7329bcdc3edcd90e);
|
|
58
|
+
$parcel$export(module.exports, "addDetailedAttachmentTrigger", () => $33ea75f69090702b$export$d1f60bb847ecc604);
|
|
59
|
+
$parcel$export(module.exports, "cancelCurrentUtterance", () => $33ea75f69090702b$export$f3aaae0c8197c567);
|
|
60
|
+
$parcel$export(module.exports, "closeWidget", () => $33ea75f69090702b$export$d27f1b0993b666c);
|
|
65
61
|
$parcel$export(module.exports, "fetchAvailableLanguages", () => $49ef6b13684edff9$export$2e2bcd8739ae039);
|
|
66
62
|
$parcel$export(module.exports, "getRetorikConfigs", () => $ba3150a69d33f468$export$2e2bcd8739ae039);
|
|
67
63
|
$parcel$export(module.exports, "getThemeColors", () => $68ec406cc754e31c$export$2e2bcd8739ae039);
|
|
68
|
-
$parcel$export(module.exports, "setLocale", () => $33ea75f69090702b$export$c8aadf3621e41efb);
|
|
69
|
-
$parcel$export(module.exports, "showAgent", () => $33ea75f69090702b$export$ae67eb518a2aae74);
|
|
70
64
|
$parcel$export(module.exports, "hideAgent", () => $33ea75f69090702b$export$e73dbd7ba351e3e);
|
|
71
|
-
$parcel$export(module.exports, "
|
|
72
|
-
$parcel$export(module.exports, "
|
|
73
|
-
$parcel$export(module.exports, "
|
|
74
|
-
$parcel$export(module.exports, "
|
|
75
|
-
$parcel$export(module.exports, "
|
|
65
|
+
$parcel$export(module.exports, "openWidget", () => $33ea75f69090702b$export$a1c83309c736819f);
|
|
66
|
+
$parcel$export(module.exports, "pauseConversation", () => $33ea75f69090702b$export$7431bc5a5c7c9317);
|
|
67
|
+
$parcel$export(module.exports, "playExternalSynthesis", () => $33ea75f69090702b$export$99dcb7840cd85481);
|
|
68
|
+
$parcel$export(module.exports, "resumeConversation", () => $33ea75f69090702b$export$cceb853b29df842);
|
|
69
|
+
$parcel$export(module.exports, "sendActivity", () => $33ea75f69090702b$export$d4c8c6daac289378);
|
|
70
|
+
$parcel$export(module.exports, "sendEvent", () => $33ea75f69090702b$export$7329bcdc3edcd90e);
|
|
71
|
+
$parcel$export(module.exports, "sendMessage", () => $33ea75f69090702b$export$465cb47180de50f0);
|
|
72
|
+
$parcel$export(module.exports, "sendMessageToChatbot", () => $33ea75f69090702b$export$255ebd0ca6bfba88);
|
|
73
|
+
$parcel$export(module.exports, "setCurrentCustomView", () => $33ea75f69090702b$export$5a678fd51bd89633);
|
|
74
|
+
$parcel$export(module.exports, "setCurrentSubView", () => $33ea75f69090702b$export$f0c096b4ecd7115d);
|
|
76
75
|
$parcel$export(module.exports, "setDashboardOpened", () => $33ea75f69090702b$export$bbd7c92fc378d660);
|
|
77
76
|
$parcel$export(module.exports, "setDisplaySubtitles", () => $33ea75f69090702b$export$708f3eb1d5828832);
|
|
78
|
-
$parcel$export(module.exports, "
|
|
79
|
-
$parcel$export(module.exports, "
|
|
77
|
+
$parcel$export(module.exports, "setLoaderClosed", () => $33ea75f69090702b$export$982d69b78a955aaf);
|
|
78
|
+
$parcel$export(module.exports, "setLocale", () => $33ea75f69090702b$export$c8aadf3621e41efb);
|
|
79
|
+
$parcel$export(module.exports, "setModalFullscreenContent", () => $33ea75f69090702b$export$4317154639841e84);
|
|
80
|
+
$parcel$export(module.exports, "setMode", () => $33ea75f69090702b$export$d4f039427a1beff1);
|
|
80
81
|
$parcel$export(module.exports, "setMuted", () => $33ea75f69090702b$export$a1680ba91cc9be33);
|
|
81
|
-
$parcel$export(module.exports, "
|
|
82
|
+
$parcel$export(module.exports, "setPrintingCallback", () => $33ea75f69090702b$export$7f09d7ad7dbdcd2c);
|
|
82
83
|
$parcel$export(module.exports, "setVisibility", () => $33ea75f69090702b$export$2c64211ecf98e50d);
|
|
84
|
+
$parcel$export(module.exports, "showAgent", () => $33ea75f69090702b$export$ae67eb518a2aae74);
|
|
85
|
+
$parcel$export(module.exports, "toggleDisplay", () => $33ea75f69090702b$export$f0e9d14ede4c01bd);
|
|
86
|
+
$parcel$export(module.exports, "toggleMicrophone", () => $33ea75f69090702b$export$39fcdeae376856e7);
|
|
87
|
+
$parcel$export(module.exports, "toggleSubtitles", () => $33ea75f69090702b$export$3fa7f3a227fc16cb);
|
|
83
88
|
$parcel$export(module.exports, "toggleVisibility", () => $33ea75f69090702b$export$7396a2167c7f755e);
|
|
84
|
-
$parcel$export(module.exports, "pauseConversation", () => $33ea75f69090702b$export$7431bc5a5c7c9317);
|
|
85
|
-
$parcel$export(module.exports, "resumeConversation", () => $33ea75f69090702b$export$cceb853b29df842);
|
|
86
|
-
$parcel$export(module.exports, "sendMessageToChatbot", () => $33ea75f69090702b$export$255ebd0ca6bfba88);
|
|
87
|
-
$parcel$export(module.exports, "openWidget", () => $33ea75f69090702b$export$a1c83309c736819f);
|
|
88
|
-
$parcel$export(module.exports, "closeWidget", () => $33ea75f69090702b$export$d27f1b0993b666c);
|
|
89
89
|
$parcel$export(module.exports, "toggleWidget", () => $33ea75f69090702b$export$77c0ba4d0d97cee5);
|
|
90
|
-
$parcel$export(module.exports, "
|
|
90
|
+
$parcel$export(module.exports, "useConfiguration", () => $d69f8233be4cb01a$export$2e2bcd8739ae039);
|
|
91
91
|
$parcel$export(module.exports, "useCurrentSubView", () => $3e19540ccac3c4df$export$2e2bcd8739ae039);
|
|
92
|
+
$parcel$export(module.exports, "useIsMobile", () => $f504a73816380d9f$export$2e2bcd8739ae039);
|
|
93
|
+
$parcel$export(module.exports, "useIsRTL", () => $90f60770defa1857$export$2e2bcd8739ae039);
|
|
94
|
+
$parcel$export(module.exports, "useIsUsedOnBorne", () => $b0851c8a4aa6be6a$export$2e2bcd8739ae039);
|
|
95
|
+
$parcel$export(module.exports, "useIsWidget", () => $f9f069937179e1e1$export$2e2bcd8739ae039);
|
|
92
96
|
$parcel$export(module.exports, "useKioskParameterOpening", () => $bafed4617816be24$export$2e2bcd8739ae039);
|
|
93
|
-
$parcel$export(module.exports, "
|
|
97
|
+
$parcel$export(module.exports, "useLoaderClosed", () => $9b7c0505b2978531$export$2e2bcd8739ae039);
|
|
94
98
|
$parcel$export(module.exports, "useLocale", () => $d475f175c55a36d5$export$2e2bcd8739ae039);
|
|
95
99
|
$parcel$export(module.exports, "useMode", () => $11cef3dc5a2b4f17$export$2e2bcd8739ae039);
|
|
96
100
|
$parcel$export(module.exports, "useMuted", () => $e72a2b3d53bfff70$export$2e2bcd8739ae039);
|
|
97
|
-
$parcel$export(module.exports, "
|
|
98
|
-
$parcel$export(module.exports, "useConfiguration", () => $d69f8233be4cb01a$export$2e2bcd8739ae039);
|
|
99
|
-
$parcel$export(module.exports, "useIsUsedOnBorne", () => $b0851c8a4aa6be6a$export$2e2bcd8739ae039);
|
|
100
|
-
$parcel$export(module.exports, "useIsMobile", () => $f504a73816380d9f$export$2e2bcd8739ae039);
|
|
101
|
-
$parcel$export(module.exports, "useIsWidget", () => $f9f069937179e1e1$export$2e2bcd8739ae039);
|
|
102
|
-
$parcel$export(module.exports, "useIsRTL", () => $90f60770defa1857$export$2e2bcd8739ae039);
|
|
101
|
+
$parcel$export(module.exports, "useRetorikEvent", () => $af904b55748ebfd1$export$2e2bcd8739ae039);
|
|
103
102
|
$parcel$export(module.exports, "useTranslation", () => $c2f7e3fcd01ae5b3$export$2e2bcd8739ae039);
|
|
104
103
|
$parcel$export(module.exports, "useThemeColors", () => $a8503510ff390bc9$export$2e2bcd8739ae039);
|
|
104
|
+
$parcel$export(module.exports, "presets", () => $dWhh5$daviaireactbodyenginethree.presets);
|
|
105
|
+
$parcel$export(module.exports, "characters", () => $ad17e3bb6d135d7b$export$30a86d91af8ff6e6);
|
|
105
106
|
$parcel$export(module.exports, "CONTENT_TYPE_POI", () => $3b05c823a6ed4bb8$export$8c612ad42a82284);
|
|
106
107
|
$parcel$export(module.exports, "CONTENT_TYPE_NEWS", () => $3b05c823a6ed4bb8$export$7ff82c027074e396);
|
|
107
108
|
$parcel$export(module.exports, "CONTENT_TYPE_ADAPTIVE_CARD", () => $3b05c823a6ed4bb8$export$bbfd0bb0baceb2f8);
|
|
@@ -537,7 +538,10 @@ const $2793f2455cec0982$var$createUtilsStore = ()=>(0, $dWhh5$zustand.createStor
|
|
|
537
538
|
},
|
|
538
539
|
setModalFullscreenContent: (value, fromActivity)=>{
|
|
539
540
|
set((state)=>{
|
|
540
|
-
if (!fromActivity
|
|
541
|
+
if (!fromActivity) return {
|
|
542
|
+
modalFullscreenContent: value
|
|
543
|
+
};
|
|
544
|
+
else if (fromActivity !== state.modalFullscreenContentNoDisplayId) // Set fromActivity data to check next time if we have to prevent unwanted re-rendering
|
|
541
545
|
return {
|
|
542
546
|
modalFullscreenContent: value,
|
|
543
547
|
modalFullscreenContentNoDisplayId: fromActivity
|
|
@@ -1673,12 +1677,10 @@ const $df401eb9a10f9e0e$var$createSpeechStore = (setRetorikEvent, getListStatus,
|
|
|
1673
1677
|
return;
|
|
1674
1678
|
case (0, $71c613e2e831c34c$export$3f0071308968cd80).Listening:
|
|
1675
1679
|
get().actions.setActiveRecognitionState((0, $71c613e2e831c34c$export$3f0071308968cd80).ForceClosing);
|
|
1676
|
-
console.log('called here');
|
|
1677
1680
|
get().actions.cancelCurrentUtterance();
|
|
1678
1681
|
break;
|
|
1679
1682
|
case (0, $71c613e2e831c34c$export$3f0071308968cd80).Closed:
|
|
1680
1683
|
get().actions.setActiveRecognitionState((0, $71c613e2e831c34c$export$3f0071308968cd80).Initializing);
|
|
1681
|
-
console.log('called there');
|
|
1682
1684
|
!fromExpectedInput && get().actions.cancelCurrentUtterance();
|
|
1683
1685
|
break;
|
|
1684
1686
|
}
|
|
@@ -1904,7 +1906,9 @@ const $1d4f8108de9ab73a$var$initialState = {
|
|
|
1904
1906
|
displayAgentInNews: true,
|
|
1905
1907
|
submitDelayBeforeSendingMessage: undefined,
|
|
1906
1908
|
disableHistory: false,
|
|
1907
|
-
environmentPreset: "apartment"
|
|
1909
|
+
environmentPreset: "apartment",
|
|
1910
|
+
customScripts: [],
|
|
1911
|
+
customCSS: []
|
|
1908
1912
|
};
|
|
1909
1913
|
let $1d4f8108de9ab73a$var$timer = null;
|
|
1910
1914
|
$1d4f8108de9ab73a$var$timer = setTimeout(()=>{
|
|
@@ -2061,6 +2065,16 @@ const $1d4f8108de9ab73a$var$createSpeechStore = (modeRef)=>{
|
|
|
2061
2065
|
disableHistory: value
|
|
2062
2066
|
});
|
|
2063
2067
|
},
|
|
2068
|
+
setCustomScripts: (value)=>{
|
|
2069
|
+
set({
|
|
2070
|
+
customScripts: value
|
|
2071
|
+
});
|
|
2072
|
+
},
|
|
2073
|
+
setCustomCSS: (value)=>{
|
|
2074
|
+
set({
|
|
2075
|
+
customCSS: value
|
|
2076
|
+
});
|
|
2077
|
+
},
|
|
2064
2078
|
resetRetorikStore: ()=>{
|
|
2065
2079
|
set({
|
|
2066
2080
|
...$1d4f8108de9ab73a$var$initialState
|
|
@@ -3215,7 +3229,7 @@ var $c8770452d727244a$export$2e2bcd8739ae039 = $c8770452d727244a$var$activityMid
|
|
|
3215
3229
|
|
|
3216
3230
|
|
|
3217
3231
|
var $696df75883117d57$exports = {};
|
|
3218
|
-
$696df75883117d57$exports = JSON.parse("{\"name\":\"@davi-ai/retorik-framework\",\"version\":\"3.0
|
|
3232
|
+
$696df75883117d57$exports = JSON.parse("{\"name\":\"@davi-ai/retorik-framework\",\"version\":\"3.2.0\",\"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\",\"includeNodeModules\":{\"@testing-library/jest-dom\":false,\"@testing-library/react\":false,\"@testing-library/react-hooks\":false,\"@testing-library/user-event\":false,\"eslint\":false,\"eslint-config-prettier\":false,\"eslint-config-standard\":false,\"eslint-config-standard-react\":false,\"eslint-plugin-import\":false,\"eslint-plugin-node\":false,\"eslint-plugin-prettier\":false,\"eslint-plugin-promise\":false,\"eslint-plugin-react\":false,\"eslint-plugin-standard\":false,\"jest-junit\":false,\"npm-run-all\":false,\"parcel\":false,\"prettier\":false,\"raw-loader\":false,\"react-docgen-typescript-plugin\":false,\"react-scripts\":false,\"react-test-renderer\":false,\"tailwindcss\":false,\"typescript\":false}},\"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-scripts\":\"5.0.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.5\",\"@davi-ai/retorik-weather\":\"2.0.0\",\"@davi-ai/speechmarkdown-davi-js\":\"1.0.6\",\"@davi-ai/web-speech-cognitive-services-davi\":\"2.0.10\",\"@fluentui/react\":\"^8.103.3\",\"@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\",\"@react-three/drei\":\"^9.106.0\",\"@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\",\"react-webcam\":\"^6.0.0\",\"swiper\":\"^8.4.5\",\"three\":\"0.174.0\",\"zustand\":\"^5.0.3\"},\"overrides\":{\"@davi-ai/web-speech-cognitive-services-davi\":\"$@davi-ai/web-speech-cognitive-services-davi\",\"three\":\"$three\",\"zustand\":\"$zustand\"},\"@parcel/resolver-default\":{\"packageExports\":true}}");
|
|
3219
3233
|
|
|
3220
3234
|
|
|
3221
3235
|
const $328a7f03b0982320$var$initialState = {
|
|
@@ -3224,7 +3238,7 @@ const $328a7f03b0982320$var$initialState = {
|
|
|
3224
3238
|
connectionStatusSubscription: null,
|
|
3225
3239
|
activitySubscription: null,
|
|
3226
3240
|
userId: '',
|
|
3227
|
-
|
|
3241
|
+
externalActivityHandlers: [],
|
|
3228
3242
|
paginationToSend: 10,
|
|
3229
3243
|
positionToSend: undefined,
|
|
3230
3244
|
activityWatermark: 0,
|
|
@@ -3238,7 +3252,15 @@ const $328a7f03b0982320$var$eventsWithoutCancel = [
|
|
|
3238
3252
|
'setuser',
|
|
3239
3253
|
'davi.gdprconsent'
|
|
3240
3254
|
];
|
|
3241
|
-
const $328a7f03b0982320$var$
|
|
3255
|
+
const $328a7f03b0982320$var$pad = (num)=>{
|
|
3256
|
+
return (num < 10 ? '0' : '') + num;
|
|
3257
|
+
};
|
|
3258
|
+
const $328a7f03b0982320$var$getFormattedTimestamp = (date = new Date())=>{
|
|
3259
|
+
const tzo = -date.getTimezoneOffset();
|
|
3260
|
+
const dif = tzo >= 0 ? '+' : '-';
|
|
3261
|
+
return date.getFullYear() + '-' + $328a7f03b0982320$var$pad(date.getMonth() + 1) + '-' + $328a7f03b0982320$var$pad(date.getDate()) + 'T' + $328a7f03b0982320$var$pad(date.getHours()) + ':' + $328a7f03b0982320$var$pad(date.getMinutes()) + ':' + $328a7f03b0982320$var$pad(date.getSeconds()) + dif + $328a7f03b0982320$var$pad(Math.floor(Math.abs(tzo) / 60)) + ':' + $328a7f03b0982320$var$pad(Math.abs(tzo) % 60);
|
|
3262
|
+
};
|
|
3263
|
+
const $328a7f03b0982320$var$createDirectlineStore = (modeRef, recognitionStateRef, retrievingConversationRef, conversationIdRef, isTactileRef, localeRef, sendBoxRefRef, channelDataRef, setIsWaitingForResponse, unlockClickedButton, addBotEvent, addBotMessage, addUserEvent, addUserMessage, checkConversationId, setRetrievingConversation, checkDumpedLocaleFallback, cancelCurrentUtterance, checkActivityReplyToId, addSpeechRecognitionDynamicGrammar, toggleMicrophone)=>{
|
|
3242
3264
|
return (0, $dWhh5$zustand.createStore)((set, get)=>{
|
|
3243
3265
|
return {
|
|
3244
3266
|
...$328a7f03b0982320$var$initialState,
|
|
@@ -3266,19 +3288,22 @@ const $328a7f03b0982320$var$createDirectlineStore = (modeRef, recognitionStateRe
|
|
|
3266
3288
|
return tempActivity;
|
|
3267
3289
|
},
|
|
3268
3290
|
checkIfHandlerAbortsActivity: (type, activity)=>{
|
|
3269
|
-
const
|
|
3270
|
-
if (
|
|
3291
|
+
const handlers = get().externalActivityHandlers;
|
|
3292
|
+
if (handlers.length) {
|
|
3271
3293
|
const action = {
|
|
3272
3294
|
type: type,
|
|
3273
3295
|
payload: {
|
|
3274
3296
|
activity: activity
|
|
3275
3297
|
}
|
|
3276
3298
|
};
|
|
3277
|
-
|
|
3278
|
-
|
|
3279
|
-
|
|
3280
|
-
|
|
3281
|
-
|
|
3299
|
+
for(let i = 0; i < handlers.length; i++){
|
|
3300
|
+
const f = handlers[i];
|
|
3301
|
+
if (f(action)) {
|
|
3302
|
+
setIsWaitingForResponse(false);
|
|
3303
|
+
unlockClickedButton();
|
|
3304
|
+
console.log('Retorik Framework > aborted activity');
|
|
3305
|
+
return true;
|
|
3306
|
+
}
|
|
3282
3307
|
}
|
|
3283
3308
|
}
|
|
3284
3309
|
return false;
|
|
@@ -3287,19 +3312,17 @@ const $328a7f03b0982320$var$createDirectlineStore = (modeRef, recognitionStateRe
|
|
|
3287
3312
|
set({
|
|
3288
3313
|
directLineStatus: status
|
|
3289
3314
|
});
|
|
3290
|
-
|
|
3291
|
-
if (handler) {
|
|
3315
|
+
get().externalActivityHandlers.forEach((handler)=>{
|
|
3292
3316
|
handler({
|
|
3293
3317
|
type: (0, $950037f04376bcbf$export$741b3b19a0ba7556)[status]
|
|
3294
3318
|
});
|
|
3295
3319
|
status === (0, $dWhh5$botframeworkdirectlinejs.ConnectionStatus).Online && handler({
|
|
3296
3320
|
type: (0, $950037f04376bcbf$export$bbd16b9b30e132b3).SET_LANGUAGE
|
|
3297
3321
|
});
|
|
3298
|
-
}
|
|
3322
|
+
});
|
|
3299
3323
|
},
|
|
3300
3324
|
dispatchActivity: (activity)=>{
|
|
3301
3325
|
if (get().conversationPaused) return;
|
|
3302
|
-
// const retrievingConversation = useRetrievingConversation()
|
|
3303
3326
|
if (retrievingConversationRef.current) {
|
|
3304
3327
|
var _get_directLine;
|
|
3305
3328
|
// @ts-ignore
|
|
@@ -3377,10 +3400,16 @@ const $328a7f03b0982320$var$createDirectlineStore = (modeRef, recognitionStateRe
|
|
|
3377
3400
|
(_get_directLine = get().directLine) === null || _get_directLine === void 0 ? void 0 : _get_directLine.end();
|
|
3378
3401
|
},
|
|
3379
3402
|
createDirectLine: (data)=>{
|
|
3380
|
-
|
|
3381
|
-
|
|
3382
|
-
|
|
3383
|
-
|
|
3403
|
+
// Check if there are handlers already set or in the data
|
|
3404
|
+
const currentHandlers = get().externalActivityHandlers;
|
|
3405
|
+
const handlers = currentHandlers.length ? currentHandlers : data.externalActivityHandler ? [
|
|
3406
|
+
data.externalActivityHandler
|
|
3407
|
+
] : [];
|
|
3408
|
+
// Send DIRECT_LINE/CONNECT before creating directline because if everything goes well it only sends DIRECT_LINE/CONNECT_FULFILLED
|
|
3409
|
+
handlers.forEach((handler)=>{
|
|
3410
|
+
handler({
|
|
3411
|
+
type: (0, $950037f04376bcbf$export$741b3b19a0ba7556)[0]
|
|
3412
|
+
});
|
|
3384
3413
|
});
|
|
3385
3414
|
const directLine = new (0, $dWhh5$botframeworkdirectlinejs.DirectLine)({
|
|
3386
3415
|
webSocket: true,
|
|
@@ -3390,7 +3419,7 @@ const $328a7f03b0982320$var$createDirectlineStore = (modeRef, recognitionStateRe
|
|
|
3390
3419
|
get().actions.subscribe(directLine);
|
|
3391
3420
|
set({
|
|
3392
3421
|
userId: data.userId || 'userId',
|
|
3393
|
-
|
|
3422
|
+
externalActivityHandlers: handlers
|
|
3394
3423
|
});
|
|
3395
3424
|
},
|
|
3396
3425
|
addDataInChannelData: ()=>{
|
|
@@ -3409,7 +3438,10 @@ const $328a7f03b0982320$var$createDirectlineStore = (modeRef, recognitionStateRe
|
|
|
3409
3438
|
longitude: position.longitude
|
|
3410
3439
|
};
|
|
3411
3440
|
}
|
|
3412
|
-
return
|
|
3441
|
+
return channelDataRef.current ? {
|
|
3442
|
+
...dataAddedToChannelData,
|
|
3443
|
+
...channelDataRef.current
|
|
3444
|
+
} : dataAddedToChannelData;
|
|
3413
3445
|
},
|
|
3414
3446
|
checkMicrophoneAndCancel: ()=>{
|
|
3415
3447
|
if (modeRef.current === (0, $71c613e2e831c34c$export$9484bbecc3c49a2e).vocal && recognitionStateRef.current === (0, $71c613e2e831c34c$export$3f0071308968cd80).Listening) toggleMicrophone();
|
|
@@ -3427,6 +3459,8 @@ const $328a7f03b0982320$var$createDirectlineStore = (modeRef, recognitionStateRe
|
|
|
3427
3459
|
},
|
|
3428
3460
|
type: 'message',
|
|
3429
3461
|
channelData: get().actions.addDataInChannelData(),
|
|
3462
|
+
localTimezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
|
3463
|
+
localTimestamp: $328a7f03b0982320$var$getFormattedTimestamp(),
|
|
3430
3464
|
locale: locale
|
|
3431
3465
|
};
|
|
3432
3466
|
text && (tempActivity.text = text);
|
|
@@ -3447,25 +3481,16 @@ const $328a7f03b0982320$var$createDirectlineStore = (modeRef, recognitionStateRe
|
|
|
3447
3481
|
},
|
|
3448
3482
|
type: 'event',
|
|
3449
3483
|
channelData: get().actions.addDataInChannelData(),
|
|
3450
|
-
// @ts-ignore
|
|
3451
3484
|
locale: locale,
|
|
3485
|
+
localTimezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
|
3486
|
+
localTimestamp: $328a7f03b0982320$var$getFormattedTimestamp(),
|
|
3452
3487
|
name: name,
|
|
3453
3488
|
value: value
|
|
3454
3489
|
};
|
|
3455
3490
|
// Check if the event should be stopped in the external activity handler if there is one
|
|
3456
3491
|
if (get().actions.checkIfHandlerAbortsActivity((0, $950037f04376bcbf$export$bbd16b9b30e132b3).POST_ACTIVITY, tempEvent)) return;
|
|
3457
3492
|
if (get().actions.checkIfHandlerAbortsActivity((0, $950037f04376bcbf$export$bbd16b9b30e132b3).SEND_EVENT, tempEvent)) return;
|
|
3458
|
-
(_get_directLine = get().directLine) === null || _get_directLine === void 0 ? void 0 : _get_directLine.postActivity(
|
|
3459
|
-
from: {
|
|
3460
|
-
id: get().userId
|
|
3461
|
-
},
|
|
3462
|
-
type: 'event',
|
|
3463
|
-
channelData: get().actions.addDataInChannelData(),
|
|
3464
|
-
// @ts-ignore
|
|
3465
|
-
locale: locale,
|
|
3466
|
-
name: name,
|
|
3467
|
-
value: value
|
|
3468
|
-
}).subscribe();
|
|
3493
|
+
(_get_directLine = get().directLine) === null || _get_directLine === void 0 ? void 0 : _get_directLine.postActivity(tempEvent).subscribe();
|
|
3469
3494
|
},
|
|
3470
3495
|
sendTyping: ()=>{
|
|
3471
3496
|
var _get_directLine;
|
|
@@ -3482,24 +3507,36 @@ const $328a7f03b0982320$var$createDirectlineStore = (modeRef, recognitionStateRe
|
|
|
3482
3507
|
paginationToSend: value
|
|
3483
3508
|
});
|
|
3484
3509
|
},
|
|
3510
|
+
addExternalActivityHandler: (value)=>{
|
|
3511
|
+
set((state)=>({
|
|
3512
|
+
externalActivityHandlers: [
|
|
3513
|
+
...state.externalActivityHandlers,
|
|
3514
|
+
value
|
|
3515
|
+
]
|
|
3516
|
+
}));
|
|
3517
|
+
},
|
|
3518
|
+
setExternalActivityHandlers: (value)=>{
|
|
3519
|
+
set({
|
|
3520
|
+
externalActivityHandlers: value
|
|
3521
|
+
});
|
|
3522
|
+
},
|
|
3485
3523
|
setPositionToSend: (value)=>{
|
|
3486
3524
|
set({
|
|
3487
3525
|
positionToSend: value
|
|
3488
3526
|
});
|
|
3489
3527
|
},
|
|
3490
3528
|
dispatchMarkActivity: (id, speaking)=>{
|
|
3491
|
-
const
|
|
3492
|
-
|
|
3493
|
-
|
|
3494
|
-
|
|
3495
|
-
|
|
3496
|
-
|
|
3497
|
-
|
|
3498
|
-
|
|
3499
|
-
|
|
3500
|
-
};
|
|
3529
|
+
const action = {
|
|
3530
|
+
type: (0, $950037f04376bcbf$export$bbd16b9b30e132b3).MARK,
|
|
3531
|
+
payload: {
|
|
3532
|
+
activityID: id,
|
|
3533
|
+
name: 'speak',
|
|
3534
|
+
value: speaking
|
|
3535
|
+
}
|
|
3536
|
+
};
|
|
3537
|
+
get().externalActivityHandlers.forEach((handler)=>{
|
|
3501
3538
|
handler(action);
|
|
3502
|
-
}
|
|
3539
|
+
});
|
|
3503
3540
|
},
|
|
3504
3541
|
pauseConversation: ()=>{
|
|
3505
3542
|
set({
|
|
@@ -3549,12 +3586,12 @@ const $328a7f03b0982320$export$adc771f45cf9b273 = (selector)=>{
|
|
|
3549
3586
|
const $328a7f03b0982320$var$DirectlineProvider = ({ children: children })=>{
|
|
3550
3587
|
const mode = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.mode);
|
|
3551
3588
|
const recognitionState = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.activeRecognitionState);
|
|
3552
|
-
const speaking = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.speaking);
|
|
3553
3589
|
const retrievingConversation = (0, $8fc061e3e1dc64cb$export$b56465394e2b1287)((state)=>state.retrievingConversation);
|
|
3554
3590
|
const conversationId = (0, $8fc061e3e1dc64cb$export$b56465394e2b1287)((state)=>state.conversationId);
|
|
3555
3591
|
const isTactile = (0, $6acc5d637072b42e$export$d13b2577cb75f2ad)((state)=>state.isTactile);
|
|
3556
3592
|
const locale = (0, $0db969f5e79ce01b$export$6650dace022cfacc)((state)=>state.locale);
|
|
3557
3593
|
const sendBoxRef = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.sendBoxRef);
|
|
3594
|
+
const channelData = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.configuration.channelData);
|
|
3558
3595
|
const modeRef = (0, $dWhh5$react.useRef)((0, $71c613e2e831c34c$export$9484bbecc3c49a2e).text);
|
|
3559
3596
|
const recognitionStateRef = (0, $dWhh5$react.useRef)((0, $71c613e2e831c34c$export$3f0071308968cd80).Closed);
|
|
3560
3597
|
const retrievingConversationRef = (0, $dWhh5$react.useRef)(false);
|
|
@@ -3562,12 +3599,13 @@ const $328a7f03b0982320$var$DirectlineProvider = ({ children: children })=>{
|
|
|
3562
3599
|
const isTactileRef = (0, $dWhh5$react.useRef)(false);
|
|
3563
3600
|
const localeRef = (0, $dWhh5$react.useRef)('fr-FR');
|
|
3564
3601
|
const sendBoxRefRef = (0, $dWhh5$react.useRef)(null);
|
|
3602
|
+
const channelDataRef = (0, $dWhh5$react.useRef)(undefined);
|
|
3565
3603
|
const setIsWaitingForResponse = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.actions.setIsWaitingForResponse);
|
|
3566
3604
|
const unlockClickedButton = (0, $2793f2455cec0982$export$77e4cc5334565f28)((state)=>state.actions.unlockClickedButton);
|
|
3567
3605
|
const { addBotEvent: addBotEvent, addBotMessage: addBotMessage, addUserEvent: addUserEvent, addUserMessage: addUserMessage, checkConversationId: checkConversationId, setRetrievingConversation: setRetrievingConversation } = (0, $8fc061e3e1dc64cb$export$b56465394e2b1287)((state)=>state.actions);
|
|
3568
3606
|
const checkDumpedLocaleFallback = (0, $0db969f5e79ce01b$export$6650dace022cfacc)((state)=>state.actions.checkDumpedLocaleFallback);
|
|
3569
3607
|
const { cancelCurrentUtterance: cancelCurrentUtterance, checkActivityReplyToId: checkActivityReplyToId, addSpeechRecognitionDynamicGrammar: addSpeechRecognitionDynamicGrammar, toggleMicrophone: toggleMicrophone } = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.actions);
|
|
3570
|
-
const [store] = (0, $dWhh5$react.useState)(()=>$328a7f03b0982320$var$createDirectlineStore(modeRef, recognitionStateRef, retrievingConversationRef, conversationIdRef, isTactileRef, localeRef, sendBoxRefRef, setIsWaitingForResponse, unlockClickedButton, addBotEvent, addBotMessage, addUserEvent, addUserMessage, checkConversationId, setRetrievingConversation, checkDumpedLocaleFallback, cancelCurrentUtterance, checkActivityReplyToId, addSpeechRecognitionDynamicGrammar, toggleMicrophone));
|
|
3608
|
+
const [store] = (0, $dWhh5$react.useState)(()=>$328a7f03b0982320$var$createDirectlineStore(modeRef, recognitionStateRef, retrievingConversationRef, conversationIdRef, isTactileRef, localeRef, sendBoxRefRef, channelDataRef, setIsWaitingForResponse, unlockClickedButton, addBotEvent, addBotMessage, addUserEvent, addUserMessage, checkConversationId, setRetrievingConversation, checkDumpedLocaleFallback, cancelCurrentUtterance, checkActivityReplyToId, addSpeechRecognitionDynamicGrammar, toggleMicrophone));
|
|
3571
3609
|
(0, $dWhh5$react.useEffect)(()=>{
|
|
3572
3610
|
modeRef.current = mode;
|
|
3573
3611
|
}, [
|
|
@@ -3603,6 +3641,11 @@ const $328a7f03b0982320$var$DirectlineProvider = ({ children: children })=>{
|
|
|
3603
3641
|
}, [
|
|
3604
3642
|
sendBoxRef
|
|
3605
3643
|
]);
|
|
3644
|
+
(0, $dWhh5$react.useEffect)(()=>{
|
|
3645
|
+
channelDataRef.current = channelData;
|
|
3646
|
+
}, [
|
|
3647
|
+
channelData
|
|
3648
|
+
]);
|
|
3606
3649
|
return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)($328a7f03b0982320$var$DirectlineContext.Provider, {
|
|
3607
3650
|
value: store,
|
|
3608
3651
|
children: children
|
|
@@ -3622,7 +3665,7 @@ const $33ea75f69090702b$var$InputOutputHandler = ({ instanceId: instanceId })=>{
|
|
|
3622
3665
|
const isMicrophoneAllowedRef = (0, $dWhh5$react.useRef)(isMicrophoneAllowed);
|
|
3623
3666
|
const { setDisplaySubtitles: setDisplaySubtitles, toggleSubtitles: toggleSubtitles, setAgentData: setAgentData, setLoaderClosed: setLoaderClosed, resetRetorikStore: resetRetorikStore } = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.actions);
|
|
3624
3667
|
const resetActivityStore = (0, $8fc061e3e1dc64cb$export$b56465394e2b1287)((state)=>state.actions.resetActivityStore);
|
|
3625
|
-
const { sendMessage: sendMessage, sendEvent: sendEvent, pauseConversation: pauseConversation, resumeConversation: resumeConversation, sendMessageToChatbot: sendMessageToChatbot, resetDirectlineStore: resetDirectlineStore } = (0, $328a7f03b0982320$export$adc771f45cf9b273)((state)=>state.actions);
|
|
3668
|
+
const { sendMessage: sendMessage, sendEvent: sendEvent, pauseConversation: pauseConversation, resumeConversation: resumeConversation, sendMessageToChatbot: sendMessageToChatbot, addExternalActivityHandler: addExternalActivityHandler, setExternalActivityHandlers: setExternalActivityHandlers, resetDirectlineStore: resetDirectlineStore } = (0, $328a7f03b0982320$export$adc771f45cf9b273)((state)=>state.actions);
|
|
3626
3669
|
const handleCustomEvent = (event, method)=>{
|
|
3627
3670
|
var _event_detail;
|
|
3628
3671
|
// Check if an instance id is given to use this method in a single instance of Retorik Framework when there are several
|
|
@@ -3712,6 +3755,8 @@ const $33ea75f69090702b$var$InputOutputHandler = ({ instanceId: instanceId })=>{
|
|
|
3712
3755
|
document.addEventListener('retorik_pauseConversation', (e)=>handleCustomEvent(e, pauseConversation));
|
|
3713
3756
|
document.addEventListener('retorik_resumeConversation', (e)=>handleCustomEvent(e, resumeConversation));
|
|
3714
3757
|
document.addEventListener('retorik_sendMessageToChatbot', (e)=>handleCustomEvent(e, sendMessageToChatbot));
|
|
3758
|
+
document.addEventListener('retorik_addExternalActivityHandler', (e)=>handleCustomEvent(e, addExternalActivityHandler));
|
|
3759
|
+
document.addEventListener('retorik_setExternalActivityHandlers', (e)=>handleCustomEvent(e, setExternalActivityHandlers));
|
|
3715
3760
|
document.addEventListener('retorik_resetDirectlineStore', (e)=>handleCustomEvent(e, resetDirectlineStore));
|
|
3716
3761
|
return ()=>{
|
|
3717
3762
|
document.removeEventListener('retorik_openWidget', (e)=>handleCustomEvent(e, openWidget));
|
|
@@ -3758,6 +3803,8 @@ const $33ea75f69090702b$var$InputOutputHandler = ({ instanceId: instanceId })=>{
|
|
|
3758
3803
|
document.removeEventListener('retorik_pauseConversation', (e)=>handleCustomEvent(e, pauseConversation));
|
|
3759
3804
|
document.removeEventListener('retorik_resumeConversation', (e)=>handleCustomEvent(e, resumeConversation));
|
|
3760
3805
|
document.removeEventListener('retorik_sendMessageToChatbot', (e)=>handleCustomEvent(e, sendMessageToChatbot));
|
|
3806
|
+
document.removeEventListener('retorik_addExternalActivityHandler', (e)=>handleCustomEvent(e, addExternalActivityHandler));
|
|
3807
|
+
document.removeEventListener('retorik_setExternalActivityHandlers', (e)=>handleCustomEvent(e, setExternalActivityHandlers));
|
|
3761
3808
|
document.removeEventListener('retorik_resetDirectlineStore', (e)=>handleCustomEvent(e, resetDirectlineStore));
|
|
3762
3809
|
};
|
|
3763
3810
|
}, []);
|
|
@@ -3882,6 +3929,12 @@ const $33ea75f69090702b$export$cceb853b29df842 = (instanceId)=>$33ea75f69090702b
|
|
|
3882
3929
|
const $33ea75f69090702b$export$255ebd0ca6bfba88 = (value, instanceId)=>$33ea75f69090702b$var$eventDispatch('retorik_sendMessageToChatbot', [
|
|
3883
3930
|
value
|
|
3884
3931
|
], instanceId);
|
|
3932
|
+
const $33ea75f69090702b$export$28afdcc603412603 = (value, instanceId)=>$33ea75f69090702b$var$eventDispatch('retorik_addExternalActivityHandler', [
|
|
3933
|
+
value
|
|
3934
|
+
], instanceId);
|
|
3935
|
+
const $33ea75f69090702b$export$2c7ae0f34657d605 = (value, instanceId)=>$33ea75f69090702b$var$eventDispatch('retorik_setExternalActivityHandlers', [
|
|
3936
|
+
value
|
|
3937
|
+
], instanceId);
|
|
3885
3938
|
const $33ea75f69090702b$export$8f3b2f6aa8e2c248 = (instanceId)=>$33ea75f69090702b$var$eventDispatch('retorik_resetDirectlineStore', [], instanceId);
|
|
3886
3939
|
|
|
3887
3940
|
|
|
@@ -4942,8 +4995,9 @@ var $96e000dbf063a176$export$2e2bcd8739ae039 = $96e000dbf063a176$var$GlobalProvi
|
|
|
4942
4995
|
|
|
4943
4996
|
|
|
4944
4997
|
|
|
4998
|
+
|
|
4945
4999
|
var $203b743475f656c9$exports = {};
|
|
4946
|
-
$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-3 {\n grid-row: span 3 / span 3;\n}\n\n.rf-row-span-9 {\n grid-row: span 9 / span 9;\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-start-9 {\n grid-row-start: 9;\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-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-90 {\n --tw-rotate: -90deg;\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-rotate-90 {\n --tw-rotate: 90deg;\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-row-start-10 {\n grid-row-start: 10;\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-pt-3 {\n padding-top: .75rem;\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-row-start-7 {\n grid-row-start: 7;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-row-end-11 {\n grid-row-end: 11;\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";
|
|
5000
|
+
$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-3 {\n grid-row: span 3 / span 3;\n}\n\n.rf-row-span-9 {\n grid-row: span 9 / span 9;\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-10 {\n grid-row-start: 10;\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-90 {\n --tw-rotate: -90deg;\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-rotate-90 {\n --tw-rotate: 90deg;\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-row-start-7 {\n grid-row-start: 7;\n}\n\n#retorik-container.rf-large.rf-portrait .large-vertical\\:rf-row-end-11 {\n grid-row-end: 11;\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";
|
|
4947
5001
|
|
|
4948
5002
|
|
|
4949
5003
|
var $70dd93cce82a6912$exports = {};
|
|
@@ -4956,10 +5010,7 @@ const $184baaa1aacf568a$export$ad7b40b81d5409c = 'data:image/png;base64,iVBORw0K
|
|
|
4956
5010
|
const $184baaa1aacf568a$export$1524746c49eeef2b = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAApCAQAAAACach9AAACMUlEQVR4Ae3ShY7jQBAE0Aoz/f9/HTMzhg1zrdKUrJbdx+Kd2nD8VNudfsL/Th///dyQN2TH6f3y/BGpC379rV+S+qqetBOxImNQXL8JCAr2V4iMQXHGNJxeCfZXhSRBcQMfvkOWUdtfzlLgAENmZDcmo2TVmt8OSM2eXxBp3DjHSMFutqS7SbmemzBiR+xpKCNUIRkdkkYxhAkyGoBvyQFEJEefwSmmvBfJuJ6aKqKWnAkvGZOaZXTUgFqYULWNSHUckZuR1HIIimUExutRxwzOLROIG4vKmCKQt364mIlhSyzAf1m9lHZHJZrlAOMMztRRiKimp/rpdJDc9Awry5xTZCte7FHtuS8wJgeYGrex28xNTd086Dik7vUMscQOa8y4DoGtCCSkAKlNwpgNtphjrC6MIHUkR6YWxxs6Sc5xqn222mmCRFzIt8lEdKx+ikCtg91qS2WpwVfBelJCiQJwvzixfI9cxZQWgiSJelKnwBElKYtDOb2MFbhmUigbReQBV0Cg4+qMXSxXSyGUn4UbF8l+7qdSGnTC0XLCmahIgUHLhLOhpVCtw4CzYXvLQWQbJNmxoCsOKAxSgBJno75avolkRw8iIAFcsdc02e9iyCd8tHwmeSSoKTowIgvscSGZUOA7PuCN5b2BX9mQM7S0wYhMNU74zgsPBj3HU7wguAfnxxjFQGBE6pwN+GjME9zHY7zGp8wVxMShYX9NXvEWD3HbwJf4giO4CFIQxXScH1/TM+04kkBiAAAAAElFTkSuQmCC';
|
|
4957
5011
|
|
|
4958
5012
|
|
|
4959
|
-
|
|
4960
|
-
* STORYBOOK : there is a conflict between parcel and webpack. Here we use bundle-text from parcel and it's not recognized in webpack, that is used in storybook.
|
|
4961
|
-
* To prevent conflict, you need to comment the 3 imports unsign 'bundle-text' above, and the 3 'style' tags in the HTML below.
|
|
4962
|
-
*/ const $06e5942c9d4d6916$var$DefaultIcon = (0, ($parcel$interopDefault($dWhh5$leaflet))).icon({
|
|
5013
|
+
const $06e5942c9d4d6916$var$DefaultIcon = (0, ($parcel$interopDefault($dWhh5$leaflet))).icon({
|
|
4963
5014
|
iconUrl: `${(0, $c48ed13ada25d174$export$e56d88b19b5c9fbf).mapArrival}`,
|
|
4964
5015
|
shadowUrl: (0, $184baaa1aacf568a$export$1524746c49eeef2b),
|
|
4965
5016
|
iconSize: [
|
|
@@ -4974,8 +5025,35 @@ const $184baaa1aacf568a$export$1524746c49eeef2b = 'data:image/png;base64,iVBORw0
|
|
|
4974
5025
|
(0, ($parcel$interopDefault($dWhh5$leaflet))).Marker.prototype.options.icon = $06e5942c9d4d6916$var$DefaultIcon;
|
|
4975
5026
|
const $06e5942c9d4d6916$var$ShadowRoot = ({ children: children })=>{
|
|
4976
5027
|
const visibility = (0, $6acc5d637072b42e$export$d13b2577cb75f2ad)((state)=>state.visibility);
|
|
5028
|
+
const customScripts = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.customScripts);
|
|
5029
|
+
const customCSS = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.customCSS);
|
|
5030
|
+
const [alreadyAppliedCustomScripts, setAlreadyAppliedCustomScripts] = (0, $dWhh5$react.useState)([]);
|
|
5031
|
+
const shadowRef = (0, $dWhh5$react.useRef)(null);
|
|
5032
|
+
(0, $dWhh5$react.useEffect)(()=>{
|
|
5033
|
+
if (shadowRef === null || shadowRef === void 0 ? void 0 : shadowRef.current) customScripts.forEach((customScript)=>{
|
|
5034
|
+
if (!alreadyAppliedCustomScripts.includes(customScript)) {
|
|
5035
|
+
var _shadowRef_current;
|
|
5036
|
+
// Add the URL of the script to the already processed ones to prevent duplicate injection
|
|
5037
|
+
setAlreadyAppliedCustomScripts((current)=>[
|
|
5038
|
+
...current,
|
|
5039
|
+
customScript
|
|
5040
|
+
]);
|
|
5041
|
+
// Create a script element and inject it in the shadowroot
|
|
5042
|
+
const scriptElement = document.createElement('script');
|
|
5043
|
+
scriptElement.type = 'text/javascript';
|
|
5044
|
+
scriptElement.src = customScript;
|
|
5045
|
+
scriptElement.onload = ()=>{
|
|
5046
|
+
console.log(`Retorik Framework > custom script loaded from ${customScript}`);
|
|
5047
|
+
};
|
|
5048
|
+
(_shadowRef_current = shadowRef.current) === null || _shadowRef_current === void 0 ? void 0 : _shadowRef_current.appendChild(scriptElement);
|
|
5049
|
+
}
|
|
5050
|
+
});
|
|
5051
|
+
}, [
|
|
5052
|
+
customScripts
|
|
5053
|
+
]);
|
|
4977
5054
|
return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)((0, ($parcel$interopDefault($dWhh5$reactshadow))).div, {
|
|
4978
5055
|
id: "retorik-shadow",
|
|
5056
|
+
ref: shadowRef,
|
|
4979
5057
|
className: "rf-w-full rf-h-full",
|
|
4980
5058
|
style: {
|
|
4981
5059
|
position: 'relative',
|
|
@@ -4992,6 +5070,12 @@ const $06e5942c9d4d6916$var$ShadowRoot = ({ children: children })=>{
|
|
|
4992
5070
|
/*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("style", {
|
|
4993
5071
|
type: "text/css",
|
|
4994
5072
|
children: `${$70dd93cce82a6912$exports}`
|
|
5073
|
+
}),
|
|
5074
|
+
customCSS.map((css, key)=>{
|
|
5075
|
+
return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("link", {
|
|
5076
|
+
rel: "stylesheet",
|
|
5077
|
+
href: css
|
|
5078
|
+
}, key);
|
|
4995
5079
|
})
|
|
4996
5080
|
]
|
|
4997
5081
|
});
|
|
@@ -5186,7 +5270,7 @@ const $ba3150a69d33f468$var$processJson = (json, retorikProps, baseAddress)=>{
|
|
|
5186
5270
|
else if (json.directLine_tokenEndpoint) tokenEndpoint = json.directLine_tokenEndpoint;
|
|
5187
5271
|
else tokenEndpoint = `${baseAddress}${0, $0b4f07c0f09dbbcf$export$d9e38c0112bbdae6}`;
|
|
5188
5272
|
// Prevent passive speech recognition if no name was given for the character.
|
|
5189
|
-
// Used for retrocompatibility since v2.0.4
|
|
5273
|
+
// Used for retrocompatibility since v2.0.4
|
|
5190
5274
|
if (!json.characterName && json.speechRecognitionOptions) json.speechRecognitionOptions.enableContinuousRecognitionOnAllDevices = false, json.speechRecognitionOptions.enableContinuousRecognitionOn = undefined;
|
|
5191
5275
|
const props = {
|
|
5192
5276
|
config: {
|
|
@@ -5268,7 +5352,9 @@ const $ba3150a69d33f468$var$processJson = (json, retorikProps, baseAddress)=>{
|
|
|
5268
5352
|
useOldRemote: json.useOldRemote != null ? json.useOldRemote : true,
|
|
5269
5353
|
// Temporary parameter, will be removed
|
|
5270
5354
|
showTemporaryBanner: undefined,
|
|
5271
|
-
preventVirtualKeyboard: undefined
|
|
5355
|
+
preventVirtualKeyboard: undefined,
|
|
5356
|
+
channelData: json.channelData,
|
|
5357
|
+
newsConfig: json.newsConfig
|
|
5272
5358
|
},
|
|
5273
5359
|
viewsConfig: {
|
|
5274
5360
|
homeRoute: 'home',
|
|
@@ -5280,9 +5366,7 @@ const $ba3150a69d33f468$var$processJson = (json, retorikProps, baseAddress)=>{
|
|
|
5280
5366
|
image: background,
|
|
5281
5367
|
video: undefined,
|
|
5282
5368
|
webcam: undefined,
|
|
5283
|
-
neutral: undefined
|
|
5284
|
-
blur: undefined,
|
|
5285
|
-
overlayOpacity: undefined
|
|
5369
|
+
neutral: undefined
|
|
5286
5370
|
}
|
|
5287
5371
|
},
|
|
5288
5372
|
news: {
|
|
@@ -5294,9 +5378,7 @@ const $ba3150a69d33f468$var$processJson = (json, retorikProps, baseAddress)=>{
|
|
|
5294
5378
|
image: newsBackground,
|
|
5295
5379
|
video: undefined,
|
|
5296
5380
|
webcam: undefined,
|
|
5297
|
-
neutral: undefined
|
|
5298
|
-
blur: undefined,
|
|
5299
|
-
overlayOpacity: undefined
|
|
5381
|
+
neutral: undefined
|
|
5300
5382
|
}
|
|
5301
5383
|
}
|
|
5302
5384
|
}
|
|
@@ -5460,7 +5542,9 @@ const $ba3150a69d33f468$var$processJson = (json, retorikProps, baseAddress)=>{
|
|
|
5460
5542
|
defaultCulture: json.defaultCulture,
|
|
5461
5543
|
supportedCultures: json.supportedCultures,
|
|
5462
5544
|
// Other data
|
|
5463
|
-
disableHistory: json.disableHistory
|
|
5545
|
+
disableHistory: json.disableHistory,
|
|
5546
|
+
customScripts: json.customScripts,
|
|
5547
|
+
customCSS: json.customCSS
|
|
5464
5548
|
};
|
|
5465
5549
|
return props;
|
|
5466
5550
|
}
|
|
@@ -5569,12 +5653,12 @@ const $7f86b3828f8979bc$var$TextBlock = ({ text: text, isTitle: isTitle, isSubti
|
|
|
5569
5653
|
setStyle(styleToApply);
|
|
5570
5654
|
}
|
|
5571
5655
|
}, []);
|
|
5572
|
-
return
|
|
5656
|
+
return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
|
|
5573
5657
|
className: `rf-w-full rf-text-cardFrameText ${style}`,
|
|
5574
5658
|
dangerouslySetInnerHTML: {
|
|
5575
|
-
__html: (0, $04321743da31c8db$export$d07f57595c356899)($7f86b3828f8979bc$var$md.render(text))
|
|
5659
|
+
__html: text ? (0, $04321743da31c8db$export$d07f57595c356899)($7f86b3828f8979bc$var$md.render(text)) : '\u00a0'
|
|
5576
5660
|
}
|
|
5577
|
-
})
|
|
5661
|
+
});
|
|
5578
5662
|
};
|
|
5579
5663
|
var $7f86b3828f8979bc$export$2e2bcd8739ae039 = $7f86b3828f8979bc$var$TextBlock;
|
|
5580
5664
|
|
|
@@ -11141,13 +11225,6 @@ const $f30fe7aba51bf78e$var$Background = ({ config: config, videoLoop: videoLoop
|
|
|
11141
11225
|
const [videoDimensions, setVideoDimensions] = (0, $dWhh5$react.useState)(dimensions);
|
|
11142
11226
|
const [rotation, setRotation] = (0, $dWhh5$react.useState)('');
|
|
11143
11227
|
const [webcamSizeStyle, setWebcamSizeStyle] = (0, $dWhh5$react.useState)({});
|
|
11144
|
-
const blurValue = (0, $dWhh5$react.useMemo)(()=>{
|
|
11145
|
-
return {
|
|
11146
|
-
'--rf-blur-background': (config === null || config === void 0 ? void 0 : config.blur) !== undefined ? `${config.blur}px` : '0'
|
|
11147
|
-
};
|
|
11148
|
-
}, [
|
|
11149
|
-
config === null || config === void 0 ? void 0 : config.blur
|
|
11150
|
-
]);
|
|
11151
11228
|
(0, $dWhh5$react.useEffect)(()=>{
|
|
11152
11229
|
if (config.style === 'webcam') {
|
|
11153
11230
|
if (isWebcamAllowed) {
|
|
@@ -11237,7 +11314,6 @@ const $f30fe7aba51bf78e$var$Background = ({ config: config, videoLoop: videoLoop
|
|
|
11237
11314
|
alt: "background image",
|
|
11238
11315
|
className: "rf-col-span-full rf-row-span-full rf-w-full rf-h-full rf-object-cover rf-filter rf-blur-background",
|
|
11239
11316
|
style: {
|
|
11240
|
-
...blurValue,
|
|
11241
11317
|
...isRTL ? {
|
|
11242
11318
|
transform: 'scaleX(-1)'
|
|
11243
11319
|
} : {}
|
|
@@ -11248,14 +11324,12 @@ const $f30fe7aba51bf78e$var$Background = ({ config: config, videoLoop: videoLoop
|
|
|
11248
11324
|
loop: !!videoLoop,
|
|
11249
11325
|
muted: !!videoMuted,
|
|
11250
11326
|
onVideoEnded: onVideoEnded,
|
|
11251
|
-
onVideoCanPlay: onVideoCanPlay
|
|
11252
|
-
style: blurValue
|
|
11327
|
+
onVideoCanPlay: onVideoCanPlay
|
|
11253
11328
|
}),
|
|
11254
11329
|
config.style === 'webcam' && isWebcamAllowed && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, ($parcel$interopDefault($dWhh5$reactwebcam))), {
|
|
11255
11330
|
className: `rf-relative rf-col-span-full rf-row-span-full rf-overflow-hidden rf-max-w-none rf-w-screen rf-h-screen rf-filter rf-blur-background rf-border rf-self-center rf-justify-self-center rf-object-cover ${rotation}`,
|
|
11256
11331
|
...videoDimensions,
|
|
11257
11332
|
style: {
|
|
11258
|
-
...blurValue,
|
|
11259
11333
|
...webcamSizeStyle
|
|
11260
11334
|
},
|
|
11261
11335
|
audio: false,
|
|
@@ -11655,6 +11729,7 @@ const $b3293ae5ea012219$var$SendTextBox = ({ className: className })=>{
|
|
|
11655
11729
|
setMode((0, $71c613e2e831c34c$export$9484bbecc3c49a2e).vocal);
|
|
11656
11730
|
};
|
|
11657
11731
|
return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
|
|
11732
|
+
id: "retorik-send-textbox",
|
|
11658
11733
|
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}`,
|
|
11659
11734
|
children: [
|
|
11660
11735
|
/*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("textarea", {
|
|
@@ -13452,6 +13527,26 @@ var $18d4a37a7fa81be4$export$2e2bcd8739ae039 = $18d4a37a7fa81be4$var$MicrophoneA
|
|
|
13452
13527
|
|
|
13453
13528
|
|
|
13454
13529
|
const $f49c2c2bc5cff629$var$springDuration = 1050;
|
|
13530
|
+
// Unicode Spaces found here : https://www.fileformat.info/info/unicode/category/Zs/list.htm
|
|
13531
|
+
const $f49c2c2bc5cff629$var$spacingCharacters = [
|
|
13532
|
+
'\u0020',
|
|
13533
|
+
'\u00A0',
|
|
13534
|
+
'\u1680',
|
|
13535
|
+
'\u2000',
|
|
13536
|
+
'\u2001',
|
|
13537
|
+
'\u2002',
|
|
13538
|
+
'\u2003',
|
|
13539
|
+
'\u2004',
|
|
13540
|
+
'\u2005',
|
|
13541
|
+
'\u2006',
|
|
13542
|
+
'\u2007',
|
|
13543
|
+
'\u2008',
|
|
13544
|
+
'\u2009',
|
|
13545
|
+
'\u200A',
|
|
13546
|
+
'\u202F',
|
|
13547
|
+
'\u205F',
|
|
13548
|
+
'\u3000'
|
|
13549
|
+
];
|
|
13455
13550
|
const $f49c2c2bc5cff629$var$VoiceInput = ({ className: className })=>{
|
|
13456
13551
|
const isMobile = (0, $6acc5d637072b42e$export$d13b2577cb75f2ad)((state)=>state.isMobile);
|
|
13457
13552
|
const isLandscape = (0, $6acc5d637072b42e$export$d13b2577cb75f2ad)((state)=>state.isLandscape);
|
|
@@ -13459,6 +13554,8 @@ const $f49c2c2bc5cff629$var$VoiceInput = ({ className: className })=>{
|
|
|
13459
13554
|
const isWaitingForResponse = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.isWaitingForResponse);
|
|
13460
13555
|
const [remainingLastRecognitionInterim, setRemainingLastRecognitionInterim] = (0, $dWhh5$react.useState)(null);
|
|
13461
13556
|
const animationTimerRef = (0, $dWhh5$react.useRef)();
|
|
13557
|
+
const divRef = (0, $dWhh5$react.useRef)(null);
|
|
13558
|
+
const lastSpaceRef = (0, $dWhh5$react.useRef)(0);
|
|
13462
13559
|
const [spring, api] = (0, $dWhh5$reactspringweb.useSpring)(()=>({
|
|
13463
13560
|
from: {
|
|
13464
13561
|
opacity: 1
|
|
@@ -13467,11 +13564,36 @@ const $f49c2c2bc5cff629$var$VoiceInput = ({ className: className })=>{
|
|
|
13467
13564
|
(0, $dWhh5$react.useEffect)(()=>{
|
|
13468
13565
|
return ()=>{
|
|
13469
13566
|
(animationTimerRef === null || animationTimerRef === void 0 ? void 0 : animationTimerRef.current) && clearTimeout(animationTimerRef.current);
|
|
13567
|
+
lastSpaceRef.current = 0;
|
|
13470
13568
|
};
|
|
13471
13569
|
}, []);
|
|
13472
13570
|
(0, $dWhh5$react.useEffect)(()=>{
|
|
13473
|
-
if (lastRecognitionInterim)
|
|
13474
|
-
|
|
13571
|
+
if (lastRecognitionInterim) {
|
|
13572
|
+
if (isLandscape && (divRef === null || divRef === void 0 ? void 0 : divRef.current)) {
|
|
13573
|
+
if (divRef.current.scrollHeight > divRef.current.clientHeight) {
|
|
13574
|
+
let lastSpace = 0;
|
|
13575
|
+
for(let i = lastRecognitionInterim.length - 1; i > 0; i--)if ($f49c2c2bc5cff629$var$spacingCharacters.includes(lastRecognitionInterim[i])) {
|
|
13576
|
+
switch(lastSpace){
|
|
13577
|
+
case 0:
|
|
13578
|
+
// First space found, let's wait for another one
|
|
13579
|
+
lastSpace = 1;
|
|
13580
|
+
break;
|
|
13581
|
+
case 1:
|
|
13582
|
+
// Second space found, the next one will be the good one
|
|
13583
|
+
lastSpace = 2;
|
|
13584
|
+
break;
|
|
13585
|
+
case 2:
|
|
13586
|
+
// Take this space as reference to display text
|
|
13587
|
+
lastSpace = 3;
|
|
13588
|
+
lastSpaceRef.current = i;
|
|
13589
|
+
break;
|
|
13590
|
+
}
|
|
13591
|
+
if (lastSpace === 3) break;
|
|
13592
|
+
}
|
|
13593
|
+
}
|
|
13594
|
+
setRemainingLastRecognitionInterim(`${lastSpaceRef.current ? '... ' : ''}${lastRecognitionInterim.substring(lastSpaceRef.current)}`);
|
|
13595
|
+
} else setRemainingLastRecognitionInterim(lastRecognitionInterim);
|
|
13596
|
+
} else if (remainingLastRecognitionInterim) {
|
|
13475
13597
|
api.start({
|
|
13476
13598
|
from: {
|
|
13477
13599
|
opacity: 1
|
|
@@ -13489,6 +13611,7 @@ const $f49c2c2bc5cff629$var$VoiceInput = ({ className: className })=>{
|
|
|
13489
13611
|
opacity: 1
|
|
13490
13612
|
});
|
|
13491
13613
|
setRemainingLastRecognitionInterim(null);
|
|
13614
|
+
lastSpaceRef.current = 0;
|
|
13492
13615
|
}, $f49c2c2bc5cff629$var$springDuration);
|
|
13493
13616
|
}
|
|
13494
13617
|
}, [
|
|
@@ -13506,18 +13629,29 @@ const $f49c2c2bc5cff629$var$VoiceInput = ({ className: className })=>{
|
|
|
13506
13629
|
...spring
|
|
13507
13630
|
},
|
|
13508
13631
|
children: remainingLastRecognitionInterim
|
|
13509
|
-
}) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {}) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.
|
|
13632
|
+
}) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {}) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
|
|
13510
13633
|
className: "rf-w-full rf-h-full rf-flex rf-flex-col rf-justify-end landscape-retorik:rf-justify-start rf-gap-2",
|
|
13511
|
-
children:
|
|
13512
|
-
|
|
13513
|
-
|
|
13634
|
+
children: isLandscape ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {
|
|
13635
|
+
children: [
|
|
13636
|
+
/*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $18d4a37a7fa81be4$export$2e2bcd8739ae039), {}),
|
|
13637
|
+
remainingLastRecognitionInterim && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $dWhh5$reactspringweb.animated).div, {
|
|
13638
|
+
ref: divRef,
|
|
13639
|
+
className: "rf-w-full rf-max-h-16 rf-pt-2 rf-subtitle-size-auto rf-font-bold rf-text-truewhite rf-text-center rf-text-shadow-black rf-overflow-hidden",
|
|
13640
|
+
style: {
|
|
13641
|
+
...spring
|
|
13642
|
+
},
|
|
13643
|
+
children: remainingLastRecognitionInterim
|
|
13644
|
+
})
|
|
13645
|
+
]
|
|
13646
|
+
}) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {
|
|
13647
|
+
children: remainingLastRecognitionInterim && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $dWhh5$reactspringweb.animated).div, {
|
|
13514
13648
|
className: "rf-w-full rf-py-3 rf-subtitle-size-auto rf-font-bold rf-text-truewhite rf-text-center rf-text-shadow-black",
|
|
13515
13649
|
style: {
|
|
13516
13650
|
...spring
|
|
13517
13651
|
},
|
|
13518
13652
|
children: remainingLastRecognitionInterim
|
|
13519
13653
|
})
|
|
13520
|
-
|
|
13654
|
+
})
|
|
13521
13655
|
})
|
|
13522
13656
|
});
|
|
13523
13657
|
};
|
|
@@ -13592,6 +13726,7 @@ const $85e61aba8b9a5198$var$Logo = ({ className: className })=>{
|
|
|
13592
13726
|
var _configuration_logo;
|
|
13593
13727
|
const configuration = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.configuration);
|
|
13594
13728
|
return ((_configuration_logo = configuration.logo) === null || _configuration_logo === void 0 ? void 0 : _configuration_logo.src) ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
|
|
13729
|
+
id: "retorik-customer-logo",
|
|
13595
13730
|
className: className || 'rf-absolute rf-m-4 large:rf-m-8 rf-top-0 ltr:rf-left-0 rtl:rf-right-0',
|
|
13596
13731
|
children: /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("img", {
|
|
13597
13732
|
src: configuration.logo.src,
|
|
@@ -19161,6 +19296,7 @@ const $f0e30ad3081b61d6$var$Grid = ({ title: title, history: history, qrCodeData
|
|
|
19161
19296
|
]);
|
|
19162
19297
|
(0, $dWhh5$react.useEffect)(()=>{
|
|
19163
19298
|
switch(nbCards){
|
|
19299
|
+
case 1:
|
|
19164
19300
|
case 2:
|
|
19165
19301
|
setClassname('rf-grid-cols-[repeat(2,30%)] rf-grid-rows-1');
|
|
19166
19302
|
break;
|
|
@@ -25320,6 +25456,7 @@ var $01d9bb41fd368021$export$2e2bcd8739ae039 = $01d9bb41fd368021$var$Time;
|
|
|
25320
25456
|
|
|
25321
25457
|
|
|
25322
25458
|
|
|
25459
|
+
|
|
25323
25460
|
const $d3f2491623efa760$var$useNews = ()=>{
|
|
25324
25461
|
var _activity_attachments;
|
|
25325
25462
|
const activities = (0, $8fc061e3e1dc64cb$export$b56465394e2b1287)((state)=>state.botEventActivities);
|
|
@@ -25354,16 +25491,109 @@ var $d3f2491623efa760$export$2e2bcd8739ae039 = $d3f2491623efa760$var$useNews;
|
|
|
25354
25491
|
|
|
25355
25492
|
|
|
25356
25493
|
|
|
25494
|
+
|
|
25495
|
+
|
|
25496
|
+
|
|
25497
|
+
|
|
25498
|
+
|
|
25499
|
+
const $5ffb87b569a304f8$var$BannerTopMobile = ({ category: category, title: title, subtitle: subtitle, url: url })=>{
|
|
25500
|
+
const locale = (0, $0db969f5e79ce01b$export$6650dace022cfacc)((state)=>state.locale);
|
|
25501
|
+
return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {
|
|
25502
|
+
children: [
|
|
25503
|
+
/*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
|
|
25504
|
+
className: "rf-w-full rf-px-4 rf-py-2 rf-font-bold rf-bg-red-600 rf-whitespace-nowrap rf-text-size-auto",
|
|
25505
|
+
children: category === null || category === void 0 ? void 0 : category.toLocaleUpperCase(locale)
|
|
25506
|
+
}),
|
|
25507
|
+
/*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
|
|
25508
|
+
className: "rf-w-full rf-flex rf-flex-row",
|
|
25509
|
+
children: [
|
|
25510
|
+
url && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
|
|
25511
|
+
className: "rf-aspect-video rf-w-1/4",
|
|
25512
|
+
style: {
|
|
25513
|
+
backgroundImage: `url(${url})`,
|
|
25514
|
+
backgroundSize: 'cover',
|
|
25515
|
+
backgroundRepeat: 'no-repeat',
|
|
25516
|
+
backgroundPosition: 'center'
|
|
25517
|
+
}
|
|
25518
|
+
}),
|
|
25519
|
+
/*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
|
|
25520
|
+
className: "rf-px-4 rf-py-1 rf-font-bold",
|
|
25521
|
+
children: [
|
|
25522
|
+
/*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
|
|
25523
|
+
className: "rf-text-size-auto rf-line-clamp-1",
|
|
25524
|
+
children: title && title.toLocaleUpperCase(locale)
|
|
25525
|
+
}),
|
|
25526
|
+
/*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
|
|
25527
|
+
className: "rf-text-basecustom rf-line-clamp-2",
|
|
25528
|
+
children: subtitle ? (0, $04321743da31c8db$export$d07f57595c356899)(subtitle) : '...'
|
|
25529
|
+
})
|
|
25530
|
+
]
|
|
25531
|
+
})
|
|
25532
|
+
]
|
|
25533
|
+
})
|
|
25534
|
+
]
|
|
25535
|
+
});
|
|
25536
|
+
};
|
|
25537
|
+
var $5ffb87b569a304f8$export$2e2bcd8739ae039 = $5ffb87b569a304f8$var$BannerTopMobile;
|
|
25538
|
+
|
|
25539
|
+
|
|
25540
|
+
|
|
25541
|
+
|
|
25542
|
+
|
|
25543
|
+
|
|
25544
|
+
const $a94481e954312e6d$var$BannerTopLarge = ({ category: category, title: title, subtitle: subtitle })=>{
|
|
25545
|
+
const locale = (0, $0db969f5e79ce01b$export$6650dace022cfacc)((state)=>state.locale);
|
|
25546
|
+
return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {
|
|
25547
|
+
children: [
|
|
25548
|
+
/*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
|
|
25549
|
+
className: "rf-w-full rf-flex rf-flex-row rf-justify-start rf-text-size-auto",
|
|
25550
|
+
children: [
|
|
25551
|
+
/*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
|
|
25552
|
+
className: "rf-px-4 rf-py-3 rf-font-bold rf-bg-red-600 rf-whitespace-nowrap",
|
|
25553
|
+
children: category === null || category === void 0 ? void 0 : category.toLocaleUpperCase(locale)
|
|
25554
|
+
}),
|
|
25555
|
+
/*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
|
|
25556
|
+
className: "rf-px-4 rf-mb-2 rf-mt-2 large:rf-mt-3 rf-font-bold rf-line-clamp-1",
|
|
25557
|
+
children: title === null || title === void 0 ? void 0 : title.toLocaleUpperCase(locale)
|
|
25558
|
+
})
|
|
25559
|
+
]
|
|
25560
|
+
}),
|
|
25561
|
+
/*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
|
|
25562
|
+
className: "rf-w-full rf-h-fit rf-flex rf-flex-row rf-justify-start",
|
|
25563
|
+
children: /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
|
|
25564
|
+
className: "rf-px-4 rf-my-2 large:rf-my-3 rf-title-large-size-auto rf-line-clamp-2",
|
|
25565
|
+
children: subtitle ? (0, $04321743da31c8db$export$d07f57595c356899)(subtitle) : '...'
|
|
25566
|
+
})
|
|
25567
|
+
})
|
|
25568
|
+
]
|
|
25569
|
+
});
|
|
25570
|
+
};
|
|
25571
|
+
var $a94481e954312e6d$export$2e2bcd8739ae039 = $a94481e954312e6d$var$BannerTopLarge;
|
|
25572
|
+
|
|
25573
|
+
|
|
25357
25574
|
const $24072221965576dd$var$Banner = ({ news: news })=>{
|
|
25358
|
-
var _news_image
|
|
25575
|
+
var _news_image;
|
|
25359
25576
|
const translation = (0, $0db969f5e79ce01b$export$6650dace022cfacc)((state)=>state.currentTranslations);
|
|
25360
25577
|
const locale = (0, $0db969f5e79ce01b$export$6650dace022cfacc)((state)=>state.locale);
|
|
25361
25578
|
const isMobile = (0, $6acc5d637072b42e$export$d13b2577cb75f2ad)((state)=>state.isMobile);
|
|
25362
25579
|
const currentWidth = (0, $6acc5d637072b42e$export$d13b2577cb75f2ad)((state)=>state.currentWidth);
|
|
25580
|
+
const newsConfig = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.configuration.newsConfig);
|
|
25363
25581
|
const timerRef = (0, $dWhh5$react.useRef)(null);
|
|
25364
25582
|
const [scrollDuration, setScrollDuration] = (0, $dWhh5$react.useState)(0);
|
|
25365
25583
|
const [imageSize, setImageSize] = (0, $dWhh5$react.useState)(0);
|
|
25366
25584
|
const elementRef = (0, $dWhh5$react.useRef)(null);
|
|
25585
|
+
const category = (0, $dWhh5$react.useMemo)(()=>{
|
|
25586
|
+
var _newsConfig_bannerTitleLocalized;
|
|
25587
|
+
if (news.category) return news.category;
|
|
25588
|
+
else if (newsConfig === null || newsConfig === void 0 ? void 0 : (_newsConfig_bannerTitleLocalized = newsConfig.bannerTitleLocalized) === null || _newsConfig_bannerTitleLocalized === void 0 ? void 0 : _newsConfig_bannerTitleLocalized[locale]) return newsConfig.bannerTitleLocalized[locale];
|
|
25589
|
+
else if (newsConfig === null || newsConfig === void 0 ? void 0 : newsConfig.bannerTitle) return newsConfig.bannerTitle;
|
|
25590
|
+
return translation.news.continuous;
|
|
25591
|
+
}, [
|
|
25592
|
+
news,
|
|
25593
|
+
newsConfig,
|
|
25594
|
+
locale,
|
|
25595
|
+
translation
|
|
25596
|
+
]);
|
|
25367
25597
|
/**
|
|
25368
25598
|
* Set animation for text horizontal scrolling if necessary
|
|
25369
25599
|
*/ const updateDuration = ()=>{
|
|
@@ -25394,42 +25624,20 @@ const $24072221965576dd$var$Banner = ({ news: news })=>{
|
|
|
25394
25624
|
elementRef
|
|
25395
25625
|
]);
|
|
25396
25626
|
return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
|
|
25397
|
-
className: "rf-h-fit rf-z-util rf-col-start-1 rf-col-span-full rf-row-start-
|
|
25627
|
+
className: "rf-h-fit rf-z-util rf-col-start-1 rf-col-span-full rf-row-start-10 rf-row-span-3 large:rf-mb-6 rf-flex rf-flex-col rf-self-end rf-items-center rf-glass-background rf-text-white",
|
|
25398
25628
|
children: [
|
|
25399
|
-
/*#__PURE__*/ (0, $dWhh5$reactjsxruntime.
|
|
25400
|
-
|
|
25401
|
-
|
|
25402
|
-
|
|
25403
|
-
|
|
25404
|
-
|
|
25405
|
-
|
|
25406
|
-
|
|
25407
|
-
|
|
25408
|
-
className: "rf-px-4 rf-mb-2 rf-mt-2 large:rf-mt-3 rf-font-bold rf-line-clamp-1",
|
|
25409
|
-
children: news.title && news.title.toLocaleUpperCase(locale)
|
|
25410
|
-
})
|
|
25411
|
-
]
|
|
25412
|
-
}),
|
|
25413
|
-
/*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)("div", {
|
|
25414
|
-
className: "rf-w-full rf-h-fit rf-flex rf-flex-row rf-justify-start",
|
|
25415
|
-
children: [
|
|
25416
|
-
isMobile && ((_news_image = news.image) === null || _news_image === void 0 ? void 0 : _news_image.url) && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
|
|
25417
|
-
style: {
|
|
25418
|
-
minWidth: `${imageSize}px`,
|
|
25419
|
-
backgroundImage: `url(${(_news_image1 = news.image) === null || _news_image1 === void 0 ? void 0 : _news_image1.url})`,
|
|
25420
|
-
backgroundSize: 'cover',
|
|
25421
|
-
backgroundRepeat: 'no-repeat',
|
|
25422
|
-
backgroundPosition: 'center'
|
|
25423
|
-
}
|
|
25424
|
-
}),
|
|
25425
|
-
/*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
|
|
25426
|
-
className: "rf-px-4 rf-my-2 large:rf-my-3 rf-title-large-size-auto rf-line-clamp-2",
|
|
25427
|
-
children: news.subtitle ? (0, $04321743da31c8db$export$d07f57595c356899)(news.subtitle) : '...'
|
|
25428
|
-
})
|
|
25429
|
-
]
|
|
25629
|
+
isMobile ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $5ffb87b569a304f8$export$2e2bcd8739ae039), {
|
|
25630
|
+
category: category,
|
|
25631
|
+
title: news.title,
|
|
25632
|
+
subtitle: news.subtitle,
|
|
25633
|
+
url: (_news_image = news.image) === null || _news_image === void 0 ? void 0 : _news_image.url
|
|
25634
|
+
}) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $a94481e954312e6d$export$2e2bcd8739ae039), {
|
|
25635
|
+
category: category,
|
|
25636
|
+
title: news.title,
|
|
25637
|
+
subtitle: news.subtitle
|
|
25430
25638
|
}),
|
|
25431
25639
|
/*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
|
|
25432
|
-
className: "rf-w-full ltr:rf-pr-4 rtl:rf-pl-4 rf-py-4 rf-subtitle-size-auto rf-text-black rf-bg-white rf-overflow-clip",
|
|
25640
|
+
className: "rf-w-full ltr:rf-pr-4 rtl:rf-pl-4 rf-py-2 large:rf-py-4 rf-subtitle-size-auto rf-text-black rf-bg-white rf-overflow-clip",
|
|
25433
25641
|
style: {
|
|
25434
25642
|
paddingLeft: currentWidth
|
|
25435
25643
|
},
|
|
@@ -25457,6 +25665,7 @@ const $d399eaf5da71d3d6$var$News = ({ intervalInSeconds: intervalInSeconds = 3,
|
|
|
25457
25665
|
const route = (0, $6acc5d637072b42e$export$d13b2577cb75f2ad)((state)=>state.route);
|
|
25458
25666
|
const isMobile = (0, $6acc5d637072b42e$export$d13b2577cb75f2ad)((state)=>state.isMobile);
|
|
25459
25667
|
const retorikNewsEnded = (0, $2793f2455cec0982$export$77e4cc5334565f28)((state)=>state.retorikNewsEnded);
|
|
25668
|
+
const newsConfig = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.configuration.newsConfig);
|
|
25460
25669
|
const { setCurrentNewsActivity: setCurrentNewsActivity, setRetorikNewsEnded: setRetorikNewsEnded } = (0, $2793f2455cec0982$export$77e4cc5334565f28)((state)=>state.actions);
|
|
25461
25670
|
const sendEvent = (0, $328a7f03b0982320$export$adc771f45cf9b273)((state)=>state.actions.sendEvent);
|
|
25462
25671
|
const news = (0, $dWhh5$react.useMemo)(()=>{
|
|
@@ -25477,9 +25686,11 @@ const $d399eaf5da71d3d6$var$News = ({ intervalInSeconds: intervalInSeconds = 3,
|
|
|
25477
25686
|
(0, $dWhh5$react.useEffect)(()=>{
|
|
25478
25687
|
const currentNew = news[current];
|
|
25479
25688
|
if (currentNew) {
|
|
25689
|
+
const textTitle = (newsConfig === null || newsConfig === void 0 ? void 0 : newsConfig.removeTitleFromTextToSpeak) ? '' : `${currentNew.title}, <break/> `;
|
|
25690
|
+
const textSubtitle = (newsConfig === null || newsConfig === void 0 ? void 0 : newsConfig.removeSubtitleFromTextToSpeak) ? '' : `${currentNew.subtitle}: <break/> `;
|
|
25480
25691
|
const tempActivity = {
|
|
25481
25692
|
...activity,
|
|
25482
|
-
speak: `${
|
|
25693
|
+
speak: `${textTitle}${textSubtitle}${currentNew.text}`
|
|
25483
25694
|
};
|
|
25484
25695
|
setCurrentNewsActivity(tempActivity);
|
|
25485
25696
|
} else setCurrentNewsActivity(undefined);
|
|
@@ -25650,8 +25861,7 @@ const $9b9bf2fb80ceb1cd$var$NewsView = ({ hideMenu: hideMenu, isRetorikNews: isR
|
|
|
25650
25861
|
...configurations.views.news,
|
|
25651
25862
|
background: {
|
|
25652
25863
|
video: videoUrl,
|
|
25653
|
-
style: 'video'
|
|
25654
|
-
blur: 0
|
|
25864
|
+
style: 'video'
|
|
25655
25865
|
}
|
|
25656
25866
|
});
|
|
25657
25867
|
};
|
|
@@ -26049,14 +26259,89 @@ var $9242b50f1c1199a7$export$2e2bcd8739ae039 = $9242b50f1c1199a7$var$Container;
|
|
|
26049
26259
|
|
|
26050
26260
|
|
|
26051
26261
|
|
|
26262
|
+
const $f2ae26d736ec24dc$export$a2ce4fdd6972d6a7 = async (region, key)=>{
|
|
26263
|
+
const tokenRes = await fetch(`https://${region}.api.cognitive.microsoft.com/sts/v1.0/issueToken`, {
|
|
26264
|
+
method: 'POST',
|
|
26265
|
+
headers: {
|
|
26266
|
+
'Ocp-Apim-Subscription-Key': key
|
|
26267
|
+
}
|
|
26268
|
+
}).then((value)=>{
|
|
26269
|
+
return value.text();
|
|
26270
|
+
}).catch((error)=>{
|
|
26271
|
+
console.log('Error : ', error);
|
|
26272
|
+
return undefined;
|
|
26273
|
+
});
|
|
26274
|
+
return tokenRes;
|
|
26275
|
+
};
|
|
26052
26276
|
|
|
26053
26277
|
|
|
26054
|
-
|
|
26055
|
-
|
|
26056
|
-
|
|
26057
|
-
|
|
26058
|
-
|
|
26059
|
-
|
|
26278
|
+
const $5679d80e89b3df01$export$4bf371fc4fa74a28 = (voices, locale, customVoice, agentData)=>{
|
|
26279
|
+
let voice = null;
|
|
26280
|
+
// Check if a custom voice is defined in the props
|
|
26281
|
+
if (customVoice) {
|
|
26282
|
+
if (customVoice.voice) {
|
|
26283
|
+
// Search voice with its full name (ex: AriaNeural, GuyNeural)
|
|
26284
|
+
const neuralVoice = new RegExp(customVoice.voice, 'iu');
|
|
26285
|
+
voice = voices.find(({ name: name })=>neuralVoice.test(name) || name === customVoice.voice);
|
|
26286
|
+
} else if (customVoice.gender) // Search voice depending on given gender and locale
|
|
26287
|
+
voice = voices.find(({ gender: gender, lang: lang })=>{
|
|
26288
|
+
var _customVoice_gender;
|
|
26289
|
+
return gender.toLowerCase() === (customVoice === null || customVoice === void 0 ? void 0 : (_customVoice_gender = customVoice.gender) === null || _customVoice_gender === void 0 ? void 0 : _customVoice_gender.toLowerCase()) && lang === locale;
|
|
26290
|
+
});
|
|
26291
|
+
}
|
|
26292
|
+
// Get voice depending on locale and gender
|
|
26293
|
+
if (!voice) voice = voices.find(({ gender: gender, lang: lang })=>{
|
|
26294
|
+
var _agentData_gender;
|
|
26295
|
+
return gender.toLowerCase() === ((agentData === null || agentData === void 0 ? void 0 : (_agentData_gender = agentData.gender) === null || _agentData_gender === void 0 ? void 0 : _agentData_gender.toLowerCase()) || 'female') && lang === locale;
|
|
26296
|
+
});
|
|
26297
|
+
// No voice found, fall back to US default voices : female => Aria / male => Guy
|
|
26298
|
+
if (!voice) {
|
|
26299
|
+
var _agentData_gender;
|
|
26300
|
+
const genderedVoice = (agentData === null || agentData === void 0 ? void 0 : (_agentData_gender = agentData.gender) === null || _agentData_gender === void 0 ? void 0 : _agentData_gender.toLowerCase()) === 'female' ? 'AriaNeural' : 'GuyNeural';
|
|
26301
|
+
const neuralVoice = new RegExp(genderedVoice, 'iu');
|
|
26302
|
+
voice = voices.find(({ name: name })=>neuralVoice.test(name));
|
|
26303
|
+
}
|
|
26304
|
+
return voice;
|
|
26305
|
+
};
|
|
26306
|
+
|
|
26307
|
+
|
|
26308
|
+
|
|
26309
|
+
|
|
26310
|
+
|
|
26311
|
+
|
|
26312
|
+
|
|
26313
|
+
|
|
26314
|
+
|
|
26315
|
+
|
|
26316
|
+
|
|
26317
|
+
|
|
26318
|
+
/* Return codes:
|
|
26319
|
+
0 => do nothing
|
|
26320
|
+
1 => add to queue
|
|
26321
|
+
2 => stop current activity + change to the one tested
|
|
26322
|
+
*/ const $549323f244f4782c$var$checkLastbotActivity = (lastbotActivity, currentPlaying, currentReplyToId, queuedActivities, endedActivities)=>{
|
|
26323
|
+
// Check if the activity is the one currently being played
|
|
26324
|
+
if (lastbotActivity.id === currentPlaying.id) return 0;
|
|
26325
|
+
// Check if the activity has already been ended
|
|
26326
|
+
if (endedActivities.includes(lastbotActivity.id)) return 0;
|
|
26327
|
+
// Check if the activity has the same replyToId than the one currently being played
|
|
26328
|
+
if (lastbotActivity.replyToId === currentReplyToId) {
|
|
26329
|
+
// Check if the activity is already in the queue
|
|
26330
|
+
let count = 0;
|
|
26331
|
+
if (queuedActivities.length > 0) queuedActivities.forEach((activity)=>{
|
|
26332
|
+
if (activity.id === lastbotActivity.id) count++;
|
|
26333
|
+
});
|
|
26334
|
+
if (count === 0) return 1;
|
|
26335
|
+
else return 0;
|
|
26336
|
+
} else return 2;
|
|
26337
|
+
};
|
|
26338
|
+
var $549323f244f4782c$export$2e2bcd8739ae039 = $549323f244f4782c$var$checkLastbotActivity;
|
|
26339
|
+
|
|
26340
|
+
|
|
26341
|
+
|
|
26342
|
+
|
|
26343
|
+
|
|
26344
|
+
const $d441ea54333b2073$var$buildSSML = (activity, locale, speechMarkdownParser, sayAsWords)=>{
|
|
26060
26345
|
let speech = activity.speak || activity.text;
|
|
26061
26346
|
// Replace character not recognized in Microsoft TTS
|
|
26062
26347
|
speech = speech.replaceAll("\u2019", "'");
|
|
@@ -26095,72 +26380,27 @@ function $d441ea54333b2073$export$2e2bcd8739ae039({ activity: activity, voice: v
|
|
|
26095
26380
|
}
|
|
26096
26381
|
|
|
26097
26382
|
|
|
26098
|
-
|
|
26099
|
-
|
|
26100
|
-
|
|
26101
|
-
|
|
26102
|
-
|
|
26103
|
-
|
|
26104
|
-
|
|
26105
|
-
|
|
26106
|
-
|
|
26107
|
-
|
|
26108
|
-
|
|
26109
|
-
|
|
26110
|
-
|
|
26111
|
-
|
|
26112
|
-
|
|
26113
|
-
|
|
26114
|
-
if (count === 0) return 1;
|
|
26115
|
-
else return 0;
|
|
26116
|
-
} else return 2;
|
|
26117
|
-
};
|
|
26118
|
-
var $549323f244f4782c$export$2e2bcd8739ae039 = $549323f244f4782c$var$checkLastbotActivity;
|
|
26119
|
-
|
|
26120
|
-
|
|
26121
|
-
const $f2ae26d736ec24dc$export$a2ce4fdd6972d6a7 = async (region, key)=>{
|
|
26122
|
-
const tokenRes = await fetch(`https://${region}.api.cognitive.microsoft.com/sts/v1.0/issueToken`, {
|
|
26123
|
-
method: 'POST',
|
|
26124
|
-
headers: {
|
|
26125
|
-
'Ocp-Apim-Subscription-Key': key
|
|
26126
|
-
}
|
|
26127
|
-
}).then((value)=>{
|
|
26128
|
-
return value.text();
|
|
26129
|
-
}).catch((error)=>{
|
|
26130
|
-
console.log('Error : ', error);
|
|
26131
|
-
return undefined;
|
|
26132
|
-
});
|
|
26133
|
-
return tokenRes;
|
|
26134
|
-
};
|
|
26135
|
-
|
|
26136
|
-
|
|
26137
|
-
const $5679d80e89b3df01$export$4bf371fc4fa74a28 = (voices, locale, customVoice, agentData)=>{
|
|
26138
|
-
let voice = null;
|
|
26139
|
-
// Check if a custom voice is defined in the props
|
|
26140
|
-
if (customVoice) {
|
|
26141
|
-
if (customVoice.voice) {
|
|
26142
|
-
// Search voice with its full name (ex: AriaNeural, GuyNeural)
|
|
26143
|
-
const neuralVoice = new RegExp(customVoice.voice, 'iu');
|
|
26144
|
-
voice = voices.find(({ name: name })=>neuralVoice.test(name) || name === customVoice.voice);
|
|
26145
|
-
} else if (customVoice.gender) // Search voice depending on given gender and locale
|
|
26146
|
-
voice = voices.find(({ gender: gender, lang: lang })=>{
|
|
26147
|
-
var _customVoice_gender;
|
|
26148
|
-
return gender.toLowerCase() === (customVoice === null || customVoice === void 0 ? void 0 : (_customVoice_gender = customVoice.gender) === null || _customVoice_gender === void 0 ? void 0 : _customVoice_gender.toLowerCase()) && lang === locale;
|
|
26149
|
-
});
|
|
26383
|
+
/**
|
|
26384
|
+
* Check if there are some replacement codes for this language, to improve speech synthesis, and then create the utterance
|
|
26385
|
+
* @param {CreateUtteranceParams} params - data needed to create an utterance
|
|
26386
|
+
* @param {SayAs} sayAs - string that should be replaced by their ipa codes
|
|
26387
|
+
* @returns {SpeechSynthesisUtterance}
|
|
26388
|
+
*/ const $285c8810199513ef$export$f969af62bba9a48b = (params, sayAs)=>{
|
|
26389
|
+
let sayAsWords = [];
|
|
26390
|
+
if (sayAs) {
|
|
26391
|
+
var _sayAs_common, _sayAs_localized_params_locale;
|
|
26392
|
+
((_sayAs_common = sayAs.common) === null || _sayAs_common === void 0 ? void 0 : _sayAs_common.length) && (sayAsWords = [
|
|
26393
|
+
...sayAs.common
|
|
26394
|
+
]);
|
|
26395
|
+
sayAs.localized && ((_sayAs_localized_params_locale = sayAs.localized[params.locale]) === null || _sayAs_localized_params_locale === void 0 ? void 0 : _sayAs_localized_params_locale.length) && (sayAsWords = [
|
|
26396
|
+
...sayAsWords,
|
|
26397
|
+
...sayAs.localized[params.locale]
|
|
26398
|
+
]);
|
|
26150
26399
|
}
|
|
26151
|
-
|
|
26152
|
-
|
|
26153
|
-
|
|
26154
|
-
return gender.toLowerCase() === ((agentData === null || agentData === void 0 ? void 0 : (_agentData_gender = agentData.gender) === null || _agentData_gender === void 0 ? void 0 : _agentData_gender.toLowerCase()) || 'female') && lang === locale;
|
|
26400
|
+
return (0, $d441ea54333b2073$export$2e2bcd8739ae039)({
|
|
26401
|
+
...params,
|
|
26402
|
+
sayAsWords: sayAsWords
|
|
26155
26403
|
});
|
|
26156
|
-
// No voice found, fall back to US default voices : female => Aria / male => Guy
|
|
26157
|
-
if (!voice) {
|
|
26158
|
-
var _agentData_gender;
|
|
26159
|
-
const genderedVoice = (agentData === null || agentData === void 0 ? void 0 : (_agentData_gender = agentData.gender) === null || _agentData_gender === void 0 ? void 0 : _agentData_gender.toLowerCase()) === 'female' ? 'AriaNeural' : 'GuyNeural';
|
|
26160
|
-
const neuralVoice = new RegExp(genderedVoice, 'iu');
|
|
26161
|
-
voice = voices.find(({ name: name })=>neuralVoice.test(name));
|
|
26162
|
-
}
|
|
26163
|
-
return voice;
|
|
26164
26404
|
};
|
|
26165
26405
|
|
|
26166
26406
|
|
|
@@ -26941,9 +27181,8 @@ const $d31b268c3b702355$var$RetorikSpeech = ({ ponyfill: ponyfill, onEnd: onEnd,
|
|
|
26941
27181
|
var $d31b268c3b702355$export$2e2bcd8739ae039 = $d31b268c3b702355$var$RetorikSpeech;
|
|
26942
27182
|
|
|
26943
27183
|
|
|
26944
|
-
const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews })=>{
|
|
27184
|
+
const $ad561f5c61e38c20$var$SynthesisManager = ({ ponyfill: ponyfill, isRetorikNews: isRetorikNews })=>{
|
|
26945
27185
|
const cancel = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.cancel);
|
|
26946
|
-
const cancelRef = (0, $dWhh5$react.useRef)(false);
|
|
26947
27186
|
const streamingReplyToId = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.streamingReplyToId);
|
|
26948
27187
|
const streamingQueue = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.streamingQueue);
|
|
26949
27188
|
const currentPlaying = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.currentPlaying);
|
|
@@ -26951,13 +27190,12 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
|
|
|
26951
27190
|
const endedActivities = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.endedActivities);
|
|
26952
27191
|
const voice = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.voice);
|
|
26953
27192
|
const customVoice = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.customVoice);
|
|
26954
|
-
const ponyfillCredentials = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.ponyfillCredentials);
|
|
26955
27193
|
const activeRecognitionState = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.activeRecognitionState);
|
|
26956
27194
|
const externalTextToSpeech = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.externalTextToSpeech);
|
|
26957
27195
|
const isMicrophoneAllowed = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.isMicrophoneAllowed);
|
|
27196
|
+
const mode = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.mode);
|
|
26958
27197
|
const route = (0, $6acc5d637072b42e$export$d13b2577cb75f2ad)((state)=>state.route);
|
|
26959
27198
|
const locale = (0, $0db969f5e79ce01b$export$6650dace022cfacc)((state)=>state.locale);
|
|
26960
|
-
const mode = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.mode);
|
|
26961
27199
|
const agentData = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.agentData);
|
|
26962
27200
|
const appAvailable = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.appAvailable);
|
|
26963
27201
|
const preventExpectedInputHint = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.configuration.preventExpectedInputHint);
|
|
@@ -26966,154 +27204,75 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
|
|
|
26966
27204
|
const lastBotActivity = (0, $8fc061e3e1dc64cb$export$b56465394e2b1287)((state)=>state.lastBotMessageActivity);
|
|
26967
27205
|
const checkReplacementLocale = (0, $0db969f5e79ce01b$export$6650dace022cfacc)((state)=>state.actions.checkReplacementLocale);
|
|
26968
27206
|
const setRetorikNewsEnded = (0, $2793f2455cec0982$export$77e4cc5334565f28)((state)=>state.actions.setRetorikNewsEnded);
|
|
26969
|
-
const
|
|
26970
|
-
const { setVoice: setVoice, cancelCurrentUtterance: cancelCurrentUtterance, resetCancelCurrentUtterance: resetCancelCurrentUtterance, setSpeaking: setSpeaking, setCurrentPlaying: setCurrentPlaying, setCurrentReplyToId: setCurrentReplyToId, setEndedActivities: setEndedActivities, setBoundaryData: setBoundaryData, removeFirstFromStreamingQueue: removeFirstFromStreamingQueue, setCurrentStreaming: setCurrentStreaming, killCurrentStreaming: killCurrentStreaming, askPermission: askPermission, toggleMicrophone: toggleMicrophone } = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.actions);
|
|
27207
|
+
const { resetCancelCurrentUtterance: resetCancelCurrentUtterance, setSpeaking: setSpeaking, setCurrentPlaying: setCurrentPlaying, setCurrentReplyToId: setCurrentReplyToId, setEndedActivities: setEndedActivities, setBoundaryData: setBoundaryData, removeFirstFromStreamingQueue: removeFirstFromStreamingQueue, setCurrentStreaming: setCurrentStreaming, killCurrentStreaming: killCurrentStreaming, askPermission: askPermission, toggleMicrophone: toggleMicrophone } = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.actions);
|
|
26971
27208
|
const addEndedActivity = (0, $8fc061e3e1dc64cb$export$b56465394e2b1287)((state)=>state.actions.addEndedActivity);
|
|
26972
27209
|
const dispatchMarkActivity = (0, $328a7f03b0982320$export$adc771f45cf9b273)((state)=>state.actions.dispatchMarkActivity);
|
|
26973
27210
|
const [utterance, setUtterance] = (0, $dWhh5$react.useState)(null);
|
|
26974
27211
|
const [nextUtterance, setNextUtterance] = (0, $dWhh5$react.useState)(null);
|
|
26975
|
-
const
|
|
27212
|
+
const cancelRef = (0, $dWhh5$react.useRef)(false);
|
|
27213
|
+
const isSpeaking = (0, $dWhh5$react.useRef)(false);
|
|
27214
|
+
const isNewsViewRef = (0, $dWhh5$react.useRef)(!!isRetorikNews);
|
|
27215
|
+
const lastListTextPlayedRef = (0, $dWhh5$react.useRef)('');
|
|
26976
27216
|
const queuedActivitiesRef = (0, $dWhh5$react.useRef)([]);
|
|
26977
27217
|
const currentActivityRef = (0, $dWhh5$react.useRef)(null);
|
|
26978
27218
|
const currentPlayingRef = (0, $dWhh5$react.useRef)(null);
|
|
26979
|
-
const timerRef = (0, $dWhh5$react.useRef)(null);
|
|
26980
|
-
const [isNewsView, setIsNewsView] = (0, $dWhh5$react.useState)(!!isRetorikNews);
|
|
26981
|
-
const [ponyfill, setPonyfill] = (0, $dWhh5$react.useState)(undefined);
|
|
26982
|
-
const refreshTimerRef = (0, $dWhh5$react.useRef)(null);
|
|
26983
|
-
const [lastListTextPlayed, setLastListTextPlayed] = (0, $dWhh5$react.useState)('');
|
|
26984
27219
|
const tempCurrentStreamingRef = (0, $dWhh5$react.useRef)(null);
|
|
26985
27220
|
const streamingRelatedMessageRef = (0, $dWhh5$react.useRef)(null);
|
|
26986
27221
|
/**
|
|
26987
|
-
* Async function to retrieve a new token and assign it to the speechConfig inside ponyfill.speechSynthesis
|
|
26988
|
-
* @param region string
|
|
26989
|
-
* @param key string
|
|
26990
|
-
*/ const refreshTokenInNineMinutes = async (region, key)=>{
|
|
26991
|
-
// A token is valid during 10 minutes, let's refresh it after 9 minutes
|
|
26992
|
-
refreshTimerRef.current = setTimeout(async ()=>{
|
|
26993
|
-
var _ponyfill_speechSynthesis;
|
|
26994
|
-
const token = await (0, $f2ae26d736ec24dc$export$a2ce4fdd6972d6a7)(region, key);
|
|
26995
|
-
if (token && (ponyfill === null || ponyfill === void 0 ? void 0 : (_ponyfill_speechSynthesis = ponyfill.speechSynthesis) === null || _ponyfill_speechSynthesis === void 0 ? void 0 : _ponyfill_speechSynthesis.speechConfig)) {
|
|
26996
|
-
ponyfill.speechSynthesis.speechConfig.authorizationToken = token;
|
|
26997
|
-
refreshTokenInNineMinutes(region, key);
|
|
26998
|
-
}
|
|
26999
|
-
}, 540000) // 9 minutes
|
|
27000
|
-
;
|
|
27001
|
-
};
|
|
27002
|
-
const fetchTokenAndCreatePonyfill = async (key, region)=>{
|
|
27003
|
-
const token = await (0, $f2ae26d736ec24dc$export$a2ce4fdd6972d6a7)(region, key);
|
|
27004
|
-
if (token) setPonyfill((0, $dWhh5$daviaiwebspeechcognitiveservicesdavi.createSpeechSynthesisPonyfill)({
|
|
27005
|
-
credentials: {
|
|
27006
|
-
region: ponyfillCredentials === null || ponyfillCredentials === void 0 ? void 0 : ponyfillCredentials.region,
|
|
27007
|
-
authorizationToken: token
|
|
27008
|
-
}
|
|
27009
|
-
}));
|
|
27010
|
-
};
|
|
27011
|
-
/**
|
|
27012
|
-
* Launch token refresh after ponyfill creation if subscription key and region are given
|
|
27013
|
-
*/ (0, $dWhh5$react.useEffect)(()=>{
|
|
27014
|
-
ponyfill && (ponyfillCredentials === null || ponyfillCredentials === void 0 ? void 0 : ponyfillCredentials.subscriptionKey) && (ponyfillCredentials === null || ponyfillCredentials === void 0 ? void 0 : ponyfillCredentials.region) && refreshTokenInNineMinutes(ponyfillCredentials.region, ponyfillCredentials.subscriptionKey);
|
|
27015
|
-
}, [
|
|
27016
|
-
ponyfill
|
|
27017
|
-
]);
|
|
27018
|
-
(0, $dWhh5$react.useEffect)(()=>{
|
|
27019
|
-
if ((ponyfillCredentials === null || ponyfillCredentials === void 0 ? void 0 : ponyfillCredentials.authorizationToken) && (ponyfillCredentials === null || ponyfillCredentials === void 0 ? void 0 : ponyfillCredentials.region)) {
|
|
27020
|
-
const data = {
|
|
27021
|
-
credentials: ponyfillCredentials
|
|
27022
|
-
};
|
|
27023
|
-
setPonyfill((0, $dWhh5$daviaiwebspeechcognitiveservicesdavi.createSpeechSynthesisPonyfill)(data));
|
|
27024
|
-
} else if ((ponyfillCredentials === null || ponyfillCredentials === void 0 ? void 0 : ponyfillCredentials.subscriptionKey) && (ponyfillCredentials === null || ponyfillCredentials === void 0 ? void 0 : ponyfillCredentials.region)) fetchTokenAndCreatePonyfill(ponyfillCredentials.subscriptionKey, ponyfillCredentials.region);
|
|
27025
|
-
}, [
|
|
27026
|
-
ponyfillCredentials
|
|
27027
|
-
]);
|
|
27028
|
-
const onVoicesChanged = ()=>{
|
|
27029
|
-
const voices = ponyfill.speechSynthesis.getVoices();
|
|
27030
|
-
if (voices && Array.isArray(voices) && voices.length > 0) setVoice((0, $5679d80e89b3df01$export$4bf371fc4fa74a28)(ponyfill.speechSynthesis.getVoices(), locale, customVoice, agentData));
|
|
27031
|
-
};
|
|
27032
|
-
/**
|
|
27033
27222
|
* Check activity locale in case of voice change during the speech, to keep the language defined in activity
|
|
27034
27223
|
* instead of switching languages between answers that are written in the same language
|
|
27035
|
-
* @param activityLocale
|
|
27036
|
-
* @returns SpeechSynthesisVoice | null
|
|
27224
|
+
* @param {string} activityLocale
|
|
27225
|
+
* @returns {SpeechSynthesisVoice | null}
|
|
27037
27226
|
*/ const getVoiceAfterCheckingActivityLocale = (activityLocale)=>{
|
|
27038
27227
|
return activityLocale === locale ? voice : (0, $5679d80e89b3df01$export$4bf371fc4fa74a28)(ponyfill.speechSynthesis.getVoices(), activityLocale, customVoice, agentData);
|
|
27039
27228
|
};
|
|
27040
|
-
(0, $dWhh5$react.useEffect)(()=>{
|
|
27041
|
-
if (ponyfill) {
|
|
27042
|
-
const voices = ponyfill.speechSynthesis.getVoices();
|
|
27043
|
-
if (voices && Array.isArray(voices) && voices.length > 0) setVoice((0, $5679d80e89b3df01$export$4bf371fc4fa74a28)(ponyfill.speechSynthesis.getVoices(), locale, customVoice, agentData));
|
|
27044
|
-
else ponyfill.speechSynthesis.onvoiceschanged = onVoicesChanged;
|
|
27045
|
-
}
|
|
27046
|
-
}, [
|
|
27047
|
-
ponyfill,
|
|
27048
|
-
customVoice,
|
|
27049
|
-
agentData,
|
|
27050
|
-
locale
|
|
27051
|
-
]);
|
|
27052
27229
|
/**
|
|
27053
|
-
*
|
|
27054
|
-
*
|
|
27055
|
-
|
|
27056
|
-
|
|
27057
|
-
};
|
|
27058
|
-
const checkSayAsWordsAndCreateUtterance = (params)=>{
|
|
27059
|
-
let sayAsWords = [];
|
|
27060
|
-
if (speechSynthesisOptions === null || speechSynthesisOptions === void 0 ? void 0 : speechSynthesisOptions.sayAs) {
|
|
27061
|
-
var _speechSynthesisOptions_sayAs_common, _speechSynthesisOptions_sayAs, _speechSynthesisOptions_sayAs1, _speechSynthesisOptions_sayAs_localized_locale;
|
|
27062
|
-
(speechSynthesisOptions === null || speechSynthesisOptions === void 0 ? void 0 : (_speechSynthesisOptions_sayAs = speechSynthesisOptions.sayAs) === null || _speechSynthesisOptions_sayAs === void 0 ? void 0 : (_speechSynthesisOptions_sayAs_common = _speechSynthesisOptions_sayAs.common) === null || _speechSynthesisOptions_sayAs_common === void 0 ? void 0 : _speechSynthesisOptions_sayAs_common.length) && (sayAsWords = [
|
|
27063
|
-
...speechSynthesisOptions.sayAs.common
|
|
27064
|
-
]);
|
|
27065
|
-
(speechSynthesisOptions === null || speechSynthesisOptions === void 0 ? void 0 : (_speechSynthesisOptions_sayAs1 = speechSynthesisOptions.sayAs) === null || _speechSynthesisOptions_sayAs1 === void 0 ? void 0 : _speechSynthesisOptions_sayAs1.localized) && ((_speechSynthesisOptions_sayAs_localized_locale = speechSynthesisOptions.sayAs.localized[locale]) === null || _speechSynthesisOptions_sayAs_localized_locale === void 0 ? void 0 : _speechSynthesisOptions_sayAs_localized_locale.length) && (sayAsWords = [
|
|
27066
|
-
...sayAsWords,
|
|
27067
|
-
...speechSynthesisOptions.sayAs.localized[locale]
|
|
27068
|
-
]);
|
|
27069
|
-
}
|
|
27070
|
-
return (0, $d441ea54333b2073$export$2e2bcd8739ae039)({
|
|
27071
|
-
...params,
|
|
27072
|
-
sayAsWords: sayAsWords
|
|
27073
|
-
});
|
|
27074
|
-
};
|
|
27075
|
-
const checkActivityAndCreateUtterance = (params)=>{
|
|
27230
|
+
* Check if the activity is a list one, to prevent text re-reading on state update
|
|
27231
|
+
* @param {CreateUtteranceParams} params
|
|
27232
|
+
* @returns {SpeechSynthesisUtterance}
|
|
27233
|
+
*/ const checkActivityAndCreateUtterance = (params)=>{
|
|
27076
27234
|
if (params.activity.attachmentLayout && params.activity.attachmentLayout.toLowerCase() === 'davilist') {
|
|
27077
27235
|
const textToSpeak = params.activity.speak || params.activity.text;
|
|
27078
27236
|
if (textToSpeak) {
|
|
27079
|
-
if (textToSpeak ===
|
|
27237
|
+
if (textToSpeak === lastListTextPlayedRef.current) return (0, $285c8810199513ef$export$f969af62bba9a48b)({
|
|
27080
27238
|
...params,
|
|
27081
27239
|
voice: null
|
|
27082
|
-
});
|
|
27083
|
-
else
|
|
27240
|
+
}, speechSynthesisOptions === null || speechSynthesisOptions === void 0 ? void 0 : speechSynthesisOptions.sayAs);
|
|
27241
|
+
else lastListTextPlayedRef.current = textToSpeak;
|
|
27084
27242
|
}
|
|
27085
27243
|
}
|
|
27086
|
-
return
|
|
27087
|
-
...params
|
|
27088
|
-
});
|
|
27244
|
+
return (0, $285c8810199513ef$export$f969af62bba9a48b)(params, speechSynthesisOptions === null || speechSynthesisOptions === void 0 ? void 0 : speechSynthesisOptions.sayAs);
|
|
27089
27245
|
};
|
|
27090
|
-
|
|
27091
|
-
|
|
27092
|
-
|
|
27093
|
-
|
|
27094
|
-
|
|
27095
|
-
|
|
27096
|
-
|
|
27097
|
-
|
|
27098
|
-
|
|
27099
|
-
|
|
27100
|
-
|
|
27101
|
-
|
|
27102
|
-
|
|
27246
|
+
const resetData = ()=>{
|
|
27247
|
+
queuedActivitiesRef.current = [];
|
|
27248
|
+
tempCurrentStreamingRef.current = null;
|
|
27249
|
+
streamingRelatedMessageRef.current = null;
|
|
27250
|
+
currentPlayingRef.current = null;
|
|
27251
|
+
isSpeaking.current = false;
|
|
27252
|
+
setUtterance(null);
|
|
27253
|
+
setNextUtterance(null);
|
|
27254
|
+
resetCancelCurrentUtterance();
|
|
27255
|
+
};
|
|
27256
|
+
const checkReplacementLocaleAndGetUtterance = (activity, checkReplacement = true, setCurrent = true)=>{
|
|
27257
|
+
setCurrent && (currentActivityRef.current = activity);
|
|
27258
|
+
const replacementLocale = checkReplacement ? checkReplacementLocale(activity.locale || locale) : locale;
|
|
27259
|
+
const params = {
|
|
27260
|
+
activity: activity,
|
|
27261
|
+
voice: getVoiceAfterCheckingActivityLocale(replacementLocale),
|
|
27262
|
+
locale: replacementLocale
|
|
27103
27263
|
};
|
|
27104
|
-
|
|
27264
|
+
return checkActivityAndCreateUtterance(params);
|
|
27265
|
+
};
|
|
27266
|
+
const checkDictateState = ()=>{
|
|
27267
|
+
if (!preventExpectedInputHint && mode === (0, $71c613e2e831c34c$export$9484bbecc3c49a2e).vocal && activeRecognitionState === (0, $71c613e2e831c34c$export$3f0071308968cd80).Closed) {
|
|
27268
|
+
if (!isMicrophoneAllowed) askPermission();
|
|
27269
|
+
else toggleMicrophone(true);
|
|
27270
|
+
}
|
|
27271
|
+
};
|
|
27105
27272
|
(0, $dWhh5$react.useEffect)(()=>{
|
|
27106
|
-
if (
|
|
27107
|
-
if (currentNewsActivity
|
|
27108
|
-
|
|
27109
|
-
const params = {
|
|
27110
|
-
activity: currentNewsActivity,
|
|
27111
|
-
voice: getVoiceAfterCheckingActivityLocale(replacementLocale),
|
|
27112
|
-
locale: replacementLocale
|
|
27113
|
-
};
|
|
27114
|
-
setUtterance(checkSayAsWordsAndCreateUtterance({
|
|
27115
|
-
...params
|
|
27116
|
-
}));
|
|
27273
|
+
if (isNewsViewRef.current) {
|
|
27274
|
+
if (currentNewsActivity) {
|
|
27275
|
+
setUtterance(checkReplacementLocaleAndGetUtterance(currentNewsActivity));
|
|
27117
27276
|
isSpeaking.current = true;
|
|
27118
27277
|
} else {
|
|
27119
27278
|
setUtterance(null);
|
|
@@ -27143,13 +27302,8 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
|
|
|
27143
27302
|
setEndedActivities(ended);
|
|
27144
27303
|
}
|
|
27145
27304
|
setCurrentPlaying(undefined);
|
|
27146
|
-
|
|
27147
|
-
|
|
27148
|
-
resetCancelCurrentUtterance();
|
|
27149
|
-
setUtterance(null);
|
|
27150
|
-
isSpeaking.current = false;
|
|
27151
|
-
setNextUtterance(null);
|
|
27152
|
-
!isRetorikNews && setIsNewsView(route === (0, $71c613e2e831c34c$export$3565eb3d00ca5a74).News);
|
|
27305
|
+
resetData();
|
|
27306
|
+
if (!isRetorikNews) isNewsViewRef.current = route === (0, $71c613e2e831c34c$export$3565eb3d00ca5a74).News;
|
|
27153
27307
|
}, [
|
|
27154
27308
|
route
|
|
27155
27309
|
]);
|
|
@@ -27161,21 +27315,8 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
|
|
|
27161
27315
|
*/ (0, $dWhh5$react.useEffect)(()=>{
|
|
27162
27316
|
var _queuedActivitiesRef_current;
|
|
27163
27317
|
if (appAvailable && ((_queuedActivitiesRef_current = queuedActivitiesRef.current) === null || _queuedActivitiesRef_current === void 0 ? void 0 : _queuedActivitiesRef_current.length)) {
|
|
27164
|
-
|
|
27165
|
-
|
|
27166
|
-
const replacementLocale = checkReplacementLocale(activity.locale || locale);
|
|
27167
|
-
currentActivityRef.current = activity;
|
|
27168
|
-
const params = {
|
|
27169
|
-
activity: activity,
|
|
27170
|
-
voice: getVoiceAfterCheckingActivityLocale(replacementLocale),
|
|
27171
|
-
locale: replacementLocale
|
|
27172
|
-
};
|
|
27173
|
-
const queue = [
|
|
27174
|
-
...queuedActivitiesRef.current
|
|
27175
|
-
];
|
|
27176
|
-
queue.splice(0, 1);
|
|
27177
|
-
queuedActivitiesRef.current = queue;
|
|
27178
|
-
setUtterance(checkActivityAndCreateUtterance(params));
|
|
27318
|
+
setUtterance(checkReplacementLocaleAndGetUtterance(queuedActivitiesRef.current[0]));
|
|
27319
|
+
queuedActivitiesRef.current.splice(0, 1);
|
|
27179
27320
|
isSpeaking.current = true;
|
|
27180
27321
|
}
|
|
27181
27322
|
}, [
|
|
@@ -27183,7 +27324,7 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
|
|
|
27183
27324
|
]);
|
|
27184
27325
|
/**
|
|
27185
27326
|
* On speechCancelStore's cancel state change :
|
|
27186
|
-
* - if there is currently
|
|
27327
|
+
* - if there is currently no utterance being played, reset cancel state to false
|
|
27187
27328
|
* - if an utterance is being played, set it to null to stop playing and prevent data in queue from being played
|
|
27188
27329
|
* - setting an utterance to null will trigger the handleUtteranceEnded method automatically
|
|
27189
27330
|
*/ (0, $dWhh5$react.useEffect)(()=>{
|
|
@@ -27198,7 +27339,6 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
|
|
|
27198
27339
|
cancel
|
|
27199
27340
|
]);
|
|
27200
27341
|
/**
|
|
27201
|
-
* On lastBotActivity, ponyfill states change :
|
|
27202
27342
|
* - check if the ponyfill is created and the voices loaded
|
|
27203
27343
|
* - if the activity doesn't have a replyToId value, put it in the queue (used for reminder process)
|
|
27204
27344
|
* - if the app is not available yet, put the activity in the queue if it is not yet inside
|
|
@@ -27207,11 +27347,11 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
|
|
|
27207
27347
|
* - 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)
|
|
27208
27348
|
* - if an utterance has to be created, create it and set the utterance state
|
|
27209
27349
|
*/ (0, $dWhh5$react.useEffect)(()=>{
|
|
27210
|
-
if (
|
|
27350
|
+
if (voice && (lastBotActivity === null || lastBotActivity === void 0 ? void 0 : lastBotActivity.id)) {
|
|
27211
27351
|
let createNewUtterance = false;
|
|
27212
27352
|
if (!lastBotActivity.replyToId) {
|
|
27213
27353
|
var _queuedActivitiesRef_current;
|
|
27214
|
-
if (
|
|
27354
|
+
if (isNewsViewRef.current) ;
|
|
27215
27355
|
else if (currentPlaying || ((_queuedActivitiesRef_current = queuedActivitiesRef.current) === null || _queuedActivitiesRef_current === void 0 ? void 0 : _queuedActivitiesRef_current.length)) queuedActivitiesRef.current = [
|
|
27216
27356
|
...queuedActivitiesRef.current,
|
|
27217
27357
|
lastBotActivity
|
|
@@ -27234,52 +27374,37 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
|
|
|
27234
27374
|
queuedActivitiesRef.current = [
|
|
27235
27375
|
lastBotActivity
|
|
27236
27376
|
];
|
|
27237
|
-
} else if (currentReplyToId === lastBotActivity.replyToId) {
|
|
27238
|
-
var _queuedActivitiesRef_current1;
|
|
27239
|
-
let count = 0;
|
|
27240
|
-
if ((_queuedActivitiesRef_current1 = queuedActivitiesRef.current) === null || _queuedActivitiesRef_current1 === void 0 ? void 0 : _queuedActivitiesRef_current1.length) queuedActivitiesRef.current.forEach((activity)=>{
|
|
27241
|
-
if (activity.id === lastBotActivity.id) count++;
|
|
27242
|
-
});
|
|
27243
|
-
if (count === 0) queuedActivitiesRef.current = [
|
|
27244
|
-
...queuedActivitiesRef.current,
|
|
27245
|
-
lastBotActivity
|
|
27246
|
-
];
|
|
27247
27377
|
} else {
|
|
27248
|
-
|
|
27249
|
-
|
|
27250
|
-
lastBotActivity
|
|
27251
|
-
|
|
27252
|
-
|
|
27253
|
-
|
|
27254
|
-
|
|
27255
|
-
|
|
27256
|
-
|
|
27257
|
-
|
|
27258
|
-
|
|
27259
|
-
|
|
27260
|
-
break;
|
|
27261
|
-
case 1:
|
|
27262
|
-
// Add the activity to the queue
|
|
27263
|
-
queue.push(lastBotActivity);
|
|
27264
|
-
queuedActivitiesRef.current = queue;
|
|
27265
|
-
break;
|
|
27266
|
-
case 2:
|
|
27267
|
-
// Stop current activity and play the new one
|
|
27268
|
-
queuedActivitiesRef.current = [];
|
|
27269
|
-
createNewUtterance = true;
|
|
27270
|
-
break;
|
|
27378
|
+
var _queuedActivitiesRef_current1;
|
|
27379
|
+
if (currentReplyToId === lastBotActivity.replyToId) {
|
|
27380
|
+
if (!((_queuedActivitiesRef_current1 = queuedActivitiesRef.current) === null || _queuedActivitiesRef_current1 === void 0 ? void 0 : _queuedActivitiesRef_current1.find((act)=>act.id === lastBotActivity.id))) queuedActivitiesRef.current = [
|
|
27381
|
+
...queuedActivitiesRef.current,
|
|
27382
|
+
lastBotActivity
|
|
27383
|
+
];
|
|
27384
|
+
} else {
|
|
27385
|
+
setCurrentReplyToId(lastBotActivity.replyToId);
|
|
27386
|
+
queuedActivitiesRef.current = [
|
|
27387
|
+
lastBotActivity
|
|
27388
|
+
];
|
|
27389
|
+
}
|
|
27271
27390
|
}
|
|
27272
|
-
} else
|
|
27391
|
+
} else if (currentActivityRef === null || currentActivityRef === void 0 ? void 0 : currentActivityRef.current) switch((0, $549323f244f4782c$export$2e2bcd8739ae039)(lastBotActivity, currentActivityRef.current, currentReplyToId, queuedActivitiesRef.current, endedActivities)){
|
|
27392
|
+
case 0:
|
|
27393
|
+
break;
|
|
27394
|
+
case 1:
|
|
27395
|
+
// Add the activity to the queue
|
|
27396
|
+
queuedActivitiesRef.current.push(lastBotActivity);
|
|
27397
|
+
break;
|
|
27398
|
+
case 2:
|
|
27399
|
+
// Stop current activity and play the new one
|
|
27400
|
+
queuedActivitiesRef.current = [];
|
|
27401
|
+
createNewUtterance = true;
|
|
27402
|
+
break;
|
|
27403
|
+
}
|
|
27404
|
+
else createNewUtterance = !endedActivities.includes(lastBotActivity.id);
|
|
27273
27405
|
if (createNewUtterance) {
|
|
27274
|
-
currentActivityRef.current = lastBotActivity;
|
|
27275
27406
|
setCurrentReplyToId(lastBotActivity.replyToId || 'customReplyToIdIfNotPresent');
|
|
27276
|
-
|
|
27277
|
-
const params = {
|
|
27278
|
-
activity: lastBotActivity,
|
|
27279
|
-
voice: getVoiceAfterCheckingActivityLocale(replacementLocale),
|
|
27280
|
-
locale: replacementLocale
|
|
27281
|
-
};
|
|
27282
|
-
setUtterance(checkActivityAndCreateUtterance(params));
|
|
27407
|
+
setUtterance(checkReplacementLocaleAndGetUtterance(lastBotActivity));
|
|
27283
27408
|
isSpeaking.current = true;
|
|
27284
27409
|
}
|
|
27285
27410
|
}
|
|
@@ -27290,47 +27415,23 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
|
|
|
27290
27415
|
]);
|
|
27291
27416
|
(0, $dWhh5$react.useEffect)(()=>{
|
|
27292
27417
|
if (streamingReplyToId && streamingQueue.length) {
|
|
27293
|
-
|
|
27294
|
-
const params = {
|
|
27295
|
-
activity: tempActivity,
|
|
27296
|
-
voice: getVoiceAfterCheckingActivityLocale(locale),
|
|
27297
|
-
locale: locale
|
|
27298
|
-
};
|
|
27299
|
-
removeFirstFromStreamingQueue();
|
|
27300
|
-
setUtterance(checkSayAsWordsAndCreateUtterance(params));
|
|
27418
|
+
setUtterance(checkReplacementLocaleAndGetUtterance(streamingQueue[0], false, false));
|
|
27301
27419
|
isSpeaking.current = true;
|
|
27302
27420
|
setCurrentPlaying(undefined);
|
|
27303
27421
|
currentPlayingRef.current = null;
|
|
27304
27422
|
currentActivityRef.current = null;
|
|
27305
|
-
tempCurrentStreamingRef.current =
|
|
27423
|
+
tempCurrentStreamingRef.current = streamingQueue[0].text || null;
|
|
27424
|
+
removeFirstFromStreamingQueue();
|
|
27306
27425
|
}
|
|
27307
27426
|
}, [
|
|
27308
27427
|
streamingReplyToId
|
|
27309
27428
|
]);
|
|
27310
|
-
/**
|
|
27311
|
-
* On utteranceEnded state change :
|
|
27312
|
-
* - if the state is true, an utterance just ended, so the steps are :
|
|
27313
|
-
* - call the handleEnded method
|
|
27314
|
-
* - set utteranceEnded state to false to wait for another utterance end
|
|
27315
|
-
*/ (0, $dWhh5$react.useEffect)(()=>{
|
|
27316
|
-
if (utteranceEnded) {
|
|
27317
|
-
handleEnded();
|
|
27318
|
-
setUtteranceEnded(false);
|
|
27319
|
-
}
|
|
27320
|
-
}, [
|
|
27321
|
-
utteranceEnded
|
|
27322
|
-
]);
|
|
27323
27429
|
(0, $dWhh5$react.useEffect)(()=>{
|
|
27324
27430
|
if (externalTextToSpeech) {
|
|
27325
|
-
|
|
27326
|
-
|
|
27327
|
-
speak: externalTextToSpeech,
|
|
27328
|
-
locale: locale
|
|
27329
|
-
},
|
|
27330
|
-
voice: getVoiceAfterCheckingActivityLocale(locale),
|
|
27431
|
+
setUtterance(checkReplacementLocaleAndGetUtterance({
|
|
27432
|
+
speak: externalTextToSpeech,
|
|
27331
27433
|
locale: locale
|
|
27332
|
-
};
|
|
27333
|
-
setUtterance(checkSayAsWordsAndCreateUtterance(params));
|
|
27434
|
+
}, false, false));
|
|
27334
27435
|
isSpeaking.current = true;
|
|
27335
27436
|
}
|
|
27336
27437
|
}, [
|
|
@@ -27347,7 +27448,7 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
|
|
|
27347
27448
|
* - set currentPlaying and currentReplyToId states after a small delay to prevent make sure that the display will happen after the speech has begun
|
|
27348
27449
|
*/ const handleUtteranceStart = ()=>{
|
|
27349
27450
|
setSpeaking(true);
|
|
27350
|
-
if (!
|
|
27451
|
+
if (!isNewsViewRef.current && (currentActivityRef === null || currentActivityRef === void 0 ? void 0 : currentActivityRef.current)) {
|
|
27351
27452
|
setCurrentPlaying(currentActivityRef.current);
|
|
27352
27453
|
currentPlayingRef.current = currentActivityRef.current;
|
|
27353
27454
|
currentActivityRef.current.id && dispatchMarkActivity(currentActivityRef.current.id, true);
|
|
@@ -27357,31 +27458,18 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
|
|
|
27357
27458
|
if (streamingReplyToId && streamingQueue.length) {
|
|
27358
27459
|
const tempActivity = streamingQueue[0];
|
|
27359
27460
|
if (tempActivity.text) {
|
|
27360
|
-
const
|
|
27361
|
-
activity: tempActivity,
|
|
27362
|
-
voice: getVoiceAfterCheckingActivityLocale(locale),
|
|
27363
|
-
locale: locale
|
|
27364
|
-
};
|
|
27365
|
-
const tempUtterance = checkSayAsWordsAndCreateUtterance(params);
|
|
27461
|
+
const tempUtterance = checkReplacementLocaleAndGetUtterance(streamingQueue[0], false, false);
|
|
27366
27462
|
tempUtterance.text !== (nextUtterance === null || nextUtterance === void 0 ? void 0 : nextUtterance.text) ? setNextUtterance(tempUtterance) : setNextUtterance(null);
|
|
27367
27463
|
} else setNextUtterance(null);
|
|
27368
27464
|
} else setNextUtterance(null);
|
|
27369
27465
|
setCurrentStreaming(tempCurrentStreamingRef === null || tempCurrentStreamingRef === void 0 ? void 0 : tempCurrentStreamingRef.current);
|
|
27370
27466
|
};
|
|
27371
|
-
|
|
27372
|
-
* On call :
|
|
27373
|
-
* - set speaking state to false
|
|
27374
|
-
* - set utteranceEnded state to true
|
|
27375
|
-
*/ const handleUtteranceEnd = ()=>{
|
|
27467
|
+
const handleUtteranceEnd = ()=>{
|
|
27376
27468
|
setSpeaking(false);
|
|
27377
|
-
isNewsView ? setRetorikNewsEnded(true) : setUtteranceEnded(true);
|
|
27378
27469
|
dispatchSpeechEvent(false);
|
|
27379
|
-
|
|
27380
|
-
|
|
27381
|
-
|
|
27382
|
-
if (!isMicrophoneAllowed) askPermission();
|
|
27383
|
-
else toggleMicrophone(true);
|
|
27384
|
-
}
|
|
27470
|
+
if (isNewsViewRef.current) setRetorikNewsEnded(true);
|
|
27471
|
+
else if (cancelRef.current) resetData();
|
|
27472
|
+
else handleEnded();
|
|
27385
27473
|
};
|
|
27386
27474
|
/**
|
|
27387
27475
|
* On call :
|
|
@@ -27399,40 +27487,16 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
|
|
|
27399
27487
|
}
|
|
27400
27488
|
}
|
|
27401
27489
|
setCurrentPlaying(undefined);
|
|
27402
|
-
|
|
27403
|
-
|
|
27404
|
-
|
|
27405
|
-
tempCurrentStreamingRef.current = null;
|
|
27406
|
-
streamingRelatedMessageRef.current = null;
|
|
27407
|
-
resetCancelCurrentUtterance();
|
|
27408
|
-
} else if (streamingQueue.length) {
|
|
27409
|
-
const tempActivity = streamingQueue[0];
|
|
27410
|
-
const params = {
|
|
27411
|
-
activity: tempActivity,
|
|
27412
|
-
voice: getVoiceAfterCheckingActivityLocale(locale),
|
|
27413
|
-
locale: locale
|
|
27414
|
-
};
|
|
27490
|
+
if (streamingQueue.length) {
|
|
27491
|
+
futureUtterance = checkReplacementLocaleAndGetUtterance(streamingQueue[0], false);
|
|
27492
|
+
tempCurrentStreamingRef.current = streamingQueue[0].text || null;
|
|
27415
27493
|
removeFirstFromStreamingQueue();
|
|
27416
|
-
futureUtterance = checkSayAsWordsAndCreateUtterance(params);
|
|
27417
|
-
tempCurrentStreamingRef.current = tempActivity.text || null;
|
|
27418
27494
|
} else {
|
|
27419
27495
|
var _queuedActivitiesRef_current, _currentPlayingRef_current;
|
|
27420
27496
|
// Launch next activity in the queue and remove it from the queue
|
|
27421
27497
|
if ((_queuedActivitiesRef_current = queuedActivitiesRef.current) === null || _queuedActivitiesRef_current === void 0 ? void 0 : _queuedActivitiesRef_current.length) {
|
|
27422
|
-
|
|
27423
|
-
|
|
27424
|
-
currentActivityRef.current = activity;
|
|
27425
|
-
const params = {
|
|
27426
|
-
activity: activity,
|
|
27427
|
-
voice: getVoiceAfterCheckingActivityLocale(replacementLocale),
|
|
27428
|
-
locale: replacementLocale
|
|
27429
|
-
};
|
|
27430
|
-
futureUtterance = checkActivityAndCreateUtterance(params);
|
|
27431
|
-
const queue = [
|
|
27432
|
-
...queuedActivitiesRef.current
|
|
27433
|
-
];
|
|
27434
|
-
queue.splice(0, 1);
|
|
27435
|
-
queuedActivitiesRef.current = queue;
|
|
27498
|
+
futureUtterance = checkReplacementLocaleAndGetUtterance(queuedActivitiesRef.current[0]);
|
|
27499
|
+
queuedActivitiesRef.current.splice(0, 1);
|
|
27436
27500
|
// If a streaming-related message activity is stored, set it as ended and flush it
|
|
27437
27501
|
if (streamingRelatedMessageRef.current) {
|
|
27438
27502
|
addEndedActivity(streamingRelatedMessageRef.current.id);
|
|
@@ -27450,21 +27514,15 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
|
|
|
27450
27514
|
isSpeaking.current = !!futureUtterance;
|
|
27451
27515
|
};
|
|
27452
27516
|
/**
|
|
27453
|
-
|
|
27517
|
+
* If the previous audio stream ends before the next one is received, we relaunch the new stream as soon as it arrives.
|
|
27454
27518
|
*/ (0, $dWhh5$react.useEffect)(()=>{
|
|
27455
27519
|
if (!isSpeaking.current) {
|
|
27456
27520
|
let futureUtterance = null;
|
|
27457
27521
|
setCurrentPlaying(undefined);
|
|
27458
27522
|
if (streamingQueue.length) {
|
|
27459
|
-
|
|
27460
|
-
|
|
27461
|
-
activity: tempActivity,
|
|
27462
|
-
voice: getVoiceAfterCheckingActivityLocale(locale),
|
|
27463
|
-
locale: locale
|
|
27464
|
-
};
|
|
27523
|
+
futureUtterance = checkReplacementLocaleAndGetUtterance(streamingQueue[0], false, false);
|
|
27524
|
+
tempCurrentStreamingRef.current = streamingQueue[0].text || null;
|
|
27465
27525
|
removeFirstFromStreamingQueue();
|
|
27466
|
-
futureUtterance = checkSayAsWordsAndCreateUtterance(params);
|
|
27467
|
-
tempCurrentStreamingRef.current = tempActivity.text || null;
|
|
27468
27526
|
}
|
|
27469
27527
|
currentPlayingRef.current = null;
|
|
27470
27528
|
setUtterance(futureUtterance);
|
|
@@ -27473,7 +27531,7 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
|
|
|
27473
27531
|
}, [
|
|
27474
27532
|
streamingQueue
|
|
27475
27533
|
]);
|
|
27476
|
-
return
|
|
27534
|
+
return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $d31b268c3b702355$export$2e2bcd8739ae039), {
|
|
27477
27535
|
ponyfill: ponyfill,
|
|
27478
27536
|
appAvailable: appAvailable,
|
|
27479
27537
|
utterance: utterance,
|
|
@@ -27481,11 +27539,91 @@ const $ad561f5c61e38c20$var$SynthesisManager = ({ isRetorikNews: isRetorikNews }
|
|
|
27481
27539
|
onStart: handleUtteranceStart,
|
|
27482
27540
|
onError: handleUtteranceEnd,
|
|
27483
27541
|
onEnd: handleUtteranceEnd
|
|
27484
|
-
})
|
|
27542
|
+
});
|
|
27485
27543
|
};
|
|
27486
27544
|
var $ad561f5c61e38c20$export$2e2bcd8739ae039 = $ad561f5c61e38c20$var$SynthesisManager;
|
|
27487
27545
|
|
|
27488
27546
|
|
|
27547
|
+
const $fe06f31a645aa3a1$var$SynthesisPonyfillManager = ({ isRetorikNews: isRetorikNews })=>{
|
|
27548
|
+
const customVoice = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.customVoice);
|
|
27549
|
+
const ponyfillCredentials = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.ponyfillCredentials);
|
|
27550
|
+
const locale = (0, $0db969f5e79ce01b$export$6650dace022cfacc)((state)=>state.locale);
|
|
27551
|
+
const agentData = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.agentData);
|
|
27552
|
+
const setVoice = (0, $df401eb9a10f9e0e$export$f299240efcda25a2)((state)=>state.actions.setVoice);
|
|
27553
|
+
const [ponyfill, setPonyfill] = (0, $dWhh5$react.useState)(undefined);
|
|
27554
|
+
const refreshTimerRef = (0, $dWhh5$react.useRef)(null);
|
|
27555
|
+
/**
|
|
27556
|
+
* Async function to retrieve a new token and assign it to the speechConfig inside ponyfill.speechSynthesis
|
|
27557
|
+
* @param {string} region
|
|
27558
|
+
* @param {string} key
|
|
27559
|
+
*/ const refreshTokenInNineMinutes = async (region, key)=>{
|
|
27560
|
+
// A token is valid during 10 minutes, let's refresh it after 9 minutes
|
|
27561
|
+
refreshTimerRef.current = setTimeout(async ()=>{
|
|
27562
|
+
var _ponyfill_speechSynthesis;
|
|
27563
|
+
const token = await (0, $f2ae26d736ec24dc$export$a2ce4fdd6972d6a7)(region, key);
|
|
27564
|
+
if (token && (ponyfill === null || ponyfill === void 0 ? void 0 : (_ponyfill_speechSynthesis = ponyfill.speechSynthesis) === null || _ponyfill_speechSynthesis === void 0 ? void 0 : _ponyfill_speechSynthesis.speechConfig)) {
|
|
27565
|
+
ponyfill.speechSynthesis.speechConfig.authorizationToken = token;
|
|
27566
|
+
refreshTokenInNineMinutes(region, key);
|
|
27567
|
+
}
|
|
27568
|
+
}, 540000) // 9 minutes
|
|
27569
|
+
;
|
|
27570
|
+
};
|
|
27571
|
+
/**
|
|
27572
|
+
* Fetch speech synthesis token and create the ponyfill containing all data
|
|
27573
|
+
* @param {string} region
|
|
27574
|
+
* @param {string} key
|
|
27575
|
+
*/ const fetchTokenAndCreatePonyfill = async (region, key)=>{
|
|
27576
|
+
const token = await (0, $f2ae26d736ec24dc$export$a2ce4fdd6972d6a7)(region, key);
|
|
27577
|
+
if (token) {
|
|
27578
|
+
setPonyfill((0, $dWhh5$daviaiwebspeechcognitiveservicesdavi.createSpeechSynthesisPonyfill)({
|
|
27579
|
+
credentials: {
|
|
27580
|
+
region: ponyfillCredentials === null || ponyfillCredentials === void 0 ? void 0 : ponyfillCredentials.region,
|
|
27581
|
+
authorizationToken: token
|
|
27582
|
+
}
|
|
27583
|
+
}));
|
|
27584
|
+
// Launch token refresh after ponyfill creation
|
|
27585
|
+
refreshTokenInNineMinutes(region, key);
|
|
27586
|
+
}
|
|
27587
|
+
};
|
|
27588
|
+
(0, $dWhh5$react.useEffect)(()=>{
|
|
27589
|
+
if ((ponyfillCredentials === null || ponyfillCredentials === void 0 ? void 0 : ponyfillCredentials.authorizationToken) && ponyfillCredentials.region) {
|
|
27590
|
+
const data = {
|
|
27591
|
+
credentials: ponyfillCredentials
|
|
27592
|
+
};
|
|
27593
|
+
setPonyfill((0, $dWhh5$daviaiwebspeechcognitiveservicesdavi.createSpeechSynthesisPonyfill)(data));
|
|
27594
|
+
} else if ((ponyfillCredentials === null || ponyfillCredentials === void 0 ? void 0 : ponyfillCredentials.subscriptionKey) && ponyfillCredentials.region) fetchTokenAndCreatePonyfill(ponyfillCredentials.region, ponyfillCredentials.subscriptionKey);
|
|
27595
|
+
}, [
|
|
27596
|
+
ponyfillCredentials
|
|
27597
|
+
]);
|
|
27598
|
+
const onVoicesChanged = ()=>{
|
|
27599
|
+
const voices = ponyfill === null || ponyfill === void 0 ? void 0 : ponyfill.speechSynthesis.getVoices();
|
|
27600
|
+
if (voices && Array.isArray(voices) && voices.length) setVoice((0, $5679d80e89b3df01$export$4bf371fc4fa74a28)(voices, locale, customVoice, agentData));
|
|
27601
|
+
};
|
|
27602
|
+
(0, $dWhh5$react.useEffect)(()=>{
|
|
27603
|
+
if (ponyfill) {
|
|
27604
|
+
const voices = ponyfill.speechSynthesis.getVoices();
|
|
27605
|
+
if (voices && Array.isArray(voices) && voices.length) setVoice((0, $5679d80e89b3df01$export$4bf371fc4fa74a28)(voices, locale, customVoice, agentData));
|
|
27606
|
+
else ponyfill.speechSynthesis.onvoiceschanged = onVoicesChanged;
|
|
27607
|
+
}
|
|
27608
|
+
}, [
|
|
27609
|
+
ponyfill,
|
|
27610
|
+
customVoice,
|
|
27611
|
+
agentData,
|
|
27612
|
+
locale
|
|
27613
|
+
]);
|
|
27614
|
+
(0, $dWhh5$react.useEffect)(()=>{
|
|
27615
|
+
return ()=>{
|
|
27616
|
+
refreshTimerRef.current && clearTimeout(refreshTimerRef.current);
|
|
27617
|
+
};
|
|
27618
|
+
}, []);
|
|
27619
|
+
return ponyfill ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $ad561f5c61e38c20$export$2e2bcd8739ae039), {
|
|
27620
|
+
ponyfill: ponyfill,
|
|
27621
|
+
isRetorikNews: isRetorikNews
|
|
27622
|
+
}) : /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {});
|
|
27623
|
+
};
|
|
27624
|
+
var $fe06f31a645aa3a1$export$2e2bcd8739ae039 = $fe06f31a645aa3a1$var$SynthesisPonyfillManager;
|
|
27625
|
+
|
|
27626
|
+
|
|
27489
27627
|
|
|
27490
27628
|
|
|
27491
27629
|
|
|
@@ -27715,7 +27853,7 @@ var $b0722e4118e770aa$export$2e2bcd8739ae039 = $b0722e4118e770aa$var$Recognition
|
|
|
27715
27853
|
const $9e19251bfed127fc$var$SpeechManager = ({ isRetorikNews: isRetorikNews })=>{
|
|
27716
27854
|
return /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {
|
|
27717
27855
|
children: [
|
|
27718
|
-
/*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $
|
|
27856
|
+
/*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $fe06f31a645aa3a1$export$2e2bcd8739ae039), {
|
|
27719
27857
|
isRetorikNews: isRetorikNews
|
|
27720
27858
|
}),
|
|
27721
27859
|
!isRetorikNews && /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)((0, $b0722e4118e770aa$export$2e2bcd8739ae039), {})
|
|
@@ -28337,6 +28475,7 @@ const $8f73b7a6f73661a7$var$ChatbotAndSubtitlesContainer = ({ centered: centered
|
|
|
28337
28475
|
return agentData ? /*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsxs)((0, ($parcel$interopDefault($dWhh5$react))).Fragment, {
|
|
28338
28476
|
children: [
|
|
28339
28477
|
/*#__PURE__*/ (0, $dWhh5$reactjsxruntime.jsx)("div", {
|
|
28478
|
+
id: "retorik-animation-container",
|
|
28340
28479
|
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`,
|
|
28341
28480
|
style: {
|
|
28342
28481
|
visibility: visible ? 'visible' : 'hidden',
|
|
@@ -28575,14 +28714,14 @@ var $9765bd6ac5154ec8$export$2e2bcd8739ae039 = $9765bd6ac5154ec8$var$getBaseAddr
|
|
|
28575
28714
|
|
|
28576
28715
|
|
|
28577
28716
|
|
|
28578
|
-
const $ce7633a58d99dcca$var$RetorikConfigHandler = ({ config: config, viewsConfig: viewsConfig, chatbotData: chatbotData, chatbotDataWidget: chatbotDataWidget, agentData: agentData, ponyfillFactoryCredentials: ponyfillFactoryCredentials, customVoice: customVoice, colors: colors, skipLoader: skipLoader, defaultMode: defaultMode, GDPR: GDPR, addressData: addressData, externalEventHandler: externalEventHandler, externalComponents: externalComponents, userData: userData, width: width, height: height, menuConfig: menuConfig, environmentPreset: environmentPreset, parent: parent })=>{
|
|
28717
|
+
const $ce7633a58d99dcca$var$RetorikConfigHandler = ({ config: config, viewsConfig: viewsConfig, chatbotData: chatbotData, chatbotDataWidget: chatbotDataWidget, agentData: agentData, ponyfillFactoryCredentials: ponyfillFactoryCredentials, customVoice: customVoice, colors: colors, skipLoader: skipLoader, defaultMode: defaultMode, GDPR: GDPR, customScripts: customScripts, customCSS: customCSS, addressData: addressData, externalEventHandler: externalEventHandler, externalComponents: externalComponents, userData: userData, width: width, height: height, menuConfig: menuConfig, environmentPreset: environmentPreset, parent: parent })=>{
|
|
28579
28718
|
const { fetchSupportedLanguages: fetchSupportedLanguages, setLanguageData: setLanguageData } = (0, $0db969f5e79ce01b$export$6650dace022cfacc)((state)=>state.actions);
|
|
28580
28719
|
const setTheme = (0, $6acc5d637072b42e$export$d13b2577cb75f2ad)((state)=>state.actions.setTheme);
|
|
28581
28720
|
const baseAddress = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.baseAddress);
|
|
28582
28721
|
const [fetchedConfig, setFetchedConfig] = (0, $dWhh5$react.useState)();
|
|
28583
28722
|
const [mainConfig, setMainConfig] = (0, $dWhh5$react.useState)(undefined);
|
|
28584
28723
|
const { setGDPRDisplay: setGDPRDisplay, setGDPRUserConsent: setGDPRUserConsent, setGDPRWindowData: setGDPRWindowData } = (0, $2793f2455cec0982$export$77e4cc5334565f28)((state)=>state.actions);
|
|
28585
|
-
const { setBaseAddress: setBaseAddress, setDisableHistory: setDisableHistory, setEnvironmentPreset: setEnvironmentPreset } = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.actions);
|
|
28724
|
+
const { setBaseAddress: setBaseAddress, setDisableHistory: setDisableHistory, setEnvironmentPreset: setEnvironmentPreset, setCustomScripts: setCustomScripts, setCustomCSS: setCustomCSS } = (0, $1d4f8108de9ab73a$export$bd22554f31e5f96f)((state)=>state.actions);
|
|
28586
28725
|
const [isConfigUpdated, setIsConfigUpdated] = (0, $dWhh5$react.useState)(false);
|
|
28587
28726
|
/**
|
|
28588
28727
|
* Check if emergency data can be retrieved to remove the button in menu if no data available
|
|
@@ -28659,7 +28798,7 @@ const $ce7633a58d99dcca$var$RetorikConfigHandler = ({ config: config, viewsConfi
|
|
|
28659
28798
|
]);
|
|
28660
28799
|
(0, $dWhh5$react.useEffect)(()=>{
|
|
28661
28800
|
if (fetchedConfig) {
|
|
28662
|
-
const { skipLoader: _skipLoader, defaultMode: _defaultMode, config: _config, viewsConfig: _viewsConfig, chatbotData: _chatbotData, chatbotDataWidget: _chatbotDataWidget, agentData: _agentData, addressData: _addressData, ponyfillFactoryCredentials: _ponyfillFactoryCredentials, customVoice: _customVoice, colors: _colors, defaultCulture: defaultCulture, supportedCultures: supportedCultures, disableHistory: disableHistory } = fetchedConfig;
|
|
28801
|
+
const { skipLoader: _skipLoader, defaultMode: _defaultMode, config: _config, viewsConfig: _viewsConfig, chatbotData: _chatbotData, chatbotDataWidget: _chatbotDataWidget, agentData: _agentData, addressData: _addressData, ponyfillFactoryCredentials: _ponyfillFactoryCredentials, customVoice: _customVoice, colors: _colors, defaultCulture: defaultCulture, supportedCultures: supportedCultures, disableHistory: disableHistory, customScripts: _customScripts, customCSS: _customCSS } = fetchedConfig;
|
|
28663
28802
|
if (defaultCulture && supportedCultures) {
|
|
28664
28803
|
const { processedDefaultLanguage: processedDefaultLanguage, processedSupported: processedSupported } = (0, $49ef6b13684edff9$export$92cb25ec092104e6)(defaultCulture, supportedCultures, true);
|
|
28665
28804
|
processedDefaultLanguage && processedSupported && setLanguageData(processedDefaultLanguage, processedSupported);
|
|
@@ -28716,6 +28855,8 @@ const $ce7633a58d99dcca$var$RetorikConfigHandler = ({ config: config, viewsConfi
|
|
|
28716
28855
|
mergedMainConfig.config.menu = (config === null || config === void 0 ? void 0 : config.menu) || (menuConfig === null || menuConfig === void 0 ? void 0 : menuConfig.menu) || (_config === null || _config === void 0 ? void 0 : _config.menu);
|
|
28717
28856
|
}
|
|
28718
28857
|
setDisableHistory(!!disableHistory);
|
|
28858
|
+
setCustomScripts(customScripts || _customScripts || []);
|
|
28859
|
+
setCustomCSS(customCSS || _customCSS || []);
|
|
28719
28860
|
checkEmergencyAndSetConfig(mergedMainConfig);
|
|
28720
28861
|
}
|
|
28721
28862
|
}, [
|
|
@@ -28730,6 +28871,7 @@ const $ce7633a58d99dcca$var$RetorikConfigHandler = ({ config: config, viewsConfi
|
|
|
28730
28871
|
skipLoader,
|
|
28731
28872
|
defaultMode,
|
|
28732
28873
|
GDPR,
|
|
28874
|
+
customScripts,
|
|
28733
28875
|
addressData,
|
|
28734
28876
|
externalEventHandler,
|
|
28735
28877
|
externalComponents,
|
|
@@ -29127,23 +29269,26 @@ window.Retorik = {
|
|
|
29127
29269
|
...window.Retorik,
|
|
29128
29270
|
renderAgent: $3f93eb6d5bf69cb7$export$b69254d879536cde,
|
|
29129
29271
|
renderWidget: $3f93eb6d5bf69cb7$var$renderWidget,
|
|
29130
|
-
|
|
29131
|
-
|
|
29132
|
-
setLocale: $33ea75f69090702b$export$c8aadf3621e41efb,
|
|
29133
|
-
sendMessage: $33ea75f69090702b$export$465cb47180de50f0,
|
|
29134
|
-
sendEvent: $33ea75f69090702b$export$7329bcdc3edcd90e,
|
|
29135
|
-
sendActivity: $33ea75f69090702b$export$d4c8c6daac289378,
|
|
29136
|
-
displaySubtitles: (0, $33ea75f69090702b$export$708f3eb1d5828832),
|
|
29137
|
-
toggleSubtitles: $33ea75f69090702b$export$3fa7f3a227fc16cb,
|
|
29272
|
+
addExternalActivityHandler: $33ea75f69090702b$export$28afdcc603412603,
|
|
29273
|
+
cancelCurrentUtterance: $33ea75f69090702b$export$f3aaae0c8197c567,
|
|
29138
29274
|
changeAgent: (0, $33ea75f69090702b$export$a72b80ff363563a1),
|
|
29139
|
-
|
|
29140
|
-
|
|
29275
|
+
displaySubtitles: (0, $33ea75f69090702b$export$708f3eb1d5828832),
|
|
29276
|
+
hideAgent: $33ea75f69090702b$export$e73dbd7ba351e3e,
|
|
29277
|
+
pauseConversation: $33ea75f69090702b$export$7431bc5a5c7c9317,
|
|
29141
29278
|
playExternalSynthesis: $33ea75f69090702b$export$99dcb7840cd85481,
|
|
29279
|
+
resumeConversation: $33ea75f69090702b$export$cceb853b29df842,
|
|
29280
|
+
sendActivity: $33ea75f69090702b$export$d4c8c6daac289378,
|
|
29281
|
+
sendEvent: $33ea75f69090702b$export$7329bcdc3edcd90e,
|
|
29282
|
+
sendMessage: $33ea75f69090702b$export$465cb47180de50f0,
|
|
29142
29283
|
sendMessageToChatbot: $33ea75f69090702b$export$255ebd0ca6bfba88,
|
|
29284
|
+
setExternalActivityHandlers: $33ea75f69090702b$export$2c7ae0f34657d605,
|
|
29285
|
+
setLocale: $33ea75f69090702b$export$c8aadf3621e41efb,
|
|
29286
|
+
setMuted: $33ea75f69090702b$export$a1680ba91cc9be33,
|
|
29143
29287
|
setVisibility: $33ea75f69090702b$export$2c64211ecf98e50d,
|
|
29144
|
-
|
|
29145
|
-
|
|
29146
|
-
|
|
29288
|
+
showAgent: $33ea75f69090702b$export$ae67eb518a2aae74,
|
|
29289
|
+
toggleMicrophone: $33ea75f69090702b$export$39fcdeae376856e7,
|
|
29290
|
+
toggleSubtitles: $33ea75f69090702b$export$3fa7f3a227fc16cb,
|
|
29291
|
+
toggleVisibility: $33ea75f69090702b$export$7396a2167c7f755e
|
|
29147
29292
|
};
|
|
29148
29293
|
|
|
29149
29294
|
|