@hot-updater/console 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/dist/favicon.ico +0 -0
- package/dist/index.cjs +29 -41
- package/dist/index.d.cts +8 -9
- package/dist/index.d.ts +8 -9
- package/dist/index.html +1 -1
- package/dist/index.js +30 -42
- package/dist/static/css/index.8b7116d7.css +1 -0
- package/dist/static/image/logo.4d89a4ae.png +0 -0
- package/dist/static/js/85.cfaeff33.js +5 -0
- package/dist/static/js/index.566f7a26.js +1 -0
- package/package.json +11 -11
- package/dist/static/css/index.d6ce6c3e.css +0 -1
- package/dist/static/js/447.2f2dc973.js +0 -5
- package/dist/static/js/index.721b53bc.js +0 -1
- /package/dist/static/js/{447.2f2dc973.js.LICENSE.txt → 85.cfaeff33.js.LICENSE.txt} +0 -0
package/dist/favicon.ico
ADDED
|
Binary file
|
package/dist/index.cjs
CHANGED
|
@@ -2112,24 +2112,6 @@ function literal(literal_, message) {
|
|
|
2112
2112
|
}
|
|
2113
2113
|
};
|
|
2114
2114
|
}
|
|
2115
|
-
function number(message) {
|
|
2116
|
-
return {
|
|
2117
|
-
kind: "schema",
|
|
2118
|
-
type: "number",
|
|
2119
|
-
reference: number,
|
|
2120
|
-
expects: "number",
|
|
2121
|
-
async: false,
|
|
2122
|
-
message,
|
|
2123
|
-
_run(dataset, config2) {
|
|
2124
|
-
if (typeof dataset.value === "number" && !isNaN(dataset.value)) {
|
|
2125
|
-
dataset.typed = true;
|
|
2126
|
-
} else {
|
|
2127
|
-
_addIssue(this, "type", dataset, config2);
|
|
2128
|
-
}
|
|
2129
|
-
return dataset;
|
|
2130
|
-
}
|
|
2131
|
-
};
|
|
2132
|
-
}
|
|
2133
2115
|
function object(entries, message) {
|
|
2134
2116
|
return {
|
|
2135
2117
|
kind: "schema",
|
|
@@ -2311,6 +2293,15 @@ function union(options, message) {
|
|
|
2311
2293
|
}
|
|
2312
2294
|
};
|
|
2313
2295
|
}
|
|
2296
|
+
function omit(schema, keys) {
|
|
2297
|
+
const entries = {
|
|
2298
|
+
...schema.entries
|
|
2299
|
+
};
|
|
2300
|
+
for (const key of keys) {
|
|
2301
|
+
delete entries[key];
|
|
2302
|
+
}
|
|
2303
|
+
return { ...schema, entries };
|
|
2304
|
+
}
|
|
2314
2305
|
function partial(schema, keys) {
|
|
2315
2306
|
const entries = {};
|
|
2316
2307
|
for (const key in schema.entries) {
|
|
@@ -2352,15 +2343,15 @@ var vValidator = (target, schema, hook) => (
|
|
|
2352
2343
|
|
|
2353
2344
|
// src-server/rpc.ts
|
|
2354
2345
|
var import_plugin_core = require("@hot-updater/plugin-core");
|
|
2355
|
-
var
|
|
2346
|
+
var bundleSchema = object({
|
|
2356
2347
|
platform: union([literal("ios"), literal("android")]),
|
|
2357
2348
|
targetVersion: string(),
|
|
2358
|
-
|
|
2349
|
+
id: string(),
|
|
2359
2350
|
forceUpdate: boolean(),
|
|
2360
2351
|
enabled: boolean(),
|
|
2361
2352
|
file: string(),
|
|
2362
2353
|
hash: string(),
|
|
2363
|
-
|
|
2354
|
+
message: optional(string(), "")
|
|
2364
2355
|
});
|
|
2365
2356
|
var config = null;
|
|
2366
2357
|
var rpc = new Hono2().get("/loadConfig", async (c) => {
|
|
@@ -2368,51 +2359,48 @@ var rpc = new Hono2().get("/loadConfig", async (c) => {
|
|
|
2368
2359
|
return c.json(true);
|
|
2369
2360
|
}).get("/isConfigLoaded", (c) => {
|
|
2370
2361
|
return c.json(config !== null);
|
|
2371
|
-
}).get("/
|
|
2362
|
+
}).get("/getBundles", async (c) => {
|
|
2372
2363
|
if (!config) {
|
|
2373
2364
|
config = await (0, import_plugin_core.loadConfig)();
|
|
2374
2365
|
}
|
|
2375
|
-
const
|
|
2366
|
+
const databasePlugin = config?.database({
|
|
2376
2367
|
cwd: (0, import_plugin_core.getCwd)()
|
|
2377
2368
|
});
|
|
2378
|
-
const
|
|
2379
|
-
return c.json(
|
|
2369
|
+
const bundles = await databasePlugin?.getBundles();
|
|
2370
|
+
return c.json(bundles ?? []);
|
|
2380
2371
|
}).post(
|
|
2381
|
-
"/
|
|
2382
|
-
vValidator("json", object({
|
|
2372
|
+
"/getBundleById",
|
|
2373
|
+
vValidator("json", object({ bundleId: string() })),
|
|
2383
2374
|
async (c) => {
|
|
2384
|
-
const {
|
|
2375
|
+
const { bundleId } = c.req.valid("json");
|
|
2385
2376
|
if (!config) {
|
|
2386
2377
|
config = await (0, import_plugin_core.loadConfig)();
|
|
2387
2378
|
}
|
|
2388
|
-
const
|
|
2379
|
+
const databasePlugin = config?.database({
|
|
2389
2380
|
cwd: (0, import_plugin_core.getCwd)()
|
|
2390
2381
|
});
|
|
2391
|
-
const
|
|
2392
|
-
|
|
2393
|
-
(source) => source.bundleVersion === bundleVersion
|
|
2394
|
-
);
|
|
2395
|
-
return c.json(updateSource ?? null);
|
|
2382
|
+
const bundle = await databasePlugin?.getBundleById(bundleId);
|
|
2383
|
+
return c.json(bundle ?? null);
|
|
2396
2384
|
}
|
|
2397
2385
|
).post(
|
|
2398
|
-
"/
|
|
2386
|
+
"/updateBundle",
|
|
2399
2387
|
vValidator(
|
|
2400
2388
|
"json",
|
|
2401
2389
|
object({
|
|
2402
|
-
|
|
2403
|
-
|
|
2390
|
+
targetBundleId: string(),
|
|
2391
|
+
bundle: partial(omit(bundleSchema, ["id"]))
|
|
2404
2392
|
})
|
|
2405
2393
|
),
|
|
2406
2394
|
async (c) => {
|
|
2407
|
-
const {
|
|
2395
|
+
const { targetBundleId, bundle } = c.req.valid("json");
|
|
2408
2396
|
if (!config) {
|
|
2409
2397
|
config = await (0, import_plugin_core.loadConfig)();
|
|
2410
2398
|
}
|
|
2411
|
-
const
|
|
2399
|
+
const databasePlugin = config?.database({
|
|
2412
2400
|
cwd: (0, import_plugin_core.getCwd)()
|
|
2413
2401
|
});
|
|
2414
|
-
await
|
|
2415
|
-
await
|
|
2402
|
+
await databasePlugin?.updateBundle(targetBundleId, bundle);
|
|
2403
|
+
await databasePlugin?.commitBundle();
|
|
2416
2404
|
return c.json(true);
|
|
2417
2405
|
}
|
|
2418
2406
|
);
|
package/dist/index.d.cts
CHANGED
|
@@ -28,14 +28,14 @@ declare const app: Hono<{}, {
|
|
|
28
28
|
$get: {
|
|
29
29
|
input: {};
|
|
30
30
|
output: {
|
|
31
|
+
id: string;
|
|
31
32
|
platform: _hot_updater_utils.Platform;
|
|
32
33
|
targetVersion: string;
|
|
33
|
-
bundleVersion: number;
|
|
34
34
|
forceUpdate: boolean;
|
|
35
35
|
enabled: boolean;
|
|
36
36
|
file: string;
|
|
37
37
|
hash: string;
|
|
38
|
-
|
|
38
|
+
message?: string | undefined;
|
|
39
39
|
}[];
|
|
40
40
|
outputFormat: "json";
|
|
41
41
|
status: hono_utils_http_status.StatusCode;
|
|
@@ -44,18 +44,18 @@ declare const app: Hono<{}, {
|
|
|
44
44
|
$post: {
|
|
45
45
|
input: {
|
|
46
46
|
json: {
|
|
47
|
-
|
|
47
|
+
bundleId: string;
|
|
48
48
|
};
|
|
49
49
|
};
|
|
50
50
|
output: {
|
|
51
|
+
id: string;
|
|
51
52
|
platform: _hot_updater_utils.Platform;
|
|
52
53
|
targetVersion: string;
|
|
53
|
-
bundleVersion: number;
|
|
54
54
|
forceUpdate: boolean;
|
|
55
55
|
enabled: boolean;
|
|
56
56
|
file: string;
|
|
57
57
|
hash: string;
|
|
58
|
-
|
|
58
|
+
message?: string | undefined;
|
|
59
59
|
} | null;
|
|
60
60
|
outputFormat: "json";
|
|
61
61
|
status: hono_utils_http_status.StatusCode;
|
|
@@ -64,17 +64,16 @@ declare const app: Hono<{}, {
|
|
|
64
64
|
$post: {
|
|
65
65
|
input: {
|
|
66
66
|
json: {
|
|
67
|
-
|
|
67
|
+
bundle: {
|
|
68
68
|
platform?: "ios" | "android" | undefined;
|
|
69
69
|
targetVersion?: string | undefined;
|
|
70
|
-
bundleVersion?: number | undefined;
|
|
71
70
|
forceUpdate?: boolean | undefined;
|
|
72
71
|
enabled?: boolean | undefined;
|
|
73
72
|
file?: string | undefined;
|
|
74
73
|
hash?: string | undefined;
|
|
75
|
-
|
|
74
|
+
message?: string | undefined;
|
|
76
75
|
};
|
|
77
|
-
|
|
76
|
+
targetBundleId: string;
|
|
78
77
|
};
|
|
79
78
|
};
|
|
80
79
|
output: true;
|
package/dist/index.d.ts
CHANGED
|
@@ -28,14 +28,14 @@ declare const app: Hono<{}, {
|
|
|
28
28
|
$get: {
|
|
29
29
|
input: {};
|
|
30
30
|
output: {
|
|
31
|
+
id: string;
|
|
31
32
|
platform: _hot_updater_utils.Platform;
|
|
32
33
|
targetVersion: string;
|
|
33
|
-
bundleVersion: number;
|
|
34
34
|
forceUpdate: boolean;
|
|
35
35
|
enabled: boolean;
|
|
36
36
|
file: string;
|
|
37
37
|
hash: string;
|
|
38
|
-
|
|
38
|
+
message?: string | undefined;
|
|
39
39
|
}[];
|
|
40
40
|
outputFormat: "json";
|
|
41
41
|
status: hono_utils_http_status.StatusCode;
|
|
@@ -44,18 +44,18 @@ declare const app: Hono<{}, {
|
|
|
44
44
|
$post: {
|
|
45
45
|
input: {
|
|
46
46
|
json: {
|
|
47
|
-
|
|
47
|
+
bundleId: string;
|
|
48
48
|
};
|
|
49
49
|
};
|
|
50
50
|
output: {
|
|
51
|
+
id: string;
|
|
51
52
|
platform: _hot_updater_utils.Platform;
|
|
52
53
|
targetVersion: string;
|
|
53
|
-
bundleVersion: number;
|
|
54
54
|
forceUpdate: boolean;
|
|
55
55
|
enabled: boolean;
|
|
56
56
|
file: string;
|
|
57
57
|
hash: string;
|
|
58
|
-
|
|
58
|
+
message?: string | undefined;
|
|
59
59
|
} | null;
|
|
60
60
|
outputFormat: "json";
|
|
61
61
|
status: hono_utils_http_status.StatusCode;
|
|
@@ -64,17 +64,16 @@ declare const app: Hono<{}, {
|
|
|
64
64
|
$post: {
|
|
65
65
|
input: {
|
|
66
66
|
json: {
|
|
67
|
-
|
|
67
|
+
bundle: {
|
|
68
68
|
platform?: "ios" | "android" | undefined;
|
|
69
69
|
targetVersion?: string | undefined;
|
|
70
|
-
bundleVersion?: number | undefined;
|
|
71
70
|
forceUpdate?: boolean | undefined;
|
|
72
71
|
enabled?: boolean | undefined;
|
|
73
72
|
file?: string | undefined;
|
|
74
73
|
hash?: string | undefined;
|
|
75
|
-
|
|
74
|
+
message?: string | undefined;
|
|
76
75
|
};
|
|
77
|
-
|
|
76
|
+
targetBundleId: string;
|
|
78
77
|
};
|
|
79
78
|
};
|
|
80
79
|
output: true;
|
package/dist/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!doctype html><html><head><title>
|
|
1
|
+
<!doctype html><html><head><link rel="icon" href="/favicon.ico"><title>Hot Updater Console</title><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><script defer src="/static/js/85.cfaeff33.js"></script><script defer src="/static/js/index.566f7a26.js"></script><link href="/static/css/index.8b7116d7.css" rel="stylesheet"></head><body><div id="root"></div></body></html>
|
package/dist/index.js
CHANGED
|
@@ -9,7 +9,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
|
|
|
9
9
|
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
10
10
|
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
11
11
|
|
|
12
|
-
// ../../node_modules/.pnpm/tsup@8.3.0_@swc+core@1.7.42_@swc+helpers@0.5.
|
|
12
|
+
// ../../node_modules/.pnpm/tsup@8.3.0_@swc+core@1.7.42_@swc+helpers@0.5.15__jiti@1.21.6_postcss@8.4.47_typescript@5.6.2_yaml@2.4.5/node_modules/tsup/assets/esm_shims.js
|
|
13
13
|
import { fileURLToPath } from "url";
|
|
14
14
|
import path from "path";
|
|
15
15
|
var getFilename = () => fileURLToPath(import.meta.url);
|
|
@@ -2087,24 +2087,6 @@ function literal(literal_, message) {
|
|
|
2087
2087
|
}
|
|
2088
2088
|
};
|
|
2089
2089
|
}
|
|
2090
|
-
function number(message) {
|
|
2091
|
-
return {
|
|
2092
|
-
kind: "schema",
|
|
2093
|
-
type: "number",
|
|
2094
|
-
reference: number,
|
|
2095
|
-
expects: "number",
|
|
2096
|
-
async: false,
|
|
2097
|
-
message,
|
|
2098
|
-
_run(dataset, config2) {
|
|
2099
|
-
if (typeof dataset.value === "number" && !isNaN(dataset.value)) {
|
|
2100
|
-
dataset.typed = true;
|
|
2101
|
-
} else {
|
|
2102
|
-
_addIssue(this, "type", dataset, config2);
|
|
2103
|
-
}
|
|
2104
|
-
return dataset;
|
|
2105
|
-
}
|
|
2106
|
-
};
|
|
2107
|
-
}
|
|
2108
2090
|
function object(entries, message) {
|
|
2109
2091
|
return {
|
|
2110
2092
|
kind: "schema",
|
|
@@ -2286,6 +2268,15 @@ function union(options, message) {
|
|
|
2286
2268
|
}
|
|
2287
2269
|
};
|
|
2288
2270
|
}
|
|
2271
|
+
function omit(schema, keys) {
|
|
2272
|
+
const entries = {
|
|
2273
|
+
...schema.entries
|
|
2274
|
+
};
|
|
2275
|
+
for (const key of keys) {
|
|
2276
|
+
delete entries[key];
|
|
2277
|
+
}
|
|
2278
|
+
return { ...schema, entries };
|
|
2279
|
+
}
|
|
2289
2280
|
function partial(schema, keys) {
|
|
2290
2281
|
const entries = {};
|
|
2291
2282
|
for (const key in schema.entries) {
|
|
@@ -2330,15 +2321,15 @@ import {
|
|
|
2330
2321
|
getCwd,
|
|
2331
2322
|
loadConfig
|
|
2332
2323
|
} from "@hot-updater/plugin-core";
|
|
2333
|
-
var
|
|
2324
|
+
var bundleSchema = object({
|
|
2334
2325
|
platform: union([literal("ios"), literal("android")]),
|
|
2335
2326
|
targetVersion: string(),
|
|
2336
|
-
|
|
2327
|
+
id: string(),
|
|
2337
2328
|
forceUpdate: boolean(),
|
|
2338
2329
|
enabled: boolean(),
|
|
2339
2330
|
file: string(),
|
|
2340
2331
|
hash: string(),
|
|
2341
|
-
|
|
2332
|
+
message: optional(string(), "")
|
|
2342
2333
|
});
|
|
2343
2334
|
var config = null;
|
|
2344
2335
|
var rpc = new Hono2().get("/loadConfig", async (c) => {
|
|
@@ -2346,51 +2337,48 @@ var rpc = new Hono2().get("/loadConfig", async (c) => {
|
|
|
2346
2337
|
return c.json(true);
|
|
2347
2338
|
}).get("/isConfigLoaded", (c) => {
|
|
2348
2339
|
return c.json(config !== null);
|
|
2349
|
-
}).get("/
|
|
2340
|
+
}).get("/getBundles", async (c) => {
|
|
2350
2341
|
if (!config) {
|
|
2351
2342
|
config = await loadConfig();
|
|
2352
2343
|
}
|
|
2353
|
-
const
|
|
2344
|
+
const databasePlugin = config?.database({
|
|
2354
2345
|
cwd: getCwd()
|
|
2355
2346
|
});
|
|
2356
|
-
const
|
|
2357
|
-
return c.json(
|
|
2347
|
+
const bundles = await databasePlugin?.getBundles();
|
|
2348
|
+
return c.json(bundles ?? []);
|
|
2358
2349
|
}).post(
|
|
2359
|
-
"/
|
|
2360
|
-
vValidator("json", object({
|
|
2350
|
+
"/getBundleById",
|
|
2351
|
+
vValidator("json", object({ bundleId: string() })),
|
|
2361
2352
|
async (c) => {
|
|
2362
|
-
const {
|
|
2353
|
+
const { bundleId } = c.req.valid("json");
|
|
2363
2354
|
if (!config) {
|
|
2364
2355
|
config = await loadConfig();
|
|
2365
2356
|
}
|
|
2366
|
-
const
|
|
2357
|
+
const databasePlugin = config?.database({
|
|
2367
2358
|
cwd: getCwd()
|
|
2368
2359
|
});
|
|
2369
|
-
const
|
|
2370
|
-
|
|
2371
|
-
(source) => source.bundleVersion === bundleVersion
|
|
2372
|
-
);
|
|
2373
|
-
return c.json(updateSource ?? null);
|
|
2360
|
+
const bundle = await databasePlugin?.getBundleById(bundleId);
|
|
2361
|
+
return c.json(bundle ?? null);
|
|
2374
2362
|
}
|
|
2375
2363
|
).post(
|
|
2376
|
-
"/
|
|
2364
|
+
"/updateBundle",
|
|
2377
2365
|
vValidator(
|
|
2378
2366
|
"json",
|
|
2379
2367
|
object({
|
|
2380
|
-
|
|
2381
|
-
|
|
2368
|
+
targetBundleId: string(),
|
|
2369
|
+
bundle: partial(omit(bundleSchema, ["id"]))
|
|
2382
2370
|
})
|
|
2383
2371
|
),
|
|
2384
2372
|
async (c) => {
|
|
2385
|
-
const {
|
|
2373
|
+
const { targetBundleId, bundle } = c.req.valid("json");
|
|
2386
2374
|
if (!config) {
|
|
2387
2375
|
config = await loadConfig();
|
|
2388
2376
|
}
|
|
2389
|
-
const
|
|
2377
|
+
const databasePlugin = config?.database({
|
|
2390
2378
|
cwd: getCwd()
|
|
2391
2379
|
});
|
|
2392
|
-
await
|
|
2393
|
-
await
|
|
2380
|
+
await databasePlugin?.updateBundle(targetBundleId, bundle);
|
|
2381
|
+
await databasePlugin?.commitBundle();
|
|
2394
2382
|
return c.json(true);
|
|
2395
2383
|
}
|
|
2396
2384
|
);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&display=swap";*,:before,:after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button{-webkit-appearance:button;background-color:#0000;background-image:none}input:where([type=button]){-webkit-appearance:button;background-color:#0000;background-image:none}input:where([type=reset]){-webkit-appearance:button;background-color:#0000;background-image:none}input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background:0 0% 100%;--foreground:240 10% 3.9%;--muted:240 4.8% 95.9%;--muted-foreground:240 3.8% 46.1%;--popover:0 0% 100%;--popover-foreground:240 10% 3.9%;--border:240 5.9% 90%;--input:240 5.9% 90%;--card:0 0% 100%;--card-foreground:240 10% 3.9%;--primary:240 5.9% 10%;--primary-foreground:0 0% 98%;--secondary:240 4.8% 95.9%;--secondary-foreground:240 5.9% 10%;--accent:240 4.8% 95.9%;--accent-foreground:240 5.9% 10%;--destructive:0 84.2% 60.2%;--destructive-foreground:0 0% 98%;--info:204 94% 94%;--info-foreground:199 89% 48%;--success:149 80% 90%;--success-foreground:160 84% 39%;--warning:48 96% 89%;--warning-foreground:25 95% 53%;--error:0 93% 94%;--error-foreground:0 84% 60%;--ring:240 5.9% 10%;--radius:.5rem}.dark,[data-kb-theme=dark]{--background:240 10% 3.9%;--foreground:0 0% 98%;--muted:240 3.7% 15.9%;--muted-foreground:240 5% 64.9%;--accent:240 3.7% 15.9%;--accent-foreground:0 0% 98%;--popover:240 10% 3.9%;--popover-foreground:0 0% 98%;--border:240 3.7% 15.9%;--input:240 3.7% 15.9%;--card:240 10% 3.9%;--card-foreground:0 0% 98%;--primary:0 0% 98%;--primary-foreground:240 5.9% 10%;--secondary:240 3.7% 15.9%;--secondary-foreground:0 0% 98%;--destructive:0 62.8% 30.6%;--destructive-foreground:0 0% 98%;--info:204 94% 94%;--info-foreground:199 89% 48%;--success:149 80% 90%;--success-foreground:160 84% 39%;--warning:48 96% 89%;--warning-foreground:25 95% 53%;--error:0 93% 94%;--error-foreground:0 84% 60%;--ring:240 4.9% 83.9%;--radius:.5rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-feature-settings:"rlig" 1,"calt" 1}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;bottom:0;left:0;right:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.right-4{right:1rem}.top-0{top:0}.top-4{top:1rem}.top-px{top:1px}.z-50{z-index:50}.z-\[1000\]{z-index:1000}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.mt-2\.5{margin-top:.625rem}.mt-4{margin-top:1rem}.mt-\[2px\]{margin-top:2px}.box-border{box-sizing:border-box}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.\!table{display:table!important}.table{display:table}.grid{display:grid}.hidden{display:none}.size-10{width:2.5rem;height:2.5rem}.size-3{width:.75rem;height:.75rem}.size-4{width:1rem;height:1rem}.size-5{width:1.25rem;height:1.25rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-24{height:6rem}.h-32{height:8rem}.h-6{height:1.5rem}.h-9{height:2.25rem}.h-\[var\(--kb-navigation-menu-viewport-height\)\]{height:var(--kb-navigation-menu-viewport-height)}.h-full{height:100%}.max-h-screen{max-height:100vh}.min-h-\[80px\]{min-height:80px}.w-11{width:2.75rem}.w-12{width:3rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-\[var\(--kb-navigation-menu-viewport-width\)\]{width:var(--kb-navigation-menu-viewport-width)}.w-full{width:100%}.w-max{width:max-content}.max-w-sm{max-width:24rem}.flex-1{flex:1}.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.origin-\[var\(--kb-menu-content-transform-origin\)\]{transform-origin:var(--kb-menu-content-transform-origin)}.translate-x-0{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}@keyframes content-hide{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}.animate-content-hide{animation:.2s ease-out content-hide}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.list-none{list-style-type:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.625rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem*var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-clip{overflow-x:clip}.overflow-y-visible{overflow-y:visible}.whitespace-nowrap{white-space:nowrap}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-input{border-color:hsl(var(--input))}.border-transparent{border-color:#0000}.bg-background{background-color:hsl(var(--background))}.bg-black\/80{background-color:#000c}.bg-destructive{background-color:hsl(var(--destructive))}.bg-input{background-color:hsl(var(--input))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-transparent{background-color:#0000}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:.25rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pl-2\.5{padding-left:.625rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.leading-none{line-height:1}.leading-snug{line-height:1.375}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.no-underline{text-decoration-line:none}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-70{opacity:.7}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline-offset:2px;outline:2px solid #0000}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,-webkit-backdrop-filter,backdrop-filter,-webkit-backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[color\,background-color\,box-shadow\]{transition-property:color,background-color,box-shadow;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[width\,height\]{transition-property:width,height;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}.duration-200{animation-duration:.2s}.ease-in{animation-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}@media (max-width:640px){.container{padding-left:1rem;padding-right:1rem}}::-webkit-scrollbar{width:16px}::-webkit-scrollbar-thumb{background-clip:content-box;background-color:hsl(var(--accent));border:4px solid #0000;border-radius:9999px}::-webkit-scrollbar-corner{display:none}body{font-family:Lato,sans-serif}.file\:border-0::-webkit-file-upload-button{border-width:0}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::-webkit-file-upload-button{background-color:#0000}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::-webkit-file-upload-button{font-size:.875rem;line-height:1.25rem}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::-webkit-file-upload-button{font-weight:500}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted)/.5)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid #0000}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group.toaster .group-\[\.toaster\]\:border-border{border-color:hsl(var(--border))}.group.toast .group-\[\.toast\]\:bg-muted{background-color:hsl(var(--muted))}.group.toast .group-\[\.toast\]\:bg-primary{background-color:hsl(var(--primary))}.group.toaster .group-\[\.toaster\]\:bg-background{background-color:hsl(var(--background))}.group.toast .group-\[\.toast\]\:text-muted-foreground{color:hsl(var(--muted-foreground))}.group.toast .group-\[\.toast\]\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group.toaster .group-\[\.toaster\]\:text-foreground{color:hsl(var(--foreground))}.group.toaster .group-\[\.toaster\]\:shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[expanded\]\:pointer-events-auto[data-expanded]{pointer-events:auto}.data-\[checked\]\:translate-x-5[data-checked]{--tw-translate-x:1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}@keyframes content-show{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.data-\[expanded\]\:animate-content-show[data-expanded]{animation:.2s ease-out content-show}.data-\[disabled\]\:cursor-not-allowed[data-disabled]{cursor:not-allowed}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical]{flex-direction:column}.data-\[orientation\=vertical\]\:overflow-y-clip[data-orientation=vertical]{overflow-y:clip}.data-\[orientation\=vertical\]\:overflow-x-visible[data-orientation=vertical]{overflow-x:visible}.data-\[expanded\]\:rounded-md[data-expanded]{border-radius:calc(var(--radius) - 2px)}.data-\[current\]\:border[data-current]{border-width:1px}.data-\[active\]\:bg-accent\/50[data-active]{background-color:hsl(var(--accent)/.5)}.data-\[checked\]\:bg-primary[data-checked]{background-color:hsl(var(--primary))}.data-\[expanded\]\:bg-accent\/50[data-expanded]{background-color:hsl(var(--accent)/.5)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[invalid\]\:text-destructive[data-invalid]{color:hsl(var(--destructive))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[disabled\]\:opacity-70[data-disabled]{opacity:.7}.data-\[expanded\]\:opacity-100[data-expanded]{opacity:1}.data-\[closed\=\]\:duration-300[data-closed=""]{transition-duration:.3s}.data-\[expanded\=\]\:duration-500[data-expanded=""]{transition-duration:.5s}.data-\[expanded\]\:ease-out[data-expanded]{transition-timing-function:cubic-bezier(0,0,.2,1)}.data-\[expanded\=\]\:animate-in[data-expanded=""],.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.data-\[closed\=\]\:animate-out[data-closed=""],.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-name:exit;animation-duration:.15s}.data-\[closed\=\]\:fade-out-0[data-closed=""]{--tw-exit-opacity:0}.data-\[expanded\=\]\:fade-in-0[data-expanded=""],.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity:0}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-]{--tw-exit-opacity:0}.data-\[closed\=\]\:slide-out-to-bottom[data-closed=""]{--tw-exit-translate-y:100%}.data-\[closed\=\]\:slide-out-to-left[data-closed=""]{--tw-exit-translate-x:-100%}.data-\[closed\=\]\:slide-out-to-right[data-closed=""]{--tw-exit-translate-x:100%}.data-\[closed\=\]\:slide-out-to-top[data-closed=""]{--tw-exit-translate-y:-100%}.data-\[expanded\=\]\:slide-in-from-bottom[data-expanded=""]{--tw-enter-translate-y:100%}.data-\[expanded\=\]\:slide-in-from-right[data-expanded=""]{--tw-enter-translate-x:100%}.data-\[expanded\=\]\:slide-in-from-top[data-expanded=""]{--tw-enter-translate-y:-100%}.data-\[expanded\]\:slide-in-from-left[data-expanded]{--tw-enter-translate-x:-100%}.data-\[orientation\=horizontal\]\:data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end][data-orientation=horizontal]{--tw-enter-translate-x:13rem}.data-\[orientation\=horizontal\]\:data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start][data-orientation=horizontal]{--tw-enter-translate-x:-13rem}.data-\[orientation\=horizontal\]\:data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end][data-orientation=horizontal]{--tw-exit-translate-x:13rem}.data-\[orientation\=horizontal\]\:data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start][data-orientation=horizontal]{--tw-exit-translate-x:-13rem}.data-\[orientation\=vertical\]\:data-\[motion\=from-end\]\:slide-in-from-bottom-52[data-motion=from-end][data-orientation=vertical]{--tw-enter-translate-y:13rem}.data-\[orientation\=vertical\]\:data-\[motion\=from-start\]\:slide-in-from-top-52[data-motion=from-start][data-orientation=vertical]{--tw-enter-translate-y:-13rem}.data-\[orientation\=vertical\]\:data-\[motion\=to-end\]\:slide-out-to-bottom-52[data-motion=to-end][data-orientation=vertical],.data-\[orientation\=vertical\]\:data-\[motion\=to-start\]\:slide-out-to-bottom-52[data-motion=to-start][data-orientation=vertical]{--tw-exit-translate-y:13rem}.data-\[closed\=\]\:duration-300[data-closed=""]{animation-duration:.3s}.data-\[expanded\=\]\:duration-500[data-expanded=""]{animation-duration:.5s}.data-\[expanded\]\:ease-out[data-expanded]{animation-timing-function:cubic-bezier(0,0,.2,1)}.group\/trigger[data-expanded] .group-data-\[expanded\]\/trigger\:rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.group\/menu[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/menu\:-rotate-90{--tw-rotate:-90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.group\/menu[data-orientation=vertical] .group\/trigger[data-expanded] .group-data-\[orientation\=vertical\]\/menu\:group-data-\[expanded\]\/trigger\:rotate-90{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}@media (min-width:640px){.sm\:max-w-sm{max-width:24rem}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*calc(1 - var(--tw-space-x-reverse)))}.sm\:text-left{text-align:left}}@media (min-width:768px){.md\:h-48{height:12rem}.md\:w-48{width:12rem}}.\[\&\:focus-visible\+div\]\:outline-none:focus-visible+div{outline-offset:2px;outline:2px solid #0000}.\[\&\:focus-visible\+div\]\:ring-2:focus-visible+div{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.\[\&\:focus-visible\+div\]\:ring-ring:focus-visible+div{--tw-ring-color:hsl(var(--ring))}.\[\&\:focus-visible\+div\]\:ring-offset-2:focus-visible+div{--tw-ring-offset-width:2px}.\[\&\:focus-visible\+div\]\:ring-offset-background:focus-visible+div{--tw-ring-offset-color:hsl(var(--background))}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>\*\]\:flex>*{display:flex}.\[\&\>\*\]\:flex-row>*{flex-direction:row}.\[\&\>\*\]\:items-center>*{align-items:center}.\[\&\>\*\]\:gap-1>*{gap:.25rem}.\[\&\>li\]\:w-full>li{width:100%}.\[\&\>ul\]\:justify-center>ul{justify-content:center}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}
|
|
Binary file
|