diff --git a/.gitignore b/.gitignore
index cadfa4d..cff8898 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,3 +13,5 @@ node_modules
.env
.env*.local
+
+oauth-client-metadata.json
diff --git a/app/package.json b/app/package.json
index 84f8f29..d0c45be 100644
--- a/app/package.json
+++ b/app/package.json
@@ -2,20 +2,30 @@
"name": "app",
"type": "module",
"scripts": {
+ "postinstall": "node ./scripts/generate-metadata.ts",
"start": "vite",
"dev": "vite",
"build": "vite build",
"serve": "vite preview"
},
- "devDependencies": {
+ "dependencies": {
+ "@ark-ui/solid": "^5.37.1",
+ "@atcute/bluesky": "^4.0.6",
+ "@atcute/client": "^5.0.0",
+ "@atcute/identity-resolver": "^2.0.0",
+ "@atcute/lexicons": "^2.0.0",
+ "@atcute/oauth-browser-client": "^4.0.0",
+ "@atcute/tangled": "^2.0.5",
"@tailwindcss/vite": "^4.3.0",
+ "@tanstack/solid-form": "^1.33.0",
+ "@tanstack/solid-query": "^5.101.0",
+ "lucide-solid": "^1.17.0",
"solid-devtools": "^0.34.3",
+ "solid-js": "^1.9.5",
"tailwindcss": "^4.1.13",
"typescript": "^5.9.2",
+ "valibot": "^1.4.1",
"vite": "^7.1.4",
"vite-plugin-solid": "^2.11.8"
- },
- "dependencies": {
- "solid-js": "^1.9.5"
}
}
diff --git a/app/scripts/generate-metadata.ts b/app/scripts/generate-metadata.ts
new file mode 100644
index 0000000..cfe393c
--- /dev/null
+++ b/app/scripts/generate-metadata.ts
@@ -0,0 +1,17 @@
+import { existsSync, mkdirSync, writeFileSync } from "node:fs";
+import { dirname } from "node:path";
+import { fileURLToPath } from "node:url";
+import { OAUTH_CLIENT_METADATA } from "../src/oauth_metadata.ts";
+
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = dirname(__filename);
+const public_dir = `${__dirname}/../public`;
+
+if (!existsSync(public_dir)) {
+ mkdirSync(public_dir);
+}
+
+writeFileSync(
+ `${public_dir}/oauth-client-metadata.json`,
+ JSON.stringify(OAUTH_CLIENT_METADATA),
+);
diff --git a/app/src/App.tsx b/app/src/App.tsx
index 74d62bd..7df38a3 100644
--- a/app/src/App.tsx
+++ b/app/src/App.tsx
@@ -1,8 +1,16 @@
import type { Component } from "solid-js";
+import { SessionProvider } from "./session";
+import { QueryClient, QueryClientProvider } from "@tanstack/solid-query";
+
+const queryClient = new QueryClient();
const App: Component = () => {
return (
-
Hello tailwind!
+
+
+ Hello tailwind!
+
+
);
};
diff --git a/app/src/SigninButton.tsx b/app/src/SigninButton.tsx
new file mode 100644
index 0000000..00ce159
--- /dev/null
+++ b/app/src/SigninButton.tsx
@@ -0,0 +1,173 @@
+import { Check } from "lucide-solid";
+import { ActorIdentifier, isActorIdentifier } from "@atcute/lexicons/syntax";
+import { createAuthorizationUrl } from "@atcute/oauth-browser-client";
+import * as v from "valibot";
+import { createSignal, Show } from "solid-js";
+import { createForm } from "@tanstack/solid-form";
+import { Dialog } from "./components/Dialog";
+import { Button } from "./components/Button";
+import { OAUTH_CLIENT_METADATA } from "./oauth_metadata";
+import { FormError } from "./components/FormError";
+import { HandleChip } from "./components/HandleChip";
+import { useSession } from "./session";
+
+type UseOAuthScopeFlowOptions = {
+ onError?: (error: unknown) => void;
+ beforeRedirect?: (identifier: string, authUrl: URL) => Promise;
+};
+
+export const useOAuthScopeFlow = (options: UseOAuthScopeFlowOptions = {}) => {
+ const connect = async (identifier: ActorIdentifier) => {
+ try {
+ const authUrl = await createAuthorizationUrl({
+ scope: OAUTH_CLIENT_METADATA.scope,
+ target: {
+ type: "account",
+ identifier,
+ },
+ });
+
+ if (options.beforeRedirect) {
+ await options.beforeRedirect(identifier, authUrl);
+ }
+
+ await new Promise((resolve) => setTimeout(resolve, 250));
+ location.assign(authUrl);
+ } catch (e) {
+ console.error(e);
+ options.onError?.(e);
+ }
+ };
+
+ return {
+ connect,
+ };
+};
+
+function SignInDialog() {
+ const [authHost, setAuthHost] = createSignal("");
+
+ const scopeFlow = useOAuthScopeFlow({
+ onError: (e) => {
+ form.setErrorMap({
+ onSubmit: { fields: { handle: e } },
+ });
+ },
+ beforeRedirect: async (_, url) => {
+ setAuthHost(url.host);
+ await new Promise((resolve) => setTimeout(resolve, 1000));
+ },
+ });
+
+ const form = createForm(() => ({
+ validators: {
+ onSubmit: v.object({
+ handle: v.custom(
+ (val) => isActorIdentifier(val),
+ "invalid handle or DID",
+ ),
+ }),
+ },
+ defaultValues: { handle: "" as ActorIdentifier },
+ onSubmit: async ({ value }) => {
+ await scopeFlow.connect(value.handle);
+ },
+ }));
+
+ let handleInputRef: HTMLInputElement | undefined;
+
+ return (
+
+ );
+}
+
+export function SignInButton() {
+ const { agent, isPending, signOut } = useSession();
+
+ return (
+
+ }
+ >
+ }>
+ {(a) => (
+
+
+ signed in as
+
+
+
+ )}
+
+
+ );
+}
diff --git a/app/src/components/Button.tsx b/app/src/components/Button.tsx
new file mode 100644
index 0000000..2108c6c
--- /dev/null
+++ b/app/src/components/Button.tsx
@@ -0,0 +1,37 @@
+import { children, splitProps } from "solid-js";
+import type { JSX } from "solid-js";
+
+type Variants = "default" | "contrast" | "green" | "none";
+type Props = {
+ children: JSX.Element;
+ variant?: Variants;
+} & Omit, "children">;
+
+const styles: Record = {
+ default: "bg-background text-text border-border",
+ contrast: "bg-background-contrast text-text-contrast border-transparent",
+ green: "bg-lime-500 text-black",
+ none: "",
+};
+
+export function Button(props: Props) {
+ const safeChildren = children(() => props.children);
+
+ const [customProps, classProp, restProps] = splitProps(
+ props,
+ ["children", "variant"],
+ ["class"],
+ );
+
+ const baseClass = () =>
+ customProps.variant === "none"
+ ? "cursor-pointer"
+ : styles[customProps.variant || "default"] +
+ "rounded-xl px-3 py-2 border cursor-pointer active:scale-95 active:transition-all disabled:cursor-not-allowed disabled:opacity-50 disabled:active:scale-100 focus-ring";
+
+ return (
+
+ );
+}
diff --git a/app/src/components/Dialog.tsx b/app/src/components/Dialog.tsx
new file mode 100644
index 0000000..9b04b4d
--- /dev/null
+++ b/app/src/components/Dialog.tsx
@@ -0,0 +1,46 @@
+import { Dialog as ArkDialog } from "@ark-ui/solid";
+import type { Component, JSX } from "solid-js";
+
+type Props = {
+ trigger: Component;
+ children: JSX.Element;
+ title: JSX.Element;
+ description?: JSX.Element;
+ initialFocusEl?: () => HTMLElement | null;
+};
+
+export function Dialog(props: Props) {
+ return (
+
+ } />
+
+
+
+
+
+
+ {props.title}
+
+ {props.description && (
+
+ {props.description}
+
+ )}
+
+
+ x
+
+
+ {props.children}
+
+
+
+ );
+}
diff --git a/app/src/components/DidChip.tsx b/app/src/components/DidChip.tsx
new file mode 100644
index 0000000..2b3bf3d
--- /dev/null
+++ b/app/src/components/DidChip.tsx
@@ -0,0 +1,40 @@
+import type { Did } from "@atcute/lexicons";
+import { createSignal } from "solid-js";
+
+type Props = {
+ did: Did;
+ class?: string;
+};
+
+function shortDid(did: Did): string {
+ if (did.length <= 20) return did;
+ return did.slice(0, 10) + "…" + did.slice(-6);
+}
+
+export function DidChip(props: Props) {
+ const [copied, setCopied] = createSignal(false);
+
+ const copy = () => {
+ void navigator.clipboard.writeText(props.did);
+ setCopied(true);
+ setTimeout(() => setCopied(false), 1500);
+ };
+
+ return (
+
+ );
+}
diff --git a/app/src/components/FormError.tsx b/app/src/components/FormError.tsx
new file mode 100644
index 0000000..9ef4939
--- /dev/null
+++ b/app/src/components/FormError.tsx
@@ -0,0 +1,35 @@
+import type { AnyFieldApi } from "@tanstack/solid-form";
+import { Show, splitProps } from "solid-js";
+import type { JSX } from "solid-js/jsx-runtime";
+
+type Props = {
+ id: string;
+ field: AnyFieldApi;
+} & Omit, "children" | "id">;
+
+export function FormError(props: Props) {
+ const [customProps, classProp, restProps] = splitProps(
+ props,
+ ["id", "field"],
+ ["class"],
+ );
+
+ return (
+
+ {(first) => {
+ const err = first();
+ return (
+
+ {typeof err === "string" ? err : err.message}
+
+ );
+ }}
+
+ );
+}
diff --git a/app/src/components/HandleChip.tsx b/app/src/components/HandleChip.tsx
new file mode 100644
index 0000000..20ee539
--- /dev/null
+++ b/app/src/components/HandleChip.tsx
@@ -0,0 +1,51 @@
+import { Client, simpleFetchHandler } from "@atcute/client";
+import type { Did } from "@atcute/lexicons";
+import { createQuery, queryOptions } from "@tanstack/solid-query";
+import { Show } from "solid-js";
+
+import { DidChip } from "./DidChip";
+
+export async function resolveBskyProfile(did: Did) {
+ const rpc = new Client({
+ handler: simpleFetchHandler({ service: "https://public.api.bsky.app" }),
+ });
+ const res = await rpc.get("app.bsky.actor.getProfile", {
+ params: { actor: did },
+ });
+ if (!res.ok) return null;
+ return res.data;
+}
+
+export const profileQueryOptions = (did: Did) =>
+ queryOptions({
+ queryKey: ["bsky", "profile", did],
+ queryFn: () => resolveBskyProfile(did),
+ staleTime: Infinity,
+ });
+
+type Props = {
+ did: Did;
+ class?: string;
+};
+
+export function HandleChip(props: Props) {
+ const query = createQuery(() => profileQueryOptions(props.did));
+ const baseClass = () => `font-mono text-zinc-500 ${props.class ?? ""}`;
+
+ return (
+ }
+ >
+ {(data) => (
+
+ @{data().handle}
+
+ )}
+
+ );
+}
diff --git a/app/src/env.d.ts b/app/src/env.d.ts
new file mode 100644
index 0000000..e68577b
--- /dev/null
+++ b/app/src/env.d.ts
@@ -0,0 +1,2 @@
+///
+///
diff --git a/app/src/oauth_metadata.ts b/app/src/oauth_metadata.ts
new file mode 100644
index 0000000..3f81e64
--- /dev/null
+++ b/app/src/oauth_metadata.ts
@@ -0,0 +1,18 @@
+const baseUrl = import.meta.env?.VITE_BASE_URL || "http://127.0.0.1:5173";
+
+export const OAUTH_SCOPE = "atproto repo:sh.tangled.repo";
+const redirect_uri = baseUrl;
+const client_id = import.meta.env?.DEV
+ ? `http://localhost?redirect_uri=${encodeURIComponent(redirect_uri)}&scope=${encodeURIComponent(OAUTH_SCOPE)}`
+ : `${baseUrl}/oauth-client-metadata.json`;
+
+export const OAUTH_CLIENT_METADATA = {
+ client_id,
+ client_uri: baseUrl,
+ redirect_uris: [redirect_uri],
+ scope: OAUTH_SCOPE,
+ application_type: "web",
+ token_endpoint_auth_method: "none",
+ grant_types: ["authorization_code"],
+ dpop_bound_access_tokens: true,
+};
diff --git a/app/src/session.tsx b/app/src/session.tsx
new file mode 100644
index 0000000..7ef8176
--- /dev/null
+++ b/app/src/session.tsx
@@ -0,0 +1,85 @@
+import { createContext, createResource, useContext, type JSX } from "solid-js";
+import {
+ CompositeDidDocumentResolver,
+ LocalActorResolver,
+ PlcDidDocumentResolver,
+ WebDidDocumentResolver,
+ XrpcHandleResolver,
+} from "@atcute/identity-resolver";
+import {
+ configureOAuth,
+ finalizeAuthorization,
+ getSession,
+ listStoredSessions,
+ OAuthUserAgent,
+} from "@atcute/oauth-browser-client";
+import { OAUTH_CLIENT_METADATA } from "./oauth_metadata";
+
+configureOAuth({
+ metadata: {
+ client_id: OAUTH_CLIENT_METADATA.client_id,
+ redirect_uri: OAUTH_CLIENT_METADATA.redirect_uris[0],
+ },
+ identityResolver: new LocalActorResolver({
+ handleResolver: new XrpcHandleResolver({
+ serviceUrl: "https://public.api.bsky.app",
+ }),
+ didDocumentResolver: new CompositeDidDocumentResolver({
+ methods: {
+ plc: new PlcDidDocumentResolver(),
+ web: new WebDidDocumentResolver(),
+ },
+ }),
+ }),
+});
+
+async function initSession(): Promise {
+ if (location.hash.startsWith("#")) {
+ const params = new URLSearchParams(location.hash.slice(1));
+ if (params.has("code")) {
+ history.replaceState(null, "", location.pathname + location.search);
+ const { session } = await finalizeAuthorization(params);
+ return new OAuthUserAgent(session);
+ }
+ }
+
+ const stored = listStoredSessions();
+ if (stored.length > 0) {
+ const session = await getSession(stored[0], { allowStale: true });
+ return new OAuthUserAgent(session);
+ }
+
+ return null;
+}
+
+type SessionContextValue = {
+ agent: () => OAuthUserAgent | null;
+ isPending: () => boolean;
+ signOut: () => Promise;
+};
+
+const SessionContext = createContext();
+
+export function SessionProvider(props: { children: JSX.Element }) {
+ const [_agent, { refetch }] = createResource(initSession);
+
+ const agent = () => _agent() ?? null;
+ const isPending = () => _agent.loading;
+
+ const signOut = async () => {
+ await _agent()?.signOut();
+ refetch();
+ };
+
+ return (
+
+ {props.children}
+
+ );
+}
+
+export const useSession = (): SessionContextValue => {
+ const ctx = useContext(SessionContext);
+ if (!ctx) throw new Error("useSession must be used within SessionProvider");
+ return ctx;
+};
diff --git a/app/tsconfig.json b/app/tsconfig.json
index 8b4ebee..452eeb2 100644
--- a/app/tsconfig.json
+++ b/app/tsconfig.json
@@ -4,6 +4,7 @@
"jsx": "preserve",
"jsxImportSource": "solid-js",
"target": "ESNext",
+ "allowImportingTsExtensions": true,
// Modules
"allowSyntheticDefaultImports": true,
@@ -15,6 +16,6 @@
// Type Checking & Safety
"strict": true,
- "types": ["vite/client"]
- }
+ "types": ["vite/client"],
+ },
}
diff --git a/app/vite.config.ts b/app/vite.config.ts
index 3404f89..9d93095 100644
--- a/app/vite.config.ts
+++ b/app/vite.config.ts
@@ -6,7 +6,9 @@ import devtools from "solid-devtools/vite";
export default defineConfig({
plugins: [devtools(), solidPlugin(), tailwindcss()],
server: {
- port: 3000,
+ // for OAuth, "localhost" hostname is not allowed (RFC 8252)
+ host: "127.0.0.1",
+ // forwardConsole: true,
},
build: {
target: "esnext",
diff --git a/crates/knotty-web/src/lib.rs b/crates/knotty-web/src/lib.rs
index 83bc8cb..fcc273c 100644
--- a/crates/knotty-web/src/lib.rs
+++ b/crates/knotty-web/src/lib.rs
@@ -30,11 +30,10 @@ where
}
pub fn router() -> Router {
- Asset::iter().fold(
- Router::new().route("/", get(|| async { StaticFile("index.html") })),
- |router, file| {
+ Asset::iter()
+ .fold(Router::new(), |router, file| {
tracing::info!(file = %file, "serving static file");
router.route(&format!("/{file}"), get(|| async { StaticFile(file) }))
- },
- )
+ })
+ .route("/", get(|| async { StaticFile("index.html") }))
}
diff --git a/package.json b/package.json
index b689c2b..f0a06a3 100644
--- a/package.json
+++ b/package.json
@@ -19,5 +19,8 @@
"version": "11.5.1",
"onFail": "download"
}
+ },
+ "dependencies": {
+ "@types/node": "^25.9.2"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c757f60..a6f6e18 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -206,6 +206,10 @@ settings:
importers:
.:
+ dependencies:
+ '@types/node':
+ specifier: ^25.9.2
+ version: 25.9.2
devDependencies:
node:
specifier: runtime:26.3.0
@@ -213,31 +217,129 @@ importers:
app:
dependencies:
- solid-js:
- specifier: ^1.9.5
- version: 1.9.13
- devDependencies:
+ '@ark-ui/solid':
+ specifier: ^5.37.1
+ version: 5.37.1(solid-js@1.9.13)
+ '@atcute/bluesky':
+ specifier: ^4.0.6
+ version: 4.0.6(@atcute/lexicons@2.0.0)
+ '@atcute/client':
+ specifier: ^5.0.0
+ version: 5.0.0(@atcute/lexicons@2.0.0)(typescript@5.9.3)
+ '@atcute/identity-resolver':
+ specifier: ^2.0.0
+ version: 2.0.0(@atcute/identity@2.0.0(@atcute/lexicons@2.0.0)(typescript@5.9.3))(@atcute/lexicons@2.0.0)(typescript@5.9.3)
+ '@atcute/lexicons':
+ specifier: ^2.0.0
+ version: 2.0.0
+ '@atcute/oauth-browser-client':
+ specifier: ^4.0.0
+ version: 4.0.0(@atcute/identity-resolver@2.0.0(@atcute/identity@2.0.0(@atcute/lexicons@2.0.0)(typescript@5.9.3))(@atcute/lexicons@2.0.0)(typescript@5.9.3))(@atcute/lexicons@2.0.0)(typescript@5.9.3)
+ '@atcute/tangled':
+ specifier: ^2.0.5
+ version: 2.0.5(@atcute/lexicons@2.0.0)
'@tailwindcss/vite':
specifier: ^4.3.0
- version: 4.3.0(vite@7.3.5(jiti@2.7.0)(lightningcss@1.32.0))
+ version: 4.3.0(vite@7.3.5(@types/node@25.9.2)(jiti@2.7.0)(lightningcss@1.32.0))
+ '@tanstack/solid-form':
+ specifier: ^1.33.0
+ version: 1.33.0(solid-js@1.9.13)
+ '@tanstack/solid-query':
+ specifier: ^5.101.0
+ version: 5.101.0(solid-js@1.9.13)
+ lucide-solid:
+ specifier: ^1.17.0
+ version: 1.17.0(solid-js@1.9.13)
solid-devtools:
specifier: ^0.34.3
- version: 0.34.5(solid-js@1.9.13)(vite@7.3.5(jiti@2.7.0)(lightningcss@1.32.0))
+ version: 0.34.5(solid-js@1.9.13)(vite@7.3.5(@types/node@25.9.2)(jiti@2.7.0)(lightningcss@1.32.0))
+ solid-js:
+ specifier: ^1.9.5
+ version: 1.9.13
tailwindcss:
specifier: ^4.1.13
version: 4.3.0
typescript:
specifier: ^5.9.2
version: 5.9.3
+ valibot:
+ specifier: ^1.4.1
+ version: 1.4.1(typescript@5.9.3)
vite:
specifier: ^7.1.4
- version: 7.3.5(jiti@2.7.0)(lightningcss@1.32.0)
+ version: 7.3.5(@types/node@25.9.2)(jiti@2.7.0)(lightningcss@1.32.0)
vite-plugin-solid:
specifier: ^2.11.8
- version: 2.11.12(solid-js@1.9.13)(vite@7.3.5(jiti@2.7.0)(lightningcss@1.32.0))
+ version: 2.11.12(solid-js@1.9.13)(vite@7.3.5(@types/node@25.9.2)(jiti@2.7.0)(lightningcss@1.32.0))
packages:
+ '@ark-ui/solid@5.37.1':
+ resolution: {integrity: sha512-0/X+mcQyFbbfICmd4LMUR/bR45f1WOmlXFzYCBNU8AQLidCu8Sd6UFdjSOuXwjgenkYRYHOqxXW2vvzNQxg7XQ==}
+ peerDependencies:
+ solid-js: '>=1.6.0'
+
+ '@atcute/atproto@4.0.2':
+ resolution: {integrity: sha512-hLnvjiIOStpdUm0cEN+R5YydvbV0d6ap17Iv+t7i/nhSCN3TGMya7M0ftCWtCo+xoQ1EU6HK74R8jqXWlyrM0w==}
+ peerDependencies:
+ '@atcute/lexicons': ^2.0.0
+
+ '@atcute/bluesky@4.0.6':
+ resolution: {integrity: sha512-h0q6cSkil85MpISJ958fFbEhMWBaiujEwOSmgF7iz+Y8ZeZGHycOD2mjXaQ1CnpHb3yWul6nn8rBwRRrGE3RsA==}
+ peerDependencies:
+ '@atcute/lexicons': ^2.0.0
+
+ '@atcute/client@5.0.0':
+ resolution: {integrity: sha512-Dtrc1no1oAtpUTmkBxH0xKSgy8qcnk8orPf/PkEATW+MB3k8FPHtPH2fshiKd55rioZkb+xaN+7A29WtqPQHRA==}
+ peerDependencies:
+ '@atcute/lexicons': ^2.0.0
+
+ '@atcute/identity-resolver@2.0.0':
+ resolution: {integrity: sha512-IKg1BDQAF2bIdN10DL6KAXmTjK+3enTU2IRbuani9TsFahBwGZ7O5FiVmTiL6QlGfauGNW5S0xNCOxWXWMoR2Q==}
+ peerDependencies:
+ '@atcute/identity': ^2.0.0
+ '@atcute/lexicons': ^2.0.0
+
+ '@atcute/identity@2.0.0':
+ resolution: {integrity: sha512-YXFsggO7eJYifqkN85+kUXJE2a1iI9AyuzPTDjtS/4WE1Zs1/XiPkWmwZlAgtp+pYhVtjm3mJqy/h/mZ0OnIVw==}
+ peerDependencies:
+ '@atcute/lexicons': ^2.0.0
+
+ '@atcute/lexicons@2.0.0':
+ resolution: {integrity: sha512-fIlwP+TPEAGoF5aU5s+f8N5sOjOu8Mww/sQL1B57Dp2hj3G/EWG9XwOHPokzycBCgXx+UxIIrzZCGy8whsVDZw==}
+
+ '@atcute/multibase@1.2.0':
+ resolution: {integrity: sha512-ZK2GRra+qIYq9nNuQB52m2ul0hOmCQEtPobGfTSUxm7pF0OGEkWGkWHugFhNEDVzHzTwPxHp6VGotdZFue4lYQ==}
+
+ '@atcute/oauth-browser-client@4.0.0':
+ resolution: {integrity: sha512-rvxmRcA6WOZz5TfcKp1kVtxUioogMzQH5OdCrW3Fm+ldEPPe2ZEyP7x1PzRWo6Es3F8lm4Q7BCJJgJFkQp2a5Q==}
+ peerDependencies:
+ '@atcute/identity-resolver': ^2.0.0
+ '@atcute/lexicons': ^2.0.0
+
+ '@atcute/oauth-crypto@1.0.0':
+ resolution: {integrity: sha512-2UC1msk4PyUArk/5Pl8zgtz1T8O+LZdFfB8ENLHjQVYitpqzGj2ZpDJaWZvCF3Y8lly4KoeUHLpFPDzbP+3u+g==}
+
+ '@atcute/oauth-keyset@0.1.1':
+ resolution: {integrity: sha512-BpaaXSuMawxILhWTOR0YIpKzFSA0MQC1W5Hn0HGE+giTqYFAKcdf0oA+2RZG9ZLVIzfO2txBsTeMpxB5qL6lEQ==}
+
+ '@atcute/oauth-types@1.0.0':
+ resolution: {integrity: sha512-YOpjLU8H5PG6oKfgau+dx7rSmGsLxIA36MeGL7BDeopcyq80RqPSBAzOasEEsmbMRJ/nTsMRJhnmGkp3RCa/Zw==}
+
+ '@atcute/tangled@2.0.5':
+ resolution: {integrity: sha512-HMWpFd4ePUaV4t7e8Mn/Gq4T3Qw9Xki4SGHhS1RoXQer7mIbdhwJzXpbJGTL/Cg8ipTPpVINIDtq3sWyetCjHA==}
+ peerDependencies:
+ '@atcute/lexicons': ^2.0.0
+
+ '@atcute/uint8array@1.1.2':
+ resolution: {integrity: sha512-n+lutnbN9mKzSjSVdfsYfzJ40u2971H+iLSL46D6d7zcrA4delxusf/ftGFvj5oGW03OioaFgQOy3Lqa3JmTeA==}
+
+ '@atcute/util-fetch@2.0.0':
+ resolution: {integrity: sha512-v+4aFQ/tuBqTV+URDJaFgm3mASWdglKXiPaGutJ1bs7QtQKmPZeesPY5MzW/a+MtI8GWCEJk8X9wOfalPOFSlg==}
+
+ '@atcute/util-text@1.3.1':
+ resolution: {integrity: sha512-MRgJXkx67znuBXuoAYCJkBZyd3OApL7zZlNf5kXhuoCXcdiu1nblRDycYTADSkym4epBSQWxh26kmI9sewaq6A==}
+
'@babel/code-frame@7.29.7':
resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==}
engines: {node: '>=6.9.0'}
@@ -481,6 +583,21 @@ packages:
cpu: [x64]
os: [win32]
+ '@floating-ui/core@1.7.5':
+ resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==}
+
+ '@floating-ui/dom@1.7.6':
+ resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==}
+
+ '@floating-ui/utils@0.2.11':
+ resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==}
+
+ '@internationalized/date@3.12.2':
+ resolution: {integrity: sha512-FY1Y+H64NDs+HAF6omlnWxm3mEpfgaCSWtL5l551ZZfImA+kGjPFgrnJrGjH6lfmLL0g8Z/mBu1R3kufeCp6Jw==}
+
+ '@internationalized/number@3.6.6':
+ resolution: {integrity: sha512-iFgmQaXHE0vytNfpLZWOC2mEJCBRzcUxt53Xf/yCXG93lRvqas237i3r7X4RKMwO3txiyZD4mQjKAByFv6UGSQ==}
+
'@jridgewell/gen-mapping@0.3.13':
resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
@@ -663,6 +780,11 @@ packages:
peerDependencies:
solid-js: ^1.6.12
+ '@solid-primitives/keyed@1.5.3':
+ resolution: {integrity: sha512-zNadtyYBhJSOjXtogkGHmRxjGdz9KHc8sGGVAGlUABkE8BED2tbIZoxkwSqzOwde8OcUEH0bb5DLZUWIMvyBSA==}
+ peerDependencies:
+ solid-js: ^1.6.12
+
'@solid-primitives/media@2.3.5':
resolution: {integrity: sha512-LX9fB5WDaK87FMDtUB1qokBOfT2et9Uobv/zZaKLH9caFSz4+P70MBKEIBHcZQy+9MV5M2XvGYLTbLskjkzMjA==}
peerDependencies:
@@ -703,6 +825,12 @@ packages:
peerDependencies:
solid-js: ^1.6.12
+ '@standard-schema/spec@1.1.0':
+ resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==}
+
+ '@swc/helpers@0.5.23':
+ resolution: {integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==}
+
'@tailwindcss/node@4.3.0':
resolution: {integrity: sha512-aFb4gUhFOgdh9AXo4IzBEOzBkkAxm9VigwDJnMIYv3lcfXCJVesNfbEaBl4BNgVRyid92AmdviqwBUBRKSeY3g==}
@@ -797,6 +925,39 @@ packages:
peerDependencies:
vite: ^5.2.0 || ^6 || ^7 || ^8
+ '@tanstack/devtools-event-client@0.4.3':
+ resolution: {integrity: sha512-OZI6QyULw0FI0wjgmeYzCIfbgPsOEzwJtCpa69XrfLMtNXLGnz3d/dIabk7frg0TmHo+Ah49w5I4KC7Tufwsvw==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ '@tanstack/form-core@1.33.0':
+ resolution: {integrity: sha512-AV4Pw9Dk4orFsuPBcDssfWMJFs+yMYBae7zZ4oTqrCf4ftNGQKxvrQRZeqKHG6A4TkiLeSvf2kzIjcVkrW7E6w==}
+
+ '@tanstack/pacer-lite@0.1.1':
+ resolution: {integrity: sha512-y/xtNPNt/YeyoVxE/JCx+T7yjEzpezmbb+toK8DDD1P4m7Kzs5YR956+7OKexG3f8aXgC3rLZl7b1V+yNUSy5w==}
+ engines: {node: '>=18'}
+
+ '@tanstack/query-core@5.101.0':
+ resolution: {integrity: sha512-cQetA74EB+seWySv1TTKr828TnP0u39m6LykwDXIo84SNortpDkp30TMEjkqtYCNP9c40uT/iwl6MLiufEt0Ow==}
+
+ '@tanstack/solid-form@1.33.0':
+ resolution: {integrity: sha512-+KXp+T/fD+nO5JarDj1W5GctEm4aFuz13DkHVJrdIHGo0evMXlFNWJT57n+TOyvoLoKehknKjM1o41rrKClSTQ==}
+ peerDependencies:
+ solid-js: '>=1.9.9'
+
+ '@tanstack/solid-query@5.101.0':
+ resolution: {integrity: sha512-XoPWynbaWquvSisMvUirakfD9OmLas1cOwt1gBDUTn8HC2CVkZm+O/jBgEa5SL5LrY6vxmWjzzskhXkywLfymw==}
+ peerDependencies:
+ solid-js: ^1.6.0
+
+ '@tanstack/solid-store@0.11.0':
+ resolution: {integrity: sha512-2isL0ZnnyI1iN0V+QPrxE3OcPndohBgVlBcHZYoAOIAiU1WoWjVy0q5gb0suPu1Id0h5cKC23JnwzQTxWDZD0w==}
+ peerDependencies:
+ solid-js: ^1.6.0
+
+ '@tanstack/store@0.11.0':
+ resolution: {integrity: sha512-WlzzCt3xi0G6pCAJu1U+2jiECwabETDpQDi3hfkFZvJii9AuZqEKbOiVarX1/bWhTNjU486yQtJCCasi/0q+Cw==}
+
'@types/babel__core@7.20.5':
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
@@ -812,6 +973,242 @@ packages:
'@types/estree@1.0.9':
resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
+ '@types/node@25.9.2':
+ resolution: {integrity: sha512-G05zqtJhcDLb8uslf5EjCxXg9G1KQxiV8OS0R26IC//Eoyitzqe8z37I7cqvnZlrlSfgocQRfSn/AHBZJJFyGw==}
+
+ '@zag-js/accordion@1.41.2':
+ resolution: {integrity: sha512-7G//V7svGGT8k5avw7bbQvbRC0Q/9QtX51b4iyAB1alR9E5mFd6Ch8q4njwcXClMQ7xePS3jUfVnzVGiRInEiQ==}
+
+ '@zag-js/anatomy@1.41.2':
+ resolution: {integrity: sha512-Fm9hqdrvaCzCsdcf19G8WZxYtHElKltkGHdhqMEt4XU+ULTr1DK7KbOtDDv9J27CuzqSLALUz5QfRjPftoKHwg==}
+
+ '@zag-js/angle-slider@1.41.2':
+ resolution: {integrity: sha512-+7bZHAZx0MEbjTMr2tD+meFJ0EJwFfUEcTqmdLzFGr/ySAMCWlcadDBz+ZmrSn03aKLps8FxliVLzsFJNgUqIQ==}
+
+ '@zag-js/aria-hidden@1.41.2':
+ resolution: {integrity: sha512-qEcYmwlQr3qjA0T/IZ5a/o7fRUxfQ14tXjAFhR3GXCtxBKaqS+wnq/LN09Xw4bin3QWTINU+Z0oXFs9spWtNwA==}
+
+ '@zag-js/async-list@1.41.2':
+ resolution: {integrity: sha512-NZZEIGFdeDp2uHjsLVegLAGJOYGwI9HPJI1V2c/P1TQmfmrfWyWELAvnnW4kWYVUKYD9TxKQkm6LvqpHrQzgfQ==}
+
+ '@zag-js/auto-resize@1.41.2':
+ resolution: {integrity: sha512-CYq+JQ1TTkEiK7OcNcMTS0f4wFvtmManvUltije5o50gDQ7vFYA81oQh4A9pAB1keUi9Zv06CNefFARaTcne5w==}
+
+ '@zag-js/avatar@1.41.2':
+ resolution: {integrity: sha512-+4K0tRtIQysMGuERh5JRmn46uq7gJ6IjJd5DKj74VBtVVY8T6HGk0D0DZxmOIgADHP1qSvowLDoOX8kUyBHarQ==}
+
+ '@zag-js/carousel@1.41.2':
+ resolution: {integrity: sha512-H6sDxyWIzkvtHN4M/BYvFy7pi8j+kLEtfPZvgNl2+gRnfAHVK9/XqpoUsjw1DAo5Fh25pPuaTnh52Kml9OK0iA==}
+
+ '@zag-js/cascade-select@1.41.2':
+ resolution: {integrity: sha512-dBByZmIAJU/B+YIAzczng05lCJXEwEm4df6GmUZtioKHZdeN+WEKUP4qzFDFZdytXympGfJCIBvtgf87gACYVQ==}
+
+ '@zag-js/checkbox@1.41.2':
+ resolution: {integrity: sha512-aQ5dZWHUHRIw4cbLtzrR+dc8M0N6wSiiCml/zbU3ciHOTBXSrs2rKnp/L99xhi97Lj2uCEhpIZ704Ou/MjGuCg==}
+
+ '@zag-js/clipboard@1.41.2':
+ resolution: {integrity: sha512-FM+PNGEeY+YpF1dVr9d8kg3DQM66LRnkR4Mva1oprqnrCXTYWj+k7uig893ubSG2xw1GO5b/WJd27kSmNoKnmw==}
+
+ '@zag-js/collapsible@1.41.2':
+ resolution: {integrity: sha512-uMIp4rqd3iI6VFPMAOcbu9dh9WV4l85nNPYQiBtMKRHgbkfaZdfzF+E+NX3KquIeHW6JiBFUiIyCU0Sf2Cscdw==}
+
+ '@zag-js/collection@1.41.2':
+ resolution: {integrity: sha512-ZZWuvfPZI8ccWd4aLpuU47k1jSc9eO+F3FM3iBJuvgegCH6g3+HDEwGN6wdePHnYfv7zyIKCGKr816zXcIWQbw==}
+
+ '@zag-js/color-picker@1.41.2':
+ resolution: {integrity: sha512-UynyJ/bTBeSlq6ziHr9GVrFycDjVxfLFIb8Aivu/XvihrAAvkhXUxwy+1ax+hj7peGlTY590xoQAvQixV+McBA==}
+
+ '@zag-js/color-utils@1.41.2':
+ resolution: {integrity: sha512-Lsi5c2ztGZqud0oeDtAn3xFhgrYMaeaz1zi4p+mr0zXOuQNuZzfsrJ0stQ45s8L/xT8UJtGhYyEVy1+xjE4ARA==}
+
+ '@zag-js/combobox@1.41.2':
+ resolution: {integrity: sha512-V9jQteyQHs8ZNQx/FcA98P1NVZas/yjiW1V7s4L+h8MnRS3AK97+FAHAT83KCiZ34/vkpLF6ZEHI2zkcQpNXcg==}
+
+ '@zag-js/core@1.41.2':
+ resolution: {integrity: sha512-xXTN3zKwOtMI4+5dG2cG+T1B4WR3X9alXiYaPJKaGd4N2eYRj9JEPte3Hv9gtFm+RM0b9VIwksHEg25rqE4apw==}
+
+ '@zag-js/date-input@1.41.2':
+ resolution: {integrity: sha512-J8PdpEpM9TBxZBEE8/Nxi39LNJOZY7lilTbgcDABR5uiviZUk5++5GSdUTspcjFUIXx5SvqmdCk2RF7hsUEHVQ==}
+ peerDependencies:
+ '@internationalized/date': '>=3.0.0'
+
+ '@zag-js/date-picker@1.41.2':
+ resolution: {integrity: sha512-j9LaznCV4QCfrq/y/mNAN9XgIRFFg+414TxGT4TK8mfWouIaFvxEoKdGP0l/LL4DFv1NRDaRdSBBcw3eXtMVnA==}
+ peerDependencies:
+ '@internationalized/date': '>=3.0.0'
+
+ '@zag-js/date-utils@1.41.2':
+ resolution: {integrity: sha512-jdcWLa5fYLTsvGWJkx4v/9Hzqf6UHdvJDeP6NxHpwoEmzYy7+AghYKBNSnRrJIBCQJgl1vM9OkpMvYrLNHr9jw==}
+ peerDependencies:
+ '@internationalized/date': '>=3.0.0'
+
+ '@zag-js/dialog@1.41.2':
+ resolution: {integrity: sha512-t1N72snpFGiKj7cg2PivPdsy+X1YdgXPv7bzovpqjMLy0kN+gYTPoV1Iy/hQA+g021dz9XGgXzkDuU45sJqsFA==}
+
+ '@zag-js/dismissable@1.41.2':
+ resolution: {integrity: sha512-hO/tFhRZ7S+LOOljGOQJIubbc3MXg41+iWR1yUXKl76cAenbxaCit1LZmUCwQPvRN0GndK6bDQo5ETjHZz/k7A==}
+
+ '@zag-js/dom-query@1.41.2':
+ resolution: {integrity: sha512-+eBk1nlJA312mNmY/GSThLRwcCRqMIL+A1pLsWvTlQLQjmH1/UxoAuv6l2yvRCT33XmC8FBlBIKnXhOCpDvIZA==}
+
+ '@zag-js/drawer@1.41.2':
+ resolution: {integrity: sha512-aJql6L0cfHd1wXbemfLcNnjqTA/CbwVgQdWEVn5Qci6zhy4UJXPQeBBfxfgPgEOAbW60gL/gaaXG3d9Vx6+6oA==}
+
+ '@zag-js/editable@1.41.2':
+ resolution: {integrity: sha512-loTM1lrHBBqYfR8SJZrYayVdWHMpXCLVir+aDTQ8/d4bb/Gfl/L8CJNs3BRj3yt9zvLoWTLO+4LOY3hLyQSR2w==}
+
+ '@zag-js/file-upload@1.41.2':
+ resolution: {integrity: sha512-WFwIaKvHpCUjyYMvp42VoydT1WIP5DhDlpmG/nrF4i0ro7pLGb1A4dvyBrAfGcozCB88yR1y1iZKPDY1I9/uUw==}
+
+ '@zag-js/file-utils@1.41.2':
+ resolution: {integrity: sha512-Ih+8ULbId0M+CFR4IsqG5y/0VLCk2l+1rgPH+21L40dlSB6z6qKSP2tG7W69Cj2/3vryZsn67ibn26iCPG/vOw==}
+
+ '@zag-js/floating-panel@1.41.2':
+ resolution: {integrity: sha512-nJP3oZ4YrJh+7H5YdwNccSzPGXFqjQN1ujZ/xGDhegjz4XtL48QMFnAasxlRI8VGjse9Tj8VXlQZxXPrASGzlA==}
+
+ '@zag-js/focus-trap@1.41.2':
+ resolution: {integrity: sha512-3QTtGUjFU2OLbyrDlyoYWvKZecCmtn/+bsfsHW159jJHiEGHVYK6CY8AI1ePsMk9gVay48bXh008j+lVli7gAw==}
+
+ '@zag-js/focus-visible@1.41.2':
+ resolution: {integrity: sha512-oRjwtgafUdGVwLJUN6mKsnBQbez/CHYAPkPg1FxOnr5GFpEpr8oMTOZJ3wdPM2U1ynS9QnUUu/sXc3KQv/jX0Q==}
+
+ '@zag-js/highlight-word@1.41.2':
+ resolution: {integrity: sha512-95zcZKqNrL7JlqAckfzHa+LRbnfoz1lj6skUhq/uHSnni1vH6+8fNWT8ruo9G7vpGopbyRmmcie5p41SbAwQjQ==}
+
+ '@zag-js/hover-card@1.41.2':
+ resolution: {integrity: sha512-Xn9RVzgTkKaVzyJTDdBJiXmCleNi1/hmW8z73tC0vOiQvSSvPejg/JkzqTOLFODvQHK3NOw54QHZvmjYp9Mubw==}
+
+ '@zag-js/i18n-utils@1.41.2':
+ resolution: {integrity: sha512-f1xqaEY79awBxgUyjFso0UEpIoEHZq+zRvB0nUVFHJRW7Ds/QhaFHKSRnf2QBTlP/ObvCT225R+piNAAc17Aaw==}
+
+ '@zag-js/image-cropper@1.41.2':
+ resolution: {integrity: sha512-750aT4U+J/TJw/Z1QVoLU9JG0luCtf9CyvShtJFIxeS+i25aUoBI9pOKgSFABsOutIqNJTPq4gYpqtuxFjSxRw==}
+
+ '@zag-js/interact-outside@1.41.2':
+ resolution: {integrity: sha512-dM4Fn9iyqQeqkCMRYZP+bAgWEPKRVQRqMmcPsN0OXBhhFKC31Em15LTIZXaOtVKAjH+iwx+UvSYFRiWwEjkOEA==}
+
+ '@zag-js/json-tree-utils@1.41.2':
+ resolution: {integrity: sha512-gNaOzsbCwmTd2HM3/u0xQdWX5UDBfl8tCXFavzbamkFH0iYQOXJb7cqUXBVuI4KScIbHPCKwrzZjqA5Sg9qzAQ==}
+
+ '@zag-js/listbox@1.41.2':
+ resolution: {integrity: sha512-iDGrZleP3ui2Q6Jgmr9RYlbd7njdJHs8Qb3IJrSIZBIeYyYmFvVUfAFjk0g/z/amjTx6uYxRASWSPy/RETd4ug==}
+
+ '@zag-js/live-region@1.41.2':
+ resolution: {integrity: sha512-7ubIW5AQt1wx9S/gFN+rU4TyvuFWJrL/DhnDWPNlH5g3luDVHSNeYGeeqf4d4tkcibtpYZa0pg9CbXxRxrfwVA==}
+
+ '@zag-js/marquee@1.41.2':
+ resolution: {integrity: sha512-cT77aMhrtAK3oe2O6+X3TLtQs8wupdPUtZgHMWVxCcQOwagrk7RUBEQwU3Cx7cTswpBdTKSuDYgUggfgCs96wg==}
+
+ '@zag-js/menu@1.41.2':
+ resolution: {integrity: sha512-wwix8hcAUSi0scpWXCiDppfdZV01Za8nN0gqLt9GdhCiVSlr0rs9pK1ROgPKJTyc43UZfyFPqtTWVHvEHMM70w==}
+
+ '@zag-js/navigation-menu@1.41.2':
+ resolution: {integrity: sha512-aROB9CHzskZpnoFuGFkp7dbkZdsXvp2nxQgsgld02I1sDqiwcQd+YMdB0/6Ik0oz6X8I70RKdUuQM9WQFQfDnA==}
+
+ '@zag-js/number-input@1.41.2':
+ resolution: {integrity: sha512-QoQWCiVHO+ciUbq8uL8Kxhtk4o3UpwzYpJkfsOfitzsZoYpPc7V/A6+n5yABV2SOwpqBODwNASZdxiEa60kfow==}
+
+ '@zag-js/pagination@1.41.2':
+ resolution: {integrity: sha512-vZTxz4DrIDfedMcTjDeEkOc1iXD9wkP8eKuEcDieHOodnjSnNNwtmoFw5DCWv+yEa/TByIamXBZ8ZxHY144JgA==}
+
+ '@zag-js/password-input@1.41.2':
+ resolution: {integrity: sha512-OWKFl0S12Qnlf4R4WbMCJ/YU0kGfezm5tP0UiyubMO/Fixv6H0twDFaJSPg2F6POv5uomCcGubc1H7gO+fIhsQ==}
+
+ '@zag-js/pin-input@1.41.2':
+ resolution: {integrity: sha512-Wrn3YDbmWL3qvUIzN4QyLO7PzEhunX7z8DwBpmrK04p7HxR9pniTLVIPk27xk2MzyAPYcl4mwd9/Mc88tBxHsg==}
+
+ '@zag-js/popover@1.41.2':
+ resolution: {integrity: sha512-h/LlVMIERM+NWzYV0ZHURlJuaqkT8XxwyEV96XfVzjknDRFNoPSl5IttVYtoaPoUqC0p/Y4oTSiee4mUZKOLHw==}
+
+ '@zag-js/popper@1.41.2':
+ resolution: {integrity: sha512-Iz4D5YAIiIPn4IHGjhX3QatR/RyGaDt43lBSZv0RYcPQYtFg9sUuek3wizjW9qXgdvItevvNMqRdpl7f3es09g==}
+
+ '@zag-js/presence@1.41.2':
+ resolution: {integrity: sha512-OhOLPAf/DYPmgoEntrlrf3LOrkwA+Y0J3K03NXHXPnkRB7h8jyIbHqzHS0jRTb1pvsO2P/yowRyoYtptY2Zmog==}
+
+ '@zag-js/progress@1.41.2':
+ resolution: {integrity: sha512-SnzrqN+Z568NoO4rrgjrIc/S4EXMEne5CDgWwt2kQ8yq9VysdH8TtHAjyciFRIio7cdgEZNHKw9jSccpMWgRwA==}
+
+ '@zag-js/qr-code@1.41.2':
+ resolution: {integrity: sha512-+JLswCNnzf58aQTaX0SMUA9wRC8Hb/a/ZveJIXTz6853Siemay2HqOqB2WQIeF33HNldUFD/a4+4Q8ugg93ubA==}
+
+ '@zag-js/radio-group@1.41.2':
+ resolution: {integrity: sha512-EZjos61jKHZlNw8ez80vG2T9gUwpooxcVpYOKS2hyhuEXn3wEoefS5v1WFbmpoA/8TUpUQnYxisAeNuQfEQCuQ==}
+
+ '@zag-js/rating-group@1.41.2':
+ resolution: {integrity: sha512-SbJP4HiK5XRy/oC3xRowjZOCThq1n/QA2Z/XAkvKLJArVQCYjrH3MoWwWvMVNfNC5+ZJluborR2AGF7tlVLzxA==}
+
+ '@zag-js/rect-utils@1.41.2':
+ resolution: {integrity: sha512-GWBTamaMLMG1p7Fe6V0dsXeTEmk+tqG3ciovzmjxURCJ3Yq2EkAMRhS0v5DG0oo+PyrPEIzEWukGBQkh/XRgYQ==}
+
+ '@zag-js/remove-scroll@1.41.2':
+ resolution: {integrity: sha512-ieIrOgPKlCikAGEBIboQJoU7oxrL5BEY670tDOu7Eg7rNOdAwGXLEKPX2A/q+lREhOiVYjx0D3//vHTvdte80Q==}
+
+ '@zag-js/scroll-area@1.41.2':
+ resolution: {integrity: sha512-hJFAwfIFuS7XmNsS3nB5rPm9OWXfB4d98sID7fjurcaZtDH5LqFriqfXhceNvs7rz7K4f/u8rufXrb6tcvATIA==}
+
+ '@zag-js/scroll-snap@1.41.2':
+ resolution: {integrity: sha512-+70Al6LSASyEZtFyyffUJlDbE88KgYJDud05z8oZTqyEOLlTqnlSNkXq/P3siO7r3sNykg9H+TmAKn+/dVSKuw==}
+
+ '@zag-js/select@1.41.2':
+ resolution: {integrity: sha512-3wGaKABILexoNBJ1bJiHqLLTctR/VMZaNA4cyKiqZeBEWtAkdMhgyY2xKobrP6KtUTqAeUFNVSTu4yCDrAQnUw==}
+
+ '@zag-js/signature-pad@1.41.2':
+ resolution: {integrity: sha512-iNrOxY4gtqhsZdXYvlhF7s+LiOvwV7/kBpNnq8tJ1oYhgTs8wvKtJHrP86/CR05irEXQTaLfmeAJZuBEys9iRA==}
+
+ '@zag-js/slider@1.41.2':
+ resolution: {integrity: sha512-mKK2BwoDbIGxAdkdKkPZJA1SHtEQt3lS9hJ6WghefYU2vyd0BXoIKvcDV3xJOzly5LXYhH5cJITn6JtGK8353A==}
+
+ '@zag-js/solid@1.41.2':
+ resolution: {integrity: sha512-EyHtNpnDcVveJIRiK9WXjGWBYBRozJUXMYmdm24mnuCgPaKgvkOEY42lEYqbgF+YgUJ8BjE67Mhby0EjcM1HEg==}
+ peerDependencies:
+ solid-js: '>=1.1.3'
+
+ '@zag-js/splitter@1.41.2':
+ resolution: {integrity: sha512-Ubp4hkmzvVysU31jCINYbBXVqruu7rEPGqugWMzeXC5Hwda648aHpbg4Jix/wRtaGLjsyh6KOVEwAmoJU9NwhQ==}
+
+ '@zag-js/steps@1.41.2':
+ resolution: {integrity: sha512-m0t2r8+FWwa2b2aU5JiNrHVdYHyNZYHK0G3Tq9lCOSQoDeoJIkyta+sIVehLVSY+0Ba9kOlkRUmYLbsnfXaW+Q==}
+
+ '@zag-js/store@1.41.2':
+ resolution: {integrity: sha512-dVZF7E1ezXzynrKhMH3rfSr2rBbCfvTjvXbXz7//1PNULuq58UU5dG93V+9l834npCZxI2+PrpY45wZLJPTsIA==}
+
+ '@zag-js/switch@1.41.2':
+ resolution: {integrity: sha512-qHbQK95UUHN0tj+bf9LLphLcMo/uTg2Pvs0c1Gs03Zh4g3NtHf0uYIhMZKYlCH0hNVlKrmdzLKWgeoDxv9gySw==}
+
+ '@zag-js/tabs@1.41.2':
+ resolution: {integrity: sha512-7YVj2mCcxRbn1wMXP9anaTOVf+J0fa5uaPScr8e4+e2xc+/1WKzqN6V8IDeKS5wV/xzi1r3Ny307sX7Xz4ZJVQ==}
+
+ '@zag-js/tags-input@1.41.2':
+ resolution: {integrity: sha512-aIPEndSO+9LHxyoXLUr0Uttxw2cYMyDuii5w50wn/N7lFJD49U3Sj+6XaB/oJSbDAwn10WrsRDtb7Gs2kmU+Qw==}
+
+ '@zag-js/timer@1.41.2':
+ resolution: {integrity: sha512-PRYLWaip0+1FeVGEMNk5wMGAAIYgBIWwulZ4U5I+2Ayjohzp2NUAfwJ3sqoYvRrfjNYUNAPdU4eGu1zetC+oVQ==}
+
+ '@zag-js/toast@1.41.2':
+ resolution: {integrity: sha512-+F3PsAo6EIz4rh73IOMCb/+FOUp7e3VjUY2q5sdU4IbfOzJBIbVSJxn0PQmHkuxkzWdCom0Lv0qSPFg/UTplnQ==}
+
+ '@zag-js/toggle-group@1.41.2':
+ resolution: {integrity: sha512-C6wn3A89h24hTs0BN9ryEuKatfR493u7QqxS06TeK9oI/KZBvm5Rwm8FPHSUJvsUTkAkow4PsXC0Ra19duzEdQ==}
+
+ '@zag-js/toggle@1.41.2':
+ resolution: {integrity: sha512-EFB9pb3pEtwXt7RSivVLWXV64dKUF8gsn75tt8TbYBgfy+zW85MsRLu8U48TXZN5teQWAKKNujr9bxQsW/CWvQ==}
+
+ '@zag-js/tooltip@1.41.2':
+ resolution: {integrity: sha512-68okWJCFXfW8r0h97kEcU2yKPkq6e0S6QkiYh09ifMXoYjrQw/shPol8PgrS1poqKJigUWtsKm+bw73abhMn3w==}
+
+ '@zag-js/tour@1.41.2':
+ resolution: {integrity: sha512-Q7UsvuHYYBo1Cs4b4OS0e/D8lxd2GpSRII93s5BQPi5HTcBjaWhVysAykmCFbat6Z56z0NBmFHNdhZ8oVPls1A==}
+
+ '@zag-js/tree-view@1.41.2':
+ resolution: {integrity: sha512-QNi0VpV+RyzF4NP72+kSleUpauF9SMAzOAe59nxvs8jAUHqV5diDCInnbQos4+cyFDXFzGq3lElot26A1yI+7Q==}
+
+ '@zag-js/types@1.41.2':
+ resolution: {integrity: sha512-L6CNvK06lIVpy0X8eG3kbDIx8Uuv+3KHElxXYSzRXSJ7/OLCv1sTRgEvnxNtdIWOrksGgxF4JtT7PXtoClGqNQ==}
+
+ '@zag-js/utils@1.41.2':
+ resolution: {integrity: sha512-Yj8FSrR7vGA6ahUhjrThfHAF+PM2Y1Yv2lkXkqZZd60mPBhixcot1+SHOfEMV63JimQcWrmQ8QbeYYMmF+ZpLQ==}
+
babel-plugin-jsx-dom-expressions@0.40.7:
resolution: {integrity: sha512-/O6JWUmjv03OI9lL2ry9bUjpD5S3PclM55RRJEyCdcFZ5W2SEA/59d+l2hNsk3gI6kiWRdRPdOtqZmsQzFN1pQ==}
peerDependencies:
@@ -878,6 +1275,9 @@ packages:
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
engines: {node: '>=6'}
+ esm-env@1.2.2:
+ resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==}
+
fdir@6.5.0:
resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
engines: {node: '>=12.0.0'}
@@ -1000,6 +1400,11 @@ packages:
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+ lucide-solid@1.17.0:
+ resolution: {integrity: sha512-CBmYwkhv+zhldhWomlaRJY18rmBUTeDxyFCNkXIqKdeYUdCgu5aMQ8dx9VAkpFRYacz1Y72oeiKND080qwJhGw==}
+ peerDependencies:
+ solid-js: ^1.4.7
+
magic-string@0.30.21:
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
@@ -1015,6 +1420,11 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
+ nanoid@5.1.11:
+ resolution: {integrity: sha512-v+KEsUv2ps74PaSKv0gHTxTCgMXOIfBEbaqa6w6ISIGC7ZsvHN4N9oJ8d4cmf0n5oTzQz2SLmThbQWhjd/8eKg==}
+ engines: {node: ^18 || >=20}
+ hasBin: true
+
node-releases@2.0.47:
resolution: {integrity: sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==}
engines: {node: '>=18'}
@@ -1143,6 +1553,9 @@ packages:
parse5@7.3.0:
resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==}
+ perfect-freehand@1.2.3:
+ resolution: {integrity: sha512-bHZSfqDHGNlPpgH2yxXgPHlQSPpEbo+qg7li0M78J9vNAi2yjwLeA4x79BEQhX44lEWpCLSFCeRZwpw0niiXPA==}
+
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
@@ -1154,6 +1567,12 @@ packages:
resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==}
engines: {node: ^10 || ^12 || >=14}
+ proxy-compare@3.0.1:
+ resolution: {integrity: sha512-V9plBAt3qjMlS1+nC8771KNf6oJ12gExvaxnNzN/9yVRLdTv/lc+oJlnSzrdYDAvBfTStPCoiaCOTmTs0adv7Q==}
+
+ proxy-memoize@3.0.1:
+ resolution: {integrity: sha512-VDdG/VYtOgdGkWJx7y0o7p+zArSf2383Isci8C+BP3YXgMYDoPd3cCBjw0JdWb6YBb9sFiOPbAADDVTPJnh+9g==}
+
rollup@4.61.1:
resolution: {integrity: sha512-I4KW6iuRpuu2uHBLraZ1wNZe0DP7lnRha+VJ9tNaYVaVgKhW0aI3h4RYnoRPeql0flHm/Co55b7snEDcOfOJrA==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
@@ -1205,17 +1624,37 @@ packages:
resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
engines: {node: '>=12.0.0'}
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
typescript@5.9.3:
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
engines: {node: '>=14.17'}
hasBin: true
+ undici-types@7.24.6:
+ resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==}
+
+ unicode-segmenter@0.14.5:
+ resolution: {integrity: sha512-jHGmj2LUuqDcX3hqY12Ql+uhUTn8huuxNZGq7GvtF6bSybzH3aFgedYu/KTzQStEgt1Ra2F3HxadNXsNjb3m3g==}
+
update-browserslist-db@1.2.3:
resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
+ uqr@0.1.3:
+ resolution: {integrity: sha512-0rjE8iEJe4YmT9TOhwsZtqCMRLc5DXZUI2UEYUUg63ikBkqqE5EYWaI0etFe/5KUcmcYwLih2RND1kq+hrUJXA==}
+
+ valibot@1.4.1:
+ resolution: {integrity: sha512-klCmFTz2jeDluy9RwX+F884TCiogtdBJ/YaxSx1EOBYXa3NXNWj8kR1jjN8rzluwojJVWWaHJ4r1U5LfICnM3g==}
+ peerDependencies:
+ typescript: '>=5'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
vite-plugin-solid@2.11.12:
resolution: {integrity: sha512-FgjPcx2OwX9h6f28jli7A4bG7PP3te8uyakE5iqsmpq3Jqi1TWLgSroC9N6cMfGRU2zXsl4Q6ISvTr2VL0QHpA==}
peerDependencies:
@@ -1279,6 +1718,173 @@ packages:
snapshots:
+ '@ark-ui/solid@5.37.1(solid-js@1.9.13)':
+ dependencies:
+ '@internationalized/date': 3.12.2
+ '@zag-js/accordion': 1.41.2
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/angle-slider': 1.41.2
+ '@zag-js/async-list': 1.41.2
+ '@zag-js/auto-resize': 1.41.2
+ '@zag-js/avatar': 1.41.2
+ '@zag-js/carousel': 1.41.2
+ '@zag-js/cascade-select': 1.41.2
+ '@zag-js/checkbox': 1.41.2
+ '@zag-js/clipboard': 1.41.2
+ '@zag-js/collapsible': 1.41.2
+ '@zag-js/collection': 1.41.2
+ '@zag-js/color-picker': 1.41.2
+ '@zag-js/color-utils': 1.41.2
+ '@zag-js/combobox': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/date-input': 1.41.2(@internationalized/date@3.12.2)
+ '@zag-js/date-picker': 1.41.2(@internationalized/date@3.12.2)
+ '@zag-js/date-utils': 1.41.2(@internationalized/date@3.12.2)
+ '@zag-js/dialog': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/drawer': 1.41.2
+ '@zag-js/editable': 1.41.2
+ '@zag-js/file-upload': 1.41.2
+ '@zag-js/file-utils': 1.41.2
+ '@zag-js/floating-panel': 1.41.2
+ '@zag-js/focus-trap': 1.41.2
+ '@zag-js/focus-visible': 1.41.2
+ '@zag-js/highlight-word': 1.41.2
+ '@zag-js/hover-card': 1.41.2
+ '@zag-js/i18n-utils': 1.41.2
+ '@zag-js/image-cropper': 1.41.2
+ '@zag-js/json-tree-utils': 1.41.2
+ '@zag-js/listbox': 1.41.2
+ '@zag-js/marquee': 1.41.2
+ '@zag-js/menu': 1.41.2
+ '@zag-js/navigation-menu': 1.41.2
+ '@zag-js/number-input': 1.41.2
+ '@zag-js/pagination': 1.41.2
+ '@zag-js/password-input': 1.41.2
+ '@zag-js/pin-input': 1.41.2
+ '@zag-js/popover': 1.41.2
+ '@zag-js/presence': 1.41.2
+ '@zag-js/progress': 1.41.2
+ '@zag-js/qr-code': 1.41.2
+ '@zag-js/radio-group': 1.41.2
+ '@zag-js/rating-group': 1.41.2
+ '@zag-js/scroll-area': 1.41.2
+ '@zag-js/select': 1.41.2
+ '@zag-js/signature-pad': 1.41.2
+ '@zag-js/slider': 1.41.2
+ '@zag-js/solid': 1.41.2(solid-js@1.9.13)
+ '@zag-js/splitter': 1.41.2
+ '@zag-js/steps': 1.41.2
+ '@zag-js/switch': 1.41.2
+ '@zag-js/tabs': 1.41.2
+ '@zag-js/tags-input': 1.41.2
+ '@zag-js/timer': 1.41.2
+ '@zag-js/toast': 1.41.2
+ '@zag-js/toggle': 1.41.2
+ '@zag-js/toggle-group': 1.41.2
+ '@zag-js/tooltip': 1.41.2
+ '@zag-js/tour': 1.41.2
+ '@zag-js/tree-view': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+ solid-js: 1.9.13
+
+ '@atcute/atproto@4.0.2(@atcute/lexicons@2.0.0)':
+ dependencies:
+ '@atcute/lexicons': 2.0.0
+
+ '@atcute/bluesky@4.0.6(@atcute/lexicons@2.0.0)':
+ dependencies:
+ '@atcute/atproto': 4.0.2(@atcute/lexicons@2.0.0)
+ '@atcute/lexicons': 2.0.0
+
+ '@atcute/client@5.0.0(@atcute/lexicons@2.0.0)(typescript@5.9.3)':
+ dependencies:
+ '@atcute/identity': 2.0.0(@atcute/lexicons@2.0.0)(typescript@5.9.3)
+ '@atcute/lexicons': 2.0.0
+ transitivePeerDependencies:
+ - typescript
+
+ '@atcute/identity-resolver@2.0.0(@atcute/identity@2.0.0(@atcute/lexicons@2.0.0)(typescript@5.9.3))(@atcute/lexicons@2.0.0)(typescript@5.9.3)':
+ dependencies:
+ '@atcute/identity': 2.0.0(@atcute/lexicons@2.0.0)(typescript@5.9.3)
+ '@atcute/lexicons': 2.0.0
+ '@atcute/util-fetch': 2.0.0(typescript@5.9.3)
+ valibot: 1.4.1(typescript@5.9.3)
+ transitivePeerDependencies:
+ - typescript
+
+ '@atcute/identity@2.0.0(@atcute/lexicons@2.0.0)(typescript@5.9.3)':
+ dependencies:
+ '@atcute/lexicons': 2.0.0
+ valibot: 1.4.1(typescript@5.9.3)
+ transitivePeerDependencies:
+ - typescript
+
+ '@atcute/lexicons@2.0.0':
+ dependencies:
+ '@atcute/uint8array': 1.1.2
+ '@atcute/util-text': 1.3.1
+ '@standard-schema/spec': 1.1.0
+ esm-env: 1.2.2
+
+ '@atcute/multibase@1.2.0':
+ dependencies:
+ '@atcute/uint8array': 1.1.2
+
+ '@atcute/oauth-browser-client@4.0.0(@atcute/identity-resolver@2.0.0(@atcute/identity@2.0.0(@atcute/lexicons@2.0.0)(typescript@5.9.3))(@atcute/lexicons@2.0.0)(typescript@5.9.3))(@atcute/lexicons@2.0.0)(typescript@5.9.3)':
+ dependencies:
+ '@atcute/client': 5.0.0(@atcute/lexicons@2.0.0)(typescript@5.9.3)
+ '@atcute/identity-resolver': 2.0.0(@atcute/identity@2.0.0(@atcute/lexicons@2.0.0)(typescript@5.9.3))(@atcute/lexicons@2.0.0)(typescript@5.9.3)
+ '@atcute/lexicons': 2.0.0
+ '@atcute/multibase': 1.2.0
+ '@atcute/oauth-crypto': 1.0.0(typescript@5.9.3)
+ '@atcute/oauth-types': 1.0.0(typescript@5.9.3)
+ nanoid: 5.1.11
+ transitivePeerDependencies:
+ - typescript
+
+ '@atcute/oauth-crypto@1.0.0(typescript@5.9.3)':
+ dependencies:
+ '@atcute/multibase': 1.2.0
+ '@atcute/uint8array': 1.1.2
+ nanoid: 5.1.11
+ valibot: 1.4.1(typescript@5.9.3)
+ transitivePeerDependencies:
+ - typescript
+
+ '@atcute/oauth-keyset@0.1.1(typescript@5.9.3)':
+ dependencies:
+ '@atcute/oauth-crypto': 1.0.0(typescript@5.9.3)
+ transitivePeerDependencies:
+ - typescript
+
+ '@atcute/oauth-types@1.0.0(typescript@5.9.3)':
+ dependencies:
+ '@atcute/identity': 2.0.0(@atcute/lexicons@2.0.0)(typescript@5.9.3)
+ '@atcute/lexicons': 2.0.0
+ '@atcute/oauth-keyset': 0.1.1(typescript@5.9.3)
+ valibot: 1.4.1(typescript@5.9.3)
+ transitivePeerDependencies:
+ - typescript
+
+ '@atcute/tangled@2.0.5(@atcute/lexicons@2.0.0)':
+ dependencies:
+ '@atcute/atproto': 4.0.2(@atcute/lexicons@2.0.0)
+ '@atcute/lexicons': 2.0.0
+
+ '@atcute/uint8array@1.1.2': {}
+
+ '@atcute/util-fetch@2.0.0(typescript@5.9.3)':
+ dependencies:
+ valibot: 1.4.1(typescript@5.9.3)
+ transitivePeerDependencies:
+ - typescript
+
+ '@atcute/util-text@1.3.1':
+ dependencies:
+ unicode-segmenter: 0.14.5
+
'@babel/code-frame@7.29.7':
dependencies:
'@babel/helper-validator-identifier': 7.29.7
@@ -1473,6 +2079,25 @@ snapshots:
'@esbuild/win32-x64@0.27.7':
optional: true
+ '@floating-ui/core@1.7.5':
+ dependencies:
+ '@floating-ui/utils': 0.2.11
+
+ '@floating-ui/dom@1.7.6':
+ dependencies:
+ '@floating-ui/core': 1.7.5
+ '@floating-ui/utils': 0.2.11
+
+ '@floating-ui/utils@0.2.11': {}
+
+ '@internationalized/date@3.12.2':
+ dependencies:
+ '@swc/helpers': 0.5.23
+
+ '@internationalized/number@3.6.6':
+ dependencies:
+ '@swc/helpers': 0.5.23
+
'@jridgewell/gen-mapping@0.3.13':
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
@@ -1615,6 +2240,10 @@ snapshots:
'@solid-primitives/utils': 6.4.0(solid-js@1.9.13)
solid-js: 1.9.13
+ '@solid-primitives/keyed@1.5.3(solid-js@1.9.13)':
+ dependencies:
+ solid-js: 1.9.13
+
'@solid-primitives/media@2.3.5(solid-js@1.9.13)':
dependencies:
'@solid-primitives/event-listener': 2.4.5(solid-js@1.9.13)
@@ -1660,6 +2289,12 @@ snapshots:
dependencies:
solid-js: 1.9.13
+ '@standard-schema/spec@1.1.0': {}
+
+ '@swc/helpers@0.5.23':
+ dependencies:
+ tslib: 2.8.1
+
'@tailwindcss/node@4.3.0':
dependencies:
'@jridgewell/remapping': 2.3.5
@@ -1721,12 +2356,42 @@ snapshots:
'@tailwindcss/oxide-win32-arm64-msvc': 4.3.0
'@tailwindcss/oxide-win32-x64-msvc': 4.3.0
- '@tailwindcss/vite@4.3.0(vite@7.3.5(jiti@2.7.0)(lightningcss@1.32.0))':
+ '@tailwindcss/vite@4.3.0(vite@7.3.5(@types/node@25.9.2)(jiti@2.7.0)(lightningcss@1.32.0))':
dependencies:
'@tailwindcss/node': 4.3.0
'@tailwindcss/oxide': 4.3.0
tailwindcss: 4.3.0
- vite: 7.3.5(jiti@2.7.0)(lightningcss@1.32.0)
+ vite: 7.3.5(@types/node@25.9.2)(jiti@2.7.0)(lightningcss@1.32.0)
+
+ '@tanstack/devtools-event-client@0.4.3': {}
+
+ '@tanstack/form-core@1.33.0':
+ dependencies:
+ '@tanstack/devtools-event-client': 0.4.3
+ '@tanstack/pacer-lite': 0.1.1
+ '@tanstack/store': 0.11.0
+
+ '@tanstack/pacer-lite@0.1.1': {}
+
+ '@tanstack/query-core@5.101.0': {}
+
+ '@tanstack/solid-form@1.33.0(solid-js@1.9.13)':
+ dependencies:
+ '@tanstack/form-core': 1.33.0
+ '@tanstack/solid-store': 0.11.0(solid-js@1.9.13)
+ solid-js: 1.9.13
+
+ '@tanstack/solid-query@5.101.0(solid-js@1.9.13)':
+ dependencies:
+ '@tanstack/query-core': 5.101.0
+ solid-js: 1.9.13
+
+ '@tanstack/solid-store@0.11.0(solid-js@1.9.13)':
+ dependencies:
+ '@tanstack/store': 0.11.0
+ solid-js: 1.9.13
+
+ '@tanstack/store@0.11.0': {}
'@types/babel__core@7.20.5':
dependencies:
@@ -1751,6 +2416,577 @@ snapshots:
'@types/estree@1.0.9': {}
+ '@types/node@25.9.2':
+ dependencies:
+ undici-types: 7.24.6
+
+ '@zag-js/accordion@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/anatomy@1.41.2': {}
+
+ '@zag-js/angle-slider@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/rect-utils': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/aria-hidden@1.41.2':
+ dependencies:
+ '@zag-js/dom-query': 1.41.2
+
+ '@zag-js/async-list@1.41.2':
+ dependencies:
+ '@zag-js/core': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/auto-resize@1.41.2':
+ dependencies:
+ '@zag-js/dom-query': 1.41.2
+
+ '@zag-js/avatar@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/carousel@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/scroll-snap': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/cascade-select@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/collection': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dismissable': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/focus-visible': 1.41.2
+ '@zag-js/popper': 1.41.2
+ '@zag-js/rect-utils': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/checkbox@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/focus-visible': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/clipboard@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/collapsible@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/collection@1.41.2':
+ dependencies:
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/color-picker@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/color-utils': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dismissable': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/popper': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/color-utils@1.41.2':
+ dependencies:
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/combobox@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/collection': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dismissable': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/focus-visible': 1.41.2
+ '@zag-js/live-region': 1.41.2
+ '@zag-js/popper': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/core@1.41.2':
+ dependencies:
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/date-input@1.41.2(@internationalized/date@3.12.2)':
+ dependencies:
+ '@internationalized/date': 3.12.2
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/date-utils': 1.41.2(@internationalized/date@3.12.2)
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/live-region': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/date-picker@1.41.2(@internationalized/date@3.12.2)':
+ dependencies:
+ '@internationalized/date': 3.12.2
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/date-utils': 1.41.2(@internationalized/date@3.12.2)
+ '@zag-js/dismissable': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/live-region': 1.41.2
+ '@zag-js/popper': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/date-utils@1.41.2(@internationalized/date@3.12.2)':
+ dependencies:
+ '@internationalized/date': 3.12.2
+
+ '@zag-js/dialog@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/aria-hidden': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dismissable': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/focus-trap': 1.41.2
+ '@zag-js/remove-scroll': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/dismissable@1.41.2':
+ dependencies:
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/interact-outside': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/dom-query@1.41.2':
+ dependencies:
+ '@zag-js/types': 1.41.2
+
+ '@zag-js/drawer@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/aria-hidden': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dismissable': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/focus-trap': 1.41.2
+ '@zag-js/remove-scroll': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/editable@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/interact-outside': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/file-upload@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/file-utils': 1.41.2
+ '@zag-js/i18n-utils': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/file-utils@1.41.2':
+ dependencies:
+ '@zag-js/i18n-utils': 1.41.2
+
+ '@zag-js/floating-panel@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/popper': 1.41.2
+ '@zag-js/rect-utils': 1.41.2
+ '@zag-js/store': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/focus-trap@1.41.2':
+ dependencies:
+ '@zag-js/dom-query': 1.41.2
+
+ '@zag-js/focus-visible@1.41.2':
+ dependencies:
+ '@zag-js/dom-query': 1.41.2
+
+ '@zag-js/highlight-word@1.41.2': {}
+
+ '@zag-js/hover-card@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dismissable': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/popper': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/i18n-utils@1.41.2':
+ dependencies:
+ '@zag-js/dom-query': 1.41.2
+
+ '@zag-js/image-cropper@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/interact-outside@1.41.2':
+ dependencies:
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/json-tree-utils@1.41.2': {}
+
+ '@zag-js/listbox@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/collection': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/focus-visible': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/live-region@1.41.2': {}
+
+ '@zag-js/marquee@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/menu@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dismissable': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/focus-visible': 1.41.2
+ '@zag-js/popper': 1.41.2
+ '@zag-js/rect-utils': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/navigation-menu@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dismissable': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/number-input@1.41.2':
+ dependencies:
+ '@internationalized/number': 3.6.6
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/pagination@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/password-input@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/pin-input@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/popover@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/aria-hidden': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dismissable': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/focus-trap': 1.41.2
+ '@zag-js/popper': 1.41.2
+ '@zag-js/remove-scroll': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/popper@1.41.2':
+ dependencies:
+ '@floating-ui/dom': 1.7.6
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/presence@1.41.2':
+ dependencies:
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+
+ '@zag-js/progress@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/qr-code@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+ proxy-memoize: 3.0.1
+ uqr: 0.1.3
+
+ '@zag-js/radio-group@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/focus-visible': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/rating-group@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/rect-utils@1.41.2': {}
+
+ '@zag-js/remove-scroll@1.41.2':
+ dependencies:
+ '@zag-js/dom-query': 1.41.2
+
+ '@zag-js/scroll-area@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/scroll-snap@1.41.2':
+ dependencies:
+ '@zag-js/dom-query': 1.41.2
+
+ '@zag-js/select@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/collection': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dismissable': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/focus-visible': 1.41.2
+ '@zag-js/popper': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/signature-pad@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+ perfect-freehand: 1.2.3
+
+ '@zag-js/slider@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/solid@1.41.2(solid-js@1.9.13)':
+ dependencies:
+ '@solid-primitives/keyed': 1.5.3(solid-js@1.9.13)
+ '@zag-js/core': 1.41.2
+ '@zag-js/store': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+ solid-js: 1.9.13
+
+ '@zag-js/splitter@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/steps@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/store@1.41.2':
+ dependencies:
+ proxy-compare: 3.0.1
+
+ '@zag-js/switch@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/focus-visible': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/tabs@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/tags-input@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/auto-resize': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/interact-outside': 1.41.2
+ '@zag-js/live-region': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/timer@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/toast@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dismissable': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/toggle-group@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/toggle@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/tooltip@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/focus-visible': 1.41.2
+ '@zag-js/popper': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/tour@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dismissable': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/focus-trap': 1.41.2
+ '@zag-js/interact-outside': 1.41.2
+ '@zag-js/popper': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/tree-view@1.41.2':
+ dependencies:
+ '@zag-js/anatomy': 1.41.2
+ '@zag-js/collection': 1.41.2
+ '@zag-js/core': 1.41.2
+ '@zag-js/dom-query': 1.41.2
+ '@zag-js/types': 1.41.2
+ '@zag-js/utils': 1.41.2
+
+ '@zag-js/types@1.41.2':
+ dependencies:
+ csstype: 3.2.3
+
+ '@zag-js/utils@1.41.2': {}
+
babel-plugin-jsx-dom-expressions@0.40.7(@babel/core@7.29.7):
dependencies:
'@babel/core': 7.29.7
@@ -1829,6 +3065,8 @@ snapshots:
escalade@3.2.0: {}
+ esm-env@1.2.2: {}
+
fdir@6.5.0(picomatch@4.0.4):
optionalDependencies:
picomatch: 4.0.4
@@ -1905,6 +3143,10 @@ snapshots:
dependencies:
yallist: 3.1.1
+ lucide-solid@1.17.0(solid-js@1.9.13):
+ dependencies:
+ solid-js: 1.9.13
+
magic-string@0.30.21:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
@@ -1917,6 +3159,8 @@ snapshots:
nanoid@3.3.12: {}
+ nanoid@5.1.11: {}
+
node-releases@2.0.47: {}
node@runtime:26.3.0: {}
@@ -1925,6 +3169,8 @@ snapshots:
dependencies:
entities: 6.0.1
+ perfect-freehand@1.2.3: {}
+
picocolors@1.1.1: {}
picomatch@4.0.4: {}
@@ -1935,6 +3181,12 @@ snapshots:
picocolors: 1.1.1
source-map-js: 1.2.1
+ proxy-compare@3.0.1: {}
+
+ proxy-memoize@3.0.1:
+ dependencies:
+ proxy-compare: 3.0.1
+
rollup@4.61.1:
dependencies:
'@types/estree': 1.0.9
@@ -1974,7 +3226,7 @@ snapshots:
seroval@1.5.4: {}
- solid-devtools@0.34.5(solid-js@1.9.13)(vite@7.3.5(jiti@2.7.0)(lightningcss@1.32.0)):
+ solid-devtools@0.34.5(solid-js@1.9.13)(vite@7.3.5(@types/node@25.9.2)(jiti@2.7.0)(lightningcss@1.32.0)):
dependencies:
'@babel/core': 7.29.7
'@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7)
@@ -1983,7 +3235,7 @@ snapshots:
'@solid-devtools/shared': 0.20.0(solid-js@1.9.13)
solid-js: 1.9.13
optionalDependencies:
- vite: 7.3.5(jiti@2.7.0)(lightningcss@1.32.0)
+ vite: 7.3.5(@types/node@25.9.2)(jiti@2.7.0)(lightningcss@1.32.0)
transitivePeerDependencies:
- supports-color
@@ -2013,15 +3265,27 @@ snapshots:
fdir: 6.5.0(picomatch@4.0.4)
picomatch: 4.0.4
+ tslib@2.8.1: {}
+
typescript@5.9.3: {}
+ undici-types@7.24.6: {}
+
+ unicode-segmenter@0.14.5: {}
+
update-browserslist-db@1.2.3(browserslist@4.28.2):
dependencies:
browserslist: 4.28.2
escalade: 3.2.0
picocolors: 1.1.1
- vite-plugin-solid@2.11.12(solid-js@1.9.13)(vite@7.3.5(jiti@2.7.0)(lightningcss@1.32.0)):
+ uqr@0.1.3: {}
+
+ valibot@1.4.1(typescript@5.9.3):
+ optionalDependencies:
+ typescript: 5.9.3
+
+ vite-plugin-solid@2.11.12(solid-js@1.9.13)(vite@7.3.5(@types/node@25.9.2)(jiti@2.7.0)(lightningcss@1.32.0)):
dependencies:
'@babel/core': 7.29.7
'@types/babel__core': 7.20.5
@@ -2029,12 +3293,12 @@ snapshots:
merge-anything: 5.1.7
solid-js: 1.9.13
solid-refresh: 0.6.3(solid-js@1.9.13)
- vite: 7.3.5(jiti@2.7.0)(lightningcss@1.32.0)
- vitefu: 1.1.3(vite@7.3.5(jiti@2.7.0)(lightningcss@1.32.0))
+ vite: 7.3.5(@types/node@25.9.2)(jiti@2.7.0)(lightningcss@1.32.0)
+ vitefu: 1.1.3(vite@7.3.5(@types/node@25.9.2)(jiti@2.7.0)(lightningcss@1.32.0))
transitivePeerDependencies:
- supports-color
- vite@7.3.5(jiti@2.7.0)(lightningcss@1.32.0):
+ vite@7.3.5(@types/node@25.9.2)(jiti@2.7.0)(lightningcss@1.32.0):
dependencies:
esbuild: 0.27.7
fdir: 6.5.0(picomatch@4.0.4)
@@ -2043,12 +3307,13 @@ snapshots:
rollup: 4.61.1
tinyglobby: 0.2.17
optionalDependencies:
+ '@types/node': 25.9.2
fsevents: 2.3.3
jiti: 2.7.0
lightningcss: 1.32.0
- vitefu@1.1.3(vite@7.3.5(jiti@2.7.0)(lightningcss@1.32.0)):
+ vitefu@1.1.3(vite@7.3.5(@types/node@25.9.2)(jiti@2.7.0)(lightningcss@1.32.0)):
optionalDependencies:
- vite: 7.3.5(jiti@2.7.0)(lightningcss@1.32.0)
+ vite: 7.3.5(@types/node@25.9.2)(jiti@2.7.0)(lightningcss@1.32.0)
yallist@3.1.1: {}