tempest-react-sdk 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +82 -6
- package/dist/index.d.ts +173 -11
- package/dist/styles.css +1 -1
- package/dist/tempest-react-sdk.cjs +3 -3
- package/dist/tempest-react-sdk.cjs.map +1 -1
- package/dist/tempest-react-sdk.js +1258 -1103
- package/dist/tempest-react-sdk.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -168,8 +168,8 @@ Every module is re-exported from the package root — `import { Button, useDebou
|
|
|
168
168
|
| `theme` | `ThemeProvider`, `useTheme`, `getInitialTheme`, `themeInitScript`, types: `ThemeMode`, `ResolvedTheme` |
|
|
169
169
|
| `i18n` | `createI18n`, `I18nProvider`, `useI18n`, `useTranslate`, types: `Catalog`, `Messages`, `I18n`, `InterpolationValues` |
|
|
170
170
|
| `logger` | `createLogger`, `consoleSink`, types: `Logger`, `LogEntry`, `LogLevel`, `LoggerSink` |
|
|
171
|
-
| `telemetry` | `TelemetryProvider`, `useTelemetry`, `consoleTelemetryAdapter`, `createSentryTelemetryAdapter`, types: `TelemetryAdapter`, `TelemetryEvent`, `TelemetryUser`, `CreateSentryTelemetryAdapterOptions`, `SentryLike`
|
|
172
|
-
| `feature-flags` | `FeatureFlagsProvider`, `useFeatureFlag`, `useFlagValue`, `createInMemoryFlags`, types: `FeatureFlagsAdapter`, `FlagValue`
|
|
171
|
+
| `telemetry` | `TelemetryProvider`, `useTelemetry`, `consoleTelemetryAdapter`, `createSentryTelemetryAdapter`, `createPostHogTelemetryAdapter`, types: `TelemetryAdapter`, `TelemetryEvent`, `TelemetryUser`, `CreateSentryTelemetryAdapterOptions`, `SentryLike`, `CreatePostHogTelemetryAdapterOptions`, `PostHogLike` |
|
|
172
|
+
| `feature-flags` | `FeatureFlagsProvider`, `useFeatureFlag`, `useFlagValue`, `createInMemoryFlags`, `createGrowthBookFeatureFlagsAdapter`, `createLaunchDarklyFeatureFlagsAdapter`, types: `FeatureFlagsAdapter`, `FlagValue`, `GrowthBookLike`, `LDClientLike` |
|
|
173
173
|
| `share` | `share`, `isShareSupported`, types: `SharePayload`, `ShareResult` |
|
|
174
174
|
| `utils` | `cn`, `formatCurrency`, `formatDate`, `formatDateTime`, `formatPhone`, `formatCPF`, `formatPercent`, `storage` |
|
|
175
175
|
|
|
@@ -1241,7 +1241,7 @@ function Header() {
|
|
|
1241
1241
|
|
|
1242
1242
|
### Feature flags recipe
|
|
1243
1243
|
|
|
1244
|
-
`FeatureFlagsProvider` takes an `adapter` matching the `FeatureFlagsAdapter` interface (`isEnabled`, `get`, `
|
|
1244
|
+
`FeatureFlagsProvider` takes an `adapter` matching the `FeatureFlagsAdapter` interface (`isEnabled`, `get`, `onChange?`). Ship the `InMemory` adapter while you build, swap for GrowthBook / LaunchDarkly when you're ready.
|
|
1245
1245
|
|
|
1246
1246
|
```tsx
|
|
1247
1247
|
import {
|
|
@@ -1252,7 +1252,7 @@ import {
|
|
|
1252
1252
|
} from "tempest-react-sdk";
|
|
1253
1253
|
|
|
1254
1254
|
const flags = createInMemoryFlags({
|
|
1255
|
-
|
|
1255
|
+
initial: { "new-checkout": true, "max-items": 10 },
|
|
1256
1256
|
});
|
|
1257
1257
|
|
|
1258
1258
|
<FeatureFlagsProvider adapter={flags}>
|
|
@@ -1266,7 +1266,52 @@ function CheckoutButton() {
|
|
|
1266
1266
|
}
|
|
1267
1267
|
```
|
|
1268
1268
|
|
|
1269
|
-
|
|
1269
|
+
**GrowthBook adapter** — wraps a `GrowthBook` instance. The app initialises GrowthBook (so it controls `apiHost`, `clientKey`, attributes, `loadFeatures()`), the adapter only routes lookups.
|
|
1270
|
+
|
|
1271
|
+
```ts
|
|
1272
|
+
import { GrowthBook } from "@growthbook/growthbook";
|
|
1273
|
+
import { FeatureFlagsProvider, createGrowthBookFeatureFlagsAdapter } from "tempest-react-sdk";
|
|
1274
|
+
|
|
1275
|
+
const gb = new GrowthBook({
|
|
1276
|
+
apiHost: import.meta.env.VITE_GROWTHBOOK_API_HOST,
|
|
1277
|
+
clientKey: import.meta.env.VITE_GROWTHBOOK_KEY,
|
|
1278
|
+
attributes: { id: userId },
|
|
1279
|
+
});
|
|
1280
|
+
await gb.loadFeatures();
|
|
1281
|
+
|
|
1282
|
+
const adapter = createGrowthBookFeatureFlagsAdapter({ growthbook: gb });
|
|
1283
|
+
|
|
1284
|
+
<FeatureFlagsProvider adapter={adapter}>
|
|
1285
|
+
<App />
|
|
1286
|
+
</FeatureFlagsProvider>;
|
|
1287
|
+
```
|
|
1288
|
+
|
|
1289
|
+
Mapping: `isEnabled(key)` → `growthbook.isOn(key)`; `get(key, default)` → `growthbook.getFeatureValue(key, default)`; `onChange(listener)` → `growthbook.setRenderer(...)` (installed lazily on first subscription, multiplexes to all listeners).
|
|
1290
|
+
|
|
1291
|
+
**LaunchDarkly adapter** — wraps `launchdarkly-js-client-sdk`.
|
|
1292
|
+
|
|
1293
|
+
```ts
|
|
1294
|
+
import * as LDClient from "launchdarkly-js-client-sdk";
|
|
1295
|
+
import { FeatureFlagsProvider, createLaunchDarklyFeatureFlagsAdapter } from "tempest-react-sdk";
|
|
1296
|
+
|
|
1297
|
+
const client = LDClient.initialize(import.meta.env.VITE_LD_CLIENT_ID, {
|
|
1298
|
+
kind: "user",
|
|
1299
|
+
key: userId,
|
|
1300
|
+
});
|
|
1301
|
+
await client.waitUntilReady();
|
|
1302
|
+
|
|
1303
|
+
const adapter = createLaunchDarklyFeatureFlagsAdapter({ client });
|
|
1304
|
+
|
|
1305
|
+
<FeatureFlagsProvider adapter={adapter}>
|
|
1306
|
+
<App />
|
|
1307
|
+
</FeatureFlagsProvider>;
|
|
1308
|
+
```
|
|
1309
|
+
|
|
1310
|
+
Mapping: `isEnabled(key)` → `client.variation(key, default) === true`; `get(key, default)` → `client.variation(key, default)`; `onChange(listener)` → `client.on("change", listener)` + `client.off` on unsubscribe.
|
|
1311
|
+
|
|
1312
|
+
Neither `@growthbook/growthbook` nor `launchdarkly-js-client-sdk` is declared as a peer dep — the adapter only touches the instance you hand it. Install whichever you opt into: `npm install @growthbook/growthbook` or `npm install launchdarkly-js-client-sdk`.
|
|
1313
|
+
|
|
1314
|
+
The `FeatureFlagsAdapter` interface is intentionally tiny — any third-party SDK can be wrapped into an adapter in ~20 lines.
|
|
1270
1315
|
|
|
1271
1316
|
### Telemetry recipe
|
|
1272
1317
|
|
|
@@ -1329,7 +1374,38 @@ Mapping:
|
|
|
1329
1374
|
|
|
1330
1375
|
`@sentry/browser` is **not** declared as a peer dep — the adapter only ever touches the namespace you hand it, so apps that don't use Sentry never pay for it. Install Sentry yourself when you opt in: `npm install @sentry/browser`.
|
|
1331
1376
|
|
|
1332
|
-
|
|
1377
|
+
**PostHog adapter** — wraps `posthog-js`.
|
|
1378
|
+
|
|
1379
|
+
```ts
|
|
1380
|
+
import posthog from "posthog-js";
|
|
1381
|
+
import { createPostHogTelemetryAdapter, TelemetryProvider } from "tempest-react-sdk";
|
|
1382
|
+
|
|
1383
|
+
const adapter = createPostHogTelemetryAdapter({
|
|
1384
|
+
posthog,
|
|
1385
|
+
init: {
|
|
1386
|
+
apiKey: import.meta.env.VITE_POSTHOG_KEY,
|
|
1387
|
+
options: { api_host: "https://us.i.posthog.com" },
|
|
1388
|
+
},
|
|
1389
|
+
});
|
|
1390
|
+
|
|
1391
|
+
<TelemetryProvider adapter={adapter}>
|
|
1392
|
+
<App />
|
|
1393
|
+
</TelemetryProvider>;
|
|
1394
|
+
```
|
|
1395
|
+
|
|
1396
|
+
Mapping:
|
|
1397
|
+
|
|
1398
|
+
| `TelemetryAdapter` call | `posthog-js` API |
|
|
1399
|
+
| ----------------------------- | ------------------------------------------------------------------------------------------------ |
|
|
1400
|
+
| `init()` | `posthog.init(apiKey, options)` (only when `init` is provided) |
|
|
1401
|
+
| `identify({id, ...})` | `posthog.identify(id, { email, name, ...traits })` |
|
|
1402
|
+
| `identify(null)` | `posthog.reset()` |
|
|
1403
|
+
| `track({ name, properties })` | `posthog.capture(name, properties)` |
|
|
1404
|
+
| `captureException(err, ctx)` | `posthog.captureException(err, ctx)` when available, else `posthog.capture("$exception", { … })` |
|
|
1405
|
+
|
|
1406
|
+
`posthog-js` is **not** declared as a peer dep — install only when you opt in: `npm install posthog-js`.
|
|
1407
|
+
|
|
1408
|
+
Concrete adapters for Datadog / Amplitude / others are part of the v0.2 roadmap — for now you can write one in ~20 lines following the Sentry / PostHog adapters as templates.
|
|
1333
1409
|
|
|
1334
1410
|
### Logger recipe
|
|
1335
1411
|
|
package/dist/index.d.ts
CHANGED
|
@@ -130,14 +130,33 @@ export declare type AvatarSize = "xs" | "sm" | "md" | "lg" | "xl";
|
|
|
130
130
|
|
|
131
131
|
export declare type AvatarStatus = "online" | "offline" | "busy";
|
|
132
132
|
|
|
133
|
-
/**
|
|
134
|
-
|
|
133
|
+
/**
|
|
134
|
+
* Pill / square status badge.
|
|
135
|
+
*
|
|
136
|
+
* - `variant` picks the tone (neutral, primary, success, warning, danger, info).
|
|
137
|
+
* - `appearance` picks the style (soft, solid, outline).
|
|
138
|
+
* - `dot` prepends a status dot in the same tone.
|
|
139
|
+
*/
|
|
140
|
+
export declare function Badge({ variant, appearance, size, shape, dot, className, children, ...props }: BadgeProps): JSX.Element;
|
|
141
|
+
|
|
142
|
+
export declare type BadgeAppearance = "soft" | "solid" | "outline";
|
|
135
143
|
|
|
136
144
|
export declare interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
|
|
137
145
|
variant?: BadgeVariant;
|
|
146
|
+
/** Visual style: soft (default tinted bg), solid (filled), outline (bordered). */
|
|
147
|
+
appearance?: BadgeAppearance;
|
|
148
|
+
size?: BadgeSize;
|
|
149
|
+
/** Pill (default rounded) or square (slightly rounded). */
|
|
150
|
+
shape?: BadgeShape;
|
|
151
|
+
/** Renders a leading status dot in the badge color. */
|
|
152
|
+
dot?: boolean;
|
|
138
153
|
}
|
|
139
154
|
|
|
140
|
-
export declare type
|
|
155
|
+
export declare type BadgeShape = "pill" | "square";
|
|
156
|
+
|
|
157
|
+
export declare type BadgeSize = "sm" | "md" | "lg";
|
|
158
|
+
|
|
159
|
+
export declare type BadgeVariant = "neutral" | "primary" | "success" | "warning" | "danger" | "info";
|
|
141
160
|
|
|
142
161
|
export declare interface BreadcrumbItem {
|
|
143
162
|
label: ReactNode;
|
|
@@ -161,21 +180,31 @@ export declare interface BreadcrumbsProps {
|
|
|
161
180
|
/**
|
|
162
181
|
* Primary action button with variants, sizes and a loading state that
|
|
163
182
|
* preserves layout via an absolutely-positioned spinner.
|
|
183
|
+
*
|
|
184
|
+
* Variants: `primary` (solid), `secondary` (neutral), `danger`, `success`,
|
|
185
|
+
* `ghost` (transparent), `soft` (tinted), `outline` (bordered), `link`.
|
|
186
|
+
*
|
|
187
|
+
* Sizes are density-aware — they read from `--tempest-control-height-*`
|
|
188
|
+
* tokens which respond to the `data-tempest-density` attribute.
|
|
164
189
|
*/
|
|
165
|
-
export declare function Button({ variant, size, loading, fullWidth, leftIcon, rightIcon, disabled, className, children, ...props }: ButtonProps): JSX.Element;
|
|
190
|
+
export declare function Button({ variant, size, loading, fullWidth, iconOnly, pill, leftIcon, rightIcon, disabled, className, children, ...props }: ButtonProps): JSX.Element;
|
|
166
191
|
|
|
167
192
|
export declare interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
168
193
|
variant?: ButtonVariant;
|
|
169
194
|
size?: ButtonSize;
|
|
170
195
|
loading?: boolean;
|
|
171
196
|
fullWidth?: boolean;
|
|
197
|
+
/** Removes horizontal padding and forces a square footprint (use with `aria-label`). */
|
|
198
|
+
iconOnly?: boolean;
|
|
199
|
+
/** Pill-shaped border radius. */
|
|
200
|
+
pill?: boolean;
|
|
172
201
|
leftIcon?: ReactNode;
|
|
173
202
|
rightIcon?: ReactNode;
|
|
174
203
|
}
|
|
175
204
|
|
|
176
|
-
export declare type ButtonSize = "sm" | "md" | "lg";
|
|
205
|
+
export declare type ButtonSize = "xs" | "sm" | "md" | "lg" | "xl";
|
|
177
206
|
|
|
178
|
-
export declare type ButtonVariant = "primary" | "secondary" | "danger" | "ghost";
|
|
207
|
+
export declare type ButtonVariant = "primary" | "secondary" | "danger" | "success" | "ghost" | "soft" | "outline" | "link";
|
|
179
208
|
|
|
180
209
|
/** Recommended `gcTime` presets (milliseconds). */
|
|
181
210
|
export declare const CACHE_TIME: {
|
|
@@ -185,15 +214,23 @@ export declare const CACHE_TIME: {
|
|
|
185
214
|
};
|
|
186
215
|
|
|
187
216
|
/**
|
|
188
|
-
* Card container with optional header (title + actions)
|
|
189
|
-
* need to host content (tables, lists)
|
|
217
|
+
* Card container with optional header (title + actions) and footer slot.
|
|
218
|
+
* Use `flush` when you need to host content (tables, lists) without inner padding.
|
|
219
|
+
* Use `interactive` for clickable cards — adds hover lift and focus ring.
|
|
190
220
|
*/
|
|
191
|
-
export declare function Card({ title, actions, flush, className, children, ...props }: CardProps): JSX.Element;
|
|
221
|
+
export declare function Card({ title, actions, footer, flush, interactive, elevation, className, children, ...props }: CardProps): JSX.Element;
|
|
222
|
+
|
|
223
|
+
export declare type CardElevation = "flat" | "default" | "raised" | "elevated";
|
|
192
224
|
|
|
193
225
|
export declare interface CardProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
|
|
194
226
|
title?: ReactNode;
|
|
195
227
|
actions?: ReactNode;
|
|
228
|
+
footer?: ReactNode;
|
|
196
229
|
flush?: boolean;
|
|
230
|
+
/** Hoverable card — adds elevation lift, cursor pointer and focus ring. */
|
|
231
|
+
interactive?: boolean;
|
|
232
|
+
/** Visual elevation level. Defaults to `default` (subtle shadow + border). */
|
|
233
|
+
elevation?: CardElevation;
|
|
197
234
|
}
|
|
198
235
|
|
|
199
236
|
export declare type Catalog = Record<string, Messages>;
|
|
@@ -376,6 +413,33 @@ export declare interface CreateEventStreamOptions<T> {
|
|
|
376
413
|
onStatusChange?: (status: EventStreamStatus) => void;
|
|
377
414
|
}
|
|
378
415
|
|
|
416
|
+
/**
|
|
417
|
+
* Build a [[FeatureFlagsAdapter]] backed by a GrowthBook instance. Apps
|
|
418
|
+
* initialise GrowthBook themselves (so they can load features over the
|
|
419
|
+
* network, set attributes, etc.) — the adapter just routes lookups.
|
|
420
|
+
*
|
|
421
|
+
* Mapping:
|
|
422
|
+
* - `isEnabled(key, default)` → `growthbook.isOn(key)` (falls back to `default` if no value)
|
|
423
|
+
* - `get(key, default)` → `growthbook.getFeatureValue(key, default)`
|
|
424
|
+
* - `onChange(listener)` → `growthbook.setRenderer(listener)` (single-renderer SDK constraint)
|
|
425
|
+
*
|
|
426
|
+
* @example
|
|
427
|
+
* import { GrowthBook } from "@growthbook/growthbook";
|
|
428
|
+
* import { FeatureFlagsProvider, createGrowthBookFeatureFlagsAdapter } from "tempest-react-sdk";
|
|
429
|
+
*
|
|
430
|
+
* const gb = new GrowthBook({ apiHost: "...", clientKey: "..." });
|
|
431
|
+
* await gb.loadFeatures();
|
|
432
|
+
* const adapter = createGrowthBookFeatureFlagsAdapter({ growthbook: gb });
|
|
433
|
+
*
|
|
434
|
+
* <FeatureFlagsProvider adapter={adapter}><App /></FeatureFlagsProvider>;
|
|
435
|
+
*/
|
|
436
|
+
export declare function createGrowthBookFeatureFlagsAdapter(options: CreateGrowthBookFeatureFlagsAdapterOptions): FeatureFlagsAdapter;
|
|
437
|
+
|
|
438
|
+
export declare interface CreateGrowthBookFeatureFlagsAdapterOptions {
|
|
439
|
+
/** The GrowthBook instance. Required. */
|
|
440
|
+
growthbook: GrowthBookLike;
|
|
441
|
+
}
|
|
442
|
+
|
|
379
443
|
/**
|
|
380
444
|
* Create an i18n object with translation, pluralization and Intl helpers.
|
|
381
445
|
*
|
|
@@ -418,6 +482,33 @@ export declare function createInMemoryFlags(options?: InMemoryFlagsOptions): Fea
|
|
|
418
482
|
set: (key: string, value: FlagValue) => void;
|
|
419
483
|
};
|
|
420
484
|
|
|
485
|
+
/**
|
|
486
|
+
* Build a [[FeatureFlagsAdapter]] backed by a LaunchDarkly JS client. Apps
|
|
487
|
+
* initialise the client themselves (`LDClient.initialize(envKey, ctx)`) and
|
|
488
|
+
* pass it in.
|
|
489
|
+
*
|
|
490
|
+
* Mapping:
|
|
491
|
+
* - `isEnabled(key, default)` → `client.variation(key, default) === true`
|
|
492
|
+
* - `get(key, default)` → `client.variation(key, default)`
|
|
493
|
+
* - `onChange(listener)` → `client.on("change", listener)` / `client.off("change", listener)`
|
|
494
|
+
*
|
|
495
|
+
* @example
|
|
496
|
+
* import * as LDClient from "launchdarkly-js-client-sdk";
|
|
497
|
+
* import { FeatureFlagsProvider, createLaunchDarklyFeatureFlagsAdapter } from "tempest-react-sdk";
|
|
498
|
+
*
|
|
499
|
+
* const client = LDClient.initialize(import.meta.env.VITE_LD_CLIENT_ID, { kind: "user", key: userId });
|
|
500
|
+
* await client.waitUntilReady();
|
|
501
|
+
* const adapter = createLaunchDarklyFeatureFlagsAdapter({ client });
|
|
502
|
+
*
|
|
503
|
+
* <FeatureFlagsProvider adapter={adapter}><App /></FeatureFlagsProvider>;
|
|
504
|
+
*/
|
|
505
|
+
export declare function createLaunchDarklyFeatureFlagsAdapter(options: CreateLaunchDarklyFeatureFlagsAdapterOptions): FeatureFlagsAdapter;
|
|
506
|
+
|
|
507
|
+
export declare interface CreateLaunchDarklyFeatureFlagsAdapterOptions {
|
|
508
|
+
/** The LaunchDarkly JS client. Required. */
|
|
509
|
+
client: LDClientLike;
|
|
510
|
+
}
|
|
511
|
+
|
|
421
512
|
/**
|
|
422
513
|
* Create a structured leveled logger. Plug arbitrary sinks (Sentry, Datadog,
|
|
423
514
|
* remote ingestion) by implementing the `LoggerSink` interface.
|
|
@@ -455,6 +546,39 @@ export declare interface CreateLoggerOptions {
|
|
|
455
546
|
*/
|
|
456
547
|
export declare function createOfflineStore<TItem, TKey extends string | number = string>(config: OfflineStoreConfig<TItem>): OfflineStore<TItem, TKey>;
|
|
457
548
|
|
|
549
|
+
/**
|
|
550
|
+
* Build a [[TelemetryAdapter]] backed by [`posthog-js`](https://posthog.com/docs/libraries/js).
|
|
551
|
+
* The PostHog client is supplied by the caller (not bundled).
|
|
552
|
+
*
|
|
553
|
+
* Mapping:
|
|
554
|
+
* - `identify(user)` → `posthog.identify(user.id, { email, name, ...traits })` (or `posthog.reset()` when `null`)
|
|
555
|
+
* - `track({ name, properties })` → `posthog.capture(name, properties)`
|
|
556
|
+
* - `captureException(err, ctx)` → `posthog.captureException(err, ctx)` when available, otherwise `posthog.capture("$exception", { …err, …ctx })`
|
|
557
|
+
* - `flush()` → no-op (PostHog batches automatically)
|
|
558
|
+
*
|
|
559
|
+
* @example
|
|
560
|
+
* import posthog from "posthog-js";
|
|
561
|
+
* import { createPostHogTelemetryAdapter, TelemetryProvider } from "tempest-react-sdk";
|
|
562
|
+
*
|
|
563
|
+
* const adapter = createPostHogTelemetryAdapter({
|
|
564
|
+
* posthog,
|
|
565
|
+
* init: { apiKey: import.meta.env.VITE_POSTHOG_KEY, options: { api_host: "https://us.i.posthog.com" } },
|
|
566
|
+
* });
|
|
567
|
+
*
|
|
568
|
+
* <TelemetryProvider adapter={adapter}><App /></TelemetryProvider>;
|
|
569
|
+
*/
|
|
570
|
+
export declare function createPostHogTelemetryAdapter(options: CreatePostHogTelemetryAdapterOptions): TelemetryAdapter;
|
|
571
|
+
|
|
572
|
+
export declare interface CreatePostHogTelemetryAdapterOptions {
|
|
573
|
+
/** The PostHog JS client (the default export of `posthog-js`). Required. */
|
|
574
|
+
posthog: PostHogLike;
|
|
575
|
+
/** Project API key + options. When provided, `Provider.init` calls `posthog.init(apiKey, options)`. */
|
|
576
|
+
init?: {
|
|
577
|
+
apiKey: string;
|
|
578
|
+
options?: Record<string, unknown>;
|
|
579
|
+
};
|
|
580
|
+
}
|
|
581
|
+
|
|
458
582
|
/**
|
|
459
583
|
* Build a typed query-key factory for a domain. Each entry can be a static
|
|
460
584
|
* tuple or a function returning a tuple. The returned object is `as const`
|
|
@@ -564,7 +688,7 @@ export declare interface CreateWebSocketOptions<T> {
|
|
|
564
688
|
*/
|
|
565
689
|
export declare const DatePicker: ForwardRefExoticComponent<DatePickerProps & RefAttributes<HTMLInputElement>>;
|
|
566
690
|
|
|
567
|
-
export declare interface DatePickerProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "type" | "value" | "onChange"> {
|
|
691
|
+
export declare interface DatePickerProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "type" | "value" | "onChange" | "size"> {
|
|
568
692
|
/** ISO date string (`YYYY-MM-DD`) or empty. */
|
|
569
693
|
value: string;
|
|
570
694
|
onChange: (value: string) => void;
|
|
@@ -945,6 +1069,17 @@ export declare interface GridProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
945
1069
|
children?: ReactNode;
|
|
946
1070
|
}
|
|
947
1071
|
|
|
1072
|
+
/**
|
|
1073
|
+
* Minimal subset of [`@growthbook/growthbook`](https://docs.growthbook.io/lib/js)
|
|
1074
|
+
* used by the adapter. Pass a `GrowthBook` instance directly.
|
|
1075
|
+
*/
|
|
1076
|
+
export declare interface GrowthBookLike {
|
|
1077
|
+
isOn: (key: string) => boolean;
|
|
1078
|
+
getFeatureValue: <T>(key: string, defaultValue: T) => T;
|
|
1079
|
+
/** Registers a renderer fired whenever GrowthBook re-evaluates features. */
|
|
1080
|
+
setRenderer?: (renderer: () => void) => void;
|
|
1081
|
+
}
|
|
1082
|
+
|
|
948
1083
|
export declare interface I18n {
|
|
949
1084
|
/** Currently active locale. */
|
|
950
1085
|
locale: string;
|
|
@@ -1003,15 +1138,19 @@ export declare interface InMemoryFlagsOptions {
|
|
|
1003
1138
|
*/
|
|
1004
1139
|
export declare const Input: ForwardRefExoticComponent<InputProps & RefAttributes<HTMLInputElement>>;
|
|
1005
1140
|
|
|
1006
|
-
export declare interface InputProps extends InputHTMLAttributes<HTMLInputElement> {
|
|
1141
|
+
export declare interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size"> {
|
|
1007
1142
|
label?: string;
|
|
1008
1143
|
helperText?: string;
|
|
1009
1144
|
error?: string;
|
|
1010
1145
|
leftIcon?: ReactNode;
|
|
1011
1146
|
rightIcon?: ReactNode;
|
|
1012
1147
|
wrapperClassName?: string;
|
|
1148
|
+
/** Visual size — drives height, padding and font via density-aware tokens. */
|
|
1149
|
+
size?: InputSize;
|
|
1013
1150
|
}
|
|
1014
1151
|
|
|
1152
|
+
export declare type InputSize = "sm" | "md" | "lg";
|
|
1153
|
+
|
|
1015
1154
|
/**
|
|
1016
1155
|
* Install a `notificationclick` handler that focuses an existing client when
|
|
1017
1156
|
* possible and falls back to opening a new window.
|
|
@@ -1116,6 +1255,16 @@ export declare interface LazyWithRetryOptions {
|
|
|
1116
1255
|
reloadOnFinalFailure?: boolean;
|
|
1117
1256
|
}
|
|
1118
1257
|
|
|
1258
|
+
/**
|
|
1259
|
+
* Minimal subset of [`launchdarkly-js-client-sdk`](https://docs.launchdarkly.com/sdk/client-side/javascript)
|
|
1260
|
+
* used by the adapter. Pass an existing `LDClient`.
|
|
1261
|
+
*/
|
|
1262
|
+
export declare interface LDClientLike {
|
|
1263
|
+
variation: <T = unknown>(key: string, defaultValue: T) => T;
|
|
1264
|
+
on?: (event: string, handler: () => void) => void;
|
|
1265
|
+
off?: (event: string, handler: () => void) => void;
|
|
1266
|
+
}
|
|
1267
|
+
|
|
1119
1268
|
export declare interface ListOptions<TItem> {
|
|
1120
1269
|
/** Property to order by. Default: `keyPath`. */
|
|
1121
1270
|
orderBy?: keyof TItem & string;
|
|
@@ -1298,6 +1447,19 @@ export declare interface PlayAudioOptions {
|
|
|
1298
1447
|
onError?: (error: unknown) => void;
|
|
1299
1448
|
}
|
|
1300
1449
|
|
|
1450
|
+
/**
|
|
1451
|
+
* Minimal subset of `posthog-js` used by the adapter. Pass either the real
|
|
1452
|
+
* default export (`import posthog from "posthog-js"`) or a stubbed object
|
|
1453
|
+
* in tests.
|
|
1454
|
+
*/
|
|
1455
|
+
export declare interface PostHogLike {
|
|
1456
|
+
init?: (apiKey: string, options?: Record<string, unknown>) => void;
|
|
1457
|
+
identify: (distinctId: string, properties?: Record<string, unknown>) => void;
|
|
1458
|
+
capture: (eventName: string, properties?: Record<string, unknown>) => void;
|
|
1459
|
+
captureException?: (error: unknown, properties?: Record<string, unknown>) => void;
|
|
1460
|
+
reset?: () => void;
|
|
1461
|
+
}
|
|
1462
|
+
|
|
1301
1463
|
/** Linear progress bar with determinate / indeterminate modes. */
|
|
1302
1464
|
export declare function Progress({ value, max, variant, indeterminate, showLabel, label, className, }: ProgressProps): JSX.Element;
|
|
1303
1465
|
|
package/dist/styles.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.tempest_avatar_3xMuZ{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background-color:var(--tempest-surface-2);color:var(--tempest-text);overflow:hidden;font-weight:600;text-transform:uppercase;flex-shrink:0;-webkit-user-select:none;user-select:none}.tempest_image_ieqGp{width:100%;height:100%;object-fit:cover}.tempest_xs_oSaLL{width:24px;height:24px;font-size:10px}.tempest_sm_sZ2bk{width:32px;height:32px;font-size:12px}.tempest_md_Fdkbz{width:40px;height:40px;font-size:14px}.tempest_lg_pTTUA{width:56px;height:56px;font-size:18px}.tempest_xl_mW58F{width:80px;height:80px;font-size:24px}.tempest_status_ISBnL{position:relative}.tempest_dot_Wgfo-{position:absolute;bottom:0;right:0;width:28%;height:28%;border-radius:50%;border:2px solid var(--tempest-bg)}.tempest_dot_Wgfo-.tempest_online_-aWoW{background-color:var(--tempest-success)}.tempest_dot_Wgfo-.tempest_offline_-StX3{background-color:var(--tempest-text-subtle)}.tempest_dot_Wgfo-.tempest_busy_TbwuF{background-color:var(--tempest-danger)}.tempest_badge_RsuMz{display:inline-flex;align-items:center;gap:var(--tempest-space-1);padding:2px 8px;border-radius:var(--tempest-radius-full);font-size:12px;font-weight:600;line-height:1.4}.tempest_neutral_lulSm{background-color:var(--tempest-surface-2);color:var(--tempest-text)}.tempest_success_u9JiS{background-color:var(--tempest-success-bg);color:var(--tempest-success)}.tempest_warning_nsGp-{background-color:var(--tempest-warning-bg);color:var(--tempest-warning)}.tempest_danger_PD2hz{background-color:var(--tempest-danger-bg);color:var(--tempest-danger)}.tempest_info_na6DQ{background-color:var(--tempest-info-bg);color:var(--tempest-info)}.tempest_nav_H4g6P{display:flex;align-items:center;gap:var(--tempest-space-1);font-size:13px;color:var(--tempest-text-muted);flex-wrap:wrap}.tempest_item_O4g3P{display:inline-flex;align-items:center;gap:var(--tempest-space-1)}.tempest_link_7WM67{color:var(--tempest-text-muted);text-decoration:none;padding:2px 4px;border-radius:var(--tempest-radius-sm)}.tempest_link_7WM67:hover{color:var(--tempest-text);background-color:var(--tempest-surface)}.tempest_current_JdlcS{color:var(--tempest-text);font-weight:600}.tempest_separator_zGWyJ{color:var(--tempest-text-subtle);margin:0 2px}.tempest_button_2ZuB7{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--tempest-space-2);border:1px solid transparent;border-radius:var(--tempest-radius-md);font-weight:600;line-height:1;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .05s ease;-webkit-user-select:none;user-select:none}.tempest_button_2ZuB7:focus-visible{outline:2px solid var(--tempest-primary);outline-offset:2px}.tempest_button_2ZuB7:active:not(:disabled){transform:translateY(1px)}.tempest_button_2ZuB7:disabled{opacity:.55}.tempest_primary_s1sM6{background-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_primary_s1sM6:hover:not(:disabled){background-color:var(--tempest-primary-hover)}.tempest_secondary_R0waJ{background-color:var(--tempest-surface);color:var(--tempest-text);border-color:var(--tempest-border)}.tempest_secondary_R0waJ:hover:not(:disabled){background-color:var(--tempest-surface-2)}.tempest_danger_V4fX8{background-color:var(--tempest-danger);color:#fff}.tempest_danger_V4fX8:hover:not(:disabled){background-color:#991b1b}.tempest_ghost_1KINV{background-color:transparent;color:var(--tempest-text)}.tempest_ghost_1KINV:hover:not(:disabled){background-color:var(--tempest-surface)}.tempest_sm_NhG0g{height:32px;padding:0 var(--tempest-space-3);font-size:13px}.tempest_md_hH4h3{height:40px;padding:0 var(--tempest-space-4);font-size:14px}.tempest_lg_2plQf{height:48px;padding:0 var(--tempest-space-5);font-size:16px}.tempest_fullWidth_36oJT{width:100%}.tempest_loading_EQAt2 .tempest_hiddenText_hIiJ2{visibility:hidden}.tempest_spinner_ZExvW{position:absolute;animation:tempest_tempest-spin_UOSVC .8s linear infinite}@keyframes tempest_tempest-spin_UOSVC{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tempest_card_Cb1o4{background-color:var(--tempest-bg);border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-lg);padding:var(--tempest-space-5);box-shadow:var(--tempest-shadow-sm)}.tempest_padded_oOxwN{padding:var(--tempest-space-5)}.tempest_flush_aiDZi{padding:0}.tempest_header_PTXf2{display:flex;align-items:center;justify-content:space-between;padding:var(--tempest-space-4) var(--tempest-space-5);border-bottom:1px solid var(--tempest-border)}.tempest_title_mSgoo{margin:0;font-size:15px;font-weight:600;color:var(--tempest-text)}.tempest_body_W441Z{padding:var(--tempest-space-5)}.tempest_wrapper_rpthW{display:inline-flex;align-items:flex-start;gap:var(--tempest-space-2);cursor:pointer;-webkit-user-select:none;user-select:none}.tempest_wrapper_rpthW.tempest_disabled_x7-eg{cursor:not-allowed;opacity:.6}.tempest_input_2kt-h{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.tempest_box_OCPee{flex-shrink:0;width:18px;height:18px;border:1.5px solid var(--tempest-border-strong);border-radius:var(--tempest-radius-sm);background-color:var(--tempest-bg);display:inline-flex;align-items:center;justify-content:center;color:transparent;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.tempest_input_2kt-h:focus-visible+.tempest_box_OCPee{outline:2px solid var(--tempest-primary);outline-offset:2px}.tempest_input_2kt-h:checked+.tempest_box_OCPee{background-color:var(--tempest-primary);border-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_input_2kt-h:indeterminate+.tempest_box_OCPee{background-color:var(--tempest-primary);border-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_labelWrap_Ktbp0{display:flex;flex-direction:column;gap:2px;line-height:1.3}.tempest_label_cwRtI{font-size:14px;color:var(--tempest-text)}.tempest_description_rMhG1{font-size:12px;color:var(--tempest-text-muted)}.tempest_wrapper_KR4-F{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_label_Mz-wX{font-size:13px;font-weight:600;color:var(--tempest-text)}.tempest_field_iIBJw{display:flex;align-items:center;flex-wrap:wrap;gap:var(--tempest-space-1);padding:4px var(--tempest-space-2);min-height:40px;border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);cursor:text}.tempest_field_iIBJw:focus-within{border-color:var(--tempest-primary);box-shadow:0 0 0 3px #0066ff2e}.tempest_wrapper_KR4-F.tempest_error_O9n-9 .tempest_field_iIBJw{border-color:var(--tempest-danger)}.tempest_chip_GEwrc{display:inline-flex;align-items:center;gap:4px;background-color:var(--tempest-surface-2);color:var(--tempest-text);padding:2px 4px 2px 8px;border-radius:var(--tempest-radius-full);font-size:12px;font-weight:600}.tempest_remove_JYDIq{background:none;border:none;color:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%}.tempest_remove_JYDIq:hover{background-color:#0000001a}.tempest_input_frJmk{border:none;outline:none;background:transparent;flex:1;min-width:80px;font-size:14px;color:var(--tempest-text)}.tempest_helper_Yts53{font-size:12px;color:var(--tempest-text-muted)}.tempest_errorText_llJGq{font-size:12px;color:var(--tempest-danger)}.tempest_overlay_dd9h1{position:fixed;inset:0;background-color:#0f172a80;display:flex;align-items:center;justify-content:center;padding:var(--tempest-space-4);z-index:var(--tempest-z-modal);animation:tempest_tempest-fade-in_DvgSp .15s ease-out}.tempest_dialog_ptM-K{background-color:var(--tempest-bg);color:var(--tempest-text);border-radius:var(--tempest-radius-lg);box-shadow:var(--tempest-shadow-lg);width:100%;max-height:90vh;display:flex;flex-direction:column;animation:tempest_tempest-modal-in_UoxQC .15s ease-out}.tempest_sm_K5k3W{max-width:400px}.tempest_md_gvyR7{max-width:560px}.tempest_lg_BgB1a{max-width:800px}.tempest_xl_MR-68{max-width:1024px}.tempest_header_ILG9i{display:flex;align-items:center;justify-content:space-between;padding:var(--tempest-space-4) var(--tempest-space-5);border-bottom:1px solid var(--tempest-border)}.tempest_title_A5OeE{margin:0;font-size:16px;font-weight:600}.tempest_close_-ER1C{background:none;border:none;color:var(--tempest-text-muted);padding:var(--tempest-space-1);border-radius:var(--tempest-radius-sm);display:flex;align-items:center;justify-content:center}.tempest_close_-ER1C:hover{background-color:var(--tempest-surface);color:var(--tempest-text)}.tempest_body_lVhql{padding:var(--tempest-space-5);overflow-y:auto}.tempest_footer_rro2w{display:flex;justify-content:flex-end;gap:var(--tempest-space-2);padding:var(--tempest-space-4) var(--tempest-space-5);border-top:1px solid var(--tempest-border)}@keyframes tempest_tempest-fade-in_DvgSp{0%{opacity:0}to{opacity:1}}@keyframes tempest_tempest-modal-in_UoxQC{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.tempest_wrapper_iHNUs{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_label_-OEBL{font-size:13px;font-weight:600;color:var(--tempest-text)}.tempest_required_CTss-{color:var(--tempest-danger);margin-left:2px}.tempest_field_65yGJ{position:relative;display:flex;align-items:center}.tempest_input_WjT81{width:100%;height:40px;padding:0 var(--tempest-space-3);border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);color:var(--tempest-text);font-size:14px;transition:border-color .15s ease,box-shadow .15s ease}.tempest_input_WjT81::placeholder{color:var(--tempest-text-subtle)}.tempest_input_WjT81:focus{outline:none;border-color:var(--tempest-primary);box-shadow:0 0 0 3px #0066ff2e}.tempest_input_WjT81:disabled{background-color:var(--tempest-surface);cursor:not-allowed;color:var(--tempest-text-muted)}.tempest_hasLeftIcon_xYO-v{padding-left:36px}.tempest_hasRightIcon_C7uyr{padding-right:36px}.tempest_iconLeft_KrUhI,.tempest_iconRight_Ssr47{position:absolute;display:flex;align-items:center;color:var(--tempest-text-muted);pointer-events:none}.tempest_iconLeft_KrUhI{left:12px}.tempest_iconRight_Ssr47{right:12px}.tempest_error_VLISa .tempest_input_WjT81{border-color:var(--tempest-danger)}.tempest_error_VLISa .tempest_input_WjT81:focus{box-shadow:0 0 0 3px #b91c1c2e}.tempest_helper_7Vc-s{font-size:12px;color:var(--tempest-text-muted)}.tempest_errorText_xz4xS{font-size:12px;color:var(--tempest-danger)}.tempest_overlay_hcG1G{position:fixed;inset:0;background-color:#0f172a73;z-index:var(--tempest-z-modal);animation:tempest_tempest-drawer-overlay_XFbxY .15s ease-out}.tempest_panel_wUX0N{position:fixed;top:0;bottom:0;background-color:var(--tempest-bg);color:var(--tempest-text);box-shadow:var(--tempest-shadow-lg);display:flex;flex-direction:column;z-index:calc(var(--tempest-z-modal) + 1);animation-duration:.22s;animation-timing-function:ease-out;animation-fill-mode:both}.tempest_right_-oX-6{right:0;width:min(420px,92vw);animation-name:tempest_tempest-drawer-in-right_pWYHv}.tempest_left_xi3nD{left:0;width:min(420px,92vw);animation-name:tempest_tempest-drawer-in-left_o7JSb}.tempest_top_7rGCn{inset:0 0 auto;height:min(70vh,480px);animation-name:tempest_tempest-drawer-in-top_kn6AF}.tempest_bottom_zd-25{inset:auto 0 0;height:min(70vh,480px);animation-name:tempest_tempest-drawer-in-bottom_0x3u7}.tempest_header_sYoP1{display:flex;align-items:center;justify-content:space-between;padding:var(--tempest-space-4) var(--tempest-space-5);border-bottom:1px solid var(--tempest-border)}.tempest_title_LqUOu{margin:0;font-size:16px;font-weight:600}.tempest_close_tYPhU{background:none;border:none;color:var(--tempest-text-muted);padding:var(--tempest-space-1);border-radius:var(--tempest-radius-sm);display:flex;align-items:center}.tempest_close_tYPhU:hover{background-color:var(--tempest-surface);color:var(--tempest-text)}.tempest_body_aV9FG{padding:var(--tempest-space-5);overflow-y:auto;flex:1}.tempest_footer_AuvUP{display:flex;justify-content:flex-end;gap:var(--tempest-space-2);padding:var(--tempest-space-4) var(--tempest-space-5);border-top:1px solid var(--tempest-border)}@keyframes tempest_tempest-drawer-overlay_XFbxY{0%{opacity:0}to{opacity:1}}@keyframes tempest_tempest-drawer-in-right_pWYHv{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes tempest_tempest-drawer-in-left_o7JSb{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes tempest_tempest-drawer-in-top_kn6AF{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes tempest_tempest-drawer-in-bottom_0x3u7{0%{transform:translateY(100%)}to{transform:translateY(0)}}.tempest_wrapper_gzyTd{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--tempest-space-3);padding:var(--tempest-space-8) var(--tempest-space-4);text-align:center;color:var(--tempest-text-muted)}.tempest_icon_qVCyh{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--tempest-radius-full);background-color:var(--tempest-surface);color:var(--tempest-text-muted)}.tempest_title_xPfUf{margin:0;font-size:16px;font-weight:600;color:var(--tempest-text)}.tempest_description_oWwH1{margin:0;font-size:14px;color:var(--tempest-text-muted);max-width:480px}.tempest_action_dqxw1{margin-top:var(--tempest-space-2)}.tempest_wrapper_luRyF{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--tempest-space-3);padding:var(--tempest-space-8) var(--tempest-space-4);text-align:center}.tempest_icon_dEdBl{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--tempest-radius-full);background-color:var(--tempest-danger-bg);color:var(--tempest-danger)}.tempest_title_StutD{margin:0;font-size:16px;font-weight:600;color:var(--tempest-text)}.tempest_description_A2XCb{margin:0;font-size:14px;color:var(--tempest-text-muted);max-width:480px}.tempest_action_vm1LC{margin-top:var(--tempest-space-2)}.tempest_wrapper_E0qHs{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_label_lbMkx{font-size:13px;font-weight:600;color:var(--tempest-text)}.tempest_dropzone_jqua0{border:2px dashed var(--tempest-border-strong);border-radius:var(--tempest-radius-lg);background-color:var(--tempest-surface);padding:var(--tempest-space-6) var(--tempest-space-5);text-align:center;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.tempest_dropzone_jqua0:hover{border-color:var(--tempest-primary)}.tempest_dropzone_jqua0.tempest_active_CG9Uk{border-color:var(--tempest-primary);background-color:#0066ff0f}.tempest_dropzone_jqua0.tempest_disabled_WNUUl{opacity:.6;cursor:not-allowed}.tempest_icon_i9fGH{color:var(--tempest-text-muted);margin-bottom:var(--tempest-space-2)}.tempest_title_bTVFl{font-weight:600;color:var(--tempest-text);font-size:14px;margin:0}.tempest_subtitle_S54OV{color:var(--tempest-text-muted);font-size:12px;margin:var(--tempest-space-1) 0 0}.tempest_files_WljYm{margin-top:var(--tempest-space-3);display:flex;flex-direction:column;gap:var(--tempest-space-2)}.tempest_file_Lp-dR{display:flex;align-items:center;justify-content:space-between;gap:var(--tempest-space-3);padding:var(--tempest-space-2) var(--tempest-space-3);background-color:var(--tempest-bg);border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);font-size:13px}.tempest_fileMeta_LTnN2{color:var(--tempest-text-muted);font-size:11px}.tempest_remove_jskra{background:none;border:none;color:var(--tempest-text-muted);cursor:pointer;padding:4px;border-radius:var(--tempest-radius-sm)}.tempest_remove_jskra:hover{background-color:var(--tempest-surface);color:var(--tempest-danger)}.tempest_hidden_ReEq6{display:none}.tempest_form_jNBDR{display:flex;width:100%}.tempest_form_jNBDR.tempest_stack_O1Hl-{flex-direction:column}.tempest_form_jNBDR.tempest_inline_LBQAv{flex-direction:row;align-items:flex-end;flex-wrap:wrap}.tempest_form_jNBDR.tempest_grid_-B86T{display:grid;width:100%}.tempest_section_HGqw3{display:flex;flex-direction:column;width:100%}.tempest_sectionHeader_ji9hQ{display:flex;flex-direction:column;margin-bottom:var(--tempest-space-3)}.tempest_sectionTitle_GTPwe{font-size:var(--tempest-font-size-lg);font-weight:600;color:var(--tempest-text-primary);margin:0}.tempest_sectionDescription_KjW7k{font-size:var(--tempest-font-size-sm);color:var(--tempest-text-secondary);margin:var(--tempest-space-1) 0 0}.tempest_sectionBody_Vp2wz{display:flex;width:100%}.tempest_sectionBody_Vp2wz.tempest_stack_O1Hl-{flex-direction:column}.tempest_sectionBody_Vp2wz.tempest_inline_LBQAv{flex-direction:row;align-items:flex-end;flex-wrap:wrap}.tempest_sectionBody_Vp2wz.tempest_grid_-B86T{display:grid}.tempest_row_1EkVR{display:flex;flex-direction:row;align-items:flex-end;flex-wrap:wrap;width:100%}.tempest_row_1EkVR>*{flex:1 1 0;min-width:0}.tempest_actions_hK95I{display:flex;flex-direction:row;width:100%;margin-top:var(--tempest-space-2)}.tempest_actions_hK95I.tempest_start_gXnm3{justify-content:flex-start}.tempest_actions_hK95I.tempest_center_mKkz4{justify-content:center}.tempest_actions_hK95I.tempest_end_O3yDQ{justify-content:flex-end}.tempest_actions_hK95I.tempest_between_tte2z{justify-content:space-between}.tempest_container_fJfOt{margin-left:auto;margin-right:auto;padding-left:var(--tempest-space-4);padding-right:var(--tempest-space-4);width:100%}.tempest_container_fJfOt.tempest_sm_k8D4-{max-width:640px}.tempest_container_fJfOt.tempest_md_EnpYy{max-width:768px}.tempest_container_fJfOt.tempest_lg_UU-Ig{max-width:1024px}.tempest_container_fJfOt.tempest_xl_2TEWj{max-width:1280px}.tempest_container_fJfOt.tempest_full_l8bvG{max-width:100%}.tempest_stack_sxR8u{display:flex}.tempest_stack_sxR8u.tempest_vertical_2TMf5{flex-direction:column}.tempest_stack_sxR8u.tempest_horizontal_r7-c-{flex-direction:row}.tempest_stack_sxR8u.tempest_center_EDSAh{align-items:center}.tempest_stack_sxR8u.tempest_start_ucQ-K{align-items:flex-start}.tempest_stack_sxR8u.tempest_end_pnKlF{align-items:flex-end}.tempest_stack_sxR8u.tempest_stretch_pX6l7{align-items:stretch}.tempest_stack_sxR8u.tempest_justifyStart_lHYsS{justify-content:flex-start}.tempest_stack_sxR8u.tempest_justifyCenter_JH2m6{justify-content:center}.tempest_stack_sxR8u.tempest_justifyEnd_EBisT{justify-content:flex-end}.tempest_stack_sxR8u.tempest_justifyBetween_mAJwT{justify-content:space-between}.tempest_stack_sxR8u.tempest_wrap_-xxOh{flex-wrap:wrap}.tempest_grid_o-JIX{display:grid;width:100%}.tempest_wrapper_cRGQm{display:flex;align-items:center;justify-content:space-between;gap:var(--tempest-space-3);padding:var(--tempest-space-3) 0;font-size:13px;color:var(--tempest-text-muted);flex-wrap:wrap}.tempest_controls_fdL-y{display:flex;align-items:center;gap:var(--tempest-space-1)}.tempest_page_WjG0l{min-width:32px;height:32px;padding:0 var(--tempest-space-2);border:1px solid var(--tempest-border);background-color:var(--tempest-bg);color:var(--tempest-text);border-radius:var(--tempest-radius-md);font-size:13px;font-weight:500}.tempest_page_WjG0l:hover:not(:disabled){background-color:var(--tempest-surface)}.tempest_page_WjG0l:disabled{opacity:.5}.tempest_active_1kqsJ{background-color:var(--tempest-primary);border-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_active_1kqsJ:hover{background-color:var(--tempest-primary-hover)}.tempest_ellipsis_V294k{padding:0 var(--tempest-space-2);color:var(--tempest-text-subtle)}.tempest_sizeSelect_ZayTo{height:32px;padding:0 var(--tempest-space-2);border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);color:var(--tempest-text);font-size:13px}.tempest_wrapper_BQek1{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_bar_uC-0x{width:100%;height:8px;background-color:var(--tempest-surface-2);border-radius:var(--tempest-radius-full);overflow:hidden}.tempest_fill_vmg7x{height:100%;background-color:var(--tempest-primary);border-radius:inherit;transition:width .18s ease}.tempest_fill_vmg7x.tempest_success_gWJ8U{background-color:var(--tempest-success)}.tempest_fill_vmg7x.tempest_warning_DGkPO{background-color:var(--tempest-warning)}.tempest_fill_vmg7x.tempest_danger_gfwHh{background-color:var(--tempest-danger)}.tempest_indeterminate_HojUj .tempest_fill_vmg7x{width:30%!important;animation:tempest_tempest-progress-loop_0nEdF 1.4s ease-in-out infinite}.tempest_label_qqHJM{font-size:12px;color:var(--tempest-text-muted);display:flex;justify-content:space-between}@keyframes tempest_tempest-progress-loop_0nEdF{0%{transform:translate(-100%)}to{transform:translate(360%)}}.tempest_wrapper_P-gFm{display:inline-flex;align-items:flex-start;gap:var(--tempest-space-2);cursor:pointer;-webkit-user-select:none;user-select:none}.tempest_wrapper_P-gFm.tempest_disabled_0-cna{cursor:not-allowed;opacity:.6}.tempest_input_7R8ZN{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.tempest_dot_P7ejP{flex-shrink:0;width:18px;height:18px;border:1.5px solid var(--tempest-border-strong);border-radius:50%;background-color:var(--tempest-bg);display:inline-flex;align-items:center;justify-content:center;transition:border-color .15s ease}.tempest_dot_P7ejP:after{content:"";width:10px;height:10px;border-radius:50%;background-color:var(--tempest-primary);transform:scale(0);transition:transform .15s ease}.tempest_input_7R8ZN:checked+.tempest_dot_P7ejP{border-color:var(--tempest-primary)}.tempest_input_7R8ZN:checked+.tempest_dot_P7ejP:after{transform:scale(1)}.tempest_input_7R8ZN:focus-visible+.tempest_dot_P7ejP{outline:2px solid var(--tempest-primary);outline-offset:2px}.tempest_labelWrap_iQ1HR{display:flex;flex-direction:column;gap:2px;line-height:1.3}.tempest_label_vAFIP{font-size:14px;color:var(--tempest-text)}.tempest_description_bEB8u{font-size:12px;color:var(--tempest-text-muted)}.tempest_group_oi329{display:flex;flex-direction:column;gap:var(--tempest-space-2)}.tempest_group_oi329.tempest_horizontal_1Ovgu{flex-direction:row;gap:var(--tempest-space-4);flex-wrap:wrap}.tempest_wrapper_dKXJJ{position:relative;width:100%;max-width:360px}.tempest_input_m0lPc{width:100%;height:40px;padding:0 36px;border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);color:var(--tempest-text);font-size:14px;transition:border-color .15s ease,box-shadow .15s ease}.tempest_input_m0lPc:focus{outline:none;border-color:var(--tempest-primary);box-shadow:0 0 0 3px #0066ff2e}.tempest_iconLeft_030-U,.tempest_clear_nb6lG{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;color:var(--tempest-text-muted)}.tempest_iconLeft_030-U{left:12px;pointer-events:none}.tempest_clear_nb6lG{right:8px;width:24px;height:24px;border:none;background:transparent;border-radius:var(--tempest-radius-full)}.tempest_clear_nb6lG:hover{background-color:var(--tempest-surface);color:var(--tempest-text)}.tempest_wrapper_KS2K3{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_label_Lmgos{font-size:13px;font-weight:600;color:var(--tempest-text)}.tempest_required_PvDVJ{color:var(--tempest-danger);margin-left:2px}.tempest_field_h-wBy{position:relative;display:flex;align-items:center}.tempest_select_cjdcr{width:100%;height:40px;padding:0 36px 0 var(--tempest-space-3);border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);color:var(--tempest-text);font-size:14px;appearance:none;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.tempest_select_cjdcr:focus{outline:none;border-color:var(--tempest-primary);box-shadow:0 0 0 3px #0066ff2e}.tempest_select_cjdcr:disabled{background-color:var(--tempest-surface);cursor:not-allowed;color:var(--tempest-text-muted)}.tempest_caret_MdCao{position:absolute;right:12px;pointer-events:none;color:var(--tempest-text-muted)}.tempest_error_sw9MU .tempest_select_cjdcr{border-color:var(--tempest-danger)}.tempest_helper_frosK{font-size:12px;color:var(--tempest-text-muted)}.tempest_errorText_-zd6i{font-size:12px;color:var(--tempest-danger)}.tempest_skeleton_CB4uF{display:block;background:linear-gradient(90deg,var(--tempest-surface) 0%,var(--tempest-surface-2) 50%,var(--tempest-surface) 100%);background-size:200% 100%;border-radius:var(--tempest-radius-md);animation:tempest_tempest-skeleton_H5Y8e 1.4s ease-in-out infinite}.tempest_text_-A8IF{height:14px;border-radius:var(--tempest-radius-sm)}.tempest_circle_DYcl8{border-radius:50%}@keyframes tempest_tempest-skeleton_H5Y8e{0%{background-position:200% 0}to{background-position:-200% 0}}.tempest_spinner_GpFZS{display:inline-block;border:2px solid var(--tempest-surface-2);border-top-color:var(--tempest-primary);border-radius:50%;animation:tempest_tempest-spinner_wKVCY .7s linear infinite}.tempest_sm_3sIoD{width:14px;height:14px}.tempest_md_M2sPj{width:20px;height:20px}.tempest_lg_IxTw2{width:32px;height:32px}@keyframes tempest_tempest-spinner_wKVCY{to{transform:rotate(360deg)}}.tempest_stepper_w3qjQ{display:flex;align-items:flex-start;gap:var(--tempest-space-2);width:100%}.tempest_stepper_w3qjQ.tempest_vertical_d4mOs{flex-direction:column;align-items:stretch}.tempest_step_s2nqL{display:flex;align-items:center;gap:var(--tempest-space-2);flex:1}.tempest_dot_d1bSL{width:28px;height:28px;border-radius:50%;border:2px solid var(--tempest-border-strong);background-color:var(--tempest-bg);color:var(--tempest-text-muted);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.tempest_step_s2nqL.tempest_completed_gcFHM .tempest_dot_d1bSL{background-color:var(--tempest-primary);border-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_step_s2nqL.tempest_active_kL-CH .tempest_dot_d1bSL{border-color:var(--tempest-primary);color:var(--tempest-primary)}.tempest_label_8irAI{font-size:13px;color:var(--tempest-text-muted);font-weight:600}.tempest_step_s2nqL.tempest_active_kL-CH .tempest_label_8irAI,.tempest_step_s2nqL.tempest_completed_gcFHM .tempest_label_8irAI{color:var(--tempest-text)}.tempest_connector_lyeWp{flex:1;height:2px;background-color:var(--tempest-border);margin:0 var(--tempest-space-1)}.tempest_connector_lyeWp.tempest_completed_gcFHM{background-color:var(--tempest-primary)}.tempest_stepper_w3qjQ.tempest_vertical_d4mOs .tempest_connector_lyeWp{width:2px;height:24px;margin:0 0 0 13px}.tempest_wrapper_kudO9{display:inline-flex;align-items:center;gap:var(--tempest-space-2);cursor:pointer;-webkit-user-select:none;user-select:none}.tempest_wrapper_kudO9.tempest_disabled_2aZ0V{cursor:not-allowed;opacity:.6}.tempest_input_5BPNu{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.tempest_track_7ObdZ{width:36px;height:20px;background-color:var(--tempest-border-strong);border-radius:var(--tempest-radius-full);position:relative;transition:background-color .18s ease;flex-shrink:0}.tempest_thumb_-FTeK{position:absolute;top:2px;left:2px;width:16px;height:16px;background-color:#fff;border-radius:50%;box-shadow:var(--tempest-shadow-sm);transition:transform .18s ease}.tempest_input_5BPNu:checked+.tempest_track_7ObdZ{background-color:var(--tempest-primary)}.tempest_input_5BPNu:checked+.tempest_track_7ObdZ .tempest_thumb_-FTeK{transform:translate(16px)}.tempest_input_5BPNu:focus-visible+.tempest_track_7ObdZ{outline:2px solid var(--tempest-primary);outline-offset:2px}.tempest_label_LrH7V{font-size:14px;color:var(--tempest-text)}.tempest_scroll_unrJp{width:100%;overflow-x:auto;border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-lg);background-color:var(--tempest-bg)}.tempest_table_Dkosn{width:100%;border-collapse:collapse;font-size:14px}.tempest_th_PNuEx,.tempest_td_jv9tA{padding:var(--tempest-space-3) var(--tempest-space-4);text-align:left;border-bottom:1px solid var(--tempest-border)}.tempest_th_PNuEx{background-color:var(--tempest-surface);color:var(--tempest-text-muted);font-weight:600;font-size:12px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.tempest_tr_7UG8J:last-child .tempest_td_jv9tA{border-bottom:none}.tempest_tr_7UG8J.tempest_clickable_B6Si-{cursor:pointer}.tempest_tr_7UG8J.tempest_clickable_B6Si-:hover{background-color:var(--tempest-surface)}.tempest_alignRight_9hY0G{text-align:right}.tempest_alignCenter_YiUQy{text-align:center}.tempest_emptyRow_kdMiv{padding:var(--tempest-space-6);text-align:center;color:var(--tempest-text-muted)}.tempest_tablist_WR6ag{display:flex;gap:var(--tempest-space-1);border-bottom:1px solid var(--tempest-border);overflow-x:auto}.tempest_tab_IdDYc{background:transparent;border:none;padding:var(--tempest-space-3) var(--tempest-space-4);font-size:14px;font-weight:600;color:var(--tempest-text-muted);cursor:pointer;position:relative;white-space:nowrap;transition:color .15s ease}.tempest_tab_IdDYc:hover:not(:disabled){color:var(--tempest-text)}.tempest_tab_IdDYc.tempest_active_PTNtG{color:var(--tempest-primary)}.tempest_tab_IdDYc.tempest_active_PTNtG:after{content:"";position:absolute;left:var(--tempest-space-3);right:var(--tempest-space-3);bottom:-1px;height:2px;background-color:var(--tempest-primary);border-radius:var(--tempest-radius-sm) var(--tempest-radius-sm) 0 0}.tempest_tab_IdDYc:disabled{opacity:.5;cursor:not-allowed}.tempest_panel_08i9c{padding:var(--tempest-space-4) 0}.tempest_pill_lGuqn .tempest_tab_IdDYc{border-radius:var(--tempest-radius-full);padding:6px var(--tempest-space-3);font-size:13px}.tempest_pill_lGuqn .tempest_tab_IdDYc.tempest_active_PTNtG:after{display:none}.tempest_pill_lGuqn .tempest_tab_IdDYc.tempest_active_PTNtG{background-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_pill_lGuqn.tempest_tablist_WR6ag{border-bottom:none}.tempest_wrapper_C0gfg{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_label_cWLXP{font-size:13px;font-weight:600;color:var(--tempest-text)}.tempest_required_rDZXE{color:var(--tempest-danger);margin-left:2px}.tempest_textarea_Z-y6g{width:100%;min-height:96px;padding:var(--tempest-space-3);border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);color:var(--tempest-text);font-size:14px;font-family:inherit;resize:vertical;transition:border-color .15s ease,box-shadow .15s ease}.tempest_textarea_Z-y6g::placeholder{color:var(--tempest-text-subtle)}.tempest_textarea_Z-y6g:focus{outline:none;border-color:var(--tempest-primary);box-shadow:0 0 0 3px #0066ff2e}.tempest_textarea_Z-y6g:disabled{background-color:var(--tempest-surface);cursor:not-allowed;color:var(--tempest-text-muted)}.tempest_error_NWC9f .tempest_textarea_Z-y6g{border-color:var(--tempest-danger)}.tempest_helper_gedut{font-size:12px;color:var(--tempest-text-muted)}.tempest_errorText_ey07q{font-size:12px;color:var(--tempest-danger)}.tempest_trigger_Dmc5E{display:inline-flex;position:relative}.tempest_bubble_TPGHB{position:absolute;z-index:var(--tempest-z-dropdown);background-color:#11151c;color:#fff;padding:4px 8px;border-radius:var(--tempest-radius-sm);font-size:12px;white-space:nowrap;pointer-events:none;box-shadow:var(--tempest-shadow-md);animation:tempest_tempest-tooltip-in_csYeZ .12s ease-out}.tempest_top_m2tnn{bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.tempest_bottom_9Twz4{top:calc(100% + 8px);left:50%;transform:translate(-50%)}.tempest_left_UPdrG{right:calc(100% + 8px);top:50%;transform:translateY(-50%)}.tempest_right_CV--T{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}@keyframes tempest_tempest-tooltip-in_csYeZ{0%{opacity:0;transform:scale(.95) translate(var(--tempest-tx, 0),var(--tempest-ty, 0))}to{opacity:1}}.tempest_container_x4-Qm{position:fixed;top:var(--tempest-space-4);right:var(--tempest-space-4);display:flex;flex-direction:column;gap:var(--tempest-space-2);z-index:var(--tempest-z-toast);pointer-events:none}.tempest_toast_FLdHz{pointer-events:auto;display:flex;align-items:flex-start;gap:var(--tempest-space-3);padding:var(--tempest-space-3) var(--tempest-space-4);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);border:1px solid var(--tempest-border);box-shadow:var(--tempest-shadow-md);min-width:280px;max-width:420px;animation:tempest_tempest-toast-in_E2d-A .18s ease-out}.tempest_success_Oy694{border-left:4px solid var(--tempest-success)}.tempest_warning_84GC8{border-left:4px solid var(--tempest-warning)}.tempest_error_hrQAA{border-left:4px solid var(--tempest-danger)}.tempest_info_eq5bQ{border-left:4px solid var(--tempest-info)}.tempest_title_-H6R2{font-weight:600;font-size:14px;color:var(--tempest-text);margin:0}.tempest_description_-QwfC{font-size:13px;color:var(--tempest-text-muted);margin:2px 0 0}.tempest_close_i10-s{margin-left:auto;background:none;border:none;color:var(--tempest-text-muted);padding:4px;border-radius:var(--tempest-radius-sm);display:flex;align-items:center}.tempest_close_i10-s:hover{background-color:var(--tempest-surface);color:var(--tempest-text)}@keyframes tempest_tempest-toast-in_E2d-A{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}.tempest_scroll_8Giwl{position:relative;overflow:auto;width:100%}.tempest_spacer_P3Pvl{position:relative;width:100%}.tempest_row_Ff0VU{position:absolute;left:0;right:0}
|
|
1
|
+
.tempest_avatar_3xMuZ{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background-color:var(--tempest-surface-2);color:var(--tempest-text);overflow:hidden;font-weight:600;text-transform:uppercase;flex-shrink:0;-webkit-user-select:none;user-select:none}.tempest_image_ieqGp{width:100%;height:100%;object-fit:cover}.tempest_xs_oSaLL{width:24px;height:24px;font-size:10px}.tempest_sm_sZ2bk{width:32px;height:32px;font-size:12px}.tempest_md_Fdkbz{width:40px;height:40px;font-size:14px}.tempest_lg_pTTUA{width:56px;height:56px;font-size:18px}.tempest_xl_mW58F{width:80px;height:80px;font-size:24px}.tempest_status_ISBnL{position:relative}.tempest_dot_Wgfo-{position:absolute;bottom:0;right:0;width:28%;height:28%;border-radius:50%;border:2px solid var(--tempest-bg)}.tempest_dot_Wgfo-.tempest_online_-aWoW{background-color:var(--tempest-success)}.tempest_dot_Wgfo-.tempest_offline_-StX3{background-color:var(--tempest-text-subtle)}.tempest_dot_Wgfo-.tempest_busy_TbwuF{background-color:var(--tempest-danger)}.tempest_badge_RsuMz{display:inline-flex;align-items:center;gap:var(--tempest-space-1);padding:2px var(--tempest-space-2);border:1px solid transparent;border-radius:var(--tempest-radius-full);font-family:var(--tempest-font-sans);font-size:var(--tempest-text-xs);font-weight:var(--tempest-weight-semibold);line-height:var(--tempest-leading-snug);letter-spacing:var(--tempest-tracking-normal);white-space:nowrap}.tempest_sm_LYsCn{padding:1px var(--tempest-space-2);font-size:var(--tempest-text-2xs)}.tempest_md_4Or8q{padding:2px var(--tempest-space-2);font-size:var(--tempest-text-xs)}.tempest_lg_Bseje{padding:3px var(--tempest-space-3);font-size:var(--tempest-text-sm)}.tempest_square_l63D-{border-radius:var(--tempest-radius-sm)}.tempest_neutral_lulSm{background-color:var(--tempest-surface-2);color:var(--tempest-text)}.tempest_neutral_lulSm.tempest_solid_0Leug{background-color:var(--tempest-gray-700);color:#fff}.tempest_neutral_lulSm.tempest_outline_x06HL{background-color:transparent;color:var(--tempest-text);border-color:var(--tempest-border-strong)}.tempest_success_u9JiS{background-color:var(--tempest-success-bg);color:var(--tempest-success-fg)}.tempest_success_u9JiS.tempest_solid_0Leug{background-color:var(--tempest-success-solid);color:#fff}.tempest_success_u9JiS.tempest_outline_x06HL{background-color:transparent;color:var(--tempest-success);border-color:var(--tempest-success-border)}.tempest_warning_nsGp-{background-color:var(--tempest-warning-bg);color:var(--tempest-warning-fg)}.tempest_warning_nsGp-.tempest_solid_0Leug{background-color:var(--tempest-warning-solid);color:#fff}.tempest_warning_nsGp-.tempest_outline_x06HL{background-color:transparent;color:var(--tempest-warning);border-color:var(--tempest-warning-border)}.tempest_danger_PD2hz{background-color:var(--tempest-danger-bg);color:var(--tempest-danger-fg)}.tempest_danger_PD2hz.tempest_solid_0Leug{background-color:var(--tempest-danger-solid);color:#fff}.tempest_danger_PD2hz.tempest_outline_x06HL{background-color:transparent;color:var(--tempest-danger);border-color:var(--tempest-danger-border)}.tempest_info_na6DQ{background-color:var(--tempest-info-bg);color:var(--tempest-info-fg)}.tempest_info_na6DQ.tempest_solid_0Leug{background-color:var(--tempest-info-solid);color:#fff}.tempest_info_na6DQ.tempest_outline_x06HL{background-color:transparent;color:var(--tempest-info);border-color:var(--tempest-info-border)}.tempest_primary_S0WCS{background-color:var(--tempest-primary-soft);color:var(--tempest-primary-active)}.tempest_primary_S0WCS.tempest_solid_0Leug{background-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_primary_S0WCS.tempest_outline_x06HL{background-color:transparent;color:var(--tempest-primary);border-color:var(--tempest-primary)}.tempest_dot_i0c-G{width:6px;height:6px;border-radius:var(--tempest-radius-full);background-color:currentColor;display:inline-block;flex-shrink:0}.tempest_nav_H4g6P{display:flex;align-items:center;gap:var(--tempest-space-1);font-size:13px;color:var(--tempest-text-muted);flex-wrap:wrap}.tempest_item_O4g3P{display:inline-flex;align-items:center;gap:var(--tempest-space-1)}.tempest_link_7WM67{color:var(--tempest-text-muted);text-decoration:none;padding:2px 4px;border-radius:var(--tempest-radius-sm)}.tempest_link_7WM67:hover{color:var(--tempest-text);background-color:var(--tempest-surface)}.tempest_current_JdlcS{color:var(--tempest-text);font-weight:600}.tempest_separator_zGWyJ{color:var(--tempest-text-subtle);margin:0 2px}.tempest_button_2ZuB7{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--tempest-control-gap, var(--tempest-space-2));border:1px solid transparent;border-radius:var(--tempest-control-radius, var(--tempest-radius-md));font-family:var(--tempest-font-sans);font-weight:var(--tempest-weight-semibold);line-height:var(--tempest-leading-none);letter-spacing:var(--tempest-tracking-normal);text-decoration:none;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:var(--tempest-transition-base);box-shadow:var(--tempest-shadow-xs)}.tempest_button_2ZuB7:focus-visible{outline:var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);outline-offset:var(--tempest-focus-ring-offset)}.tempest_button_2ZuB7:hover:not(:disabled){box-shadow:var(--tempest-shadow-sm)}.tempest_button_2ZuB7:active:not(:disabled){transform:translateY(1px);box-shadow:var(--tempest-shadow-xs)}.tempest_button_2ZuB7:disabled{opacity:.55;box-shadow:none}.tempest_primary_s1sM6{background-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_primary_s1sM6:hover:not(:disabled){background-color:var(--tempest-primary-hover)}.tempest_primary_s1sM6:active:not(:disabled){background-color:var(--tempest-primary-active)}.tempest_secondary_R0waJ{background-color:var(--tempest-surface);color:var(--tempest-text);border-color:var(--tempest-border)}.tempest_secondary_R0waJ:hover:not(:disabled){background-color:var(--tempest-surface-2);border-color:var(--tempest-border-strong)}.tempest_danger_V4fX8{background-color:var(--tempest-danger-solid);color:#fff}.tempest_danger_V4fX8:hover:not(:disabled){background-color:var(--tempest-danger-hover)}.tempest_success_w6qB6{background-color:var(--tempest-success-solid);color:#fff}.tempest_success_w6qB6:hover:not(:disabled){filter:brightness(.92)}.tempest_ghost_1KINV{background-color:transparent;color:var(--tempest-text);box-shadow:none}.tempest_ghost_1KINV:hover:not(:disabled){background-color:var(--tempest-surface);box-shadow:none}.tempest_ghost_1KINV:active:not(:disabled){background-color:var(--tempest-surface-2);box-shadow:none}.tempest_soft_c3kzm{background-color:var(--tempest-primary-soft);color:var(--tempest-primary-active);box-shadow:none}.tempest_soft_c3kzm:hover:not(:disabled){background-color:var(--tempest-primary-soft-hover)}.tempest_outline_F5jq-{background-color:transparent;color:var(--tempest-primary);border-color:var(--tempest-primary);box-shadow:none}.tempest_outline_F5jq-:hover:not(:disabled){background-color:var(--tempest-primary-soft)}.tempest_link_Zt5hw{background-color:transparent;color:var(--tempest-primary);box-shadow:none;padding-left:0;padding-right:0;border-radius:var(--tempest-radius-sm)}.tempest_link_Zt5hw:hover:not(:disabled){color:var(--tempest-primary-hover);text-decoration:underline;background:none;box-shadow:none}.tempest_xs_cF6m0{height:var(--tempest-control-height-xs);padding:0 var(--tempest-control-padding-xs);font-size:var(--tempest-control-font-xs)}.tempest_sm_NhG0g{height:var(--tempest-control-height-sm);padding:0 var(--tempest-control-padding-sm);font-size:var(--tempest-control-font-sm)}.tempest_md_hH4h3{height:var(--tempest-control-height-md);padding:0 var(--tempest-control-padding-md);font-size:var(--tempest-control-font-md)}.tempest_lg_2plQf{height:var(--tempest-control-height-lg);padding:0 var(--tempest-control-padding-lg);font-size:var(--tempest-control-font-lg)}.tempest_xl_nx4V0{height:var(--tempest-control-height-xl);padding:0 var(--tempest-control-padding-xl);font-size:var(--tempest-control-font-xl)}.tempest_iconOnly_WCpTS.tempest_xs_cF6m0{width:var(--tempest-control-height-xs);padding:0}.tempest_iconOnly_WCpTS.tempest_sm_NhG0g{width:var(--tempest-control-height-sm);padding:0}.tempest_iconOnly_WCpTS.tempest_md_hH4h3{width:var(--tempest-control-height-md);padding:0}.tempest_iconOnly_WCpTS.tempest_lg_2plQf{width:var(--tempest-control-height-lg);padding:0}.tempest_iconOnly_WCpTS.tempest_xl_nx4V0{width:var(--tempest-control-height-xl);padding:0}.tempest_pill_lx8lt{border-radius:var(--tempest-radius-full)}.tempest_fullWidth_36oJT{width:100%}.tempest_loading_EQAt2 .tempest_hiddenText_hIiJ2{visibility:hidden}.tempest_spinner_ZExvW{position:absolute;animation:tempest_tempest-spin_UOSVC .8s linear infinite}@keyframes tempest_tempest-spin_UOSVC{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tempest_card_Cb1o4{background-color:var(--tempest-bg);border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-lg);padding:var(--tempest-space-5);box-shadow:var(--tempest-shadow-sm);color:var(--tempest-text);transition:var(--tempest-transition-shadow),var(--tempest-transition-transform),border-color var(--tempest-duration-fast) var(--tempest-ease-out)}.tempest_flat_LRpce{box-shadow:none}.tempest_raised_WmIqk{box-shadow:var(--tempest-shadow-md)}.tempest_elevated_5VEDw{box-shadow:var(--tempest-shadow-lg);border-color:transparent}.tempest_interactive_B8Tah{cursor:pointer}.tempest_interactive_B8Tah:hover{border-color:var(--tempest-border-strong);box-shadow:var(--tempest-shadow-md);transform:translateY(-1px)}.tempest_interactive_B8Tah:active{transform:translateY(0);box-shadow:var(--tempest-shadow-sm)}.tempest_interactive_B8Tah:focus-visible{outline:var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);outline-offset:var(--tempest-focus-ring-offset)}.tempest_padded_oOxwN{padding:var(--tempest-space-5)}.tempest_flush_aiDZi{padding:0}.tempest_header_PTXf2{display:flex;align-items:center;justify-content:space-between;gap:var(--tempest-space-3);padding:var(--tempest-space-4) var(--tempest-space-5);border-bottom:1px solid var(--tempest-border)}.tempest_title_mSgoo{margin:0;font-size:var(--tempest-text-md);font-weight:var(--tempest-weight-semibold);line-height:var(--tempest-leading-snug);color:var(--tempest-text)}.tempest_body_W441Z{padding:var(--tempest-space-5)}.tempest_footer_Mu-JC{display:flex;align-items:center;justify-content:flex-end;gap:var(--tempest-space-2);padding:var(--tempest-space-4) var(--tempest-space-5);border-top:1px solid var(--tempest-border)}.tempest_wrapper_rpthW{display:inline-flex;align-items:flex-start;gap:var(--tempest-space-2);cursor:pointer;-webkit-user-select:none;user-select:none}.tempest_wrapper_rpthW.tempest_disabled_x7-eg{cursor:not-allowed;opacity:.6}.tempest_input_2kt-h{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.tempest_box_OCPee{flex-shrink:0;width:18px;height:18px;border:1.5px solid var(--tempest-border-strong);border-radius:var(--tempest-radius-sm);background-color:var(--tempest-bg);display:inline-flex;align-items:center;justify-content:center;color:transparent;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.tempest_input_2kt-h:focus-visible+.tempest_box_OCPee{outline:2px solid var(--tempest-primary);outline-offset:2px}.tempest_input_2kt-h:checked+.tempest_box_OCPee{background-color:var(--tempest-primary);border-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_input_2kt-h:indeterminate+.tempest_box_OCPee{background-color:var(--tempest-primary);border-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_labelWrap_Ktbp0{display:flex;flex-direction:column;gap:2px;line-height:1.3}.tempest_label_cwRtI{font-size:14px;color:var(--tempest-text)}.tempest_description_rMhG1{font-size:12px;color:var(--tempest-text-muted)}.tempest_wrapper_KR4-F{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_label_Mz-wX{font-size:13px;font-weight:600;color:var(--tempest-text)}.tempest_field_iIBJw{display:flex;align-items:center;flex-wrap:wrap;gap:var(--tempest-space-1);padding:4px var(--tempest-space-2);min-height:40px;border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);cursor:text}.tempest_field_iIBJw:focus-within{border-color:var(--tempest-primary);box-shadow:0 0 0 3px #0066ff2e}.tempest_wrapper_KR4-F.tempest_error_O9n-9 .tempest_field_iIBJw{border-color:var(--tempest-danger)}.tempest_chip_GEwrc{display:inline-flex;align-items:center;gap:4px;background-color:var(--tempest-surface-2);color:var(--tempest-text);padding:2px 4px 2px 8px;border-radius:var(--tempest-radius-full);font-size:12px;font-weight:600}.tempest_remove_JYDIq{background:none;border:none;color:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%}.tempest_remove_JYDIq:hover{background-color:#0000001a}.tempest_input_frJmk{border:none;outline:none;background:transparent;flex:1;min-width:80px;font-size:14px;color:var(--tempest-text)}.tempest_helper_Yts53{font-size:12px;color:var(--tempest-text-muted)}.tempest_errorText_llJGq{font-size:12px;color:var(--tempest-danger)}.tempest_overlay_dd9h1{position:fixed;inset:0;background-color:#0f172a8c;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:var(--tempest-space-4);z-index:var(--tempest-z-modal);animation:tempest_tempest-fade-in_DvgSp var(--tempest-duration-base) var(--tempest-ease-out)}.tempest_dialog_ptM-K{background-color:var(--tempest-bg);color:var(--tempest-text);border-radius:var(--tempest-radius-xl);box-shadow:var(--tempest-shadow-xl);width:100%;max-height:90vh;display:flex;flex-direction:column;animation:tempest_tempest-modal-in_UoxQC var(--tempest-duration-base) var(--tempest-ease-emphasized)}.tempest_sm_K5k3W{max-width:400px}.tempest_md_gvyR7{max-width:560px}.tempest_lg_BgB1a{max-width:800px}.tempest_xl_MR-68{max-width:1024px}.tempest_header_ILG9i{display:flex;align-items:center;justify-content:space-between;gap:var(--tempest-space-3);padding:var(--tempest-space-4) var(--tempest-space-5);border-bottom:1px solid var(--tempest-border)}.tempest_title_A5OeE{margin:0;font-size:var(--tempest-text-lg);font-weight:var(--tempest-weight-semibold);line-height:var(--tempest-leading-snug);color:var(--tempest-text)}.tempest_close_-ER1C{background:none;border:none;color:var(--tempest-text-muted);padding:var(--tempest-space-1);border-radius:var(--tempest-radius-sm);display:flex;align-items:center;justify-content:center;transition:var(--tempest-transition-color)}.tempest_close_-ER1C:hover{background-color:var(--tempest-surface);color:var(--tempest-text)}.tempest_close_-ER1C:focus-visible{outline:var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);outline-offset:var(--tempest-focus-ring-offset)}.tempest_body_lVhql{padding:var(--tempest-space-5);overflow-y:auto;line-height:var(--tempest-leading-normal)}.tempest_footer_rro2w{display:flex;justify-content:flex-end;gap:var(--tempest-space-2);padding:var(--tempest-space-4) var(--tempest-space-5);border-top:1px solid var(--tempest-border);background-color:var(--tempest-surface);border-radius:0 0 var(--tempest-radius-xl) var(--tempest-radius-xl)}@keyframes tempest_tempest-fade-in_DvgSp{0%{opacity:0}to{opacity:1}}@keyframes tempest_tempest-modal-in_UoxQC{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.tempest_overlay_dd9h1,.tempest_dialog_ptM-K{animation:none}}.tempest_wrapper_iHNUs{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_label_-OEBL{font-size:var(--tempest-text-sm);font-weight:var(--tempest-weight-semibold);color:var(--tempest-text);line-height:var(--tempest-leading-snug)}.tempest_required_CTss-{color:var(--tempest-danger);margin-left:2px}.tempest_field_65yGJ{position:relative;display:flex;align-items:center}.tempest_input_WjT81{width:100%;height:var(--tempest-control-height-md);padding:0 var(--tempest-control-padding-md);border:1px solid var(--tempest-border);border-radius:var(--tempest-control-radius);background-color:var(--tempest-bg);color:var(--tempest-text);font-family:var(--tempest-font-sans);font-size:var(--tempest-control-font-md);line-height:var(--tempest-leading-snug);box-shadow:var(--tempest-shadow-xs);transition:var(--tempest-transition-color),var(--tempest-transition-shadow)}.tempest_input_WjT81::placeholder{color:var(--tempest-text-subtle)}.tempest_input_WjT81:hover:not(:disabled):not(:focus){border-color:var(--tempest-border-strong)}.tempest_input_WjT81:focus{outline:none;border-color:var(--tempest-primary);box-shadow:0 0 0 var(--tempest-focus-ring-width) var(--tempest-focus-ring-color)}.tempest_input_WjT81:disabled{background-color:var(--tempest-surface);cursor:not-allowed;color:var(--tempest-text-muted);box-shadow:none}.tempest_input_WjT81:read-only{background-color:var(--tempest-surface)}.tempest_sizeSm_cgds6{height:var(--tempest-control-height-sm);padding:0 var(--tempest-control-padding-sm);font-size:var(--tempest-control-font-sm)}.tempest_sizeMd_EPFGy{height:var(--tempest-control-height-md);padding:0 var(--tempest-control-padding-md);font-size:var(--tempest-control-font-md)}.tempest_sizeLg_5Cq8k{height:var(--tempest-control-height-lg);padding:0 var(--tempest-control-padding-lg);font-size:var(--tempest-control-font-lg)}.tempest_hasLeftIcon_xYO-v{padding-left:36px}.tempest_hasRightIcon_C7uyr{padding-right:36px}.tempest_iconLeft_KrUhI,.tempest_iconRight_Ssr47{position:absolute;display:flex;align-items:center;color:var(--tempest-text-muted);pointer-events:none}.tempest_iconLeft_KrUhI{left:12px}.tempest_iconRight_Ssr47{right:12px}.tempest_error_VLISa .tempest_input_WjT81{border-color:var(--tempest-danger)}.tempest_error_VLISa .tempest_input_WjT81:focus{box-shadow:0 0 0 var(--tempest-focus-ring-width) color-mix(in srgb,var(--tempest-danger) 25%,transparent)}.tempest_helper_7Vc-s{font-size:var(--tempest-text-xs);color:var(--tempest-text-muted);line-height:var(--tempest-leading-snug)}.tempest_errorText_xz4xS{font-size:var(--tempest-text-xs);color:var(--tempest-danger);line-height:var(--tempest-leading-snug)}.tempest_overlay_hcG1G{position:fixed;inset:0;background-color:#0f172a73;z-index:var(--tempest-z-modal);animation:tempest_tempest-drawer-overlay_XFbxY .15s ease-out}.tempest_panel_wUX0N{position:fixed;top:0;bottom:0;background-color:var(--tempest-bg);color:var(--tempest-text);box-shadow:var(--tempest-shadow-lg);display:flex;flex-direction:column;z-index:calc(var(--tempest-z-modal) + 1);animation-duration:.22s;animation-timing-function:ease-out;animation-fill-mode:both}.tempest_right_-oX-6{right:0;width:min(420px,92vw);animation-name:tempest_tempest-drawer-in-right_pWYHv}.tempest_left_xi3nD{left:0;width:min(420px,92vw);animation-name:tempest_tempest-drawer-in-left_o7JSb}.tempest_top_7rGCn{inset:0 0 auto;height:min(70vh,480px);animation-name:tempest_tempest-drawer-in-top_kn6AF}.tempest_bottom_zd-25{inset:auto 0 0;height:min(70vh,480px);animation-name:tempest_tempest-drawer-in-bottom_0x3u7}.tempest_header_sYoP1{display:flex;align-items:center;justify-content:space-between;padding:var(--tempest-space-4) var(--tempest-space-5);border-bottom:1px solid var(--tempest-border)}.tempest_title_LqUOu{margin:0;font-size:16px;font-weight:600}.tempest_close_tYPhU{background:none;border:none;color:var(--tempest-text-muted);padding:var(--tempest-space-1);border-radius:var(--tempest-radius-sm);display:flex;align-items:center}.tempest_close_tYPhU:hover{background-color:var(--tempest-surface);color:var(--tempest-text)}.tempest_body_aV9FG{padding:var(--tempest-space-5);overflow-y:auto;flex:1}.tempest_footer_AuvUP{display:flex;justify-content:flex-end;gap:var(--tempest-space-2);padding:var(--tempest-space-4) var(--tempest-space-5);border-top:1px solid var(--tempest-border)}@keyframes tempest_tempest-drawer-overlay_XFbxY{0%{opacity:0}to{opacity:1}}@keyframes tempest_tempest-drawer-in-right_pWYHv{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes tempest_tempest-drawer-in-left_o7JSb{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes tempest_tempest-drawer-in-top_kn6AF{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes tempest_tempest-drawer-in-bottom_0x3u7{0%{transform:translateY(100%)}to{transform:translateY(0)}}.tempest_wrapper_gzyTd{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--tempest-space-3);padding:var(--tempest-space-8) var(--tempest-space-4);text-align:center;color:var(--tempest-text-muted)}.tempest_icon_qVCyh{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--tempest-radius-full);background-color:var(--tempest-surface);color:var(--tempest-text-muted)}.tempest_title_xPfUf{margin:0;font-size:16px;font-weight:600;color:var(--tempest-text)}.tempest_description_oWwH1{margin:0;font-size:14px;color:var(--tempest-text-muted);max-width:480px}.tempest_action_dqxw1{margin-top:var(--tempest-space-2)}.tempest_wrapper_luRyF{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--tempest-space-3);padding:var(--tempest-space-8) var(--tempest-space-4);text-align:center}.tempest_icon_dEdBl{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--tempest-radius-full);background-color:var(--tempest-danger-bg);color:var(--tempest-danger)}.tempest_title_StutD{margin:0;font-size:16px;font-weight:600;color:var(--tempest-text)}.tempest_description_A2XCb{margin:0;font-size:14px;color:var(--tempest-text-muted);max-width:480px}.tempest_action_vm1LC{margin-top:var(--tempest-space-2)}.tempest_wrapper_E0qHs{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_label_lbMkx{font-size:13px;font-weight:600;color:var(--tempest-text)}.tempest_dropzone_jqua0{border:2px dashed var(--tempest-border-strong);border-radius:var(--tempest-radius-lg);background-color:var(--tempest-surface);padding:var(--tempest-space-6) var(--tempest-space-5);text-align:center;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.tempest_dropzone_jqua0:hover{border-color:var(--tempest-primary)}.tempest_dropzone_jqua0.tempest_active_CG9Uk{border-color:var(--tempest-primary);background-color:#0066ff0f}.tempest_dropzone_jqua0.tempest_disabled_WNUUl{opacity:.6;cursor:not-allowed}.tempest_icon_i9fGH{color:var(--tempest-text-muted);margin-bottom:var(--tempest-space-2)}.tempest_title_bTVFl{font-weight:600;color:var(--tempest-text);font-size:14px;margin:0}.tempest_subtitle_S54OV{color:var(--tempest-text-muted);font-size:12px;margin:var(--tempest-space-1) 0 0}.tempest_files_WljYm{margin-top:var(--tempest-space-3);display:flex;flex-direction:column;gap:var(--tempest-space-2)}.tempest_file_Lp-dR{display:flex;align-items:center;justify-content:space-between;gap:var(--tempest-space-3);padding:var(--tempest-space-2) var(--tempest-space-3);background-color:var(--tempest-bg);border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);font-size:13px}.tempest_fileMeta_LTnN2{color:var(--tempest-text-muted);font-size:11px}.tempest_remove_jskra{background:none;border:none;color:var(--tempest-text-muted);cursor:pointer;padding:4px;border-radius:var(--tempest-radius-sm)}.tempest_remove_jskra:hover{background-color:var(--tempest-surface);color:var(--tempest-danger)}.tempest_hidden_ReEq6{display:none}.tempest_form_jNBDR{display:flex;width:100%}.tempest_form_jNBDR.tempest_stack_O1Hl-{flex-direction:column}.tempest_form_jNBDR.tempest_inline_LBQAv{flex-direction:row;align-items:flex-end;flex-wrap:wrap}.tempest_form_jNBDR.tempest_grid_-B86T{display:grid;width:100%}.tempest_section_HGqw3{display:flex;flex-direction:column;width:100%}.tempest_sectionHeader_ji9hQ{display:flex;flex-direction:column;margin-bottom:var(--tempest-space-3)}.tempest_sectionTitle_GTPwe{font-size:var(--tempest-font-size-lg);font-weight:600;color:var(--tempest-text-primary);margin:0}.tempest_sectionDescription_KjW7k{font-size:var(--tempest-font-size-sm);color:var(--tempest-text-secondary);margin:var(--tempest-space-1) 0 0}.tempest_sectionBody_Vp2wz{display:flex;width:100%}.tempest_sectionBody_Vp2wz.tempest_stack_O1Hl-{flex-direction:column}.tempest_sectionBody_Vp2wz.tempest_inline_LBQAv{flex-direction:row;align-items:flex-end;flex-wrap:wrap}.tempest_sectionBody_Vp2wz.tempest_grid_-B86T{display:grid}.tempest_row_1EkVR{display:flex;flex-direction:row;align-items:flex-end;flex-wrap:wrap;width:100%}.tempest_row_1EkVR>*{flex:1 1 0;min-width:0}.tempest_actions_hK95I{display:flex;flex-direction:row;width:100%;margin-top:var(--tempest-space-2)}.tempest_actions_hK95I.tempest_start_gXnm3{justify-content:flex-start}.tempest_actions_hK95I.tempest_center_mKkz4{justify-content:center}.tempest_actions_hK95I.tempest_end_O3yDQ{justify-content:flex-end}.tempest_actions_hK95I.tempest_between_tte2z{justify-content:space-between}.tempest_container_fJfOt{margin-left:auto;margin-right:auto;padding-left:var(--tempest-space-4);padding-right:var(--tempest-space-4);width:100%}.tempest_container_fJfOt.tempest_sm_k8D4-{max-width:640px}.tempest_container_fJfOt.tempest_md_EnpYy{max-width:768px}.tempest_container_fJfOt.tempest_lg_UU-Ig{max-width:1024px}.tempest_container_fJfOt.tempest_xl_2TEWj{max-width:1280px}.tempest_container_fJfOt.tempest_full_l8bvG{max-width:100%}.tempest_stack_sxR8u{display:flex}.tempest_stack_sxR8u.tempest_vertical_2TMf5{flex-direction:column}.tempest_stack_sxR8u.tempest_horizontal_r7-c-{flex-direction:row}.tempest_stack_sxR8u.tempest_center_EDSAh{align-items:center}.tempest_stack_sxR8u.tempest_start_ucQ-K{align-items:flex-start}.tempest_stack_sxR8u.tempest_end_pnKlF{align-items:flex-end}.tempest_stack_sxR8u.tempest_stretch_pX6l7{align-items:stretch}.tempest_stack_sxR8u.tempest_justifyStart_lHYsS{justify-content:flex-start}.tempest_stack_sxR8u.tempest_justifyCenter_JH2m6{justify-content:center}.tempest_stack_sxR8u.tempest_justifyEnd_EBisT{justify-content:flex-end}.tempest_stack_sxR8u.tempest_justifyBetween_mAJwT{justify-content:space-between}.tempest_stack_sxR8u.tempest_wrap_-xxOh{flex-wrap:wrap}.tempest_grid_o-JIX{display:grid;width:100%}.tempest_wrapper_cRGQm{display:flex;align-items:center;justify-content:space-between;gap:var(--tempest-space-3);padding:var(--tempest-space-3) 0;font-size:13px;color:var(--tempest-text-muted);flex-wrap:wrap}.tempest_controls_fdL-y{display:flex;align-items:center;gap:var(--tempest-space-1)}.tempest_page_WjG0l{min-width:32px;height:32px;padding:0 var(--tempest-space-2);border:1px solid var(--tempest-border);background-color:var(--tempest-bg);color:var(--tempest-text);border-radius:var(--tempest-radius-md);font-size:13px;font-weight:500}.tempest_page_WjG0l:hover:not(:disabled){background-color:var(--tempest-surface)}.tempest_page_WjG0l:disabled{opacity:.5}.tempest_active_1kqsJ{background-color:var(--tempest-primary);border-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_active_1kqsJ:hover{background-color:var(--tempest-primary-hover)}.tempest_ellipsis_V294k{padding:0 var(--tempest-space-2);color:var(--tempest-text-subtle)}.tempest_sizeSelect_ZayTo{height:32px;padding:0 var(--tempest-space-2);border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);color:var(--tempest-text);font-size:13px}.tempest_wrapper_BQek1{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_bar_uC-0x{width:100%;height:8px;background-color:var(--tempest-surface-2);border-radius:var(--tempest-radius-full);overflow:hidden}.tempest_fill_vmg7x{height:100%;background-color:var(--tempest-primary);border-radius:inherit;transition:width .18s ease}.tempest_fill_vmg7x.tempest_success_gWJ8U{background-color:var(--tempest-success)}.tempest_fill_vmg7x.tempest_warning_DGkPO{background-color:var(--tempest-warning)}.tempest_fill_vmg7x.tempest_danger_gfwHh{background-color:var(--tempest-danger)}.tempest_indeterminate_HojUj .tempest_fill_vmg7x{width:30%!important;animation:tempest_tempest-progress-loop_0nEdF 1.4s ease-in-out infinite}.tempest_label_qqHJM{font-size:12px;color:var(--tempest-text-muted);display:flex;justify-content:space-between}@keyframes tempest_tempest-progress-loop_0nEdF{0%{transform:translate(-100%)}to{transform:translate(360%)}}.tempest_wrapper_P-gFm{display:inline-flex;align-items:flex-start;gap:var(--tempest-space-2);cursor:pointer;-webkit-user-select:none;user-select:none}.tempest_wrapper_P-gFm.tempest_disabled_0-cna{cursor:not-allowed;opacity:.6}.tempest_input_7R8ZN{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.tempest_dot_P7ejP{flex-shrink:0;width:18px;height:18px;border:1.5px solid var(--tempest-border-strong);border-radius:50%;background-color:var(--tempest-bg);display:inline-flex;align-items:center;justify-content:center;transition:border-color .15s ease}.tempest_dot_P7ejP:after{content:"";width:10px;height:10px;border-radius:50%;background-color:var(--tempest-primary);transform:scale(0);transition:transform .15s ease}.tempest_input_7R8ZN:checked+.tempest_dot_P7ejP{border-color:var(--tempest-primary)}.tempest_input_7R8ZN:checked+.tempest_dot_P7ejP:after{transform:scale(1)}.tempest_input_7R8ZN:focus-visible+.tempest_dot_P7ejP{outline:2px solid var(--tempest-primary);outline-offset:2px}.tempest_labelWrap_iQ1HR{display:flex;flex-direction:column;gap:2px;line-height:1.3}.tempest_label_vAFIP{font-size:14px;color:var(--tempest-text)}.tempest_description_bEB8u{font-size:12px;color:var(--tempest-text-muted)}.tempest_group_oi329{display:flex;flex-direction:column;gap:var(--tempest-space-2)}.tempest_group_oi329.tempest_horizontal_1Ovgu{flex-direction:row;gap:var(--tempest-space-4);flex-wrap:wrap}.tempest_wrapper_dKXJJ{position:relative;width:100%;max-width:360px}.tempest_input_m0lPc{width:100%;height:40px;padding:0 36px;border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);color:var(--tempest-text);font-size:14px;transition:border-color .15s ease,box-shadow .15s ease}.tempest_input_m0lPc:focus{outline:none;border-color:var(--tempest-primary);box-shadow:0 0 0 3px #0066ff2e}.tempest_iconLeft_030-U,.tempest_clear_nb6lG{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;color:var(--tempest-text-muted)}.tempest_iconLeft_030-U{left:12px;pointer-events:none}.tempest_clear_nb6lG{right:8px;width:24px;height:24px;border:none;background:transparent;border-radius:var(--tempest-radius-full)}.tempest_clear_nb6lG:hover{background-color:var(--tempest-surface);color:var(--tempest-text)}.tempest_wrapper_KS2K3{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_label_Lmgos{font-size:13px;font-weight:600;color:var(--tempest-text)}.tempest_required_PvDVJ{color:var(--tempest-danger);margin-left:2px}.tempest_field_h-wBy{position:relative;display:flex;align-items:center}.tempest_select_cjdcr{width:100%;height:40px;padding:0 36px 0 var(--tempest-space-3);border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);color:var(--tempest-text);font-size:14px;appearance:none;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.tempest_select_cjdcr:focus{outline:none;border-color:var(--tempest-primary);box-shadow:0 0 0 3px #0066ff2e}.tempest_select_cjdcr:disabled{background-color:var(--tempest-surface);cursor:not-allowed;color:var(--tempest-text-muted)}.tempest_caret_MdCao{position:absolute;right:12px;pointer-events:none;color:var(--tempest-text-muted)}.tempest_error_sw9MU .tempest_select_cjdcr{border-color:var(--tempest-danger)}.tempest_helper_frosK{font-size:12px;color:var(--tempest-text-muted)}.tempest_errorText_-zd6i{font-size:12px;color:var(--tempest-danger)}.tempest_skeleton_CB4uF{display:block;background:linear-gradient(90deg,var(--tempest-surface) 0%,var(--tempest-surface-2) 50%,var(--tempest-surface) 100%);background-size:200% 100%;border-radius:var(--tempest-radius-md);animation:tempest_tempest-skeleton_H5Y8e 1.4s ease-in-out infinite}.tempest_text_-A8IF{height:14px;border-radius:var(--tempest-radius-sm)}.tempest_circle_DYcl8{border-radius:50%}@keyframes tempest_tempest-skeleton_H5Y8e{0%{background-position:200% 0}to{background-position:-200% 0}}.tempest_spinner_GpFZS{display:inline-block;border:2px solid var(--tempest-surface-2);border-top-color:var(--tempest-primary);border-radius:50%;animation:tempest_tempest-spinner_wKVCY .7s linear infinite}.tempest_sm_3sIoD{width:14px;height:14px}.tempest_md_M2sPj{width:20px;height:20px}.tempest_lg_IxTw2{width:32px;height:32px}@keyframes tempest_tempest-spinner_wKVCY{to{transform:rotate(360deg)}}.tempest_stepper_w3qjQ{display:flex;align-items:flex-start;gap:var(--tempest-space-2);width:100%}.tempest_stepper_w3qjQ.tempest_vertical_d4mOs{flex-direction:column;align-items:stretch}.tempest_step_s2nqL{display:flex;align-items:center;gap:var(--tempest-space-2);flex:1}.tempest_dot_d1bSL{width:28px;height:28px;border-radius:50%;border:2px solid var(--tempest-border-strong);background-color:var(--tempest-bg);color:var(--tempest-text-muted);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.tempest_step_s2nqL.tempest_completed_gcFHM .tempest_dot_d1bSL{background-color:var(--tempest-primary);border-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_step_s2nqL.tempest_active_kL-CH .tempest_dot_d1bSL{border-color:var(--tempest-primary);color:var(--tempest-primary)}.tempest_label_8irAI{font-size:13px;color:var(--tempest-text-muted);font-weight:600}.tempest_step_s2nqL.tempest_active_kL-CH .tempest_label_8irAI,.tempest_step_s2nqL.tempest_completed_gcFHM .tempest_label_8irAI{color:var(--tempest-text)}.tempest_connector_lyeWp{flex:1;height:2px;background-color:var(--tempest-border);margin:0 var(--tempest-space-1)}.tempest_connector_lyeWp.tempest_completed_gcFHM{background-color:var(--tempest-primary)}.tempest_stepper_w3qjQ.tempest_vertical_d4mOs .tempest_connector_lyeWp{width:2px;height:24px;margin:0 0 0 13px}.tempest_wrapper_kudO9{display:inline-flex;align-items:center;gap:var(--tempest-space-2);cursor:pointer;-webkit-user-select:none;user-select:none}.tempest_wrapper_kudO9.tempest_disabled_2aZ0V{cursor:not-allowed;opacity:.6}.tempest_input_5BPNu{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.tempest_track_7ObdZ{width:36px;height:20px;background-color:var(--tempest-border-strong);border-radius:var(--tempest-radius-full);position:relative;transition:background-color .18s ease;flex-shrink:0}.tempest_thumb_-FTeK{position:absolute;top:2px;left:2px;width:16px;height:16px;background-color:#fff;border-radius:50%;box-shadow:var(--tempest-shadow-sm);transition:transform .18s ease}.tempest_input_5BPNu:checked+.tempest_track_7ObdZ{background-color:var(--tempest-primary)}.tempest_input_5BPNu:checked+.tempest_track_7ObdZ .tempest_thumb_-FTeK{transform:translate(16px)}.tempest_input_5BPNu:focus-visible+.tempest_track_7ObdZ{outline:2px solid var(--tempest-primary);outline-offset:2px}.tempest_label_LrH7V{font-size:14px;color:var(--tempest-text)}.tempest_scroll_unrJp{width:100%;overflow-x:auto;border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-lg);background-color:var(--tempest-bg)}.tempest_table_Dkosn{width:100%;border-collapse:collapse;font-size:14px}.tempest_th_PNuEx,.tempest_td_jv9tA{padding:var(--tempest-space-3) var(--tempest-space-4);text-align:left;border-bottom:1px solid var(--tempest-border)}.tempest_th_PNuEx{background-color:var(--tempest-surface);color:var(--tempest-text-muted);font-weight:600;font-size:12px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.tempest_tr_7UG8J:last-child .tempest_td_jv9tA{border-bottom:none}.tempest_tr_7UG8J.tempest_clickable_B6Si-{cursor:pointer}.tempest_tr_7UG8J.tempest_clickable_B6Si-:hover{background-color:var(--tempest-surface)}.tempest_alignRight_9hY0G{text-align:right}.tempest_alignCenter_YiUQy{text-align:center}.tempest_emptyRow_kdMiv{padding:var(--tempest-space-6);text-align:center;color:var(--tempest-text-muted)}.tempest_tablist_WR6ag{display:flex;gap:var(--tempest-space-1);border-bottom:1px solid var(--tempest-border);overflow-x:auto}.tempest_tab_IdDYc{background:transparent;border:none;padding:var(--tempest-space-3) var(--tempest-space-4);font-size:14px;font-weight:600;color:var(--tempest-text-muted);cursor:pointer;position:relative;white-space:nowrap;transition:color .15s ease}.tempest_tab_IdDYc:hover:not(:disabled){color:var(--tempest-text)}.tempest_tab_IdDYc.tempest_active_PTNtG{color:var(--tempest-primary)}.tempest_tab_IdDYc.tempest_active_PTNtG:after{content:"";position:absolute;left:var(--tempest-space-3);right:var(--tempest-space-3);bottom:-1px;height:2px;background-color:var(--tempest-primary);border-radius:var(--tempest-radius-sm) var(--tempest-radius-sm) 0 0}.tempest_tab_IdDYc:disabled{opacity:.5;cursor:not-allowed}.tempest_panel_08i9c{padding:var(--tempest-space-4) 0}.tempest_pill_lGuqn .tempest_tab_IdDYc{border-radius:var(--tempest-radius-full);padding:6px var(--tempest-space-3);font-size:13px}.tempest_pill_lGuqn .tempest_tab_IdDYc.tempest_active_PTNtG:after{display:none}.tempest_pill_lGuqn .tempest_tab_IdDYc.tempest_active_PTNtG{background-color:var(--tempest-primary);color:var(--tempest-primary-foreground)}.tempest_pill_lGuqn.tempest_tablist_WR6ag{border-bottom:none}.tempest_wrapper_C0gfg{display:flex;flex-direction:column;gap:var(--tempest-space-1);width:100%}.tempest_label_cWLXP{font-size:13px;font-weight:600;color:var(--tempest-text)}.tempest_required_rDZXE{color:var(--tempest-danger);margin-left:2px}.tempest_textarea_Z-y6g{width:100%;min-height:96px;padding:var(--tempest-space-3);border:1px solid var(--tempest-border);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);color:var(--tempest-text);font-size:14px;font-family:inherit;resize:vertical;transition:border-color .15s ease,box-shadow .15s ease}.tempest_textarea_Z-y6g::placeholder{color:var(--tempest-text-subtle)}.tempest_textarea_Z-y6g:focus{outline:none;border-color:var(--tempest-primary);box-shadow:0 0 0 3px #0066ff2e}.tempest_textarea_Z-y6g:disabled{background-color:var(--tempest-surface);cursor:not-allowed;color:var(--tempest-text-muted)}.tempest_error_NWC9f .tempest_textarea_Z-y6g{border-color:var(--tempest-danger)}.tempest_helper_gedut{font-size:12px;color:var(--tempest-text-muted)}.tempest_errorText_ey07q{font-size:12px;color:var(--tempest-danger)}.tempest_trigger_Dmc5E{display:inline-flex;position:relative}.tempest_bubble_TPGHB{position:absolute;z-index:var(--tempest-z-dropdown);background-color:#11151c;color:#fff;padding:4px 8px;border-radius:var(--tempest-radius-sm);font-size:12px;white-space:nowrap;pointer-events:none;box-shadow:var(--tempest-shadow-md);animation:tempest_tempest-tooltip-in_csYeZ .12s ease-out}.tempest_top_m2tnn{bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.tempest_bottom_9Twz4{top:calc(100% + 8px);left:50%;transform:translate(-50%)}.tempest_left_UPdrG{right:calc(100% + 8px);top:50%;transform:translateY(-50%)}.tempest_right_CV--T{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}@keyframes tempest_tempest-tooltip-in_csYeZ{0%{opacity:0;transform:scale(.95) translate(var(--tempest-tx, 0),var(--tempest-ty, 0))}to{opacity:1}}.tempest_container_x4-Qm{position:fixed;top:var(--tempest-space-4);right:var(--tempest-space-4);display:flex;flex-direction:column;gap:var(--tempest-space-2);z-index:var(--tempest-z-toast);pointer-events:none}.tempest_toast_FLdHz{pointer-events:auto;display:flex;align-items:flex-start;gap:var(--tempest-space-3);padding:var(--tempest-space-3) var(--tempest-space-4);border-radius:var(--tempest-radius-md);background-color:var(--tempest-bg);border:1px solid var(--tempest-border);box-shadow:var(--tempest-shadow-md);min-width:280px;max-width:420px;animation:tempest_tempest-toast-in_E2d-A .18s ease-out}.tempest_success_Oy694{border-left:4px solid var(--tempest-success)}.tempest_warning_84GC8{border-left:4px solid var(--tempest-warning)}.tempest_error_hrQAA{border-left:4px solid var(--tempest-danger)}.tempest_info_eq5bQ{border-left:4px solid var(--tempest-info)}.tempest_title_-H6R2{font-weight:600;font-size:14px;color:var(--tempest-text);margin:0}.tempest_description_-QwfC{font-size:13px;color:var(--tempest-text-muted);margin:2px 0 0}.tempest_close_i10-s{margin-left:auto;background:none;border:none;color:var(--tempest-text-muted);padding:4px;border-radius:var(--tempest-radius-sm);display:flex;align-items:center}.tempest_close_i10-s:hover{background-color:var(--tempest-surface);color:var(--tempest-text)}@keyframes tempest_tempest-toast-in_E2d-A{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}.tempest_scroll_8Giwl{position:relative;overflow:auto;width:100%}.tempest_spacer_P3Pvl{position:relative;width:100%}.tempest_row_Ff0VU{position:absolute;left:0;right:0}
|