@nemme/js-sdk 0.5.1 → 0.6.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-CEykSZ2c.js +389 -0
- package/dist/chunks/client-CEykSZ2c.js.map +1 -0
- package/dist/chunks/client-DZJN73sh.js +2 -0
- package/dist/chunks/client-DZJN73sh.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-Dre89wMr.js +6143 -0
- package/dist/chunks/form-manager-Dre89wMr.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 +2 -1
- package/dist/deliveries/delivery-manager.d.ts +3 -2
- package/dist/forms/form-manager.d.ts +1 -10
- 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 -46
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.esm.js +6 -6732
- package/dist/index.esm.js.map +1 -1
- package/dist/js-sdk.css +1 -0
- package/dist/nemme-sdk.umd.js +4 -39
- package/dist/nemme-sdk.umd.js.map +1 -1
- package/dist/react/NemmeProvider.d.ts +2 -2
- 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 +67 -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/types/forms.d.ts +10 -0
- package/package.json +57 -30
- package/dist/assets/js-sdk.css +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { default as React, ReactNode } from 'react';
|
|
2
1
|
import { ClientConfigType } from '../client';
|
|
2
|
+
import * as React from 'react';
|
|
3
3
|
interface NemmeProviderProps {
|
|
4
4
|
clientKey: string;
|
|
5
5
|
config: ClientConfigType;
|
|
6
|
-
children: ReactNode;
|
|
6
|
+
children: React.ReactNode;
|
|
7
7
|
}
|
|
8
8
|
export declare const NemmeProvider: React.FC<NemmeProviderProps>;
|
|
9
9
|
export {};
|
package/dist/react.cjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const z=require("./chunks/jsx-runtime-BubrbI3X.js"),r=require("react"),w=require("./chunks/client-DZJN73sh.js"),d=r.createContext(void 0),y=({clientKey:e,config:n,children:s})=>{const[l,i]=r.useState(null),[o,u]=r.useState(!1),[C,a]=r.useState(null);r.useEffect(()=>{let c=null,m=!1;const x=async()=>{try{const t=new w.NemmeClient(e);if(await t.init(n),m){t.destroy();return}c=t,i(t),u(t.initialized),a(t.lastInitError?t.lastInitError.message:null)}catch(t){m||(a(t instanceof Error?t.message:"Failed to initialize Nemme client"),u(!1))}},v=setTimeout(()=>{i(null),u(!1),a(null)},0);return x(),()=>{clearTimeout(v),m=!0,c&&c.destroy()}},[e,n]);const N={client:l,isInitialized:o,error:C};return z.jsxRuntimeExports.jsx(d.Provider,{value:N,children:s})},f=()=>{const e=r.useContext(d);if(e===void 0)throw new Error("useNemmeContext must be used within a NemmeProvider");return e},E=()=>{const{client:e,isInitialized:n,error:s}=f(),l=r.useCallback(async o=>{if(!e||!n){console.warn("Nemme client not initialized");return}return e.track(o)},[e,n]),i=r.useCallback(async()=>{if(!e||!n){console.warn("Nemme client not initialized");return}return e.flush()},[e,n]);return{track:l,flush:i,isInitialized:n,error:s,client:e}};exports.NemmeProvider=y;exports.useNemme=E;exports.useNemmeContext=f;
|
|
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, useState } 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\nexport const NemmeProvider: React.FC<NemmeProviderProps> = ({ clientKey, config, children }) => {\n const [client, setClient] = useState<NemmeClient | null>(null);\n const [isInitialized, setIsInitialized] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n let currentClient: NemmeClient | null = null;\n let isCancelled = false;\n\n const initializeClient = async () => {\n try {\n const nemmeClient = new NemmeClient(clientKey);\n await nemmeClient.init(config);\n\n // Check if effect was cancelled during async operation\n if (isCancelled) {\n nemmeClient.destroy();\n return;\n }\n\n currentClient = nemmeClient;\n setClient(nemmeClient);\n setIsInitialized(nemmeClient.initialized);\n setError(nemmeClient.lastInitError ? nemmeClient.lastInitError.message : null);\n } catch (err) {\n if (!isCancelled) {\n setError(err instanceof Error ? err.message : 'Failed to initialize Nemme client');\n setIsInitialized(false);\n }\n }\n };\n\n // Reset state when starting new initialization (deferred to avoid sync setState in effect)\n const resetId = setTimeout(() => {\n setClient(null);\n setIsInitialized(false);\n setError(null);\n }, 0);\n\n initializeClient();\n\n return () => {\n clearTimeout(resetId);\n isCancelled = true;\n if (currentClient) {\n currentClient.destroy();\n }\n };\n }, [clientKey, config]);\n\n const value: NemmeContextType = {\n client,\n isInitialized,\n 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","NemmeProvider","clientKey","config","children","client","setClient","useState","isInitialized","setIsInitialized","error","setError","useEffect","currentClient","isCancelled","initializeClient","nemmeClient","NemmeClient","err","resetId","value","jsx","useNemmeContext","context","useContext","useNemme","track","useCallback","options","flush"],"mappings":"gMASaA,EAAeC,EAAAA,cAA4C,MAAS,ECEpEC,EAA8C,CAAC,CAAE,UAAAC,EAAW,OAAAC,EAAQ,SAAAC,KAAe,CAC9F,KAAM,CAACC,EAAQC,CAAS,EAAIC,EAAAA,SAA6B,IAAI,EACvD,CAACC,EAAeC,CAAgB,EAAIF,EAAAA,SAAS,EAAK,EAClD,CAACG,EAAOC,CAAQ,EAAIJ,EAAAA,SAAwB,IAAI,EAEtDK,EAAAA,UAAU,IAAM,CACd,IAAIC,EAAoC,KACpCC,EAAc,GAElB,MAAMC,EAAmB,SAAY,CACnC,GAAI,CACF,MAAMC,EAAc,IAAIC,EAAAA,YAAYf,CAAS,EAI7C,GAHA,MAAMc,EAAY,KAAKb,CAAM,EAGzBW,EAAa,CACfE,EAAY,QAAA,EACZ,MACF,CAEAH,EAAgBG,EAChBV,EAAUU,CAAW,EACrBP,EAAiBO,EAAY,WAAW,EACxCL,EAASK,EAAY,cAAgBA,EAAY,cAAc,QAAU,IAAI,CAC/E,OAASE,EAAK,CACPJ,IACHH,EAASO,aAAe,MAAQA,EAAI,QAAU,mCAAmC,EACjFT,EAAiB,EAAK,EAE1B,CACF,EAGMU,EAAU,WAAW,IAAM,CAC/Bb,EAAU,IAAI,EACdG,EAAiB,EAAK,EACtBE,EAAS,IAAI,CACf,EAAG,CAAC,EAEJ,OAAAI,EAAA,EAEO,IAAM,CACX,aAAaI,CAAO,EACpBL,EAAc,GACVD,GACFA,EAAc,QAAA,CAElB,CACF,EAAG,CAACX,EAAWC,CAAM,CAAC,EAEtB,MAAMiB,EAA0B,CAAA,OAC9Bf,EACA,cAAAG,EACA,MAAAE,CAAA,EAGF,OAAOW,EAAAA,kBAAAA,IAACtB,EAAa,SAAb,CAAsB,MAAAqB,EAAe,SAAAhB,CAAA,CAAS,CACxD,ECjEakB,EAAkB,IAAM,CACnC,MAAMC,EAAUC,EAAAA,WAAWzB,CAAY,EACvC,GAAIwB,IAAY,OACd,MAAM,IAAI,MAAM,qDAAqD,EAEvE,OAAOA,CACT,ECLaE,EAAW,IAAM,CAC5B,KAAM,CAAE,OAAApB,EAAQ,cAAAG,EAAe,MAAAE,CAAA,EAAUY,EAAA,EAEnCI,EAAQC,EAAAA,YACZ,MAAoCC,GAAe,CACjD,GAAI,CAACvB,GAAU,CAACG,EAAe,CAC7B,QAAQ,KAAK,8BAA8B,EAC3C,MACF,CACA,OAAOH,EAAO,MAAMuB,CAAO,CAC7B,EACA,CAACvB,EAAQG,CAAa,CAAA,EAGlBqB,EAAQF,EAAAA,YAAY,SAAY,CACpC,GAAI,CAACtB,GAAU,CAACG,EAAe,CAC7B,QAAQ,KAAK,8BAA8B,EAC3C,MACF,CACA,OAAOH,EAAO,MAAA,CAChB,EAAG,CAACA,EAAQG,CAAa,CAAC,EAE1B,MAAO,CACL,MAAAkB,EACA,MAAAG,EACA,cAAArB,EACA,MAAAE,EACA,OAAAL,CAAA,CAEJ"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { j as w } from "./chunks/jsx-runtime-jIxVPx5o.js";
|
|
2
|
+
import { createContext as E, useState as u, useEffect as I, useContext as v, useCallback as d } from "react";
|
|
3
|
+
import { N as h } from "./chunks/client-CEykSZ2c.js";
|
|
4
|
+
const f = E(void 0), P = ({ clientKey: e, config: n, children: i }) => {
|
|
5
|
+
const [s, r] = u(null), [o, l] = u(!1), [C, a] = u(null);
|
|
6
|
+
I(() => {
|
|
7
|
+
let c = null, m = !1;
|
|
8
|
+
const x = async () => {
|
|
9
|
+
try {
|
|
10
|
+
const t = new h(e);
|
|
11
|
+
if (await t.init(n), m) {
|
|
12
|
+
t.destroy();
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
c = t, r(t), l(t.initialized), a(t.lastInitError ? t.lastInitError.message : null);
|
|
16
|
+
} catch (t) {
|
|
17
|
+
m || (a(t instanceof Error ? t.message : "Failed to initialize Nemme client"), l(!1));
|
|
18
|
+
}
|
|
19
|
+
}, z = setTimeout(() => {
|
|
20
|
+
r(null), l(!1), a(null);
|
|
21
|
+
}, 0);
|
|
22
|
+
return x(), () => {
|
|
23
|
+
clearTimeout(z), m = !0, c && c.destroy();
|
|
24
|
+
};
|
|
25
|
+
}, [e, n]);
|
|
26
|
+
const N = {
|
|
27
|
+
client: s,
|
|
28
|
+
isInitialized: o,
|
|
29
|
+
error: C
|
|
30
|
+
};
|
|
31
|
+
return /* @__PURE__ */ w.jsx(f.Provider, { value: N, children: i });
|
|
32
|
+
}, p = () => {
|
|
33
|
+
const e = v(f);
|
|
34
|
+
if (e === void 0)
|
|
35
|
+
throw new Error("useNemmeContext must be used within a NemmeProvider");
|
|
36
|
+
return e;
|
|
37
|
+
}, b = () => {
|
|
38
|
+
const { client: e, isInitialized: n, error: i } = p(), s = d(
|
|
39
|
+
async (o) => {
|
|
40
|
+
if (!e || !n) {
|
|
41
|
+
console.warn("Nemme client not initialized");
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
return e.track(o);
|
|
45
|
+
},
|
|
46
|
+
[e, n]
|
|
47
|
+
), r = d(async () => {
|
|
48
|
+
if (!e || !n) {
|
|
49
|
+
console.warn("Nemme client not initialized");
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
return e.flush();
|
|
53
|
+
}, [e, n]);
|
|
54
|
+
return {
|
|
55
|
+
track: s,
|
|
56
|
+
flush: r,
|
|
57
|
+
isInitialized: n,
|
|
58
|
+
error: i,
|
|
59
|
+
client: e
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
export {
|
|
63
|
+
P as NemmeProvider,
|
|
64
|
+
b as useNemme,
|
|
65
|
+
p as useNemmeContext
|
|
66
|
+
};
|
|
67
|
+
//# 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, useState } 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\nexport const NemmeProvider: React.FC<NemmeProviderProps> = ({ clientKey, config, children }) => {\n const [client, setClient] = useState<NemmeClient | null>(null);\n const [isInitialized, setIsInitialized] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n let currentClient: NemmeClient | null = null;\n let isCancelled = false;\n\n const initializeClient = async () => {\n try {\n const nemmeClient = new NemmeClient(clientKey);\n await nemmeClient.init(config);\n\n // Check if effect was cancelled during async operation\n if (isCancelled) {\n nemmeClient.destroy();\n return;\n }\n\n currentClient = nemmeClient;\n setClient(nemmeClient);\n setIsInitialized(nemmeClient.initialized);\n setError(nemmeClient.lastInitError ? nemmeClient.lastInitError.message : null);\n } catch (err) {\n if (!isCancelled) {\n setError(err instanceof Error ? err.message : 'Failed to initialize Nemme client');\n setIsInitialized(false);\n }\n }\n };\n\n // Reset state when starting new initialization (deferred to avoid sync setState in effect)\n const resetId = setTimeout(() => {\n setClient(null);\n setIsInitialized(false);\n setError(null);\n }, 0);\n\n initializeClient();\n\n return () => {\n clearTimeout(resetId);\n isCancelled = true;\n if (currentClient) {\n currentClient.destroy();\n }\n };\n }, [clientKey, config]);\n\n const value: NemmeContextType = {\n client,\n isInitialized,\n 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","NemmeProvider","clientKey","config","children","client","setClient","useState","isInitialized","setIsInitialized","error","setError","useEffect","currentClient","isCancelled","initializeClient","nemmeClient","NemmeClient","err","resetId","value","jsx","useNemmeContext","context","useContext","useNemme","track","useCallback","options","flush"],"mappings":";;;AASO,MAAMA,IAAeC,EAA4C,MAAS,GCEpEC,IAA8C,CAAC,EAAE,WAAAC,GAAW,QAAAC,GAAQ,UAAAC,QAAe;AAC9F,QAAM,CAACC,GAAQC,CAAS,IAAIC,EAA6B,IAAI,GACvD,CAACC,GAAeC,CAAgB,IAAIF,EAAS,EAAK,GAClD,CAACG,GAAOC,CAAQ,IAAIJ,EAAwB,IAAI;AAEtD,EAAAK,EAAU,MAAM;AACd,QAAIC,IAAoC,MACpCC,IAAc;AAElB,UAAMC,IAAmB,YAAY;AACnC,UAAI;AACF,cAAMC,IAAc,IAAIC,EAAYf,CAAS;AAI7C,YAHA,MAAMc,EAAY,KAAKb,CAAM,GAGzBW,GAAa;AACf,UAAAE,EAAY,QAAA;AACZ;AAAA,QACF;AAEA,QAAAH,IAAgBG,GAChBV,EAAUU,CAAW,GACrBP,EAAiBO,EAAY,WAAW,GACxCL,EAASK,EAAY,gBAAgBA,EAAY,cAAc,UAAU,IAAI;AAAA,MAC/E,SAASE,GAAK;AACZ,QAAKJ,MACHH,EAASO,aAAe,QAAQA,EAAI,UAAU,mCAAmC,GACjFT,EAAiB,EAAK;AAAA,MAE1B;AAAA,IACF,GAGMU,IAAU,WAAW,MAAM;AAC/B,MAAAb,EAAU,IAAI,GACdG,EAAiB,EAAK,GACtBE,EAAS,IAAI;AAAA,IACf,GAAG,CAAC;AAEJ,WAAAI,EAAA,GAEO,MAAM;AACX,mBAAaI,CAAO,GACpBL,IAAc,IACVD,KACFA,EAAc,QAAA;AAAA,IAElB;AAAA,EACF,GAAG,CAACX,GAAWC,CAAM,CAAC;AAEtB,QAAMiB,IAA0B;AAAA,IAC9B,QAAAf;AAAA,IACA,eAAAG;AAAA,IACA,OAAAE;AAAA,EAAA;AAGF,SAAOW,gBAAAA,EAAAA,IAACtB,EAAa,UAAb,EAAsB,OAAAqB,GAAe,UAAAhB,EAAA,CAAS;AACxD,GCjEakB,IAAkB,MAAM;AACnC,QAAMC,IAAUC,EAAWzB,CAAY;AACvC,MAAIwB,MAAY;AACd,UAAM,IAAI,MAAM,qDAAqD;AAEvE,SAAOA;AACT,GCLaE,IAAW,MAAM;AAC5B,QAAM,EAAE,QAAApB,GAAQ,eAAAG,GAAe,OAAAE,EAAA,IAAUY,EAAA,GAEnCI,IAAQC;AAAA,IACZ,OAAoCC,MAAe;AACjD,UAAI,CAACvB,KAAU,CAACG,GAAe;AAC7B,gBAAQ,KAAK,8BAA8B;AAC3C;AAAA,MACF;AACA,aAAOH,EAAO,MAAMuB,CAAO;AAAA,IAC7B;AAAA,IACA,CAACvB,GAAQG,CAAa;AAAA,EAAA,GAGlBqB,IAAQF,EAAY,YAAY;AACpC,QAAI,CAACtB,KAAU,CAACG,GAAe;AAC7B,cAAQ,KAAK,8BAA8B;AAC3C;AAAA,IACF;AACA,WAAOH,EAAO,MAAA;AAAA,EAChB,GAAG,CAACA,GAAQG,CAAa,CAAC;AAE1B,SAAO;AAAA,IACL,OAAAkB;AAAA,IACA,OAAAG;AAAA,IACA,eAAArB;AAAA,IACA,OAAAE;AAAA,IACA,QAAAL;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,10 @@
|
|
|
1
|
+
export type FormErrorType = 'FETCH_ERROR' | 'SUBMISSION_ERROR';
|
|
2
|
+
export declare class FormError extends Error {
|
|
3
|
+
errorType: string;
|
|
4
|
+
constructor(errorType: FormErrorType, message?: string);
|
|
5
|
+
}
|
|
6
|
+
export type FormConfig = {
|
|
7
|
+
zIndex?: number;
|
|
8
|
+
theme?: 'light' | 'dark';
|
|
9
|
+
onFormError?: (error: FormError) => void;
|
|
10
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nemme/js-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.esm.js",
|
|
@@ -21,7 +21,20 @@
|
|
|
21
21
|
"require": "./dist/index.cjs",
|
|
22
22
|
"default": "./dist/index.esm.js"
|
|
23
23
|
},
|
|
24
|
-
"./
|
|
24
|
+
"./react": {
|
|
25
|
+
"types": "./dist/react-entry.d.ts",
|
|
26
|
+
"import": "./dist/react.esm.js",
|
|
27
|
+
"require": "./dist/react.cjs",
|
|
28
|
+
"default": "./dist/react.esm.js"
|
|
29
|
+
},
|
|
30
|
+
"./forms": {
|
|
31
|
+
"types": "./dist/forms-entry.d.ts",
|
|
32
|
+
"import": "./dist/forms.esm.js",
|
|
33
|
+
"require": "./dist/forms.cjs",
|
|
34
|
+
"default": "./dist/forms.esm.js"
|
|
35
|
+
},
|
|
36
|
+
"./style.css": "./dist/js-sdk.css",
|
|
37
|
+
"./dist/js-sdk.css": "./dist/js-sdk.css",
|
|
25
38
|
"./dist/assets/js-sdk.css": "./dist/assets/js-sdk.css"
|
|
26
39
|
},
|
|
27
40
|
"scripts": {
|
|
@@ -30,9 +43,9 @@
|
|
|
30
43
|
"debug": "vitest --test-timeout=0 --no-file-parallelism",
|
|
31
44
|
"cov": "vitest run --coverage",
|
|
32
45
|
"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",
|
|
46
|
+
"build": "tsc && vite build && vite build -c vite.umd.config.ts",
|
|
47
|
+
"build:dev": "tsc && vite build --mode development && vite build -c vite.umd.config.ts --mode development",
|
|
48
|
+
"build:test": "tsc && vite build --mode test && vite build -c vite.umd.config.ts --mode test",
|
|
36
49
|
"dev": "vite",
|
|
37
50
|
"preview": "vite preview",
|
|
38
51
|
"sb": "storybook dev -p 6006 --no-open",
|
|
@@ -45,53 +58,67 @@
|
|
|
45
58
|
"author": "Nemme AS",
|
|
46
59
|
"license": "MIT",
|
|
47
60
|
"description": "Nemme JS SDK",
|
|
61
|
+
"peerDependencies": {
|
|
62
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
63
|
+
"react-dom": "^18.0.0 || ^19.0.0"
|
|
64
|
+
},
|
|
65
|
+
"peerDependenciesMeta": {
|
|
66
|
+
"react": {
|
|
67
|
+
"optional": true
|
|
68
|
+
},
|
|
69
|
+
"react-dom": {
|
|
70
|
+
"optional": true
|
|
71
|
+
}
|
|
72
|
+
},
|
|
48
73
|
"dependencies": {
|
|
49
74
|
"@phosphor-icons/react": "^2.1.10",
|
|
50
75
|
"date-fns": "^4.1.0",
|
|
51
|
-
"i18next-browser-languagedetector": "^8.2.
|
|
52
|
-
"react": "^
|
|
53
|
-
"react-dom": "^18.0.0",
|
|
54
|
-
"react-i18next": "^16.0.0"
|
|
76
|
+
"i18next-browser-languagedetector": "^8.2.1",
|
|
77
|
+
"react-i18next": "^16.5.4"
|
|
55
78
|
},
|
|
56
79
|
"devDependencies": {
|
|
57
|
-
"@chromatic-com/storybook": "^
|
|
58
|
-
"@eslint/compat": "^
|
|
80
|
+
"@chromatic-com/storybook": "^5.0.1",
|
|
81
|
+
"@eslint/compat": "^2.0.2",
|
|
59
82
|
"@eslint/eslintrc": "^3.2.0",
|
|
60
|
-
"@eslint/js": "^9.
|
|
83
|
+
"@eslint/js": "^9.39.0",
|
|
61
84
|
"@nemme/ui-kit": "^0.2.1",
|
|
62
|
-
"@storybook/addon-a11y": "^10.
|
|
63
|
-
"@storybook/addon-docs": "^10.
|
|
64
|
-
"@storybook/addon-vitest": "^10.
|
|
65
|
-
"@storybook/react-vite": "^10.
|
|
85
|
+
"@storybook/addon-a11y": "^10.2.8",
|
|
86
|
+
"@storybook/addon-docs": "^10.2.8",
|
|
87
|
+
"@storybook/addon-vitest": "^10.2.8",
|
|
88
|
+
"@storybook/react-vite": "^10.2.8",
|
|
66
89
|
"@tailwindcss/postcss": "^4.1.13",
|
|
67
90
|
"@tailwindcss/vite": "^4.1.13",
|
|
68
91
|
"@testing-library/jest-dom": "^6.6.3",
|
|
69
|
-
"@testing-library/react": "^16.3.
|
|
70
|
-
"@
|
|
71
|
-
"@
|
|
72
|
-
"@
|
|
73
|
-
"@
|
|
74
|
-
"@
|
|
75
|
-
"
|
|
92
|
+
"@testing-library/react": "^16.3.2",
|
|
93
|
+
"@types/react": "^19.2.14",
|
|
94
|
+
"@types/react-dom": "^19.2.3",
|
|
95
|
+
"@typescript-eslint/eslint-plugin": "^8.56.0",
|
|
96
|
+
"@typescript-eslint/parser": "^8.56.0",
|
|
97
|
+
"@vitejs/plugin-react": "^5.1.4",
|
|
98
|
+
"@vitest/browser": "^4.0.18",
|
|
99
|
+
"@vitest/coverage-v8": "^4.0.18",
|
|
100
|
+
"react": "^19.2.4",
|
|
101
|
+
"react-dom": "^19.2.4",
|
|
102
|
+
"eslint": "^9.39.0",
|
|
76
103
|
"eslint-config-prettier": "^10.1.5",
|
|
77
104
|
"eslint-plugin-prettier": "^5.4.1",
|
|
78
105
|
"eslint-plugin-react": "^7.37.5",
|
|
79
106
|
"eslint-plugin-react-hooks": "^7.0.1",
|
|
80
|
-
"eslint-plugin-storybook": "^10.
|
|
81
|
-
"globals": "^
|
|
82
|
-
"happy-dom": "^20.
|
|
107
|
+
"eslint-plugin-storybook": "^10.2.8",
|
|
108
|
+
"globals": "^17.3.0",
|
|
109
|
+
"happy-dom": "^20.6.1",
|
|
83
110
|
"husky": "^9.1.7",
|
|
84
111
|
"lint-staged": "^16.1.0",
|
|
85
|
-
"playwright": "^1.
|
|
112
|
+
"playwright": "^1.58.2",
|
|
86
113
|
"postcss": "^8.5.6",
|
|
87
114
|
"postcss-import": "^16.1.1",
|
|
88
|
-
"postcss-prefixwrap": "^1.57.
|
|
115
|
+
"postcss-prefixwrap": "^1.57.2",
|
|
89
116
|
"prettier": "^3.5.1",
|
|
90
|
-
"storybook": "^10.
|
|
117
|
+
"storybook": "^10.2.8",
|
|
91
118
|
"tailwindcss": "^4.1.13",
|
|
92
119
|
"typescript": "^5.8.3",
|
|
93
120
|
"vite": "^7.1.7",
|
|
94
121
|
"vite-plugin-dts": "^4.5.4",
|
|
95
|
-
"vitest": "^4.0.
|
|
122
|
+
"vitest": "^4.0.18"
|
|
96
123
|
}
|
|
97
124
|
}
|
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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--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;--tw-duration:initial;--tw-ease: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;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-xl:24px;--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-grey-0:#fff;--color-opacity-grey-200:#ffffff24;--color-opacity-grey-300:#ffffff0f;--color-opacity-grey-600:#00000012;--color-opacity-grey-700:#00000024;--color-background-primary-light:#fbfbfd;--color-background-primary-dark:#101011;--color-background-primary-grouped-light:#e5e5ea;--color-background-primary-grouped-dark:#101011;--color-background-secondary-grouped-light:#fbfbfd;--color-background-secondary-grouped-dark:#1c1c1e;--color-background-tertiary-grouped-light:#f2f2f7;--color-background-tertiary-grouped-dark:#242426;--color-background-universal-overlay-light:#48484a12;--color-background-universal-overlay-dark:#aeaeb20f;--color-overlay-fill-default-light:#00000012;--color-overlay-fill-default-dark:#ffffff0f;--color-overlay-fill-alternative-light:#00000024;--color-overlay-fill-alternative-dark:#ffffff24;--color-overlay-background-default-light:#0000008c;--color-overlay-background-default-dark:#000000a6;--color-label-primary-light:#000;--color-label-primary-dark:#fff;--color-label-secondary-light:#636366;--color-label-secondary-dark:#8e8e93;--color-label-tertiary-light:#8e8e93;--color-label-tertiary-dark:#636366;--color-label-placeholder-light:#8e8e93;--color-label-placeholder-dark:#8e8e93;--color-label-quaternary-light:#fff;--color-label-quaternary-dark:#000;--color-primary-action-button-light:#3461da;--color-primary-action-button-dark:#325fcb;--color-primary-action-button-hover-light:#2c4db9;--color-primary-action-button-hover-dark:#2c4db9;--color-primary-action-disabled-light:#d1d1d6;--color-primary-action-disabled-dark:#3a3a3c;--color-secondary-action-button-light:#000;--color-secondary-action-button-dark:#fff;--color-secondary-action-button-hover-light:#242426;--color-secondary-action-button-hover-dark:#d1d1d6;--color-secondary-action-disabled-light:#d1d1d6;--color-secondary-action-disabled-dark:#3a3a3c;--color-tertiary-action-button-light:var(--color-opacity-grey-600);--color-tertiary-action-button-dark:var(--color-opacity-grey-300);--color-tertiary-action-button-hover-light:var(--color-opacity-grey-700);--color-tertiary-action-button-hover-dark:var(--color-opacity-grey-200);--color-brand-coral-default-light:#ff6832;--color-brand-coral-default-dark:#ff6832;--color-separator-regular-light:#aeaeb2;--color-separator-regular-dark:#48484a;--color-separator-opaque-light:#e5e5ea;--color-separator-opaque-dark:#242426;--color-separator-opaque-alternative-light:#d1d1d6;--color-separator-opaque-alternative-dark:#2c2c2e;--color-nonadaptable-text-light:#fff;--color-nonadaptable-text-dark:#000;--color-success-default-light:#35c759;--color-success-default-dark:#31d158;--color-danger-background-light:#fef1f2;--color-danger-background-dark:#a10010;--color-danger-default-light:#ff3b2f;--color-danger-default-dark:#ff453a;--color-danger-hover-light:#d70015;--color-danger-hover-dark:#ff8680;--color-danger-accessible-light:#a10010;--color-danger-accessible-dark:#fef1f2;--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 .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 .h-96{height:calc(var(--spacing)*96)}#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-\[35px\]{height:35px}#nm .h-\[40px\]{height:40px}#nm .h-px{height:1px}#nm .w-4{width:calc(var(--spacing)*4)}#nm .w-\[17\.5px\]{width:17.5px}#nm .w-\[21px\]{width:21px}#nm .w-\[28px\]{width:28px}#nm .w-\[32\.5px\]{width:32.5px}#nm .w-\[35px\]{width:35px}#nm .w-\[39px\]{width:39px}#nm .w-\[52px\]{width:52px}#nm .w-\[65px\]{width:65px}#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 .translate-x-\[12px\]{--tw-translate-x:12px;translate:var(--tw-translate-x)var(--tw-translate-y)}#nm .translate-x-\[15px\]{--tw-translate-x:15px;translate:var(--tw-translate-x)var(--tw-translate-y)}#nm .translate-x-\[20px\]{--tw-translate-x:20px;translate:var(--tw-translate-x)var(--tw-translate-y)}#nm .translate-x-\[25px\]{--tw-translate-x:25px;translate:var(--tw-translate-x)var(--tw-translate-y)}#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 .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-\[4\.5px\]{border-radius:4.5px}#nm .rounded-\[5px\]{border-radius:5px}#nm .rounded-\[6px\]{border-radius:6px}#nm .rounded-\[7\.5px\]{border-radius:7.5px}#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-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 .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-\[2\.5px\]{padding:2.5px}#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-\[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-\[60px\]{--tw-leading:60px;line-height:60px}#nm .leading-\[72px\]{--tw-leading:72px;line-height:72px}#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-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-disabled-light{color:var(--color-primary-action-disabled-light)}#nm .capitalize{text-transform:capitalize}#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,)}#nm .transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}#nm .transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}#nm .duration-300{--tw-duration:.3s;transition-duration:.3s}#nm .ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}@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 .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\: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\:text-brand-coral-default-dark{color:var(--color-brand-coral-default-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-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\: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\: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-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@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}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@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-material-grey-5:#f6f6f6d6;--color-material-grey-50:#f6f6f699;--color-material-grey-850:#0000004a;--color-material-grey-950:#00000080;--color-background-primary-light:#fbfbfd;--color-background-primary-dark:#101011;--color-background-secondary-light:#f2f2f7;--color-background-secondary-dark:#1c1c1e;--color-overlay-background-default-light:#0000008c;--color-overlay-background-default-dark:#000000a6;--color-label-primary-light:#000;--color-label-primary-dark:#fff;--color-label-quaternary-light:#fff;--color-label-quaternary-dark:#000;--color-secondary-action-button-light:#000;--color-secondary-action-button-dark:#fff;--color-separator-regular-light:#aeaeb2;--color-separator-regular-dark:#48484a;--color-separator-opaque-light:#e5e5ea;--color-separator-opaque-dark:#242426}#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-gray-200,currentcolor)}#nm ::file-selector-button{border-color:var(--color-gray-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}
|