@nemme/js-sdk 0.6.2 → 0.7.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/README.md +46 -13
- package/dist/browser.d.ts +1 -1
- package/dist/chunks/client-BF32gejA.js +2 -0
- package/dist/chunks/client-BF32gejA.js.map +1 -0
- package/dist/chunks/client-DhycnG8v.js +408 -0
- package/dist/chunks/client-DhycnG8v.js.map +1 -0
- package/dist/chunks/form-manager-CdG9IzjD.js +12 -0
- package/dist/chunks/form-manager-CdG9IzjD.js.map +1 -0
- package/dist/chunks/form-manager-DRUgPPf5.js +6143 -0
- package/dist/chunks/form-manager-DRUgPPf5.js.map +1 -0
- package/dist/chunks/httpClient-D2IO92uv.js +149 -0
- package/dist/chunks/httpClient-D2IO92uv.js.map +1 -0
- package/dist/chunks/httpClient-hrn9Ffa2.js +2 -0
- package/dist/chunks/httpClient-hrn9Ffa2.js.map +1 -0
- package/dist/chunks/jsx-runtime-BubrbI3X.js +2 -0
- package/dist/chunks/jsx-runtime-BubrbI3X.js.map +1 -0
- package/dist/chunks/jsx-runtime-jIxVPx5o.js +32 -0
- package/dist/chunks/jsx-runtime-jIxVPx5o.js.map +1 -0
- package/dist/client.d.ts +11 -9
- package/dist/deliveries/delivery-manager.d.ts +3 -3
- package/dist/forms/form-manager.d.ts +1 -10
- package/dist/forms/form-wrapper/form-wrapper.d.ts +1 -0
- package/dist/forms/form-wrapper/step.d.ts +1 -0
- package/dist/forms-entry.d.ts +3 -0
- package/dist/forms.cjs +2 -0
- package/dist/forms.cjs.map +1 -0
- package/dist/forms.esm.js +6 -0
- package/dist/forms.esm.js.map +1 -0
- package/dist/index.cjs +1 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.esm.js +6 -6750
- package/dist/index.esm.js.map +1 -1
- package/dist/js-sdk.css +1 -0
- package/dist/nemme-sdk.umd.js +4 -4
- package/dist/nemme-sdk.umd.js.map +1 -1
- package/dist/react-entry.d.ts +3 -0
- package/dist/react.cjs +2 -0
- package/dist/react.cjs.map +1 -0
- package/dist/react.esm.js +83 -0
- package/dist/react.esm.js.map +1 -0
- package/dist/style-entry.d.ts +0 -0
- package/dist/style.cjs +2 -0
- package/dist/style.cjs.map +1 -0
- package/dist/style.esm.js +2 -0
- package/dist/style.esm.js.map +1 -0
- package/dist/tracking/tracking-manager.d.ts +1 -0
- package/dist/types/forms.d.ts +63 -0
- package/package.json +36 -10
- package/dist/assets/js-sdk.css +0 -1
package/dist/react.cjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("./chunks/jsx-runtime-BubrbI3X.js"),i=require("react"),z=require("./chunks/client-BF32gejA.js"),a=i.createContext(void 0);function C(e,t){switch(t.type){case"reset":return{client:null,isInitialized:!1,error:null};case"success":return{client:t.client,isInitialized:t.initialized,error:t.error};case"error":return{client:null,isInitialized:!1,error:t.error}}}const N=({clientKey:e,config:t,children:o})=>{const[n,s]=i.useReducer(C,{client:null,isInitialized:!1,error:null}),l=i.useMemo(()=>t,[JSON.stringify(t)]);i.useEffect(()=>{let c=!1,u=null;return s({type:"reset"}),(async()=>{try{const r=new z.NemmeClient(e);if(await r.init(l),c){r.destroy();return}u=r,s({type:"success",client:r,initialized:r.initialized,error:r.lastInitError?r.lastInitError.message:null})}catch(r){c||s({type:"error",error:r instanceof Error?r.message:"Failed to initialize Nemme client"})}})(),()=>{c=!0,u&&u.destroy()}},[e,l]);const d={client:n.client,isInitialized:n.isInitialized,error:n.error};return f.jsxRuntimeExports.jsx(a.Provider,{value:d,children:o})},m=()=>{const e=i.useContext(a);if(e===void 0)throw new Error("useNemmeContext must be used within a NemmeProvider");return e},y=()=>{const{client:e,isInitialized:t,error:o}=m(),n=i.useCallback(async l=>{if(!e||!t){console.warn("Nemme client not initialized");return}return e.track(l)},[e,t]),s=i.useCallback(async()=>{if(!e||!t){console.warn("Nemme client not initialized");return}return e.flush()},[e,t]);return{track:n,flush:s,isInitialized:t,error:o,client:e}};exports.NemmeProvider=N;exports.useNemme=y;exports.useNemmeContext=m;
|
|
2
|
+
//# sourceMappingURL=react.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.cjs","sources":["../src/react/context.ts","../src/react/NemmeProvider.tsx","../src/react/useNemmeContext.ts","../src/react/useNemme.ts"],"sourcesContent":["import { createContext } from 'react';\nimport { NemmeClient } from '../client';\n\nexport interface NemmeContextType {\n client: NemmeClient | null;\n isInitialized: boolean;\n error: string | null;\n}\n\nexport const NemmeContext = createContext<NemmeContextType | undefined>(undefined);\n","import * as React from 'react';\nimport { useEffect, useMemo, useReducer } from 'react';\nimport { ClientConfigType, NemmeClient } from '../client';\nimport { NemmeContext, NemmeContextType } from './context';\n\ninterface NemmeProviderProps {\n clientKey: string;\n config: ClientConfigType;\n children: React.ReactNode;\n}\n\ntype State = {\n client: NemmeClient | null;\n isInitialized: boolean;\n error: string | null;\n};\n\ntype Action =\n | { type: 'reset' }\n | { type: 'success'; client: NemmeClient; initialized: boolean; error: string | null }\n | { type: 'error'; error: string };\n\nfunction reducer(_state: State, action: Action): State {\n switch (action.type) {\n case 'reset':\n return { client: null, isInitialized: false, error: null };\n case 'success':\n return { client: action.client, isInitialized: action.initialized, error: action.error };\n case 'error':\n return { client: null, isInitialized: false, error: action.error };\n }\n}\n\nexport const NemmeProvider: React.FC<NemmeProviderProps> = ({ clientKey, config, children }) => {\n const [state, dispatch] = useReducer(reducer, { client: null, isInitialized: false, error: null });\n\n // Stabilize config: only changes when the serialized value differs\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const stableConfig = useMemo<ClientConfigType>(() => config, [JSON.stringify(config)]);\n\n useEffect(() => {\n let isCancelled = false;\n let currentClient: NemmeClient | null = null;\n\n dispatch({ type: 'reset' });\n\n const initializeClient = async () => {\n try {\n const nemmeClient = new NemmeClient(clientKey);\n await nemmeClient.init(stableConfig);\n\n if (isCancelled) {\n nemmeClient.destroy();\n return;\n }\n\n currentClient = nemmeClient;\n dispatch({\n type: 'success',\n client: nemmeClient,\n initialized: nemmeClient.initialized,\n error: nemmeClient.lastInitError ? nemmeClient.lastInitError.message : null\n });\n } catch (err) {\n if (!isCancelled) {\n dispatch({\n type: 'error',\n error: err instanceof Error ? err.message : 'Failed to initialize Nemme client'\n });\n }\n }\n };\n\n initializeClient();\n\n return () => {\n isCancelled = true;\n if (currentClient) {\n currentClient.destroy();\n }\n };\n }, [clientKey, stableConfig]);\n\n const value: NemmeContextType = {\n client: state.client,\n isInitialized: state.isInitialized,\n error: state.error\n };\n\n return <NemmeContext.Provider value={value}>{children}</NemmeContext.Provider>;\n};\n","import { useContext } from 'react';\nimport { NemmeContext } from './context';\n\nexport const useNemmeContext = () => {\n const context = useContext(NemmeContext);\n if (context === undefined) {\n throw new Error('useNemmeContext must be used within a NemmeProvider');\n }\n return context;\n};\n","import { useCallback } from 'react';\nimport { useNemmeContext } from './useNemmeContext';\nimport { TrackEventOptions } from '../client';\n\nexport const useNemme = () => {\n const { client, isInitialized, error } = useNemmeContext();\n\n const track = useCallback(\n async <T extends TrackEventOptions>(options: T) => {\n if (!client || !isInitialized) {\n console.warn('Nemme client not initialized');\n return;\n }\n return client.track(options);\n },\n [client, isInitialized]\n );\n\n const flush = useCallback(async () => {\n if (!client || !isInitialized) {\n console.warn('Nemme client not initialized');\n return;\n }\n return client.flush();\n }, [client, isInitialized]);\n\n return {\n track,\n flush,\n isInitialized,\n error,\n client\n };\n};\n"],"names":["NemmeContext","createContext","reducer","_state","action","NemmeProvider","clientKey","config","children","state","dispatch","useReducer","stableConfig","useMemo","useEffect","isCancelled","currentClient","nemmeClient","NemmeClient","err","value","jsx","useNemmeContext","context","useContext","useNemme","client","isInitialized","error","track","useCallback","options","flush"],"mappings":"gMASaA,EAAeC,EAAAA,cAA4C,MAAS,ECajF,SAASC,EAAQC,EAAeC,EAAuB,CACrD,OAAQA,EAAO,KAAA,CACb,IAAK,QACH,MAAO,CAAE,OAAQ,KAAM,cAAe,GAAO,MAAO,IAAA,EACtD,IAAK,UACH,MAAO,CAAE,OAAQA,EAAO,OAAQ,cAAeA,EAAO,YAAa,MAAOA,EAAO,KAAA,EACnF,IAAK,QACH,MAAO,CAAE,OAAQ,KAAM,cAAe,GAAO,MAAOA,EAAO,KAAA,CAAM,CAEvE,CAEO,MAAMC,EAA8C,CAAC,CAAE,UAAAC,EAAW,OAAAC,EAAQ,SAAAC,KAAe,CAC9F,KAAM,CAACC,EAAOC,CAAQ,EAAIC,EAAAA,WAAWT,EAAS,CAAE,OAAQ,KAAM,cAAe,GAAO,MAAO,KAAM,EAI3FU,EAAeC,EAAAA,QAA0B,IAAMN,EAAQ,CAAC,KAAK,UAAUA,CAAM,CAAC,CAAC,EAErFO,EAAAA,UAAU,IAAM,CACd,IAAIC,EAAc,GACdC,EAAoC,KAExC,OAAAN,EAAS,CAAE,KAAM,QAAS,GAED,SAAY,CACnC,GAAI,CACF,MAAMO,EAAc,IAAIC,EAAAA,YAAYZ,CAAS,EAG7C,GAFA,MAAMW,EAAY,KAAKL,CAAY,EAE/BG,EAAa,CACfE,EAAY,QAAA,EACZ,MACF,CAEAD,EAAgBC,EAChBP,EAAS,CACP,KAAM,UACN,OAAQO,EACR,YAAaA,EAAY,YACzB,MAAOA,EAAY,cAAgBA,EAAY,cAAc,QAAU,IAAA,CACxE,CACH,OAASE,EAAK,CACPJ,GACHL,EAAS,CACP,KAAM,QACN,MAAOS,aAAe,MAAQA,EAAI,QAAU,mCAAA,CAC7C,CAEL,CACF,GAEA,EAEO,IAAM,CACXJ,EAAc,GACVC,GACFA,EAAc,QAAA,CAElB,CACF,EAAG,CAACV,EAAWM,CAAY,CAAC,EAE5B,MAAMQ,EAA0B,CAC9B,OAAQX,EAAM,OACd,cAAeA,EAAM,cACrB,MAAOA,EAAM,KAAA,EAGf,OAAOY,EAAAA,kBAAAA,IAACrB,EAAa,SAAb,CAAsB,MAAAoB,EAAe,SAAAZ,CAAA,CAAS,CACxD,ECvFac,EAAkB,IAAM,CACnC,MAAMC,EAAUC,EAAAA,WAAWxB,CAAY,EACvC,GAAIuB,IAAY,OACd,MAAM,IAAI,MAAM,qDAAqD,EAEvE,OAAOA,CACT,ECLaE,EAAW,IAAM,CAC5B,KAAM,CAAE,OAAAC,EAAQ,cAAAC,EAAe,MAAAC,CAAA,EAAUN,EAAA,EAEnCO,EAAQC,EAAAA,YACZ,MAAoCC,GAAe,CACjD,GAAI,CAACL,GAAU,CAACC,EAAe,CAC7B,QAAQ,KAAK,8BAA8B,EAC3C,MACF,CACA,OAAOD,EAAO,MAAMK,CAAO,CAC7B,EACA,CAACL,EAAQC,CAAa,CAAA,EAGlBK,EAAQF,EAAAA,YAAY,SAAY,CACpC,GAAI,CAACJ,GAAU,CAACC,EAAe,CAC7B,QAAQ,KAAK,8BAA8B,EAC3C,MACF,CACA,OAAOD,EAAO,MAAA,CAChB,EAAG,CAACA,EAAQC,CAAa,CAAC,EAE1B,MAAO,CACL,MAAAE,EACA,MAAAG,EACA,cAAAL,EACA,MAAAC,EACA,OAAAF,CAAA,CAEJ"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { j as d } from "./chunks/jsx-runtime-jIxVPx5o.js";
|
|
2
|
+
import { createContext as f, useReducer as z, useMemo as C, useEffect as N, useContext as p, useCallback as a } from "react";
|
|
3
|
+
import { N as x } from "./chunks/client-DhycnG8v.js";
|
|
4
|
+
const u = f(void 0);
|
|
5
|
+
function y(e, t) {
|
|
6
|
+
switch (t.type) {
|
|
7
|
+
case "reset":
|
|
8
|
+
return { client: null, isInitialized: !1, error: null };
|
|
9
|
+
case "success":
|
|
10
|
+
return { client: t.client, isInitialized: t.initialized, error: t.error };
|
|
11
|
+
case "error":
|
|
12
|
+
return { client: null, isInitialized: !1, error: t.error };
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
const b = ({ clientKey: e, config: t, children: l }) => {
|
|
16
|
+
const [i, n] = z(y, { client: null, isInitialized: !1, error: null }), s = C(() => t, [JSON.stringify(t)]);
|
|
17
|
+
N(() => {
|
|
18
|
+
let o = !1, c = null;
|
|
19
|
+
return n({ type: "reset" }), (async () => {
|
|
20
|
+
try {
|
|
21
|
+
const r = new x(e);
|
|
22
|
+
if (await r.init(s), o) {
|
|
23
|
+
r.destroy();
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
c = r, n({
|
|
27
|
+
type: "success",
|
|
28
|
+
client: r,
|
|
29
|
+
initialized: r.initialized,
|
|
30
|
+
error: r.lastInitError ? r.lastInitError.message : null
|
|
31
|
+
});
|
|
32
|
+
} catch (r) {
|
|
33
|
+
o || n({
|
|
34
|
+
type: "error",
|
|
35
|
+
error: r instanceof Error ? r.message : "Failed to initialize Nemme client"
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
})(), () => {
|
|
39
|
+
o = !0, c && c.destroy();
|
|
40
|
+
};
|
|
41
|
+
}, [e, s]);
|
|
42
|
+
const m = {
|
|
43
|
+
client: i.client,
|
|
44
|
+
isInitialized: i.isInitialized,
|
|
45
|
+
error: i.error
|
|
46
|
+
};
|
|
47
|
+
return /* @__PURE__ */ d.jsx(u.Provider, { value: m, children: l });
|
|
48
|
+
}, I = () => {
|
|
49
|
+
const e = p(u);
|
|
50
|
+
if (e === void 0)
|
|
51
|
+
throw new Error("useNemmeContext must be used within a NemmeProvider");
|
|
52
|
+
return e;
|
|
53
|
+
}, g = () => {
|
|
54
|
+
const { client: e, isInitialized: t, error: l } = I(), i = a(
|
|
55
|
+
async (s) => {
|
|
56
|
+
if (!e || !t) {
|
|
57
|
+
console.warn("Nemme client not initialized");
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
return e.track(s);
|
|
61
|
+
},
|
|
62
|
+
[e, t]
|
|
63
|
+
), n = a(async () => {
|
|
64
|
+
if (!e || !t) {
|
|
65
|
+
console.warn("Nemme client not initialized");
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
return e.flush();
|
|
69
|
+
}, [e, t]);
|
|
70
|
+
return {
|
|
71
|
+
track: i,
|
|
72
|
+
flush: n,
|
|
73
|
+
isInitialized: t,
|
|
74
|
+
error: l,
|
|
75
|
+
client: e
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
export {
|
|
79
|
+
b as NemmeProvider,
|
|
80
|
+
g as useNemme,
|
|
81
|
+
I as useNemmeContext
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=react.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.esm.js","sources":["../src/react/context.ts","../src/react/NemmeProvider.tsx","../src/react/useNemmeContext.ts","../src/react/useNemme.ts"],"sourcesContent":["import { createContext } from 'react';\nimport { NemmeClient } from '../client';\n\nexport interface NemmeContextType {\n client: NemmeClient | null;\n isInitialized: boolean;\n error: string | null;\n}\n\nexport const NemmeContext = createContext<NemmeContextType | undefined>(undefined);\n","import * as React from 'react';\nimport { useEffect, useMemo, useReducer } from 'react';\nimport { ClientConfigType, NemmeClient } from '../client';\nimport { NemmeContext, NemmeContextType } from './context';\n\ninterface NemmeProviderProps {\n clientKey: string;\n config: ClientConfigType;\n children: React.ReactNode;\n}\n\ntype State = {\n client: NemmeClient | null;\n isInitialized: boolean;\n error: string | null;\n};\n\ntype Action =\n | { type: 'reset' }\n | { type: 'success'; client: NemmeClient; initialized: boolean; error: string | null }\n | { type: 'error'; error: string };\n\nfunction reducer(_state: State, action: Action): State {\n switch (action.type) {\n case 'reset':\n return { client: null, isInitialized: false, error: null };\n case 'success':\n return { client: action.client, isInitialized: action.initialized, error: action.error };\n case 'error':\n return { client: null, isInitialized: false, error: action.error };\n }\n}\n\nexport const NemmeProvider: React.FC<NemmeProviderProps> = ({ clientKey, config, children }) => {\n const [state, dispatch] = useReducer(reducer, { client: null, isInitialized: false, error: null });\n\n // Stabilize config: only changes when the serialized value differs\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const stableConfig = useMemo<ClientConfigType>(() => config, [JSON.stringify(config)]);\n\n useEffect(() => {\n let isCancelled = false;\n let currentClient: NemmeClient | null = null;\n\n dispatch({ type: 'reset' });\n\n const initializeClient = async () => {\n try {\n const nemmeClient = new NemmeClient(clientKey);\n await nemmeClient.init(stableConfig);\n\n if (isCancelled) {\n nemmeClient.destroy();\n return;\n }\n\n currentClient = nemmeClient;\n dispatch({\n type: 'success',\n client: nemmeClient,\n initialized: nemmeClient.initialized,\n error: nemmeClient.lastInitError ? nemmeClient.lastInitError.message : null\n });\n } catch (err) {\n if (!isCancelled) {\n dispatch({\n type: 'error',\n error: err instanceof Error ? err.message : 'Failed to initialize Nemme client'\n });\n }\n }\n };\n\n initializeClient();\n\n return () => {\n isCancelled = true;\n if (currentClient) {\n currentClient.destroy();\n }\n };\n }, [clientKey, stableConfig]);\n\n const value: NemmeContextType = {\n client: state.client,\n isInitialized: state.isInitialized,\n error: state.error\n };\n\n return <NemmeContext.Provider value={value}>{children}</NemmeContext.Provider>;\n};\n","import { useContext } from 'react';\nimport { NemmeContext } from './context';\n\nexport const useNemmeContext = () => {\n const context = useContext(NemmeContext);\n if (context === undefined) {\n throw new Error('useNemmeContext must be used within a NemmeProvider');\n }\n return context;\n};\n","import { useCallback } from 'react';\nimport { useNemmeContext } from './useNemmeContext';\nimport { TrackEventOptions } from '../client';\n\nexport const useNemme = () => {\n const { client, isInitialized, error } = useNemmeContext();\n\n const track = useCallback(\n async <T extends TrackEventOptions>(options: T) => {\n if (!client || !isInitialized) {\n console.warn('Nemme client not initialized');\n return;\n }\n return client.track(options);\n },\n [client, isInitialized]\n );\n\n const flush = useCallback(async () => {\n if (!client || !isInitialized) {\n console.warn('Nemme client not initialized');\n return;\n }\n return client.flush();\n }, [client, isInitialized]);\n\n return {\n track,\n flush,\n isInitialized,\n error,\n client\n };\n};\n"],"names":["NemmeContext","createContext","reducer","_state","action","NemmeProvider","clientKey","config","children","state","dispatch","useReducer","stableConfig","useMemo","useEffect","isCancelled","currentClient","nemmeClient","NemmeClient","err","value","jsx","useNemmeContext","context","useContext","useNemme","client","isInitialized","error","track","useCallback","options","flush"],"mappings":";;;AASO,MAAMA,IAAeC,EAA4C,MAAS;ACajF,SAASC,EAAQC,GAAeC,GAAuB;AACrD,UAAQA,EAAO,MAAA;AAAA,IACb,KAAK;AACH,aAAO,EAAE,QAAQ,MAAM,eAAe,IAAO,OAAO,KAAA;AAAA,IACtD,KAAK;AACH,aAAO,EAAE,QAAQA,EAAO,QAAQ,eAAeA,EAAO,aAAa,OAAOA,EAAO,MAAA;AAAA,IACnF,KAAK;AACH,aAAO,EAAE,QAAQ,MAAM,eAAe,IAAO,OAAOA,EAAO,MAAA;AAAA,EAAM;AAEvE;AAEO,MAAMC,IAA8C,CAAC,EAAE,WAAAC,GAAW,QAAAC,GAAQ,UAAAC,QAAe;AAC9F,QAAM,CAACC,GAAOC,CAAQ,IAAIC,EAAWT,GAAS,EAAE,QAAQ,MAAM,eAAe,IAAO,OAAO,MAAM,GAI3FU,IAAeC,EAA0B,MAAMN,GAAQ,CAAC,KAAK,UAAUA,CAAM,CAAC,CAAC;AAErF,EAAAO,EAAU,MAAM;AACd,QAAIC,IAAc,IACdC,IAAoC;AAExC,WAAAN,EAAS,EAAE,MAAM,SAAS,IAED,YAAY;AACnC,UAAI;AACF,cAAMO,IAAc,IAAIC,EAAYZ,CAAS;AAG7C,YAFA,MAAMW,EAAY,KAAKL,CAAY,GAE/BG,GAAa;AACf,UAAAE,EAAY,QAAA;AACZ;AAAA,QACF;AAEA,QAAAD,IAAgBC,GAChBP,EAAS;AAAA,UACP,MAAM;AAAA,UACN,QAAQO;AAAA,UACR,aAAaA,EAAY;AAAA,UACzB,OAAOA,EAAY,gBAAgBA,EAAY,cAAc,UAAU;AAAA,QAAA,CACxE;AAAA,MACH,SAASE,GAAK;AACZ,QAAKJ,KACHL,EAAS;AAAA,UACP,MAAM;AAAA,UACN,OAAOS,aAAe,QAAQA,EAAI,UAAU;AAAA,QAAA,CAC7C;AAAA,MAEL;AAAA,IACF,GAEA,GAEO,MAAM;AACX,MAAAJ,IAAc,IACVC,KACFA,EAAc,QAAA;AAAA,IAElB;AAAA,EACF,GAAG,CAACV,GAAWM,CAAY,CAAC;AAE5B,QAAMQ,IAA0B;AAAA,IAC9B,QAAQX,EAAM;AAAA,IACd,eAAeA,EAAM;AAAA,IACrB,OAAOA,EAAM;AAAA,EAAA;AAGf,SAAOY,gBAAAA,EAAAA,IAACrB,EAAa,UAAb,EAAsB,OAAAoB,GAAe,UAAAZ,EAAA,CAAS;AACxD,GCvFac,IAAkB,MAAM;AACnC,QAAMC,IAAUC,EAAWxB,CAAY;AACvC,MAAIuB,MAAY;AACd,UAAM,IAAI,MAAM,qDAAqD;AAEvE,SAAOA;AACT,GCLaE,IAAW,MAAM;AAC5B,QAAM,EAAE,QAAAC,GAAQ,eAAAC,GAAe,OAAAC,EAAA,IAAUN,EAAA,GAEnCO,IAAQC;AAAA,IACZ,OAAoCC,MAAe;AACjD,UAAI,CAACL,KAAU,CAACC,GAAe;AAC7B,gBAAQ,KAAK,8BAA8B;AAC3C;AAAA,MACF;AACA,aAAOD,EAAO,MAAMK,CAAO;AAAA,IAC7B;AAAA,IACA,CAACL,GAAQC,CAAa;AAAA,EAAA,GAGlBK,IAAQF,EAAY,YAAY;AACpC,QAAI,CAACJ,KAAU,CAACC,GAAe;AAC7B,cAAQ,KAAK,8BAA8B;AAC3C;AAAA,IACF;AACA,WAAOD,EAAO,MAAA;AAAA,EAChB,GAAG,CAACA,GAAQC,CAAa,CAAC;AAE1B,SAAO;AAAA,IACL,OAAAE;AAAA,IACA,OAAAG;AAAA,IACA,eAAAL;AAAA,IACA,OAAAC;AAAA,IACA,QAAAF;AAAA,EAAA;AAEJ;"}
|
|
File without changes
|
package/dist/style.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export type FormErrorType = 'FETCH_ERROR' | 'SUBMISSION_ERROR';
|
|
2
|
+
export declare class FormError extends Error {
|
|
3
|
+
errorType: FormErrorType;
|
|
4
|
+
constructor(errorType: FormErrorType, message?: string);
|
|
5
|
+
}
|
|
6
|
+
export type FormConfig = {
|
|
7
|
+
zIndex?: number;
|
|
8
|
+
theme?: 'light' | 'dark';
|
|
9
|
+
onFormError?: (error: FormError) => void;
|
|
10
|
+
};
|
|
11
|
+
export type ProductType = 'FRM' | 'TRK';
|
|
12
|
+
export type QuestionType = 'choice' | 'score' | 'text' | 'ranking';
|
|
13
|
+
export type StartTransition = {
|
|
14
|
+
title: string;
|
|
15
|
+
description?: string;
|
|
16
|
+
image?: string;
|
|
17
|
+
includeOptOut: boolean;
|
|
18
|
+
customStartButton: boolean;
|
|
19
|
+
startButtonText?: string;
|
|
20
|
+
customOptOutButton: boolean;
|
|
21
|
+
optOutButtonText?: string;
|
|
22
|
+
};
|
|
23
|
+
export type EndTransition = {
|
|
24
|
+
title: string;
|
|
25
|
+
description?: string;
|
|
26
|
+
image?: string;
|
|
27
|
+
customEndButton: boolean;
|
|
28
|
+
endButtonText?: string;
|
|
29
|
+
customEndButtonLink: boolean;
|
|
30
|
+
endButtonLink?: string;
|
|
31
|
+
};
|
|
32
|
+
export type BaseQuestion = {
|
|
33
|
+
id: number;
|
|
34
|
+
questionType: QuestionType;
|
|
35
|
+
title: string;
|
|
36
|
+
description?: string;
|
|
37
|
+
image?: string;
|
|
38
|
+
required: boolean;
|
|
39
|
+
order: number;
|
|
40
|
+
};
|
|
41
|
+
export type TextQuestion = BaseQuestion & {
|
|
42
|
+
limited: boolean;
|
|
43
|
+
maxChars?: number;
|
|
44
|
+
};
|
|
45
|
+
export type ChoiceQuestion = BaseQuestion & {
|
|
46
|
+
maxSelections: number;
|
|
47
|
+
verticalAlignment: boolean;
|
|
48
|
+
alternatives: ChoiceQuestionAlternative[];
|
|
49
|
+
};
|
|
50
|
+
export type ChoiceQuestionAlternative = {
|
|
51
|
+
id: number;
|
|
52
|
+
text: string;
|
|
53
|
+
order: number;
|
|
54
|
+
};
|
|
55
|
+
export type Question = TextQuestion | ChoiceQuestion;
|
|
56
|
+
export type Form = {
|
|
57
|
+
name: string;
|
|
58
|
+
slug: string;
|
|
59
|
+
icon?: string;
|
|
60
|
+
startTransition?: StartTransition;
|
|
61
|
+
endTransition?: EndTransition;
|
|
62
|
+
questions: Question[];
|
|
63
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nemme/js-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.esm.js",
|
|
@@ -11,8 +11,7 @@
|
|
|
11
11
|
"/dist"
|
|
12
12
|
],
|
|
13
13
|
"sideEffects": [
|
|
14
|
-
"**/*.css"
|
|
15
|
-
"dist/**"
|
|
14
|
+
"**/*.css"
|
|
16
15
|
],
|
|
17
16
|
"exports": {
|
|
18
17
|
".": {
|
|
@@ -21,7 +20,20 @@
|
|
|
21
20
|
"require": "./dist/index.cjs",
|
|
22
21
|
"default": "./dist/index.esm.js"
|
|
23
22
|
},
|
|
24
|
-
"./
|
|
23
|
+
"./react": {
|
|
24
|
+
"types": "./dist/react-entry.d.ts",
|
|
25
|
+
"import": "./dist/react.esm.js",
|
|
26
|
+
"require": "./dist/react.cjs",
|
|
27
|
+
"default": "./dist/react.esm.js"
|
|
28
|
+
},
|
|
29
|
+
"./forms": {
|
|
30
|
+
"types": "./dist/forms-entry.d.ts",
|
|
31
|
+
"import": "./dist/forms.esm.js",
|
|
32
|
+
"require": "./dist/forms.cjs",
|
|
33
|
+
"default": "./dist/forms.esm.js"
|
|
34
|
+
},
|
|
35
|
+
"./style.css": "./dist/js-sdk.css",
|
|
36
|
+
"./dist/js-sdk.css": "./dist/js-sdk.css",
|
|
25
37
|
"./dist/assets/js-sdk.css": "./dist/assets/js-sdk.css"
|
|
26
38
|
},
|
|
27
39
|
"scripts": {
|
|
@@ -30,9 +42,9 @@
|
|
|
30
42
|
"debug": "vitest --test-timeout=0 --no-file-parallelism",
|
|
31
43
|
"cov": "vitest run --coverage",
|
|
32
44
|
"type-check": "tsc --noEmit",
|
|
33
|
-
"build": "tsc && vite build",
|
|
34
|
-
"build:dev": "tsc && vite build --mode development",
|
|
35
|
-
"build:test": "tsc && vite build --mode test",
|
|
45
|
+
"build": "tsc && vite build && vite build -c vite.umd.config.ts",
|
|
46
|
+
"build:dev": "tsc && vite build --mode development && vite build -c vite.umd.config.ts --mode development",
|
|
47
|
+
"build:test": "tsc && vite build --mode test && vite build -c vite.umd.config.ts --mode test",
|
|
36
48
|
"dev": "vite",
|
|
37
49
|
"preview": "vite preview",
|
|
38
50
|
"sb": "storybook dev -p 6006 --no-open",
|
|
@@ -45,15 +57,26 @@
|
|
|
45
57
|
"author": "Nemme AS",
|
|
46
58
|
"license": "MIT",
|
|
47
59
|
"description": "Nemme JS SDK",
|
|
60
|
+
"peerDependencies": {
|
|
61
|
+
"react": "^19.0.0",
|
|
62
|
+
"react-dom": "^19.0.0"
|
|
63
|
+
},
|
|
64
|
+
"peerDependenciesMeta": {
|
|
65
|
+
"react": {
|
|
66
|
+
"optional": true
|
|
67
|
+
},
|
|
68
|
+
"react-dom": {
|
|
69
|
+
"optional": true
|
|
70
|
+
}
|
|
71
|
+
},
|
|
48
72
|
"dependencies": {
|
|
49
73
|
"@phosphor-icons/react": "^2.1.10",
|
|
50
74
|
"date-fns": "^4.1.0",
|
|
51
75
|
"i18next-browser-languagedetector": "^8.2.1",
|
|
52
|
-
"react": "^18.0.0 || ^19.0.0",
|
|
53
|
-
"react-dom": "^18.0.0 || ^19.0.0",
|
|
54
76
|
"react-i18next": "^16.5.4"
|
|
55
77
|
},
|
|
56
78
|
"devDependencies": {
|
|
79
|
+
"@bcoe/v8-coverage": "^1.0.2",
|
|
57
80
|
"@chromatic-com/storybook": "^5.0.1",
|
|
58
81
|
"@eslint/compat": "^2.0.2",
|
|
59
82
|
"@eslint/eslintrc": "^3.2.0",
|
|
@@ -74,6 +97,7 @@
|
|
|
74
97
|
"@vitejs/plugin-react": "^5.1.4",
|
|
75
98
|
"@vitest/browser": "^4.0.18",
|
|
76
99
|
"@vitest/coverage-v8": "^4.0.18",
|
|
100
|
+
"ast-v8-to-istanbul": "^0.3.12",
|
|
77
101
|
"eslint": "^9.39.0",
|
|
78
102
|
"eslint-config-prettier": "^10.1.5",
|
|
79
103
|
"eslint-plugin-prettier": "^5.4.1",
|
|
@@ -89,7 +113,9 @@
|
|
|
89
113
|
"postcss-import": "^16.1.1",
|
|
90
114
|
"postcss-prefixwrap": "^1.57.2",
|
|
91
115
|
"prettier": "^3.5.1",
|
|
92
|
-
"
|
|
116
|
+
"react": "^19.2.4",
|
|
117
|
+
"react-dom": "^19.2.4",
|
|
118
|
+
"storybook": "^10.2.10",
|
|
93
119
|
"tailwindcss": "^4.1.13",
|
|
94
120
|
"typescript": "^5.8.3",
|
|
95
121
|
"vite": "^7.1.7",
|
package/dist/assets/js-sdk.css
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700&family=Fira+Code:wght@400;500;600&display=swap";@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){#nm *,#nm :before,#nm :after,#nm ::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}#nm,#nm :host{--font-sans:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-xl:24px;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-background-primary-dark:#101011;--color-background-primary-grouped-dark:#101011;--color-background-primary-grouped-light:#e5e5ea;--color-background-primary-light:#fbfbfd;--color-background-secondary-grouped-dark:#1c1c1e;--color-background-secondary-grouped-light:#fbfbfd;--color-background-tertiary-grouped-dark:#242426;--color-background-tertiary-grouped-light:#f2f2f7;--color-background-universal-overlay-dark:#ffffff0f;--color-background-universal-overlay-light:#00000012;--color-brand-coral-default-dark:#ff6832;--color-brand-coral-default-light:#ff6832;--color-brand-coral-text-big-dark:#ff6832;--color-brand-coral-text-big-light:#e54e1d;--color-brand-mint-text-big-dark:#55d4b9;--color-brand-mint-text-big-light:#04836c;--color-brand-yellow-text-big-dark:#febe00;--color-brand-yellow-text-big-light:#ad6d00;--color-danger-accessible-dark:#fef1f2;--color-danger-accessible-light:#a10010;--color-danger-background-dark:#a10010;--color-danger-background-light:#fef1f2;--color-danger-default-dark:#ff453a;--color-danger-default-light:#ff3b2f;--color-danger-hover-dark:#ff8680;--color-danger-hover-light:#d70015;--color-grey-0:#fff;--color-grey-200:#c7c7cc;--color-label-placeholder-dark:#8e8e93;--color-label-placeholder-light:#8e8e93;--color-label-primary-dark:#fff;--color-label-primary-light:#000;--color-label-quaternary-dark:#000;--color-label-quaternary-light:#fff;--color-label-secondary-dark:#8e8e93;--color-label-secondary-light:#636366;--color-label-tertiary-dark:#636366;--color-label-tertiary-light:#8e8e93;--color-nonadaptable-text-dark:#000;--color-nonadaptable-text-light:#fff;--color-overlay-background-default-dark:#000000a6;--color-overlay-background-default-light:#0000008c;--color-overlay-fill-alternative-dark:#ffffff24;--color-overlay-fill-alternative-light:#00000024;--color-overlay-fill-default-dark:#ffffff0f;--color-overlay-fill-default-light:#00000012;--color-primary-action-button-dark:#325fcb;--color-primary-action-button-hover-dark:#2c4db9;--color-primary-action-button-hover-light:#2c4db9;--color-primary-action-button-light:#3461da;--color-primary-action-disabled-dark:#3a3a3c;--color-primary-action-disabled-light:#d1d1d6;--color-primary-action-graphical-dark:#1c73e8;--color-primary-action-graphical-light:#2c4db9;--color-secondary-action-button-dark:#fff;--color-secondary-action-button-hover-dark:#d1d1d6;--color-secondary-action-button-hover-light:#242426;--color-secondary-action-button-light:#000;--color-secondary-action-disabled-dark:#3a3a3c;--color-secondary-action-disabled-light:#d1d1d6;--color-separator-opaque-alternative-dark:#2c2c2e;--color-separator-opaque-alternative-light:#d1d1d6;--color-separator-opaque-dark:#242426;--color-separator-opaque-light:#e5e5ea;--color-separator-regular-dark:#48484a;--color-separator-regular-light:#aeaeb2;--color-success-default-dark:#31d158;--color-success-default-light:#35c759;--color-tertiary-action-button-dark:#ffffff0f;--color-tertiary-action-button-hover-dark:#ffffff24;--color-tertiary-action-button-hover-light:#00000024;--color-tertiary-action-button-light:#00000012;--color-tertiary-action-disabled-dark:#ffffff0f;--color-tertiary-action-disabled-light:#00000012;--color-warning-default-dark:#fed709;--color-warning-default-light:#ffcc02;--font-mc:Plus Jakarta Sans,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-code:Fira Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}#nm .pointer-events-none{pointer-events:none}#nm .sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#nm .static{position:static}#nm .top-1{top:calc(var(--spacing)*1)}#nm .top-2{top:calc(var(--spacing)*2)}#nm .right-0{right:calc(var(--spacing)*0)}#nm .right-2{right:calc(var(--spacing)*2)}#nm .right-4{right:calc(var(--spacing)*4)}#nm .left-0{left:calc(var(--spacing)*0)}#nm .z-10{z-index:10}#nm .m-10{margin:calc(var(--spacing)*10)}#nm .ml-4{margin-left:calc(var(--spacing)*4)}#nm .h-96{height:calc(var(--spacing)*96)}#nm .h-\[16px\]{height:16px}#nm .h-\[17\.5px\]{height:17.5px}#nm .h-\[20px\]{height:20px}#nm .h-\[21px\]{height:21px}#nm .h-\[24px\]{height:24px}#nm .h-\[28px\]{height:28px}#nm .h-\[32px\]{height:32px}#nm .h-\[36px\]{height:36px}#nm .h-\[40px\]{height:40px}#nm .h-px{height:1px}#nm .w-4{width:calc(var(--spacing)*4)}#nm .w-\[16px\]{width:16px}#nm .w-\[17\.5px\]{width:17.5px}#nm .w-\[20px\]{width:20px}#nm .w-\[21px\]{width:21px}#nm .w-\[28px\]{width:28px}#nm .w-\[32px\]{width:32px}#nm .w-\[36px\]{width:36px}#nm .w-\[40px\]{width:40px}#nm .w-\[52px\]{width:52px}#nm .w-\[64px\]{width:64px}#nm .w-max{width:max-content}#nm .w-px{width:1px}#nm .max-w-60{max-width:calc(var(--spacing)*60)}#nm .min-w-36{min-width:calc(var(--spacing)*36)}#nm .flex-1{flex:1}#nm .\!grow{flex-grow:1!important}#nm .grow{flex-grow:1}#nm .transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}#nm .animate-pulse{animation:var(--animate-pulse)}#nm .animate-spin{animation:var(--animate-spin)}#nm .cursor-pointer{cursor:pointer}#nm .list-disc{list-style-type:disc}#nm .flex-row{flex-direction:row}#nm .justify-start{justify-content:flex-start}#nm .gap-3{gap:calc(var(--spacing)*3)}#nm .gap-4{gap:calc(var(--spacing)*4)}#nm .overflow-x-auto{overflow-x:auto}#nm .rounded-\[3\.75px\]{border-radius:3.75px}#nm .rounded-\[3px\]{border-radius:3px}#nm .rounded-\[4\.5px\]{border-radius:4.5px}#nm .rounded-\[4px\]{border-radius:4px}#nm .rounded-\[5px\]{border-radius:5px}#nm .rounded-\[6px\]{border-radius:6px}#nm .rounded-\[8px\]{border-radius:8px}#nm .rounded-\[10px\]{border-radius:10px}#nm .rounded-full{border-radius:3.40282e38px}#nm .rounded-md{border-radius:var(--radius-md)}#nm .rounded-sm{border-radius:var(--radius-sm)}#nm .border-solid{--tw-border-style:solid;border-style:solid}#nm .border-\[rgba\(255\,255\,255\,0\.0\)\]{border-color:#fff0}#nm .border-danger-default-light{border-color:var(--color-danger-default-light)}#nm .border-grey-0\/0{border-color:#0000}@supports (color:color-mix(in lab,red,red)){#nm .border-grey-0\/0{border-color:var(--color-grey-0)}@supports (color:color-mix(in lab,red,red)){#nm .border-grey-0\/0{border-color:color-mix(in oklab,var(--color-grey-0)0%,transparent)}}}#nm .border-b-label-primary-light{border-bottom-color:var(--color-label-primary-light)}#nm .bg-background-primary-grouped-light{background-color:var(--color-background-primary-grouped-light)}#nm .bg-background-secondary-grouped-light{background-color:var(--color-background-secondary-grouped-light)}#nm .bg-background-tertiary-grouped-light{background-color:var(--color-background-tertiary-grouped-light)}#nm .bg-background-universal-overlay-light{background-color:var(--color-background-universal-overlay-light)}#nm .bg-danger-background-light{background-color:var(--color-danger-background-light)}#nm .bg-label-placeholder-light{background-color:var(--color-label-placeholder-light)}#nm .bg-nonadaptable-text-light{background-color:var(--color-nonadaptable-text-light)}#nm .bg-overlay-fill-alternative-light{background-color:var(--color-overlay-fill-alternative-light)}#nm .bg-overlay-fill-default-light{background-color:var(--color-overlay-fill-default-light)}#nm .bg-primary-action-button-light{background-color:var(--color-primary-action-button-light)}#nm .bg-separator-opaque-alternative-light{background-color:var(--color-separator-opaque-alternative-light)}#nm .bg-separator-opaque-light{background-color:var(--color-separator-opaque-light)}#nm .bg-separator-regular-light{background-color:var(--color-separator-regular-light)}#nm .bg-success-default-light{background-color:var(--color-success-default-light)}#nm .bg-tertiary-action-button-light{background-color:var(--color-tertiary-action-button-light)}#nm .bg-transparent{background-color:#0000}#nm .bg-warning-default-light{background-color:var(--color-warning-default-light)}#nm .p-1{padding:calc(var(--spacing)*1)}#nm .p-2{padding:calc(var(--spacing)*2)}#nm .p-\[1\.5px\]{padding:1.5px}#nm .p-\[1\.25px\]{padding:1.25px}#nm .p-\[2px\]{padding:2px}#nm .px-1{padding-inline:calc(var(--spacing)*1)}#nm .px-2{padding-inline:calc(var(--spacing)*2)}#nm .px-3{padding-inline:calc(var(--spacing)*3)}#nm .py-0\.5{padding-block:calc(var(--spacing)*.5)}#nm .py-1{padding-block:calc(var(--spacing)*1)}#nm .py-2{padding-block:calc(var(--spacing)*2)}#nm .pb-6{padding-bottom:calc(var(--spacing)*6)}#nm .font-code{font-family:var(--font-code)}#nm .font-mc{font-family:var(--font-mc)}#nm .font-sans{font-family:var(--font-sans)}#nm .text-\[10px\]{font-size:10px}#nm .text-\[12px\]{font-size:12px}#nm .text-\[13px\]{font-size:13px}#nm .text-\[15px\]{font-size:15px}#nm .text-\[20px\]{font-size:20px}#nm .text-\[24px\]{font-size:24px}#nm .text-\[32px\]{font-size:32px}#nm .text-\[40px\]{font-size:40px}#nm .text-\[48px\]{font-size:48px}#nm .text-\[60px\]{font-size:60px}#nm .text-\[72px\]{font-size:72px}#nm .leading-\[14px\]{--tw-leading:14px;line-height:14px}#nm .leading-\[16px\]{--tw-leading:16px;line-height:16px}#nm .leading-\[20px\]{--tw-leading:20px;line-height:20px}#nm .leading-\[24px\]{--tw-leading:24px;line-height:24px}#nm .leading-\[28px\]{--tw-leading:28px;line-height:28px}#nm .leading-\[32px\]{--tw-leading:32px;line-height:32px}#nm .leading-\[40px\]{--tw-leading:40px;line-height:40px}#nm .leading-\[48px\]{--tw-leading:48px;line-height:48px}#nm .leading-\[52px\]{--tw-leading:52px;line-height:52px}#nm .leading-\[60px\]{--tw-leading:60px;line-height:60px}#nm .leading-\[72px\]{--tw-leading:72px;line-height:72px}#nm .leading-\[80px\]{--tw-leading:80px;line-height:80px}#nm .leading-\[90px\]{--tw-leading:90px;line-height:90px}#nm .font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}#nm .font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}#nm .font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}#nm .text-brand-coral-default-light{color:var(--color-brand-coral-default-light)}#nm .text-brand-coral-text-big-light{color:var(--color-brand-coral-text-big-light)}#nm .text-brand-mint-text-big-light{color:var(--color-brand-mint-text-big-light)}#nm .text-brand-yellow-text-big-light{color:var(--color-brand-yellow-text-big-light)}#nm .text-label-placeholder-light{color:var(--color-label-placeholder-light)}#nm .text-label-secondary-light{color:var(--color-label-secondary-light)}#nm .text-label-tertiary-light{color:var(--color-label-tertiary-light)}#nm .text-nonadaptable-text-dark{color:var(--color-nonadaptable-text-dark)}#nm .text-nonadaptable-text-light{color:var(--color-nonadaptable-text-light)}#nm .text-primary-action-button-light{color:var(--color-primary-action-button-light)}#nm .text-primary-action-disabled-light{color:var(--color-primary-action-disabled-light)}#nm .capitalize{text-transform:capitalize}#nm .underline{text-decoration-line:underline}#nm .shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}#nm .backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-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,);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,)}@media(hover:hover){#nm .group-hover\:visible:is(:where(.group):hover *){visibility:visible}#nm .group-hover\:block:is(:where(.group):hover *){display:block}#nm .group-hover\:text-label-quaternary-light:is(:where(.group):hover *){color:var(--color-label-quaternary-light)}}#nm .placeholder\:text-label-placeholder-light::placeholder{color:var(--color-label-placeholder-light)}@media(hover:hover){#nm .hover\:border-danger-accessible-light:hover{border-color:var(--color-danger-accessible-light)}#nm .hover\:bg-background-universal-overlay-light:hover{background-color:var(--color-background-universal-overlay-light)}#nm .hover\:bg-danger-background-light:hover{background-color:var(--color-danger-background-light)}#nm .hover\:bg-danger-hover-light:hover{background-color:var(--color-danger-hover-light)}#nm .hover\:bg-overlay-fill-default-light:hover{background-color:var(--color-overlay-fill-default-light)}#nm .hover\:bg-primary-action-button-hover-light:hover{background-color:var(--color-primary-action-button-hover-light)}#nm .hover\:bg-secondary-action-button-hover-light:hover{background-color:var(--color-secondary-action-button-hover-light)}#nm .hover\:bg-tertiary-action-button-hover-light:hover{background-color:var(--color-tertiary-action-button-hover-light)}#nm .hover\:text-label-secondary-light:hover{color:var(--color-label-secondary-light)}#nm .hover\:text-primary-action-graphical-light:hover{color:var(--color-primary-action-graphical-light)}}#nm .focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){#nm .focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}#nm .disabled\:pointer-events-none:disabled{pointer-events:none}#nm .disabled\:border:disabled{border-style:var(--tw-border-style);border-width:1px}#nm .disabled\:border-separator-opaque-light:disabled{border-color:var(--color-separator-opaque-light)}#nm .disabled\:bg-primary-action-disabled-light:disabled{background-color:var(--color-primary-action-disabled-light)}#nm .disabled\:bg-secondary-action-disabled-light:disabled{background-color:var(--color-secondary-action-disabled-light)}#nm .disabled\:bg-tertiary-action-disabled-light:disabled{background-color:var(--color-tertiary-action-disabled-light)}#nm .disabled\:text-primary-action-disabled-light:disabled{color:var(--color-primary-action-disabled-light)}@media(prefers-color-scheme:dark){#nm .dark\:border-danger-default-dark{border-color:var(--color-danger-default-dark)}#nm .dark\:border-separator-opaque-dark{border-color:var(--color-separator-opaque-dark)}#nm .dark\:border-separator-regular-dark{border-color:var(--color-separator-regular-dark)}#nm .dark\:border-b-label-primary-dark{border-bottom-color:var(--color-label-primary-dark)}#nm .dark\:bg-background-primary-dark{background-color:var(--color-background-primary-dark)}#nm .dark\:bg-background-primary-grouped-dark{background-color:var(--color-background-primary-grouped-dark)}#nm .dark\:bg-background-secondary-grouped-dark{background-color:var(--color-background-secondary-grouped-dark)}#nm .dark\:bg-background-tertiary-grouped-dark{background-color:var(--color-background-tertiary-grouped-dark)}#nm .dark\:bg-background-universal-overlay-dark{background-color:var(--color-background-universal-overlay-dark)}#nm .dark\:bg-danger-background-dark{background-color:var(--color-danger-background-dark)}#nm .dark\:bg-overlay-background-default-dark{background-color:var(--color-overlay-background-default-dark)}#nm .dark\:bg-overlay-fill-alternative-dark{background-color:var(--color-overlay-fill-alternative-dark)}#nm .dark\:bg-overlay-fill-default-dark{background-color:var(--color-overlay-fill-default-dark)}#nm .dark\:bg-primary-action-button-dark{background-color:var(--color-primary-action-button-dark)}#nm .dark\:bg-secondary-action-button-dark{background-color:var(--color-secondary-action-button-dark)}#nm .dark\:bg-separator-opaque-alternative-dark{background-color:var(--color-separator-opaque-alternative-dark)}#nm .dark\:bg-separator-opaque-dark{background-color:var(--color-separator-opaque-dark)}#nm .dark\:bg-separator-regular-dark{background-color:var(--color-separator-regular-dark)}#nm .dark\:bg-success-default-dark{background-color:var(--color-success-default-dark)}#nm .dark\:bg-tertiary-action-button-dark{background-color:var(--color-tertiary-action-button-dark)}#nm .dark\:bg-warning-default-dark{background-color:var(--color-warning-default-dark)}#nm .dark\:text-brand-coral-default-dark{color:var(--color-brand-coral-default-dark)}#nm .dark\:text-brand-coral-text-big-dark{color:var(--color-brand-coral-text-big-dark)}#nm .dark\:text-brand-mint-text-big-dark{color:var(--color-brand-mint-text-big-dark)}#nm .dark\:text-brand-yellow-text-big-dark{color:var(--color-brand-yellow-text-big-dark)}#nm .dark\:text-label-placeholder-dark{color:var(--color-label-placeholder-dark)}#nm .dark\:text-label-primary-dark{color:var(--color-label-primary-dark)}#nm .dark\:text-label-quaternary-dark{color:var(--color-label-quaternary-dark)}#nm .dark\:text-label-secondary-dark{color:var(--color-label-secondary-dark)}#nm .dark\:text-label-tertiary-dark{color:var(--color-label-tertiary-dark)}#nm .dark\:text-nonadaptable-text-dark{color:var(--color-nonadaptable-text-dark)}#nm .dark\:text-primary-action-button-dark{color:var(--color-primary-action-button-dark)}#nm .dark\:text-primary-action-disabled-dark{color:var(--color-primary-action-disabled-dark)}@media(hover:hover){#nm .dark\:group-hover\:text-label-quaternary-dark:is(:where(.group):hover *){color:var(--color-label-quaternary-dark)}}#nm .dark\:placeholder\:text-label-placeholder-dark::placeholder{color:var(--color-label-placeholder-dark)}@media(hover:hover){#nm .dark\:hover\:border-danger-accessible-dark:hover{border-color:var(--color-danger-accessible-dark)}#nm .dark\:hover\:bg-background-universal-overlay-dark:hover{background-color:var(--color-background-universal-overlay-dark)}#nm .dark\:hover\:bg-danger-background-dark:hover{background-color:var(--color-danger-background-dark)}#nm .dark\:hover\:bg-danger-hover-dark:hover{background-color:var(--color-danger-hover-dark)}#nm .dark\:hover\:bg-overlay-fill-default-dark:hover{background-color:var(--color-overlay-fill-default-dark)}#nm .dark\:hover\:bg-primary-action-button-hover-dark:hover{background-color:var(--color-primary-action-button-hover-dark)}#nm .dark\:hover\:bg-secondary-action-button-hover-dark:hover{background-color:var(--color-secondary-action-button-hover-dark)}#nm .dark\:hover\:bg-tertiary-action-button-hover-dark:hover{background-color:var(--color-tertiary-action-button-hover-dark)}#nm .dark\:hover\:text-primary-action-graphical-dark:hover{color:var(--color-primary-action-graphical-dark)}}#nm .dark\:disabled\:border-separator-opaque-dark:disabled{border-color:var(--color-separator-opaque-dark)}#nm .dark\:disabled\:bg-primary-action-disabled-dark:disabled{background-color:var(--color-primary-action-disabled-dark)}#nm .dark\:disabled\:bg-secondary-action-disabled-dark:disabled{background-color:var(--color-secondary-action-disabled-dark)}#nm .dark\:disabled\:bg-tertiary-action-disabled-dark:disabled{background-color:var(--color-tertiary-action-disabled-dark)}#nm .dark\:disabled\:text-primary-action-disabled-dark:disabled{color:var(--color-primary-action-disabled-dark)}}#nm .\[\&\]\:text-danger-accessible-light{color:var(--color-danger-accessible-light)}#nm .\[\&\]\:text-label-tertiary-light{color:var(--color-label-tertiary-light)}@media(hover:hover){#nm .group-hover\:\[\&\]\:text-label-tertiary-light:is(:where(.group):hover *){color:var(--color-label-tertiary-light)}}@media(prefers-color-scheme:dark){#nm .dark\:\[\&\]\:text-danger-accessible-dark{color:var(--color-danger-accessible-dark)}#nm .dark\:\[\&\]\:text-label-tertiary-dark{color:var(--color-label-tertiary-dark)}@media(hover:hover){#nm .dark\:group-hover\:\[\&\]\:text-label-tertiary-dark:is(:where(.group):hover *){color:var(--color-label-tertiary-dark)}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){#nm *,#nm :before,#nm :after,#nm ::backdrop{--tw-border-style:solid;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}#nm,#nm :host{--font-sans:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--radius-lg:.5rem;--radius-xl:.75rem;--aspect-video:16/9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-background-primary-dark:#101011;--color-background-primary-light:#fbfbfd;--color-background-secondary-dark:#1c1c1e;--color-background-secondary-light:#f2f2f7;--color-grey-200:#c7c7cc;--color-label-primary-dark:#fff;--color-label-primary-light:#000;--color-label-quaternary-dark:#000;--color-label-quaternary-light:#fff;--color-material-grey-5:#f6f6f6d6;--color-material-grey-50:#f6f6f699;--color-material-grey-850:#0000004a;--color-material-grey-950:#00000080;--color-overlay-background-default-dark:#000000a6;--color-overlay-background-default-light:#0000008c;--color-secondary-action-button-dark:#fff;--color-secondary-action-button-light:#000;--color-separator-opaque-dark:#242426;--color-separator-opaque-light:#e5e5ea;--color-separator-regular-dark:#48484a;--color-separator-regular-light:#aeaeb2}#nm *,#nm :after,#nm :before,#nm ::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}#nm ::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}#nm,#nm :host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}#nm hr{height:0;color:inherit;border-top-width:1px}#nm abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}#nm h1,#nm h2,#nm h3,#nm h4,#nm h5,#nm h6{font-size:inherit;font-weight:inherit}#nm a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}#nm b,#nm strong{font-weight:bolder}#nm code,#nm kbd,#nm samp,#nm pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}#nm small{font-size:80%}#nm sub,#nm sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}#nm sub{bottom:-.25em}#nm sup{top:-.5em}#nm table{text-indent:0;border-color:inherit;border-collapse:collapse}#nm :-moz-focusring{outline:auto}#nm progress{vertical-align:baseline}#nm summary{display:list-item}#nm ol,#nm ul,#nm menu{list-style:none}#nm img,#nm svg,#nm video,#nm canvas,#nm audio,#nm iframe,#nm embed,#nm object{vertical-align:middle;display:block}#nm img,#nm video{max-width:100%;height:auto}#nm button,#nm input,#nm select,#nm optgroup,#nm textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}#nm ::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}#nm :where(select:is([multiple],[size])) optgroup{font-weight:bolder}#nm :where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}#nm ::file-selector-button{margin-inline-end:4px}#nm ::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){#nm ::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){#nm ::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){#nm ::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}}#nm textarea{resize:vertical}#nm ::-webkit-search-decoration{-webkit-appearance:none}#nm ::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}#nm ::-webkit-datetime-edit{display:inline-flex}#nm ::-webkit-datetime-edit-fields-wrapper{padding:0}#nm ::-webkit-datetime-edit{padding-block:0}#nm ::-webkit-datetime-edit-year-field{padding-block:0}#nm ::-webkit-datetime-edit-month-field{padding-block:0}#nm ::-webkit-datetime-edit-day-field{padding-block:0}#nm ::-webkit-datetime-edit-hour-field{padding-block:0}#nm ::-webkit-datetime-edit-minute-field{padding-block:0}#nm ::-webkit-datetime-edit-second-field{padding-block:0}#nm ::-webkit-datetime-edit-millisecond-field{padding-block:0}#nm ::-webkit-datetime-edit-meridiem-field{padding-block:0}#nm ::-webkit-calendar-picker-indicator{line-height:1}#nm :-moz-ui-invalid{box-shadow:none}#nm button,#nm input:where([type=button],[type=reset],[type=submit]){appearance:button}#nm ::file-selector-button{appearance:button}#nm ::-webkit-inner-spin-button{height:auto}#nm ::-webkit-outer-spin-button{height:auto}#nm [hidden]:where(:not([hidden=until-found])){display:none!important}#nm *,#nm :after,#nm :before,#nm ::backdrop{border-color:var(--color-grey-200,currentcolor)}#nm ::file-selector-button{border-color:var(--color-grey-200,currentcolor)}#nm button:not(:disabled),#nm [role=button]:not(:disabled){cursor:pointer}#nm .invisible{visibility:hidden}#nm .visible{visibility:visible}#nm .absolute{position:absolute}#nm .fixed{position:fixed}#nm .relative{position:relative}#nm .inset-0{inset:calc(var(--spacing)*0)}#nm .-top-2{top:calc(var(--spacing)*-2)}#nm .-right-2{right:calc(var(--spacing)*-2)}#nm .order-1{order:1}#nm .order-2{order:2}#nm .container{width:100%}@media(min-width:40rem){#nm .container{max-width:40rem}}@media(min-width:48rem){#nm .container{max-width:48rem}}@media(min-width:64rem){#nm .container{max-width:64rem}}@media(min-width:80rem){#nm .container{max-width:80rem}}@media(min-width:96rem){#nm .container{max-width:96rem}}#nm .mx-4{margin-inline:calc(var(--spacing)*4)}#nm .my-8{margin-block:calc(var(--spacing)*8)}#nm .mb-1{margin-bottom:calc(var(--spacing)*1)}#nm .mb-6{margin-bottom:calc(var(--spacing)*6)}#nm .block{display:block}#nm .flex{display:flex}#nm .grid{display:grid}#nm .hidden{display:none}#nm .aspect-video{aspect-ratio:var(--aspect-video)}#nm .h-8{height:calc(var(--spacing)*8)}#nm .h-\[1200px\]{height:1200px}#nm .h-full{height:100%}#nm .max-h-\[272px\]{max-height:272px}#nm .min-h-20{min-height:calc(var(--spacing)*20)}#nm .w-8{width:calc(var(--spacing)*8)}#nm .w-full{width:100%}#nm .shrink{flex-shrink:1}#nm .shrink-0{flex-shrink:0}#nm .resize-none{resize:none}#nm .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}#nm .flex-col{flex-direction:column}#nm .flex-wrap{flex-wrap:wrap}#nm .items-center{align-items:center}#nm .items-end{align-items:flex-end}#nm .justify-between{justify-content:space-between}#nm .justify-center{justify-content:center}#nm .justify-end{justify-content:flex-end}#nm .gap-1{gap:calc(var(--spacing)*1)}#nm .gap-2{gap:calc(var(--spacing)*2)}#nm .gap-6{gap:calc(var(--spacing)*6)}#nm .overflow-hidden{overflow:hidden}#nm .overflow-y-auto{overflow-y:auto}#nm .overflow-y-hidden{overflow-y:hidden}#nm .rounded-lg{border-radius:var(--radius-lg)}#nm .rounded-xl{border-radius:var(--radius-xl)}#nm .border{border-style:var(--tw-border-style);border-width:1px}#nm .border-label-quaternary-light{border-color:var(--color-label-quaternary-light)}#nm .border-separator-opaque-light{border-color:var(--color-separator-opaque-light)}#nm .border-separator-regular-light{border-color:var(--color-separator-regular-light)}#nm .material-medium{background-color:var(--color-material-grey-50);--tw-backdrop-blur:blur(30px);-webkit-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,);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,)}@media(prefers-color-scheme:dark){#nm .material-medium{background-color:var(--color-material-grey-850)}}#nm .material-ultra-thick{background-color:var(--color-material-grey-5);--tw-backdrop-blur:blur(30px);-webkit-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,);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,)}@media(prefers-color-scheme:dark){#nm .material-ultra-thick{background-color:var(--color-material-grey-950)}}#nm .bg-background-primary-light{background-color:var(--color-background-primary-light)}#nm .bg-background-secondary-light{background-color:var(--color-background-secondary-light)}#nm .bg-overlay-background-default-light{background-color:var(--color-overlay-background-default-light)}#nm .bg-secondary-action-button-light{background-color:var(--color-secondary-action-button-light)}#nm .object-cover{object-fit:cover}#nm .p-3{padding:calc(var(--spacing)*3)}#nm .p-4{padding:calc(var(--spacing)*4)}#nm .p-10{padding:calc(var(--spacing)*10)}#nm .px-4{padding-inline:calc(var(--spacing)*4)}#nm .py-3{padding-block:calc(var(--spacing)*3)}#nm .pt-4{padding-top:calc(var(--spacing)*4)}#nm .pt-10{padding-top:calc(var(--spacing)*10)}#nm .pb-3{padding-bottom:calc(var(--spacing)*3)}#nm .break-words{overflow-wrap:break-word}#nm .whitespace-pre-wrap{white-space:pre-wrap}#nm .text-label-primary-light{color:var(--color-label-primary-light)}#nm .text-label-quaternary-light{color:var(--color-label-quaternary-light)}#nm .outline-hidden{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){#nm .outline-hidden{outline-offset:2px;outline:2px solid #0000}}#nm .transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(min-width:48rem){#nm .md\:-top-4{top:calc(var(--spacing)*-4)}#nm .md\:-right-4{right:calc(var(--spacing)*-4)}#nm .md\:order-1{order:1}#nm .md\:order-2{order:2}#nm .md\:mb-0{margin-bottom:calc(var(--spacing)*0)}#nm .md\:mb-2{margin-bottom:calc(var(--spacing)*2)}#nm .md\:block{display:block}#nm .md\:aspect-square{aspect-ratio:1}#nm .md\:max-h-full{max-height:100%}#nm .md\:max-w-\[960px\]{max-width:960px}#nm .md\:min-w-\[660px\]{min-width:660px}#nm .md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}#nm .md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}#nm .md\:flex-row-reverse{flex-direction:row-reverse}#nm .md\:items-start{align-items:flex-start}#nm .md\:justify-start{justify-content:flex-start}#nm .md\:gap-2{gap:calc(var(--spacing)*2)}#nm .md\:gap-4{gap:calc(var(--spacing)*4)}#nm .md\:gap-8{gap:calc(var(--spacing)*8)}#nm .md\:gap-16{gap:calc(var(--spacing)*16)}#nm .md\:p-8{padding:calc(var(--spacing)*8)}#nm .md\:py-4{padding-block:calc(var(--spacing)*4)}}@media(prefers-color-scheme:dark){#nm .dark\:border-label-quaternary-dark{border-color:var(--color-label-quaternary-dark)}#nm .dark\:border-separator-opaque-dark{border-color:var(--color-separator-opaque-dark)}#nm .dark\:border-separator-regular-dark{border-color:var(--color-separator-regular-dark)}#nm .dark\:bg-background-primary-dark{background-color:var(--color-background-primary-dark)}#nm .dark\:bg-background-secondary-dark{background-color:var(--color-background-secondary-dark)}#nm .dark\:bg-overlay-background-default-dark{background-color:var(--color-overlay-background-default-dark)}#nm .dark\:bg-secondary-action-button-dark{background-color:var(--color-secondary-action-button-dark)}#nm .dark\:text-label-primary-dark{color:var(--color-label-primary-dark)}#nm .dark\:text-label-quaternary-dark{color:var(--color-label-quaternary-dark)}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}
|