academe-kit 0.11.2 → 0.11.4
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.cjs +449 -84
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +69 -5
- package/dist/index.esm.js +451 -88
- package/dist/index.esm.js.map +1 -1
- package/dist/types/components/AcademeLoading/AcademeLoading.d.ts +51 -0
- package/dist/types/components/AcademeLoading/LogoA.d.ts +11 -0
- package/dist/types/components/AcademeLoading/index.d.ts +4 -0
- package/dist/types/components/AcademeLoading/logoAsset.d.ts +1 -0
- package/dist/types/components/ProtectedApp/index.d.ts +3 -3
- package/dist/types/index.d.ts +2 -0
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -6839,6 +6839,451 @@ const SecurityProvider = ({ apiBaseUrl = "https://stg-api.academe.com.br", skipA
|
|
|
6839
6839
|
};
|
|
6840
6840
|
const useAcademeAuth = () => React2.useContext(SecurityContext);
|
|
6841
6841
|
|
|
6842
|
+
// AUTO-GERADO de src/assets/LOGO A SVG 2.svg (logo herói da Academe).
|
|
6843
|
+
// O SVG inteiro vira um data URI, carregado via <img> no LogoA. Funciona em
|
|
6844
|
+
// vite (storybook) e rollup (build) sem loader de asset, e isola os ids
|
|
6845
|
+
// internos do SVG por instância (cada <img> é um documento próprio).
|
|
6846
|
+
// Para regenerar: `base64 < "src/assets/LOGO A SVG 2.svg"` e colar abaixo.
|
|
6847
|
+
const LOGO_A_DATA_URI = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iQ2FtYWRhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMTMyMCAxMzIwLjQyIj4KICA8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMzAuNS4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogMi4xLjQgQnVpbGQgMykgIC0tPgogIDxkZWZzPgogICAgPHN0eWxlPgogICAgICAuc3QwIHsKICAgICAgICBmaWxsOiBub25lOwogICAgICAgIHN0cm9rZTogIzg5MmNkZDsKICAgICAgfQoKICAgICAgLnN0MSB7CiAgICAgICAgZmlsbDogIzg5MmNkZDsKICAgICAgfQoKICAgICAgLnN0MiB7CiAgICAgICAgZmlsbDogI2ZmZjsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L2RlZnM+CiAgPHJlY3QgY2xhc3M9InN0MSIgd2lkdGg9IjEzMjAiIGhlaWdodD0iMTMyMCIgcng9IjEwMCIgcnk9IjEwMCIvPgogIDxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik03NDcuMDgsMzQzLjQybC00NDIuNjIsOTc2LjVoLTE3MC4zM0w2NjkuMzQsMTcwLjI4bDc3Ljc0LDE3My4xNFoiLz4KICA8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNzQ3LjA4LDM0My40MmwtNDQyLjYyLDk3Ni41aC0xNzAuMzNMNjY5LjM0LDE3MC4yOGw3Ny43NCwxNzMuMTRaIi8+CiAgPHBhdGggY2xhc3M9InN0MiIgZD0iTTExODUuNywxMzE5LjkyaC0xNzguNjNsLTExMy42LTI2Mi42NWgtMzg3LjA5bDY5LjU4LTE1My40N2gyNTEuMDJsLTEyMy4xLTI4Mi4xOSw4NC40My0xODYuMjUsMzk3LjQsODg0LjU3WiIvPgogIDxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMTg1LjcsMTMxOS45MmgtMTc4LjYzbC0xMTMuNi0yNjIuNjVoLTM4Ny4wOWw2OS41OC0xNTMuNDdoMjUxLjAybC0xMjMuMS0yODIuMTksODQuNDMtMTg2LjI1LDM5Ny40LDg4NC41N1oiLz4KPC9zdmc+";
|
|
6848
|
+
|
|
6849
|
+
// Dimensões do viewBox do asset (src/assets/LOGO A SVG 2.svg) — usadas só para
|
|
6850
|
+
// derivar a largura a partir da altura, preservando a proporção do logo.
|
|
6851
|
+
const ASSET_W = 1320;
|
|
6852
|
+
const ASSET_H = 1320.42;
|
|
6853
|
+
/**
|
|
6854
|
+
* Logo "A" da Academe (§8) — renderiza o asset oficial
|
|
6855
|
+
* (`src/assets/LOGO A SVG 2.svg`) via data URI. Puramente estático; quem anima é
|
|
6856
|
+
* o container (scale/opacity) no AcademeLoading.
|
|
6857
|
+
*/
|
|
6858
|
+
function LogoA({ size }) {
|
|
6859
|
+
const H = size;
|
|
6860
|
+
const W = size * (ASSET_W / ASSET_H);
|
|
6861
|
+
return (jsxRuntime.jsx("img", { src: LOGO_A_DATA_URI, width: W, height: H, alt: "Academe", draggable: false, style: { display: "block", userSelect: "none", pointerEvents: "none" } }));
|
|
6862
|
+
}
|
|
6863
|
+
|
|
6864
|
+
const TOTAL = 2333;
|
|
6865
|
+
/**
|
|
6866
|
+
* Ponto de `t` onde a animação "segura" no modo controlado. Usamos 0.56 (fim da
|
|
6867
|
+
* fase de assentamento) em vez do meio do hold: nesse ponto o círculo roxo já
|
|
6868
|
+
* está alinhado ao branco (anel simétrico, tudo centralizado) — sem a meia-lua à
|
|
6869
|
+
* esquerda, que num loading estático pareceria "descentralizado". O exit
|
|
6870
|
+
* (0.56→1) passa a ser exatamente o colapso. A meia-lua transitória continua
|
|
6871
|
+
* aparecendo na vinheta completa (modo não-controlado), fiel ao spec.
|
|
6872
|
+
*/
|
|
6873
|
+
const HOLD_T = 0.56;
|
|
6874
|
+
const DEFAULT_COLORS = {
|
|
6875
|
+
background: "#F5F5F5",
|
|
6876
|
+
purple: "#7C28D4",
|
|
6877
|
+
white: "#FCFCFC",
|
|
6878
|
+
};
|
|
6879
|
+
// ---- helpers -------------------------------------------------------------
|
|
6880
|
+
const clamp01 = (x) => (x < 0 ? 0 : x > 1 ? 1 : x);
|
|
6881
|
+
/** progresso local [0,1] dentro do trecho [a,b] de `t`. */
|
|
6882
|
+
const seg = (v, a, b) => clamp01((v - a) / (b - a));
|
|
6883
|
+
const mix = (a, b, p) => a + (b - a) * p;
|
|
6884
|
+
/**
|
|
6885
|
+
* cubic-bézier easing self-contained (mesma matemática do CSS `cubic-bezier`):
|
|
6886
|
+
* resolve t para o x dado (Newton-Raphson + bisseção) e devolve y. Evita depender
|
|
6887
|
+
* de exports do framer-motion e permite overshoot (y1>1) para o "pop" do logo.
|
|
6888
|
+
*/
|
|
6889
|
+
function cubicBezier(x1, y1, x2, y2) {
|
|
6890
|
+
const cx = 3 * x1;
|
|
6891
|
+
const bx = 3 * (x2 - x1) - cx;
|
|
6892
|
+
const ax = 1 - cx - bx;
|
|
6893
|
+
const cy = 3 * y1;
|
|
6894
|
+
const by = 3 * (y2 - y1) - cy;
|
|
6895
|
+
const ay = 1 - cy - by;
|
|
6896
|
+
const sampleX = (t) => ((ax * t + bx) * t + cx) * t;
|
|
6897
|
+
const sampleY = (t) => ((ay * t + by) * t + cy) * t;
|
|
6898
|
+
const sampleDX = (t) => (3 * ax * t + 2 * bx) * t + cx;
|
|
6899
|
+
const solveX = (x) => {
|
|
6900
|
+
let t = x;
|
|
6901
|
+
for (let i = 0; i < 8; i++) {
|
|
6902
|
+
const xe = sampleX(t) - x;
|
|
6903
|
+
if (Math.abs(xe) < 1e-5)
|
|
6904
|
+
return t;
|
|
6905
|
+
const d = sampleDX(t);
|
|
6906
|
+
if (Math.abs(d) < 1e-6)
|
|
6907
|
+
break;
|
|
6908
|
+
t -= xe / d;
|
|
6909
|
+
}
|
|
6910
|
+
let lo = 0;
|
|
6911
|
+
let hi = 1;
|
|
6912
|
+
t = x;
|
|
6913
|
+
for (let i = 0; i < 20; i++) {
|
|
6914
|
+
const xe = sampleX(t);
|
|
6915
|
+
if (Math.abs(xe - x) < 1e-5)
|
|
6916
|
+
break;
|
|
6917
|
+
if (x > xe)
|
|
6918
|
+
lo = t;
|
|
6919
|
+
else
|
|
6920
|
+
hi = t;
|
|
6921
|
+
t = (lo + hi) / 2;
|
|
6922
|
+
}
|
|
6923
|
+
return t;
|
|
6924
|
+
};
|
|
6925
|
+
return (x) => {
|
|
6926
|
+
if (x <= 0)
|
|
6927
|
+
return 0;
|
|
6928
|
+
if (x >= 1)
|
|
6929
|
+
return 1;
|
|
6930
|
+
return sampleY(solveX(x));
|
|
6931
|
+
};
|
|
6932
|
+
}
|
|
6933
|
+
// easings por fase (§6)
|
|
6934
|
+
const E_ENTER = cubicBezier(0.16, 1, 0.3, 1); // entrada (ease-out rápido)
|
|
6935
|
+
const E_CONV = cubicBezier(0.22, 1, 0.36, 1); // convergência (ease-out)
|
|
6936
|
+
const E_SETTLE = cubicBezier(0.33, 1, 0.68, 1); // assentar (ease-out suave)
|
|
6937
|
+
const E_COLLAPSE = cubicBezier(0.65, 0, 0.35, 1); // colapso (ease-in-out)
|
|
6938
|
+
const E_SHRINK = cubicBezier(0.5, 0, 0.9, 0.2); // encolher (ease-in)
|
|
6939
|
+
const E_POP = cubicBezier(0.34, 1.2, 0.64, 1); // pop leve do logo (overshoot)
|
|
6940
|
+
// ---- component -----------------------------------------------------------
|
|
6941
|
+
function AcademeLoading({ size = 320, duration = TOTAL, loading, autoPlay = true, pulseWhileLoading = true, onFinish, colors, className, style, }) {
|
|
6942
|
+
const S = size;
|
|
6943
|
+
const c = { ...DEFAULT_COLORS, ...colors };
|
|
6944
|
+
const isControlled = loading !== undefined;
|
|
6945
|
+
// Os círculos NÃO são recortados por nenhuma "caixa" interna. O palco antigo
|
|
6946
|
+
// (size×size com overflow:hidden) cortava os círculos na entrada e no herói.
|
|
6947
|
+
// Agora o único container é o backdrop (que o consumidor estica p/ a tela toda)
|
|
6948
|
+
// e os círculos nascem FORA da borda real da tela, deslizando INTEIROS até o
|
|
6949
|
+
// centro. Para isso medimos a largura real do backdrop e derivamos a distância
|
|
6950
|
+
// de entrada `START` — APENAS o ponto de partida é responsivo; o tamanho dos
|
|
6951
|
+
// círculos e toda a convergência continuam fixos em frações de S = size.
|
|
6952
|
+
const containerRef = React2.useRef(null);
|
|
6953
|
+
// Semente: largura da janela (≈ 100vw do backdrop no app). O `useLayoutEffect`
|
|
6954
|
+
// refina para a largura REAL do elemento antes do 1º paint; a semente só fecha a
|
|
6955
|
+
// janela teórica de um paint anterior à medição (React concurrent/futuro).
|
|
6956
|
+
const [vw, setVw] = React2.useState(() => typeof window !== "undefined" ? window.innerWidth : size);
|
|
6957
|
+
React2.useLayoutEffect(() => {
|
|
6958
|
+
const el = containerRef.current;
|
|
6959
|
+
if (!el)
|
|
6960
|
+
return;
|
|
6961
|
+
const measure = () => {
|
|
6962
|
+
const w = el.getBoundingClientRect().width || size;
|
|
6963
|
+
setVw((prev) => (prev === w ? prev : w));
|
|
6964
|
+
};
|
|
6965
|
+
measure();
|
|
6966
|
+
const ro = new ResizeObserver(measure);
|
|
6967
|
+
ro.observe(el);
|
|
6968
|
+
return () => ro.disconnect();
|
|
6969
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
6970
|
+
}, []);
|
|
6971
|
+
// Distância de entrada: meia-largura do backdrop + raio do círculo (0.49·S) +
|
|
6972
|
+
// folga → o círculo nasce 100% fora da tela (sem corte e sem ficar parado e
|
|
6973
|
+
// visível perto do centro). Em tela cheia usa a largura real; nas stories (sem
|
|
6974
|
+
// style) o backdrop é size×size e START ≈ 1.05·S, como no design original.
|
|
6975
|
+
const START = vw / 2 + 0.55 * S;
|
|
6976
|
+
const t = framerMotion.useMotionValue(0);
|
|
6977
|
+
const breath = framerMotion.useMotionValue(1);
|
|
6978
|
+
// valores mutáveis lidos imperativamente (sem stale closures nos effects)
|
|
6979
|
+
const durationRef = React2.useRef(duration);
|
|
6980
|
+
durationRef.current = duration;
|
|
6981
|
+
const pulseRef = React2.useRef(pulseWhileLoading);
|
|
6982
|
+
pulseRef.current = pulseWhileLoading;
|
|
6983
|
+
const loadingRef = React2.useRef(loading);
|
|
6984
|
+
loadingRef.current = loading;
|
|
6985
|
+
const onFinishRef = React2.useRef(onFinish);
|
|
6986
|
+
React2.useEffect(() => {
|
|
6987
|
+
onFinishRef.current = onFinish;
|
|
6988
|
+
}, [onFinish]);
|
|
6989
|
+
const phaseRef = React2.useRef("idle");
|
|
6990
|
+
const tAnim = React2.useRef(null);
|
|
6991
|
+
const breathAnim = React2.useRef(null);
|
|
6992
|
+
function startBreathe() {
|
|
6993
|
+
if (!pulseRef.current)
|
|
6994
|
+
return;
|
|
6995
|
+
breathAnim.current?.stop();
|
|
6996
|
+
breathAnim.current = framerMotion.animate(breath, [1, 1.03, 1], {
|
|
6997
|
+
duration: 1.6,
|
|
6998
|
+
ease: "easeInOut",
|
|
6999
|
+
repeat: Infinity,
|
|
7000
|
+
});
|
|
7001
|
+
}
|
|
7002
|
+
function runExit() {
|
|
7003
|
+
if (phaseRef.current === "exiting" || phaseRef.current === "done")
|
|
7004
|
+
return;
|
|
7005
|
+
phaseRef.current = "exiting";
|
|
7006
|
+
breathAnim.current?.stop();
|
|
7007
|
+
framerMotion.animate(breath, 1, { duration: 0.25, ease: "easeOut" });
|
|
7008
|
+
tAnim.current?.stop();
|
|
7009
|
+
const sec = durationRef.current / 1000;
|
|
7010
|
+
tAnim.current = framerMotion.animate(t, 1, {
|
|
7011
|
+
duration: (1 - HOLD_T) * sec,
|
|
7012
|
+
ease: "linear",
|
|
7013
|
+
onComplete: () => {
|
|
7014
|
+
phaseRef.current = "done";
|
|
7015
|
+
onFinishRef.current?.();
|
|
7016
|
+
},
|
|
7017
|
+
});
|
|
7018
|
+
}
|
|
7019
|
+
// ENTRADA (mount). Reseta e reinicia sempre — seguro ao duplo-mount do StrictMode.
|
|
7020
|
+
React2.useEffect(() => {
|
|
7021
|
+
if (!autoPlay)
|
|
7022
|
+
return;
|
|
7023
|
+
t.set(0);
|
|
7024
|
+
breath.set(1);
|
|
7025
|
+
phaseRef.current = "idle";
|
|
7026
|
+
const sec = durationRef.current / 1000;
|
|
7027
|
+
const target = isControlled ? HOLD_T : 1;
|
|
7028
|
+
tAnim.current = framerMotion.animate(t, target, {
|
|
7029
|
+
duration: target * sec,
|
|
7030
|
+
ease: "linear",
|
|
7031
|
+
onComplete: () => {
|
|
7032
|
+
if (!isControlled) {
|
|
7033
|
+
phaseRef.current = "done";
|
|
7034
|
+
onFinishRef.current?.();
|
|
7035
|
+
return;
|
|
7036
|
+
}
|
|
7037
|
+
phaseRef.current = "hold";
|
|
7038
|
+
if (loadingRef.current === false)
|
|
7039
|
+
runExit();
|
|
7040
|
+
else
|
|
7041
|
+
startBreathe();
|
|
7042
|
+
},
|
|
7043
|
+
});
|
|
7044
|
+
return () => {
|
|
7045
|
+
tAnim.current?.stop();
|
|
7046
|
+
breathAnim.current?.stop();
|
|
7047
|
+
};
|
|
7048
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
7049
|
+
}, [autoPlay, isControlled]);
|
|
7050
|
+
// SAÍDA / respiração reagindo a `loading` (só após chegar ao hold).
|
|
7051
|
+
React2.useEffect(() => {
|
|
7052
|
+
if (!isControlled || phaseRef.current !== "hold")
|
|
7053
|
+
return;
|
|
7054
|
+
if (loading === false)
|
|
7055
|
+
runExit();
|
|
7056
|
+
else
|
|
7057
|
+
startBreathe();
|
|
7058
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
7059
|
+
}, [loading]);
|
|
7060
|
+
// ---- propriedades derivadas de `t` (§7) ----
|
|
7061
|
+
// CÍRCULO ROXO (atrás) — nasce FORA da tela (−START) e desliza INTEIRO até o
|
|
7062
|
+
// centro; a convergência (−0.3S→0) e a meia-lua final continuam fixas em S.
|
|
7063
|
+
const purpleX = framerMotion.useTransform(t, (v) => {
|
|
7064
|
+
if (v <= 0.13)
|
|
7065
|
+
return -START;
|
|
7066
|
+
if (v <= 0.22)
|
|
7067
|
+
return mix(-START, -0.3 * S, E_ENTER(seg(v, 0.13, 0.22)));
|
|
7068
|
+
if (v <= 0.34)
|
|
7069
|
+
return mix(-0.3 * S, -0.18 * S, E_CONV(seg(v, 0.22, 0.34)));
|
|
7070
|
+
if (v <= 0.48)
|
|
7071
|
+
return mix(-0.18 * S, -0.015 * S, E_SETTLE(seg(v, 0.34, 0.48)));
|
|
7072
|
+
if (v <= 0.56)
|
|
7073
|
+
return mix(-0.015 * S, 0, E_COLLAPSE(seg(v, 0.48, 0.56)));
|
|
7074
|
+
return 0;
|
|
7075
|
+
});
|
|
7076
|
+
const purpleScale = framerMotion.useTransform(t, (v) => {
|
|
7077
|
+
if (v <= 0.56)
|
|
7078
|
+
return 1;
|
|
7079
|
+
if (v <= 0.77)
|
|
7080
|
+
return Math.max(0, mix(1, 0, E_SHRINK(seg(v, 0.56, 0.77))));
|
|
7081
|
+
return 0;
|
|
7082
|
+
});
|
|
7083
|
+
const purpleOpacity = framerMotion.useTransform(t, (v) => {
|
|
7084
|
+
if (v <= 0.75)
|
|
7085
|
+
return 1;
|
|
7086
|
+
if (v <= 0.77)
|
|
7087
|
+
return mix(1, 0, seg(v, 0.75, 0.77));
|
|
7088
|
+
return 0;
|
|
7089
|
+
});
|
|
7090
|
+
// CÍRCULO BRANCO (na frente) — nasce de +START (fora da tela) e desliza inteiro até o centro.
|
|
7091
|
+
const whiteX = framerMotion.useTransform(t, (v) => {
|
|
7092
|
+
if (v <= 0.13)
|
|
7093
|
+
return START;
|
|
7094
|
+
if (v <= 0.22)
|
|
7095
|
+
return mix(START, 0.3 * S, E_ENTER(seg(v, 0.13, 0.22)));
|
|
7096
|
+
if (v <= 0.34)
|
|
7097
|
+
return mix(0.3 * S, 0.02 * S, E_CONV(seg(v, 0.22, 0.34)));
|
|
7098
|
+
if (v <= 0.4)
|
|
7099
|
+
return mix(0.02 * S, 0, E_SETTLE(seg(v, 0.34, 0.4)));
|
|
7100
|
+
return 0;
|
|
7101
|
+
});
|
|
7102
|
+
const whiteScale = framerMotion.useTransform(t, (v) => {
|
|
7103
|
+
if (v <= 0.56)
|
|
7104
|
+
return 1;
|
|
7105
|
+
if (v <= 0.72)
|
|
7106
|
+
return Math.max(0, mix(1, 0, E_SHRINK(seg(v, 0.56, 0.72))));
|
|
7107
|
+
return 0;
|
|
7108
|
+
});
|
|
7109
|
+
// LOGO "A" (centralizado)
|
|
7110
|
+
const logoOpacity = framerMotion.useTransform(t, (v) => {
|
|
7111
|
+
if (v <= 0.22)
|
|
7112
|
+
return 0;
|
|
7113
|
+
if (v <= 0.34)
|
|
7114
|
+
return mix(0, 1, E_CONV(seg(v, 0.22, 0.34)));
|
|
7115
|
+
if (v <= 0.66)
|
|
7116
|
+
return 1;
|
|
7117
|
+
if (v <= 0.72)
|
|
7118
|
+
return mix(1, 0, E_SHRINK(seg(v, 0.66, 0.72)));
|
|
7119
|
+
return 0;
|
|
7120
|
+
});
|
|
7121
|
+
const logoScale = framerMotion.useTransform(t, (v) => {
|
|
7122
|
+
if (v <= 0.22)
|
|
7123
|
+
return 0.6;
|
|
7124
|
+
if (v <= 0.4)
|
|
7125
|
+
return mix(0.6, 1, E_POP(seg(v, 0.22, 0.4)));
|
|
7126
|
+
if (v <= 0.56)
|
|
7127
|
+
return 1;
|
|
7128
|
+
if (v <= 0.72)
|
|
7129
|
+
return Math.max(0, mix(1, 0, E_SHRINK(seg(v, 0.56, 0.72))));
|
|
7130
|
+
return 0;
|
|
7131
|
+
});
|
|
7132
|
+
const logoY = framerMotion.useTransform(t, (v) => {
|
|
7133
|
+
if (v <= 0.22)
|
|
7134
|
+
return -0.02 * S;
|
|
7135
|
+
if (v <= 0.4)
|
|
7136
|
+
return mix(-0.02 * S, 0, E_CONV(seg(v, 0.22, 0.4)));
|
|
7137
|
+
return 0;
|
|
7138
|
+
});
|
|
7139
|
+
const LOGO_H = 0.46 * S;
|
|
7140
|
+
const LOGO_W = LOGO_H * (354 / 516);
|
|
7141
|
+
// Centralização determinística: cada camada é absoluta e centralizada por
|
|
7142
|
+
// `inset:0 + margin:auto` sobre um width/height fixo — independe do tamanho
|
|
7143
|
+
// relativo dos elementos (o grid implícito anterior ancorava a célula no canto,
|
|
7144
|
+
// descentralizando tudo). O transform do framer (x, scale) é aplicado por cima
|
|
7145
|
+
// e não afeta a centralização do layout.
|
|
7146
|
+
const layer = {
|
|
7147
|
+
position: "absolute",
|
|
7148
|
+
inset: 0,
|
|
7149
|
+
margin: "auto",
|
|
7150
|
+
};
|
|
7151
|
+
return (
|
|
7152
|
+
// Container ÚNICO = backdrop. O consumidor o estica p/ a tela toda via `style`
|
|
7153
|
+
// e ele pinta o fundo. NÃO há mais "palco" interno recortando a vinheta — os
|
|
7154
|
+
// círculos nascem fora da borda real (translateX ±START) e o `overflow:hidden`
|
|
7155
|
+
// apenas evita scroll dos círculos enquanto ainda estão fora da tela. Os
|
|
7156
|
+
// círculos deslizam INTEIROS (sem corte) até o centro. `width/height: size` são
|
|
7157
|
+
// defaults sobrescritos pelo `...style` (tela cheia no app; size×size nas stories).
|
|
7158
|
+
jsxRuntime.jsx("div", { ref: containerRef, className: className, style: {
|
|
7159
|
+
width: size,
|
|
7160
|
+
height: size,
|
|
7161
|
+
background: c.background,
|
|
7162
|
+
overflow: "hidden",
|
|
7163
|
+
position: "relative",
|
|
7164
|
+
...style,
|
|
7165
|
+
}, role: "status", "aria-label": "Carregando", "aria-busy": isControlled ? loading : true, children: jsxRuntime.jsxs(framerMotion.motion.div, { style: {
|
|
7166
|
+
position: "absolute",
|
|
7167
|
+
inset: 0,
|
|
7168
|
+
scale: breath,
|
|
7169
|
+
willChange: "transform",
|
|
7170
|
+
}, children: [jsxRuntime.jsx(framerMotion.motion.div, { style: {
|
|
7171
|
+
...layer,
|
|
7172
|
+
width: 0.98 * S,
|
|
7173
|
+
height: 0.98 * S,
|
|
7174
|
+
borderRadius: "50%",
|
|
7175
|
+
backgroundColor: c.purple,
|
|
7176
|
+
x: purpleX,
|
|
7177
|
+
scale: purpleScale,
|
|
7178
|
+
opacity: purpleOpacity,
|
|
7179
|
+
willChange: "transform, opacity",
|
|
7180
|
+
} }), jsxRuntime.jsx(framerMotion.motion.div, { style: {
|
|
7181
|
+
...layer,
|
|
7182
|
+
width: 0.92 * S,
|
|
7183
|
+
height: 0.92 * S,
|
|
7184
|
+
borderRadius: "50%",
|
|
7185
|
+
backgroundColor: c.white,
|
|
7186
|
+
x: whiteX,
|
|
7187
|
+
scale: whiteScale,
|
|
7188
|
+
willChange: "transform",
|
|
7189
|
+
} }), jsxRuntime.jsx(framerMotion.motion.div, { style: {
|
|
7190
|
+
...layer,
|
|
7191
|
+
width: LOGO_W,
|
|
7192
|
+
height: LOGO_H,
|
|
7193
|
+
y: logoY,
|
|
7194
|
+
scale: logoScale,
|
|
7195
|
+
opacity: logoOpacity,
|
|
7196
|
+
willChange: "transform, opacity",
|
|
7197
|
+
}, children: jsxRuntime.jsx(LogoA, { size: LOGO_H }) })] }) }));
|
|
7198
|
+
}
|
|
7199
|
+
|
|
7200
|
+
const themes = {
|
|
7201
|
+
dark: {
|
|
7202
|
+
backgroundColor: "bg-[#111111]",
|
|
7203
|
+
textColors: {
|
|
7204
|
+
textPrimary: "text-white",
|
|
7205
|
+
textSecondary: "text-gray-300",
|
|
7206
|
+
iconColor: "text-[#892CDD]",
|
|
7207
|
+
},
|
|
7208
|
+
},
|
|
7209
|
+
light: {
|
|
7210
|
+
backgroundColor: "bg-[#ffffff]",
|
|
7211
|
+
textColors: {
|
|
7212
|
+
textPrimary: "text-gray-900",
|
|
7213
|
+
textSecondary: "text-gray-600",
|
|
7214
|
+
iconColor: "text-[#892CDD]",
|
|
7215
|
+
},
|
|
7216
|
+
},
|
|
7217
|
+
};
|
|
7218
|
+
const ProtectedAppContext = React2.createContext(null);
|
|
7219
|
+
const useProtectedAppColors = () => {
|
|
7220
|
+
const context = React2.useContext(ProtectedAppContext);
|
|
7221
|
+
return context || themes.dark.textColors;
|
|
7222
|
+
};
|
|
7223
|
+
const ProtectedApp = ({ children, requiredClientRoles, requiredRealmRoles, theme = "dark", pending = false, }) => {
|
|
7224
|
+
const { isInitialized, goToLogin, hasClientRole, hasRealmRole, isAuthenticated, signOut, } = useAcademeAuth();
|
|
7225
|
+
const themeConfig = themes[theme];
|
|
7226
|
+
const { backgroundColor, textColors } = themeConfig;
|
|
7227
|
+
// Está carregando algo do boot: Keycloak inicializando OU dados pós-auth.
|
|
7228
|
+
const loaderActive = !isInitialized || pending;
|
|
7229
|
+
// Mantém a vinheta montada durante a SAÍDA, até o exit concluir (`onFinish`).
|
|
7230
|
+
const [exitDone, setExitDone] = React2.useState(false);
|
|
7231
|
+
// Se o boot recomeçar (re-login / novo fetch), rearma a saída.
|
|
7232
|
+
React2.useEffect(() => {
|
|
7233
|
+
if (loaderActive)
|
|
7234
|
+
setExitDone(false);
|
|
7235
|
+
}, [loaderActive]);
|
|
7236
|
+
const handleContactSupport = () => {
|
|
7237
|
+
window.open("https://wa.me/558540428133", "_blank");
|
|
7238
|
+
};
|
|
7239
|
+
const renderDenied = () => (jsxRuntime.jsxs("div", { className: `flex flex-col w-screen h-screen items-center justify-center ${backgroundColor}`, children: [jsxRuntime.jsx(CircleAlert, { className: `size-10 ${textColors.iconColor}` }), jsxRuntime.jsx("h1", { className: `text-2xl font-bold mt-4 text-center ${textColors.textPrimary}`, children: "Oops, voc\u00EA n\u00E3o tem permiss\u00E3o para acessar aqui." }), jsxRuntime.jsx("span", { className: `text-center ${textColors.textSecondary}`, children: "Se voc\u00EA acredita que isso \u00E9 um erro, entre em contato com o suporte." }), jsxRuntime.jsxs("div", { className: "flex gap-3 mt-4", children: [jsxRuntime.jsx(Button, { variant: "primary", size: "md", onClick: handleContactSupport, children: "Falar com o suporte" }), jsxRuntime.jsx(Button, { variant: "outline", size: "md", onClick: signOut, children: "Sair da conta" })] })] }));
|
|
7240
|
+
// Checagens de auth/role só fazem sentido depois que o Keycloak inicializa.
|
|
7241
|
+
if (isInitialized) {
|
|
7242
|
+
if (!isAuthenticated()) {
|
|
7243
|
+
goToLogin();
|
|
7244
|
+
return jsxRuntime.jsx(jsxRuntime.Fragment, {});
|
|
7245
|
+
}
|
|
7246
|
+
if (requiredClientRoles &&
|
|
7247
|
+
!requiredClientRoles.roles.some((role) => hasClientRole(role, requiredClientRoles.clientId))) {
|
|
7248
|
+
return renderDenied();
|
|
7249
|
+
}
|
|
7250
|
+
if (requiredRealmRoles &&
|
|
7251
|
+
!requiredRealmRoles?.some((role) => hasRealmRole(role))) {
|
|
7252
|
+
return renderDenied();
|
|
7253
|
+
}
|
|
7254
|
+
}
|
|
7255
|
+
// Vinheta de marca (AcademeLoading): segura no estado-herói enquanto
|
|
7256
|
+
// `loaderActive` e, quando o carregamento termina, toca a saída sincronizada;
|
|
7257
|
+
// só depois do `onFinish` o app é revelado. Fica montada durante o exit graças
|
|
7258
|
+
// ao `!exitDone`.
|
|
7259
|
+
if (loaderActive || !exitDone) {
|
|
7260
|
+
return (jsxRuntime.jsx(AcademeLoading, { loading: loaderActive, duration: 1200, onFinish: () => setExitDone(true), style: { width: "100vw", height: "100vh" } }));
|
|
7261
|
+
}
|
|
7262
|
+
return (jsxRuntime.jsx(ProtectedAppContext.Provider, { value: textColors, children: children }));
|
|
7263
|
+
};
|
|
7264
|
+
|
|
7265
|
+
const ProtectedComponent = ({ children, requiredRealmRoles, requiredClientRoles, }) => {
|
|
7266
|
+
const { hasClientRole, hasRealmRole } = useAcademeAuth();
|
|
7267
|
+
if (requiredClientRoles &&
|
|
7268
|
+
!requiredClientRoles.roles.some((role) => hasClientRole(role, requiredClientRoles.clientId))) {
|
|
7269
|
+
return jsxRuntime.jsx(jsxRuntime.Fragment, {});
|
|
7270
|
+
}
|
|
7271
|
+
if (requiredRealmRoles &&
|
|
7272
|
+
!requiredRealmRoles?.some((role) => hasRealmRole(role))) {
|
|
7273
|
+
return jsxRuntime.jsx(jsxRuntime.Fragment, {});
|
|
7274
|
+
}
|
|
7275
|
+
return children;
|
|
7276
|
+
};
|
|
7277
|
+
|
|
7278
|
+
const ProtectedRouter = ({ children, requiredClientRoles, unauthorizedMessage, }) => {
|
|
7279
|
+
const { hasClientRole } = useAcademeAuth();
|
|
7280
|
+
if (requiredClientRoles &&
|
|
7281
|
+
!requiredClientRoles.roles.some((role) => hasClientRole(role, requiredClientRoles.clientId))) {
|
|
7282
|
+
return jsxRuntime.jsx("h1", { children: unauthorizedMessage || "unauthorized" });
|
|
7283
|
+
}
|
|
7284
|
+
return children;
|
|
7285
|
+
};
|
|
7286
|
+
|
|
6842
7287
|
const CLASS_PART_SEPARATOR = '-';
|
|
6843
7288
|
const createClassGroupUtils = config => {
|
|
6844
7289
|
const classMap = createClassMap(config);
|
|
@@ -9802,88 +10247,6 @@ function Spinner({ className, ...props }) {
|
|
|
9802
10247
|
return (jsxRuntime.jsx(LoaderCircle, { role: "status", "aria-label": "Loading", className: cn("size-10 animate-spin text-violet-500", className), ...props }));
|
|
9803
10248
|
}
|
|
9804
10249
|
|
|
9805
|
-
const themes = {
|
|
9806
|
-
dark: {
|
|
9807
|
-
backgroundColor: "bg-[#111111]",
|
|
9808
|
-
textColors: {
|
|
9809
|
-
textPrimary: "text-white",
|
|
9810
|
-
textSecondary: "text-gray-300",
|
|
9811
|
-
iconColor: "text-[#892CDD]",
|
|
9812
|
-
},
|
|
9813
|
-
},
|
|
9814
|
-
light: {
|
|
9815
|
-
backgroundColor: "bg-[#ffffff]",
|
|
9816
|
-
textColors: {
|
|
9817
|
-
textPrimary: "text-gray-900",
|
|
9818
|
-
textSecondary: "text-gray-600",
|
|
9819
|
-
iconColor: "text-[#892CDD]",
|
|
9820
|
-
},
|
|
9821
|
-
},
|
|
9822
|
-
};
|
|
9823
|
-
const ProtectedAppContext = React2.createContext(null);
|
|
9824
|
-
const useProtectedAppColors = () => {
|
|
9825
|
-
const context = React2.useContext(ProtectedAppContext);
|
|
9826
|
-
return context || themes.dark.textColors;
|
|
9827
|
-
};
|
|
9828
|
-
const ProtectedApp = ({ children, requiredClientRoles, requiredRealmRoles, theme = "dark", pending = false, }) => {
|
|
9829
|
-
const { isInitialized, goToLogin, hasClientRole, hasRealmRole, isAuthenticated, signOut, } = useAcademeAuth();
|
|
9830
|
-
const themeConfig = themes[theme];
|
|
9831
|
-
const { backgroundColor, textColors } = themeConfig;
|
|
9832
|
-
const handleContactSupport = () => {
|
|
9833
|
-
window.open("https://wa.me/558540428133", "_blank");
|
|
9834
|
-
};
|
|
9835
|
-
// Tela de loading de tela cheia reutilizada em duas fases do boot:
|
|
9836
|
-
// (1) enquanto o Keycloak inicializa (`!isInitialized`) e (2) enquanto o app
|
|
9837
|
-
// ainda carrega dados pós-auth (`pending`). Por ser o MESMO elemento na mesma
|
|
9838
|
-
// posição da árvore, o React reconcilia entre as fases sem remontar o Spinner
|
|
9839
|
-
// — a animação fica contínua (um loading só, sem "piscar").
|
|
9840
|
-
const loadingScreen = (jsxRuntime.jsx("div", { className: `!flex !w-screen !h-screen !items-center !justify-center ${backgroundColor}`, children: jsxRuntime.jsx(Spinner, { className: "!size-10", style: { color: "#892CDD" } }) }));
|
|
9841
|
-
if (!isInitialized) {
|
|
9842
|
-
return loadingScreen;
|
|
9843
|
-
}
|
|
9844
|
-
if (!isAuthenticated()) {
|
|
9845
|
-
goToLogin();
|
|
9846
|
-
return jsxRuntime.jsx(jsxRuntime.Fragment, {});
|
|
9847
|
-
}
|
|
9848
|
-
if (requiredClientRoles &&
|
|
9849
|
-
!requiredClientRoles.roles.some((role) => hasClientRole(role, requiredClientRoles.clientId))) {
|
|
9850
|
-
return (jsxRuntime.jsxs("div", { className: `flex flex-col w-screen h-screen items-center justify-center ${backgroundColor}`, children: [jsxRuntime.jsx(CircleAlert, { className: `size-10 ${textColors.iconColor}` }), jsxRuntime.jsx("h1", { className: `text-2xl font-bold mt-4 text-center ${textColors.textPrimary}`, children: "Oops, voc\u00EA n\u00E3o tem permiss\u00E3o para acessar aqui." }), jsxRuntime.jsx("span", { className: `text-center ${textColors.textSecondary}`, children: "Se voc\u00EA acredita que isso \u00E9 um erro, entre em contato com o suporte." }), jsxRuntime.jsxs("div", { className: "flex gap-3 mt-4", children: [jsxRuntime.jsx(Button, { variant: "primary", size: "md", onClick: handleContactSupport, children: "Falar com o suporte" }), jsxRuntime.jsx(Button, { variant: "outline", size: "md", onClick: signOut, children: "Sair da conta" })] })] }));
|
|
9851
|
-
}
|
|
9852
|
-
if (requiredRealmRoles &&
|
|
9853
|
-
!requiredRealmRoles?.some((role) => hasRealmRole(role))) {
|
|
9854
|
-
return (jsxRuntime.jsxs("div", { className: `flex flex-col w-screen h-screen items-center justify-center ${backgroundColor}`, children: [jsxRuntime.jsx(CircleAlert, { className: `size-10 ${textColors.iconColor}` }), jsxRuntime.jsx("h1", { className: `text-2xl font-bold mt-4 text-center ${textColors.textPrimary}`, children: "Oops, voc\u00EA n\u00E3o tem permiss\u00E3o para acessar aqui." }), jsxRuntime.jsx("span", { className: `text-center ${textColors.textSecondary}`, children: "Se voc\u00EA acredita que isso \u00E9 um erro, entre em contato com o suporte." }), jsxRuntime.jsxs("div", { className: "flex gap-3 mt-4", children: [jsxRuntime.jsx(Button, { variant: "primary", size: "md", onClick: handleContactSupport, children: "Falar com o suporte" }), jsxRuntime.jsx(Button, { variant: "outline", size: "md", onClick: signOut, children: "Sair da conta" })] })] }));
|
|
9855
|
-
}
|
|
9856
|
-
// Auth e roles OK, mas o app ainda carrega dados pós-auth (ex.: a lista de
|
|
9857
|
-
// instituições do dash). Mantém o MESMO `loadingScreen` do passo `!isInitialized`,
|
|
9858
|
-
// então o spinner não remonta entre as fases — continua sendo um loading só.
|
|
9859
|
-
if (pending) {
|
|
9860
|
-
return loadingScreen;
|
|
9861
|
-
}
|
|
9862
|
-
return (jsxRuntime.jsx(ProtectedAppContext.Provider, { value: textColors, children: children }));
|
|
9863
|
-
};
|
|
9864
|
-
|
|
9865
|
-
const ProtectedComponent = ({ children, requiredRealmRoles, requiredClientRoles, }) => {
|
|
9866
|
-
const { hasClientRole, hasRealmRole } = useAcademeAuth();
|
|
9867
|
-
if (requiredClientRoles &&
|
|
9868
|
-
!requiredClientRoles.roles.some((role) => hasClientRole(role, requiredClientRoles.clientId))) {
|
|
9869
|
-
return jsxRuntime.jsx(jsxRuntime.Fragment, {});
|
|
9870
|
-
}
|
|
9871
|
-
if (requiredRealmRoles &&
|
|
9872
|
-
!requiredRealmRoles?.some((role) => hasRealmRole(role))) {
|
|
9873
|
-
return jsxRuntime.jsx(jsxRuntime.Fragment, {});
|
|
9874
|
-
}
|
|
9875
|
-
return children;
|
|
9876
|
-
};
|
|
9877
|
-
|
|
9878
|
-
const ProtectedRouter = ({ children, requiredClientRoles, unauthorizedMessage, }) => {
|
|
9879
|
-
const { hasClientRole } = useAcademeAuth();
|
|
9880
|
-
if (requiredClientRoles &&
|
|
9881
|
-
!requiredClientRoles.roles.some((role) => hasClientRole(role, requiredClientRoles.clientId))) {
|
|
9882
|
-
return jsxRuntime.jsx("h1", { children: unauthorizedMessage || "unauthorized" });
|
|
9883
|
-
}
|
|
9884
|
-
return children;
|
|
9885
|
-
};
|
|
9886
|
-
|
|
9887
10250
|
function styleInject(css, ref) {
|
|
9888
10251
|
if ( ref === void 0 ) ref = {};
|
|
9889
10252
|
var insertAt = ref.insertAt;
|
|
@@ -10913,10 +11276,10 @@ function JourneyCrystalPin({ className, style }) {
|
|
|
10913
11276
|
return (jsxRuntime.jsxs("div", { className: ['journey-crystal-pin', className].filter(Boolean).join(' '), style: style, children: [jsxRuntime.jsx("div", { className: "journey-crystal-pin__glow", "aria-hidden": "true", children: jsxRuntime.jsx("svg", { viewBox: "0 0 40 60", className: "journey-crystal-pin__svg", children: jsxRuntime.jsx("polygon", { points: "20,0 40,20 20,60 0,20", fill: "#a78bfa" }) }) }), jsxRuntime.jsxs("svg", { viewBox: "0 0 40 60", className: "journey-crystal-pin__svg journey-crystal-pin__crystal", "aria-hidden": "true", focusable: "false", children: [jsxRuntime.jsx("polygon", { points: "20,0 0,20 20,60", fill: "#7c3aed" }), jsxRuntime.jsx("polygon", { points: "20,0 40,20 20,60", fill: "#a78bfa" }), jsxRuntime.jsx("polygon", { points: "20,0 0,20 10,15", fill: "#c4b5fd" }), jsxRuntime.jsx("polygon", { points: "20,0 40,20 30,15", fill: "#ddd6fe" }), jsxRuntime.jsx("line", { x1: "20", y1: "0", x2: "20", y2: "60", stroke: "#8b5cf6", strokeWidth: "1", opacity: "0.5" })] })] }));
|
|
10914
11277
|
}
|
|
10915
11278
|
|
|
10916
|
-
var css_248z$1 = "*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:\"\"}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background:0 0% 100%;--foreground:222.2 84% 4.9%;--card:0 0% 100%;--card-foreground:222.2 84% 4.9%;--popover:0 0% 100%;--popover-foreground:222.2 84% 4.9%;--primary:222.2 47.4% 11.2%;--primary-foreground:210 40% 98%;--secondary:210 40% 96.1%;--secondary-foreground:222.2 47.4% 11.2%;--muted:210 40% 96.1%;--muted-foreground:215.4 16.3% 46.9%;--accent:210 40% 96.1%;--accent-foreground:222.2 47.4% 11.2%;--destructive:0 84.2% 60.2%;--destructive-foreground:210 40% 98%;--border:214.3 31.8% 91.4%;--input:214.3 31.8% 91.4%;--ring:222.2 84% 4.9%;--radius:0.5rem}.dark{--background:222.2 84% 4.9%;--foreground:210 40% 98%;--card:222.2 84% 4.9%;--card-foreground:210 40% 98%;--popover:222.2 84% 4.9%;--popover-foreground:210 40% 98%;--primary:210 40% 98%;--primary-foreground:222.2 47.4% 11.2%;--secondary:217.2 32.6% 17.5%;--secondary-foreground:210 40% 98%;--muted:217.2 32.6% 17.5%;--muted-foreground:215 20.2% 65.1%;--accent:217.2 32.6% 17.5%;--accent-foreground:210 40% 98%;--destructive:0 62.8% 30.6%;--destructive-foreground:210 40% 98%;--border:217.2 32.6% 17.5%;--input:217.2 32.6% 17.5%;--ring:212.7 26.8% 83.9%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}.\\!container{margin-left:auto!important;margin-right:auto!important;padding-left:2rem!important;padding-right:2rem!important;width:100%!important}.container{margin-left:auto;margin-right:auto;padding-left:2rem;padding-right:2rem;width:100%}@media (min-width:1400px){.\\!container{max-width:1400px!important}.container{max-width:1400px}}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.mt-4{margin-top:1rem}.block{display:block}.inline{display:inline}.\\!flex{display:flex!important}.flex{display:flex}.table{display:table}.grid{display:grid}.\\!size-10{height:2.5rem!important;width:2.5rem!important}.size-10{height:2.5rem;width:2.5rem}.\\!h-screen{height:100vh!important}.h-screen{height:100vh}.\\!w-screen{width:100vw!important}.w-screen{width:100vw}.transform{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))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.resize{resize:both}.flex-col{flex-direction:column}.\\!items-center{align-items:center!important}.items-center{align-items:center}.\\!justify-center{justify-content:center!important}.justify-center{justify-content:center}.gap-3{gap:.75rem}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius)}.border-2{border-width:2px}.border-\\[\\#892CDD\\]{--tw-border-opacity:1;border-color:rgb(137 44 221/var(--tw-border-opacity,1))}.bg-\\[\\#111111\\]{--tw-bg-opacity:1;background-color:rgb(17 17 17/var(--tw-bg-opacity,1))}.bg-\\[\\#892CDD\\]{--tw-bg-opacity:1;background-color:rgb(137 44 221/var(--tw-bg-opacity,1))}.bg-\\[\\#ffffff\\]{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.text-\\[\\#892CDD\\]{--tw-text-opacity:1;color:rgb(137 44 221/var(--tw-text-opacity,1))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-violet-500{--tw-text-opacity:1;color:rgb(139 92 246/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.filter{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)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-200{animation-duration:.2s}.hover\\:bg-\\[\\#892CDD\\]\\/10:hover{background-color:rgba(137,44,221,.1)}.hover\\:bg-\\[\\#892CDD\\]\\/80:hover{background-color:rgba(137,44,221,.8)}.hover\\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:ring-\\[\\#892CDD\\]:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(137 44 221/var(--tw-ring-opacity,1))}.focus\\:ring-gray-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(107 114 128/var(--tw-ring-opacity,1))}.focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px}";
|
|
11279
|
+
var css_248z$1 = "*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:\"\"}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background:0 0% 100%;--foreground:222.2 84% 4.9%;--card:0 0% 100%;--card-foreground:222.2 84% 4.9%;--popover:0 0% 100%;--popover-foreground:222.2 84% 4.9%;--primary:222.2 47.4% 11.2%;--primary-foreground:210 40% 98%;--secondary:210 40% 96.1%;--secondary-foreground:222.2 47.4% 11.2%;--muted:210 40% 96.1%;--muted-foreground:215.4 16.3% 46.9%;--accent:210 40% 96.1%;--accent-foreground:222.2 47.4% 11.2%;--destructive:0 84.2% 60.2%;--destructive-foreground:210 40% 98%;--border:214.3 31.8% 91.4%;--input:214.3 31.8% 91.4%;--ring:222.2 84% 4.9%;--radius:0.5rem}.dark{--background:222.2 84% 4.9%;--foreground:210 40% 98%;--card:222.2 84% 4.9%;--card-foreground:210 40% 98%;--popover:222.2 84% 4.9%;--popover-foreground:210 40% 98%;--primary:210 40% 98%;--primary-foreground:222.2 47.4% 11.2%;--secondary:217.2 32.6% 17.5%;--secondary-foreground:210 40% 98%;--muted:217.2 32.6% 17.5%;--muted-foreground:215 20.2% 65.1%;--accent:217.2 32.6% 17.5%;--accent-foreground:210 40% 98%;--destructive:0 62.8% 30.6%;--destructive-foreground:210 40% 98%;--border:217.2 32.6% 17.5%;--input:217.2 32.6% 17.5%;--ring:212.7 26.8% 83.9%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}.\\!container{margin-left:auto!important;margin-right:auto!important;padding-left:2rem!important;padding-right:2rem!important;width:100%!important}.container{margin-left:auto;margin-right:auto;padding-left:2rem;padding-right:2rem;width:100%}@media (min-width:1400px){.\\!container{max-width:1400px!important}.container{max-width:1400px}}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.mt-4{margin-top:1rem}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.size-10{height:2.5rem;width:2.5rem}.h-screen{height:100vh}.w-screen{width:100vw}.transform{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))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-3{gap:.75rem}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius)}.border{border-width:1px}.border-2{border-width:2px}.border-\\[\\#892CDD\\]{--tw-border-opacity:1;border-color:rgb(137 44 221/var(--tw-border-opacity,1))}.bg-\\[\\#111111\\]{--tw-bg-opacity:1;background-color:rgb(17 17 17/var(--tw-bg-opacity,1))}.bg-\\[\\#892CDD\\]{--tw-bg-opacity:1;background-color:rgb(137 44 221/var(--tw-bg-opacity,1))}.bg-\\[\\#ffffff\\]{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.text-\\[\\#892CDD\\]{--tw-text-opacity:1;color:rgb(137 44 221/var(--tw-text-opacity,1))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-violet-500{--tw-text-opacity:1;color:rgb(139 92 246/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.filter{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)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-200{animation-duration:.2s}.ease-in{animation-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.hover\\:bg-\\[\\#892CDD\\]\\/10:hover{background-color:rgba(137,44,221,.1)}.hover\\:bg-\\[\\#892CDD\\]\\/80:hover{background-color:rgba(137,44,221,.8)}.hover\\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:ring-\\[\\#892CDD\\]:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(137 44 221/var(--tw-ring-opacity,1))}.focus\\:ring-gray-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(107 114 128/var(--tw-ring-opacity,1))}.focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px}";
|
|
10917
11280
|
styleInject(css_248z$1,{"insertAt":"top"});
|
|
10918
11281
|
|
|
10919
|
-
var css_248z = "*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:\"\"}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.\\!container{margin-left:auto!important;margin-right:auto!important;padding-left:2rem!important;padding-right:2rem!important;width:100%!important}.container{margin-left:auto;margin-right:auto;padding-left:2rem;padding-right:2rem;width:100%}@media (min-width:1400px){.\\!container{max-width:1400px!important}.container{max-width:1400px}}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.mt-4{margin-top:1rem}.block{display:block}.inline{display:inline}.\\!flex{display:flex!important}.flex{display:flex}.table{display:table}.grid{display:grid}.\\!size-10{height:2.5rem!important;width:2.5rem!important}.size-10{height:2.5rem;width:2.5rem}.\\!h-screen{height:100vh!important}.h-screen{height:100vh}.\\!w-screen{width:100vw!important}.w-screen{width:100vw}.transform{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))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.resize{resize:both}.flex-col{flex-direction:column}.\\!items-center{align-items:center!important}.items-center{align-items:center}.\\!justify-center{justify-content:center!important}.justify-center{justify-content:center}.gap-3{gap:.75rem}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius)}.border-2{border-width:2px}.border-\\[\\#892CDD\\]{--tw-border-opacity:1;border-color:rgb(137 44 221/var(--tw-border-opacity,1))}.bg-\\[\\#111111\\]{--tw-bg-opacity:1;background-color:rgb(17 17 17/var(--tw-bg-opacity,1))}.bg-\\[\\#892CDD\\]{--tw-bg-opacity:1;background-color:rgb(137 44 221/var(--tw-bg-opacity,1))}.bg-\\[\\#ffffff\\]{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.text-\\[\\#892CDD\\]{--tw-text-opacity:1;color:rgb(137 44 221/var(--tw-text-opacity,1))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-violet-500{--tw-text-opacity:1;color:rgb(139 92 246/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.filter{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)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-200{animation-duration:.2s}.hover\\:bg-\\[\\#892CDD\\]\\/10:hover{background-color:rgba(137,44,221,.1)}.hover\\:bg-\\[\\#892CDD\\]\\/80:hover{background-color:rgba(137,44,221,.8)}.hover\\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:ring-\\[\\#892CDD\\]:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(137 44 221/var(--tw-ring-opacity,1))}.focus\\:ring-gray-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(107 114 128/var(--tw-ring-opacity,1))}.focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px}";
|
|
11282
|
+
var css_248z = "*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:\"\"}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.\\!container{margin-left:auto!important;margin-right:auto!important;padding-left:2rem!important;padding-right:2rem!important;width:100%!important}.container{margin-left:auto;margin-right:auto;padding-left:2rem;padding-right:2rem;width:100%}@media (min-width:1400px){.\\!container{max-width:1400px!important}.container{max-width:1400px}}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.mt-4{margin-top:1rem}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.size-10{height:2.5rem;width:2.5rem}.h-screen{height:100vh}.w-screen{width:100vw}.transform{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))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-3{gap:.75rem}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius)}.border{border-width:1px}.border-2{border-width:2px}.border-\\[\\#892CDD\\]{--tw-border-opacity:1;border-color:rgb(137 44 221/var(--tw-border-opacity,1))}.bg-\\[\\#111111\\]{--tw-bg-opacity:1;background-color:rgb(17 17 17/var(--tw-bg-opacity,1))}.bg-\\[\\#892CDD\\]{--tw-bg-opacity:1;background-color:rgb(137 44 221/var(--tw-bg-opacity,1))}.bg-\\[\\#ffffff\\]{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.text-\\[\\#892CDD\\]{--tw-text-opacity:1;color:rgb(137 44 221/var(--tw-text-opacity,1))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-violet-500{--tw-text-opacity:1;color:rgb(139 92 246/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.filter{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)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-200{animation-duration:.2s}.ease-in{animation-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.hover\\:bg-\\[\\#892CDD\\]\\/10:hover{background-color:rgba(137,44,221,.1)}.hover\\:bg-\\[\\#892CDD\\]\\/80:hover{background-color:rgba(137,44,221,.8)}.hover\\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:ring-\\[\\#892CDD\\]:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(137 44 221/var(--tw-ring-opacity,1))}.focus\\:ring-gray-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(107 114 128/var(--tw-ring-opacity,1))}.focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px}";
|
|
10920
11283
|
styleInject(css_248z,{"insertAt":"top"});
|
|
10921
11284
|
|
|
10922
11285
|
exports.BACKOFFICE_ROLES = void 0;
|
|
@@ -10968,11 +11331,13 @@ var academeApi = /*#__PURE__*/Object.freeze({
|
|
|
10968
11331
|
});
|
|
10969
11332
|
|
|
10970
11333
|
exports.AcademeAuthProvider = AcademeAuthProvider;
|
|
11334
|
+
exports.AcademeLoading = AcademeLoading;
|
|
10971
11335
|
exports.Button = Button;
|
|
10972
11336
|
exports.CosmicDecor = CosmicDecor;
|
|
10973
11337
|
exports.CosmicStarsCanvas = CosmicStarsCanvas;
|
|
10974
11338
|
exports.JourneyCrystalPin = JourneyCrystalPin;
|
|
10975
11339
|
exports.JourneyStep = JourneyStep;
|
|
11340
|
+
exports.LogoA = LogoA;
|
|
10976
11341
|
exports.ProtectedApp = ProtectedApp;
|
|
10977
11342
|
exports.ProtectedComponent = ProtectedComponent;
|
|
10978
11343
|
exports.ProtectedRouter = ProtectedRouter;
|