@neondatabase/neon-js 0.1.0-alpha.9 → 0.1.0-beta.10

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 CHANGED
@@ -1,6 +1,9 @@
1
1
  # @neondatabase/neon-js
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/@neondatabase/neon-js.svg)](https://www.npmjs.com/package/@neondatabase/neon-js)
3
4
  [![npm downloads](https://img.shields.io/npm/dm/@neondatabase/neon-js.svg)](https://www.npmjs.com/package/@neondatabase/neon-js)
5
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.0%2B-blue.svg)](https://www.typescriptlang.org/)
6
+ [![License](https://img.shields.io/npm/l/@neondatabase/neon-js.svg)](https://github.com/neondatabase-labs/neon-js/blob/main/LICENSE)
4
7
 
5
8
  The official TypeScript SDK for Neon, combining authentication and database querying in a familiar interface.
6
9
 
@@ -17,6 +20,12 @@ The official TypeScript SDK for Neon, combining authentication and database quer
17
20
  - **TypeScript First** - Fully typed with strict type checking
18
21
  - **Universal** - Works in Node.js, browsers, and edge runtimes
19
22
 
23
+ ## How to query your Neon Serverless Postgres database?
24
+
25
+ It's up to you how you want to query your Postgres database! Neon Data API is a PostgREST-compatible REST service for your Neon database. `neon-js` exposes the REST-based query functions to leverage Data API. However, you can also use Data API directly with [PostgREST](https://postgrest.org) and we also maintain a simple Postgres client [here](https://github.com/neondatabase/serverless).
26
+
27
+ That said, you don't need Data API or `neon-js` to query Neon. Neon works great with all major ORMs ([Drizzle](https://orm.drizzle.team/), [Prisma](https://www.prisma.io/), [Kysely](https://kysely.dev/)) and Postgres clients ([node-postgres](https://node-postgres.com/), [postgres.js](https://github.com/porsager/postgres)). We also offer a [serverless driver](https://github.com/neondatabase/serverless) for edge and serverless environments without TCP client or connection pooling support (which also is available as a Drizzle and Prisma adapter).
28
+
20
29
  ## Installation
21
30
 
22
31
  ```bash
@@ -30,6 +39,8 @@ bun add @neondatabase/neon-js
30
39
  ```typescript
31
40
  import { createClient } from '@neondatabase/neon-js';
32
41
 
42
+ // Database type generated via: npx neon-js gen-types --db-url "..."
43
+ // See "TypeScript" section below for details
33
44
  const client = createClient<Database>({
34
45
  auth: {
35
46
  url: import.meta.env.VITE_NEON_AUTH_URL,
@@ -63,6 +74,8 @@ Use this adapter if you're migrating from Supabase or prefer the Supabase API st
63
74
  ```typescript
64
75
  import { createClient, SupabaseAuthAdapter } from '@neondatabase/neon-js';
65
76
 
77
+ // Database type generated via: npx neon-js gen-types --db-url "..."
78
+ // See "TypeScript" section below for details
66
79
  const client = createClient<Database>({
67
80
  auth: {
68
81
  adapter: SupabaseAuthAdapter(),
@@ -87,8 +100,11 @@ const { data: session } = await client.auth.getSession();
87
100
  Use this adapter in React applications to get access to hooks like `useSession`:
88
101
 
89
102
  ```typescript
90
- import { createClient, BetterAuthReactAdapter } from '@neondatabase/neon-js';
103
+ import { createClient } from '@neondatabase/neon-js';
104
+ import { BetterAuthReactAdapter } from '@neondatabase/neon-js/auth/react/adapters';
91
105
 
106
+ // Database type generated via: npx neon-js gen-types --db-url "..."
107
+ // See "TypeScript" section below for details
92
108
  const client = createClient<Database>({
93
109
  auth: {
94
110
  adapter: BetterAuthReactAdapter(),
@@ -319,6 +335,24 @@ const client = createClient({
319
335
  });
320
336
  ```
321
337
 
338
+ ## UI Component Styles
339
+
340
+ Styles for Neon Auth UI components are available from this package:
341
+
342
+ | Export | Use Case |
343
+ |--------|----------|
344
+ | `@neondatabase/neon-js/ui/css` | Pre-built styles (~47KB) |
345
+ | `@neondatabase/neon-js/ui/tailwind` | Tailwind-ready CSS |
346
+
347
+ ```css
348
+ /* Without Tailwind */
349
+ @import '@neondatabase/neon-js/ui/css';
350
+
351
+ /* With Tailwind CSS v4 */
352
+ @import 'tailwindcss';
353
+ @import '@neondatabase/neon-js/ui/tailwind';
354
+ ```
355
+
322
356
  ## TypeScript
323
357
 
324
358
  Generate TypeScript types from your database schema:
@@ -445,7 +479,8 @@ export async function GET() {
445
479
  ### React Hook with BetterAuthReactAdapter
446
480
 
447
481
  ```typescript
448
- import { createClient, BetterAuthReactAdapter } from '@neondatabase/neon-js';
482
+ import { createClient } from '@neondatabase/neon-js';
483
+ import { BetterAuthReactAdapter } from '@neondatabase/neon-js/auth/react/adapters';
449
484
 
450
485
  const client = createClient({
451
486
  auth: {
@@ -474,7 +509,7 @@ export function useAuth() {
474
509
 
475
510
  This package combines two underlying packages:
476
511
 
477
- - [`@neondatabase/neon-auth`](../neon-auth) - Authentication adapters (can be used standalone)
512
+ - [`@neondatabase/auth`](../auth) - Authentication adapters (can be used standalone)
478
513
  - [`@neondatabase/postgrest-js`](../postgrest-js) - PostgreSQL client (can be used standalone)
479
514
 
480
515
  ## Migration from Previous Version
@@ -0,0 +1 @@
1
+ export * from "@neondatabase/auth";
@@ -0,0 +1,3 @@
1
+ export * from "@neondatabase/auth"
2
+
3
+ export { };
@@ -0,0 +1 @@
1
+ export * from "@neondatabase/auth/next";
@@ -0,0 +1,3 @@
1
+ export * from "@neondatabase/auth/next"
2
+
3
+ export { };
@@ -0,0 +1 @@
1
+ export * from "@neondatabase/auth/react/adapters";
@@ -0,0 +1,3 @@
1
+ export * from "@neondatabase/auth/react/adapters"
2
+
3
+ export { };
@@ -0,0 +1 @@
1
+ export * from "@neondatabase/auth/react";
@@ -0,0 +1,3 @@
1
+ export * from "@neondatabase/auth/react"
2
+
3
+ export { };
@@ -0,0 +1,2 @@
1
+ 'use client';
2
+ export * from "@neondatabase/auth/react/ui";
@@ -0,0 +1,4 @@
1
+ 'use client';
2
+ export * from "@neondatabase/auth/react/ui"
3
+
4
+ export { };
@@ -0,0 +1 @@
1
+ export * from "@neondatabase/auth/react/ui/server";
@@ -0,0 +1,3 @@
1
+ export * from "@neondatabase/auth/react/ui/server"
2
+
3
+ export { };
@@ -0,0 +1 @@
1
+ export * from "@neondatabase/auth/types";
@@ -0,0 +1,3 @@
1
+ export * from "@neondatabase/auth/types"
2
+
3
+ export { };
@@ -0,0 +1 @@
1
+ export * from "@neondatabase/auth/vanilla/adapters";
@@ -0,0 +1,3 @@
1
+ export * from "@neondatabase/auth/vanilla/adapters"
2
+
3
+ export { };
@@ -0,0 +1 @@
1
+ export * from "@neondatabase/auth/vanilla";
@@ -0,0 +1,3 @@
1
+ export * from "@neondatabase/auth/vanilla"
2
+
3
+ export { };
package/dist/index.d.mts CHANGED
@@ -1,10 +1,11 @@
1
- import { DefaultSchemaName, DefaultSchemaName as DefaultSchemaName$1, NeonPostgrestClient, NeonPostgrestClientConstructorOptions } from "@neondatabase/postgrest-js";
2
- import { BetterAuthReactAdapterInstance, BetterAuthVanillaAdapterInstance, NeonAuth, NeonAuthAdapter, NeonAuthPublicApi, SupabaseAuthAdapterInstance } from "@neondatabase/neon-auth";
3
- export * from "@neondatabase/neon-auth";
1
+ import { NeonAuth, NeonAuth as NeonAuth$1, NeonAuthAdapter, NeonAuthAdapter as NeonAuthAdapter$1, NeonAuthConfig, NeonAuthPublicApi, NeonAuthPublicApi as NeonAuthPublicApi$1, ReactBetterAuthClient, VanillaBetterAuthClient } from "@neondatabase/auth";
2
+ import { BetterAuthVanillaAdapter, BetterAuthVanillaAdapterInstance, BetterAuthVanillaAdapterInstance as BetterAuthVanillaAdapterInstance$1, BetterAuthVanillaAdapterOptions, SupabaseAuthAdapter, SupabaseAuthAdapterInstance, SupabaseAuthAdapterInstance as SupabaseAuthAdapterInstance$1, SupabaseAuthAdapterOptions } from "@neondatabase/auth/vanilla/adapters";
3
+ import { BetterAuthReactAdapterInstance } from "@neondatabase/auth/react/adapters";
4
+ import { AuthRequiredError, DefaultSchemaName, DefaultSchemaName as DefaultSchemaName$1, NeonPostgrestClient, NeonPostgrestClientConstructorOptions, fetchWithToken } from "@neondatabase/postgrest-js";
4
5
 
5
6
  //#region src/client/neon-client.d.ts
6
- type NeonClientConstructorOptions<SchemaName, TAuth extends NeonAuthAdapter = NeonAuthAdapter> = NeonPostgrestClientConstructorOptions<SchemaName> & {
7
- authClient: NeonAuth<TAuth>;
7
+ type NeonClientConstructorOptions<SchemaName, TAuth extends NeonAuthAdapter$1 = NeonAuthAdapter$1> = NeonPostgrestClientConstructorOptions<SchemaName> & {
8
+ authClient: NeonAuth$1<TAuth>;
8
9
  };
9
10
  /**
10
11
  * Neon client with integrated authentication
@@ -12,8 +13,8 @@ type NeonClientConstructorOptions<SchemaName, TAuth extends NeonAuthAdapter = Ne
12
13
  * Extends NeonPostgrestClient with Neon Auth integration.
13
14
  * For auth-free clients, use @neondatabase/postgrest-js instead.
14
15
  */
15
- declare class NeonClient<Database = any, SchemaName extends string & keyof Database = DefaultSchemaName<Database>, TAuth extends NeonAuthAdapter = NeonAuthAdapter> extends NeonPostgrestClient<Database, SchemaName> {
16
- auth: NeonAuthPublicApi<TAuth>;
16
+ declare class NeonClient<Database = any, SchemaName extends string & keyof Database = DefaultSchemaName<Database>, TAuth extends NeonAuthAdapter$1 = NeonAuthAdapter$1> extends NeonPostgrestClient<Database, SchemaName> {
17
+ auth: NeonAuthPublicApi$1<TAuth>;
17
18
  constructor({
18
19
  dataApiUrl,
19
20
  options,
@@ -25,7 +26,7 @@ declare class NeonClient<Database = any, SchemaName extends string & keyof Datab
25
26
  /**
26
27
  * Auth configuration for createClient
27
28
  */
28
- type CreateClientAuthConfig<T extends NeonAuthAdapter> = {
29
+ type CreateClientAuthConfig<T extends NeonAuthAdapter$1> = {
29
30
  /** The adapter builder to use. Defaults to BetterAuthVanillaAdapter() if not specified. */
30
31
  adapter?: (url: string) => T;
31
32
  /** The auth service URL */
@@ -34,7 +35,7 @@ type CreateClientAuthConfig<T extends NeonAuthAdapter> = {
34
35
  /**
35
36
  * Data API configuration for createClient
36
37
  */
37
- type CreateClientDataApiConfig<SchemaName, TAuth extends NeonAuthAdapter> = {
38
+ type CreateClientDataApiConfig<SchemaName, TAuth extends NeonAuthAdapter$1> = {
38
39
  /** The Data API URL */
39
40
  url: string;
40
41
  /** Additional client options */
@@ -43,7 +44,7 @@ type CreateClientDataApiConfig<SchemaName, TAuth extends NeonAuthAdapter> = {
43
44
  /**
44
45
  * Configuration for createClient
45
46
  */
46
- type CreateClientConfig<SchemaName, T extends NeonAuthAdapter> = {
47
+ type CreateClientConfig<SchemaName, T extends NeonAuthAdapter$1> = {
47
48
  /** Auth service configuration */
48
49
  auth: CreateClientAuthConfig<T>;
49
50
  /** Data API configuration */
@@ -96,15 +97,15 @@ type CreateClientConfig<SchemaName, T extends NeonAuthAdapter> = {
96
97
  * Helper type to create NeonClient with proper schema resolution.
97
98
  * Uses 'public' as the default schema since it's the most common case.
98
99
  */
99
- type CreateClientResult<Database, TAdapter extends NeonAuthAdapter> = NeonClient<Database, DefaultSchemaName$1<Database>, TAdapter>;
100
+ type CreateClientResult<Database, TAdapter extends NeonAuthAdapter$1> = NeonClient<Database, DefaultSchemaName$1<Database>, TAdapter>;
100
101
  declare function createClient<Database = any>(config: {
101
102
  auth: {
102
103
  url: string;
103
104
  };
104
- dataApi: CreateClientDataApiConfig<DefaultSchemaName$1<Database>, BetterAuthVanillaAdapterInstance>;
105
- }): CreateClientResult<Database, BetterAuthVanillaAdapterInstance>;
106
- declare function createClient<Database = any>(config: CreateClientConfig<DefaultSchemaName$1<Database>, SupabaseAuthAdapterInstance>): CreateClientResult<Database, SupabaseAuthAdapterInstance>;
107
- declare function createClient<Database = any>(config: CreateClientConfig<DefaultSchemaName$1<Database>, BetterAuthVanillaAdapterInstance>): CreateClientResult<Database, BetterAuthVanillaAdapterInstance>;
105
+ dataApi: CreateClientDataApiConfig<DefaultSchemaName$1<Database>, BetterAuthVanillaAdapterInstance$1>;
106
+ }): CreateClientResult<Database, BetterAuthVanillaAdapterInstance$1>;
107
+ declare function createClient<Database = any>(config: CreateClientConfig<DefaultSchemaName$1<Database>, SupabaseAuthAdapterInstance$1>): CreateClientResult<Database, SupabaseAuthAdapterInstance$1>;
108
+ declare function createClient<Database = any>(config: CreateClientConfig<DefaultSchemaName$1<Database>, BetterAuthVanillaAdapterInstance$1>): CreateClientResult<Database, BetterAuthVanillaAdapterInstance$1>;
108
109
  declare function createClient<Database = any>(config: CreateClientConfig<DefaultSchemaName$1<Database>, BetterAuthReactAdapterInstance>): CreateClientResult<Database, BetterAuthReactAdapterInstance>;
109
110
  //#endregion
110
- export { createClient };
111
+ export { AuthRequiredError, BetterAuthVanillaAdapter, type BetterAuthVanillaAdapterInstance, type BetterAuthVanillaAdapterOptions, type NeonAuth, type NeonAuthAdapter, type NeonAuthConfig, type NeonAuthPublicApi, type ReactBetterAuthClient, SupabaseAuthAdapter, type SupabaseAuthAdapterInstance, type SupabaseAuthAdapterOptions, type VanillaBetterAuthClient, createClient, fetchWithToken };
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
- import { NeonPostgrestClient, fetchWithToken } from "@neondatabase/postgrest-js";
2
- import { createInternalNeonAuth } from "@neondatabase/neon-auth";
3
-
4
- export * from "@neondatabase/neon-auth"
1
+ import { createInternalNeonAuth } from "@neondatabase/auth";
2
+ import { BetterAuthVanillaAdapter, SupabaseAuthAdapter } from "@neondatabase/auth/vanilla/adapters";
3
+ import "@neondatabase/auth/react/adapters";
4
+ import { AuthRequiredError, NeonPostgrestClient, fetchWithToken, fetchWithToken as fetchWithToken$1 } from "@neondatabase/postgrest-js";
5
5
 
6
6
  //#region src/client/neon-client.ts
7
7
  /**
@@ -29,7 +29,7 @@ function createClient(config) {
29
29
  const getAccessToken = async () => {
30
30
  return await auth.getJWTToken();
31
31
  };
32
- const authFetch = fetchWithToken(getAccessToken, dataApiConfig.options?.global?.fetch);
32
+ const authFetch = fetchWithToken$1(getAccessToken, dataApiConfig.options?.global?.fetch);
33
33
  return new NeonClient({
34
34
  dataApiUrl: dataApiConfig.url,
35
35
  authClient: auth,
@@ -44,4 +44,4 @@ function createClient(config) {
44
44
  }
45
45
 
46
46
  //#endregion
47
- export { createClient };
47
+ export { AuthRequiredError, BetterAuthVanillaAdapter, SupabaseAuthAdapter, createClient, fetchWithToken };
package/dist/package.json CHANGED
@@ -1,28 +1,95 @@
1
1
  {
2
2
  "name": "@neondatabase/neon-js",
3
- "version": "0.1.0-alpha.8",
4
- "description": "A TypeScript SDK for Neon services",
3
+ "version": "0.1.0-beta.9",
4
+ "description": "TypeScript SDK for Neon Auth and Data API - authentication and PostgreSQL querying",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
7
- "homepage": "https://github.com/neondatabase-labs/neon-js/",
7
+ "keywords": [
8
+ "neon",
9
+ "neondb",
10
+ "postgresql",
11
+ "postgres",
12
+ "database",
13
+ "authentication",
14
+ "auth",
15
+ "typescript",
16
+ "sdk",
17
+ "better-auth",
18
+ "supabase",
19
+ "data-api"
20
+ ],
21
+ "homepage": "https://github.com/neondatabase-labs/neon-js/tree/main/packages/neon-js#readme",
8
22
  "bugs": {
9
23
  "url": "https://github.com/neondatabase-labs/neon-js/issues"
10
24
  },
11
25
  "repository": {
12
26
  "type": "git",
13
- "url": "git+https://github.com/neondatabase-labs/neon-js.git"
27
+ "url": "git+https://github.com/neondatabase-labs/neon-js.git",
28
+ "directory": "packages/neon-js"
29
+ },
30
+ "funding": {
31
+ "url": "https://neon.tech"
14
32
  },
15
33
  "author": "Pedro Figueiredo <pedro.figueiredo@databricks.com>",
16
- "main": "./dist/index.js",
17
- "module": "./dist/index.js",
18
- "types": "./dist/index.d.ts",
34
+ "main": "./dist/index.mjs",
35
+ "module": "./dist/index.mjs",
36
+ "types": "./dist/index.d.mts",
37
+ "sideEffects": false,
19
38
  "bin": {
20
39
  "neon-js": "dist/cli/index.mjs"
21
40
  },
22
41
  "exports": {
23
- ".": "./dist/index.mjs",
24
- "./client": "./dist/client/index.mjs",
25
- "./cli": "./dist/cli/index.mjs"
42
+ ".": {
43
+ "types": "./dist/index.d.mts",
44
+ "default": "./dist/index.mjs"
45
+ },
46
+ "./cli": {
47
+ "types": "./dist/cli/index.d.mts",
48
+ "default": "./dist/cli/index.mjs"
49
+ },
50
+ "./auth": {
51
+ "types": "./dist/auth/index.d.mts",
52
+ "default": "./dist/auth/index.mjs"
53
+ },
54
+ "./auth/types": {
55
+ "types": "./dist/auth/types/index.d.mts",
56
+ "default": "./dist/auth/types/index.mjs"
57
+ },
58
+ "./auth/react": {
59
+ "types": "./dist/auth/react/index.d.mts",
60
+ "default": "./dist/auth/react/index.mjs"
61
+ },
62
+ "./auth/react/ui": {
63
+ "types": "./dist/auth/react/ui/index.d.mts",
64
+ "default": "./dist/auth/react/ui/index.mjs"
65
+ },
66
+ "./auth/react/ui/server": {
67
+ "types": "./dist/auth/react/ui/server.d.mts",
68
+ "default": "./dist/auth/react/ui/server.mjs"
69
+ },
70
+ "./auth/react/adapters": {
71
+ "types": "./dist/auth/react/adapters/index.d.mts",
72
+ "default": "./dist/auth/react/adapters/index.mjs"
73
+ },
74
+ "./auth/vanilla": {
75
+ "types": "./dist/auth/vanilla/index.d.mts",
76
+ "default": "./dist/auth/vanilla/index.mjs"
77
+ },
78
+ "./auth/vanilla/adapters": {
79
+ "types": "./dist/auth/vanilla/adapters/index.d.mts",
80
+ "default": "./dist/auth/vanilla/adapters/index.mjs"
81
+ },
82
+ "./auth/next": {
83
+ "types": "./dist/auth/next/index.d.mts",
84
+ "default": "./dist/auth/next/index.mjs"
85
+ },
86
+ "./ui/css": {
87
+ "types": "./dist/ui/css.d.ts",
88
+ "default": "./dist/ui/css.css"
89
+ },
90
+ "./ui/tailwind": {
91
+ "default": "./dist/ui/tailwind.css"
92
+ }
26
93
  },
27
94
  "files": [
28
95
  "dist"
@@ -39,21 +106,15 @@
39
106
  "typecheck": "tsc --noEmit",
40
107
  "test:types": "tsc --noEmit",
41
108
  "release": "bun run build && bumpp --tag 'neon-js-v%s' && bun publish --tag latest",
42
- "lint": "eslint ."
109
+ "lint": "eslint .",
110
+ "clean": "rm -rf node_modules dist"
43
111
  },
44
112
  "devDependencies": {
45
- "@eslint/js": "^9.39.1",
46
- "eslint": "^9.39.1",
47
- "eslint-plugin-unicorn": "^62.0.0",
48
- "tsdown": "0.16.0",
49
- "typescript": "^5.9.3",
50
- "vitest": "4.0.7",
51
- "vite-tsconfig-paths": "5.1.4",
52
113
  "msw": "2.6.8"
53
114
  },
54
115
  "dependencies": {
55
116
  "@neondatabase/postgrest-js": "^0.1.0-alpha.1",
56
- "@neondatabase/neon-auth": "^0.1.0-alpha.6",
117
+ "@neondatabase/auth": "^0.1.0-beta.10",
57
118
  "@supabase/postgres-meta": "0.93.1",
58
119
  "meow": "14.0.0",
59
120
  "zod": "4.1.12"
@@ -0,0 +1,3 @@
1
+ <!-- Auto-generated safelist for better-auth-ui classes -->
2
+ <!-- This file ensures all necessary utilities are generated -->
3
+ <div class="!bg-transparent !p-2 !py-5 !size-8 !w-auto -mx-1 -my-1 @container/card-header [&_p]:leading-relaxed [&_svg:not([class*= [&_svg]:pointer-events-none [&_svg]:shrink-0 [.border-b]:pb-6 [.border-t]:pt-6 absolute action-button animate-caret-blink animate-pulse animate-spin aria-invalid:border-destructive aria-invalid:ring-destructive/20 aspect-square auto-rows-min bg-accent bg-background bg-black/50 bg-border bg-card bg-foreground bg-muted bg-popover bg-transparent border border-color border-input border-r border-solid border-transparent border-y break-all col-start-2 cursor-default dark:aria-invalid:ring-destructive/40 dark:bg-input/30 dark:data-[active=true]:aria-invalid:ring-destructive/40 dark:data-[state=active]:bg-input/30 dark:data-[state=active]:border-input dark:data-[state=active]:text-foreground dark:data-[state=checked]:bg-primary dark:data-[variant=destructive]:focus:bg-destructive/20 dark:text-muted-foreground data-[active=true]:aria-invalid:border-destructive data-[active=true]:aria-invalid:ring-destructive/20 data-[active=true]:border-ring data-[active=true]:ring-[3px] data-[active=true]:ring-ring/50 data-[active=true]:z-10 data-[disabled]:opacity-50 data-[disabled]:pointer-events-none data-[error=true]:text-destructive data-[inset]:pl-8 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px data-[placeholder]:text-muted-foreground data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=active]:bg-background data-[state=active]:shadow-sm data-[state=checked]:bg-primary data-[state=checked]:border-primary data-[state=checked]:text-primary-foreground data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:bg-accent data-[state=open]:fade-in-0 data-[state=open]:text-accent-foreground data-[state=open]:text-muted-foreground data-[state=open]:zoom-in-95 data-[variant=destructive]:*:[svg]:!text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:text-destructive disabled:cursor-not-allowed disabled:opacity-50 disabled:pointer-events-none duration-1000 duration-200 field-sizing-content file:bg-transparent file:border-0 file:font-medium file:h-7 file:inline-flex file:text-foreground file:text-sm fill-current first:border-l first:rounded-l-md fixed flex flex-1 flex-col flex-col-reverse flex-row flex-shrink-0 focus-visible:border-ring focus-visible:outline-1 focus-visible:outline-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus:bg-accent focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-ring focus:text-accent-foreground font-bold font-medium font-mono font-sans font-semibold gap-0.5 gap-1 gap-1.5 gap-2 gap-3 gap-4 gap-6 grid grid-cols-2 grid-rows-[auto_auto] group-data-[disabled=true]:opacity-50 group-data-[disabled=true]:pointer-events-none group-data-[vaul-drawer-direction=bottom]/drawer-content:block group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center group/drawer-content grow h-2 h-3 h-4 h-5 h-8 h-9 h-[calc(100%-1px)] h-auto h-fit h-px has-data-[slot=card-action]:grid-cols-[1fr_auto] has-disabled:opacity-50 hidden hover:opacity-100 hover:underline inline-flex inset-0 items-center items-start justify-between justify-center justify-items-center justify-items-start justify-self-end justify-start last:rounded-r-md leading-[24px] leading-none leading-tight left-2 left-[50%] lg:w-60 line-clamp-1 max-h-(--radix-dropdown-menu-content-available-height) max-h-(--radix-select-content-available-height) max-w-14 max-w-32 max-w-56 max-w-64 max-w-[465px] max-w-[calc(100%-2rem)] max-w-full max-w-sm mb-0.5 mb-[32px] md:block md:flex-row md:gap-1.5 md:gap-12 md:gap-6 md:h-3.5 md:h-4 md:h-5.5 md:hidden md:ms-auto md:text-left md:text-sm md:text-start md:text-xl md:w-40 md:w-56 md:w-64 me-6 min-h-16 min-h-4 min-w-0 min-w-56 min-w-[8rem] ml-1 ml-auto ms-auto mt-0.5 mt-1.5 mt-4 mt-[32px] mt-auto mx-0 mx-auto my-0 my-0.5 my-1 my-2 my-[26px] my-[30px] my-[40px] my-auto no-underline opacity-50 opacity-70 origin-(--radix-dropdown-menu-content-transform-origin) origin-(--radix-select-content-transform-origin) outline-hidden outline-none overflow-hidden overflow-x-hidden overflow-y-auto p-0 p-1 p-2 p-4 p-6 p-[20px] p-[3px] pb-0 pb-4 peer peer-disabled:cursor-not-allowed peer-disabled:opacity-50 pl-8 placeholder:text-muted-foreground pointer-events-none pr-2 px-0 px-2 px-3 px-4 px-5 px-6 py-1 py-1.5 py-2 py-3 py-4 py-6 relative right-0 right-2 right-4 ring-offset-background rounded rounded-[4px] rounded-b-xl rounded-full rounded-lg rounded-md rounded-sm rounded-xl rounded-xs row-span-2 row-start-1 select-none selection:bg-primary selection:text-primary-foreground self-center self-start shadow-lg shadow-md shadow-sm shadow-xs shrink-0 shrink-2 size-10 size-16 size-2 size-20 size-3 size-3.5 size-4 size-5 size-8 size-[50%] size-fit size-full sm:flex-row sm:justify-end sm:max-w-lg sm:max-w-md sm:text-left space-y-3 space-y-6 sr-only st0 st1 text-2xl text-[#666666] text-[12px] text-[14px] text-[24px] text-base text-card-foreground text-center text-current text-destructive text-foreground text-left text-lg text-muted-foreground text-popover-foreground text-sm text-start text-xs top-0 top-4 top-[50%] tracking-tight tracking-widest transition-[color,box-shadow] transition-all transition-none transition-opacity transition-shadow translate-x-[-50%] translate-y-[-50%] truncate underline uppercase w-1/3 w-12 w-14 w-2/3 w-24 w-28 w-32 w-48 w-9 w-[--radix-dropdown-menu-trigger-width] w-[--radix-select-trigger-width] w-[100px] w-fit w-full w-px whitespace-nowrap z-50"></div>
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-duration:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-widest:.1em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-sm:calc(var(--radius) - 4px);--radius-md:calc(var(--radius) - 2px);--radius-lg:var(--radius);--radius-xl:calc(var(--radius) + 4px);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-background:var(--background);--color-foreground:var(--foreground);--color-card:var(--card);--color-card-foreground:var(--card-foreground);--color-popover:var(--popover);--color-popover-foreground:var(--popover-foreground);--color-primary:var(--primary);--color-primary-foreground:var(--primary-foreground);--color-secondary:var(--secondary);--color-secondary-foreground:var(--secondary-foreground);--color-muted:var(--muted);--color-muted-foreground:var(--muted-foreground);--color-accent:var(--accent);--color-accent-foreground:var(--accent-foreground);--color-destructive:var(--destructive);--color-destructive-foreground:var(--destructive-foreground);--color-border:var(--border);--color-input:var(--input);--color-ring:var(--ring);--color-chart-1:var(--chart-1);--color-chart-2:var(--chart-2);--color-chart-3:var(--chart-3);--color-chart-4:var(--chart-4);--color-chart-5:var(--chart-5);--color-sidebar:var(--sidebar);--color-sidebar-foreground:var(--sidebar-foreground);--color-sidebar-primary:var(--sidebar-primary);--color-sidebar-primary-foreground:var(--sidebar-primary-foreground);--color-sidebar-accent:var(--sidebar-accent);--color-sidebar-accent-foreground:var(--sidebar-accent-foreground);--color-sidebar-border:var(--sidebar-border);--color-sidebar-ring:var(--sidebar-ring)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}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}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--team-1:oklch(64.6% .222 41.116);--team-2:oklch(60% .118 184.704);--team-3:oklch(39.8% .07 227.392);--team-4:oklch(82.8% .189 84.429);--team-5:oklch(76.9% .188 70.08)}*{box-sizing:border-box;border-color:var(--border);outline-color:var(--ring);margin:0;padding:0}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}body{background-color:var(--background);color:var(--foreground)}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-4{top:calc(var(--spacing)*4)}.top-\[50\%\]{top:50%}.right-0{right:calc(var(--spacing)*0)}.right-2{right:calc(var(--spacing)*2)}.right-4{right:calc(var(--spacing)*4)}.left-2{left:calc(var(--spacing)*2)}.left-\[50\%\]{left:50%}.z-50{z-index:50}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.mx-0{margin-inline:calc(var(--spacing)*0)}.mx-auto{margin-inline:auto}.-my-1{margin-block:calc(var(--spacing)*-1)}.my-0{margin-block:calc(var(--spacing)*0)}.my-0\.5{margin-block:calc(var(--spacing)*.5)}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.my-\[26px\]{margin-block:26px}.my-\[30px\]{margin-block:30px}.my-\[40px\]{margin-block:40px}.my-auto{margin-block:auto}.ms-auto{margin-inline-start:auto}.me-6{margin-inline-end:calc(var(--spacing)*6)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1\.5{margin-top:calc(var(--spacing)*1.5)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-\[32px\]{margin-top:32px}.mt-auto{margin-top:auto}.mb-0\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-\[32px\]{margin-bottom:32px}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.field-sizing-content{field-sizing:content}.aspect-square{aspect-ratio:1}.\!size-8{width:calc(var(--spacing)*8)!important;height:calc(var(--spacing)*8)!important}.size-2{width:calc(var(--spacing)*2);height:calc(var(--spacing)*2)}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-3\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-12{width:calc(var(--spacing)*12);height:calc(var(--spacing)*12)}.size-16{width:calc(var(--spacing)*16);height:calc(var(--spacing)*16)}.size-20{width:calc(var(--spacing)*20);height:calc(var(--spacing)*20)}.size-\[50\%\]{width:50%;height:50%}.size-fit{width:fit-content;height:fit-content}.size-full{width:100%;height:100%}.h-2{height:calc(var(--spacing)*2)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-4\.5{height:calc(var(--spacing)*4.5)}.h-5{height:calc(var(--spacing)*5)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-\[76px\]{height:76px}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-fit{height:fit-content}.h-px{height:1px}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.min-h-4{min-height:calc(var(--spacing)*4)}.min-h-16{min-height:calc(var(--spacing)*16)}.\!w-auto{width:auto!important}.w-1\/3{width:33.3333%}.w-2\/3{width:66.6667%}.w-9{width:calc(var(--spacing)*9)}.w-12{width:calc(var(--spacing)*12)}.w-14{width:calc(var(--spacing)*14)}.w-16{width:calc(var(--spacing)*16)}.w-24{width:calc(var(--spacing)*24)}.w-28{width:calc(var(--spacing)*28)}.w-32{width:calc(var(--spacing)*32)}.w-40{width:calc(var(--spacing)*40)}.w-48{width:calc(var(--spacing)*48)}.w-\[--radix-dropdown-menu-trigger-width\]{width:--radix-dropdown-menu-trigger-width}.w-\[--radix-select-trigger-width\]{width:--radix-select-trigger-width}.w-\[100px\]{width:100px}.w-\[302px\]{width:302px}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-14{max-width:calc(var(--spacing)*14)}.max-w-32{max-width:calc(var(--spacing)*32)}.max-w-56{max-width:calc(var(--spacing)*56)}.max-w-64{max-width:calc(var(--spacing)*64)}.max-w-\[465px\]{max-width:465px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-full{max-width:100%}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-56{min-width:calc(var(--spacing)*56)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.shrink-2{flex-shrink:2}.grow{flex-grow:1}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-caret-blink{animation:1.25s ease-out infinite caret-blink}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.scroll-my-1{scroll-margin-block:calc(var(--spacing)*1)}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[0_1fr\]{grid-template-columns:0 1fr}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.justify-items-center{justify-items:center}.justify-items-start{justify-items:start}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.gap-y-0\.5{row-gap:calc(var(--spacing)*.5)}.self-center{align-self:center}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[4px\]{border-radius:4px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-b-xl{border-bottom-right-radius:calc(var(--radius) + 4px);border-bottom-left-radius:calc(var(--radius) + 4px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-solid{--tw-border-style:solid;border-style:solid}.border-border{border-color:var(--border)}.border-destructive\/30{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/30{border-color:color-mix(in oklab,var(--destructive)30%,transparent)}}.border-destructive\/40{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/40{border-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.border-input{border-color:var(--input)}.border-transparent{border-color:#0000}.\!bg-transparent{background-color:#0000!important}.bg-accent{background-color:var(--accent)}.bg-background{background-color:var(--background)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive,.bg-destructive\/15{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/15{background-color:color-mix(in oklab,var(--destructive)15%,transparent)}}.bg-foreground{background-color:var(--foreground)}.bg-muted{background-color:var(--muted)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-transparent{background-color:#0000}.fill-current{fill:currentColor}.\!p-2{padding:calc(var(--spacing)*2)!important}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-\[3px\]{padding:3px}.p-\[20px\]{padding:20px}.px-0{padding-inline:calc(var(--spacing)*0)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.\!py-4{padding-block:calc(var(--spacing)*4)!important}.\!py-5{padding-block:calc(var(--spacing)*5)!important}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-8{padding-right:calc(var(--spacing)*8)}.pr-10{padding-right:calc(var(--spacing)*10)}.pb-0{padding-bottom:calc(var(--spacing)*0)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-8{padding-left:calc(var(--spacing)*8)}.text-center{text-align:center}.text-left{text-align:left}.text-start{text-align:start}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[12px\]{font-size:12px}.text-\[14px\]{font-size:14px}.text-\[24px\]{font-size:24px}.leading-\[24px\]{--tw-leading:24px;line-height:24px}.leading-none{--tw-leading:1;line-height:1}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.text-\[\#666666\]{color:#666}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-destructive{color:var(--destructive)}.text-foreground,.text-foreground\/70{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/70{color:color-mix(in oklab,var(--foreground)70%,transparent)}}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-white{color:var(--color-white)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-1000{--tw-duration:1s;transition-duration:1s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:block:is(:where(.group\/drawer-content)[data-vaul-drawer-direction=bottom] *){display:block}.group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:text-center:is(:where(.group\/drawer-content)[data-vaul-drawer-direction=bottom] *),.group-data-\[vaul-drawer-direction\=top\]\/drawer-content\:text-center:is(:where(.group\/drawer-content)[data-vaul-drawer-direction=top] *){text-align:center}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing)*7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.first\:rounded-l-md:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.first\:border-l:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.last\:rounded-r-md:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}@media (hover:hover){.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled,.has-disabled\:opacity-50:has(:disabled){opacity:.5}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg){grid-template-columns:calc(var(--spacing)*4)1fr}.has-\[\>svg\]\:gap-x-3:has(>svg){column-gap:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-\[active\=true\]\:z-10[data-active=true]{z-index:10}.data-\[active\=true\]\:border-ring[data-active=true]{border-color:var(--ring)}.data-\[active\=true\]\:ring-\[3px\][data-active=true]{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[active\=true\]\:ring-ring\/50[data-active=true]{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.data-\[active\=true\]\:ring-ring\/50[data-active=true]{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.data-\[active\=true\]\:aria-invalid\:border-destructive[data-active=true][aria-invalid=true]{border-color:var(--destructive)}.data-\[active\=true\]\:aria-invalid\:ring-destructive\/20[data-active=true][aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.data-\[active\=true\]\:aria-invalid\:ring-destructive\/20[data-active=true][aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[error\=true\]\:text-destructive[data-error=true]{color:var(--destructive)}.data-\[inset\]\:pl-8[data-inset]{padding-left:calc(var(--spacing)*8)}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=default\]\:h-9[data-size=default]{height:calc(var(--spacing)*9)}.data-\[size\=sm\]\:h-8[data-size=sm]{height:calc(var(--spacing)*8)}:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:color-mix(in oklab,var(--destructive)90%,transparent)}}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing)*2)}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--accent-foreground)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}.data-\[vaul-drawer-direction\=bottom\]\:inset-x-0[data-vaul-drawer-direction=bottom]{inset-inline:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=bottom\]\:bottom-0[data-vaul-drawer-direction=bottom]{bottom:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=bottom\]\:mt-24[data-vaul-drawer-direction=bottom]{margin-top:calc(var(--spacing)*24)}.data-\[vaul-drawer-direction\=bottom\]\:max-h-\[80vh\][data-vaul-drawer-direction=bottom]{max-height:80vh}.data-\[vaul-drawer-direction\=bottom\]\:rounded-t-lg[data-vaul-drawer-direction=bottom]{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.data-\[vaul-drawer-direction\=bottom\]\:border-t[data-vaul-drawer-direction=bottom]{border-top-style:var(--tw-border-style);border-top-width:1px}.data-\[vaul-drawer-direction\=left\]\:inset-y-0[data-vaul-drawer-direction=left]{inset-block:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=left\]\:left-0[data-vaul-drawer-direction=left]{left:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=left\]\:w-3\/4[data-vaul-drawer-direction=left]{width:75%}.data-\[vaul-drawer-direction\=left\]\:border-r[data-vaul-drawer-direction=left]{border-right-style:var(--tw-border-style);border-right-width:1px}.data-\[vaul-drawer-direction\=right\]\:inset-y-0[data-vaul-drawer-direction=right]{inset-block:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=right\]\:right-0[data-vaul-drawer-direction=right]{right:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=right\]\:w-3\/4[data-vaul-drawer-direction=right]{width:75%}.data-\[vaul-drawer-direction\=right\]\:border-l[data-vaul-drawer-direction=right]{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\[vaul-drawer-direction\=top\]\:inset-x-0[data-vaul-drawer-direction=top]{inset-inline:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=top\]\:top-0[data-vaul-drawer-direction=top]{top:calc(var(--spacing)*0)}.data-\[vaul-drawer-direction\=top\]\:mb-24[data-vaul-drawer-direction=top]{margin-bottom:calc(var(--spacing)*24)}.data-\[vaul-drawer-direction\=top\]\:max-h-\[80vh\][data-vaul-drawer-direction=top]{max-height:80vh}.data-\[vaul-drawer-direction\=top\]\:rounded-b-lg[data-vaul-drawer-direction=top]{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.data-\[vaul-drawer-direction\=top\]\:border-b[data-vaul-drawer-direction=top]{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}@media (min-width:40rem){.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-md{max-width:var(--container-md)}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:text-left{text-align:left}.data-\[vaul-drawer-direction\=left\]\:sm\:max-w-sm[data-vaul-drawer-direction=left],.data-\[vaul-drawer-direction\=right\]\:sm\:max-w-sm[data-vaul-drawer-direction=right]{max-width:var(--container-sm)}}@media (min-width:48rem){.md\:ms-auto{margin-inline-start:auto}.md\:block{display:block}.md\:hidden{display:none}.md\:h-3\.5{height:calc(var(--spacing)*3.5)}.md\:h-4{height:calc(var(--spacing)*4)}.md\:h-5\.5{height:calc(var(--spacing)*5.5)}.md\:w-40{width:calc(var(--spacing)*40)}.md\:w-56{width:calc(var(--spacing)*56)}.md\:w-64{width:calc(var(--spacing)*64)}.md\:flex-row{flex-direction:row}.md\:gap-1\.5{gap:calc(var(--spacing)*1.5)}.md\:gap-6{gap:calc(var(--spacing)*6)}.md\:gap-12{gap:calc(var(--spacing)*12)}.md\:text-left{text-align:left}.md\:text-start{text-align:start}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.md\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media (min-width:64rem){.lg\:w-60{width:calc(var(--spacing)*60)}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}@media (hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:data-\[active\=true\]\:aria-invalid\:ring-destructive\/40:is(.dark *)[data-active=true][aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[active\=true\]\:aria-invalid\:ring-destructive\/40:is(.dark *)[data-active=true][aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:data-\[state\=active\]\:border-input:is(.dark *)[data-state=active]{border-color:var(--input)}.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:data-\[state\=active\]\:text-foreground:is(.dark *)[data-state=active]{color:var(--foreground)}.dark\:data-\[state\=checked\]\:bg-primary:is(.dark *)[data-state=checked]{background-color:var(--primary)}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing)*6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing)*6)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing)*2)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:\!text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)!important}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&\>svg\]\:translate-y-0\.5>svg{--tw-translate-y:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>svg\]\:text-current>svg{color:currentColor}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.625rem;--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(20.5% 0 0);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(57.7% .245 27.325);--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(70.8% 0 0);--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08);--sidebar:oklch(98.5% 0 0);--sidebar-foreground:oklch(14.5% 0 0);--sidebar-primary:oklch(20.5% 0 0);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(97% 0 0);--sidebar-accent-foreground:oklch(20.5% 0 0);--sidebar-border:oklch(92.2% 0 0);--sidebar-ring:oklch(70.8% 0 0)}.dark{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92.2% 0 0);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.6% 0 0);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.6% 0 0)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@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));filter:blur(var(--tw-enter-blur,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));filter:blur(var(--tw-exit-blur,0))}}@keyframes caret-blink{0%,70%,to{opacity:1}20%,50%{opacity:0}}
@@ -0,0 +1 @@
1
+ declare module '@neondatabase/neon-js/ui/css';
@@ -0,0 +1,6 @@
1
+ /* Tailwind-ready CSS for consumers WITH Tailwind */
2
+ /* Import this AFTER @import 'tailwindcss' in your CSS */
3
+ @import './theme.css';
4
+
5
+ /* Safelist: All Tailwind classes used by better-auth-ui components */
6
+ @source "./.safelist.html";
@@ -0,0 +1,201 @@
1
+ /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
2
+ @layer properties;
3
+ @property --tw-animation-delay {
4
+ syntax: "*";
5
+ inherits: false;
6
+ initial-value: 0s;
7
+ }
8
+ @property --tw-animation-direction {
9
+ syntax: "*";
10
+ inherits: false;
11
+ initial-value: normal;
12
+ }
13
+ @property --tw-animation-duration {
14
+ syntax: "*";
15
+ inherits: false;
16
+ }
17
+ @property --tw-animation-fill-mode {
18
+ syntax: "*";
19
+ inherits: false;
20
+ initial-value: none;
21
+ }
22
+ @property --tw-animation-iteration-count {
23
+ syntax: "*";
24
+ inherits: false;
25
+ initial-value: 1;
26
+ }
27
+ @property --tw-enter-blur {
28
+ syntax: "*";
29
+ inherits: false;
30
+ initial-value: 0;
31
+ }
32
+ @property --tw-enter-opacity {
33
+ syntax: "*";
34
+ inherits: false;
35
+ initial-value: 1;
36
+ }
37
+ @property --tw-enter-rotate {
38
+ syntax: "*";
39
+ inherits: false;
40
+ initial-value: 0;
41
+ }
42
+ @property --tw-enter-scale {
43
+ syntax: "*";
44
+ inherits: false;
45
+ initial-value: 1;
46
+ }
47
+ @property --tw-enter-translate-x {
48
+ syntax: "*";
49
+ inherits: false;
50
+ initial-value: 0;
51
+ }
52
+ @property --tw-enter-translate-y {
53
+ syntax: "*";
54
+ inherits: false;
55
+ initial-value: 0;
56
+ }
57
+ @property --tw-exit-blur {
58
+ syntax: "*";
59
+ inherits: false;
60
+ initial-value: 0;
61
+ }
62
+ @property --tw-exit-opacity {
63
+ syntax: "*";
64
+ inherits: false;
65
+ initial-value: 1;
66
+ }
67
+ @property --tw-exit-rotate {
68
+ syntax: "*";
69
+ inherits: false;
70
+ initial-value: 0;
71
+ }
72
+ @property --tw-exit-scale {
73
+ syntax: "*";
74
+ inherits: false;
75
+ initial-value: 1;
76
+ }
77
+ @property --tw-exit-translate-x {
78
+ syntax: "*";
79
+ inherits: false;
80
+ initial-value: 0;
81
+ }
82
+ @property --tw-exit-translate-y {
83
+ syntax: "*";
84
+ inherits: false;
85
+ initial-value: 0;
86
+ }
87
+ @layer base {
88
+ :root {
89
+ --team-1: oklch(0.646 0.222 41.116);
90
+ --team-2: oklch(0.6 0.118 184.704);
91
+ --team-3: oklch(0.398 0.07 227.392);
92
+ --team-4: oklch(0.828 0.189 84.429);
93
+ --team-5: oklch(0.769 0.188 70.08);
94
+ }
95
+ }
96
+ :root {
97
+ --radius: 0.625rem;
98
+ --background: oklch(1 0 0);
99
+ --foreground: oklch(0.145 0 0);
100
+ --card: oklch(1 0 0);
101
+ --card-foreground: oklch(0.145 0 0);
102
+ --popover: oklch(1 0 0);
103
+ --popover-foreground: oklch(0.145 0 0);
104
+ --primary: oklch(0.205 0 0);
105
+ --primary-foreground: oklch(0.985 0 0);
106
+ --secondary: oklch(0.97 0 0);
107
+ --secondary-foreground: oklch(0.205 0 0);
108
+ --muted: oklch(0.97 0 0);
109
+ --muted-foreground: oklch(0.556 0 0);
110
+ --accent: oklch(0.97 0 0);
111
+ --accent-foreground: oklch(0.205 0 0);
112
+ --destructive: oklch(0.577 0.245 27.325);
113
+ --border: oklch(0.922 0 0);
114
+ --input: oklch(0.922 0 0);
115
+ --ring: oklch(0.708 0 0);
116
+ --chart-1: oklch(0.646 0.222 41.116);
117
+ --chart-2: oklch(0.6 0.118 184.704);
118
+ --chart-3: oklch(0.398 0.07 227.392);
119
+ --chart-4: oklch(0.828 0.189 84.429);
120
+ --chart-5: oklch(0.769 0.188 70.08);
121
+ --sidebar: oklch(0.985 0 0);
122
+ --sidebar-foreground: oklch(0.145 0 0);
123
+ --sidebar-primary: oklch(0.205 0 0);
124
+ --sidebar-primary-foreground: oklch(0.985 0 0);
125
+ --sidebar-accent: oklch(0.97 0 0);
126
+ --sidebar-accent-foreground: oklch(0.205 0 0);
127
+ --sidebar-border: oklch(0.922 0 0);
128
+ --sidebar-ring: oklch(0.708 0 0);
129
+ }
130
+ .dark {
131
+ --background: oklch(0.145 0 0);
132
+ --foreground: oklch(0.985 0 0);
133
+ --card: oklch(0.205 0 0);
134
+ --card-foreground: oklch(0.985 0 0);
135
+ --popover: oklch(0.205 0 0);
136
+ --popover-foreground: oklch(0.985 0 0);
137
+ --primary: oklch(0.922 0 0);
138
+ --primary-foreground: oklch(0.205 0 0);
139
+ --secondary: oklch(0.269 0 0);
140
+ --secondary-foreground: oklch(0.985 0 0);
141
+ --muted: oklch(0.269 0 0);
142
+ --muted-foreground: oklch(0.708 0 0);
143
+ --accent: oklch(0.269 0 0);
144
+ --accent-foreground: oklch(0.985 0 0);
145
+ --destructive: oklch(0.704 0.191 22.216);
146
+ --border: oklch(1 0 0 / 10%);
147
+ --input: oklch(1 0 0 / 15%);
148
+ --ring: oklch(0.556 0 0);
149
+ --chart-1: oklch(0.488 0.243 264.376);
150
+ --chart-2: oklch(0.696 0.17 162.48);
151
+ --chart-3: oklch(0.769 0.188 70.08);
152
+ --chart-4: oklch(0.627 0.265 303.9);
153
+ --chart-5: oklch(0.645 0.246 16.439);
154
+ --sidebar: oklch(0.205 0 0);
155
+ --sidebar-foreground: oklch(0.985 0 0);
156
+ --sidebar-primary: oklch(0.488 0.243 264.376);
157
+ --sidebar-primary-foreground: oklch(0.985 0 0);
158
+ --sidebar-accent: oklch(0.269 0 0);
159
+ --sidebar-accent-foreground: oklch(0.985 0 0);
160
+ --sidebar-border: oklch(1 0 0 / 10%);
161
+ --sidebar-ring: oklch(0.556 0 0);
162
+ }
163
+ @layer base {
164
+ * {
165
+ box-sizing: border-box;
166
+ margin: 0;
167
+ padding: 0;
168
+ border-color: var(--border);
169
+ outline-color: var(--ring);
170
+ @supports (color: color-mix(in lab, red, red)) {
171
+ outline-color: color-mix(in oklab, var(--ring) 50%, transparent);
172
+ }
173
+ }
174
+ body {
175
+ background-color: var(--background);
176
+ color: var(--foreground);
177
+ }
178
+ }
179
+ @layer properties {
180
+ @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
181
+ *, ::before, ::after, ::backdrop {
182
+ --tw-animation-delay: 0s;
183
+ --tw-animation-direction: normal;
184
+ --tw-animation-duration: initial;
185
+ --tw-animation-fill-mode: none;
186
+ --tw-animation-iteration-count: 1;
187
+ --tw-enter-blur: 0;
188
+ --tw-enter-opacity: 1;
189
+ --tw-enter-rotate: 0;
190
+ --tw-enter-scale: 1;
191
+ --tw-enter-translate-x: 0;
192
+ --tw-enter-translate-y: 0;
193
+ --tw-exit-blur: 0;
194
+ --tw-exit-opacity: 1;
195
+ --tw-exit-rotate: 0;
196
+ --tw-exit-scale: 1;
197
+ --tw-exit-translate-x: 0;
198
+ --tw-exit-translate-y: 0;
199
+ }
200
+ }
201
+ }
package/package.json CHANGED
@@ -1,28 +1,95 @@
1
1
  {
2
2
  "name": "@neondatabase/neon-js",
3
- "version": "0.1.0-alpha.9",
4
- "description": "A TypeScript SDK for Neon services",
3
+ "version": "0.1.0-beta.10",
4
+ "description": "TypeScript SDK for Neon Auth and Data API - authentication and PostgreSQL querying",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
7
- "homepage": "https://github.com/neondatabase-labs/neon-js/",
7
+ "keywords": [
8
+ "neon",
9
+ "neondb",
10
+ "postgresql",
11
+ "postgres",
12
+ "database",
13
+ "authentication",
14
+ "auth",
15
+ "typescript",
16
+ "sdk",
17
+ "better-auth",
18
+ "supabase",
19
+ "data-api"
20
+ ],
21
+ "homepage": "https://github.com/neondatabase-labs/neon-js/tree/main/packages/neon-js#readme",
8
22
  "bugs": {
9
23
  "url": "https://github.com/neondatabase-labs/neon-js/issues"
10
24
  },
11
25
  "repository": {
12
26
  "type": "git",
13
- "url": "git+https://github.com/neondatabase-labs/neon-js.git"
27
+ "url": "git+https://github.com/neondatabase-labs/neon-js.git",
28
+ "directory": "packages/neon-js"
29
+ },
30
+ "funding": {
31
+ "url": "https://neon.tech"
14
32
  },
15
33
  "author": "Pedro Figueiredo <pedro.figueiredo@databricks.com>",
16
- "main": "./dist/index.js",
17
- "module": "./dist/index.js",
18
- "types": "./dist/index.d.ts",
34
+ "main": "./dist/index.mjs",
35
+ "module": "./dist/index.mjs",
36
+ "types": "./dist/index.d.mts",
37
+ "sideEffects": false,
19
38
  "bin": {
20
39
  "neon-js": "dist/cli/index.mjs"
21
40
  },
22
41
  "exports": {
23
- ".": "./dist/index.mjs",
24
- "./client": "./dist/client/index.mjs",
25
- "./cli": "./dist/cli/index.mjs"
42
+ ".": {
43
+ "types": "./dist/index.d.mts",
44
+ "default": "./dist/index.mjs"
45
+ },
46
+ "./cli": {
47
+ "types": "./dist/cli/index.d.mts",
48
+ "default": "./dist/cli/index.mjs"
49
+ },
50
+ "./auth": {
51
+ "types": "./dist/auth/index.d.mts",
52
+ "default": "./dist/auth/index.mjs"
53
+ },
54
+ "./auth/types": {
55
+ "types": "./dist/auth/types/index.d.mts",
56
+ "default": "./dist/auth/types/index.mjs"
57
+ },
58
+ "./auth/react": {
59
+ "types": "./dist/auth/react/index.d.mts",
60
+ "default": "./dist/auth/react/index.mjs"
61
+ },
62
+ "./auth/react/ui": {
63
+ "types": "./dist/auth/react/ui/index.d.mts",
64
+ "default": "./dist/auth/react/ui/index.mjs"
65
+ },
66
+ "./auth/react/ui/server": {
67
+ "types": "./dist/auth/react/ui/server.d.mts",
68
+ "default": "./dist/auth/react/ui/server.mjs"
69
+ },
70
+ "./auth/react/adapters": {
71
+ "types": "./dist/auth/react/adapters/index.d.mts",
72
+ "default": "./dist/auth/react/adapters/index.mjs"
73
+ },
74
+ "./auth/vanilla": {
75
+ "types": "./dist/auth/vanilla/index.d.mts",
76
+ "default": "./dist/auth/vanilla/index.mjs"
77
+ },
78
+ "./auth/vanilla/adapters": {
79
+ "types": "./dist/auth/vanilla/adapters/index.d.mts",
80
+ "default": "./dist/auth/vanilla/adapters/index.mjs"
81
+ },
82
+ "./auth/next": {
83
+ "types": "./dist/auth/next/index.d.mts",
84
+ "default": "./dist/auth/next/index.mjs"
85
+ },
86
+ "./ui/css": {
87
+ "types": "./dist/ui/css.d.ts",
88
+ "default": "./dist/ui/css.css"
89
+ },
90
+ "./ui/tailwind": {
91
+ "default": "./dist/ui/tailwind.css"
92
+ }
26
93
  },
27
94
  "files": [
28
95
  "dist"
@@ -39,21 +106,15 @@
39
106
  "typecheck": "tsc --noEmit",
40
107
  "test:types": "tsc --noEmit",
41
108
  "release": "bun run build && bumpp --tag 'neon-js-v%s' && bun publish --tag latest",
42
- "lint": "eslint ."
109
+ "lint": "eslint .",
110
+ "clean": "rm -rf node_modules dist"
43
111
  },
44
112
  "devDependencies": {
45
- "@eslint/js": "^9.39.1",
46
- "eslint": "^9.39.1",
47
- "eslint-plugin-unicorn": "^62.0.0",
48
- "tsdown": "0.16.0",
49
- "typescript": "^5.9.3",
50
- "vitest": "4.0.7",
51
- "vite-tsconfig-paths": "5.1.4",
52
113
  "msw": "2.6.8"
53
114
  },
54
115
  "dependencies": {
55
116
  "@neondatabase/postgrest-js": "0.1.0-alpha.1",
56
- "@neondatabase/neon-auth": "0.1.0-alpha.6",
117
+ "@neondatabase/auth": "0.1.0-beta.10",
57
118
  "@supabase/postgres-meta": "0.93.1",
58
119
  "meow": "14.0.0",
59
120
  "zod": "4.1.12"